Come utilizzare l'API PageSpeed ​​Insights per monitorare le prestazioni della pagina

Pubblicato: 2023-03-09

Esistono strumenti per aiutarti a monitorare le prestazioni della pagina e valutare i tuoi miglioramenti. Uno dei migliori è PageSpeed ​​Insights. È disponibile come applicazione Web e come scheda Lighthouse in DevTools di Chrome (gli stessi DevTools sono disponibili anche in Edge, Opera, Brave e Vivaldi).

Le prestazioni delle pagine Web sono più importanti che mai. Gli utenti si aspettano un'esperienza fluida e reattiva che rivaleggia con le applicazioni desktop. Inoltre, i Core Web Vitals di Google misurano le prestazioni della pagina: influenzano il PageRank e gli sforzi di ottimizzazione dei motori di ricerca.

WordPress esegue più di un terzo di tutti i siti Web, ma le prestazioni sono influenzate da hosting inefficace, temi lenti e un'eccessiva dipendenza dai plug-in. Puoi risolvere la maggior parte dei problemi passando a un buon host web e utilizzando le migliori tecniche di performance.

Accesso al faro

Avvia Lighthouse aprendo la pagina che desideri esaminare e premendo Ctrl/Cmd + Maiusc + I o scegliendo Strumenti per sviluppatori da Altri strumenti nel menu. Passa alla scheda Lighthouse e fai clic sul pulsante Analizza caricamento pagina . I risultati vengono visualizzati dopo pochi secondi:

Esempio di rapporto Lighthouse
Esempio di rapporto Lighthouse

È possibile approfondire le percentuali di livello superiore per scoprire ulteriori informazioni e suggerimenti che risolvono problemi noti. Lo strumento ha un valore inestimabile ma ci sono aspetti negativi:

  • Devi avviare manualmente un'esecuzione per ogni pagina che stai testando.
  • Non è facile registrare come i fattori siano migliorati o peggiorati nel tempo.
  • Ci sono molti dati da controllare ed è facile sbagliare qualcosa.
  • I dettagli tecnici sono forniti agli sviluppatori. Forse è travolgente per clienti e manager che desiderano una rapida panoramica dei progressi.
  • Le corse del faro possono essere influenzate dal dispositivo locale e dalla velocità della rete, il che potrebbe portare a false supposizioni.

L'API PageSpeed ​​Insights fornisce un modo per risolvere questi problemi in modo che i test possano essere automatizzati, registrati e confrontati.

Cos'è l'API di PageSpeed ​​Insights?

Google fornisce un'API REST PageSpeed ​​Insights gratuita che restituisce i dati in formato JSON contenenti tutte le metriche Lighthouse e altro ancora. Ti consente di automatizzare l'esecuzione delle pagine, archiviare i dati risultanti, rivedere le modifiche nel tempo e visualizzare le informazioni esatte di cui hai bisogno.

L'API PageSpeed ​​Insights emula il modo in cui Google vede il tuo sito. Puoi eseguire un rapporto ogni pochi giorni o ogni volta che rilasci un aggiornamento delle prestazioni.

I risultati sono utili ma non necessariamente indicativi dell'effettiva esperienza dell'utente. L'API delle prestazioni del browser è un'opzione migliore quando si desidera monitorare le prestazioni del mondo reale su tutti i dispositivi e le reti dell'utente.

Il sito WordPress non è aggiornato? Hosting, temi e plug-in scadenti potrebbero essere i colpevoli! Ottimizza il tuo sito con PageSpeed ​​Insights e porta il tuo sito web a un livello superiore! Fai clic per twittare

Avvio rapido dell'API di PageSpeed ​​Insights

Copia il seguente indirizzo nel tuo browser web e modifica l' url per valutare le prestazioni della tua pagina:

https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://www.yoursite.com/

Firefox è l'ideale perché ha un visualizzatore JSON integrato sebbene Chrome abbia estensioni che forniscono la stessa funzionalità. Il punteggio complessivo delle prestazioni del faro è evidenziato di seguito:

Risultato API PageSpeed ​​Insights JSON (Firefox)
Risultato API PageSpeed ​​Insights JSON (Firefox)

Puoi modificare la stringa di query dell'URL dell'API per le tue pagine e preferenze. L'unico parametro richiesto è url , ad es

url=https://mysite.com/page1

Un test desktop viene eseguito per impostazione predefinita ma puoi richiederlo esplicitamente con:

strategy=desktop

o passa al cellulare con:

strategy=mobile

Vengono eseguiti solo i test delle prestazioni, a meno che non specifichi una o più categorie di interesse:

category=performance
category=accessibility
category=best-practices
category=seo
category=pwa

