Sitemap XML: come costruirla ed inviarla a Google e Bing. I consigli per ottimizzare la sitemap per i motori di ricerca.
La creazione di una sitemap è una attività importante nell'ottica di ottimizzazione di un sito web.
In questo articolo vediamo come creare una sitemap, come comunicarla a Google e Bing, e verranno forniti alcuni suggerimenti per ottimizzarla per i motori di ricerca.
Cos'è una sitemap?
Una sitemap è un file in cui vengono elencate le pagine Web del tuo sito, per comunicare a Google e agli altri motori di ricerca come sono organizzati i contenuti all'interno del sito stesso.
I web crawler dei motori di ricerca, come Googlebot per Google, periodicamente leggono questo file e lo utilizzano per migliorare la una scansione del sito e quindi la sua indicizzazione.
Oltre ad elencare le pagine del sito, una sitemap fornisce anche informazioni importanti sulle pagine, come ad esempio:
- l'ultimo aggiornamento della pagina
- la frequenza con cui la pagina viene modificata
- l'importanza ("priorità") della pagina rispetto ad altre pagine nel sito.
L'utilizzo di una sitemap tuttavia NON garantisce che tutte le pagine presenti nella sitemap vengano sottoposte a scansione ed indicizzazione. Rappresenta solo una indicazione che diamo ai motori di ricerca.
Come è strutturata una sitemap XML
Una sitemap XML segue lo schema classico degli xml. Questo è un esempio in cui sono inserite nella sitemap 2 pagine identificate dal tag <url>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.miosito.it/realizzazione-siti-e-commerce</loc>
<lastmod>2018-02-16T09:11:33Z</lastmod>
<changefreq>priority</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.miosito.it/consulenza-web</loc>
<lastmod>2018-03-19T12:15:58Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
</urlset>
All'interno di ogni <url> sono presenti 4 elementi
- <loc>: indentifica la url della pagina
- <lastmod>: è la data di ultima modifica della pagina. Dovrebbe avere il formato W3C Datetime come vediamo nell'esempio, ma è anche ammesso il formato anno-mese-giorno (es. 2018-02-16)
- <changefreq>: occorre ad indicare la frequenza con la quale la pagina potrebbe venire aggiornata.
I valori validi sono: always, hourly, daily, weekly, monthly, yearly, never.
Le pagine che subiscono modifiche ogni qualvolta vi si accede devono avere valore "always", pagine invece che non cambieranno mai avranno valore "never".
Si tratta comunque di un suggerimento, per cui pagine contrassegnate con "hourly" non significa che verranno scansionate ogni ora. - <priority>: indica l'importanza della pagina rispetto alle altre pagine.
I possibili valori vanno da 0,0 (priorità minima) a 1,0 (priorità massima). La priorità predefinita è 0,5.
Anche in questo caso di tratta solo di un suggerimento che stiamo dando al motori di ricerca, per cui non è detto che pagine con priorità massima nelle SERP prevalgano rispetto a pagine con priorità minima.
Come creare la sitemap
In presenza di un sito "statico" o con poche pagine nulla vieta di creare a mano questa sitemap. Ma se il nostro sito presenta un database, con molti articoli, notizie... diventa impensabile lavorarlo "a mano". Occorre quindi generarlo dinamicamente.
Se utilizzate un comune CMS, come WordPress, lo strumento per generare il CMS dinamicamente è incluso.
Se invece non è previsto, o se il CMS ve lo siete costruito voi stessi, avete varie possibilità:
- Creare la sitemap dinamicamente nel momento in cui il crawler accede per la sua scansione
Il file in questo caso non sarà un vero xml, ma un file, ad esempio, php, che andrà a recuperare le pagine da un database, e con un ciclo for si andrà a popolare.
Un esempio di xml generato via php è il seguente.
Creiamo una variabile "$xml" contentente l'intestazione xml e i vari records da inserire estratti da una tabella "news" con la data nel formato adeguato. A fondo file andrò a "printare" la variabile.
E' importante inoltre impostare un header per forzare un output di tipo xml e non php.
<?php $xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"?> <urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">"; $query = "SELECT news_url,date_format(news_datapub ,'%Y-%m-%dT%H:%i:%sZ') AS datapub FROM news ORDER BY news_datapub DESC"; $result = mysql_query($query, $mysql_link); $rows = mysql_num_rows($result); { while($row = mysql_fetch_array($result)) { $xml .="<url>"; $xml .="<loc>$row[news_url]</loc>"; $xml .="<lastmod>$row[datapub]</lastmod>"; $xml .="<changefreq>monthly</changefreq>"; $xml .="<priority>0.7</priority>"; $xml .="</url>"; } } $xml .="</urlset>"; header('Content-Type: application/xml; charset=utf-8'); print $xml; ?>
- Creare la sitemap al momento del salvataggio / modifica dell'articolo
Quando, dall'amministrazione del sito, salvate la notizia, prevedete la creazione della sitemap in quel momento. Questo comporterà qualche secondo in più di attesa in fase di salvataggio della notizia ma la sitemap sarà così già disponibile sul tuo sito senza doverla generare dinamicamente come visto al punto 1. - Utilizzare un tool online o un software
Esistono vari tool online o software per creare una sitemap, come ad esempio ScreamingFrog
Sitemap con video ed immagini
Se possibile, è utile arricchire la sitemap anche con elementi multimediali come immagini e video.
Vediamo un esempio di sitemap con una notizia contenente immagine e video.
<?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"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>http://www.miosito.it/realizzazione-siti-e-commerce</loc>
<image:image>
<image:loc>http://www.miosito.it/image.jpg</image:loc>
<image:caption>Realizziamo il tuo sito ecommerce</image:caption>
</image:image>
<video:video>
<video:content_loc>http://www.miosito.it/video123.flv</video:content_loc>
<video:player_loc allow_embed="yes" autoplay="ap=1">http://www.miosito.it/videoplayer.swf?video=123</video:player_loc>
<video:thumbnail_loc>http://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Come realizziamo il tuo sito ecommerce</video:title>
<video:description>In questo title il dott Marco vi spiega come realizziamo un sito ecommerce</video:description>
</video:video>
</url>
</urlset>
Oltre ad aver modificato tag <urlset>, abbiamo aggiunto i tag <image:image> e <video:video>.
Per l'immagine, all'interno di <image:image>, abbiamo:
<image:loc>: identifica la url all'immagine
<image:caption>: indichiamo una breve descrizione dell'immagine
Per il video, all'interno di <video:video>, abbiamo:
<video:content_loc>: identifica la url al file video
<video:player_loc>: identifica la url al player video
<video:thumbnail_loc>: indico una immagine rappresentativa del video
<video:title>: indico il titolo del video
<video:description>: indico una breve descrizione del video
Esistono, sia per le immagini che per i video numerose, altre informazioni che è possibile indicare nell'xml. Si rimanda alle pagine ufficiali di google.
Dove salvare la sitemap
Si consiglia di inserire il file Sitemap.xml nella root del web server, per cui la sua url sarà ad esempio "https://www.miosito.it/sitemap.xml"
Validare la sitemap
Esistono vari tool online per validare la sitemap creata, in modo tale da esser certi di aver creato una sitemap formalmente corretta.
E' sufficiente cercare su Google o sul tuo motore di ricerca preferito le parole chiavi "validate xml sitemap" o similari
Un esempio di tool lo vedete cliccando su questo link.
Comunicare a Google la sitemap
Creata la sitemap, dobbiamo comunicarla ai motori di ricerca.
Per comunicare a Google l'esistenza della sitemap si accede, dopo essersi registrati, alla sua Search Console dove abbiamo creato un profile per il nostro sito.
In questo profilo, nel menu di sinistra, si seleziona "Scansione > Sitemap", e dentro a questa pagina si clicca su "AGGIUNGI/TESTA SITEMAP"
Inseriamo nell'apposito campo la url al file "sitemap.xml" e clicchaimo su "Invia".
Così facendo Google prende in carico l'attività di scansione del file.
Comunicare a Bing la sitemap
In Bing accediamo, previa registrazione, al Bing WebMasterTool. Anche qui occorre creare un profilo per il nostro sito. Al suo interno si accede a "Configura sito > Sitemap", e nell'apposito campo indichiamo la url al file xml.
Sitemap multiple
E' possibile creare più sitemap per il proprio sito, ad esempio una sitemap per le pagine statiche (contatti, home, prima pagine di ogni sezione), e una sitemap con tutte le notizie.
In questo caso è possibile operare in due modi differenti
La prima possibilità è aggiungiamo entrambe le sitemap alla Search Console di Google, e alla Bing WebMaster Tool. Ma se avessessimo molte sitemap diventa un lavoro lungo.
Oppure creiamo una ulteriore sitemap che contenga i riferimenti alle sitemap generate: sarà solo questa la sitemap che andremo a segnalare ai motori di ricerca.
Ad esempio abbiamo due sitemap contententi le pagine del sito, chiamate sitemap1.xml e sitemap2.xml, e una terza sitemap chiamata sitemap.xml contenente i riferimenti alle due sitemap precedenti
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.miosito.it/sitemap1.xml</loc>
<lastmod>2004-10-01T18:23:17+00:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.miosito.it/sitemap2.xml</loc>
<lastmod>2004-10-01T18:23:17+00:00</lastmod>
</sitemap>
</sitemapindex>
Sarà solo questa sitemap.xml che andremo a segnalare nella Search Console di Google, e alla Bing WebMaster Tool
Consigli per ottimizzare la sitemap
Vediamo alcuni consigli per creare una sitemap ottimizzata per i motori di ricerca
- Utilizza solo URL Canoniche
Se il tuo sito presenta pagine duplicate in più sezioni, pagine con url differenti ma presentano lo stesso contenuto, inserite nella sitemap solo la url canonica cioè la url principale ("ufficiale") della pagina - Non includere URL "noindex"
Le url che contengono rel="noindex", o le pagine che contengono il meta "noindex", indicano link e pagine che non vogliamo indicizzare sui motori di ricerca. Per questo motivo NON dobbiamo inserirle nella sitemap perchè dichiarle in una sitemap sarebbe incoerente con il "noindex" - Aggiorna la data di modifica della pagine solo quando apporti modifiche sostanziali
Non cercare di ingannare i motori di ricerca aggiornando periodicamente e in modo non veritiero la data di modifica senza apportare modifiche sostanziali alla tua pagina. Questo potrebbe essere controproducente, inducendo Google a penalizzare la pagina. - Utilizza sitemap con un peso non eccessivoMinore è il peso della tua sitemap, minore sarà il tempo di scansione. Google e Bing accettano sitemap con un peso massimo di 50 MB, ma è comunque buona norma mantenere la tua mappa del sito più snella possibile e dare la priorità alle pagine principali. Considera inoltre che se il tuo sito è in hosting esiste un tempo massimo di esecuzione di ogni script o pagina. Per cui un file eccessivamente grosso potrebbe richiedere un tempo eccessivo di esecuzione e quindi andare in timout e non consentire al motore di ricerca la sua completa lettura.
Puoi anche abilitare sul tuo server la compressione GZip e creare un file compresso "sitemap.xml.gz" così da rendere il file più leggero e far risparmiare banda al tuo server. - Crea più Sitemap se il sito include più di 50.000 URL
Ogni sitemap può contenere fino a 50.000 url. Se il tuo sito ha molte pagine, ad esempio un sito di notizie o un blog, ed include più di 50.000 url occorre creare più sitemap, ad esempio una sitemap per sezione.
Avremo quindi la sitemap1.xml, la sitemap2.xml, la sitemap3.xml ....
In questo caso occorre comunicare alla Search Console di Google le varie sitemap.
In alternativa, è possibile creare una sitemap delle sitemap! Cioè una sitemap, da comunicare alla Search Console, che contiene al suo interno la lista delle varie sitemap. In questo modo comunichiamo a Google un solo file sitemap. - Dai priorità nella tua Sitemap alle pagine di qualità
Privilegia nella tua sitemap le pagine più importanti del tuo sito, che presentano contenuti di qualità, che presentano contenuti unici, video e immagini, che coinvolgono degli utenti attraverso commenti e recensioni. - Sitemap in siti multilingua
In presenza di siti multilingua è preferibile creare una sitemap per ogni versione del sito, quindi una per la lingua italiana, una per l'inglese, ....