JavaScript e SEO: rendering e indicizzazione
· 9 min
Google sa eseguire il rendering del JavaScript, ma con un ritardo che va da qualche secondo a diverse settimane a seconda dell'autorevolezza del sito. I contenuti critici (testo principale, link, dati strutturati) non devono dipendere dal JavaScript per essere visibili. Il Server-Side Rendering (SSR) o il prerendering sono le soluzioni raccomandate.
I framework JavaScript moderni (React, Vue, Angular, Next.js) dominano lo sviluppo web. Ma il loro rapporto con la SEO resta complesso: se Google ha fatto progressi nel rendering JS, i rischi di indicizzazione parziale o ritardata sono reali e costosi.
Come Google elabora il JavaScript
Googlebot scarica l'HTML iniziale della pagina, poi mette il rendering JavaScript in una coda di attesa (WRS — Web Rendering Service). Il rendering completo può avvenire secondi, giorni o addirittura settimane dopo, a seconda della popolarità del sito e del carico del motore.
Questo ritardo di rendering significa che il contenuto solo-JS viene sistematicamente indicizzato più tardi del contenuto HTML statico. Su un sito con poca autorevolezza, alcuni contenuti possono non essere mai renderizzati correttamente.
I rischi concreti per l'indicizzazione
Il contenuto mostrato solo dopo un'interazione dell'utente (clic, scroll, tab) non viene mai visto da Googlebot. Le fisarmoniche delle FAQ, i contenuti a schede e quelli al passaggio del mouse sono i casi più comuni.
I link generati dinamicamente dal JavaScript non vengono sempre seguiti da Googlebot. Se il Suo linking interno si regge su link creati dopo il caricamento della pagina, una parte della Sua architettura resta invisibile al crawler.
- Contenuto dietro un evento di clic o hover: non indicizzato.
- Link in un menu hamburger in puro JS senza fallback HTML: potenzialmente ignorati.
- Dati strutturati JSON-LD iniettati via JS: rendering differito, idoneità ai rich results ritardata.
- Meta tag generati lato client: title e description potenzialmente assenti alla prima scansione.
- Testo di paginazione caricato via AJAX senza URL dedicato: contenuto invisibile.
Le soluzioni raccomandate
Il Server-Side Rendering (SSR) genera l'HTML completo sul server prima di inviarlo al browser. Googlebot riceve un HTML ricco fin dalla prima scansione, senza aspettare il rendering JavaScript. Next.js, Nuxt.js e SvelteKit offrono l'SSR nativamente.
La Static Site Generation (SSG) pre-genera le pagine a ogni build. Ancora più veloce dell'SSR, ma adatta solo ai contenuti aggiornati di rado.
Se un rifacimento in SSR non è praticabile, il prerendering tramite un servizio come Rendertron o Prerender.io riconosce Googlebot e gli serve una versione HTML statica pre-renderizzata della pagina.
I siti che migrano da un'architettura SPA (Single Page Application) all'SSR osservano in media un miglioramento del 20-50% del numero di pagine indicizzate nei 60 giorni successivi alla migrazione.
Studi di settore 2025-2026 sulle migrazioni SSR e l'indicizzazione
Diagnosticare i problemi di rendering JS sul Suo sito
Lo strumento Controllo URL di Search Console offre uno screenshot della pagina così come la vede Googlebot. Confronti questa cattura con la resa reale nel Suo browser: ogni scostamento rivela un problema di rendering.
Provi anche a disattivare JavaScript in Chrome (DevTools > Settings > Debugger > Disable JavaScript): se la Sua pagina non mostra nulla o perde i link di navigazione, ha un problema SEO critico da risolvere.
FAQ
Google può indicizzare correttamente una SPA (Single Page Application)?
Sì, ma con limiti e ritardi. Il contenuto delle SPA viene indicizzato dopo il rendering JavaScript, che può richiedere diverse settimane. Sui mercati competitivi questo ritardo è uno svantaggio reale. L'SSR o il prerendering restano la soluzione più affidabile.
Next.js è una buona scelta per la SEO?
Sì, è uno dei framework più SEO friendly sul mercato. Offre SSR, SSG e ISR (Incremental Static Regeneration) in modo nativo. Meta tag, sitemap e dati strutturati possono essere generati lato server senza configurazioni complesse.
I contenuti dentro tab o fisarmoniche vengono indicizzati?
Google afferma che il contenuto nascosto via CSS (display:none o visibility:hidden) può essere indicizzato, ma con un peso ridotto. Il contenuto dietro un'interazione JavaScript è più problematico. Per FAQ o informazioni chiave, preferisca una resa HTML nativa con details/summary o si assicuri che il contenuto sia presente nell'HTML iniziale.
Bisogna rendere il JavaScript compatibile con tutti i bot o solo con Google?
Google è l'unico motore a eseguire attivamente il rendering del JavaScript. Bing sta facendo progressi ma resta indietro. Se il Suo pubblico arriva soprattutto da Google, concentri gli sforzi sulla compatibilità con Googlebot. Un'architettura SSR avvantaggia automaticamente tutti i bot.