È possibile definire una lingua specifica impostando un locale, ad esempio il francese:

locale=fr-FR

e i dettagli della campagna di Google Analytics possono essere impostati con:

utm_campaign=<campaign>
utm_source=<source>

Il servizio è gratuito per richieste poco frequenti ma dovrai registrarti per una chiave API di Google se intendi eseguire molti test dallo stesso indirizzo IP in un breve periodo. La chiave viene aggiunta all'URL con:

key=<api-key>

Puoi creare la stringa di query dell'URL specificando i parametri scelti separati da caratteri e commerciale (&). Il seguente URL dell'API testa la pagina all'indirizzo https://mysite.com/ utilizzando un dispositivo mobile per valutare le prestazioni e i criteri di accessibilità:

https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://mysite.com/&strategy=mobile&category=performance&category=accessibility

Puoi creare i tuoi URL o utilizzare lo strumento per la creazione di URL dell'API di Google PageSpeed ​​se hai bisogno di ulteriore assistenza.

Risultati JSON dell'API PageSpeed ​​Insights

I test in genere restituiscono circa 600 Kb di dati JSON a seconda delle categorie scelte, del numero di risorse nella pagina e della complessità degli screenshot (incorporati nel formato base64).

La quantità di dati è scoraggiante, ci sono alcune duplicazioni e la documentazione dei risultati non è sempre chiara. Il JSON è suddiviso in quattro sezioni come descritto di seguito.

esperienza di caricamento

