Modul 3 · 3.3
robots.txt: vad du ska och inte ska blockera
Modul 3: Den tekniska grunden för en sida · Lästid: 13 minuter
Lärandemål: Efter den här lektionen kan du läsa och skriva en robots.txt och själv räkna ut om Googlebot får besöka en adress. Du kan förklara vad som händer om filen saknas eller inte går att nå, och du vet varför robots.txt varken är ett skydd eller en noindex.
Nyckelbegrepp: robots.txt (RFC 9309), crawler, grupp, User-agent, Disallow, Allow, längsta matchning, lika längd (Allow vinner), * och $, Sitemap:, statuskod för robots.txt (4xx, 5xx), 500 KiB, 24 timmars cache, inget skydd, ingen noindex, AI-crawlers (Google-Extended, GPTBot)
En skylt vid ytterdörren
En robots.txt är en vanlig textfil i rotmappen på din webbplats, alltid på samma adress: https://www.example.com/robots.txt. En skötsam crawler (lektion 1.2) hämtar först den filen och läser vilka delar av webbplatsen den inte får besöka. Det är en skylt vid ytterdörren, inget lås: Googlebot och Bingbot följer den, men en illasinnad robot läser skylten och går ändå in.
Sedan 2022 är protokollet en officiell internetstandard: RFC 9309. Google beskriver dessutom exakt hur Googlebot läser filen. Vi använder båda källorna i den här lektionen.
Några fasta regler:
- Filen ligger i rotmappen för värden. En robots.txt i
/blog/robots.txtläses inte. - Den gäller bara för den värden, det protokollet och den porten.
https://www.example.com/robots.txtgäller inte förhttps://shop.example.com/; den behöver en egen fil. - Det är ren text i UTF-8.
Så är filen uppbyggd
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlFilen består av grupper. En grupp börjar med en eller flera rader User-agent: och sedan följer reglerna Disallow: (besök inte) och Allow: (besök gärna). Sökvägen efter Disallow: är början på en adress: Disallow: /zoeken blockerar /zoeken, /zoeken?q=rozen och även /zoekenmachine, eftersom alla börjar med /zoeken.
Raden Sitemap: hör inte till någon grupp och talar om var din webbplatskarta finns (lektion 3.4). Google kräver en fullständig adress med https:// och värdnamn.
En Disallow: utan sökväg blockerar ingenting. Disallow: / blockerar allt.
Vilken grupp gäller?
En crawler väljer en grupp: den med det mest specifika namnet som passar den. Googlebot följer alltså gruppen User-agent: Googlebot om den finns och struntar då helt i gruppen *. I exemplet ovan får Googlebot alltså gå in i /winkelmand/: den regeln står bara i *-gruppen. Det här är ett av de vanligaste misstagen: skapar du en egen Googlebot-grupp måste du upprepa alla regler som också ska gälla för Google där.
Namnet är inte skiftlägeskänsligt (googlebot = Googlebot). Finns det två grupper för samma crawler slår Google ihop dem.
Vilken regel vinner?
Inom gruppen kan en adress träffas av flera regler. Då gäller:
- Den längsta matchande regeln vinner (den mest specifika sökvägen).
- Är en
Allowoch enDisallowexakt lika långa vinnerAllow. Google kallar det "den minst begränsande regeln".
Två tecken har en särskild betydelse:
| Tecken | Betydelse | Exempel | Träffar | Träffar inte |
|---|---|---|---|---|
* | noll eller fler godtyckliga tecken | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | slutet på adressen | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Räkneexempel med gruppen * ovan, för crawlern Bingbot (som inte har någon egen grupp):
| Adress | Matchande regler | Resultat |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | får inte |
/zoeken/tips | Disallow: /zoeken (7 tecken) och Allow: /zoeken/tips (12) | får: den längsta vinner |
/zoeken?q=rozen | Disallow: /zoeken | får inte |
/bruidsboeketten | inga | får |
/robots.txt | (alltid) | får: robots.txt själv är alltid tillåten |
Om filen saknas eller servern krånglar
Vad Google gör beror på vilken statuskod din server svarar med på /robots.txt:
| Svar | Vad Google gör |
|---|---|
| 200 (hittad) | Läser reglerna |
| Omdirigering (301, 302) | Följer minst fem steg; därefter behandlar Google det som 404 |
| 4xx, som 404 eller 403 (utom 429) | Som om det inte finns någon robots.txt: allt är tillåtet |
| 5xx eller ingen anslutning | De första 12 timmarna crawlar Google inte webbplatsen och försöker igen; därefter används den senaste fungerande versionen från cachen i upp till 30 dagar. Fortsätter felet efter det medan resten av webbplatsen fungerar, gör Google som om det inte finns någon robots.txt |
En saknad robots.txt är alltså inget problem: då är allt tillåtet. En robots.txt som ger ett serverfel är däremot ett problem: då slutar Google tillfälligt att crawla. RFC 9309 är ännu strängare: om filen inte går att nå ska en crawler anta att allt är förbjudet.
Dessutom:
- Google läser högst 500 KiB; allt som står därefter ignoreras.
- Google sparar oftast robots.txt i cachen i upp till 24 timmar. En ändring gäller alltså inte direkt. I Search Console hittar du under Inställningar robots.txt-rapporten: vilken version Google senast hämtade, med fel och varningar, och en knapp för att begära en ny hämtning.
- Google känner bara till
User-agent,Allow,DisallowochSitemap. Regler somCrawl-delayellerNoindexignoreras av Googlebot.
Vad robots.txt inte gör
Det är inget skydd
Vem som helst kan läsa din robots.txt, även den som har onda avsikter. En regel som Disallow: /beheer-oud/ pekar tvärtom ut var det finns något intressant. RFC 9309 säger det själv: reglerna är ingen form av åtkomstskydd. Verkligt skydd får du med ett lösenord eller genom att låta servern neka åtkomst, till exempel med .htaccess (se Läs mer).
Det är ingen noindex
Det här är den viktigaste lärdomen. robots.txt styr crawlning, inte indexering (lektion 1.3). Google skriver uttryckligen att robots.txt inte är ett sätt att hålla en sida borta från Google. Länkar andra webbplatser till en blockerad adress kan adressen ändå visas i sökresultaten, bara utan beskrivning.
Vill du hålla en sida borta från sökresultaten, använd noindex (i en <meta name="robots"> eller HTTP-huvudet X-Robots-Tag) eller lägg sidan bakom ett lösenord. Och se upp för den klassiska fällan: lägger du en sida med noindex också på Disallow i robots.txt kan Google inte besöka sidan och därför aldrig läsa din noindex.
Blockera inte delar som Google behöver
Blockera inte mappar med stilmallar, skript eller bilder som din sida behöver för att visas rätt. Google tittar på din sida som en webbläsare gör; utan de filerna förstår Google sidan sämre.
AI-crawlers
Allt fler företag samlar in webbsidor för artificiell intelligens. Några av dem kan du styra med robots.txt:
Google-Extendedär ingen egen robot utan ett namn i robots.txt där du anger om Google får använda ditt innehåll för att träna Gemini-modeller och för grounding. Google skriver att det har ingen påverkan på om eller var du visas i Google Sök.GPTBotfrån OpenAI samlar in sidor som kan användas för att träna modeller.OAI-SearchBotanvänds för sökfunktionen i ChatGPT: blockerar du den visas din webbplats inte i ChatGPT:s sökresultat.
User-agent: GPTBot
Disallow: /Om du vill det är ett val, inte en teknisk nödvändighet. Blockerar du av misstag en sökrobot (Googlebot, Bingbot, OAI-SearchBot) blir du sämre hittad där.
I praktiken: var ligger din robots.txt?
- AI Builder från WebOké skapar själv en robots.txt när du publicerar, med
User-agent: *,Allow: /och enSitemap:-rad. Ställer du in webbplatsen på att inte indexeras, eller är det en gratis demo, står detDisallow: /. - WordPress skapar en virtuell robots.txt med en hänvisning till webbplatskartan. Lägger du själv en fil
robots.txti webbmappen gäller den i stället. - En egen webbplats på ett webbhotellspaket: du lägger
robots.txti webbmappen (i DirectAdminpublic_html) via Filhanterare eller FTP.
Hos andra leverantörer fungerar det på liknande sätt: filen måste alltid gå att nå på /robots.txt för din värd.
Sammanfattning
- robots.txt ligger på
/robots.txtför varje värd och talar om för skötsamma crawlers vad de inte får besöka. - En crawler följer en grupp (det mest specifika namnet, annars
*). Inom gruppen vinner den längsta regeln; vid lika längd vinnerAllow. - 404 betyder "allt är tillåtet", ett serverfel får Google att tillfälligt sluta crawla. Google läser 500 KiB och cachar i upp till 24 timmar.
- robots.txt är varken ett skydd eller en noindex. Blockera inte en
noindex-sida i robots.txt. - AI-crawlers som
GPTBotoch namnetGoogle-Extendedkan du styra separat, utan följder för Google Sök.
Quiz
Uppgift
Uppgift A3.3: Din robots.txt under lupp. Fyll i din domän och dessutom tre adresser på din egen webbplats (till exempel startsidan, en produktsida och din varukorg eller söksida) med din förväntan för varje adress: får Googlebot crawla den, ja eller nej? Programmet hämtar din robots.txt, tittar på statuskoden, storleken, grupperna och Sitemap:-raden och räknar för varje adress ut vad Googlebot får enligt reglerna i den här lektionen. Stämmer din förväntan? Har du ingen egen webbplats? Använd www.wikipedia.org.
Läs mer
Stegen i de här artiklarna gäller för WebOkés paneler; hos andra leverantörer fungerar det på liknande sätt.
- DirectAdmin-guide 11.1: Öppna Filhanteraren: mapparna i ditt paket
- Blockera filer via .htaccess, till exempel plugin-googlemap2-proxy.php
- DirectAdmin-guide 11.4: Visa och redigera dolda filer som .htaccess
- Google Search Central, Så tolkar Google robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Introduktion till robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html
- Google, Översikt över crawlers (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Översikt över crawlers (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
