Modul 3 · 3.3
robots.txt: hva du blokkerer og ikke blokkerer
Modul 3: Den tekniske grunnmuren på en side · Lesetid: 13 minutter
Læringsmål: Etter denne leksjonen kan du lese og skrive en robots.txt, selv regne ut om Googlebot får besøke en adresse, forklare hva som skjer når filen mangler eller ikke svarer, og du vet hvorfor robots.txt verken er sikkerhet eller noindex.
Nøkkelbegreper: robots.txt (RFC 9309), crawler, gruppe, User-agent, Disallow, Allow, lengste treff, lik lengde (Allow vinner), * og $, Sitemap:, statuskode for robots.txt (4xx, 5xx), 500 KiB, 24 timers hurtigbuffer, ikke sikkerhet, ikke noindex, KI-crawlere (Google-Extended, GPTBot)
Et skilt ved inngangsdøren
En robots.txt er en vanlig tekstfil i rotmappen på nettstedet ditt, alltid på samme adresse: https://www.example.com/robots.txt. En veloppdragen crawler (leksjon 1.2) henter denne filen først og leser hvilke deler av nettstedet den ikke skal besøke. Det er et skilt ved inngangsdøren, ikke en lås: Googlebot og Bingbot følger det, men en ondsinnet robot leser skiltet og går rett inn.
Siden 2022 har protokollen vært en offisiell internettstandard: RFC 9309. Google beskriver i tillegg nøyaktig hvordan Googlebot leser filen. Vi bruker begge kildene i denne leksjonen.
Noen faste regler:
- Filen ligger i rotmappen på verten. En robots.txt i
/blog/robots.txtblir ikke lest. - Den gjelder bare for den verten, den protokollen og den porten.
https://www.example.com/robots.txtgjelder ikke forhttps://shop.example.com/; den trenger sin egen fil. - Det er ren tekst i UTF-8.
Slik er filen bygd opp
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 gruppe starter med én eller flere User-agent:-linjer, og deretter kommer reglene Disallow: (ikke besøk) og Allow: (besøk gjerne). Stien etter Disallow: er begynnelsen på en adresse: Disallow: /zoeken blokkerer /zoeken, /zoeken?q=rozen og også /zoekenmachine, fordi alle begynner med /zoeken.
Linjen Sitemap: hører ikke til noen gruppe og forteller hvor nettstedskartet ditt ligger (leksjon 3.4). Google krever en fullstendig adresse med https:// og vertsnavn.
En Disallow: uten sti blokkerer ingenting. Disallow: / blokkerer alt.
Hvilken gruppe gjelder?
En crawler velger én gruppe: den med det mest spesifikke navnet som passer til den. Googlebot følger altså gruppen User-agent: Googlebot hvis den finnes, og ignorerer da *-gruppen fullstendig. I eksempelet over får Googlebot derfor faktisk gå inn i /winkelmand/: den regelen står bare i *-gruppen. Dette er en av de vanligste feilene: lager du en egen Googlebot-gruppe, må du gjenta alle regler som også skal gjelde for Google der.
Navnet skiller ikke mellom store og små bokstaver (googlebot = Googlebot). Finnes det to grupper for samme crawler, slår Google dem sammen.
Hvilken regel vinner?
Innenfor gruppen kan en adresse treffes av flere regler. Da gjelder:
- Den lengste regelen som treffer, vinner (den mest spesifikke stien).
- Er en
Allowog enDisallownøyaktig like lange, vinnerAllow. Google kaller det «den minst begrensende regelen».
To tegn har en spesiell betydning:
| Tegn | Betydning | Eksempel | Treffer | Treffer ikke |
|---|---|---|---|---|
* | null eller flere vilkårlige tegn | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | slutten av adressen | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Regneeksempel med *-gruppen over, for crawleren Bingbot (som ikke har en egen gruppe):
| Adresse | Regler som treffer | Resultat |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | ikke tillatt |
/zoeken/tips | Disallow: /zoeken (7 tegn) og Allow: /zoeken/tips (12) | tillatt: den lengste vinner |
/zoeken?q=rozen | Disallow: /zoeken | ikke tillatt |
/bruidsboeketten | ingen | tillatt |
/robots.txt | (alltid) | tillatt: robots.txt selv er alltid tillatt |
Når filen mangler, eller serveren svikter
Hva Google gjør, avhenger av statuskoden serveren din svarer med på /robots.txt:
| Svar | Hva Google gjør |
|---|---|
| 200 (funnet) | Leser reglene |
| Videresending (301, 302) | Følger minst fem steg; deretter behandler Google det som 404 |
| 4xx, som 404 eller 403 (unntatt 429) | Som om det ikke finnes noen robots.txt: alt er tillatt |
| 5xx eller ingen forbindelse | De første 12 timene crawler ikke Google nettstedet og prøver på nytt; deretter brukes den siste gode versjonen fra hurtigbufferen i opptil 30 dager. Fortsetter feilen etter det mens nettstedet ellers virker, gjør Google som om det ikke finnes noen robots.txt |
En manglende robots.txt er altså ikke noe problem: da er alt tillatt. En robots.txt som gir en serverfeil, er derimot et problem: da slutter Google midlertidig å crawle. RFC 9309 er enda strengere: når filen ikke kan nås, skal en crawler anta at alt er forbudt.
Videre:
- Google leser maksimalt 500 KiB; det som står etter det, ignoreres.
- Google lagrer robots.txt vanligvis i opptil 24 timer i hurtigbufferen. En endring virker altså ikke med en gang. I Search Console finner du under Innstillinger robots.txt-rapporten: hvilken versjon Google sist hentet, med feil og advarsler, og en knapp for å be om ny henting.
- Google kjenner bare
User-agent,Allow,DisallowogSitemap. Regler somCrawl-delayellerNoindexignorerer Googlebot.
Hva robots.txt ikke gjør
Det er ikke sikkerhet
Alle kan lese robots.txt-filen din, også de med onde hensikter. En regel som Disallow: /beheer-oud/ peker tvert imot ut hvor det ligger noe interessant. RFC 9309 sier det selv: reglene er ingen form for tilgangskontroll. Skal du virkelig skjerme noe, bruker du et passord eller lar serveren nekte tilgang, for eksempel med .htaccess (se Les mer).
Det er ikke noindex
Dette er den viktigste lærdommen. robots.txt styrer crawling, ikke indeksering (leksjon 1.3). Google skriver rett ut at robots.txt ikke er en måte å holde en side utenfor Google på. Lenker andre nettsteder til en blokkert adresse, kan adressen likevel dukke opp i søkeresultatene, bare uten beskrivelse.
Vil du holde en side utenfor søkeresultatene, bruker du noindex (i en <meta name="robots"> eller HTTP-hodet X-Robots-Tag) eller legger siden bak et passord. Og pass deg for den klassiske fellen: setter du en side med noindex i tillegg på Disallow i robots.txt, kan ikke Google besøke siden og får dermed aldri lest noindex.
Ikke blokker filer Google trenger
Ikke blokker mapper med stilark, skript eller bilder som siden din trenger for å vises riktig. Google ser på siden din slik en nettleser gjør; uten disse filene forstår Google siden dårligere.
KI-crawlere
Stadig flere selskaper samler inn nettsider til kunstig intelligens. Noen av dem kan du styre med robots.txt:
Google-Extendeder ikke en egen robot, men et navn i robots.txt der du angir om Google får bruke innholdet ditt til å trene Gemini-modeller og til grounding. Google skriver at dette ikke påvirker om du kommer med i Google Søk eller hvor høyt du rangeres.GPTBotfra OpenAI samler inn sider som kan brukes til å trene modeller.OAI-SearchBoter for søkefunksjonen i ChatGPT: blokkerer du den, vises ikke nettstedet ditt i søkesvarene fra ChatGPT.
User-agent: GPTBot
Disallow: /Om du vil det, er et valg, ikke en teknisk nødvendighet. Blokkerer du en søkerobot ved et uhell (Googlebot, Bingbot, OAI-SearchBot), blir du dårligere funnet der.
I praksis: hvor ligger robots.txt-filen din?
- AI Builder fra WebOké lager selv en robots.txt ved publisering, med
User-agent: *,Allow: /og enSitemap:-linje. Setter du nettstedet til ikke å indekseres, eller er det en gratis demo, står detDisallow: /. - WordPress lager en virtuell robots.txt med en henvisning til nettstedskartet. Legger du selv en fil
robots.txti webmappen, går den foran. - Et eget nettsted på en webhotellpakke: du legger
robots.txti webmappen (i DirectAdminpublic_html) via File Manager eller FTP.
Hos andre leverandører fungerer det på lignende måte: filen må alltid kunne nås på /robots.txt på verten din.
Oppsummering
- robots.txt ligger på
/robots.txtpå hver vert og forteller veloppdragne crawlere hva de ikke skal besøke. - En crawler følger én gruppe (det mest spesifikke navnet, ellers
*). Innenfor gruppen vinner den lengste regelen; ved lik lengde vinnerAllow. - 404 betyr «alt er tillatt», en serverfeil får Google til å stoppe crawlingen midlertidig. Google leser 500 KiB og hurtigbufrer i opptil 24 timer.
- robots.txt er verken sikkerhet eller noindex. Ikke blokker en
noindex-side i robots.txt. - KI-crawlere som
GPTBotog navnetGoogle-Extendedkan du styre separat, uten følger for Google Søk.
Quiz
Oppgave
Oppgave A3.3: robots.txt-filen din gjennomgått. Fyll inn domenet ditt og i tillegg tre adresser på ditt eget nettsted (for eksempel forsiden, en produktside og handlekurven eller søkesiden), med forventningen din for hver adresse: får Googlebot crawle den, ja eller nei? Programmet henter robots.txt-filen din, ser på statuskoden, størrelsen, gruppene og Sitemap:-linjen, og regner ut for hver adresse hva Googlebot får lov til etter reglene fra denne leksjonen. Stemmer forventningen din? Har du ikke eget nettsted? Bruk www.wikipedia.org.
Les mer
Stegene i disse artiklene gjelder for kontrollpanelene til WebOké; hos andre leverandører fungerer det på lignende måte.
- DirectAdmin-veiledning 11.1: Åpne File Manager: mappene i pakken din
- Blokker filer via .htaccess, for eksempel plugin-googlemap2-proxy.php
- DirectAdmin-veiledning 11.4: Vise og redigere skjulte filer som .htaccess
- Google Search Central, Slik tolker Google robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Introduksjon 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, Oversikt over crawlerne (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Oversikt over crawlerne (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