Si tratta di metriche calcolate per l'esperienza di caricamento della pagina dell'utente finale. Include informazioni come Core Web Vitals CUMULATIVE_LAYOUT_SHIFT_SCORE, FIRST_CONTENTFUL_PAINT_MS e FIRST_INPUT_DELAY_MS. I dettagli e un valore di "categoria" restituiscono FAST, AVERAGE, SLOW o NONE se non è stata effettuata alcuna misurazione. Esempio:

 "loadingExperience": { "metrics": { "CUMULATIVE_LAYOUT_SHIFT_SCORE": { "percentile": 0, "distributions": [ { "min": 0, "max": 10, "proportion": 0.970 }, { "min": 10, "max": 25, "proportion": 0.017 }, { "min": 25, "proportion": 0.012 } ], "category": "FAST" },

originLoadingExperience

Si tratta di metriche aggregate calcolate per le esperienze di caricamento delle pagine di tutti gli utenti. Le sezioni sono identiche a loadingExperience sopra ed è improbabile che i siti con meno traffico mostrino differenze nelle cifre.

lighthouseRisultato

Questa è la sezione più grande e contiene tutte le metriche Lighthouse. Fornisce informazioni sul test:

  • requiredUrl – l'URL che hai richiesto
  • finalUrl: la pagina effettiva testata dopo aver seguito tutti i reindirizzamenti
  • lighthouseVersion – la versione del software
  • fetchTime: l'ora in cui è stato eseguito il test
  • userAgent – ​​la stringa dell'agente utente del browser utilizzato per il test
  • ambiente: informazioni estese sull'agente utente
  • configSettings: le impostazioni passate all'API

Questa è seguita da una sezione "audit" con molte sezioni tra cui javascript non utilizzato, regole CSS non utilizzate, peso totale in byte, reindirizzamenti, dimensione del dominio, elemento di pittura con il contenuto più grande, tempo di risposta del server, rete -requests, cumulative-layout-shift, first-signful-paint, screenshot-thumbnails e full-page-screenshot.

La maggior parte delle metriche di audit fornisce una sezione "dettagli" che contiene fattori come "overallSavingsBytes" e "overallSavingsMs" che stima i vantaggi dell'implementazione di un miglioramento delle prestazioni.

Le sezioni "screenshot" a pagina intera e in miniatura contengono dati immagine Base64 incorporati.

Una sezione "metriche" fornisce un riepilogo di tutte le metriche in un array di "elementi", ad es

 "metrics": { "id": "metrics", "title": "Metrics", "description": "Collects all available metrics.", "score": null, "scoreDisplayMode": "informative", "details": { "type": "debugdata", "items": [{ "observedFirstVisualChange": 234, "observedFirstContentfulPaint": 284, "interactive": 278, "observedFirstPaintTs": 1579728174422, "observedDomContentLoaded": 314, // ... etc ... }] }, "numericValue": 278, "numericUnit": "millisecond" },

La sezione "audit" è seguita da "categorie" che fornisce i punteggi Lighthouse complessivi per le categorie scelte trasmesse all'URL dell'API:

 "categories": { "performance": { "id": "performance", "title": "Performance", "score": 0.97, "auditRefs": [ //...

Il "punteggio" è un numero compreso tra 0 e 1 che viene normalmente mostrato come percentuale nei rapporti Lighthouse. In generale, un punteggio di:

  • Da 0,9 a 1,0 va bene
  • Da 0,5 a meno di 0,9 indica che è necessario un miglioramento
  • sotto 0,5 è scarso e richiede un'attenzione più urgente

La sezione "auditRefs" fornisce un elenco di tutte le metriche e le ponderazioni utilizzate per calcolare ciascun punteggio.

analisiUTCTimestamp

Infine, viene riportato il tempo di analisi. Questo dovrebbe essere identico all'ora mostrata in lighthouseResult.fetchTime.

Metriche dei risultati JSON utili

Ti consiglio di salvare ed esaminare il risultato JSON in un editor di testo. Alcuni hanno formattatori JSON integrati o disponibili come plug-in. In alternativa, puoi utilizzare strumenti online gratuiti come:

  • Formattatore e validatore JSON
  • Formattatore JSON
  • jsonformatter.io

È probabile che le seguenti metriche siano utili. Ricorda di impostare le opzioni di categoria associate sull'URL come necessario.

Metriche di riepilogo

Punteggio complessivo da 0 a 1:

Prestazione lighthouseResult.categories.performance.score
Accessibilità lighthouseResult.categories.accessibility.score
Migliori pratiche lighthouseResult.categories.best-practices.score
SEO lighthouseResult.categories.seo.score
App Web progressiva (PWA) lighthouseResult.categories.pwa.score

Metriche delle prestazioni

Questi includono i punteggi Core Web Vitals da 0 a 1:

Prima vernice contenta lighthouseResult.audits.first-contentful-paint.score
Prima pittura significativa lighthouseResult.audits.first-meaningful-paint.score
La più grande vernice contenta lighthouseResult.audits.largest-contentful-paint.score
Indice di velocità lighthouseResult.audits.speed-index.score
Spostamento cumulativo del layout lighthouseResult.audits.cumulative-layout-shift.score

Altri utili punteggi delle prestazioni includono:

Tempo di risposta del server lighthouseResult.audits.server-response-time.score
È scansionabile lighthouseResult.audits.is-crawlable.score
Errori della console lighthouseResult.audits.errors-in-console.score
Peso totale in byte lighthouseResult.audits.total-byte-weight.score
Punteggio dimensione DOM lighthouseResult.audits.dom-size.score

Di solito è possibile ottenere cifre e unità reali come:

  • lighthouseResult.audits.total-byte-weight.numericValue –
    la dimensione totale della pagina, ad esempio 450123
  • lighthouseResult.audits.total-byte-weight.numericUnit –
    le unità utilizzate per la dimensione totale della pagina, ad esempio "byte"

In alternativa, "displayValue" di solito contiene un messaggio leggibile con sia la cifra che l'unità:

  • lighthouseResult.audits.server-response-time.displayValue –
    un messaggio sul tempo di risposta, ad es. "Il documento root ha impiegato 170 ms"
  • lighthouseResult.audits.dom-size.displayValue –
    un messaggio sul numero di elementi nel DOM, ad esempio "543 elementi"

Crea un dashboard delle prestazioni senza codice

I feed API live possono essere letti ed elaborati in molti sistemi, incluso Microsoft Excel. (Un po' stranamente, Fogli Google non supporta i feed JSON senza ulteriori plug-in o codice macro. Supporta XML.)

Per importare il punteggio delle prestazioni complessive dal vivo in Excel, avvia un nuovo foglio di calcolo, passa alla scheda Dati e fai clic su Dal Web . Inserisci l'URL dell'API di PageSpeed ​​Insights e fai clic su OK:

Importazione dati Excel da Web
Importazione dati Excel da Web

Fare clic su Connetti nella finestra di dialogo successiva e mantenere l'impostazione predefinita (anonimo). Passerai allo strumento Impostazioni query :

Strumento Impostazioni query di Excel
Strumento Impostazioni query di Excel

Fare clic su Registra a destra della metrica dei risultati faro . Quindi fai clic sullo stesso su categorie e prestazioni per visualizzare in dettaglio la gerarchia degli oggetti JSON:

Drill-down dell'oggetto JSON di Excel
Drill-down dell'oggetto JSON di Excel

Fai clic sull'icona Into Table in alto dalle opzioni del menu di scelta rapida.

È quindi possibile fare clic sulla freccia del filtro nell'intestazione della tabella per rimuovere tutto tranne il punteggio prima di fare clic su OK :

Filtro delle tabelle importate da Excel
Filtro delle tabelle importate da Excel

Infine, fai clic su Chiudi e carica per mostrare il punteggio della performance dal vivo nel tuo foglio di lavoro:

Excel dati in tempo reale
Excel dati in tempo reale

Puoi seguire lo stesso processo per altre metriche di interesse.

Crea una dashboard delle prestazioni Web

Questa dimostrazione Codepen fornisce un modulo in cui è possibile inserire un URL e scegliere l'analisi desktop o mobile per ottenere risultati.

Il codice crea un URL PageSpeed ​​Insights, richiama l'API, quindi esegue il rendering di vari risultati in una tabella di riepilogo più rapida da visualizzare rispetto a un report Lighthouse standard:

Esempio di risultato del test dall'API PageSpeed
Esempio di risultato del test

La funzione asincrona startCheck() viene chiamata quando il modulo viene inviato. Annulla l'evento di invio e nasconde i risultati precedenti:

 // make API request async function startCheck(e) { e.preventDefault(); show(resultTable, false); show(status); show(error, false);

Quindi costruisce apiURL dai dati del modulo e disabilita i campi:

 const form = e.target, fields = form.firstElementChild, data = new FormData(form), qs = decodeURIComponent( new URLSearchParams(data).toString() ), apiURL = form.action + '?' + qs; fields.disabled = true;

L'API Fetch viene utilizzata per chiamare l'URL PageSpeed, ottenere la risposta e analizzare la stringa JSON in un oggetto JavaScript utilizzabile. Un blocco try/catch garantisce la cattura degli errori:

 try { // call API and get result const response = await fetch(apiURL), result = await response.json();

L'oggetto risultato viene passato a una funzione showResult() . Questo estrae le proprietà e le inserisce nella tabella dei risultati o in qualsiasi altro elemento HTML che ha l'attributo del punto dati impostato su una proprietà dell'API PageSpeed, ad es.

<td data-point="lighthouseResult.categories.performance.score"></td>

La fine del blocco try:

 // output result showResult(result); show(status, false); show(resultTable); }

Infine, un blocco catch gestisce gli errori e i campi del modulo vengono riabilitati in modo da poter eseguire ulteriori test:

 catch(err) { // API error console.log(err); show(status, false); show(error); } fields.disabled = false; }

Ulteriori opzioni di sviluppo

Il codice di esempio sopra recupera un risultato dall'API PageSpeed ​​Insights quando lo richiedi. Il report è più configurabile rispetto a Lighthouse, ma l'esecuzione rimane un processo manuale.

Se intendi sviluppare la tua dashboard, potrebbe essere pratico creare una piccola applicazione che richiami l'API PageSpeed ​​Insights e memorizzi il JSON risultante in un nuovo record di database rispetto all'URL testato e alla data/ora corrente. La maggior parte dei database ha il supporto JSON sebbene MongoDB sia l'ideale per l'attività. Un cron job può chiamare la tua applicazione a tempo, forse una volta al giorno durante le prime ore del mattino.

Un'applicazione lato server può quindi implementare la propria API REST in base ai requisiti di reportistica, ad esempio restituire le modifiche a specifiche metriche delle prestazioni tra due date. Può essere richiamato da JavaScript lato client per visualizzare tabelle o grafici che illustrano i miglioramenti delle prestazioni nel tempo.

Se desideri creare report complessi con quantità significative di dati, è preferibile pre-calcolare le cifre una volta al giorno nel momento in cui sono disponibili nuovi dati PageSpeed. Dopotutto, non vuoi mostrare come il rendimento sta migliorando su un rapporto che richiede minuti per essere generato!

Vuoi migliorare il posizionamento e l'esperienza utente del tuo sito web? Guarda il tuo sito attraverso gli occhi di Google con l'API PageSpeed ​​Insights! Scopri come monitorare e ottimizzare le prestazioni della tua pagina come un professionista Click to Tweet

Riepilogo

Lo strumento Lighthouse di Chrome è favoloso ma è un lavoro ingrato valutare frequentemente molte pagine. L'API PageSpeed ​​Insights ti consente di valutare le prestazioni del sito utilizzando tecniche programmatiche. I benefici:

  • I test delle prestazioni possono essere automatizzati. Non puoi dimenticare di eseguire un test.
  • I risultati vengono raccolti sui server di Google in modo che i fattori di velocità del dispositivo locale e della rete abbiano meno influenza.
  • Le metriche includono informazioni che di solito non sono disponibili in Lighthouse.
  • Metriche importanti possono essere registrate e monitorate nel tempo per garantire che le prestazioni della pagina siano migliorate con ogni aggiornamento.
  • Le informazioni su prestazioni, accessibilità e SEO possono essere visualizzate su report semplificati in modo che siano disponibili a colpo d'occhio per sviluppatori, manager e clienti.