Discussion Technical SEO JavaScript

La nostra SPA React è completamente invisibile ai crawler AI - come risolviamo?

RE
ReactDev_Marcus · Frontend Lead
· · 82 upvotes · 10 comments
RM
ReactDev_Marcus
Frontend Lead · 9 gennaio 2026

Abbiamo costruito il nostro sito come SPA React tre anni fa. Ottima esperienza utente, interazioni rapide.

Ma ora ci stiamo rendendo conto che i crawler AI non vedono nulla. Quando controllo i log del server:

  • GPTBot riceve solo la shell HTML vuota
  • PerplexityBot stessa cosa
  • Tutto il nostro vero contenuto viene caricato via JavaScript

Il problema:

  • Visibilità AI zero
  • I concorrenti con siti tradizionali vengono citati
  • Abbiamo ottimi contenuti ma l’AI non può accedervi

Il nostro stack attuale:

  • React 18 con React Router
  • Solo rendering lato client
  • Caricamento contenuti tramite API
  • Routing basato su hash (/#/pagina)

Domande:

  1. Quanto è grave davvero il problema?
  2. Qual è la soluzione più rapida?
  3. Dobbiamo rifare tutto in Next.js?
  4. Esistono soluzioni che non richiedano una grande ristrutturazione?

Non possiamo permetterci un rebuild totale ma abbiamo bisogno di visibilità AI.

10 comments

10 Commenti

TE
TechSEO_Expert_Sarah Expert Technical SEO Consultant · 9 gennaio 2026

Questo è un problema comune e serio. Te lo spiego nel dettaglio:

Come funzionano i crawler AI:

A differenza di Google (che può renderizzare JavaScript), la maggior parte dei crawler AI NON PUÒ:

  • GPTBot (OpenAI): Nessuna esecuzione JavaScript
  • PerplexityBot: Nessuna esecuzione JavaScript
  • ClaudeBot (Anthropic): Nessuna esecuzione JavaScript

Vedono SOLO la tua HTML iniziale. Per una SPA, di solito è:

<div id="root"></div>
<script src="bundle.js"></script>

Zero contenuto = visibilità AI zero.

La buona notizia: Non devi necessariamente rifare tutto. Esistono soluzioni che funzionano anche con SPA esistenti.

RM
RenderingOptions_Mike · 9 gennaio 2026
Replying to TechSEO_Expert_Sarah

Le tue opzioni dalla più rapida alla più completa:

Opzione 1: Servizio di Prerendering (La più veloce)

  • Servizi come Prerender.io, Rendertron
  • Rileva gli user-agent dei crawler
  • Serve HTML in cache ai crawler
  • Nessuna modifica al codice richiesta
  • Implementazione: Ore

Opzione 2: Rendering Dinamico

  • Serve contenuti diversi in base all’user-agent
  • SPA per utenti, HTML statico per crawler
  • Implementazione tramite middleware
  • Implementazione: Giorni

Opzione 3: Migrazione SSR (La migliore a lungo termine)

  • Migra a Next.js/Remix
  • Rendering completo lato server
  • Migliore per AI e SEO tradizionale
  • Implementazione: Settimane o mesi

Raccomandazione:

Inizia SUBITO con il prerendering per visibilità immediata. Pianifica la migrazione SSR a lungo termine se hai risorse.

SoluzioneTempo di ImplementazioneComplessitàVisibilità AI
PrerenderingOreBassaBuona
Rendering DinamicoGiorniMediaBuona
SSR (Next.js)Settimane-MesiAltaEccellente
PE
PrerenderPro_Emma DevOps Engineer · 9 gennaio 2026

Dettagli sull’implementazione del prerendering:

Come funziona:

  1. Rilevamento user-agent su edge/server
  2. Se viene rilevato un crawler AI, reindirizza all’HTML in cache
  3. Se utente normale, serve la SPA

Setup rapido con Prerender.io:

// Middleware Express
const prerender = require('prerender-node');
app.use(prerender.set('prerenderToken', 'YOUR_TOKEN'));

Pattern dei bot da gestire:

User-agent: GPTBot
User-agent: PerplexityBot
User-agent: ClaudeBot
User-agent: ChatGPT-User
User-agent: Googlebot

Risultati che abbiamo visto:

  • Indicizzazione passata da <25% a ~80% delle pagine
  • Visibilità AI entro 2-3 settimane dall’implementazione
  • Nessun impatto sull’esperienza utente

Costo: La maggior parte dei servizi di prerendering costa 15-100$/mese in base al traffico.

È la strada più veloce verso la visibilità AI.

RM
ReactDev_Marcus OP Frontend Lead · 9 gennaio 2026

Il prerendering sembra proprio la soluzione rapida di cui abbiamo bisogno.

Domanda: Hai menzionato che i nostri URL basati su hash sono un problema. Quanto è critico risolverlo?

UT
URLStructure_Tom Expert · 8 gennaio 2026

Gli URL hash sono un problema SIGNIFICATIVO:

Come i crawler vedono gli URL hash:

  • Il tuo URL: example.com/#/products/shoes
  • Cosa vede il crawler: example.com/
  • Tutti gli URL hash = stessa pagina per i crawler

La soluzione - usare History API:

// Prima (routing hash)
<Route path="/#/products/:id" />

// Dopo (history browser)
<Route path="/products/:id" />

// Configurare React Router
<BrowserRouter>
  <Routes>
    <Route path="/products/:id" element={<Product />} />
  </Routes>
</BrowserRouter>

Configurazione server necessaria:

# nginx - serve index.html per tutte le route
location / {
    try_files $uri $uri/ /index.html;
}

Priorità: In realtà questo è ancora più importante del prerendering. Gli URL hash fanno sì che i crawler non distinguano letteralmente le tue pagine.

Correggi prima gli URL, poi implementa il prerendering.

SC
SSRMigration_Chris · 8 gennaio 2026

Se stai considerando una migrazione Next.js in futuro:

Vantaggi dell’SSR rispetto al prerendering:

  • Meglio per contenuti dinamici
  • Nessun problema di cache obsoleta
  • Migliora le performance di caricamento iniziale
  • Migliori Core Web Vitals
  • Più futuro-proof per l’AI

Percorso di migrazione da React a Next.js:

  1. Parti solo dalle pagine chiave

    • Migra prima le pagine con più traffico
    • Mantieni la SPA per il resto del sito
    • Adozione incrementale
  2. Usa Next.js App Router

    • React Server Components
    • Opzioni di rendering integrate
    • Buona compatibilità con React
  3. Mantieni la struttura degli URL

    • Stesse route, nuovo rendering
    • Nessuna interruzione SEO

Stima delle tempistiche:

  • Sito semplice: 2-4 settimane
  • Complessità media: 4-8 settimane
  • Grande/complesso: 2-4 mesi

Non aspettare a decidere: Parti ora col prerendering, pianifica la migrazione in parallelo.

SL
StructuredDataSPA_Lisa · 8 gennaio 2026

Considerazioni sui dati strutturati per SPA:

Problema attuale: Probabilmente il tuo JSON-LD viene caricato anch’esso via JavaScript.

La soluzione: Inserisci lo schema critico nell’HTML iniziale:

<head>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Your Company",
    ...
  }
  </script>
