Direttive di indicizzazione. In questo intervento approfondiremo l'uso degli strumenti e delle procedure che ci consentono di avere il controllo su tutta la comunicazione con i motori di ricerca: dalla classica Sitemap al Robots.txt, dal Prev-Next al Canonical, dall'HREF Lang alla Search Console. L'intervento mira ad approfondire le analisi rendendole più operative e veloci.
9. Valutare indicizzazione: quanti URL sono indicizzabili?
Conta pagine INDEX, canoniche self-referencing, con status code 200 + PDF*
Senza canonical? Devi contare tutte le pagine INDEX con Status Code 200
10. Come valutare il valore di pagine indicizzate?
Rapporto di indicizzazione = Pagine Indicizzate / Pagine Indicizzabili
369 / 343 = 1,07 = 107%
Valutare il risultato? Tra 80% e 120% sono valori accettabili.
Se X < 80%:
–Google sta perdendo una buona parte di pagine che non vengono indicizzate.
Qualità dei contenuti (brevi/copy)? Link interni? Pagine orfane?
Se X > 120%:
–Google sta indicizzando più pagine di quelle che mi aspetto.
Ci sono duplicazioni? Parametri non canonicalizzati?
www vs not-www? http vs https?
11. Come scovare problemi? Analisi per cartelle
Nel caso ottenessi un rapporto di indicizzazione preoccupante, serve indagare.
Come? Ad esempio, analizzando per cartelle!
Con l'operatore di ricerca site: oppure con profili specifici in GSC.
11 Pagine indicizzate
in cartella
15. È possibile registrare profili
GSC per singole cartelle in
modo da analizzare dati
specifici a sezioni del sito
(cartelle).
Utile per analisi di siti web
con lingue in cartelle,
oppure con SILO ben
definiti e strutturati.
Come scovare problemi? Analisi per cartelle
18. Dati da GSC = 11 URL
Dati da crawling: 11 URL
Rapporto di indicizzazione = 100%
ok la sezione è completamente
indicizzata
Passo ad analizzare la prossima
cartella...
Come scovare problemi? Analisi per cartelle
22. Sitemap.xml
La sitemap.xml è una lista formattata e strutturata delle pagine che
compongono il sito.
Serve da riferimento per i motori di ricerca che potranno sapere:
–quali pagina contiene il sito e quindi quali pagine scansionare,
–quando sono state aggiornate
–con quale frequenza vengono aggiornate
–l'importanza relativa delle pagine
24. Dove mettere la sitemap
L'ubicazione di un file Sitemap determina il set di URL che possono essere inclusi
in tale Sitemap.
Un file Sitemap situato in http://esempio.it/catalog/sitemap.xml può includere
qualsiasi URL che inizia con http://esempio.it/catalog/ ma non può includere URL
che iniziano con http://esempio.it/catalog-2/.
Un file di indice Sitemap può solo specificare Sitemap trovate nello stesso sito.
Ad esempio, http://www.tuosito.com/sitemap_index.xml può includere Sitemap
su http://www.tuosito.com ma non su http://www.tuosato.com o su un terzo
dominio http: //caio.tuosito.com.
Tutti gli URL elencati nella Sitemap devono utilizzare lo stesso protocollo
(http, in questo esempio) e risiedere sullo stesso host della Sitemap.
25. Dove mettere la sitemap
Consiglio di posizionare la propria Sitemap nella directory principale del proprio
server web.
http://tuosito.com/sitemap.xml.
Maggiori info: https://3v3.run/costruire-sitemap
26. Attributi della sitemap.xml - richiesti
Attributo Richiesto oppure Facoltativo Info
<urlset> Richiesto Incapsula il file e fa riferimento allo standard
del protocollo corrente.
<url> Richiesto Tag principale per ogni voce di URL. I tag
rimanenti sono figli di questo tag.
<loc> Richiesto URL della pagina. Questo URL deve iniziare
con il protocollo (come http) e terminare con
una barra finale, se il tuo server web lo
richiede. Questo valore deve essere inferiore
a 2048 caratteri.
27. Attributi della sitemap.xml - facoltativi
Attributo Richiesto oppure
Facoltativo
Info
<lastmod> Facoltativo La data dell'ultima modifica del file, utilizzare
il formato YYYY-MM-DD.
<changefreq> Facoltativo Con che frequenza è probabile che la pagina
cambi. I valori validi sono: always, hourly,
daily, weekly, monthly, yearly, never. Questo
tag è considerato un suggerimento e non un
comando.
<priority> Facoltativo La priorità di questo URL rispetto ad altri URL
sul tuo sito. I valori validi vanno da 0.0 a 1.0.
Questo valore non influisce sul modo in cui le
tue pagine vengono confrontate con pagine di
altri siti, ma consente solo ai motori di ricerca
di sapere quali pagine ritieni più importanti
per i crawler.
29. Tipologie di sitemap.xml
IMAGE SITEMAP.XML
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>http://example.com/sample.html</loc>
<image:image>
<image:loc>http://example.com/image.jpg</image:loc>
</image:image>
<image:image>
<image:loc>http://example.com/photo.jpg</image:loc>
</image:image>
</url>
</urlset>
La sitemap.xml può
includere dettagli
delle immagini a
livello di singolo URL
<url>
https://support.googl
e.com/webmasters/an
swer/178636?hl=it
30. Tipologie di sitemap.xml
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>http://www.example.com/videos/some_video_landing_page.html</loc>
<video:video>
<video:thumbnail_loc>http://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Grilling steaks for summer</video:title>
<video:description>Alkis shows you how to get perfectly done steaks every time</video:description>
<video:content_loc>http://streamserver.example.com/video123.mp4</video:content_loc>
<video:player_loc>http://www.example.com/videoplayer.php?video=123</video:player_loc>
<video:duration>600</video:duration>
<video:expiration_date>2021-11-05T19:20:30+08:00</video:expiration_date>
<video:rating>4.2</video:rating>
<video:view_count>12345</video:view_count>
<video:publication_date>2007-11-05T19:20:30+08:00</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
<video:restriction relationship="allow">IE GB US CA</video:restriction>
<video:price currency="EUR">1.99</video:price>
<video:requires_subscription>yes</video:requires_subscription>
<video:uploader info="http://www.example.com/users/grillymcgrillerson">GrillyMcGrillerson</video:uploader>
<video:live>no</video:live>
</video:video>
</url>
</urlset>
La sitemap.xml può
includere dettagli dei
video embedded a
livello di singolo URL
<url>
https://support.googl
e.com/webmasters/an
swer/80471?hl=it
31. SITEMAP-INDEX.XML
Encoding UTF-8 come file XML
Se fornisci più Sitemap, devi quindi
elencare ciascun file Sitemap in un file
di indice Sitemap.
I file indice Sitemap non possono
elencare più di 50.000 Sitemap e
non devono avere dimensioni superiori
a 50 MB (52.428.800 byte) e possono
essere compressi.
Puoi avere più di un file di indice
Sitemap. Il formato XML di un file di
indice Sitemap è molto simile al
formato XML di un file Sitemap.
SITEMAP.XML
Encoding UTF-8 come file XML
Puoi fornire più file Sitemap, ma ogni
file Sitemap che fornisci non deve
contenere più di 50.000 URL e non
deve contenere più di 50 MB
(52.428.800 byte).
Se lo desideri, puoi comprimere i file
Sitemap utilizzando gzip per ridurre il
tuo requisito di larghezza di banda;
tuttavia il file Sitemap una volta non
compresso non deve superare i 50 MB.
Se si desidera elencare più di 50.000
URL, è necessario creare più file
Sitemap.
Regole e limiti
32. Verificare la correttezza e completezza di una
sitemap.xml
1. Verifico la sitemap.xml con Google Search Console
– sintassi e conteggio URL
2. Verifico che siano usati tutti gli attributi in modo corretto.
3. Scansiono il sito, mi interessa esportare la lista delle solite pagine canoniche,
INDEX con status code 200.
4. Salvo in locale la sitemap.xml, la scansiono in modalità lista con Screaming Frog
ed esporto la lista di URL.
5. Confronto le due liste con una formula vlookup di Excel. Cosa cerco?
– Ci sono URL in sitemap e non nel sito?
– Ci sono URL nel sito e non in Sitemap?
– Ci sono status code 3xx, 4xx, 5xx in sitemap.xml?
Maggiori info: https://3v3.run/check-sitemap
33. URL noindex in Sitemap.xml? Perché no!
La segnalazione non
è per forza un
problema, può
essere voluto il
noindex
tag
archivi
...
noindex, follow
36. Robots.txt
Cos'è: è un file di
configurazione del sito web
posizionato nella root del web
server.
–/robots.txt
A cosa serve: con questo file
è possibile definire, a livello di
user-agent, policy di accesso
alle aree del sito, indica ai bot
cosa è scansionabile del sito
web.
37. Robots.txt
Sintassi: <field>:<optionalspace><value><optionalspace>
I commenti possono essere inclusi nel file dopo il carattere '#'.
Il file non può superare i 500 kilobyte -
https://developers.google.com/search/reference/robots_txt
Il record inizia con una o più righe User-agent, seguite da una o più linee
Disallow.
User-agent: nome del bot per il quale il record descrive la politica di accesso.
Disallow: URL completo o parziale (anche Regex) che non deve essere visitato.
Qualsiasi URL che inizia con questo valore non verrà recuperato dai bot che
rispettano il file robots.txt.
Disallow: /help disabilita sia /help.html che /help/index.html
Disallow: /help/ non consente /help/index.html ma consente /help.html
38. #esempio disallow folder, allow sub folder
User-agent:*
Disallow:/foto
Allow:/foto/mamma.jpg
#sitemap.xml link
Sitemap: https://www.esempio.it/sitemap.xml
#tutto aperto
User-agent:*
Disallow:
#tutto chiuso (ops!)
User-agent:*
Disallow:/
Robots.txt esempio
40. Bloccare risorse confidenziali con il
Disallow nel Robots.txt
Robots.txt senza status code
mancante o errato
Robots.txt è case-sensitive
Robots.txt totalmente chiusi
Definire Robots.txt Crawl-delay
Bloccare la cartella wp-content
Maggiori info: https://3v3.run/errori-
robots
File Robots.txt vuoti
Mettere un URL in disallow tramite il
Robots.txt per evitare che una
risorsa appaia nei risultati di ricerca
Usare il Disallow nel Robots.txt per
rimuovere dai risultati di ricerca
l’URL di pagine non più esistenti
Mettere in Disallow nel Robots.txt URL
con redirezioni attive (affiliati?)
Usare il Disallow nel Robots.txt su
pagine che hanno la meta tag
noindex o nofollow o X-Robots-
Tags
Errori comuni nel robots.txt
43. Canonical tag? Un filtro per screamre lo scremabile
Il compito di un motore di ricerca è mostrare risultati pertinenti in risposta ad una
ricerca utente. Per fare un buon lavoro Google deve avere nel suo indice il maggior
numero possibile dei documenti presenti in internet tra cui poter scegliere,
indicizzarli tutti non è possibile al momento.
Alla data in cui scrivo, si stima che l’indice di Google contenga meno del 5% di
tutte le pagine presenti in Internet, dark web compreso. Google non può
indicizzare tutto, servono filtri che rimuovono pagine che non devono essere
indicizzate.
Ad esempio, un parametro può generare centinaia di URL sostanzialmente uguali,
è uno spreco farli indicizzare tutti.
Maggiori info: https://3v3.run/canonical
45. A cosa serve
<link rel="canonical" href="https://esempio.it/abiti/abiti-blu" />
La tag rel canonical serve ad aiutare Google a capire quali pagine indicizzare
e quali invece considerare duplicate.
Questa tag si inserisce nella sezione <heade> della pagina HTML.
In teoria andrebbe inserita solo nella pagine da canonicalizzare ma praticamente
tutti i CMS inseriscono la tag rel canonical in tutte le pagine, anche quelle che si
auto-referenziano nel canonical.
46. A cosa serve
Esistono diversi motivi per cui conviene scegliere espressamente una pagina
canonica in un insieme di pagine duplicate o simili:
–Specificare l’URL da mostrare nei risultati di ricerca.
–Consolidare i segnali associati ai link per pagine simili o duplicate.
–Gestire i contenuti duplicati distribuiti ad altri siti web.
–Aiutare Googlebot a non scansionare pagine inutili.
47. Verificare canonical
1. Usa Screaming
Frog
2. Esegui una
scansione dei link
interni
3. Naviga la scheda
Canonical
4. Analizza con i filtri
le possibilità di
errore: presenti,
mancanti,
canonicalizzati.
48. Verificare canonical
Canonical tag presenti (contains canonical): Conteggio di tutte le pagine
trovate da Screaming Frog che contengono una tag rel canonical.
Canonical tag mancanti (missing): Conteggio delle pagine che non presentano
la tag rel canonical. In teoria non è un errore non avere la tag se l’URL è canonico
di se è stesso, come dicevo i CMS tendono ad inserirla comunque
Canonical tag canonicalizzati (canonicalised): Le pagine canonicalizzate sono
pagine che contengono canonical che punta ad altre pagine. I motori di ricerca non
dovrebbero indicizzare pagine canonicalizzate.
49. Errori comuni nella tag rel canonical
link relativi
– URL: esempio.it/scarpe
– Canonical: /scarpe
parametri indesiderati inclusi
parametri desiderati esclusi
ordinamento parametri diverso da URL
– URL: esempio.it/scarpe?taglia=36&col=rosso
– Canonical: esempio.it/scarpe?col=rosso&taglia=36
canonical verso la homepage
canonical senza www (o con www)
– URL: www.esempio.it/scarpe
– Canonical: esempio.it/scarpe
canonical in HTTP su sito in HTTPS
...
51. Cosa sono i parametri
Un parametro URL è rappresentato da una coppia di elementi, un parametro ed
un valore, che segue il ? alla fine di un URL e si concatena con &.
Sono dati che non si adattano a una struttura gerarchica di percorsi
/cartella1/cartella2/...
52. Perché vanno gestiti i parametri per una corretta SEO?
Alla base
dell’indicizzazione nei
motori di ricerca c’è il
singolo URL.
Ogni URL,
potenzialmente, può
essere indicizzato.
esempio.com/scarpe
è diverso da
esempio.com/scarpe?
colore=verde
È giusto far
indicizzare la
variante? Dipende!
http://www.ideaeng.com/database-full-text-search-0201
53. Perché vanno gestiti i parametri per una corretta SEO?
Se Googlebot, navigando il sito, trovasse link ad entrambi gli URL, potrebbe
decidere di indicizzare tutte e due le pagine.
Il risultato non sarebbe buono dato che avremmo due pagine identiche indicizzate.
I parametri vengono usati per tante funzioni differenti all’interno di un sito web. A
seconda della funzione specifica del parametro è necessario valutare se l’URL
generato sia da indicizzare oppure da escludere da scansione ed indicizzazione.
Bisogna decidere quale parametro mantenere nella tag rel canonical.
54. Perché vanno gestiti i parametri per una corretta SEO?
Migliora
indicizzazione e
scansione.
Evita indicizzazione
pagine indesiderate.
Crawl budget dedicato
alla pagine utili.
55. Funzioni tipiche dei parametri URL
I parametri URL vengono usati da webmaster e sviluppatori per diversi finalità.
Non ci sono regole comuni applicabili indistintamente a tutti i siti web.
I CMS fanno utilizzo unico dei parametri quindi sarà tuo compito capire la funzione
di ciascun parametro che incontrerai durante i tuoi SEO Audit.
56. Tradurre
Es: ?lang=it
Tip: index
Paginare
Es: ?p=2
Tip: index
Tracciare
Es: ?utm_source=referral
Tip: canonicalizzare
Ordinare
Es: ?sort=price
Tip: canonicalizzare/nofollow
Circoscrivere
Es: ?color=red
Tip: canonicalizzare/nofollow*
Specificare
Es: ?id=7
Tip: index*
* Di solito
Le funzioni dei parametri
57. Come gestire i parametri ed evitare duplicazioni - 1
Soluzione universale: CANONICAL TAG
La tag rel canonical è accettata da tutti i motori di ricerca e dovrebbe
essere il primo metodo per gestire i parametri del proprio sito web.
Quando Googlebot incontra un URL come questo
http://www.esempio.com/scarpe?utm_source=ppc e scansionandolo legge
una tag rel canonical http://www.esempio.com/scarpe assegnerà
all’URL canonico l’indicizzazione ed il posizionamento.
L'URL canonicalizzato non verrà indicizzato ma potrà comunque essere
scansionato dai bot.
58. Come gestire i parametri ed evitare duplicazioni - 2
GSC > Scansione >
Parametri URL
Istruire Googlebot,
spiegandogli la
funzione di ciascun
parametro incontrato
durante la
scansione.
59. Come gestire i parametri ed evitare duplicazioni - 2
Se il parametro è da
indicizzare: “Si,
modifica, riordina o
limita i contenuti
della pagina”
Seleziona funzione
Spunta l’opzione
“Ogni URL”.
60. Come gestire i parametri ed evitare duplicazioni - 2
Se il parametro non
è da indicizzare
devi selezionare:
“No, non influisce sui
contenuti della
pagina”.
In alternativa puoi
scegliere “Si,
modifica …”, definire
una funzione e poi
selezionare “Nessun
URL”.
61. Come gestire i parametri ed evitare duplicazioni - 3
NOFOLLOW
La tag rel nofollow applicata ad un link interno chiede ai motori di ricerca di non
seguire quel link e non passare PageRank, di conseguenza l’URL di
destinazione verrà ignorato e non verrà scansionato.
Se però quell’URL è linkato da altre parti senza nofollow, oppure è presente
nella sitemap.xml, allora quell’URL verrà scansionato ed indicizzato.
Per la gestione dei parametri, la tag nofollow dovrebbe essere usata
quando non ci sono altre alternative.
62. Come gestire i parametri ed evitare duplicazioni - 4
DISALLOW
La direttiva Disallow del robots.txt chiede agli spider dei motori di ricerca di non
scansionare la cartella oppure l’URL definito.
La direttiva Disallow non preclude l’indicizzazione ma impatta solo sulla
scansione.
Come per la tag rel nofollow, questo metodo non dovrebbe essere la prima scelta
per gestire i parametri URL.
72. Sintassi
Sintassi. Puoi specificare le indicazioni next/previous usando le intestazioni HTTP o
i tag <link> HTML.
Intestazioni HTTP. Restituisci una delle seguenti intestazioni HTTP, o entrambe,
nella risposta di una pagina.
–Link: <www.example.com/cats_part_3; rel="next"> per la parte successiva
dell'articolo.
–Link: <www.example.com/cats_part_1; rel="prev"> per la parte precedente
dell'articolo.
Tag <link> HTML. Inserisci i tag <link> appropriati all'interno dell'elemento
<head> della pagina.
–<link rel="next" href="next_page_URL"> per la parte successiva dell'articolo.
–<link rel="prev" href="previous_page_url"> per la parte precedente
dell'articolo.
74. E ora?
Se devi ancora
implementarlo, non
farlo.
Se lo hai già
implementato,
correggi gli errori,
come ad esempio
loop infiniti.
pg1
prev=0
... pg9
next=10
76. Hreflang, a cosa serve?
TL;TR: La tag hreflang serve a bypassare l'autorevolezza delle
pagine mostrando in SERP risultati locali.
<link rel="alternate" href="http://esempio.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://esempio.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://esempio.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://esempio.com/en" hreflang="en" />
<link rel="alternate" href="http://esempio.com/" hreflang="x-default" />
77. Hreflang, a cosa serve?
Ricerca: Nike
Con l’attributo hreflang, l’utente di lingua Italiana troverà nei
risultati la homepage in italiano, a prescindere
dall’autorevolezza delle altre lingue.
Offrendo risultati localizzati è possibile ridurre il bounce
rate, migliorare il conversion rate ed offrire
un’esperienza utente migliore.
78. Hreflang, regole
Hreflang è un segnale, non una direttiva.
Alla data in cui scrivo Google e Yandex considerano l’attributo
hreflang, Bing invece usa la meta tag language.
L’attributo hreflang dovrebbe essere presente in tutte le pagine che
hanno copie tradotte in altre lingue. Deve essere inserito in una, e
una soltanto, delle seguenti opzioni:
Nella tag head, quindi nel markup della pagina HTML
Nell’intestazione HTTP
Nella sitemap.xml
79. Hreflang, regole
Google supporta il formato ISO 639-1 per le lingue, ma è possibile
usare il formato più specifico ISO 3166-1 Alpha 2 per specificare le
regioni geografiche in target.
Il valore dell’attributo hreflang identifica la lingua (nel formato ISO
639-1) e, facoltativamente, zona geografica (nel formato ISO 3166-1
Alpha 2) di un URL alternativo. Ad esempio:
lingua-ZONA
es: contenuti in spagnolo, indipendentemente dalla regione
es-ES: contenuti in spagnolo per utenti della Spagna
es-MX: contenuti in spagnolo per gli utenti del Messico
80. Hreflang x-default
L'attributo x-default comunica ai motori di ricerca che la pagina
linkata non targettizza nessuna lingua/regione in particolare.
Chi cerca da zone non coperte da HREFLANG finirà sulla versione
definita nel x-default.
81. Hreflang x-default
L'attributo x-default
comunica ai motori di
ricerca che la pagina
linkata non targettizza
nessuna
lingua/regione in
particolare.
Chi cerca da zone non
coperte da HREFLANG
finirà sulla versione
definita nel x-default.
https://webmasters.googleblog.com/2013/04/x-default-hreflang-for-international-pages.html
85. Errori comuni
Tag di ritorno con errore (404)
definire solo country code (gb)
underscore invece del dash (en_gb)
Country o language code errati (ger al posto di de)
location-lang (gb-en)
Hreflang definite in sitemap e con tag onpage
Canonical incoerente con Hreflang
Usare URL relativi
Hreflang su pagine Noindex
89. Valide con avvisi
Che cosa sono?
–Si tratta di pagine che sono state
indicizzate, ma che presentano
alcuni problemi, che non siamo
sicuri siano intenzionali da parte
tua.
Errore
Che cosa sono?
–Si tratta di pagine che non è stato
possibile indicizzare per qualche
motivo.
Legenda
Perché è importante?
–Queste pagine vengono mostrate
su Google, ma forse non volevi che
fosse così.
Perché è importante?
–Queste pagine non verranno
mostrate su Google, il che
potrebbe comportare una perdita
di traffico verso il tuo sito.
90. Valide
Che cosa sono?
–Queste pagine sono state
indicizzate.
Escluse
Che cosa sono?
–Si tratta di pagine che non sono
state indicizzate intenzionalmente.
Legenda