Modul 3 · 3.3
robots.txt: hvad du blokerer, og hvad du ikke blokerer
Modul 3: Det tekniske grundlag for en side · Læsetid: 13 minutter
Læringsmål: Efter denne lektion kan du læse og skrive en robots.txt, selv regne ud om Googlebot må besøge en adresse, forklare hvad der sker, når filen mangler eller ikke kan nås, og du ved, hvorfor robots.txt hverken er sikkerhed eller noindex.
Nøglebegreber: robots.txt (RFC 9309), crawler, gruppe, User-agent, Disallow, Allow, længste match, samme længde (Allow vinder), * og $, Sitemap:, statuskode for robots.txt (4xx, 5xx), 500 KiB, 24 timers cache, ingen sikkerhed, ingen noindex, AI-crawlere (Google-Extended, GPTBot)
Et skilt ved hoveddøren
En robots.txt er en almindelig tekstfil i rodmappen på dit website, altid på samme adresse: https://www.example.com/robots.txt. En pæn crawler (lektion 1.2) henter først den fil og læser, hvilke dele af sitet den ikke må besøge. Det er et skilt ved hoveddøren, ikke en lås: Googlebot og Bingbot overholder det, men en ondsindet robot læser bare skiltet og går videre ind.
Siden 2022 har protokollen været en officiel internetstandard: RFC 9309. Google beskriver desuden præcis, hvordan Googlebot læser filen. Begge kilder bruger vi i denne lektion.
Et par faste aftaler:
- Filen ligger i rodmappen på hosten. En robots.txt i
/blog/robots.txtbliver ikke læst. - Den gælder kun for den host, den protokol og den port.
https://www.example.com/robots.txtgælder ikke forhttps://shop.example.com/; den skal have sin egen fil. - Det er ren tekst i UTF-8.
Sådan er filen opbygget
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlFilen består af grupper. En gruppe begynder med en eller flere linjer User-agent: og derefter reglerne Disallow: (må ikke besøges) og Allow: (må besøges). Stien efter Disallow: er begyndelsen af en adresse: Disallow: /zoeken blokerer /zoeken, /zoeken?q=rozen og også /zoekenmachine, fordi de alle begynder med /zoeken.
Linjen Sitemap: hører ikke til nogen gruppe og fortæller, hvor dit sitemap ligger (lektion 3.4). Google kræver en fuld adresse med https:// og hostnavn.
En Disallow: uden sti blokerer ingenting. Disallow: / blokerer alt.
Hvilken gruppe gælder?
En crawler vælger én gruppe: den med det mest specifikke navn, der passer på den. Googlebot følger altså gruppen User-agent: Googlebot, hvis den findes, og ignorerer så gruppen * helt. I eksemplet ovenfor må Googlebot derfor gerne besøge /winkelmand/: den regel står kun i *-gruppen. Det er en af de mest almindelige fejl: Laver du en separat Googlebot-gruppe, skal du gentage alle regler, der også skal gælde for Google, i den gruppe.
Navnet skelner ikke mellem store og små bogstaver (googlebot = Googlebot). Er der to grupper for samme crawler, lægger Google dem sammen.
Hvilken regel vinder?
Inden for gruppen kan en adresse være omfattet af flere regler. Så gælder:
- Den længste matchende regel vinder (den mest specifikke sti).
- Er en
Allowog enDisallowpræcis lige lange, vinderAllow. Google kalder det "den mindst begrænsende regel".
To tegn har en særlig betydning:
| Tegn | Betydning | Eksempel | Rammer | Rammer ikke |
|---|---|---|---|---|
* | nul eller flere vilkårlige tegn | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | slutningen af adressen | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Regneeksempel med gruppen * ovenfor, for crawleren Bingbot (som ikke har sin egen gruppe):
| Adresse | Matchende regler | Resultat |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | ikke tilladt |
/zoeken/tips | Disallow: /zoeken (7 tegn) og Allow: /zoeken/tips (12) | tilladt: den længste vinder |
/zoeken?q=rozen | Disallow: /zoeken | ikke tilladt |
/bruidsboeketten | ingen | tilladt |
/robots.txt | (altid) | tilladt: robots.txt selv er altid tilladt |
Hvis filen ikke findes, eller serveren driller
Hvad Google gør, afhænger af den statuskode, din server svarer med på /robots.txt:
| Svar | Hvad Google gør |
|---|---|
| 200 (fundet) | Læser reglerne |
| Viderestilling (301, 302) | Følger mindst fem trin; derefter behandler Google det som 404 |
| 4xx, fx 404 eller 403 (undtagen 429) | Som om der ingen robots.txt er: alt er tilladt |
| 5xx eller ingen forbindelse | De første 12 timer crawler Google ikke sitet og prøver igen; derefter i op til 30 dage den seneste gode version fra cachen. Fejler det stadig derefter, mens sitet ellers virker, gør Google, som om der ingen robots.txt er |
En manglende robots.txt er altså ikke et problem: Så er alt tilladt. En robots.txt, der giver en serverfejl, er derimod et problem: Så stopper Google midlertidigt med at crawle. RFC 9309 er endnu strengere: Kan filen ikke nås, skal en crawler gå ud fra, at alt er forbudt.
Desuden:
- Google læser højst 500 KiB; det, der står derefter, bliver ignoreret.
- Google gemmer som regel robots.txt i cachen i op til 24 timer. En ændring virker altså ikke med det samme. I Search Console finder du under Indstillinger robots.txt-rapporten: hvilken version Google sidst har hentet, med fejl og advarsler, og en knap til at få den hentet igen.
- Google kender kun
User-agent,Allow,DisallowogSitemap. Regler somCrawl-delayellerNoindexignorerer Googlebot.
Hvad robots.txt ikke gør
Det er ikke sikkerhed
Alle kan læse din robots.txt, også folk med onde hensigter. En regel som Disallow: /beheer-oud/ peger netop på, hvor der ligger noget interessant. RFC 9309 siger det selv: Reglerne er ikke en form for adgangsbeskyttelse. Rigtig afskærmning laver du med en adgangskode, eller ved at lade serveren afvise adgang, fx med .htaccess (se Læs mere).
Det er ikke noindex
Det er den vigtigste pointe. robots.txt styrer crawling, ikke indeksering (lektion 1.3). Google skriver ordret, at robots.txt ikke er en måde at holde en side ude af Google på. Linker andre sites til en blokeret adresse, kan adressen alligevel dukke op i søgeresultaterne, bare uden beskrivelse.
Vil du holde en side ude af søgeresultaterne, så brug noindex (i et <meta name="robots"> eller HTTP-headeren X-Robots-Tag), eller læg siden bag en adgangskode. Og pas på den klassiske fælde: Sætter du en side med noindex på Disallow i robots.txt også, kan Google ikke besøge siden og derfor aldrig læse din noindex.
Bloker ikke dele, som Google har brug for
Bloker ikke mapper med stylesheets, scripts eller billeder, som din side skal bruge for at blive vist korrekt. Google ser din side, som en browser gør; uden de filer forstår Google siden dårligere.
AI-crawlere
Flere og flere virksomheder indsamler websider til kunstig intelligens. Nogle af dem kan du styre med robots.txt:
Google-Extendeder ikke en separat robot, men et navn i robots.txt, som du bruger til at angive, om Google må bruge dit indhold til at træne Gemini-modeller og til grounding. Google skriver, at det ikke påvirker din optagelse eller placering i Google Søgning.GPTBotfra OpenAI indsamler sider, der kan bruges til at træne modeller.OAI-SearchBoter til søgefunktionen i ChatGPT: Blokerer du den, vises dit site ikke i ChatGPT's søgesvar.
User-agent: GPTBot
Disallow: /Om du vil det, er et valg, ikke en teknisk nødvendighed. Blokerer du ved en fejl en søgerobot (Googlebot, Bingbot, OAI-SearchBot), bliver du dårligere fundet dér.
I praksis: hvor ligger din robots.txt?
- AI Builder fra WebOké laver selv en robots.txt, når du udgiver, med
User-agent: *,Allow: /og enSitemap:-linje. Sætter du sitet til ikke at blive indekseret, eller er det en gratis demo, står derDisallow: /. - WordPress laver en virtuel robots.txt med en henvisning til sitemappet. Lægger du selv en fil
robots.txti webmappen, har den forrang. - Et eget site på et hostingabonnement: Du lægger
robots.txti webmappen (i DirectAdminpublic_html) via Filhåndtering eller FTP.
Hos andre udbydere fungerer det på lignende måde: Filen skal altid kunne nås på /robots.txt på din host.
Opsummering
- robots.txt ligger på
/robots.txtpå hver host og fortæller pæne crawlere, hvad de ikke må besøge. - En crawler følger én gruppe (det mest specifikke navn, ellers
*). Inden for gruppen vinder den længste regel; ved samme længde vinderAllow. - 404 betyder "alt er tilladt", en serverfejl får Google til midlertidigt at stoppe med at crawle. Google læser 500 KiB og cacher i op til 24 timer.
- robots.txt er hverken sikkerhed eller noindex. Bloker ikke en
noindex-side i robots.txt. - AI-crawlere som
GPTBotog navnetGoogle-Extendedkan du styre separat, uden følger for Google Søgning.
Quiz
Opgave
Opgave A3.3: Din robots.txt gennemgået. Indtast dit domæne og desuden tre adresser fra dit eget site (fx forsiden, en produktside og din kurv eller søgeside), og skriv for hver adresse, hvad du forventer: Må Googlebot crawle den, ja eller nej? Programmet henter din robots.txt, ser på statuskoden, størrelsen, grupperne og Sitemap:-linjen og regner for hver adresse ud, hvad Googlebot må ifølge reglerne fra denne lektion. Passer din forventning? Intet eget site? Brug www.wikipedia.org.
Læs mere
Trinene i disse artikler gælder for WebOké's paneler; hos andre udbydere fungerer det på lignende måde.
- DirectAdmin vejledning 11.1: Åbn Filhåndtering: mapperne i din pakke
- Bloker filer via .htaccess, for eksempel plugin-googlemap2-proxy.php
- DirectAdmin vejledning 11.4: Sådan viser og redigerer du skjulte filer som .htaccess
- Google Search Central, Sådan fortolker Google robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Introduktion til 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, Oversigt over crawlerne (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Oversigt over crawlerne (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