</head>

Per le pagine dinamiche: Il prerendering dovrebbe catturare lo schema se implementato correttamente.

Testa il tuo schema:

  1. Visualizza il sorgente pagina (non ispeziona elemento)
  2. Controlla che lo schema sia nell’HTML iniziale
  3. Se non visibile, i crawler non lo vedono

I dati strutturati aiutano l’AI a comprendere i tuoi contenuti anche con il prerendering.

RM
ReactDev_Marcus OP Frontend Lead · 8 gennaio 2026

Ecco il nostro piano di implementazione:

Settimana 1: Correzioni rapide

  1. Migrare dal routing hash al browser history
  2. Configurare il server per il routing SPA
  3. Spostare i meta tag critici nell’HTML iniziale

Settimana 2-3: Prerendering

  1. Implementare Prerender.io
  2. Configurare gli user-agent dei crawler AI
  3. Verificare che le pagine in cache siano corrette
  4. Monitorare i log di crawling

Mese 2+: Valutare SSR

  1. Valutare la complessità della migrazione Next.js
  2. Testare con 1-2 pagine chiave
  3. Decidere la tempistica della migrazione completa

Monitoraggio:

  1. Controllare i log server per l’accesso dei crawler AI
  2. Usare Am I Cited per tracciare la visibilità AI
  3. Testare query AI sui nostri contenuti

