Come creare una sitemap XML

Creare correttamente una sitemap per il nostro sito, blog o portale è un processo estremamente importante soprattutto per siti con molte pagine, pensiamo ad esempio ad un e-commerce.

In quest'ultimo periodo sto seguendo due progetti di e-commerce molto grandi con decine di migliaia di prodotti e mi sto rendendo conto di quanto siano importanti le nozioni che ho appreso studiando: il protocollo XML delle sitemap, il loro scopo e utilità per i motori di ricerca ma soprattutto l'utilità nella loro corretta implementazione.

In questo articolo parleremo:

A Google è utile avere una sitemap del sito?

La sitemap dobbiamo pensarla come una cartina che indica, a chi la utilizza, le risorse (pagine, immagini, articoli) che compongono il sito.

Indica al crawler il percorso sulla risorsa da scaricare.

Analizziamo in dettaglio il seguente brevetto che spiega il collegamento tra: il crawler, lo scheduler e il sito finale.

Web Crawler scheduler that utilizes sitemaps from websites

Inventori: Sascha B. Brawer, Maximilan Ibel, Ralph Michael Keller, Narayanan Shivakumar

Assegnato a: Google Inc.

US 8,417,686 B2

9 Aprile 2013

Abstract

Methods and systems for a web crawler scheduler that utilizes sitemaps from web sites are described. A web crawler scheduling system receives a notification from a website or web server. In response to the notification, the system accesses one or more sitemap( s) for documents associated with the website or web server. The system schedules crawls of the documents based on information identified from the sitemaps. The system crawls at least a subset of the documents scheduled for crawling.

Già alcuni indizi sul perché è importante la sitemap li ritroviamo nell'abstract del brevetto.

Lo scheduler, la parte del crawler che si occupa di organizzare i download delle risorse, utilizza la sitemap come sorgente di URL per le risorse da acquisire.

Alcuni vantaggi da parte del crawler nell'utilizzare le sitemap

  • La facilità nell'avere tutte le URL delle risorse di un sito web senza che debba farne il discovery. Processo che sicuramente è molto più lento e time consuming
  • La possibilità di non riuscire a seguire determinate URL che magari sono mascherate all'interno dei Javascript o in logiche applicative che non prevedono un link diretto al documento
  • La frequenza di variazione di una risorsa (changefreq)
  • L'ultima data di modifica della risorsa (lastmod>)
  • La classifica di importanza (priority) delle risorse all'interno del sito

Che il motore di ricerca prenda in considerazione questi fattori è un dato di fatto.

Che ne tenga conto dipende molto da come la utilizziamo e dalla veridicità delle informazioni che compaiono nella sitemap.

Il legame tra lo scheduler, la sitemap e il crawler

Flow chart del Cralwer e della sitemap XML

Lo scheduler può ricevere le URL sostanzialmente in tre modi differenti:

  1. Invio manuale delle URL
  2. Invio di una sitemap o un indice che ne raggruppa diverse
  3. Discovery automatica acquisendo i link nei documenti scaricati

Una volta creata la sitemap inviamo il tutto al crawler e precisamente allo scheduler tramite ad esempio Google Webmaster Tool.

L'URL Scheduler invia una lista delle URL da acquisire e suddivide i carichi di lavoro tra i vari server.

Lo puoi vedere come il tuo cervello che coordina le diverse parti del tuo corpo.

L'URL Scheduler invia ai robot (come riportato in figura 7) le URL delle risorse da acquisire.

Le risorse verranno scaricate e  passate al blocco di Content Processing.

Il content processing esamina il documento e tra le tante attività crea la Link Maps.

I record contenuti nella Link Maps vengono utilizzati dal Page Ranker per calcolare l'importanza della risorsa rispetto a tutte le risorse appartenenti allo stesso dominio.

Lo score viene passato a sua volta allo Scheduler che verrà tenuto in considerazione nella successiva pianificazione delle risorse da scaricare.

La priority quindi che assegniamo alla risorsa tramite la sitemap xml viene tenuta in considerazione e affiancata al punteggio dato dal page ranker.

Tanto più le informazioni contenute nella sitemap sono vere e tanto più saranno tenute in considerazione nel calcolo dello score finale.

Tipi di sitemap

Esistono differenti tipi di sitemap:

Ogni sitemap dovrà essere  inviata al crawler per aiutarlo a conoscere tutti i contenuti presenti all'interno del nostro sito internet.

Quindi se hai creato immagini o video, genera una sitemap xml secondo il formato supportato e invialo.

Come si genera una sitemap

Screaming Frog

Screaming Frog - Create Sitemaps

Per generare una sitemap tramite screaming frog bisogna seguire questi semplici passaggi:

  • Digitare nella barra degli indirizzi la URL del sito
  • Fare click su Start
  • Accedere al menu sitemaps
  • Fare click sulla voce create XML Sitemap
  • Scegliere il percorso in cui salvarla

