Traduzione italiana non ufficiale delle specifiche inglesi del protocollo XML Sitemaps.
Note di traduzione
Visualizza maggiori informazioni sulle note di traduzione di questo documento.
Questo documento descrive lo schema XML per il protocollo Sitemap.
Il formato del protocollo Sitemap è composto da tag XML. Tutti i valori dei dati in una Sitemap devono essere codificati in entità. Il file stesso deve essere codificato in UTF-8.
La Sitemap deve:
<urlset> e terminare con un tag </urlset> di chiusura.
<urlset>.<url> per ogni URL, come tag XML contenitore.<loc> per ogni tag <url> contenitore.Tutti gli altri tag sono facoltativi. Il supporto per questi tag opzionali può variare a seconda dei motori di ricerca. Per i dettagli consulta la documentazione di ciascun motore di ricerca.
L'esempio seguente mostra una Sitemap che contiene un solo URL ed utilizza tutti i tag facoltativi. I tag facoltativi sono formattati in corsivo.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Vedere anche l'esempio con più URL.
I tag XML disponibili sono descritti di seguito.
| Elemento | Descrizione | |
|---|---|---|
| <urlset> | obbligatorio |
Incapsula il file e referenzia lo standard del protocollo corrente. |
| <url> | obbligatorio |
Il tag contenitore per ogni blocco di URL. I tag restanti sono sotto elementi di questo tag. |
| <loc> | obbligatorio |
L'URL della pagina. L'URL deve iniziare con il protocollo (ad esempio http) e terminare con un barra finale, se richiesto dal web server. Il valore non deve superare la lunghezza massima di 2048 caratteri. |
| <lastmod> | facoltativo |
La data di ultima modifica del file. Questa data dovrebbe adottare il W3C Datetime. Questo formato consente di omettere l'ora, se lo desideri, ed utilizzare YYYY-MM-DD. Da notare come questo tag sia separato dall'intestazione If-Modified-Since (304) che il server può restituire. E possibile che i motori di ricerca utilizzino le informazioni da entrambe le sorgenti in modo differente. |
| <changefreq> | facoltativo |
La frequenza cvon la quale la pagina potrebbe essere modificata. Questo valore fornisce un'informazione generale ai motori di ricerca e potrebbe non corrispondere esattamente alla frequenza di scansione della pagina. I seguenti valori sono ammessi (NdT. Il valore tra parentesi corrisponde alla traduzione italiana. Il valore da inserire resta sempre e comunque il corrispettivo inglese):
Il valore "always" dovrebbe essere usato per descrivere documenti che cambiano ogni volta che vi si accede. Il valore "never" dovrebbe essere usato per descrivere URL archiviati. Il valore di questo tag è considerato un suggerimento e non un comando. Anche se i crawler dei motori di ricerca possono prendere in considerazione questa informazione in fase di scelta, possono scansionare pagine contrassegnate come "hourly" con una frequenza minore. I crawler possono inoltre scansionare periodicamente pagine contrassegnate come "never" in modo da poter gestire cambiamenti inaspettati a quelle pagine. |
| <priority> | opzionale |
La priorità di questo URL rispetto agli altri URL del sito. L'intervallo di valori è compreso tra 0.0 e 1.0. Questo valore non influenza il modo in cui le pagine sono confrontate con le pagine di altri siti, serve ai motori di ricerca per comprendere quali pagine reputi più importanti per i crawler. Il valore di priorità predefinito per una pagina è 0.5. La priorità assegnata ad una pagina non influenza il posizionamento dell'URL nelle pagine nei risultati delle ricerche. I motori di ricerca possono usare questa informazione nella scelta di URL dello stesso sito, dunque è possibile usare questo tag per incrementare la probabilità che le pagine più importanti siano presenti nell'indice di ricerca. Inoltre, è probabile che l'assegnazione di un valore alto a tutti gli URL del sito non sia di alcun aiuto. Poiché la priorità è relativa, è utilizzata esclusivamente nella scelta di URL all'interno del sito. |
Il file Sitemap deve essere codificato in UTF-8 (in genere è possibile scegliere questa opzione in fase di salvataggio del file). Come per tutti i file XML, qualsiasi valore dei dati (inclusi gli URL) deve essere codificato in entità per i caratteri elencati nella tabella seguente.
| Carattere | Codifica | |
|---|---|---|
| E commerciale | & | & |
| Apice | ' | ' |
| Virgolette | " | " |
| Maggiore | > | > |
| Minore | < | < |
In aggiunta, tutti gli URL (incluso l'URL della Sitemap) devono essere codificati come URL e codificati in modo da consentire la lettura da parte del server wev sul quale sono ospitate. Tuttavia, se si utilizzano script, strumenti o file di log per generare gli URL (qualsiasi cosa in alternativa a scriverli manualmente), di norma la codifica avviene in automatico. Assicurarsi che gli URL siano conformi allo standard RFC-3986 per URI, allo standard RFC-3987 per IRI e allo standard XML.
Di seguito un esempio di un URL che utilizza un carattere non-ASCII (ü) ed carattere che necessita di codifica (&):
http://www.example.com/ümlat.html&q=name
Di seguito lo stesso URL, codificato in ISO-8859-1 (per hosting su un server che usa questa codifica) e codificato come URL:
http://www.example.com/%FCmlat.html&q=name
Di seguito lo stesso URL, codificato in UTF-8 (per hosting su un server che usa questa codifica) e codificato come URL:
http://www.example.com/%C3%BCmlat.html&q=name
Di seguito lo stessa URL, ma con le entità codificate:
http://www.example.com/%C3%BCmlat.html&q=name
L'esempio seguente mostra una Sitemap nel formato XML. La sitemap nell'esempio contiene un numero limitato di URL, ciascuno con una combinazione differente di parametri facoltativi.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=12&desc=vacation_hawaii</loc>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=73&desc=vacation_new_zealand</loc>
<lastmod>2004-12-23</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=74&desc=vacation_newfoundland</loc>
<lastmod>2004-12-23T18:00:15+00:00</lastmod>
<priority>0.3</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=83&desc=vacation_usa</loc>
<lastmod>2004-11-23</lastmod>
</url>
</urlset>
E' possibile creare più file Sitemap, ma ogni file non può contenere più di 50.000 URL e non deve superare i 10MB (10,485,760 bytes). Se si desidera, è possibile comprimere il file Sitemap con la compressione gzip per rimanere nei limiti dei 10MB e ridurre la larghezza di banda richiesta. Se si desidera indicare più di 50.000 URL è necessario creare più file Sitemap.
Se si forniscono più Sitemap, è necessario elencare ogni file Sitemap in un file Sitemap index. I file Sitemap index non possono contenere più di 1000 Sitemap e non devono superare i 10MB (10,485,760 bytes). Il formato XML di un file Sitemap index è molto simile al formato XML di un file Sitemap.
Il file Sitemap index deve:
<sitemapindex> e terminare con un tag di chiusura </sitemapindex>.<sitemap> per ogni Sitemap, come tag XML contenitore.<loc> per ogni tag <sitemap> contenitore.Il tag facoltativo <lastmod> è anche disponibile per i file Sitemap index.
Nota: Un file Sitemap index può indicare esclusivamente Sitemap collocate nello stesso sito.
Per esempio http://www.yoursite.com/sitemap_index.xml può includere esclusivamente Sitemaps del sito http://www.yoursite.com ma non http://www.example.com o
http://yourhost.yoursite.com
. Come per le Sitemap, i file Sitemap index devono essere codificati in UTF-8.L'esempio seguente mostra una Sitemap index con due Sitemap elencate:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.example.com/sitemap1.xml.gz</loc>
<lastmod>2004-10-01T18:23:17+00:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.example.com/sitemap2.xml.gz</loc>
<lastmod>2005-01-01</lastmod>
</sitemap>
</sitemapindex>
Nota: gli URL delle Sitemap, così come tutti i valori dei dati in un file XML, devono essere codificati in entità.
| Elemento | Descrizione | |
|---|---|---|
| <sitemapindex> | obbligatorio |
Incapsula le informazioni di tutte le Sitemap nel file. |
| <sitemap> | obbligatorio |
Incapsula le informazioni di una Sitemap individuale. |
| <loc> | obbligatorio |
Identifica la collocazione della Sitemap. Può essere una Sitemap, un file Atom, un file RSS o un semplice file di testo. |
| <lastmod> | facoltativo |
Identifica la data di ultima modifica del file Sitemap. Non corrisponde alla data di modifica delle pagine indicate nelle Sitemap.
Il valore del tag Fornire l'indicazione di ultima modifica permette ai motori di ricerca di recuperare solo un sottoinsieme di Sitemap nell'indice, per esempio un crawler potrebbe recuperare solo le Sitemap modificate a partire da una determinata data. Questo sistema di lettura incrementale consente di individuare rapidamente nuovi URL in siti molto grandi. |
Il formato Sitemap consente di fornire ai motori di ricerca dettagli riguardanti le pagine. Il suo utilizzo è consigliato poiché è possibile indicare ulteriori informazioni aggiuntive riguardo le pagine e non solo gli URL.
Tuttavia, in aggiunta al formato XML, i motori di ricerca supportano anche i feed RSS ed i file di testo, che forniscono informazioni limitate.
E' possibile fornire un file RSS (Real Simple Syndication) 2.0, un Atom 0.3 o un Atom 1.0. In genere si adotta questa soluzione se il sito offre già un feed.
E' bene notare che questo sistema potrebbe non indicare ai motori di ricerca tutti gli URL del sito siccome il feed fornisce unicamente informazioni sugli URL recenti. I motori di ricerca possono comunque utilizzare queste informazioni per individuare altre pagine sul sito, seguendo i link nelle pagine indicate dal feed nei loro normali processi di scansione.
I motori di ricerca estraggono le informazioni dal feed nel modo seguente:
E' possibile fornire un semplice file di testo contenente un URL per riga. Il file di testo deve seguire le seguenti linee guida:
\n)http.root) ed assicurarsi che il file di testo non includa URL raggiungibili in una cartella di livello superiore.http://www.example.com/catalog?item=1 http://www.example.com/catalog?item=11
Il percorso di un file Sitemap determina l'insieme di URL che possono essere inclusi nella Sitemap.
Una Sitemap collocata in http://example.com/catalog/sitemap.xml può includere un qualsiasi URL che inizia con http://example.com/catalog/ ma non può includere URL che iniziano per http://example.com/images/.
Se si ha l'autorizzazione di cambiare http://example.org/path/sitemap.xml, si presuppone che si abbia anche l'autorizzazione di fornire informazioni su URL con prefisso http://example.org/path/.
Un esempio di URL considerati validi in http://example.com/catalog/sitemap.xml sono:
http://example.com/catalog/show?item=23 http://example.com/catalog/show?item=233&user=3453
Un esempio di URL non considerati validi in http://example.com/catalog/sitemap.xml sono:
http://example.com/image/show?item=23 http://example.com/image/show?item=233&user=3453 https://example.com/catalog/page1.html
Questo significa che tutti gli URL elencati nella Sitemap devono usare lo stesso protocollo (http nell'esempio) e risiedere nello stesso host della Sitemap.
Per esempio, se la Sitemap si trova a http://www.example.com/sitemap.xml non può includere gli URL di http://subdomain.example.com.
Gli URL che non sono considerati validi sono esclusi da ulteriore considerazione. E' consigliato l'inserimento della Sitemap nella directory principale (NdT. root) del server web.
Per esempio, se il server web è all'indirizzo example.com, il file Sitemap index si troverà a http://example.com/sitemap.xml.
In certi casi, potrebbe essere necessario creare differenti Sitemap per differenti percorsi (ad esempio se l'azienda suddivide le autorizzazioni di scrittura in cartelle differenti).
Se si segnala una Sitemap usando un percorso con un numero di porta, quel numero va riportato in ogni URL elencato nel file Sitemap.
Per esempio, se la Sitemap è collocata a http://www.example.com:100/sitemap.xml, ogni URL elencato nella Sitemap dovrà iniziare per http://www.example.com:100.
Il seguente schema XML definisce gli elementi e gli attributi che possono comparire in un file Sitemap. E' possibile scaricare questo schema dai collegamenti seguenti:
Per le Sitemap: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
Per le Sitemap Index: http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd
Sono disponibili diversi strumenti per la validazione della struttura di una Sitemap in base a questo schema. Un elenco di strumenti specifici per XML è disponibile ai seguenti collegamenti:
http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.html
Per validare una Sitemap o una Sitemap index in base ad uno schema, il file XML necessita di alcune intestazioni aggiuntive, come mostrato di seguito:
Sitemap:
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
...
</url>
</urlset>
Sitemap index file:
<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
...
</sitemap>
</sitemapindex>
E' possibile estendere il protocollo Sitemaps utilizzando n proprio namespace. E' sufficiente specificare questo namespace nell'elemento root. Per esempio:
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:example="http://www.example.com/schemas/example_schema"> <!-- namespace extension -->
<url>
<example:example_tag>
...
</example:example_tag>
...
</url>
</urlset>
Una volta creato ed inserito il file Sitemap nel server web, è necessario informare i motori di ricerca che supportano questo protocollo della sua collocazione. E' possibile procedere in uno dei seguenti modi:
I motori di ricerca possono così recuperare la Sitemap e rendere gli URL disponibili ai propri crawler.
Per inviare la propria Sitemap direttamente al motore di ricerca, potendo così accedere alle informazioni sullo status e sugli errori di elaborazione, fare riferimento alla documentazione di ciascun motore di ricerca.
E' possibile indicare la collocazione di un file Sitemap utilizzando il file robots.txt. E' sufficiente aggiungere la riga seguente:
Sitemap: <sitemap_location>
<sitemap_location> deve corrispondere all'indirizzo completo della Sitemap, ad esempio http://www.example.com/sitemap.xml.
Questa direttiva è indipendente rispetto all'indicazione della user-agent, per questo motivo non importa la sua posizione all'interno del file. Se si dispone di una Sitemap index è possibile indicare direttamente l'indirizzo di questo file. Non è necessario elencare ciascuna Sitemap individualmente.
Per segnalare la propria Sitemap utilizzando una richiesta HTTP (sostituire <searchengine_URL> con l'URL fornito dal motori di ricerca), inviare la richiesta all'URL seguente:
<searchengine_URL>/ping?sitemap=sitemap_url
Per esempio, se la Sitemap è collocata a http://www.example.com/sitemap.gz, l'URL diventa:
<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz
Codificare come URL qualsiasi valore dopo /ping?sitemap=:
<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.yoursite.com%2Fsitemap.gz
E' possibile inviare la richiesta HTTP usando wget, curl o qualsiasi altro sistema a scelta. Una richiesta andata a buon fine restituirà un codice di risposta HTTP 200; in caso di risposta differente, inviare nuovamente la richiesta.
Il codice di risposta HTTP 200 indica esclusivamente che il motore di ricerca ha ricevuto la segnalazione, non che la Sitemap stessa i gli URL contenuti siano validi.
Un modo semplice per automatizzare l'invio è la configurazione di una operazione pianificata per generare ed inviare le Sitemap periodicamente.
Nota. Se si fornisce un file Sitemap index è sufficiente inviare una richiesta HTTP contenente l'indirizzo del file Sitemap index. Non è necessario inviare singole richieste per ogni Sitemap contenuta nel file indice.
Il protocollo Sitemap consente di indicare ai motori di ricerca quali contenuti si desidera indicizzare. Per indicare quali contenuti non devono essere indicizzati, utilizza il file robots.txt o il meta tag robots. Per ulteriori informazioni su come escludere i contenuti dai motori di ricerca consulta robotstxt.org.