Così otteniamo visibilità rapidamente pianificando il lungo termine.

MD
MonitorCrawlers_Dan · 7 gennaio 2026

Come verificare che i crawler AI vedano i tuoi contenuti:

Controlla i log server per:

GPTBot - OpenAI
PerplexityBot - Perplexity
ClaudeBot - Anthropic
ChatGPT-User - ChatGPT browsing

Simula cosa vedono i crawler:

  1. Disattiva JavaScript nel browser
  2. Visualizza le tue pagine
  3. È quello che vede il crawler

Dopo il prerendering:

  • Controlla che i crawler ricevano risposte 200
  • Verifica che l’HTML contenga i veri contenuti
  • Testa con curl:
curl -H "User-Agent: GPTBot" https://yoursite.com/page

Monitora la frequenza di crawling:

  • Controlla quanto spesso i bot AI ti visitano
  • Prerendering ben fatto = crawl più frequenti
  • Verifica che tutte le pagine importanti siano in cache

La verifica del crawling è il modo per sapere se la soluzione ha funzionato.

CR
ContentStrategy_Rachel · 7 gennaio 2026

Oltre al rendering - il contenuto conta ancora:

Quando i crawler possono vedere i tuoi contenuti:

  • Serve comunque una struttura ottimizzata per l’AI
  • Headings e risposte chiare
  • Implementazione dati strutturati
  • Contenuti aggiornati e freschi

Da non dimenticare:

  • Le soluzioni di rendering risolvono solo l’ACCESSO
  • La citazione AI richiede comunque contenuti di qualità
  • Valgono gli stessi principi di ottimizzazione

La soluzione di rendering ti fa entrare in partita. L’ottimizzazione dei contenuti la fa vincere.

Have a Question About This Topic?

Get personalized help from our team. We'll respond within 24 hours.

Frequently Asked Questions

Perché i crawler AI non riescono a vedere i contenuti delle SPA?
La maggior parte dei crawler AI non può eseguire JavaScript. Quando visitano una SPA, vedono solo la shell HTML iniziale senza i contenuti caricati dinamicamente. Poiché i sistemi AI non dispongono di ambienti browser completi, non possono elaborare le istruzioni JavaScript che renderizzano i veri contenuti della pagina.
Qual è la soluzione migliore per rendere visibili le SPA all'AI?
Il rendering lato server (SSR) è lo standard d’eccellenza. Framework come Next.js, Nuxt.js e Remix renderizzano HTML completo sul server. Per le SPA esistenti, servizi di prerendering come Prerender.io possono servire HTML statico ai crawler senza cambiare l’architettura.
Il prerendering funziona per i crawler AI?
Sì, il prerendering è molto efficace. Genera snapshot HTML statici accessibili dai crawler AI. I servizi rilevano gli user-agent dei crawler (GPTBot, PerplexityBot, ClaudeBot) e servono versioni prerenderizzate mentre gli utenti normali hanno l’esperienza SPA.
Come influiscono le strutture degli URL sulla visibilità AI delle SPA?
I frammenti hash (#) negli URL sono problematici: i crawler AI li trattano come una singola pagina. Usa History API e pushState per creare URL puliti come /prodotti/nome-articolo invece di /prodotti#123. Ogni vista deve avere un URL unico e descrittivo.

Monitora la Visibilità AI della Tua SPA

Controlla se i crawler AI possono vedere e citare i tuoi contenuti renderizzati con JavaScript su tutte le piattaforme AI.

Scopri di più