Skip to content

Non sei sicuro che Google riesca a leggere le tue pagine in JavaScript? Leggi qui…

All’inizio Google era un motore di ricerca più semplice e si limitava a leggere il contenuto dei file HTML individuati dai suoi spider. Nel 1998 il web era meno complesso, JavaScript e CSS non erano nemmeno presi in considerazione dai Motori di Ricerca perchè linguaggi poco diffusi. Oggi però le cose sono cambiate e anche Google si è adeguato e continua a farlo giorno dopo giorno.

Le pagine web vengono lette nella loro completezza da Google come se fosse un browser e non uno spider a leggerle. Vengono renderizzati anche elementi non inclusi nel singolo file HTML. Hai presente la preview generata da “Visualizza come Google” in Google Search Console? Ecco, quella e la pagina web come la vede Google, appunto.

Se sviluppi in JavaScript ti consiglio di leggere alcune linee guida ufficiali da seguire per aiutare Googlebot ad individuare i tuoi contenuti:

Problemi? Può capitare

Esistono casi in cui Google non è in grado di leggere e/o interpretare il codice JavaScript inserito in pagina, vediamo alcuni esempi:

  • Quando le risorse come JavaScript o CSS sono in file separati e bloccati dal Robots.txt (Disallow). Se si blocca l’accesso a questi file si impedisce a Googlebot di recuperarli, leggerli ed interpretarli ed il contenuto non verrà mai mostrato nei risultati di ricerca. E’ importante che Googlebot ottenga tutti i file necessari a disegnare la pagina completa, soprattutto per siti mobile dove file esterni CSS aiutano gli algoritmi a capire se la pagina sia ottimizzata o meno per mobile
  • Quando il web server non è in grado di gestire i volumi di richieste di risorse dei crawler. Se Googlebot effettua 100 richieste al webserver e solo 10 vengono soddisfatte potrebbero esserci effetti negativi sulle capacità di Google di interpretare la pagina. Assicurati che il webserver abbia una velocità di risposta tale da poter essere scansionato dai motori di ricerca
  • Nel Web Standards Curriculum si discute su come sia una buona norma seguire le linee guida di graceful degradation and progressive enhancement. Il concetto che sta alla base di queste due linee guida è che un web sviluppato in modo semplice e scalabile aumenta l’accessibilità. Tradotto in altre parole è consigliabile fornire contenuti fruibili anche senza JavaScript nel caso il browser di un utente non avesse quella funzionalità e per indicizzarsi sui motori di ricerca che ancora non interpretano JavaScript
  • Ci sono casi in cui JavaScript è semplicemente troppo complesso (e beccati questo ossimoro) e Google non riesce ad interpretarlo
  • Ci sono casi in cui JavaScript rimuove del contenuto dalla pagina invece di aggiungerlo e questo impedisce a Googlebot di indicizzare quel particolare contenuto

Come al solito semplicità e buon senso pagano :) buono sviluppo!

Aggiornamento

Oggi John Mueller ha pubblicato queto post in cui aggiorna e chiarisce le linee guida di Google in merito al crawling e indexing di contenuti e Progressive Web Apps [1] che usano Javascript. Di seguito inserisco la traduzione.

# Non nascondere i contenuti a Googlebot. Google consiglia di utilizzare la tecnica “feature detection” oppure “progressive enhancement” [2] per rendere i contenuti fruibili a tutti. Evita la redirezione ad una pagina “browser non supportato”. Considera l’utilizzo di polifill. Ad oggi Googlebot non supporta queste funzioni: Service Workers, Fetch API, Promises e requestAnimationFrame.

# Usa la tag rel=canonical [3] quando un contenuto è fruibile da diversi URL.

# Evita lo schema AJAX-Crawling sui nuovi siti web. Considera la migrazione rapida di un sito che usa questo schema. Ricordati di rimuovere il tag “meta fragment” dopo aver migrato. Non usare il tag “meta fragment” se l’URL “escaped fragment” non fornisce un contenuto completamente renderizzato. [4]

