Fare in modo che JavaScript e la Ricerca Google funzionino insieme

Ricevi gli aggiornamenti e gli approfondimenti più recenti da Google I/O 2019.

Sta accadendo grandi cose con la Ricerca Google e siamo felici di condividerle alla conferenza Google I/O 2019.

In questo post ci concentreremo sulle best practice per rendere le app web JavaScript rilevabili nella Ricerca Google, tra cui:

  • Il nuovo intramontabile Googlebot
  • Pipeline di Googlebot per la scansione, il rendering e l'indicizzazione
  • Rilevamento delle funzionalità e gestione degli errori
  • Strategie di rendering
  • Strumenti di test per il tuo sito web nella Ricerca Google
  • Sfide comuni e possibili soluzioni
  • Best practice per la SEO nelle app web JavaScript

Ti presentiamo Googlebot

Quest'anno abbiamo annunciato l'attesissimo nuovo Googlebot evergreen.

Googlebot con il logo di Chrome
Googlebot utilizza ora un motore di rendering moderno di Chromium.

Googlebot ora utilizza un motore Chromium moderno per eseguire il rendering dei siti web per la Ricerca Google. Inoltre, testeremo le versioni più recenti di Chromium per mantenere Googlebot aggiornato, in genere entro alcune settimane da ogni release stabile di Chrome. Questo annuncio è una grande novità per sviluppatori web e SEO perché segna l'arrivo di oltre 1000 nuove funzionalità, ad esempio ES6+, IntersectionObserver e componenti web v1, in Googlebot.

Informazioni sul funzionamento di Googlebot

Googlebot è una pipeline con diversi componenti. Vediamo come capire in che modo Googlebot indicizza le pagine per la Ricerca Google.

Un diagramma che mostra un URL che si sposta da una coda di scansione a una fase di elaborazione che estrae gli URL collegati e li aggiunge alla coda di scansione, una coda di rendering che si collega a un renderer che produce l'HTML. Il processore utilizza questo codice HTML per estrarre di nuovo gli URL collegati e indicizzare i contenuti.
Pipeline di Googlebot per la scansione, il rendering e l'indicizzazione di una pagina.

La procedura funziona nel seguente modo:

  1. Googlebot accoda gli URL per la scansione.
  2. Recupera quindi gli URL con una richiesta HTTP basata sul budget di scansione.
  3. Googlebot analizza il codice HTML per individuare i link e accoda i link rilevati per la scansione.
  4. Googlebot accoda la pagina per il rendering.
  5. Il prima possibile, un'istanza di Chromium headless esegue il rendering della pagina, inclusa l'esecuzione di JavaScript.
  6. Googlebot utilizza l'HTML sottoposto a rendering per indicizzare la pagina.

La tua configurazione tecnica può influenzare il processo di scansione, rendering e indicizzazione. Ad esempio, tempi di risposta lenti o errori del server possono influire sul budget di scansione. Un altro esempio potrebbe essere la richiesta di JavaScript per il rendering dei link che potrebbe rallentare il rilevamento di questi link.

Utilizzare il rilevamento delle funzionalità e gestire gli errori

Il Googlebot evergreen ha molte nuove funzionalità, ma alcune non sono ancora supportate. Affidarsi a funzionalità non supportate o non gestire correttamente gli errori può impedire a Googlebot di visualizzare o indicizzare i tuoi contenuti.

Ad esempio:

 <body>
   <script>
     navigator.geolocation.getCurrentPosition(function onSuccess(position) {
       loadLocalContent(position);
     });
   </script>
 </body>

In alcuni casi questa pagina potrebbe non mostrare alcun contenuto perché il codice non viene gestito quando l'utente rifiuta l'autorizzazione o quando la chiamata getCurrentPosition restituisce un errore. Googlebot rifiuta richieste di autorizzazione come questa per impostazione predefinita.

Questa è una soluzione migliore:

 <body>
   <script>
     if (navigator.geolocation) {
       // this browser supports the Geolocation API, request location!
       navigator.geolocation.getCurrentPosition(
         function onSuccess(position) {
           // we successfully got the location, show local content
           loadLocalContent(position);
         }, function onError() {
           // we failed to get the location, show fallback content
           loadGlobalContent();
         });
     } else {
       // this browser does not support the Geolocation API, show fallback content
       loadGlobalContent();
     }
   </script>
 </body>

Se hai problemi con l'indicizzazione del tuo sito JavaScript, consulta la nostra guida alla risoluzione dei problemi per trovare soluzioni.

