Regole del controllo
L'elenco completo delle 201 regole che il controllo del sito verifica. Qui si legge che cosa significa ogni regola e come correggerla.
Il controllo del sito esamina ogni pagina e il sito nel suo insieme con 201 regole: 13 critiche, 92 avvisi e 96 informative. È il numero degli identificativi nell'elenco dell'app, e ognuno occupa una riga delle tabelle qui sotto. Le regole si dividono in tre gruppi. Critiche (13 regole): Google non riesce a vedere o capire la pagina, quindi vanno corrette per prime. Avvisi (92 regole): possono ridurre gradualmente posizioni e clic. Informazioni (96 regole): piccole opportunità di miglioramento. Nel punteggio le regole critiche pesano 40, gli avvisi 15 e le informazioni 3. Conta anche quante pagine sono interessate.
Nella tabella si vedono, per ogni regola, il nome mostrato nella schermata, che cosa significa e il primo passo per correggerla. Il testo completo della correzione sta nella scheda del problema nella schermata. L'ultima colonna è l'identificativo della regola, che compare nel file CSV e nelle risposte dell'assistente.
Termini ricorrenti
- canonical: il modo per dire a Google "questo è l'indirizzo principale".
- noindex: l'etichetta che nasconde la pagina dalla ricerca.
- hreflang: l'etichetta della versione linguistica. Indica la versione della stessa pagina in un'altra lingua.
- meta description: il breve riassunto grigio sotto il titolo nel risultato di ricerca.
- dati strutturati (JSON-LD): una nota nascosta che dice a Google che cosa è la pagina (un prodotto, un articolo). Può far comparire nella ricerca elementi in più, come stelle o immagini (risultato arricchito).
- robots.txt: il file che dice a Google a quali pagine può accedere. La riga "Disallow" è la riga che impone un divieto.
- mappa del sito: l'elenco delle pagine del sito. lastmod: la data dell'ultima modifica della pagina.
- reindirizzamento: mandare a un altro indirizzo chi arriva a un certo indirizzo.
- user agent: il nome con cui il programma di navigazione si presenta.
- title (etichetta del titolo): il titolo che compare nella scheda e nella ricerca. H1: il titolo principale della pagina. testo alternativo (alt): breve testo che descrive che cosa mostra un'immagine.
- nofollow: l'etichetta che dice "non seguire questo collegamento". head: la parte alta del codice sorgente della pagina.
- LCP: il tempo con cui compare il contenuto principale della pagina. CLS: lo spostamento del contenuto durante il caricamento. INP: il tempo di risposta a un clic.
- Lighthouse: lo strumento di Google per misurare le pagine. certificato SSL: il certificato che permette al sito di usare https (indirizzo sicuro).
Critico
| Regola | Che cosa significa | Come si corregge | ID |
|---|---|---|---|
| Crawler bloccato | La protezione anti-bot del sito ha fermato il crawler. Anche Google potrebbe essere bloccato. | Nel firewall consentire lo user agent "seotracker-audit". | blocked-page |
| Errore del server (5xx) | La pagina dà un errore del server. Google toglie queste pagine dalla ricerca. | Trovare l'errore di questo indirizzo nei registri del server e risolverlo. | server-error |
| Il file robots.txt dà un errore del server | Se Google non riesce a leggere il file, può smettere del tutto di scansionare il sito. | Risolvere l'errore. Controllare che l'indirizzo di robots.txt si apra normalmente. | robots-txt-server-error |
| L'indirizzo di partenza è bloccato da robots.txt | L'indirizzo da cui parte la scansione è vietato in robots.txt. | Se deve essere scansionato, eliminare la riga "Disallow" corrispondente. | robots-txt-blocks-start-url |
| La pagina nella mappa del sito non si apre | La pagina che si è segnalata a Google con "questa pagina esiste" dà un errore. | Se la pagina deve esistere, risolvere l'errore. Altrimenti toglierla dalla mappa del sito. | sitemap-broken-page |
| Un file necessario alla pagina è bloccato da robots.txt | Google non riesce ad accedere al file di grafica o di codice necessario per mostrare la pagina. | Eliminare in robots.txt la regola che comprende questi file. | blocked-resource |
| Risorsa non sicura in una pagina sicura | Una pagina sicura (https) carica un file da un indirizzo non sicuro (http). I browser lo bloccano. | Cambiare l'indirizzo del file in modo che inizi con https. | mixed-content-resource |
| Come indirizzo principale è indicata una pagina nascosta | La pagina indicata come indirizzo principale è nascosta dalla ricerca. Le due indicazioni si annullano a vicenda. | Togliere noindex dalla pagina di destinazione oppure rendere l'indirizzo principale quello della pagina stessa. | canonical-to-noindex |
| Google considera la pagina vuota (soft 404) | Google considera la pagina "inesistente" e non la include nella ricerca. | Se la pagina non esiste davvero, restituire il codice di errore 404 o 410. Se esiste, metterci contenuto reale. | google-soft-404 |
| Google non può scansionare la pagina a causa di robots.txt | La risposta di Google: robots.txt la blocca. | Trovare in robots.txt la riga "Disallow" che comprende questo indirizzo ed eliminarla. | google-blocked-by-robots |
| robots.txt chiude a Google l'intero sito | robots.txt vieta a Google di scansionare la home page (di solito una riga "Disallow: /"). Google non scansiona il sito. | Eliminate la riga "Disallow: /" o limitatela alle cartelle che devono restare nascoste. | robots-disallow-all |
| L'indirizzo http non reindirizza a https | L'indirizzo http del sito si apre senza passare alla versione sicura. I browser mostrano "Non sicuro". | Attivate "Forza HTTPS" nel pannello dell'hosting o aggiungete un reindirizzamento permanente (301). | no-https-redirect |
| Il certificato SSL sta per scadere | Il certificato scade tra meno di 14 giorni. Dopo, i browser aprono il sito dietro un avviso a tutta pagina. | Rinnovate subito il certificato. Se il rinnovo è automatico, verificate perché non è avvenuto. | ssl-expiring-very-soon |
Avviso
| Regola | Che cosa significa | Come si corregge | ID |
|---|---|---|---|
| Limite di richieste raggiunto (429) | Il sito ha detto al crawler "troppe richieste". | Alzare il limite di richieste sul server oppure escludere "seotracker-audit" dal limite. | rate-limited-page |
| Scansione interrotta in anticipo: limite di richieste | La scansione si è fermata perché l'attesa ha superato i 30 minuti. | Riavviare il controllo quando il limite di richieste del sito si è azzerato. | crawl-rate-limited |
| Collegamento interno rotto | Un collegamento del sito porta a una pagina che non si apre. | Correggere il collegamento con l'indirizzo giusto oppure eliminarlo. | broken-internal-link |
| La pagina dà un errore all'apertura (4xx) | La pagina dà un errore come "non trovata". | Se la pagina deve esistere, ripubblicarla. Altrimenti eliminare i collegamenti che vi portano. | broken-page |
| Catena di reindirizzamenti | L'indirizzo viene reindirizzato più volte prima di arrivare alla pagina finale. | Reindirizzare il primo indirizzo, e chi lo collega, direttamente alla pagina finale. | redirect-chain |
| Ciclo di reindirizzamenti | L'indirizzo viene reindirizzato a se stesso o a un altro in cerchio. | Seguire le regole di reindirizzamento e rompere il ciclo. | redirect-loop |
| Pagina che non riceve collegamenti da nessuna pagina | La pagina esiste solo nella mappa del sito. Google non le dà valore. | Inserire un collegamento dal menu, da articoli correlati o dalla pagina della categoria. | orphan-page |
| robots.txt non raggiungibile | Il file non ha risposto affatto. | Aprire nel browser l'indirizzo di robots.txt e controllare che risponda. | robots-txt-unreachable |
| robots.txt supera il limite di 500 KB | Google non legge la fine del file. | Accorciare il file. | robots-txt-truncated |
| La pagina nella mappa del sito è reindirizzata | Nella mappa c'è un indirizzo che viene reindirizzato a un altro. | Scrivere nella mappa l'indirizzo finale del reindirizzamento. | sitemap-redirect-page |
| L'indirizzo nella mappa del sito è bloccato da robots.txt | La mappa dice "vieni", robots.txt dice "non venire". | Se deve comparire nella ricerca, togliere il blocco. Altrimenti eliminarlo dalla mappa. | sitemap-disallowed-page |
| Il file della mappa del sito è troppo grande per essere letto | Il file supera il limite di 10 MB. | Dividere la mappa in parti. | sitemap-too-large |
| La mappa del sito contiene più di 50.000 indirizzi | Google accetta al massimo 50.000 indirizzi per file. | Dividere il file in parti sotto i 50.000. Collegare le parti con un file di mappa principale. | sitemap-too-many-urls |
| La mappa del sito ha un lastmod con data futura | La data è successiva a oggi. Google smette di fidarsi delle date. | Controllare il punto in cui le date vengono generate. | sitemap-lastmod-future |
| La pagina si apre con http, non sicuro | La pagina non è sicura (https). | Far attivare dal fornitore di hosting il certificato SSL gratuito. | not-https |
| Etichetta del titolo mancante | La pagina non ha l'etichetta del titolo (title). | Aggiungere un titolo specifico per la pagina, che descriva l'argomento. 50-60 caratteri è una buona misura. | missing-title |
| Meta description mancante | Manca il riassunto grigio nel risultato di ricerca. | Scrivere una descrizione che riassuma la pagina e inviti a cliccare. | missing-meta-description |
| Immagini senza testo alternativo | Non è scritto che cosa mostrano le immagini. | Scrivere un breve testo alternativo per ogni immagine significativa. | images-missing-alt |
| Più etichette del titolo (title) nella pagina | Ci sono due etichette del titolo. Google ne sceglie una a caso. | Cercare "title" nel codice sorgente della pagina e lasciarne una sola. | multiple-titles |
| Più meta description diverse tra loro nella pagina | Ci sono due descrizioni. | Cercare name="description" nel codice sorgente della pagina e lasciarne una sola. | multiple-meta-descriptions |
| L'etichetta del titolo è un testo segnaposto | Il titolo è come "Ana sayfa" (Home) o "Untitled". | Scrivere un titolo proprio che descriva l'argomento della pagina. | placeholder-title |
| Titolo duplicato | Più pagine usano lo stesso titolo. | Scrivere per ogni pagina un titolo diverso, che ne descriva il contenuto. | duplicate-title |
| Titolo principale (H1) duplicato | Più pagine hanno lo stesso titolo principale. | Scrivere l'H1 di ogni pagina in modo diverso. | duplicate-h1 |
| Meta description duplicata | Più pagine usano la stessa descrizione. | Scrivere per ogni pagina la propria descrizione oppure eliminare quella ripetuta. | duplicate-meta-description |
| Contenuto della pagina duplicato | Due pagine hanno lo stesso testo. | Scegliere la pagina principale. Collegare l'altra a questa con canonical. | duplicate-content |
| Le indicazioni dell'indirizzo principale sono in contraddizione | L'HTML e la risposta del server indicano indirizzi principali diversi. | Scegliere un solo indirizzo principale e indicarlo in un solo punto. | canonical-conflict |
| La pagina indicata come indirizzo principale non si apre | La pagina indicata come indirizzo principale dà un errore. | Cambiare l'indirizzo principale con una pagina funzionante oppure ripubblicare la destinazione. | canonical-to-broken |
| Come indirizzo principale è indicata una pagina che reindirizza | L'indirizzo principale è un indirizzo che viene reindirizzato a un'altra pagina. | Rendere indirizzo principale la pagina finale del reindirizzamento. | canonical-to-redirect |
| Google vede nella pagina l'etichetta di esclusione (noindex) | La risposta di Google: ha visto noindex nella pagina. | Confrontare il codice sorgente della pagina con quello che vede Google. Un plugin o un modello potrebbe aggiungere l'etichetta. | google-blocked-by-meta |
| Google ha scelto un altro indirizzo come principale | Google non ha accettato l'indirizzo principale indicato. | Guardare l'indirizzo scelto da Google. Renderlo principale oppure distinguere le due pagine. | google-chose-different-canonical |
| Codice della versione linguistica (hreflang) non valido | È scritto un codice inesistente come "en-UK". | Scrivere il codice giusto. Per il Regno Unito "en-GB". | hreflang-invalid-code |
| Tra le versioni linguistiche la pagina non elenca se stessa (hreflang) | La pagina elenca le altre lingue ma non se stessa. | Aggiungere all'elenco l'indirizzo della pagina stessa, con il suo codice lingua. | hreflang-missing-self |
| La pagina disattiva i propri collegamenti con una direttiva robots | La pagina ha disattivato il seguito dei propri collegamenti (nofollow). | Se si vuole che i collegamenti siano seguiti, eliminare il testo "nofollow". | nofollow-page |
| Una pagina numerata indica come indirizzo principale la prima pagina | La pagina 2 indica la pagina 1 come indirizzo principale. Google ignora la pagina 2. | Rendere l'indirizzo principale di ogni pagina il proprio indirizzo. | paginated-canonical-to-first-page |
| Versione linguistica non collegata reciprocamente (hreflang) | La pagina A indica B, ma B non indica A. | Aggiungere alla pagina B una riga hreflang che indichi A. | hreflang-no-return-tag |
| La versione linguistica indica una pagina che non si apre o è stata tolta dall'indice | La versione linguistica indicata dà un errore o è nascosta dalla ricerca. | Guardare l'indirizzo nel dettaglio. Correggerlo oppure toglierlo dall'elenco. | hreflang-target-broken |
| L'indirizzo principale (canonical) indica un altro dominio o http | L'indirizzo principale indica un altro sito o un indirizzo non sicuro (http). | Se non è voluto, rendere l'indirizzo principale l'indirizzo https della pagina stessa. | canonical-cross-host-or-http |
| Blocco di dati strutturati danneggiato | Il blocco di dati strutturati (JSON-LD) non si legge. | Incollare il blocco in un verificatore JSON. Di solito c'è una virgola in più. | structured-data-invalid-json |
| Google ha scansionato ma non ha indicizzato | La risposta di Google: il contenuto non è sufficiente. | Nello "Strumento Controllo URL" di Google verificare se ci sono noindex, file bloccati o contenuto che appare vuoto. | google-crawled-not-indexed |
| Google l'ha scoperta ma non ancora scansionata | Google conosce l'indirizzo e l'ha messo in coda. | Spesso basta attendere. Inserire un collegamento dalle pagine scansionate più spesso. | google-discovered-not-indexed |
| Google ha visto contenuto duplicato e non è indicato l'indirizzo principale | Google ha trovato una pagina copia e non è stato indicato un indirizzo principale. | Aggiungere a ogni pagina del gruppo di copie un canonical che indichi l'indirizzo principale. | google-duplicate-no-canonical |
| Google non conosce affatto questo indirizzo | L'indirizzo non è mai arrivato a Google. | Aggiungerlo alla mappa del sito e inviare la mappa a Search Console. | google-url-unknown |
| Google ha trovato un errore nei dati strutturati | Nel marcatore scritto per il risultato arricchito manca un campo. | Aprire l'indirizzo nel Test dei risultati multimediali di Google. Lì indica il campo mancante. | google-rich-results-invalid |
| La pagina indica indirizzi principali in contraddizione tra loro | Nella pagina ci sono più etichette canonical. | Decidere quale è giusta. Disattivare il plugin che genera le altre. | multiple-canonical-tags |
| Il contenuto principale della pagina si carica tardi (LCP) | L'elemento più grande arriva dopo più di 4 secondi. | Nel report PageSpeed guardare l'elemento più grande. Di solito è un'immagine. Ridurla e convertirla in WebP. | cwv-lcp-poor |
| Durante il caricamento il contenuto si sposta (CLS) | Il punteggio di spostamento è superiore a 0,25. | Dare larghezza e altezza alle immagini e ai riquadri incorporati. | cwv-cls-poor |
| La pagina risponde tardi ai clic (INP) | La risposta a un clic richiede più di 500 millisecondi. | Trovare le parti di codice che appesantiscono di più la pagina. Rimandarle o toglierle. | cwv-inp-poor |
| Il punteggio SEO di Google è basso | Il punteggio SEO di Lighthouse è inferiore a 90. | Aprire la pagina in PageSpeed Insights. Nella sezione SEO guardare i controlli non superati. | lighthouse-seo-low |
| Il sito si apre sia con sia senza www | Entrambi gli indirizzi aprono la pagina e nessuno reindirizza all'altro. Google vede due copie dello stesso contenuto. | Scegliete un indirizzo principale e reindirizzate l'altro su di esso in modo permanente (301). | www-and-apex-both-serve |
| Una pagina inesistente risponde 200 invece di 404 | Un indirizzo che non esiste risponde "OK" (200). Google lo considera un soft 404. | Fate restituire alla pagina di errore il codice 404. Il contenuto può restare uguale. | soft-404-on-missing-page |
| L'HTML della pagina iniziale supera i 2 MB | Google elabora solo i primi 2 MB di HTML e ignora il resto. | Spostate i grandi dati incorporati in file separati. Dividete gli elenchi lunghi in più pagine. | html-too-large |
| Il server risponde tardi (TTFB) | Il primo byte della pagina iniziale è arrivato dopo più di 800 millisecondi. | Attivate la cache delle pagine, trovate i plugin lenti e usate una CDN vicina ai visitatori. | slow-ttfb |
| La pagina blocca lo zoom | Il tag viewport disattiva lo zoom sul telefono. Chi vede poco non può ingrandire il testo. | Togliete user-scalable=no e maximum-scale dal tag viewport. | viewport-zoom-disabled |
| Link con indirizzo "javascript:" | Google non può seguire questi link e quindi non trova le loro pagine per questa via. | Se il link porta a una pagina, scrivete il suo vero indirizzo. Se esegue un'azione, usate un pulsante (button). | javascript-href-links |
| Campi del modulo senza etichetta | Un lettore di schermo non sa dire che cosa va scritto nel campo. | Date a ogni campo un'etichetta visibile (label) o un aria-label. | form-input-without-label |
| La struttura HTML della pagina è troppo grande | La pagina ha più di 1.500 elementi HTML. Rallenta, soprattutto sul telefono. | Caricate il contenuto nascosto solo quando serve. Riducete gli strati di contenitori inutili. | dom-too-large |
| Contenuto quasi identico | Il contenuto principale di queste pagine differisce solo per poche parole. Google potrebbe mostrarne una sola. | Date a ogni pagina un contenuto proprio, oppure unite le pagine e aggiungete un canonical. | near-duplicate-content |
| Nei dati strutturati mancano proprietà obbligatorie | Mancano campi che Google richiede per questo tipo (per esempio Product o FAQPage). Non compare alcun risultato avanzato. | Aggiungete i campi mancanti e verificate il risultato con il Test dei risultati avanzati di Google. | structured-data-required-props-missing |
| L'ID Analytics delle pagine non corrisponde alla proprietà collegata | I dati dei visitatori finiscono molto probabilmente in un'altra proprietà Analytics. | Sostituite il tag delle pagine con l'ID giusto oppure collegate la proprietà giusta nelle Impostazioni. | analytics-id-mismatch |
| Manca l'intestazione HSTS | L'intestazione che dice ai browser "usa sempre https per questo sito" non viene inviata. | Aggiungete l'intestazione Strict-Transport-Security alla risposta del server. | missing-hsts |
| Il certificato SSL scade tra meno di 30 giorni | Secondo i registri pubblici dei certificati, il certificato scade entro 30 giorni. | Controllate nel pannello dell'hosting che il rinnovo automatico sia attivo. | ssl-expiring-soon |
| Il dominio scade tra meno di 30 giorni | Se non viene rinnovato, sito ed e-mail si fermano. Qualcun altro potrebbe registrare il dominio. | Rinnovate il dominio e attivate il rinnovo automatico. | domain-expiring-soon |
| Alcuni file bloccano la prima visualizzazione della pagina | CSS e script ritardano la prima visualizzazione. | Aggiungete defer agli script che non servono al primo schermo. | lh-render-blocking |
| La pagina carica JavaScript che non usa | Viene scaricato JavaScript che non viene mai eseguito. | Togliete i plugin e i tag inutilizzati. | lh-unused-javascript |
| Le immagini vengono scaricate più grandi del necessario | Le immagini pesano più di quanto serve per la loro visualizzazione. | Convertite in WebP/AVIF, comprimete e ridimensionate. | lh-image-delivery |
| La pagina reindirizza prima di aprirsi | Ci sono reindirizzamenti prima che la pagina si apra. | Fate puntare i link all'indirizzo finale. | lh-document-redirects |
| La pagina viene inviata senza compressione | L'HTML viene inviato senza compressione. | Attivate la compressione gzip o Brotli. | lh-text-compression |
| L'immagine principale è segnata per il caricamento differito | L'immagine principale ha loading="lazy". | Togliete lazy dall'immagine principale del primo schermo. | lh-lcp-lazy-loaded |
| Alcuni testi hanno un contrasto di colore insufficiente | Il testo non si distingue abbastanza dallo sfondo. | Garantite un contrasto di almeno 4,5:1. | lh-a11y-color-contrast |
| Alle immagini manca il testo alternativo (Lighthouse) | Nel browser ci sono immagini senza testo alt. | Scrivete un testo alt per le immagini significative. | lh-a11y-image-alt |
| I campi del modulo non hanno etichetta (Lighthouse) | I campi del modulo non hanno etichetta. | Collegate un elemento label a ogni campo. | lh-a11y-label |
| Alcuni link non hanno un nome leggibile | Alcuni link non hanno un nome leggibile. | Aggiungete un testo o un aria-label. | lh-a11y-link-name |
| Alcuni pulsanti non hanno un nome leggibile | Alcuni pulsanti non hanno un nome leggibile. | Aggiungete un testo o un aria-label. | lh-a11y-button-name |
| La pagina non ha un titolo nel browser (Lighthouse) | Nel browser non c'è un elemento title. | Aggiungete un titolo all'HTML inviato dal server. | lh-a11y-document-title |
| Lo zoom è bloccato sul telefono (Lighthouse) | L'impostazione viewport impedisce lo zoom. | Togliete user-scalable=no e maximum-scale. | lh-a11y-meta-viewport |
| La pagina fa richieste non sicure (http) | La pagina carica elementi via http. | Servite tutti i file via https. | lh-is-on-https |
| Alcuni link non sono scansionabili (Lighthouse) | Ci sono link che Google non può seguire. | Date a ogni link un href vero. | lh-crawlable-anchors |
| Google non può indicizzare la pagina (Lighthouse) | Lighthouse ha trovato la pagina non indicizzabile. | Controllate robots.txt e le regole noindex. | lh-is-crawlable |
| Il file robots.txt contiene righe non valide | In robots.txt ci sono righe non valide. | Correggete le righe nel formato "Campo: valore". | lh-robots-txt |
| I tag hreflang non sono validi (Lighthouse) | I tag hreflang non sono validi. | Usate codici lingua validi e indirizzi completi. | lh-hreflang |
| Il tag canonical non è valido (Lighthouse) | Il tag canonical non è valido. | Lasciate un solo canonical che punti all'indirizzo della pagina stessa. | lh-canonical |
| Immagine, video o frame non sicuro su una pagina sicura | Una pagina https carica immagini, video o frame via http. | Fate iniziare gli indirizzi con https. | mixed-content-media |
| I dati del modulo vengono inviati senza cifratura | Il modulo invia i dati a un indirizzo http. | Portate a https l'indirizzo action del modulo. | form-action-http |
| Il tag canonical è nel corpo della pagina | Il canonical è nel body; Google non lo legge. | Spostate il tag nel head. | canonical-outside-head |
| I tag robots si contraddicono | I tag robots della pagina si contraddicono. | Lasciate un solo tag robots. | robots-meta-conflict |
| La pagina dice "non trovata" ma risponde con successo | La pagina dice "non trovata" ma restituisce 200. | Se la pagina non esiste, restituite 404 o 410. | page-says-not-found |
| Sulla pagina è rimasto testo segnaposto (lorem ipsum) | La pagina contiene testo segnaposto lorem ipsum. | Sostituitelo con contenuto vero. | lorem-ipsum-text |
| Una pagina successiva di un elenco è nascosta dalla ricerca | Le pagine 2 e seguenti di un elenco sono noindex. | Togliete noindex e date a ogni pagina il suo canonical. | paginated-page-noindex |
| Su un sito sicuro i link interni portano a indirizzi http | Su un sito https i link interni puntano a http. | Scrivete i link interni con https o in forma relativa. | internal-http-links |
| Un link verso un altro sito non funziona | Un link verso un altro sito non si apre. | Aggiornate o eliminate il link. | broken-external-link |
| Il file dell'immagine è troppo grande | Un file immagine supera i 200 KB. | Ridimensionate, comprimete, convertite in WebP/AVIF. | image-file-too-large |
| La mappa del sito elenca indirizzi di un altro sito | La mappa del sito contiene indirizzi di un altro dominio. Di solito Google li ignora. | Pubblicate la mappa sul sito a cui appartengono gli indirizzi, oppure correggete l'indirizzo del sito nell'impostazione che la genera. | sitemap-off-host-urls |
Informazione
| Regola | Che cosa significa | Come si corregge | ID |
|---|---|---|---|
| Risposta del server lenta | La prima risposta del server arriva tardi. | Controllare i tempi del server e del database. Attivare la cache (conservazione di dati già pronti). | slow-response |
| La pagina nella mappa del sito indica un'altra pagina come indirizzo principale | Nella mappa c'è un indirizzo duplicato. | Nella mappa devono restare solo gli indirizzi principali. | sitemap-canonicalized-page |
| La pagina nella mappa del sito è nascosta dai risultati di ricerca | Nella mappa c'è una pagina nascosta dalla ricerca. | Se deve comparire nella ricerca, togliere noindex. Altrimenti eliminarla dalla mappa. | sitemap-noindex-page |
| La pagina è troppo in profondità nella struttura del sito | La pagina è lontana molti clic dalla home page. | Accorciare il percorso con collegamenti da categorie, menu o elenchi in evidenza. | deep-page |
| Nella mappa del sito non c'è nessuna data lastmod | Google non conosce la data dell'ultima modifica. | Nell'impostazione che genera la mappa, attivare lastmod per ogni indirizzo. | sitemap-lastmod-missing |
| Un collegamento interno porta a un reindirizzamento | Il collegamento va a un vecchio indirizzo, che poi reindirizza. | Sostituire il collegamento con il nuovo indirizzo di destinazione. | internal-link-to-redirect |
| Codifica dei caratteri non indicata | I caratteri turchi possono rovinarsi in alcuni browser. | All'inizio della sezione head aggiungere la riga meta charset="utf-8". | missing-charset |
| L'indirizzo della pagina è troppo lungo | L'indirizzo è troppo lungo e difficile da leggere. | Tenere l'indirizzo breve e significativo. | url-too-long |
| Nell'indirizzo ci sono lettere maiuscole o trattini bassi | Si possono creare due grafie diverse della stessa pagina. | Scrivere gli indirizzi in minuscolo e con i trattini. | url-uppercase-or-underscore |
| Titolo H1 mancante | La pagina non ha il titolo principale. | Aggiungere un solo H1 che descriva l'argomento. | missing-h1 |
| Più titoli H1 | Ci sono più titoli principali. | Lasciare un solo H1. Trasformare gli altri in H2 o H3. | multiple-h1 |
| Nella pagina c'è quasi nessun testo | Il crawler non ha trovato testo. Il testo potrebbe arrivare dopo, con JavaScript. | Controllare nel codice sorgente della pagina se il testo è visibile. | thin-content |
| Dalla pagina non parte nessun collegamento | Pagina senza uscita: non porta da nessuna parte. | Aggiungere collegamenti alle pagine correlate, alla categoria superiore o alla home page. | no-outgoing-links |
| Titolo troppo lungo | Google taglia dopo i 60 caratteri. | Portare il titolo a 50-60 caratteri. Mettere all'inizio le parole importanti. | title-too-long |
| Titolo troppo corto | Il titolo non descrive la pagina. | Scrivere un titolo di 30-60 caratteri che dica che cosa si offre. | title-too-short |
| Meta description troppo lunga | Google taglia dopo i 160 caratteri. | Mettere all'inizio il messaggio principale e portarla a 70-160 caratteri. | meta-description-too-long |
| Meta description troppo corta | La descrizione non dà un motivo per cliccare. | Scrivere 70-160 caratteri che riassumano la pagina. | meta-description-too-short |
| Livelli dei titoli saltati | Si è saltati da H1 direttamente a H3. | Usare i titoli in ordine: H1, H2, H3. | heading-order-skip |
| Etichetta della visualizzazione mobile (viewport) mancante | Sul telefono la pagina appare minuscola. | Aggiungere la riga viewport nella sezione head. | missing-viewport |
| Lingua della pagina non indicata | Non è scritto in quale lingua è la pagina (manca lang nell'etichetta html). | Per una pagina in turco scrivere html lang="tr". | missing-lang |
| Nelle immagini mancano larghezza e altezza | Durante il caricamento il contenuto salta. | In ogni etichetta img scrivere le dimensioni reali dell'immagine. | images-missing-dimensions |
| Nessun sottotitolo in un testo lungo | Il testo lungo è un unico blocco. | Dividere il testo per argomenti. Dare a ogni parte un titolo H2. | no-subheadings |
| Il testo alternativo dell'immagine è un nome di file | Il testo alternativo è come "IMG_1234.jpg". | Nel testo alternativo scrivere che cosa c'è nell'immagine. | alt-is-filename |
| Testo alternativo dell'immagine troppo lungo | Il testo alternativo è lungo come un paragrafo. | Descrivere l'immagine con una frase. Bastano circa 125 caratteri. | alt-too-long |
| Titolo principale (H1) troppo lungo | L'H1 è lungo come un paragrafo. | Ridurre l'H1 a un breve titolo di una frase. | h1-too-long |
| Collegamenti interni senza testo | Il collegamento non ha testo oppure ha solo un'icona. | Aggiungere un testo visibile o un aria-label (nome nascosto per i lettori di schermo). | empty-anchor-text |
| Testi dei collegamenti privi di significato come "Clicca qui" | Il testo del collegamento non dice dove porta. | Sostituire il testo del collegamento con l'argomento della pagina di destinazione. | generic-anchor-text |
| Troppi collegamenti nella pagina | Nella pagina ci sono centinaia di collegamenti. | Limitare menu e piè di pagina alle pagine più importanti. | too-many-links |
| Collegamenti nofollow verso le pagine del proprio sito | Un collegamento verso le proprie pagine ha nofollow. | Eliminare da questi collegamenti l'espressione rel="nofollow". | internal-nofollow-links |
| Nella pagina manca l'etichetta canonical (indirizzo principale) | Google deve indovinare l'indirizzo principale. | Nella sezione head aggiungere la riga canonical che indica l'indirizzo completo della pagina stessa. | missing-canonical |
| La pagina è nascosta dai risultati di ricerca (noindex) | La pagina è nascosta dalla ricerca, di proposito o per errore. | Se deve comparire nella ricerca, togliere noindex. | noindex-page |
| La pagina indica un'altra pagina come indirizzo principale | La pagina si dichiara una copia. | Se deve comparire nella ricerca con il proprio nome, rendere l'indirizzo principale il proprio indirizzo. | canonicalized-page |
| Nelle versioni linguistiche manca la versione predefinita (x-default) | Per chi ha una lingua che non corrisponde non c'è una versione predefinita. | Aggiungere all'elenco hreflang la riga x-default. | hreflang-missing-x-default |
| La risposta di Google su alcune pagine è invecchiata | Le risposte di Google registrate hanno più di 3 o 14 giorni. | Nella scheda Stato dell'indice premere il pulsante "Google'da durumunu kontrol et" (Controlla lo stato su Google). | stale-google-verdicts |
| Il sito non ha etichette per la condivisione sui social (Open Graph) | Quando viene condiviso, non compaiono immagine e titolo. | Nella sezione head del modello aggiungere og:title, og:description e og:image di 1200x630 pixel. | open-graph-missing-site |
| Il sito non ha alcun dato strutturato | Nella ricerca non c'è alcuna possibilità di risultato arricchito. | Cominciare con un marcatore adatto al tipo di pagina (come Organization, Product, Article). | structured-data-missing-site |
| Google non scansiona questa pagina da molto tempo | L'ultima visita di Google risale a più di 90 giorni fa. | Inserire collegamenti dalle pagine scansionate più spesso. Verificare che la pagina sia nella mappa del sito. | google-crawl-stale |
| Le pagine inesistenti reindirizzano alla home page | Un indirizzo che non esiste porta alla home page. Google di solito lo considera un soft 404. | Mostrate una pagina di errore che restituisce 404. Reindirizzate solo le pagine spostate. | not-found-redirects-home |
| Icona del sito (favicon) non trovata | Nella ricerca da mobile accanto al nome del sito compare un'icona generica. | Caricate un'icona quadrata di almeno 48x48 pixel e dichiaratela nel head. | missing-favicon |
| robots.txt non indica la mappa del sito | In robots.txt manca la riga "Sitemap:". Bing e altri crawler trovano lì la mappa. | Aggiungete in fondo al file una riga "Sitemap:" con l'indirizzo completo della mappa. | robots-missing-sitemap-line |
| Alcuni crawler di IA sono bloccati da robots.txt | Bot come GPTBot e ClaudeBot sono esclusi. È una scelta; la ricerca Google non ne risente. | Se è voluto, lasciate così. Per comparire nelle risposte dell'IA, consentite i bot di ricerca. | ai-crawlers-blocked |
| Manca il file llms.txt (facoltativo) | Manca il file proposto per gli assistenti IA. Non è uno standard e Google non lo usa. | Se volete, mettete nella radice un /llms.txt con le pagine principali. | missing-llms-txt |
| La pagina iniziale è arrivata senza compressione | La pagina è arrivata senza compressione gzip o brotli. | Attivate la compressione sul server o sulla CDN. | no-compression |
| Tag Open Graph incompleti | Manca il titolo, la descrizione o l'immagine della scheda di condivisione. | Aggiungete insieme og:title, og:description e og:image. | og-incomplete |
| Manca il tag della card di X (Twitter) | Su X il link può comparire come semplice indirizzo, senza scheda. | Aggiungete nel head un tag twitter:card (summary_large_image). | twitter-card-missing |
| Il tag title e l'H1 sono identici | Non è un errore, ma una delle due occasioni va sprecata. | Scrivete il title per il risultato di ricerca e l'H1 per chi legge la pagina. | title-equals-h1 |
| Il titolo potrebbe essere tagliato nei risultati | Il titolo è breve, ma le lettere larghe lo portano oltre circa 580 pixel. | Accorciate il titolo o scrivete in minuscolo le parole tutte maiuscole. | title-pixel-too-wide |
| Tag meta keywords superfluo | Google non usa affatto questo tag. | Toglietelo dal modello o dalle impostazioni del plugin SEO. | meta-keywords-present |
| Link esterni si aprono in una nuova scheda senza noopener | Una nota di buona pratica. I browser attuali lo fanno già da soli. | Aggiungete rel="noopener" a questi link. | blank-target-without-noopener |
| Le immagini più in basso si caricano subito | Più di sei immagini sotto il primo schermo si caricano appena la pagina si apre. | Aggiungete loading="lazy". Non sull'immagine principale del primo schermo. | images-not-lazy |
| Immagini in formati vecchi | Tre o più immagini sono JPEG, PNG o GIF senza alternativa in un formato più recente. | Convertite le immagini in WebP o AVIF. | images-legacy-format |
| Lo stesso id su più elementi | Etichette dei moduli e link interni alla pagina possono puntare all'elemento sbagliato. | Rendete unico ogni id. Se serve solo allo stile, usate una class. | duplicate-ids |
| Elementi HTML annidati troppo in profondità | La pagina ha elementi annidati oltre 32 livelli. | Togliete dal modello gli strati di contenitori inutili. | dom-too-deep |
| Pochissimo testo visibile rispetto al codice | Il testo visibile è meno di un decimo dell'HTML. | Spostate il codice incorporato in file separati. Verificate che il testo sia nel sorgente della pagina. | low-text-ratio |
| Nei dati strutturati mancano proprietà consigliate | Nel markup Article o Organization mancano campi consigliati da Google. I risultati avanzati non sono bloccati. | Aggiungete i campi mancanti con informazioni visibili sulla pagina. Non è urgente. | structured-data-recommended-props-missing |
| Nessun tag Google Analytics trovato nelle pagine | Nell'HTML non c'è alcun ID G-, GTM- o UA-. Se il tag viene caricato dopo, ignorate questo problema. | Aggiungete il codice di Analytics o di Tag Manager nel head di ogni pagina. | analytics-tag-missing |
| Manca l'intestazione X-Content-Type-Options | Il browser può indovinare il tipo dei file. Non incide sul posizionamento. | Aggiungete "X-Content-Type-Options: nosniff" alle risposte del server. | missing-x-content-type-options |
| La pagina può essere incorporata nei frame di altri siti | Un altro sito può mettere la vostra pagina in un frame invisibile (clickjacking). | Aggiungete l'intestazione "frame-ancestors 'self'" o "X-Frame-Options: SAMEORIGIN". | missing-clickjacking-protection |
| Manca l'intestazione Referrer-Policy | Non è urgente. L'intestazione decide quanta parte del vostro indirizzo viene condivisa quando un visitatore passa a un altro sito. | Aggiungete l'intestazione "Referrer-Policy: strict-origin-when-cross-origin". | missing-referrer-policy |
| Il dominio non ha un record SPF | Altri possono inviare e-mail false a vostro nome. Non incide direttamente sulla SEO. | Aggiungete nel DNS, come TXT, il record SPF consigliato dal vostro servizio di posta. | missing-spf |
| Il dominio non ha un record DMARC | Nulla dice che cosa fare delle e-mail che non superano la verifica. Non incide direttamente sulla SEO. | Aggiungete nel DNS un record TXT chiamato \_dmarc. Iniziate con p=none. | missing-dmarc |
| La pagina carica CSS che non usa | Vengono scaricate regole di stile inutilizzate. | Disattivate i fogli di stile inutilizzati. | lh-unused-css |
| I file JavaScript non sono minimizzati | I file JavaScript non sono minimizzati. | Attivate la minimizzazione nello strumento di build o nella CDN. | lh-unminified-javascript |
| I file CSS non sono minimizzati | I file CSS non sono minimizzati. | Attivate la minimizzazione nello strumento di build o nella CDN. | lh-unminified-css |
| I file non restano abbastanza a lungo nel browser | I file hanno una durata di cache del browser breve. | Date ai file che non cambiano un Cache-Control lungo. | lh-cache-policy |
| Il peso totale della pagina è molto alto | La pagina supera in totale i 2,5 MB. | Alleggerite le immagini, i video e gli script più grandi. | lh-total-byte-weight |
| La struttura della pagina creata nel browser è molto grande | La struttura della pagina creata nel browser è molto grande. | Create il contenuto nascosto solo quando serve. | lh-dom-size |
| Il server risponde lentamente (Lighthouse) | Il primo byte del server arriva dopo più di 600 ms. | Attivate la cache delle pagine. | lh-slow-server-response |
| Il testo è invisibile mentre si caricano i font | Il testo resta invisibile finché i font non sono caricati. | Aggiungete font-display: swap. | lh-font-display |
| L'immagine principale non viene richiesta con priorità | L'immagine principale viene scoperta tardi o senza priorità. | Inseritela nell'HTML come img con fetchpriority="high". | lh-lcp-not-prioritized |
| I file sono serviti con il vecchio HTTP/1.1 | I file arrivano via HTTP/1.1. | Attivate HTTP/2 sul server o sulla CDN. | lh-modern-http |
| Viene inviato JavaScript inutile per i browser vecchi | Viene inviato codice per browser vecchi che non serve. | Aggiornate l'impostazione dei browser di destinazione. | lh-legacy-javascript |
| Codice di terze parti tiene occupato a lungo il browser | Il codice di terze parti occupa il thread principale per oltre 0,5 s. | Togliete i tag inutili e rimandate gli altri. | lh-third-parties |
| Il caricamento del contenuto principale potrebbe essere più rapido (LCP) | L'LCP è tra 2,5 e 4 secondi. | Alleggerite l'immagine principale e disattivatene il caricamento differito. | cwv-lcp-needs-improvement |
| Il contenuto si sposta un po' durante il caricamento (CLS) | Il CLS è tra 0,1 e 0,25. | Date le dimensioni alle immagini e riservate lo spazio per gli annunci. | cwv-cls-needs-improvement |
| Le risposte ai clic potrebbero essere più rapide (INP) | L'INP è tra 200 e 500 ms (dati sul campo). | Spezzate gli script lunghi che girano al clic. | cwv-inp-needs-improvement |
| La lingua della pagina non è dichiarata nel browser (Lighthouse) | L'elemento html non ha l'attributo lang. | Dichiarate una lingua, per esempio lang="it" sull'elemento html. | lh-a11y-html-has-lang |
| Le aree da toccare sono troppo piccole o troppo vicine | Le aree da toccare sono piccole o troppo ravvicinate. | Date alle aree almeno 24×24 pixel. | lh-a11y-target-size |
| L'ordine dei titoli salta livelli nel browser (Lighthouse) | Nel browser alcuni livelli di titolo vengono saltati. | Usate i titoli in ordine. | lh-a11y-heading-order |
| Il browser registra errori all'apertura della pagina | Al caricamento compaiono errori nella console. | Guardate la scheda Console di Chrome. | lh-errors-in-console |
| La pagina usa funzioni che i browser stanno eliminando | Vengono usate funzioni del browser deprecate. | Aggiornate il vecchio plugin o la vecchia libreria. | lh-deprecations |
| Il browser segnala problemi nella pagina | Il pannello "Issues" di Chrome registra delle voci. | Guardate la scheda Issues degli strumenti per sviluppatori. | lh-inspector-issues |
| Alcune immagini sono mostrate con proporzioni errate | Le immagini sono mostrate con proporzioni errate. | Usate width/height corretti o object-fit. | lh-image-aspect-ratio |
| Alcune immagini hanno una risoluzione bassa per lo schermo | Le immagini hanno una risoluzione troppo bassa per lo schermo. | Offrite versioni più grandi con srcset. | lh-image-size-responsive |
| I testi dei link non sono descrittivi (Lighthouse) | I testi dei link non dicono nulla della destinazione. | Scrivete il testo in base all'argomento della destinazione. | lh-link-text |
| La pagina reindirizza con meta refresh | La pagina reindirizza con meta refresh. | Fate il reindirizzamento sul server (301). | meta-refresh-redirect |
| L'indirizzo canonical è scritto in forma relativa | Il canonical è un percorso relativo. | Scrivete l'indirizzo completo (https://...). | canonical-relative |
| L'indirizzo canonical contiene un frammento # | Il canonical contiene un frammento #. | Togliete il # e ciò che segue. | canonical-with-fragment |
| La ricerca non mostra lo snippet della pagina | nosnippet o max-snippet:0 nascondono lo snippet. | Togliete la regola se non è voluta. | snippet-blocked |
| Un indirizzo e-mail è esposto in chiaro | Un indirizzo e-mail compare come testo semplice nella pagina. | Valutate un modulo di contatto. | exposed-email-address |
| Le parole del titolo non compaiono nel contenuto | Le parole del titolo non compaiono nel contenuto. | Scrivete il titolo intorno all'argomento della pagina. | title-content-mismatch |
| I dati Organization non elencano profili social | Nei dati Organization manca sameAs. | Aggiungete in sameAs gli indirizzi dei profili ufficiali. | organization-missing-sameas |
| Una pagina profonda non ha il percorso di navigazione (breadcrumb) | Una pagina profonda non ha il percorso di navigazione. | Aggiungete il percorso di navigazione e BreadcrumbList. | missing-breadcrumbs |
| Il codice incorporato nella pagina è molto grande | Script e stili incorporati superano i 100 KB. | Spostate il codice incorporato più grande in file separati. | large-inline-code |
| C'è un blog ma nessun feed RSS/Atom dichiarato | C'è un blog ma nessun feed RSS/Atom è dichiarato. | Dichiarate il feed con un tag link rel="alternate". | missing-feed |
| robots.txt apre alcuni percorsi solo a Googlebot | Questi percorsi sono chiusi agli altri bot, quindi il controllo non li ha scansionati. Google invece può farlo. | Non serve fare nulla. Se non c'è un motivo, rendete la regola uguale per tutti i bot. | robots-googlebot-only-paths |
Come funzionano le regole
La maggior parte delle regole agisce per pagina ed elenca ogni pagina che interessa. Alcune riguardano il sito nel suo insieme e producono un solo problema. Sono le regole su robots.txt, quelle sulla mappa del sito, "Il sito non ha etichette per la condivisione sui social" e "Il sito non ha alcun dato strutturato".
Le regole il cui nome inizia con "Google" non vengono dalla scansione dell'app. Nascono dalle risposte ottenute da Google nella scheda Stato dell'indice. Se in quella scheda non è mai stata posta alcuna domanda, queste regole non agiscono mai. Le regole sulla velocità (LCP, CLS, INP, punteggio SEO) agiscono solo quando "Sayfa hızını da ölç" (Misura anche la velocità delle pagine) è attivo, e in base alla misurazione su telefono.
Le regole il cui identificativo inizia con "lh-", e le regole "da migliorare" per LCP, CLS e INP, vengono lette dal rapporto Lighthouse che PageSpeed Insights invia già per ogni pagina. Anche queste agiscono solo quando "Sayfa hızını da ölç" è attivo, e in base alla misurazione su telefono. Un controllo Lighthouse che su una pagina non è stato eseguito o è fallito non conta né come problema né come superato. "Un link verso un altro sito non funziona" e "Il file dell'immagine è troppo grande" agiscono solo se all'avvio è attivo "Dış bağlantıları ve görsel boyutlarını da kontrol et" (Controlla anche i link in uscita e le dimensioni delle immagini): finita la scansione, vengono interrogati al massimo 300 indirizzi. I siti che bloccano i bot, come i social network, e gli indirizzi che non rispondono non contano mai come non funzionanti. Una regola che un controllo non ha misurato compare come "sconosciuta" nella scheda Kontroller, anche per i controlli fatti prima che queste regole esistessero.
Alcune regole non guardano le pagine una per una: sondano il sito una volta all'inizio del controllo e producono un solo problema. Riguardano gli indirizzi con e senza www, il reindirizzamento da http a https, la risposta a un indirizzo inesistente scelto a caso, un robots.txt che chiude l'intero sito, la sua riga Sitemap e i bot di IA, l'icona del sito, llms.txt, le intestazioni di sicurezza (HSTS, X-Content-Type-Options, protezione dai frame, Referrer-Policy) e la dimensione, la compressione e il tempo della prima risposta della pagina iniziale. La scadenza del certificato SSL viene letta dai registri pubblici dei certificati (Certificate Transparency), quella del dominio dai dati di registrazione (RDAP), i record SPF e DMARC dal DNS. "L'ID Analytics delle pagine non corrisponde alla proprietà collegata" confronta l'ID di misurazione trovato nelle pagine con quelli della proprietà Google Analytics collegata al progetto.