Sitemaps in XML-indeling

Naar:
XML-codedefinities
Entity escaping
Sitemap-indexbestanden gebruiken
Overige indelingen voor sitemaps
Locatie van sitemapbestand
Uw sitemap valideren
Het sitemapprotocol uitbreiden
Informatie bieden aan crawlers van zoekmachines

In dit document wordt het XML-schema voor het sitemapprotocol beschreven.

De indeling van het sitemapprotocol bestaat uit XML-codes. Alle gegevenswaarden in een sitemap moeten escaped zijn. Het bestand zelf moet gecodeerd zijn volgens UTF-8.

De sitemap moet aan de volgende voorwaarden voldoen:

Alle andere codes zijn optioneel. Ondersteuning voor deze optionele codes kan per zoekmachine verschillen. Raadpleeg de documentatie van de zoekmachine voor meer informatie.

Alle URL's in een sitemap moeten van één host zijn, zoals www.voorbeeld.nl of store.voorbeeld.nl. Raadpleeg voor meer informatie de locatie van het sitemapbestand

Voorbeeld van een XML-sitemap

Het volgende voorbeeld is een sitemap met slechts één URL en alle optionele codes. De optionele codes worden cursief weergegeven.


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

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

   <url>

      <loc>http://www.voorbeeld.nl/</loc>

      <lastmod>2005-01-01</lastmod>

      <changefreq>monthly</changefreq>

      <priority>0.8</priority>

   </url>

</urlset> 

Zie ook het voorbeeld met meerdere URL's.

XML-codedefinities

Onderstaand vindt u een overzicht van de beschikbare XML-codes.

Attribuut Beschrijving
</urlset> vereist

Het bestand inkapselen en de huidige protocolstandaard gebruiken.

<url> vereist

De bovenliggende code voor elke URL-vermelding. De resterende codes zijn onderliggende elementen van deze code.

<loc> vereist

URL van de pagina. De URL moet beginnen met het protocol (bijvoorbeeld http) en een schuine streep aan het eind, indien dit nodig is voor uw webserver. De URL mag maximaal 2048 tekens bevatten.

<lastmod> optioneel

De datum waarop het bestand het laatst is bijgewerkt. Deze datum moet voldoen aan de W3C-indeling voor datum en tijd. Met deze indeling kunt u het tijdgedeelte zonodig weglaten en de notatie JJJJ-MM-DD gebruiken.

Deze code staat los van de header If-Modified-Since (304) die de server kan weergeven, en zoekmachines kunnen de informatie van beide bronnen op verschillende manieren gebruiken.

<changefreq> optioneel

De regelmaat waarmee de pagina waarschijnlijk wordt gewijzigd. Deze waarde bevat algemene informatie voor zoekmachines en komt mogelijk niet precies overeen met het aantal keer dat de pagina wordt bezocht. Geldige waarden zijn:

  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never

De waarde 'always' moet worden gebruikt voor documenten die telkens worden gewijzigd wanneer ze worden geopend. De waarde 'never' moet worden gebruikt om gearchiveerde URL's aan te geven.

Houd er rekening mee dat de waarde van deze code als tip wordt beschouwd en niet als opdracht. Hoewel crawlers van zoekmachines hier rekening mee kunnen houden, is het mogelijk dat pagina's waarvoor 'hourly' is opgegeven, minder vaak worden bezocht en dat pagina's waarvoor de waarde 'yearly' is opgegeven, vaker worden doorzocht. Pagina's waarvoor 'never' wordt opgegeven, kunnen toch regelmatig worden doorzocht zodat onverwachte wijzigingen aan deze pagina's kunnen worden verwerkt.

<priority> optioneel

De prioriteit van deze URL in relatie tot andere URL's op uw site. Geldige waarden lopen van 0,0 tot 1,0. Deze waarde heeft geen invloed op de manier waarop uw pagina's met andere pagina's op andere sites worden vergeleken. De waarde wordt alleen gebruikt om aan zoekmachines duidelijk te maken welke pagina's u het belangrijkst vindt voor de crawlers.

De standaard prioriteit van een pagina is 0,5.

De prioriteit die u aan een pagina toewijst, heeft waarschijnlijk geen invloed op de positie van uw URL's in de resultaatpagina's van een zoekmachine. Deze informatie kan door zoekmachines worden gebruikt om een selectie te maken uit URL's van dezelfde site. U kunt deze code dus gebruiken om de kans te vergroten dat de belangrijkste pagina's in elke zoekindex worden opgenomen.

