Google plus da la Interfaz de programación de aplicaciones PageSpeed ​​​​Insights para contribuir a los expertos y programadores de SEO al conjuntar datos de todo el mundo real con datos de simulación, ofreciendo datos sobre de qué manera acompasar el desempeño de carga de el sitio web.

La diferencia entre Google plus PageSpeed ​​Insights (PSI) y Lighthouse es que PSI implica tanto datos reales como de laboratorio, al paso que Lighthouse efectúa una simulación de la carga de la página cambiando la conexión y el agente de usuario del dispositivo.

Otro punto de diferencia es que PSI no da información relacionada con la disponibilidad web, SEO o apps web progresivas (PWA), al tiempo que Lighthouse proporciona todo lo previo.

Por consiguiente, en el momento en que usemos la Interfaz de programación de aplicaciones de PageSpeed ​​Insights para evaluar el desempeño de carga masiva de URLs, no vamos a tener datos de disponibilidad.

No obstante, PSI da información agregada sobre el desempeño de la agilidad de la página, como «Tamaño DOM», «DOM secundario mucho más profundo», «Total de ocupaciones» y «Contenido DOM cargado».

Otra virtud de la Interfaz de programación de aplicaciones de PageSpeed ​​Insights es que asigna distintas nombres a los «valores vistos» y los «valores reales».

En esta guía vas a aprender:

  • De qué manera hacer un script Python de nivel de producción.
  • De qué manera usar la Interfaz de programación de aplicaciones de Python.
  • De qué manera hacer marcos de datos desde las respuestas de la Interfaz de programación de aplicaciones.
  • De qué forma investigar las respuestas de la Interfaz de programación de aplicaciones.
  • De qué manera investigar dirección de Internet y procesar respuestas a peticiones de dirección de Internet.
  • De qué manera guardar las respuestas de la Interfaz de programación de aplicaciones con la composición correcta.

Ahora se expone un caso de muestra del resultado de llamar a la Interfaz de programación de aplicaciones de Page Speed ​​​​Insights con Python.

Ejemplo de salida de velocidad de páginaAtrapa de pantalla del creador, junio de 2022

Bibliotecas para emplear la Interfaz de programación de aplicaciones de PageSpeed ​​​​Insights con Python

Ahora están las bibliotecas primordiales para emplear la Interfaz de programación de aplicaciones de PSI con Python.

  • Herramientas de publicidad recobra las dirección de Internet de prueba del mapa del lugar de un portal de internet.
  • Panda radica en hacer el marco de datos y achatar la salida JSON de la Interfaz de programación de aplicaciones.
  • Las peticiones tienen que efectuar una petición al radical de la Interfaz de programación de aplicaciones concreto.
  • El JSON debe tomar la contestación de la Interfaz de programación de aplicaciones y ponerla en el sitio concreto del diccionario asociado.
  • Datetime se emplea para cambiar el nombre del fichero de salida concreto a la fecha de hoy.
  • URLlib radica en investigar la dirección de Internet del cibersitio del sujeto de prueba.

¿De qué forma utilizar la Interfaz de programación de aplicaciones de PSI con Python?

Para emplear la Interfaz de programación de aplicaciones de PSI con Python, prosiga los pasos ahora.

  • Consiga una clave API de PageSpeed ​​​​Insights.
  • Importe las bibliotecas primordiales.
  • Analice la dirección de Internet del página web del sujeto de prueba.
  • Consiga la fecha y la hora del nombre del fichero.
  • Ingrese las dirección de Internet en una lista en un mapa del ubicación.
  • Escoja los valores que quiera de la Interfaz de programación de aplicaciones de PSI.
  • Cree un bucle For para recobrar la contestación de la Interfaz de programación de aplicaciones para todas y cada una de las dirección de Internet.
  • Cree el marco de datos con los valores PSI de la Interfaz de programación de aplicaciones seleccionados.
  • Genera desenlaces como XLSX.

1. Consiga la clave API de PageSpeed ​​Insights

