Denna artikel är helt omskriven den 2017-08-17 (den publicerades först 2009-05-07).
En XML-sitemap är ett XML-dokument utformat enligt protokollet för XML-sitemaps som ligger på din webbplats och används av sökmotorer för att läsa av vilka URLer din webbplats består av, när de ändras och deras inbördes prioritet för att crawla (spindla) och indexera din webbplats på rätt sätt.
Det introducerades av Google 2005 och började stödjas av andra sökmotorer året efter.
Jim Westergren har utvecklat Domainstats, en grym tjänst inom SEO där du kan se inlänkar med mera.
Du ska generera din XML-sitemap dynamiskt, så att den alltid är aktuell (cache är givetvis ok). Använder du ett CMS och det finns plugins, moduler eller annat för att dynamiskt generera en XML-sitemap för detta så använd givetvis det. URLerna ska alltså hämtas dynamiskt från din databas minst en gång per dag.
Dessa gör förmodligen mer skada än nytta!
En XML-sitemap är till för att hjälpa Google och andra sökmotorer att crawla och indexera. Den crawler som Google använder är den mesta avancerade och sofistikerade som finns i världen. Om du använder en online-tjänst som crawlar din webbplats och ger dig en statisk fil att ladda ner får du 3 problem:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.exempel.se/sidan1.php</loc>
<lastmod>2008-11-23</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.exempel.se/sidan2.php</loc>
<lastmod>2008-11-15</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
</urlset>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.exempel.se/sidan1.php</loc>
</url>
<url>
<loc>https://www.exempel.se/sidan2.php</loc>
</url>
</urlset>
Jag ska börja med att direkt säga att man inte rankar högre i Google om man sätter alla sina URLer som högsta prioritet.
För det första handlar priority
om crawling och inte rank. För det andra är det är ett relativt värde mellan 0.0 till 1.0 på hur viktig URLen är jämfört med andra URLer inom samma webbplats.
Eftersom värdet är relativt mellan varandra betyder det att om alla är satt som 1.0 är det samma som alla är 0.0 - alltså att alla URLer är lika viktiga. Om 1 URL är på 1.0 och resten 0.0 skulle det betyda att den på 1.0 var väldigt mycket viktigare än alla de andra.
Alla domännamn har en viss crawl budget av Google. En dagstidning till exempel kan förslagsvis sätta hög prioritet på nya artiklar och låg prioritet på gamla artiklar som inte längre uppdateras.
<lastmod>
är tiden då en URL senast var ändrad. Tiden är utformad enligt W3C Datetime, alltså exempelvis 2009-11-25. Kontrollera att denna stämmer. Om till exempel en produktext på en e-butik har uppdaterats så måste det står rätt tid för denna URL. Sätt inte dagens datum på alla URLer och inte samma datum på alla.<changefreq>
är hur ofta sidan troligen ändrar sig. De värden som finns att välja på är: always, hourly, daily, weekly, monthly, yearly och never. Tänk på att du har en viss crawl budget och det blir ingen nytta om du sätter always på allt.Det finns olika sätt att låta sökmotorerna veta vart din sitemap finns.
Sitemap: https://www.din-domän.com/sitemap.xml
.<?php
header('Content-type: application/xml; charset="utf-8"',true);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<urlset xmlns=\"https://www.sitemaps.org/schemas/sitemap/0.9\">\n";
// URL typ 1:
$result = $conn->query("SELECT ...");
while($row = $result->fetch_assoc()) {
echo " <url>\n";
echo " <loc>https://www.exempel.se/".$row['url']."</loc>\n";
echo " <lastmod>".date("Y-m-d", $row['lastmodified']); echo "</lastmod>n";
echo " </url>\n";
}
echo "</urlset>";
// URL typ 2:
$result = $conn->query("SELECT ...");
while($row = $result->fetch_assoc()) {
echo " <url>\n";
echo " <loc>https://www.exempel.se/".$row['url']."</loc>\n";
echo " <lastmod>".date("Y-m-d", $row['lastmodified']); echo "</lastmod>n";
echo " </url>\n";
}
echo "</urlset>";
?>
https://www.exempel.se/sitemap.xml
Detta är ett typiskt misstag jag ser ofta. Det är givetvis de kanoniska URLer som man ska ha med.
Detta är framför allt om du själv byggt ett skript som genererar din XML-sitemap. Kontrollera att allt är ok med The W3C Markup Validation Service och sedan skicka givetvis in den i Google Search Console här och se vilken status den får där. Jämför siffran mellan skickade och indexerade - undersök om någor inte stämmer om det är en stor skillnad.
Jämför framförallt med siffran över antalet indexerade URLer. Är det fler antal indexerade än antalet du har skickat in? Har du glömt att ange URLer i din XML-sitemap? Eller finns det andra problem som gör att det indexeras URLer som inte ska indexeras?
Med metoden som kallas XSLT kan du programmera, lägga in HTML och lägga in CSS för din XML-sitemap så att den även kan användas av riktiga besökare.
Eftersom SEO-guide.se är byggt av systemet N.nu så är detta redan automatiskt fixat för denna webbplats. Kolla själva på www.seo-guide.se/sitemap.xml
Fler exempel: här, här och här.
Med denna speciella varianten knyter du samman flera olika XML-sitemap filer.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.exempel.se/sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.exempel.se/blogg/sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.exempel.se/forum/sitemap.xml</loc>
</sitemap>
</sitemapindex>
Om din webbplats har sidor på flera olika språk så kan du med fördel ha med denna informationen i din XML-sitemap. Se hur på denna artikel av Google.
Det finns numera möjlighet att lägga in information gällande video och bilder i sin XML-sitemap. Detta ser jag inte som viktigt förutom i de fall där webbplatsen har sitt fokus på video eller bilder.
För mer information kring detta se denna artikel för video och denna artikel för bilder.
Tyvärr så har jag i min roll som SEO-konsult sällan sett en korrekt XML-sitemap. I alla de åtgärdsrapporter som jag skrivit så är det nog bara en kund som haft en korrekt sitemap.
Vanligtvis är det mycket grova fel:
Tyvärr är det så att när något ofta är fel, även med till exempel rel canonical där många också gör fel - så kan Google inte lita på det och tar den informationen endast som en vägledning. Detta har lett till att XML-sitemaps inte hjälper så mycket som den skulle kunna göra för oss som använder det korrekt.
I sektionen Övrigt inom SEO.