Googlebot Simulator: vedere una pagina come la renderizza Google, JavaScript incluso
Incollate l’indirizzo di una pagina pubblica. Lo strumento la carica con lo user agent di Googlebot per smartphone, esegue il suo JavaScript in Chromium e mette a confronto l’HTML inviato dal server con l’HTML renderizzato. Su un sito multilingue vedete la versione che riceve un bot che non ha scelto né l’italiano, né il tedesco, né il francese.
Rendering in corso…
Cosa contiene il rapporto
Un caricamento completo della pagina in Chromium, con rete, console e screenshot.
La risposta del server
Stato HTTP, catena di reindirizzamenti passo per passo, intestazioni che contano per l’indicizzazione, come X-Robots-Tag e Link, lettura del robots.txt per Googlebot e cronologia del caricamento.
HTML grezzo e HTML renderizzato
Title, meta description, meta robots, URL canonico, H1, numero di H2, numero di parole, link interni ed esterni, immagini e attributi alt, JSON-LD, hreflang, lingua dichiarata. Ogni valore modificato dal JavaScript è evidenziato. I link che esistono solo dopo il rendering sono elencati a parte.
Cosa ha visto il browser
Screenshot della pagina in larghezza mobile, risorse non caricate con lo stato o il motivo dell’errore, errori JavaScript della console e i due codici sorgente da consultare.
I limiti, prima di iniziare
Lo strumento simula Googlebot: stesso user agent, stessa famiglia di browser, ma le richieste partono dal nostro server e non dagli indirizzi IP di Google. Un sito che verifica la provenienza reale di Googlebot risponde quindi in modo diverso, spesso con un 403. Il rapporto descrive ciò che un bot riceve caricando la pagina. Per sapere se la pagina è nell’indice, il riferimento resta la Search Console. Sono accettate solo pagine pubbliche in HTTP o HTTPS sulle porte standard. Lo strumento non clicca nulla, non scorre la pagina, non accetta alcun banner e non sceglie alcuna lingua. Lo screenshot si ferma a 2600 pixel di altezza, ogni codice sorgente a un milione di caratteri, e il servizio è limitato a otto ispezioni all’ora per connessione.
Un sito svizzero in più lingue: la versione che riceve Googlebot
Googlebot non invia l’intestazione Accept-Language e scansiona per lo più da indirizzi IP statunitensi. Riceve la versione che il vostro sito serve per impostazione predefinita.
Reindirizzamento in base alla lingua del browser
Molti siti svizzeri indirizzano il visitatore verso /it/, /de/ o /fr/ in base alla lingua del browser o all’indirizzo IP. Un bot che non annuncia nessuna di queste lingue finisce sempre nello stesso ramo. La catena di reindirizzamenti del rapporto mostra quale. Se la home porta sempre alla versione tedesca, Google scopre le vostre pagine in italiano solo tramite i link interni e gli hreflang.
Hreflang inseriti da uno script
Le annotazioni it-CH, de-CH e fr-CH vengono talvolta inserite da un tag manager o dal framework. Il rapporto le conta nell’HTML grezzo e nell’HTML renderizzato. Zero da una parte e tre dall’altra: i vostri hreflang dipendono dalla riuscita del rendering, e i bot senza JavaScript non li vedono mai.
Lingua dichiarata della pagina
Un template condiviso tra le tre versioni linguistiche conserva spesso lo stesso attributo lang ovunque. Una pagina in italiano che dichiara de-CH confonde il segnale per i motori di ricerca e per gli screen reader. Ispezionate una pagina per lingua e confrontate la riga corrispondente.
Perché confrontare HTML grezzo e HTML renderizzato
La SEO JavaScript si riduce a una domanda: ciò che conta per il posizionamento è già nella risposta del server, oppure arriva solo dopo l’esecuzione degli script?
Google renderizza le pagine in due tempi
Googlebot legge prima l’HTML inviato dal server, poi mette la pagina in coda per renderizzarla con Chromium. I link e il testo presenti già alla prima lettura vengono scoperti subito. Ciò che dipende da uno script attende il rendering e manca se quel giorno lo script fallisce.
Gli assistenti IA si fermano all’HTML grezzo
A oggi, la maggior parte dei bot che alimentano gli assistenti IA recupera la risposta del server senza eseguire alcuno script. Una pagina il cui contenuto arriva interamente via JavaScript appare loro vuota. Riguarda la visibilità nelle risposte generate tanto quanto la ricerca classica.
Un tag riscritto crea due versioni della pagina
Un title, un canonical o un meta robots modificato dal JavaScript dà a Google due letture contraddittorie. Un noindex presente nell’HTML grezzo è il caso più rischioso: Google può rinunciare al rendering, e lo script che doveva rimuoverlo non viene mai eseguito.
Una risorsa bloccata degrada il rendering in silenzio
Un file JavaScript vietato dal robots.txt, un bundle in 404 dopo un rilascio, un’API che respinge i bot: da voi la pagina appare completa grazie alla cache, per un bot senza cache resta incompleta. L’elenco delle risorse non caricate serve a individuare questi casi.
Leggere il rapporto, nell’ordine
Verificare che la pagina sia indicizzabile
Stato 200, nessun reindirizzamento inatteso, nessun noindex nel meta robots né nell’intestazione X-Robots-Tag, indirizzo consentito dal robots.txt, canonical che punta alla pagina stessa.
Controllare la versione linguistica servita
Guardate l’indirizzo finale, la lingua dichiarata e il numero di hreflang. Ripetete l’ispezione su una pagina di ogni lingua: i tre rapporti devono mostrare la stessa struttura.
Misurare la dipendenza dal JavaScript
Confrontate il numero di parole e di link tra le due colonne. Uno scarto ridotto indica un rendering lato server solido. Un HTML grezzo quasi vuoto indica un’applicazione renderizzata nel browser, da trattare con priorità sulle pagine che devono posizionarsi.
Correggere alla fonte, poi rilanciare
Rendering lato server, generazione statica o prerendering per i contenuti e i link che contano. I tag SEO e gli hreflang vanno inseriti già nella risposta del server. Rilanciate l’ispezione dopo il rilascio: la cache dello strumento scade dopo dieci minuti.
Oltre una pagina pubblica
La pagina che avete davanti
Per una pagina protetta da password, un ambiente di staging o un’installazione locale, cioè dove uno strumento online non arriva. L’analisi riguarda la pagina così come l’ha renderizzata il vostro browser.
- Tag, titoli e link della pagina renderizzata
- Link rotti evidenziati nella pagina
- Dati strutturati JSON-LD
- Tutto resta nel browser
Un sito intero
Un’ispezione riguarda un solo indirizzo. Per sapere quante pagine rispondono con un errore, reindirizzano o puntano a link morti in ogni lingua, bisogna scansionare tutto il sito.
- Stati 4XX e 5XX, pagine senza risposta
- Reindirizzamenti, catene e loop
- Link rotti interni ed esterni
- Pagina di origine di ogni link in errore
Per controllare i link di una sola pagina senza installare nulla, lo strumento per trovare i link rotti funziona con lo stesso principio. Sull’intero sito, l’audit tecnico SEO analizza il crawl completo: stati, tag, canonical, profondità.