usos API de información de PageSpeed Documentación para la obtención de la clave API.

Lleve a cabo click en el botón «Conseguir una clave» ahora.

clave api psi Imagen de developer.google plus.com, junio de 2022

Escoja un emprendimiento que haya desarrollado en Google plus Developer Console.

proyecto de API de la consola de desarrolladores de GoogleImagen de developer.google plus.com, junio de 2022

Habilite la Interfaz de programación de aplicaciones de PageSpeed ​​​​Insights para ese emprendimiento.

Activación API de información de velocidad de páginaImagen de developer.google plus.com, junio de 2022

Va a deber emplear la clave de API concreta en sus peticiones de API.

2. Importe las bibliotecas requeridas

Utilice las próximas líneas para importar las bibliotecas primordiales.

    import advertools as adv
    import pandas as pd
    import requests
    import json
    from datetime import datetime
    from urllib.parse import urlparse

3. Analice la dirección de Internet del página web del sujeto de prueba

Para investigar la dirección de Internet del portal web en cuestión, utilice la composición de código ahora.

  domain = urlparse(sitemap_url)
  domain = domain.netloc.split(".")[1]

La variable «dominio» es la versión analizada de la dirección de Internet del mapa del lugar.

«Netloc» es la sección de dominio de la dirección de Internet concreta. En el momento en que lo dividimos por «.» precisa la «sección central», que es el nombre de dominio.

Aquí, «0» significa «www», «1» para «nombre de dominio» y «2» para «extensión de dominio» si lo dividimos por «.»

4. Consiga la fecha y la hora del nombre del fichero

Para conseguir la fecha y hora de la llamada concreta de la función, use el procedimiento «datetime.now».

Datetime.now da la hora concreta de la hora concreta. Use «strftime» con los valores «% Y», «»% m» y «% d». «% Y» es para el año. ‘% M’ y ‘% d’ son valores numéricos para el mes y los días concretos.

 date = datetime.now().strftime("%Y_%m_%d")

5. Ingrese las dirección de Internet en una lista en un mapa del lugar

Para recobrar las dirección de Internet como una lista de un fichero de mapa del ubicación, use el próximo bloque de código.

   sitemap = adv.sitemap_to_df(sitemap_url)
   sitemap_urls = sitemap["loc"].to_list()

Si lee Python Sitemap Health Audit, puede conseguir mucho más información sobre los mapas de lugar.

6. Escoja los valores que quiera de la Interfaz de programación de aplicaciones de PSI

Para escoger las características JSON de la contestación de la Interfaz de programación de aplicaciones de PSI, debería ver nuestro fichero JSON.

Es primordial para leer, investigar y achatar elementos JSON.

Asimismo está relacionado con el SEO semántico, debido al término de «grafo directo» y datos estructurados «JSON-LD».

En el presente artículo, no nos vamos a centrar en investigar las jerarquías JSON concretas de la contestación de la Interfaz de programación de aplicaciones de PSI.

Puede ver los valores que he escogido catalogar de la Interfaz de programación de aplicaciones de PSI. Es mucho más rico que la salida ya establecida básica de la Interfaz de programación de aplicaciones de PSI, que da solo los valores Core Web Vitals o Speed ​​​​Index-Interaction to Next Paint, Time to First Byte y First Contentful Paint.

Evidentemente, asimismo proporciona «recomendaciones» que dicen «Evite encadenar peticiones críticas», pero no requiere poner una oración en un marco de datos.

Más adelante, estas recomendaciones, o aun cada acontecimiento individual en la cadena, sus valores de KB y MS se tienen la posibilidad de tomar en solo una columna llamada «psi_suggestions».

Para comenzar, puedes preguntar los valores que hemos escogido y buena parte de ellos van a ser los primeros para ti.

