Hva er sitemap.xml?

Som nevnt i forrige blogginnlegg finnes det roboter som har som sin jobb å surfe rundt på nettet og indeksere innhold.

For å gjøre jobben til disse robotene enklere er det en god idé å lage et «nettkart», en oversikt som lister opp alt innholdet du vil at de skal indeksere. Du kan fortelle robotene hvor de kan finne dette nettkartet i filen robots.txt.

Nettkart

Mange nettsteder tilbyr et nettkart på et format som er brukervennlig og leselig for personer, slik at de besøkende enkelt kan finne frem til det de leter etter.

Et godt eksempel på dette er nettsidene til NAV. Når man skal benytte seg av NAV sine tjenester er det kanskje ikke alltid man vet hva man ser etter, og da kan et slikt kart være nyttig:
https://www.nav.no/Nettstedskart

Et godt eksempel på dette er nettsidene til Stortinget. Når man skal navigere seg frem til riktig informasjon er det kanskje ikke alltid man vet hva man ser etter, og da kan et slikt kart være nyttig:
https://www.stortinget.no/no/Stottemeny/Nettstedkart/

sitemap.xml

Google lanserte sitemap.xml på eget initiativ i 2005, og senere har også de andre større søkemotorene valgt å følge samme standard.

Kort fortalt er det en XML-basert oversikt over innholdet på et nettsted.

Formatet er veldig enkelt, og i tillegg til en URL for hver underside kan man også angi når den sist ble endret, hvor hyppig den blir oppdatert og et prioritetsnivå.

Her er et utdrag for sitemap.xml for dette nettstedet:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
 <loc>http://hardcode.no/seo/robots.txt/</loc>
 <lastmod>2013-12-22</lastmod>
 <changefreq>hourly</changefreq>
 <priority>0.5</priority>
</url>
<url>
 <loc>http://hardcode.no/responsivt-design/</loc>
 <lastmod>2013-12-21</lastmod>
 <changefreq>hourly</changefreq>
 <priority>0.5</priority>
</url>
<url>
 <loc>http://hardcode.no/bloggen/</loc>
 <lastmod>2013-12-10</lastmod>
 <changefreq>weekly</changefreq>
 <priority>0.5</priority>
</url>
</urlset>

<loc>

<loc> angir URL-en til en side, enkelt og greit.

<lastmod>

<lastmod> angir når siden sist ble endret. Hvis roboten allerede har sjekket denne siden etter siste oppdatering er det ikke behov for å sjekke den på nytt.

<changefreq>

<changefreq> angir hvor ofte man kan regne med at denne siden blir oppdatert. Det kan være litt utfordrende å finne noe passende her, men en løsning kan jo være at forsiden oppdateres veldig hyppig, kontaktinformasjon oppdateres sjelden, siste blogginnlegg oppdateres relativt hyppig og eldre blogginnlegg oppdateres relativt sjelden.

Dette er de alternativene man har til rådighet:

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

<priority>

<priority> angir hvor mye en robot bør prioritere å indeksere en side. I likhet med <changefreq> kan dette være litt vanskelig å velge.

Man kan angi en verdi mellom 0,0 og 1,0, hvor 1,0 er høyest prioritert, 0,0 er lavest prioritert. Men husk punktum som desimaltegn, altså 0.0 til 1.0.

Verdien er relativ i forhold til de andre sidene på samme nettsted, så hvis <priority> for alle settes til 1.0 vil det være det samme som å sette alle til 0.0. Så for å få noen effekt av <priority> bør man ha litt variasjon i verdiene.

Generering av sitemap.xml

Man kan selvfølgelig lage sitemap.xml manuelt, men med større nettsteder er dette en omfattende jobb, ikke minst når det gjelder vedlikehold ved senere endringer.

Det er derfor å anbefale at denne oversikten lages med et uttrekk av databasen, for eksempel med PHP. Da får man automatisk med informasjon om når siden ble sist oppdatert.

Sitemap index

Et sitemap må ikke innholde mer enn 50 000 URL-er, og filstørrelsen må ikke overstige 10 MB.

Skulle du være så heldig at innholdet på nettstedet ditt ikke får plass innenfor disse rammene kan du lage en «sitemap index» i stedet for et vanlig sitemap. En slik indeks referer til flere sitemaps:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      <loc>http://eksempel.com/sitemap1.xml</loc>
      <lastmod>2013-12-22</lastmod>
   </sitemap>
   <sitemap>
      <loc>http://eksempel.com/sitemap2.xml</loc>
      <lastmod>2013-12-22</lastmod>
   </sitemap>
   <sitemap>
      <loc>http://eksempel.com/sitemap3.xml</loc>
      <lastmod>2013-12-22</lastmod>
   </sitemap>
</sitemapindex>

Zippet sitemap

Du kan også sippe et sitemap med gzip, noe som gjør at det tar mindre plass.

Da blir URL-en sitemap.xml.gz i stedet for bare sitemap.xml.

Enklere løsning i txt-format

Om det skulle by på utfordringer å lage et XML-basert sitemap kan du faktisk også oppnå det samme med en enkel tekstfil som bare lister opp alle URL-ene på hver sin linje.

Du får så klart ikke med informasjon om siste endring, oppdateringsfrekvens og prioritering:

http://hardcode.no/responsivt-design
http://hardcode.no/webscraping
http://hardcode.no/google-trends
http://hardcode.no/svg
http://hardcode.no/google-analytics/api

Sitemap.xml på Hardcode.no

Jeg har referert til mitt sitemap i min robots.txt:
http://hardcode.no/robots.txt

Og selve sitemap.xml, som jeg genererer med PHP og MySQL, har jeg plassert her:
http://hardcode.no/sitemap.xml

Svend Asbjørn Sylling, 22. desember 2013

Bloggen fra Sylling Hardcode