Het toewijzen van een hoge prioriteit aan alle URL's op uw site zal waarschijnlijk geen effect hebben. Aangezien prioriteit relatief is, kunt u deze alleen gebruiken om onderscheid te maken tussen URL's op uw site.

Terug naar boven

Entity escaping

Uw sitemapbestand moet UTF-8 zijn gecodeerd (dit kunt u doorgaans opgeven als u het bestand opslaat). Zoals voor alle XML-bestanden, moeten voor gegevenswaarden (inclusief URL's) entity escape-codes worden gebruikt voor de tekens in de onderstaande tabel.

Teken Escape-code
Ampersand & &amp;
Enkel aanhalingsteken ' &apos;
Dubbele aanhalingstekens " &quot;
Groter dan > &gt;
Kleiner dan < &lt;

Daarnaast moeten alle URL's (inclusief de URL van uw sitemap) URL-escaped en gecodeerd zijn, zodat ze kunnen worden gelezen door de webserver waarop de URL's zich bevinden. Als u echter een script, hulpprogramma of logbestand gebruikt om uw URL's te genereren (en u ze dus niet handmatig opgeeft), is dit reeds voor u gedaan. Zorg er ook voor dat alle URL's voldoen aan de RFC-3986-norm voor URI's, de RFC-3987-norm voor IRI's en de XML-norm.

Hieronder wordt een voorbeeld weergegeven van een URL waarin een niet-ASCII-teken wordt gebruikt (ü) en een teken waarvoor entity escaping nodig is (&):

http://www.voorbeeld.nl/ümlat.html&q=name

Hieronder ziet u dezelfde URL, gecodeerd volgens ISO-8859-1 (om te worden gehost op een server die van die codering gebruik maakt) en URL-escaped:

http://www.voorbeeld.nl/%FCmlat.html&q=name

Hieronder ziet u dezelfde URL, met UTF-8-codering (om te worden gehost op een server die van die codering gebruikmaakt) en URL-escaped:

http://www.voorbeeld.nl/%C3%BCmlat.html&q=name

Hieronder ziet u dezelfde URL, maar nu entity escaped:

http://www.voorbeeld.nl/%C3%BCmlat.html&amp;q=name

Voorbeeld van een XML-sitemap

Hier volgt een voorbeeld van een sitemap in de indeling XML. De sitemap in het voorbeeld bevat een klein aantal URL's, die elk een eigen reeks optionele parameters bevatten.


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

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

   <url>

      <loc>http://www.voorbeeld.nl/</loc>

      <lastmod>2005-01-01</lastmod>

      <changefreq>monthly</changefreq>

      <priority>0.8</priority>

   </url>

   <url>

      <loc>http://www.voorbeeld.nl/catalog?item=12&amp;desc=vakantie_hawaii</loc>

      <changefreq>weekly</changefreq>

   </url>

   <url>

      <loc>http://www.voorbeeld.nl/catalog?item=73&amp;desc=vakantie_new_zealand</loc>

      <lastmod>2004-12-23</lastmod>

      <changefreq>weekly</changefreq>

   </url>

   <url>

      <loc>http://www.voorbeeld.nl/catalog?item=74&amp;desc=vakantie_newfoundland</loc>

      <lastmod>2004-12-23T18:00:15+00:00</lastmod>

      <priority>0.3</priority>

   </url>

   <url>

      <loc>http://www.voorbeeld.nl/catalog?item=83&amp;desc=vakantie_usa</loc>

      <lastmod>2004-11-23</lastmod>

   </url>

</urlset>

Terug naar boven

U kunt sitemap-indexbestanden gebruiken (om meerdere sitemapbestanden te groeperen)

U kunt meerdere sitemapbestanden opgeven, maar elk sitemapbestand dat u opgeeft mag niet meer dan 50.000 URL's bevatten en mag niet groter zijn dan 50 MB (52,428,800 bytes). Als u wilt, kunt u uw sitemapbestanden comprimeren met gzip om uw bandbreedte minder te belasten. Niet gecomprimeerd mogen de sitemapbestanden echter niet groter zijn dan 50 MB. Als u meer dan 50.000 URL's in de lijst wilt opnemen, moet u meerdere sitemapbestanden maken.

Als u meerdere sitemaps maakt, moet u alle sitemapbestanden opnemen in een sitemap-indexbestand. Sitemap-indexbestanden kunnen niet meer dan 50.000 sitemaps bevatten en mogen niet groter zijn dan 50 MB (52,428,800 bytes). De bestanden kunnen worden gecomprimeerd. U kunt meerdere sitemap-indexbestanden gebruiken. De XML-indeling van een sitemap-indexbestand is vergelijkbaar met de XML-indeling van een sitemapbestand.

Het sitemap-indexbestand moet:

De optionele code <lastmod> is ook beschikbaar voor sitemap-indexbestanden.

Opmerking: een sitemap-indexbestand kan alleen sitemaps bevatten die op dezelfde site worden vermeld als het sitemap-indexbestand. Voorbeeld: http://www.yoursite.com/sitemap_index.xml kan sitemaps op http://www.yoursite.com bevatten maar niet op http://www.voorbeeld.nl of http://yourhost.yoursite.com. De URL http://www.uwsite.nl/sitemap_index.xml kan bijvoorbeeld sitemaps bevatten op http://www.uwsite.nl maar niet op http://www.voorbeeld.nl of http://uwhost.uwsite.nl.Voor het sitemap-indexbestand moet u net als voor de sitemap zelf UTF-8-codering gebruiken.

Voorbeeld sitemapindex in XML

Hier volgt een voorbeeld van een sitemapindex met twee sitemaps:


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

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

   <sitemap>

      <loc>http://www.voorbeeld.nl/sitemap1.xml.gz</loc>

      <lastmod>2004-10-01T18:23:17+00:00</lastmod>

   </sitemap>

   <sitemap>

      <loc>http://www.voorbeeld.nl/sitemap2.xml.gz</loc>

      <lastmod>2005-01-01</lastmod>

   </sitemap>

</sitemapindex>

Opmerking: zoals alle waarden in uw XML-bestanden moeten de URL's van sitemaps worden escaped.

XML-codedefinities sitemapindex

Attribuut Beschrijving
<sitemapindex> vereist Bevat informatie over alle sitemaps in het bestand.
<sitemap> vereist Bevat informatie over een afzonderlijke sitemap.
<loc> vereist

Duidt de locatie van de sitemap aan.

Deze locatie kan een sitemap zijn, een Atom-bestand, een RSS-bestand of een eenvoudig tekstbestand.

<lastmod> optioneel

Duidt de tijd aan waarop het bijbehorende sitemapbestand is aangepast. De tijd geldt echter niet voor de andere pagina's in de sitemap. De waarde voor de code lastmod moet in de W3C-indeling voor datum en tijd worden opgegeven.

Wanneer u de tijdstempel voor de laatste wijziging opgeeft, kunnen de crawlers van de zoekmachines alleen een subset van de sitemaps in de index ophalen, dat wil zeggen de sitemaps die zijn gewijzigd na een bepaalde datum. Met deze stapsgewijze methode van het ophalen van sitemaps kunnen nieuwe URL's van grote sites snel worden herkend.

Terug naar boven

Overige indelingen voor sitemaps

Met het sitemapprotocol kunt u zoekmachines behalve de URL’s ook andere informatie over uw pagina’s verschaffen en daarom moedigen wij het gebruik ervan aan. Naast het XML-protocol ondersteunen wij echter ook RSS-feeds en tekstbestanden, die minder informatie verschaffen.

Syndication feed

U kunt de volgende feeds leveren: RSS (Real Simple Syndication) 2.0 en Atom 0.3 of 0.1. Doorgaans gebruikt u deze indeling alleen als uw site al een syndication feed heeft. Houd er rekening mee dat zoekmachines via deze methode mogelijk niet op de hoogte worden gebracht van alle URL’s in uw site, aangezien de feed alleen informatie verschaft over recente URL’s. Zoekmachines kunnen die informatie echter wel gebruiken om tijdens de normale crawlprocedure andere pagina's op uw site te vinden, door de links op de pagina's in een feed te volgen. Plaats de feed in de hoogste map die door de zoekmachines moet worden doorzocht. Zoekmachines halen op de volgende manier informatie uit de feed:

Tekstbestand

U kunt een eenvoudig tekstbestand leveren dat per regel één URL bevat. Het tekstbestand moet voldoen aan de volgende richtlijnen:

Hieronder vindt u enkele voorbeelden van tekstbestanden.

http://www.voorbeeld.nl/catalog?item=1


http://www.voorbeeld.nl/catalog?item=11

Terug naar boven

Locatie van sitemapbestand

De locatie van een sitemapbestand bepaalt de set URL's die kan worden opgenomen in een sitemap. Een sitemapbestand op http://voorbeeld.nl/catalog/sitemap.xml kan URL's bevatten die beginnen met http://voorbeeld.nl/catalog/ maar kan geen URL's bevatten die beginnen met http://voorbeeld.nl/images/.

Als u toestemming heeft om http://example.org/pad/sitemap.xml te wijzigen, wordt ervan uitgegaan dat u ook toestemming heeft om informatie op te geven voor URL's met het voorvoegsel http://example.org/pad/. Voorbeelden van URL's die geldig zijn in http://voorbeeld.nl/catalog/sitemap.xml:


http://voorbeeld.nl/catalog/show?item=23

http://voorbeeld.nl/catalog/show?item=233&user=3453

Voorbeelden van URL's die niet geldig zijn in http://voorbeeld.nl/catalog/sitemap.xml:


http://voorbeeld.nl/image/show?item=23

http://voorbeeld.nl/image/show?item=233&user=3453

https://voorbeeld.nl/catalog/page1.html

Dat betekent dat alle URL's in de sitemap hetzelfde protocol moeten gebruiken (in dit voorbeeld http), en zich op dezelfde host moeten bevinden als de sitemap. Als de sitemap bijvoorbeeld op http://www.voorbeeld.nl/sitemap.xml staat, kan deze geen URL's bevatten van http://subdomein.voorbeeld.nl.

URL's die niet geldig zijn, worden niet verder verwerkt. We raden u aan de sitemap niet in de hoofdmap van uw webserver te plaatsen. Als uw webserver zich op voorbeeld.nl bevindt, bevindt het sitemap-indexbestand zich op http://voorbeeld.nl/sitemap.xml. In bepaalde gevallen moet u andere sitemaps maken voor andere paden (bijvoorbeeld als de machtigingen in uw organisatie schrijftoegang bieden tot verschillende mappen).

Als u een sitemap verzendt met een pad met daarin een poortnummer, moet u dat poortnummer toevoegen aan het pad van elke URL in het sitemapbestand. Als uw sitemap zich bijvoorbeeld bevindt op http://www.voorbeeld.nl:100/sitemap.xml, dan moet elke URL in de sitemap beginnen met http://www.voorbeeld.nl:100.

Sitemaps en kruisverwijzing

Als u sitemaps voor meerdere hosts vanaf één host wilt verzenden, dient u te 'bewijzen' dat u eigenaar bent van de host(s) waarvoor de host in een sitemap worden verzonden. Hieronder volgt een voorbeeld. We nemen aan dat u sitemaps voor 3 hosts wilt verzenden:


www.host1.com met sitemapbestand sitemap-host1.xml

www.host2.com met sitemapbestand sitemap-host2.xml

www.host3.com met sitemapbestand sitemap-host3.xml

Bovendien wilt u alle drie de sitemaps op één host plaatsen: www.sitemaphost.com. De sitemap-URL's worden dan:


http://www.sitemaphost.com/sitemap-host1.xml

http://www.sitemaphost.com/sitemap-host2.xml

http://www.sitemaphost.com/sitemap-host3.xml

Het resultaat is standaard een foutmelding, omdat u de URL's voor www.host1.com probeert te verzenden via een sitemap die op www.sitemaphost.com wordt gehost (en hetzelfde geldt voor de andere twee hosts). U kunt deze fout voorkomen door te bewijzen dat u eigenaar bent van www.host1.com (dat wil zeggen, dat u gemachtigd bent om bestanden te wijzigen. U kunt dit doen door een wijziging aan te brengen in het bestand robots.txt, zodat het naar de sitemap op www.sitemaphost.com verwijst.

In dit voorbeeld zou het bestand the robots.txt op http://www.host1.com/robots.txt de volgende regel bevatten: 'Sitemap: http://www.sitemaphost.com/sitemap-host1.xml'. Door het bestand robots.txt op www.host1.com te wijzigen en het naar de sitemap op www.sitemaphost.com te laten verwijzen, heeft uw impliciet bewezen dat u eigenaar bent van www.host1.com. Met andere woorden, de persoon die het bestand robots.txt op www.host1.com kan wijzigen, vindt het goed dat de sitemap op http://www.sitemaphost.com/sitemap-host1.xml URL's voor www.host1.com bevat. Hetzelfde proces kan worden herhaald voor de andere twee hosts.

Nu kunt u de sitemaps naar www.sitemaphost.com verzenden.

Wanneer het bestand robots.txt op een bepaalde host, bijvoorbeeld http://www.host1.com/robots.txt, verwijst naar een sitemap of een sitemapindex op een andere host, is de verwachting dat alle URL's van de doelsitemaps, bijvoorbeeld http://www.sitemaphost.com/sitemap-host1.xml, toebehoren aan de host die er naar verwijst. De reden hiervoor is dat, zoals eerder opgemerkt, een sitemap wordt geacht om URL's van slechts één host te hebben.

Terug naar boven

Uw sitemap valideren

De volgende XML-schema's worden gebruikt voor het definiëren van de elementen en attributen die in uw sitemapbestand kunnen worden weergegeven. U kunt dit schema downloaden via de onderstaande links:

Voor sitemaps: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
Voor sitemap-indexbestanden: http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd

Er zijn diverse hulpprogramma's beschikbaar waarmee u de structuur van uw sitemap kunt valideren op basis van dit schema. U vindt een lijst met XML-hulpprogramma's op de volgende locaties:

http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.html

Om uw sitemap of sitemap-indexbestand te valideren tegen een schema, zijn er extra headersnodig voor het XML-bestand, zoals hieronder weergegeven.

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-indexbestand:


<?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>

Terug naar boven

Het sitemapprotocol uitbreiden

U kunt het sitemapsprotocol uitbreiden met uw eigen naamruimte. Geef deze naamruimte op in het hoofdelement. Bijvoorbeeld:


<?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>

Terug naar boven

Informatie bieden aan crawlers van zoekmachines

Zodra u het sitemapbestand heeft gemaakt en op uw webserver heeft gezet, moet u de zoekmachines die dit protocol ondersteunen op de hoogte brengen van de locatie van het bestand. Dit kunt u op de volgende manieren doen:

De zoekmachines halen uw sitemap op en maken de URL's beschikbaar voor de crawlers.

Uw sitemap verzenden via de interface van de zoekmachine voor het verzenden van gegevens

Als u een sitemap rechtstreeks naar een zoekmachine wilt verzenden, zodat u informatie kunt ontvangen over de status en eventuele fouten die tijdens de verwerking zijn opgetreden, verwijzen we u naar de documentatie van de betreffende zoekmachine.

De locatie van de sitemap opgeven met behulp van een robots.txt-bestand

U kunt de locatie van de sitemap opgeven met behulp van een robots.txt-bestand. U hoeft daarvoor alleen de volgende regel toe te voegen:

Sitemap: http://www.example.com/sitemap.xml

Deze opdracht staat los van de regel User-agent, dus het maakt niet uit waar u de opdracht in het bestand plaatst. Als u een sitemap-indexbestand heeft, geeft u alleen de locatie van dat bestand op. U hoeft niet elke afzonderlijke sitemap op te geven die in het indexbestand voorkomt.

U kunt meerdere sitemapbestanden opgeven voor elk robots.txt-bestand.

Sitemap: http://www.example.com/sitemap-host1.xml

Sitemap: http://www.example.com/sitemap-host2.xml

Uw sitemap verzenden via een HTTP-verzoek

Als u een sitemap met een HTTP-verzoek wilt verzenden (vervang <URL_zoekmachine> door de URL die u van de zoekmachine ontvangt), verstuurt u het verzoek naar de volgende URL:

<searchengine_URL>/ping?sitemap=sitemap_url

Als uw sitemap zich bijvoorbeeld bevindt op http://www.voorbeeld.nl/sitemap.gz, wordt de URL:

<searchengine_URL>/ping?sitemap=http://www.voorbeeld.nl/sitemap.gz

Gebruik URL-codering voor alles na /ping?sitemap=:

<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.uwsite.nl%2Fsitemap.gz

U kunt het HTTP-verzoek verzenden met wget, curl of een ander mechanisme naar keuze. Een succesvol verzoek retourneert een HTTP 200-antwoordcode. Als u een ander antwoord ontvangt, moet u uw verzoek opnieuw verzenden. De HTTP 200-antwoordcode geeft alleen aan dat de zoekmachine uw sitemap heeft ontvangen en niet dat de sitemap of de URL's in de sitemap geldig zijn. Een eenvoudige methode hiervoor is het instellen van een geautomatiseerde opdracht die regelmatig sitemaps genereert en verzendt.
Opmerking: als u een sitemap-indexbestand levert, hoeft u slechts één HTTP-verzoek te verzenden met de locatie van het sitemap-indexbestand. U hoeft geen afzonderlijk verzoek te verzenden voor elke sitemap die in de index is opgenomen.

Terug naar boven

Inhoud uitsluiten

Met het sitemapprotocol kunt u opgeven welke inhoud door zoekmachines moet worden geïndexeerd. Gebruik een robots.txt-bestand of een robots-metatag om op te geven welke inhoud niet door zoekmachines moet worden geïndexeerd. Raadpleeg robotstxt.org voor meer manieren om inhoud uit te sluiten van indexering door zoekmachines.

 

Terug naar boven

Laatste update: 21 november 2016