Métricas de la Interfaz de programación de aplicaciones de PSI, la primera sección está ahora.

    fid = []
    lcp = []
    cls_ = []
    url = []
    fcp = []
    performance_score = []
    total_tasks = []
    total_tasks_time = []
    long_tasks = []
    dom_size = []
    maximum_dom_depth = []
    maximum_child_element = []
    observed_fcp  = []
    observed_fid = []
    observed_lcp = []
    observed_cls = []
    observed_fp = []
    observed_fmp = []
    observed_dom_content_loaded = []
    observed_speed_index = []
    observed_total_blocking_time = []
    observed_first_visual_change = []
    observed_last_visual_change = []
    observed_tti = []
    observed_max_potential_fid = []

Esta sección incluye todos y cada uno de los valores de agilidad de página escenciales vistos y simulados, adjuntado con ciertos valores no escenciales como «Contenido DOM cargado» o «Primera pintura importante».

La segunda sección de PSI Metrics se enfoca en ahorrar bytes y tiempo de la proporción de código no usado.

    render_blocking_resources_ms_save = []
    unused_javascript_ms_save = []
    unused_javascript_byte_save = []
    unused_css_rules_ms_save = []
    unused_css_rules_bytes_save = []

Un tercer apartado de los valores de PSI se enfoca en el tiempo de contestación del servidor, los resultados positivos de utilizar la imagen receptiva o no, la utilización del daño.

    possible_server_response_time_saving = []
    possible_responsive_image_ms_save = []

Nota: La puntuación de desempeño general procede de «performance_score».

7. Cree un bucle For para recobrar la contestación de la Interfaz de programación de aplicaciones para todas y cada una de las dirección de Internet

El período for es para recobrar todas y cada una de las dirección de Internet del fichero del mapa del lugar y utilizar la Interfaz de programación de aplicaciones de PSI para todas y cada una ellas, una por una. El bucle for para la automatización de la Interfaz de programación de aplicaciones de PSI tiene múltiples partes.

La primera sección del período de la Interfaz de programación de aplicaciones de PSI empieza con la prevención de dirección de Internet dobles.

En los mapas de lugar, puede ver una dirección de Internet que hace aparición múltiples ocasiones. Esta sección lo impide.

for i in sitemap_urls[:9]:
         # Prevent the duplicate "/" trailing slash dirección de Internet requests to override the information.
         if i.endswith("/"):
               r = requests.get(f"https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=&strategy=mobile&locale=en&key=")
         else:
               r = requests.get(f"https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=/&strategy=mobile&locale=en&key=")

No olvide elegir «api_key» en el final del punto y final para la Interfaz de programación de aplicaciones de PageSpeed ​​​​Insights.

Verifique el código de estado. En los sitemaps probablemente halla URLs diferentes a 200 de códigos de estado; han de estar limpios.

         if r.status_code == 200:
               #print(r.json())
               data_ = json.loads(r.text)
               url.append(i)

La próxima sección añade valores concretos al diccionario concreto que creamos antes de «_date».

               fcp.append(data_["loadingExperience"]["metrics"]["FIRST_CONTENTFUL_PAINT_MS"]["percentile"])
               fid.append(data_["loadingExperience"]["metrics"]["FIRST_INPUT_DELAY_MS"]["percentile"])
               lcp.append(data_["loadingExperience"]["metrics"]["LARGEST_CONTENTFUL_PAINT_MS"]["percentile"])
               cls_.append(data_["loadingExperience"]["metrics"]["CUMULATIVE_LAYOUT_SHIFT_SCORE"]["percentile"])
               performance_score.append(data_["lighthouseResult"]["categories"]["performance"]["score"] * 100)

La próxima sección se enfoca en el número de «carga total» y el tamaño del DOM.

               total_tasks.append(data_["lighthouseResult"]["audits"]["diagnostics"]["details"]["items"][0]["numTasks"])
               total_tasks_time.append(data_["lighthouseResult"]["audits"]["diagnostics"]["details"]["items"][0]["totalTaskTime"])
               long_tasks.append(data_["lighthouseResult"]["audits"]["diagnostics"]["details"]["items"][0]["numTasksOver50ms"])
               dom_size.append(data_["lighthouseResult"]["audits"]["dom-size"]["details"]["items"][0]["value"])

