⌨️ Sviluppo web

SEO tecnica per sviluppatori: cosa controllare nel codice

Robots.txt, noindex, canonical, sitemap, codici di stato, redirect, hreflang e rendering JavaScript: i controlli di SEO tecnica dello sviluppatore.

La SEO viene spesso associata a parole chiave e contenuti, ma una parte rilevante dipende da scelte tecniche che stanno interamente nelle mani di chi sviluppa: come il server risponde, come sono costruiti gli URL, cosa contiene l'head di ogni pagina. Un errore in questo livello può rendere invisibile anche il contenuto migliore. Ecco i controlli che conviene inserire in ogni progetto.

Scansione e indicizzazione sono due cose diverse

Un motore di ricerca prima scansiona una pagina (la scarica e ne legge il contenuto), poi decide se indicizzarla (inserirla nei risultati). Gli strumenti per controllare le due fasi sono diversi e confonderli è un errore classico.

  • robots.txt controlla la scansione: indica quali percorsi i crawler non devono visitare.
  • Meta robots noindex (o l'header X-Robots-Tag) controlla l'indicizzazione: chiede di non mostrare la pagina nei risultati.
# robots.txt
User-agent: *
Disallow: /area-riservata/
Sitemap: https://www.esempio.it/sitemap.xml
<meta name="robots" content="noindex">

Il punto critico: se blocchi una pagina con robots.txt, il crawler non la scarica e quindi non vede il tuo noindex. Una pagina bloccata può comunque comparire nei risultati, magari senza descrizione, se altri siti la collegano. Per escludere davvero una pagina dai risultati, lasciala scansionabile e usa noindex.

Ricorda anche che robots.txt è pubblico e non è una misura di sicurezza: le aree riservate vanno protette con autenticazione.

Codici di stato corretti

Il server deve rispondere con il codice che descrive la situazione reale:

Codice Uso corretto
200 pagina esistente e disponibile
301 spostamento permanente a un nuovo URL
302 / 307 spostamento temporaneo
404 pagina inesistente
410 pagina rimossa definitivamente
500 / 503 errore del server / manutenzione temporanea

Un errore frequente nei siti costruiti come applicazioni JavaScript è il soft 404: la pagina "non trovata" viene mostrata con codice 200. Il motore di ricerca la considera una pagina valida e rischia di indicizzare centinaia di pagine vuote. Assicurati che gli URL inesistenti restituiscano davvero 404.

Per i redirect, evita le catene (A porta a B che porta a C): fai puntare ogni vecchio URL direttamente alla destinazione finale.

Una sola versione di ogni pagina

Lo stesso contenuto è spesso raggiungibile da più indirizzi: con e senza www, con e senza barra finale, con parametri di tracciamento, in maiuscolo e minuscolo. Per il motore di ricerca sono pagine diverse con contenuto duplicato.

Le soluzioni, da usare insieme:

  1. Redirect 301 verso una forma unica per host e protocollo (per esempio sempre https://www.).
  2. Coerenza interna: i link del sito puntano sempre alla forma canonica.
  3. Tag canonical in ogni pagina, che indica l'URL preferito:
<link rel="canonical" href="https://www.esempio.it/guide/seo-tecnica/">

Il canonical è un suggerimento forte, non un ordine; funziona bene se è coerente con redirect, link interni e sitemap. Usa sempre URL assoluti.

Sitemap XML

La sitemap elenca gli URL che vuoi indicizzare. Non garantisce l'indicizzazione, ma aiuta i motori a scoprire le pagine, soprattutto in siti nuovi o grandi.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.esempio.it/guide/seo-tecnica/</loc>
    <lastmod>2025-02-01</lastmod>
  </url>
</urlset>

Includi solo URL canonici, con codice 200 e indicizzabili. Una sitemap piena di redirect o pagine noindex invia segnali contraddittori. Se usi un generatore statico, falla creare automaticamente in fase di build.

Titolo e descrizione

Ogni pagina deve avere un title unico e descrittivo e una meta description pertinente. Il titolo è uno dei segnali più importanti e compare nei risultati; la description non influisce direttamente sul posizionamento, ma spesso è il testo mostrato sotto il titolo e incide sulla scelta dell'utente. Generali in modo sistematico dai dati della pagina, non lasciarli uguali per tutto il sito.

Siti multilingua: hreflang

Se hai versioni dello stesso contenuto in lingue diverse, hreflang indica ai motori quale mostrare a quale pubblico:

<link rel="alternate" hreflang="it" href="https://www.esempio.it/it/guida/">
<link rel="alternate" hreflang="en" href="https://www.esempio.it/en/guide/">
<link rel="alternate" hreflang="x-default" href="https://www.esempio.it/en/guide/">

Le annotazioni devono essere reciproche: la pagina italiana indica l'inglese e viceversa, e ognuna include sé stessa. Senza reciprocità, i motori possono ignorarle.

JavaScript e rendering

I principali motori di ricerca sono in grado di eseguire JavaScript, ma il rendering può avvenire in un secondo momento e non tutti i crawler lo fanno. Se il contenuto principale e i link compaiono solo dopo l'esecuzione di script, ti esponi a ritardi e rischi. Alcune regole:

  • servi il contenuto principale nell'HTML iniziale, con rendering lato server o generazione statica;
  • usa link veri <a href="..."> per la navigazione, non elementi cliccabili con gestori JavaScript;
  • non affidare titolo, canonical e meta robots solo a modifiche successive via script.

Struttura degli URL

URL brevi, leggibili e stabili aiutano utenti e motori. Usa parole separate da trattini, evita identificativi di sessione e parametri superflui, e soprattutto non cambiare gli URL senza un motivo forte. Se devi farlo, predisponi redirect 301 dal vecchio al nuovo indirizzo.

In sintesi

  • robots.txt controlla la scansione, noindex l'indicizzazione: non bloccare ciò che vuoi deindicizzare.
  • Restituisci codici di stato reali, evita soft 404 e catene di redirect.
  • Unifica le versioni di ogni pagina con redirect 301, link interni coerenti e canonical.
  • Mantieni una sitemap con soli URL canonici e annotazioni hreflang reciproche.
  • Servi contenuto e link nell'HTML iniziale e mantieni gli URL stabili.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche