Så här fungerar robots.txt

robots.txt
När det kommer till sökmotoroptimering finns det en väldigt viktig fil som man bör ha koll på när det gäller sin domän, nämligen robots.txt. Ett litet fel i denna fil kan göra att din sajt faktiskt inte indexeras alls av sökmotorerna Det är helt klart viktigt att se över den och säkerställa att den fungerar som det är tänkt.

De flesta vet inte ens om att den finns och i vissa fall är det faktiskt så att den inte finns överhuvud taget.

Lyckligtvis är det väldigt enkelt att titta på sin robots.txt eftersom den alltid går att hitta på samma ställe oavsett domän, nämligen:

www.dindomän.se/robots.txt

När jag håller SEO Workshops för kunder brukar jag alltid säga att jag ser robots.txt som en trafikpolis som talar om för sökmotorernas spindlar vilka delar på sajten de får besöka och vilka delar vi inte vill att de besöker. Varför skulle vi inte vilja att sökmotorerna indexerar vissa delar av en sajt?

Ett par exempel kan vara:

  • En underkatalog som kräver att man loggar in, exempelvis /kundzon eller /varukorg
  • En katalog som innehåller dina templatefiler, exempelvis /templates
  • Om ditt CMS genererar duplicerade sidor och du vill att dessa ska ignoreras
  • För att tala om vart de kan hitta din sitemap.xml avsedd för just sökmotorer

Vad är robots.txt?

I grund och botten är robots.txt bara en textfil som du har placerad på din webbserver så att den går att komma åt via www.dindomän.se/robots.txt och i denna fil kan du tala om för de sökmotorer som är och hälsar på vart de är välkomna på din sajt och vart de inte är välkomna (om så nu är fallet).

Om du har en större sajt är det inte ovanligt att Google är och hälsar på hos dig tusentals gånger varje dag och spindlarna gör detta eftersom de hela tiden vill hålla sitt index så uppdaterat som möjligt. Det första sökmotorernas spindlar letar efter när de kommer till en ny domän är just robots.txt för att kolla om det är vissa delar av din domän som de inte ska besöka.

Därmed är det viktigt att man inte har skrivit fel i denna fil eftersom minsta lilla miss här kan betyda att du istället för att säga “välkommen hit, se dig omkring” säger “stopp, gå här ifrån!”

Behöver alla sajter en robots.txt?

Har du inte en sådan fil tillgänglig på din domän kommer sökmotorerna anse att det är fritt fram att indexera allt den hittar, vilket i många fall kan vara precis det du är ute efter. Det finns även en möjlighet att blockera sökmotorerna på individuell sidnivå via meta taggar om man skulle vilja det.

Du behöver bara en robots.txt-fil om det finns innehåll på din webbplats som du inte vill att sökmotorerna ska indexera. Om du vill att sökmotorerna ska indexera allt på din webbplats behöver du ingen robots.txt-fil (inte ens en tom fil).

Källa: https://support.google.com/webmasters/answer/156449?hl=sv

Hur fungerar det?

Värt att notera här är att vissa spindlar kommer helt att ignorera din robots.txt men då pratar vi främst om spindlar som är avsedda att leta upp exempelvis epostadresser för att kunna skicka spam. Dessa spindlar kommer aldrig att bry sig om vilka regler du har satt upp, men alla de legitima spindlarna som exempelvis de från Google, Bing, Yahoo med flera kommer alltid att läsa denna fil och följa dina regler som du satt upp.

Om vi börjar med ett väldigt enkelt exempel som talar om för de spindlar som är och hälsar på att de är välkomna in överallt på sajten ser en sådan robots.txt ut så här:

User-agent: *
Disallow:

Om det däremot skulle se ut så här i din fil säger du precis tvärt om, nämligen att sökmotorernas spindlar inte är välkomna någonstans på din sajt:

User-agent: *
Disallow: /

Vad bör jag inkludera i min robots.txt?

Min rekommendation är att du inte inkluderar någon känslig information alls i denna fil, som exempelvis vart du har sektionen för att uppdatera din sajt. Säg att du har ett CMS som du uppdaterar genom att besöka www.dindomän.se/admin – då skulle man lätt vilja inkludera hela denna sektion i robots.txt eftersom man inte vill att något där under ska indexeras av misstag. Förhoppningsvis  krävs det att du loggar in för att se innehållet vilket gör att sökmotorerna inte borde kunna ta sig in där ändå. Notera att jag sa borde. Jag har sett hur delar av administrationssektioner inte krävt något login, men det var länge sedan nu.

För att blockera enbart denna katalog via robots.txt  skulle filen se ut så här:

User-agent: *
Disallow: /admin/

Problemet här är att du talar om för alla som tittar i din robots.txt vart man ska gå för att logga in på din sajt för att uppdatera den. Något som inte är att rekommendera. Istället bör du blockera dessa filer som finns under /admin/ genom att använda dig av <meta name=“robots” content=“noindex, nofollow”> på dessa sidor.

Lär dig av andra

Ett bra tips är att titta på hur andra har gjort med deras robots.txt filer. Det finns exempelvis inget som hindrar dig från att titta hur dina konkurrenter har gjort eller ännu bättre om du vet om en sajt som använder sig av samma CMS som dig så kan du kolla deras. Du når den alltid via www.domän.se/robots.txt om den finns tillgänglig.

Ett par exempel du kan titta på redan nu:

Vad kan du använda i robots.txt?

Det finns en hel del direktiv du kan ge till spindlarna som hälsar på din sajt och vissa är vanliga än andra. Det viktiga här är att verkligen läsa igenom vad man har skrivit en extra gång så att det inte smyger in några fel som kan resultera i att du blockerar hela eller delar av din sajt som du faktiskt vill ha indexerat.

# Hash

Det kan vara så att du vet med dig att din robots.txt kan bli stor och att flera personer kan behöva göra förändringar i den. I sådana fall kan det vara av intresse att göra kommentarer i denna fil och dessa görs enklast genom att börja raden med #.

# Generella regler för alla spindlar
 User-agent: *
 Disallow:
# Särskild regel för just Bing
 User-agent: bingbot
 Disallow: *.pdf$

User-agent:

Det här är den rad du använder för att tala om vilket spindel (eller robot) som du pratar med.
Den vanligaste förekomsten är en som inkluderar alla spindlar och i datatermer brukar man ofta benämna alla med *, dvs så här:

User-agent: *

Vill du i stället enbart ge regler till exempelvis Googles spindel som heter Googlebot ser det ut så här:

User-agent: Googlebot

Notera att Google använder sig av en hel del olika robotar för att spindla din sajt, bland annat för web, nyheter, bilder, video, med mera.

Vill du istället prata enbart med Microsofts bot de använder för Bing  använder du:

User-agent: bingbot

För att få en indikation på vilka typer av spindlar som besöker din sajt  är det enklaste att titta i serverloggarna om du har tillgång till dessa. Det är inte ovanligt att dessa finns i en katalog om du har FTP-tillgång till din domän.

Du behöver alltid inleda en regel i din robots.txt med just User-agent så att de efterföljande reglerna följs av rätt spindlar.

Allow:

Det här direktivet använder du för att tala om vilka delar av din sajt som sökmotorernas spindlar får besöka. Om du tycker att hela din sajt får besökas behöver du inte ha denna regel, men den skulle se ut så här:

User-agent: *
Allow: /

Just Allow används ofta i kombination med Disallow nedan.

Disallow:

Den här regeln talar om för spindlarna vilken eller vilka delar på din sajt som de inte ska spindla och indexera på din sajt. Vi går tillbaka till exemplet ovan där vi har en robots.txt som inte tillåter att någonting på din sajt ska indexeras:

User-agent: *
Disallow: /

De enda gångerna du bör ha detta i din robots.txt är om du bygger om din sajt och den ligger publikt (men på en annan URL än din vanliga sida). För i dessa fall vill du faktiskt inte att sökmotorerna ska indexera din utvecklingssajt då detta introducerar duplicerat innehåll som konkurrerar med dit riktiga sajt.

Precis på samma sätt kan du tala om för exempelvis Yahoo’s bot som heter slurp att den inte ska indexera bilderna du har i din bildkatalog, men den är välkommen att indexera allt annat.

User-agent: slurp
Disallow: /images/

Det intressanta här är att du kan använda direktiven i kombination med varandra och att specifika instruktioner upphäver de mer generella. Det gör att följande rader i robots.txt blockerar alla besök till /bilder/ men tillåter besök till /bilder/produktbilder/

User-agent: *
Disallow: /bilder/
Allow: /bilder/produktbilder/

* (wildcard)

Precis som jag nämnde ovan betyder * allt och detta kan du använda på en del kreativa sätt i din robots.txt genom att exempelvis inte indexera din interna sökfunktion du har på din sajt.

User-agent: *
Disallow: */sok.php?*

Dessa rader innebär att så fort en sokmotorspindel hittar en länk som exempelvis www.dindomän.se/produkter/sok.php?q=kakburk kommer denna inte att indexeras. Att inte indexera sin interna sökfunktion är oftast bra ur SEO synpunkt eftersom detta är en källa till duplicerat innehåll. Om man inte använder sig av robots.txt här går det lika bra att använda sig av meta taggen robots som jag nämnde ovan.