La próxima sección toma «Hondura DOM» y «Elemento DOM mucho más profundo».

               maximum_dom_depth.append(data_["lighthouseResult"]["audits"]["dom-size"]["details"]["items"][1]["value"])
               maximum_child_element.append(data_["lighthouseResult"]["audits"]["dom-size"]["details"]["items"][2]["value"])

La próxima sección toma los desenlaces de las pruebas vistas a lo largo de la Interfaz de programación de aplicaciones de Page Speed ​​​​Insights.

               observed_dom_content_loaded.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["observedDomContentLoaded"])
               observed_fid.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["observedDomContentLoaded"])
               observed_lcp.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["largestContentfulPaint"])
               observed_fcp.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["firstContentfulPaint"])
               observed_cls.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["totalCumulativeLayoutShift"])
               observed_speed_index.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["observedSpeedIndex"])
               observed_total_blocking_time.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["totalBlockingTime"])
               observed_fp.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["observedFirstPaint"])
               observed_fmp.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["firstMeaningfulPaint"])
               observed_first_visual_change.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["observedFirstVisualChange"])
               observed_last_visual_change.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["observedLastVisualChange"])
               observed_tti.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["interactive"])
               observed_max_potential_fid.append(data_["lighthouseResult"]["audits"]["metrics"]["details"]["items"][0]["maxPotentialFID"])

La próxima sección toma la proporción de código no usado y bytes desperdiciados, en ms, adjuntado con la representación de los elementos del bloque.

               render_blocking_resources_ms_save.append(data_["lighthouseResult"]["audits"]["render-blocking-resources"]["details"]["overallSavingsMs"])
               unused_javascript_ms_save.append(data_["lighthouseResult"]["audits"]["unused-javascript"]["details"]["overallSavingsMs"])
               unused_javascript_byte_save.append(data_["lighthouseResult"]["audits"]["unused-javascript"]["details"]["overallSavingsBytes"])
               unused_css_rules_ms_save.append(data_["lighthouseResult"]["audits"]["unused-css-rules"]["details"]["overallSavingsMs"])
               unused_css_rules_bytes_save.append(data_["lighthouseResult"]["audits"]["unused-css-rules"]["details"]["overallSavingsBytes"])

La próxima sección da los resultados positivos de la imagen receptiva y la sincronización de la contestación del servidor.

               possible_server_response_time_saving.append(data_["lighthouseResult"]["audits"]["server-response-time"]["details"]["overallSavingsMs"])      
               possible_responsive_image_ms_save.append(data_["lighthouseResult"]["audits"]["uses-responsive-images"]["details"]["overallSavingsMs"])

La próxima sección es para cerciorarse de que la función siga andando en el caso de fallo.

         else:
           continue

Ejemplo de empleo API de Page Speed ​​Insights con Python para pruebas masivas

Para emplear bloques de código concretos, insértelos en una función de Python.

Ejecute el script y conseguirá 29 valores de agilidad de página en las próximas columnas.

API de análisis de velocidad de páginaAtrapa de pantalla del creador, junio de 2022

Conclusión

La Interfaz de programación de aplicaciones de PageSpeed ​​​​Insights da múltiples géneros de valores de desempeño de carga de página.

Revela de qué manera los ingenieros de Google plus perciben el término de desempeño de carga de la página y probablemente emplean estos valores como clasificación, UX y entendimiento de la calidad.

La utilización de Python para pruebas de agilidad de páginas masivas le ofrece una instantánea de todo el sitio para investigar la viable experiencia del usuario, la eficacia del rastreo, la tasa de conversión y las novedades en la clasificación.

Mucho más elementos:


Imagen mostrada: Dundanim / Shutterstock

Fuente: searchenginejournal

Hashtags: #Pruebas #desempeño #carga #masiva #con #API #PageSpeed #Insights #Python