# Evita l’utilizzo di “#” negli URLs (fuori da “#!”). Googlebot raramente indicizza URL con in cancelletto all’interno “#”. Usa URL “normali” con path/filename/query-parameters, considera l’implementazione delle History API per la navigazione.

# Usa lo strumento “Fetch and Render” di Google Search Console [5] per testare come Googlebot vede le tue pagine. Questo strumento non supporta i caratteri “#!” oppure “#” negli URL.

# Assicurati che tutte le risorse necessarie non siano bloccate al Robots.txt (incluse le dipendenze dai file JavaScript / frameworks, server responses, 3rd-party APIs, etc). Lo strumento “Fetch and Render” mostrerà un elenco di tutte le risorse bloccate che ha trovato. Se le risorse bloccate non risiedono sul tuo server verifica che le tue pagine siano comunque fruibili.

# Limita il numero di risorse incluse, in particolare il numero di file JavaScript necessari per renderizzare la pagina. Un numero eccessivo di dipendenze può risultare in un server timeout oppure ad un rendering parziale. Utilizza sempre le direttive di caching del browser per ridurre i download successivi.

# Google supporta l’utilizzo di JavaScript per fornire meta dati come title tag, meta description, robots meta tags, dati strutturati & co. Quando usi AMP, ricordati che le pagine HTML che usano lo standard AMP sono statiche, ma le pagine associate possono essere costruite usando le tecniche JS/PWA. Ricordati sempre di inserire nella sitemap il parametro “lastmod” per segnalare modifiche e aggiornamenti avvenuti sul tuo sito.

# Tieni a mente che Google è il motore di ricerca più avanzato, non è detto che gli altri siano in grado di scansionare tutto il web interpretando JavaScript.

Questa lista non contiene solo aggiornamenti come potete vedere, ma elenca le buone norme per assicurare che Google sia in grado di indicizzare i nostri contenuti.

Link:
[1] PWA: https://developers.google.com/web/progressive-web-apps
[2] Progressive enhancement: https://en.wikipedia.org/wiki/Progressive_enhancement
[3] rel=canonical: https://support.google.com/webmasters/answer/139066
[4] AJAX Crawling scheme: https://developers.google.com/webmasters/ajax-crawling/docs/specification
[5] https://support.google.com/webmasters/answer/6066468

Articoli correlati

Autore

Commenti |3

Lascia un commento Lascia un commento
  1. Filippo 8 commenti

    Ciao Giovanni, secondo te se un sito è ben visibile e navigabile anche senza css e js abilitati, e per evitare troppe richieste al server li escludo dall’indicizzazione tramite file robots, Google può penalizzare il sito?

    1. Giovanni Sacheli 754 risposte

      Ciao Filippo, non è cosa che consiglierei, meglio spendere quei 5 € in più per un hosting migliore in grado di reggere le richieste degli spider.
      Anche se Google legge i contenuti nell’HTML non sa valutare se la pagina è mobile-optimized, non vede elementi dinamici, non vede il foglio di stile, questi limiti sicuramente non aiutano.
      Se vuoi ridurre le richieste al server puoi inserire CSS e JS nell’HTML, anche se non è certo una best practice.

      1. Filippo 8 commenti

        Ciao Giovanni, grazie :)

Lascia un commento

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

Ultimi articoli aggiornati

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’expertise di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1123 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Affidati alla nostra esperienza per fare la differenza.
Richiedi un preventivo

Non perderti altre guide, iscriviti per ricevere un avviso mensile con gli aggiornamenti del blog!

Iscriviti alla newsletter!

Informativa sui cookies

Noi e terze parti selezionate utilizziamo cookie o tecnologie simili per finalità tecniche e, con il tuo consenso, anche per le finalità di esperienza e misurazione come specificato nella cookie policy. Puoi liberamente prestare, rifiutare o revocare il tuo consenso, in qualsiasi momento, accedendo al pannello delle preferenze. Il rifiuto del consenso può rendere non disponibili le relative funzioni. Usa il pulsante “Accetta” per acconsentire. Usa il pulsante “Rifiuta” per continuare senza accettare.