Scegli la giusta strategia di rendering per la tua app web

Attualmente, la strategia di rendering predefinita per le app a pagina singola è il rendering lato client. Il codice HTML carica il codice JavaScript, che genera i contenuti nel browser durante l'esecuzione.

Diamo un'occhiata a un'app web che mostra una raccolta di immagini di gatti e utilizza JavaScript per il rendering completo nel browser.

Una casella di codice che mostra il codice HTML e che carica alcuni script. Uno screenshot di una pagina web su dispositivo mobile che mostra immagini segnaposto durante il caricamento dei contenuti effettivi.
La strategia di rendering influenza le prestazioni e la robustezza delle tue app web.

Se puoi scegliere liberamente la tua strategia di rendering, valuta il rendering lato server o il pre-rendering. Esegue JavaScript sul server per generare i contenuti HTML iniziali, in modo da migliorare le prestazioni sia per gli utenti che per i crawler. Queste strategie consentono al browser di iniziare a eseguire il rendering dell'HTML quando arriva sulla rete, velocizzando il caricamento della pagina. La sessione di rendering all'I/O o il post del blog sul rendering sul web mostrano come il rendering lato server e l'idratazione possono migliorare le prestazioni e l'esperienza utente delle app web e forniscono altri esempi di codice per queste strategie.

Se stai cercando una soluzione alternativa per aiutare i crawler che non eseguono JavaScript (o se non puoi apportare modifiche al codebase del frontend), prendi in considerazione il rendering dinamico, che puoi provare in questo codelab. Tieni presente, tuttavia, che non otterrai i vantaggi in termini di esperienza utente o prestazioni che otterresti con il rendering lato server o il prerendering, in quanto il rendering dinamico pubblica solo codice HTML statico per i crawler. Per questo si tratta di una strategia alternativa, anziché a lungo termine.

Testa le pagine

In genere la maggior parte delle pagine funziona bene con Googlebot, ma ti consigliamo di testarle regolarmente per assicurarti che i tuoi contenuti siano disponibili per Googlebot e che non ci siano problemi. Esistono diversi ottimi strumenti per farlo.

Il modo più semplice per controllare rapidamente una pagina è il test di ottimizzazione mobile. Oltre a segnalare problemi di ottimizzazione per i dispositivi mobili, ti fornisce anche uno screenshot dei contenuti above the fold e del codice HTML sottoposto a rendering così come li vede Googlebot.

Il test di ottimizzazione mobile mostra il codice HTML sottoposto a rendering che Googlebot vede dopo aver eseguito il rendering della pagina
Il test di ottimizzazione mobile mostra l'HTML sottoposto a rendering utilizzato da Googlebot.

Puoi anche scoprire se ci sono problemi di caricamento delle risorse o errori di JavaScript.

Il test di ottimizzazione mobile mostra errori JavaScript e un&#39;analisi dello stack.

Ti consigliamo di verificare il dominio in Google Search Console in modo da poter utilizzare lo strumento Controllo URL per scoprire di più sullo stato di scansione e indicizzazione di un URL, ricevere messaggi quando Search Console rileva problemi e scoprire ulteriori dettagli sulle prestazioni del tuo sito nella Ricerca Google.

Lo strumento Controllo URL che mostra una pagina indicizzata con informazioni su rilevamento, scansione e indicizzazione per un URL
Lo strumento Controllo URL in Search Console mostra lo stato di una pagina durante la scansione, il rendering e l'indicizzazione.

Per indicazioni e suggerimenti generali sulla SEO, puoi utilizzare i controlli SEO in Lighthouse. Per integrare i controlli SEO nella suite di test, utilizza l'interfaccia a riga di comando di Lighthouse o il bot di Lighthouse CI.

Un report SEO faro con un punteggio di 44, avvisi sull&#39;ottimizzazione per i dispositivi mobili e avvisi sulle best practice per i contenuti
Lighthouse mostra consigli generali sulla SEO per una pagina.

Questi strumenti ti aiutano a identificare, eseguire il debug e risolvere i problemi relativi alle pagine nella Ricerca Google e dovrebbero far parte della tua routine di sviluppo.

Ricevi aggiornamenti e contattaci

Per tenerti al corrente su annunci e modifiche alla Ricerca Google, tieni d'occhio il nostro blog per i webmaster, il canale YouTube dei webmaster di Google e il nostro account Twitter. Consulta anche la nostra guida per gli sviluppatori alla Ricerca Google e la nostra serie di video sulla SEO per JavaScript per scoprire di più sulla SEO e su JavaScript.