SEO e Javascript: i limiti dell’ottimizzazione

SEO e Javascript

L’articolo prende spunto da una pagina ufficiale, Concetti di base della SEO per JavaScript, ma ne amplia la portata aggiungendo commenti autorevoli sulla capacità di indicizzazione delle pagine.

Cos’è Javascript?

Javascript (abbreviato JS) è un linguaggio di programmazione orientato agli oggetti e interpretato.

Ha una sintassi basata sui linguaggi di programmazione più famosi come C++ e Java e ne condivide molte costruzioni del linguaggio.

Le applicazioni più famose e utilizzate riguardano il web client side e il suo caricamento impatta sulla velocità di caricamento delle pagine e sulla capacità di essere interpretate dai bot.

Logo di Javascript

Che rapporto ha con Googlebot?

Nel maggio del 2019 Google annuncia la completa lettura da parte di Googlebot delle pagine che utilizzano Javascript e fogli di stile (CSS).

Nonostante l’entusiasta dichiarazione molti specialisti SEO cominciano a sondare i limiti della nuova scansione, che si rivela in ogni caso sicuramente più affidabile delle versioni precedenti.

Per comprendere come Googlebot possa analizzare i siti, bisogna conoscere il servizio di rendering web (WRS) e il sistema di elaborazione del codice Javascript.

Render di Googlebot

Elaborazione di Javascript e WRS

WRS o servizio di rendering web è un browser che riesce ad accedere al codice sorgente di un sito, ed equivale per gli utenti all’opzione Visualizza come Google presente in Search Console.

Ovviamente lo scopo di questo servizio sarebbe di rendere visualizzabile il sito ai bot alla stessa maniera di come lo visualizza un utente tramite un browser tradizionale, ma non sempre questo accade.

I passaggi effettuati durante un’elaborazione sono i seguenti:

  • scansione iniziale: una volta recuperata una richiesta HTTP parte un controllo al file robots.txt per controllare eventuali indicazioni.
  • scansione alle URL: viene controllata la presenza degli href e inseriti in coda di scansione.
  • scansione app shell: prima della normale renderizzazione viene effettuato il controllo del codice Javascript, visto che alcuni siti costruiti in questo modo potrebbero utilizzare un modello app shell che renderebbe visibili i contenuti effettivi in una seconda fase.
  • rendering: Google affettua il rendering della pagina e scansiona una seconda volta la pagina per vedere se ci sono nuovi href o elementi, non presenti durante la prima scansione.
  • indicizzazione

Problemi con crawlers diversi da Googlebot

Non tutti i crawlers leggono perfettamente Javascript, motivo per cui è sempre meglio eseguire alcuni processi in pre-rendering o SSR (server side rendering) per far si che la prima scansione riporti tutti gli elementi HTML che devono essere presenti nella pagina.

Risoluzione problemi SEO con Javascript

I problemi principali nel rendering di un file riguarda ovviamente solo quelli HTML (non certo i PDF o altro), e una delle cause principali degli errori in questo caso riguarda la presenza di codice Javascript esterno e non incorporato nella pagina, come nell’esempio:

<script type = "text / javascript" src = "https://www.example.com/wp-admin/javascript.js" />

Il problema principale nasce a causa di eventuali directory bloccate dal robots.txt che non permettono di recuperare il file javascript.

Un problema altrettanto comune è inerente alla sincronizzazione tra i file javascript esterni e la cache della pagina.

Molto spesso i browser non continuano a recuperare gli elementi della pagina nel tempo, ma si affidano alle indicazioni della cache.

E terzo, sebbene Google faccia un controllo delle operazioni Javascript effettuate durante il caricamento della pagina, alcuni script che fanno richieste HTTP potrebbero non essere compatibili con il tipo di scansione effettuata dal motore di ricerca.

In realtà oltre queste tre categorie di possibili problemi difficilmente un bot controllerà:

  • operazioni che riguardano interazioni come il click di un bottone o altre operazioni interattive generate per la UX degli utenti.
  • complessi caricamenti di script che generano le pagine e le modificano dopo il caricamento.

Lazy loading

Per quando riguarda il caricamento “pigro” delle immagini non ci sono problemi particolari, basta seguire la guida di Google che potete raggiungere tramite questo link.

Verificare errori di indicizzazione

Sebbene l’indicizzazioni di pagine non eccessivamente complesse sia da considerarsi avvenuto, è sempre bene effettuare almeno una verifica manuale.

Per farlo basta effettuare una scansione con lo strumento Rendimento di Search Console, caricare una URL che abbia in comune con le altre gli script caricati e controllare le eventuali eccezioni presenti nella console Javascript.

A tal proposito bisogna però sapere che alcuni errori sono costitutivi, perché riguardano eventuali blocchi al permesso di scansione da parte di utenti che non siano registrati (es. una sezione privata del sito), ed effettivamente il bot non lo è.

Allo stesso modo molti dei dati della sessione potrebbero venire cancellati tra diversi caricamenti della pagina, ma un WRS non tiene conto del rapporto tra le aperture della varie pagine, quindi ogni controllo è da considerarsi disgiunto dagli altri.

Lo stesso ragionamento riguarda anche il salvataggio di cookie.

Per quanto riguarda invece il rilevamento delle funzionalità, ossia quelle operazioni riguardante API che tengono conto della geolocalizzazione e altro, come per esempio la risoluzione di WebGL. Molti di queste funzione sarebbe meglio che funzionassero con caricamenti server-side, per non generare problemi in un secondo momento.

Terminata questa operazione, o meglio ancora con una priorità identica a questa, è il caso di effettuare un’analisi che riguardi il caricamento della versione mobile del sito.

Per quanto riguarda invece eventuali problemi di visualizzazione in siti che lavorano utilizzando light DOM e shadow DOM, vi rimando ad un articolo sul tag slot e alle best practices relative ai componenti web.

Related Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.