Tecknet * kan även användas om det är så att du har en funktion på din sida som återkommer på flera ställen och du inte vill ha dessa sidor indexerade:

User-agent: *
Disallow: *privat*

Detta skulle innebära att URLer som dessa inte skulle indexeras:

* /min-privata-katalog/
* /privat/kundlista.html

$ (dollartecken)

Om du någonsin har jobbat någonting med Regex känner du igen det här. I Regex används $ för att indikera att “inget kommer efter detta”.
Ett exempel här skulle vara om du hade en supportsektion på din sida med PDFer som du inte vill ha indexerade, men du vill att allt annat ska gå att indexera. I sådana fall skulle din robots.txt kunna se ut så här:

User-agent: *
Disallow: /support/*.pdf$

Detta innebär att alla dina sidor under /support/ kommer att indexeras hos sökmotorerna om det inte är en fil som slutar på .pdf, för i sådana fall säger detta direktiv att spindeln inte ska indexera denna fil.

Sitemap:

Det här är den enda regel som inte behöver en User-agent: eftersom den gäller alla som standard. Det spelar inte heller någon roll vart i robots.txt som du placerar denna rad.
Med hjälp av detta direktiv kan du tala om för sökmotorerna vart den dataanpassade sitemap-filen för din sajt finns och detta brukar vanligtvis se ut så här:

Sitemap: http://www.dindomän.se/sitemap.xml

Mindre vanliga direktiv i robots.txt

Det vi har nämnt ovan är de absolut vanligaste varianterna man brukar se i robots.txt men det finns andra direktiv man kan använda sig av också. Det är inte ofta jag ramlar över dem, men ibland händer det och vill man läsa på om dessa så rekommenderar jag An Extended Standard for Robot Exclusion, även om den kan vara väldigt teknisk.

Vi tittar ändå på de ovanligaste som jag sett med ojämna mellanrum. Värt att notera här är att dessa inte fungerar med Googlebot, som inte tar hänsyn till varken Visit-time eller Crawl-delay nedan.

Visit-time:

Den här är väldigt ovanlig men man skulle kunna säga att det är lite som att specificera öppettiderna för din sajt när det gäller sökmotorernas spindlar. Jag kan förstå detta om man har väldigt begränsat med bandbredd, men det bör inte vara ett problem år 2013 tycker jag.

Vill man ändå specificera mellan vilka tider som sökmotorernas spindlar är välkomna ser direktivet ut så här:

User-agent: *
Visit-time: 2300-0600

Värt att notera här är att detta är baserat på UTC-tid.

Crawl-delay:

Med hjälp av Crawl-delay kan du tala om för sökmotorns spindel att de inte ska ladda hem en sida mer än var X sekund. Detta kan vara ett alternativ om du har hård belastning på din server och vill säkerställa att sökmotorerna kan hälsa på ändå om än något begränsade.

Vill du exempelvis begränsa Googlebot till att enbart hämta en sida var 8:e sekund ser det ut så här:

User-agent: Googlebot
Crawl-delay: 8

Värt att tänka på här är att många spindlar bara avsätter en viss tid (oftast kanska kort) per session de besöker din sajt, och om du begränsar den så innebär det med stor sannolikhet att inte lika många sidor kommer att indexeras. Om du har en sida som uppdateras relativt ofta är detta inte en bra idé tycker jag.

Google själva rekommenderar inte att man ska använda sig av Crawl-delay utan de vill hellre att man specificerar detta i Webmaster Tools.

Vad har vi lärt oss?

Allt som oftast behöver man inte tänka på hur ens robots.txt ser ut, men det kan helt klart vara värt att kolla upp hur det ser ut. Om det är så att det är något som inte står rätt till så kan onekligen påverka din synlighet i det organiska sökresultatet.

Har du säkerställt att inget viktigt på sin sajt är exkluderat från indexering?

Jag hoppas att denna artikel har varit hjälpsam och att det har gett dig en bättre förståelse över var robots.txt är och hur det påverkar din sajt hos sökmotorerna.

Om du gillade det här inlägget, lämna gärna en kommentar eller prenumerera via RSS så du inte missar framtida inlägg.
About Daniel Carlbom

Daniel Carlbom jobbar som SEO Manager på NetBooster med fokus på att hjälpa företag att synas online. Följ Daniel på Google+ eller Twitter.

  • Ellen

    Hej! Tack för informationen! Jag undrar bara lite hur man går in och ändrar i texten? :) Mvh Ellen

    • boax

      Ladda ner filen till din dator och öppna den med anteckningar (windows) eller textredigerare (mac)