L'analisi SEO tecnica verifica come gli spider dei motori di ricerca scansionano il sito. I fattori che influenzano il posizionamento si dividono in:
L'entity è la rappresentazione che Google costruisce del brand incrociando Open Graph, social, Google Business Profile e correlati delle ricerche. Se l'entity è ambigua o incoerente, il posizionamento ne risente.
L'autorità si trasferisce dalla home alle pagine interne tramite link. URL più lunghe diluiscono questa autorità. Google premia le URL parlanti e penalizza quelle con codici o parametri tecnici esposti.
/categoria/sottocategoria/pagina-), non underscore (_)site:dominio.it restituisca la home in prima posizioneStesso contenuto su URL diverse genera contenuto duplicato, con rischio di cannibalizzazione e dispersione del link equity. Cause tipiche: parametri URL (filtri, ordinamento, paginazione), versioni www/non-www, http/https entrambe accessibili.
Ogni pagina con parametri deve avere un canonical che punta alla versione pulita. Per le paginazioni con filtri, usare un self-referencing canonical che mantiene solo page:
<!-- URL reale: /categoria?filtro=valore&page=5 -->
<link rel="canonical" href="https://www.dominio.it/categoria?page=5" /> Da implementare programmaticamente per coprire tutte le pagine con parametri.
URL che restituisce HTTP 200 ma senza contenuto utile. Google la tratta come pagina di bassa qualità e spreca crawl budget su di essa.
<meta name="robots" content="noindex">Presente all'indirizzo /robots.txt, indica agli spider cosa indicizzare. Parametrizzazioni non escluse generano duplicati nell'indice.
User-agent: *
Disallow: /*?*sort=
Disallow: /*?*filtro=
Disallow: /cerca?*
Disallow: /service/*
Sitemap: https://www.dominio.it/sitemap.xml noindex, poi DisallowStandard proposto nel 2024 (Jeremy Howard / fast.ai) analogo al robots.txt ma rivolto ai crawler AI (ChatGPT, Claude, Gemini, Perplexity, ecc.). Permette di indicare come i modelli linguistici devono trattare e citare i contenuti del sito. Non ancora standardizzato, ma adottato da molti siti tecnici e documentazioni.
# Nome Sito
> Breve descrizione del sito e del suo scopo.
## Sezioni principali
- [Homepage](https://www.dominio.it/): descrizione della home
- [Documentazione](https://www.dominio.it/docs/): guide tecniche
- [Blog](https://www.dominio.it/blog/): articoli di approfondimento
## Note per i modelli AI
- Citare sempre la fonte con URL completa
- I contenuti sono aggiornati mensilmente text/plain) nella root: https://www.dominio.it/llms.txtllms-full.txt: versione estesa con contenuto completo delle pagine principali per RAG/llms.xml o endpoint JSON per i modelli che supportano la struttura datiRiferimento: llmstxt.org
Indica al motore quale è la pagina "principale" tra versioni simili. Un solo canonical per pagina, deve puntare a una URL che risponde HTTP 200.
<!-- ERRATO: canonical include il parametro -->
<link rel="canonical" href="https://www.dominio.it/categoria?filtro=valore" />
<!-- CORRETTO -->
<link rel="canonical" href="https://www.dominio.it/categoria" /> front::controller.title) nel title è un errore critico<meta name="robots" content="noindex, nofollow"> I tag semantici descrivono il significato del contenuto — non solo la sua presentazione. Permettono ai motori di ricerca di identificare con precisione le parti della pagina (navigazione, contenuto principale, articolo, contatti ecc.) e contribuiscono alla comprensione dell'entità del brand.
| Tag | Scopo | Note SEO |
|---|---|---|
<header> |
Intestazione della pagina o di una sezione | Di solito contiene logo, nav e headline principale |
<nav> |
Blocco di link di navigazione | Google lo usa per identificare il menu principale; usare uno solo per la navigazione primaria |
<main> |
Contenuto principale della pagina | Un solo <main> per documento; aiuta a isolare il contenuto rilevante dal chrome |
<article> |
Contenuto autonomo e redistribuibile (post, notizia, scheda prodotto) | Segnala ai crawler un'unità di contenuto completa; può avere il proprio <header> con autore e data |
<section> |
Raggruppamento tematico di contenuto | Fornire sempre un heading (h2–h6) interno per dare contesto |
<aside> |
Contenuto complementare (sidebar, widget correlati) | I link in <aside> hanno meno peso rispetto a quelli nel corpo principale |
<footer> |
Piede della pagina o di una sezione | Contiene tipicamente contatti, copyright, link legali; contribuisce all'entity del brand |
<address> |
Informazioni di contatto dell'autore o del sito | Rafforza l'E-E-A-T e il NAP (Name–Address–Phone) coerente con Google Business Profile; non usare per indirizzi fisici generici non correlati al documento |
<time datetime=""> |
Data/ora leggibile dalla macchina | Fondamentale per la data di pubblicazione e ultima modifica degli articoli; usare formato ISO 8601 nell'attributo datetime |
<figure> / <figcaption> |
Immagine, grafico o schema con didascalia | La <figcaption> aggiunge testo descrittivo contestuale all'immagine, complementare all'alt |
<article>
<header>
<h1>Come ottimizzare le immagini per il web</h1>
<address>
Di <a rel="author" href="/autori/mario-rossi">Mario Rossi</a>
</address>
— Pubblicato il <time datetime="2026-03-26">26 marzo 2026</time>
</header>
<section>
<h2>Formati consigliati</h2>
<figure>
<img src="confronto-formati.webp" alt="Confronto visivo tra WebP, AVIF e JPG">
<figcaption>Confronto dimensione file a parità di qualità visiva</figcaption>
</figure>
<p>Il formato WebP riduce il peso del 30–50% rispetto al JPG...</p>
</section>
</article> <div> per tutto — perdita completa del contesto semantico per il crawler<address> per indirizzi fisici generici non correlati all'autore/organizzazione del documento<main> nella stessa pagina — valido solo con hidden sugli alternativi<article> annidati senza relazione logica (es. commenti dentro l'articolo padre vanno bene, sezioni di navigazione no)<section> senza heading — equivale a un <div> senza valore aggiuntoalt compilatoalt=""noindex, 404 o parametrizzazioni<lastmod> ad ogni modifica del contenutoIndica lingua e localizzazione geografica delle pagine. Fondamentale nei siti multilingua per evitare duplicati cross-lingua e garantire che Google mostri la versione corretta.
<link rel="alternate" hreflang="it" href="https://www.dominio.it/pagina-it" />
<link rel="alternate" hreflang="en" href="https://www.dominio.it/en/pagina-en" />
<!-- x-default: versione da mostrare quando la lingua non è determinabile -->
<link rel="alternate" hreflang="x-default" href="https://www.dominio.it/en/pagina-en" /> <!-- ERRATO -->
<link rel="alternate" hreflang="x-default" href="https://www.dominio.it" />
<!-- CORRETTO -->
<link rel="alternate" hreflang="x-default" href="https://www.dominio.it/en/pagina-en" /> page:
<!-- ERRATO: it punta alla pagina 1 invece che alla paginazione corrente -->
<link rel="alternate" hreflang="it" href="https://www.dominio.it/categoria" />
<link rel="alternate" hreflang="en" href="https://www.dominio.it/en/category?page=5" />
<!-- CORRETTO -->
<link rel="alternate" hreflang="it" href="https://www.dominio.it/categoria?page=5" />
<link rel="alternate" hreflang="en" href="https://www.dominio.it/en/category?page=5" /> Link rotti peggiorano l'UX, disperdono il crawl budget e indeboliscono il PageRank interno. Monitorare con Search Console o tool di crawling (Screaming Frog, SeoZoom). Per i link generati automaticamente (es. link alla versione in altra lingua): se la pagina non esiste, non generare il link.
A differenza dei 404, gli errori 500 non sono uno stato "atteso" per i motori di ricerca. La loro presenza continuativa incide sull'affidabilità del sito. Priorità alta: allineare il comportamento di tutte le versioni linguistiche (es. annuncio scaduto → 404 su tutte le lingue, non 404 in italiano e 500 in inglese).
I microdati descrivono i contenuti alle pagine facilitando la comprensione del motore. Google può usarli per i rich snippet in SERP. Riferimento: schema.org.
' e virgolette tipografiche " causano errori di parsing. Sostituire con i corrispondenti ASCII (', ").
description, brand) arriva vuoto dal CMS/utente, il microdato viene generato con valore vuoto. Inserire un fallback programmatico.
url con parametri — deve corrispondere alla URL canonica, non alla URL con filtri/parametri.
Google usa le CWV come fattore di ranking. I target sono indicativi — contano solo in caso di parità tra siti con caratteristiche simili.
Strumenti: PageSpeed Insights, Search Console → Core Web Vitals, Chrome DevTools → Lighthouse.
Le immagini sono quasi sempre il responsabile principale di un LCP elevato — in particolare l'immagine hero above-the-fold.
<picture>srcset per servire risoluzioni diverseL'immagine LCP deve essere caricata con priorità massima:
<img src="hero.jpg" fetchpriority="high" alt="..."> <!-- Nativo -->
<img src="immagine.jpg" loading="lazy" alt="...">
<!-- Con data-srcset per lazy load custom via JS -->
<picture>
<source type="image/webp" data-srcset="immagine.webp">
<img data-srcset="immagine.jpg" alt="...">
</picture> I CSS nel <head> bloccano il rendering finché non sono scaricati e processati, ritardando FCP e LCP.
<head><head>
<style>
/* CSS critico: header, menu, primo blocco visibile */
.site-header { display: flex; align-items: center; height: 64px; }
</style>
<link rel="preload" href="/css/style.min.css" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/css/style.min.css"></noscript>
</head> Script nel <head> senza attributi bloccano il parsing HTML. Con defer vengono scaricati in parallelo ed eseguiti solo dopo il parsing completo, nell'ordine dichiarato.
<script src="/js/jquery.min.js" defer></script>
<script src="/js/bootstrap.bundle.min.js" defer></script>
<script src="/js/scripts.min.js" defer></script> defer — eseguito dopo il parsing, rispetta l'ordine. Per script che dipendono dal DOM o da altri script.async — eseguito appena scaricato, ignora l'ordine. Per script indipendenti (es. analytics).Google valuta i contenuti attraverso il framework E-E-A-T: Experience, Expertise, Authoritativeness, Trustworthiness. Non è un fattore tecnico diretto, ma influenza come i quality rater giudicano il sito e, di riflesso, il ranking. Ha peso maggiore nelle verticalità YMYL (finanza, salute, legale, e-commerce).
Per siti in ambito medico, finanziario, legale o e-commerce Google applica standard E-E-A-T più stringenti. In questi casi: referenze professionali, certificazioni, politiche reso/rimborso chiare e informazioni di contatto complete sono requisiti minimi, non opzionali.
Testimonianze di clienti reali rafforzano l'E-E-A-T (trust) e possono generare rich snippet tramite Review e AggregateRating schema. Una valutazione aggregata visibile in SERP migliora sensibilmente il CTR.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Nome prodotto/servizio",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "142",
"bestRating": "5",
"worstRating": "1"
}
}
</script> Una sezione FAQ strutturata con FAQPage schema può generare rich snippet in SERP: le domande si espandono direttamente nel risultato, aumentando la visibilità e il CTR senza necessariamente guadagnare posizioni.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Come posso tracciare il mio ordine?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Dopo la spedizione ricevi un'email con il codice tracking."
}
}
]
}
</script> <details>/<summary> o accordion accessibile, non solo nel JSON-LDPer gli shop online, le policy di spedizione, reso e pagamento sono un segnale di trust diretto per Google (E-E-A-T) e influenzano il tasso di conversione. Google Merchant Center richiede queste informazioni per approvare i prodotti su Shopping.
/spedizioni, /resi, /pagamenti — raggiungibili dal footer<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Offer",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "4.90",
"currency": "EUR"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 2, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 2, "maxValue": 5, "unitCode": "DAY" }
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
</script> Google analizza i backlink e il loro anchor text per valutare se arrivano in modo naturale o artificioso. Link da siti non tematici, directory o palesemente acquistati danneggiano la reputazione del sito.
Strumenti: Ahrefs, Search Console. Per link tossici: Disavow Tool.
Canali social attivi generano segnali di engagement, distribuiscono rapidamente nuovi contenuti (accelerando l'indicizzazione) e rafforzano la coerenza dell'entity. Canali abbandonati sono un segnale negativo.