SEO per sviluppatori: servire HTML leggibile dai crawler, restituire i codici HTTP corretti, inserire i tag essenziali, superare i Core Web Vitals e restare visibili alle IA.

In breve
per uno sviluppatore, la SEO significa rendere ogni pagina importante raggiungibile, renderizzabile e non ambigua per i crawler. Servite il contenuto principale nell'HTML iniziale (rendering lato server o generazione statica), restituite codici HTTP onesti, mettete title, meta description, canonical e direttive robots nella risposta del server, create i link con veri elementi <a href>, rispettate le soglie dei Core Web Vitals e aggiungete dati strutturati JSON-LD. La maggior parte dei crawler delle IA non esegue JavaScript: il contenuto che esiste solo dopo l'idratazione è invisibile per ChatGPT, Claude e Perplexity.
Vuoi approfondire? Chiedi a
Quiz veloce
La SEO fa per te, e come iniziare?
4 domande veloci per capire se Google può portarti clienti.
Il nostro consiglio per te
Sorank è la soluzione giusta per lei
Le persone cercano ciò che vendi e puoi aspettare qualche mese: Sorank trova le ricerche giuste, scrive e pubblica gli articoli e ti procura link.
Sorank corrisponde alle tue risposte
Provalo per 3 giorni sul tuo sito o parti da un audit gratuito per capire a che punto sei.
3 giorni gratis, poi smetti quando vuoi. Garanzia soddisfatti o rimborsati di 90 giorni.
La SEO per sviluppatori è la parte dell'ottimizzazione che vive nel codice: template, routing, rendering, header e prestazioni. Il marketing sceglie le parole chiave e scrive i contenuti, ma un codice di stato sbagliato, una route solo lato client o un noindex dimenticato possono cancellare quel lavoro con un solo deploy. Le nozioni di base sulla SEO JavaScript di Google descrivono tre fasi (scansione, rendering, indicizzazione), e ognuna ha guasti che solo gli sviluppatori possono risolvere. Questa guida li affronta nell'ordine in cui si rompono.
| Ambito | Responsabilità dello sviluppatore | Sintomo tipico in caso di guasto |
|---|---|---|
| Rendering | Contenuto principale e link presenti nell'HTML del server | Pagine indicizzate vuote o incomplete |
| Codici HTTP | 200, 301, 404, 410, 5xx restituiti correttamente | Soft 404, pagine di errore indicizzate, pagine eliminate ancora posizionate |
| Tag dell'head | Title, description, canonical, robots, hreflang univoci | Duplicati, URL sbagliato posizionato, pagine assenti dall'indice |
| Controllo della scansione | robots.txt, sitemap XML, link interni, parametri | Pagine importanti non scoperte, scansione sprecata sui filtri |
| Prestazioni | Core Web Vitals sugli utenti mobile reali | Esperienza della pagina scarsa, meno conversioni |
| Dati strutturati | JSON-LD valido e coerente con il contenuto visibile | Nessun risultato avanzato, entità poco chiara |
| Accesso delle IA | Crawler IA consentiti, contenuto leggibile senza JavaScript | Marchio assente dalle risposte di ChatGPT e Perplexity |
Googlebot esegue JavaScript, ma in una seconda fase che può essere ritardata, e Google stessa scrive che il rendering lato server o il pre-rendering resta un'ottima idea, perché è più veloce per utenti e crawler e perché non tutti i bot eseguono JavaScript. Quest'ultimo punto conta oggi più che mai: nell'analisi di dicembre 2024 The rise of the AI crawler, Vercel ha rilevato che nessuno dei principali crawler delle IA esegue attualmente JavaScript, citando tra gli altri GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot e PerplexityBot. Gemini, che usa l'infrastruttura di Google, fa eccezione.
| Modalità di rendering | Cosa ricevono i crawler | Idoneità SEO |
|---|---|---|
| Rendering lato client (CSR) | Un guscio HTML quasi vuoto, contenuto dopo l'esecuzione di JavaScript | Debole: ritardato per Google, invisibile alla maggior parte dei crawler IA |
| Rendering lato server (SSR) | HTML completo a ogni richiesta | Forte per le pagine dinamiche |
| Generazione statica (SSG) | HTML completo creato al deploy | La più forte per contenuti che cambiano di rado |
| Rigenerazione incrementale (ISR) | HTML statico aggiornato a intervalli o su richiesta | Forte per grandi cataloghi e blog |
Due regole valgono con qualunque framework. I link devono essere elementi <a> con attributo href: Google dichiara di scoprire i link solo in questa forma, quindi pulsanti con gestori di clic e route basate su frammenti sono vicoli ciechi. E ogni route ha bisogno di un proprio URL, senza #, che restituisca direttamente il suo contenuto. Le nostre guide alla SEO JavaScript, alla SEO delle single-page application e alla SEO per Next.js entrano nei dettagli dei singoli framework.
I codici di stato sono istruzioni per i crawler. La documentazione di Google su codici di stato HTTP ed errori di rete descrive come viene trattata ogni famiglia:
Verificate cosa invia davvero il vostro server con un controllo degli header HTTP e limitate le catene di redirect a un solo passaggio: il nostro articolo sui redirect SEO copre i casi di migrazione.
Ogni pagina indicizzabile ha bisogno di title e description univoci, di una canonical verso sé stessa e, sui siti multilingue, di annotazioni hreflang. Tenetele nella risposta del server:
<title>Running shoes for flat feet | Example</title>
<meta name="description" content="Tested picks, sizes and prices.">
<link rel="canonical" href="https://example.com/running-shoes-flat-feet">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/chaussures-pieds-plats">
<meta name="robots" content="index, follow">Il tag canonical deve puntare all'URL che volete posizionare, con esattamente il protocollo, l'host e la convenzione della barra finale del vostro sito.
Attenzione
Non affidatevi mai a JavaScript per rimuovere un noindex. Google indica che, trovando un tag noindex, può saltare il rendering: una pagina servita con noindex nell'HTML che lo rimuove lato client può restare fuori dall'indice.
I motori indicizzano URL, quindi lo schema degli URL è una scelta SEO. Usate percorsi leggibili, in minuscolo e separati da trattini; scegliete una convenzione per la barra finale e reindirizzate l'altra; mantenete un URL per ogni contenuto. Filtri, ordinamenti e parametri di tracciamento moltiplicano gli URL senza aggiungere contenuto: puntate la loro canonical alla versione pulita e non linkate combinazioni di parametri che non volete far scansionare.
I link interni servono sia alla scoperta sia alla gerarchia. Renderizzate lato server navigazione, breadcrumb e blocchi di contenuti correlati, date alle liste paginate semplici link a ogni pagina ed evitate lo scroll infinito senza URL paginati dietro. Un prodotto o un articolo raggiungibile solo dalla ricerca interna o da un filtro JavaScript è, per un crawler, una pagina orfana.
Il robots.txt controlla la scansione, non l'indicizzazione: un URL bloccato può comunque comparire nei risultati se altre pagine lo linkano. Per tenere una pagina fuori dall'indice, lasciatela scansionare e restituite noindex. Generate la sitemap XML dalle route o dal database, elencate solo URL canonici con stato 200 e aggiornate lastmod solo quando il contenuto cambia davvero. Testate le regole con un verificatore di robots.txt prima di ogni rilascio e non portate mai in produzione un robots.txt di staging con "Disallow: /".
Google usa i Core Web Vitals tra i segnali di esperienza della pagina. Secondo web.dev, una pagina è buona quando raggiunge queste soglie al 75° percentile dei caricamenti reali, su mobile e desktop:
| Metrica | Cosa misura | Soglia buona | Correzioni frequenti lato sviluppo |
|---|---|---|---|
| LCP (Largest Contentful Paint) | Caricamento | 2,5 s o meno | Precaricare l'immagine principale, renderizzare lato server la parte visibile, usare una CDN |
| INP (Interaction to Next Paint) | Reattività | 200 ms o meno | Suddividere i task lunghi, differire gli script di terze parti, ridurre il costo dell'idratazione |
| CLS (Cumulative Layout Shift) | Stabilità visiva | 0,1 o meno | Impostare larghezza e altezza dei media, riservare spazio ad annunci ed embed |
INP ha sostituito First Input Delay come Core Web Vital stabile nel 2024. Valutate con i dati sul campo (Search Console, Chrome UX Report) e fate il debug con gli strumenti di laboratorio. La nostra voce di glossario sui Core Web Vitals elenca gli strumenti.
Usate JSON-LD in un tag script, renderizzato lato server, che descriva ciò che è visibile nella pagina:
<script type="application/ld+json">
{"@context": "https://schema.org", "@type": "Article",
"headline": "Running shoes for flat feet",
"datePublished": "2026-10-01",
"author": {"@type": "Person", "name": "Jane Doe"}}
</script>Generatelo dagli stessi dati della pagina perché i due non divergano mai, validatelo nella CI ed evitate di iniettarlo tramite un tag manager. Un generatore di schema fornisce un modello di partenza per i tipi più comuni.
Suggerimento
Aggiungete controlli SEO alla pipeline: fate fallire la build se un template indicizzabile non ha title o canonical, se una route restituisce 200 per uno slug sconosciuto o se il robots.txt di produzione contiene "Disallow: /". Queste regressioni costano poco da intercettare prima del deploy e molto dopo.
La visibilità nelle IA parte dall'accesso. Decidete quali crawler IA consentire (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot e altri) e scrivete regole esplicite nel robots.txt; la nostra guida al robots.txt per i crawler delle IA spiega la differenza tra bot di addestramento e bot di ricerca. Poi assicuratevi che testi, prezzi, specifiche e FAQ siano nell'HTML iniziale, usate titoli semantici e tabelle invece di immagini di testo e mantenete le pagine abbastanza leggere da essere scaricate in fretta. Un file llms.txt può riassumere le pagine chiave per gli strumenti di IA, ma nessun grande assistente ha confermato di usarlo: consideratelo facoltativo.
Sorank è il nostro prodotto: un software SEO e GEO in autopilot. Gli sviluppatori lo incontrano soprattutto attraverso le integrazioni: pubblica articoli su WordPress, Shopify, Webflow o Wix, oppure su qualsiasi stack personalizzato tramite webhook, come descritto nella pagina di installazione. La sua chat SEO risponde in conversazione alle domande sul vostro sito, e il monitoraggio delle menzioni nelle IA verifica ogni settimana se ChatGPT, Claude e Gemini citano il vostro marchio.