Una volta creata la sitemap dovete ricordarvi di editarla per dargli la giusta frequency e priority.

Plugin per Wordpress

Esistono molteplici plugin per  wordpress. Ne ho testati diversi e quello con cui mi trovo meglio è Better WordPress Google XML Sitemaps.

Alcune caratteristiche interessanti di questo plugin:

  • Crea una sitemap indice
  • Aggiorna in automatico la data di modifica della risorsa
  • Genera le changefreq in base alla frequenza di salvataggio della risorsa
  • Nelle impostazioni possiamo impostare la grandezza della sitemap che come sappiamo non può contenere più di 50.000 URL o essere più grande di 50 MB

Sarebbe stato un plugin perfetto per il nostro scopo se avesse dato la possibilità di impostare in maniera più precisa le priority.

Questo ci avrebbe permesso di impostare una priorità maggiore alle nostre pagine di business.

Esempio pratico

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

   <url>

     <loc>http://www.luigiluongo.com/seo/seo-specialist/</loc>

     <lastmod>2014-09-24</lastmod>

     <changefreq>daily</changefreq>

     <priority>0.9</priority>

  </url>
</urlset>

La prima linea (linea 1) riguarda la tipologia di file. Il file è un XML versione 1.0 che supporta la codifica caratteri UTF-8.

Subito sotto (linea 3) troviamo il namespace (xmlns) che rappresenta lo schema che riporta le regole di composizione del file sitemap XML.

Infine troviamo il blocco  (linea 5) che definisce alcune proprietà dell'oggetto:

  • Loc (linea 7): url della risorsa
  • Lastmod (linea 9): ultima modifica della risorsa
  • Changefreq (linea 11): frequenza di variazione della risorsa
  • Priority (linea 13): priorità della risorsa rispetto a tutte le risorse contenute sul dominio

Lastmod, priority e changefreq sono quelle proprietà sottovalutate che però possono ottimizzare il tempo (crawler session) destinato dallo scheduler al sito internet.

Estratti di esperienza

Mi è successo in molte occasioni di dover gestire, soprattutto per gli e-commerce, moltissimi prodotti. Immaginate se per migliaia e migliaia di prodotti avessimo una sola sitemap senza la proprietà lastmod.

Il crawler come fa a sapere quale scheda prodotto è variata? Deve aspettare che lo scheduler rischeduli la scheda prodotto.

Ma se volessimo far sapere al crawler che quella scheda prodotto è cambiata e quindi incentivarlo a visitare nuovamente la risorsa?

Una delle soluzioni è quella di inserire nella sitemap l'attributo lastmod in maniera che quando inoltriamo una notifica al crawler si possa sapere quali risorse sono variate rispetto all'ultima volta che è stata visionata la sitemap.

Consiglio: Se avete migliaia di prodotti create una sitemap indice che raggruppi le categorie e i prodotti. È un enorme vantaggio se lo guardiamo nell'ottica di migliorare il crawler session.

La sitemap prodotti, se molto grande, potete dividerla ulteriormente in altre sitemap in maniera che quando cambiano alcuni prodotti in alcune di esse non vengano acquisite nuovamente quelle che non sono variate.

In questo modo il crawler accederà solo alle risorse più recenti.

Come verificare la correttezza di una sitemap.xml

W3c validator ci permette di validare secondo lo standard XML la sitemap generata.

Utilizzando il W3c Validator e l'XML sitemap validator possiamo verificare se lo strumento che abbiamo utilizzato abbia generato un file corretto per essere interpretato dai crawler.

Volevo consigliarti, inoltre, questo ottimo articolo scritto da Giovanni Sacheli su come verificare l'esattezza di una sitemap.

Utilizzare Google Webmaster Tool per inviare una sitemap

Una volta che abbiamo generato la sitemap non ci rimane che inviare una notifica al crawler. Per far questo utilizziamo Google Webmaster Tool, uno strumento utile in molte occasioni.

Per inviare una sitemap devi:

  • Avere associato GWT con il tuo dominio
  • Accedere al dominio registrato su GWT
  • Accedere alla sezione Scansione > Sitemap
  • Fare click su Aggiungi/Testa sitemap
  • Inserire la URL della sitemap

GWT Aggiungi sitemap

La parola a John Muller

In questo video al minuto 32:17 si parla dell'utilizzo corretto della proprietà lastmod e del fatto che se il crawler si accorge che viene utilizzata correttamente ne tiene conto e la utilizza. Questo per sottolineare l'importanza di avere una sitemap che integri tutto quello che ci siamo detti e che utilizzi il protocollo in maniera corretta.

E tu utilizzi la sitemap per il tuo sito? Quali strumenti utilizzi?