In sintesi: servite dal server HTML completo, codici di stato onesti e tag corretti, poi misurate le prestazioni sugli utenti reali. Questo serve sia a Googlebot sia ai crawler delle IA che non eseguono JavaScript. Per riempire un sito ben costruito di contenuti che si posizionano, scoprite i piani di Sorank, da 49 € al mese con 3 giorni di prova gratuita.
Non sempre per Google, che esegue JavaScript, ma aggiunge ritardo e rischio, e la maggior parte dei crawler delle IA non esegue affatto JavaScript. Per le pagine che devono posizionarsi o essere citate, servite contenuto principale e link nell'HTML iniziale con rendering lato server, generazione statica o pre-rendering, e riservate il rendering lato client alle parti interattive.
Entrambi dicono a Google che la pagina non esiste più, e in tutti e due i casi Google smette di usare l'URL con il tempo. Un 410 indica una rimozione voluta e definitiva, che alcuni team preferiscono per i contenuti eliminati di proposito. L'importante è non restituire un 200 con un messaggio di errore, che genera soft 404.
Fanno parte dei segnali di esperienza della pagina, che Google descrive come un fattore tra tanti, con pertinenza e qualità dei contenuti che pesano di più. Servono soprattutto a distinguere pagine simili e incidono molto sulle conversioni, quindi raggiungere le soglie vale lo sforzo.
HANNO PROVATO SORANK PRIMA DI TE
