robots.txt giver mig grå hår…

Google Webmaster Tool og Googlebot er ikke helt enige om robots.txt

I dag gjorde jeg store øjne, da jeg fik et tip fra en af SPAMfighters samarbejdspartnere. Han påpegede, at en vigtig side på SPAMfighters website ikke var indekseret.

Jeg protesterede hårdnakket, jeg var nemlig 112% sikker på, at vedkommende tog fejl, da jeg nemlig tidligere har testet denne side op imod det robots.txt validator værktøj, som findes inde i Google Webmaster Tool, og her sagde robots.txt validator, at siden ville blive indekseret.

Men da jeg fik kigget efter, så måtte jeg bide i det sure æble, og give ham ret – siden var ikke længere indekseret.

For dig der ikke kender robots.txt, så er det en lille tekstfil, som man kan lægge i roden af site website. I denne fil kan man liste de sider, som man gerne vil have søgemaskinerne indekserer, og hvilke de ikke må indeksere. Kort fortalt så skriver man:

  • Allow: [sidens url] hvis siden gerne må indekseres af søgemaskinerne
  • Disallow: [sidens url] hvis siden ikke må indekseres af søgemaskinerne

SPAMfighters website er visse steder oversat til +21 sprog, men det gælder ikke alle sider, eksempelvis ikke den SPAM-omkostnings-lommeregner (’Spam_Calculator.asp’), som vi lancerede for nogle uger siden. SPAMfighters website fungerer i skrivende således, at hvis en side ikke er oversat til et af de +21 sprog, så fremvises der engelsk indhold på siden. Det medfører jo det problem, at vi har duplicate content på alle de sider, der ikke er oversat (jeg har en plan i støbesken hertil :]). Det er dog umiddelbart muligt  at forebygge ganske meget, ved at lave et filter i robots.txt, der kun tillader, at de oversatte sider indekseres, mens de ikke-oversatte sider blokeres imod at blive indekseret.

Det havde jeg løst på denne måde i robots.txt (bemærk at første linie ikke har nogen sprog-subfolder, så det er default-sprog (engelsk).


User-agent: googlebot, msnbot
Allow: /Spam_Calculator.asp
Allow: /Lang_DE/Spam_Calculator.asp
Allow: /Lang_ES/Spam_Calculator.asp
Allow: /Lang_FR/Spam_Calculator.asp
Allow: /Lang_IT/Spam_Calculator.asp
Allow: /Lang_PT/Spam_Calculator.asp
Allow: /Lang_CS/Spam_Calculator.asp
Allow: /Lang_EL/Spam_Calculator.asp
Allow: /Lang_JA/Spam_Calculator.asp
Allow: /Lang_RU/Spam_Calculator.asp
Allow: /Lang_NL/Spam_Calculator.asp
Allow: /Lang_PL/Spam_Calculator.asp
Allow: /Lang_SV/Spam_Calculator.asp
Allow: /Lang_NO/Spam_Calculator.asp
Allow: /Lang_DA/Spam_Calculator.asp
Allow: /Lang_FI/Spam_Calculator.asp
Disallow: /*/Spam_Calculator.asp

Læg mærke til, at jeg først tillader indeksering af siden for alle de sprog, som den er oversat til, mens jeg til slut blokerer imod indeksering af alle øvrige sprog – wildcard (’*') dækker her for alle øvrige sprog. Nemt og bekvemt, ikke mindst hvis der pludselig dukker nye sprog op i fremtiden.

Jeg testede det som sagt op imod robots.txt validator værktøjet i Google Webmaster Tool, og her har jeg gengivet det via mit eget website (grosen.com)

Robots.txt validator værktøj som findes inde i Google Webmaster Tool (klik på billedet for at se det i fuld størrelse) – læg mærke til test resultatet nederst til højre.

Robots.txt validator i Google Webmaster Tools (a)

Men virkeligheden er en anden, den sidste linie overruler alle de foregående linier for ‘Spam_Calculator.asp’ siden, bortset fra den første linie som repræsenterer siden på default sproget (engelsk) – den side slipper dog igennem nåleøjet.

Nu har jeg så måtte forbygge duplicate content ved at fastsætte Allow: og Disallow: for hvert enkelt sproglag.


User-agent: googlebot, msnbot
Allow: /Spam_Calculator.asp
Allow: /Lang_DE/Spam_Calculator.asp
Allow: /Lang_ES/Spam_Calculator.asp
Allow: /Lang_FR/Spam_Calculator.asp
Allow: /Lang_IT/Spam_Calculator.asp
Allow: /Lang_PT/Spam_Calculator.asp
Allow: /Lang_CS/Spam_Calculator.asp
Allow: /Lang_EL/Spam_Calculator.asp
Allow: /Lang_JA/Spam_Calculator.asp
Allow: /Lang_RU/Spam_Calculator.asp
Allow: /Lang_NL/Spam_Calculator.asp
Allow: /Lang_PL/Spam_Calculator.asp
Allow: /Lang_SV/Spam_Calculator.asp
Allow: /Lang_NO/Spam_Calculator.asp
Allow: /Lang_DA/Spam_Calculator.asp
Allow: /Lang_FI/Spam_Calculator.asp
Disallow: /Lang_ZH/Spam_Calculator.asp
Disallow: /Lang_TW/Spam_Calculator.asp
Disallow: /Lang_VI/Spam_Calculator.asp
Disallow: /Lang_TH/Spam_Calculator.asp
Disallow: /Lang_BG/Spam_Calculator.asp

Da jeg har gået og grublet over dette mismatch imellem testresultater fra Google Webmaster Tools’ robots.txt validator og Googlebots “opførsel” i noget tid, så slår det mig pludseligt, at der jo altid skal angives en User-agent: indstilling i toppen af et sæt filtre i robots.txt (der kan godt laves separate indstillinger for hver søgerobot). Denne indstilling fastsætter hvilke(n) søgemaskiner de efterfølgende indstillinger gælder for, man kan bruge wildcard ‘*’ for alle søgemaskiner, eller man kan angive dem enkeltvis, eksempelvis:

  • User-agent: googlebot (Navnet på Google’s søgerobot)
  • User-agent: msnbot (Navnet på Bing’s søgerobot)

Da Google og Bing begge understøtter wildcard ‘*’ i robots.txt indstillinger, så har jeg imidlertid valgt at sætte navnene på deres user-agents ved siden af hinanden, da denne syntax er understøttet af begge søgemaskiners bots:

User-agent: googlebot, msnbot

MEN … det kan robots.txt validatoren i Google Webmaster Tools altså ikke lide :-(

.. og lige så snart jeg kun angiver googlebot som user-agent, så fremkommer der helt andre resultater (klik på billedet for at se det i fuld størrelse) – læg mærke til testresultatet nederst til højre:

Robots.txt validator i Google Webmaster Tools (b)

Hvad er så pointen med dette blogindlæg?

Jo pointen er, at:

  • User-agent: googlebot, msnbot
    • = understøttes af Googlebot
  • User-agent: googlebot, msnbot
    • = understøttes ikke af robots.txt validator i Google Webmater Tool

…..og at sådan en lille bitte indstilling kan have alvorlige konsekvenser for indekseringen af dit website.

/Grosen Friis

6 Responses to “Google Webmaster Tool, Googlebot og robots.txt”

  1. Godt spottet. Jeg har ellers været så glad for det robots.txt-tool webmaster tools.

    Jeg går ud fra, at det krævede en hel del graveri, før du kom frem til løsningen? Håber, at jeres indeksering hurtigt kom på plads igen.

  2. grosen siger:

    Hej Frank

    Det er stadigvæk et udmærket tool, man skal bare huske at justere sin robots.txt før man tester sine URL’er :-)

    Ja det har jeg faktisk brugt hele dagen på :)

    Man kan kun håbe at Google hurtigt får vores sider re-indekseret.

    /Grosen

  3. Hmm.. Skræmmende at man ikke kan stole på Google Webmaster Tool! Jeg har personligt altid bare stolet på at det virkede men må da indrømme at jeg aldrig har tjekket det op… Måske skulle man overveje at gøre dette !? Nå men tak at gøre opmærksom på dette!

  4. Grosen Friis siger:

    Hej Anders

    Undskyld mit sene svar.

    Man kan godt stole på GWT’s verifikation af robots.txt, men man skal lige huske at tilrette ‘user-agents’ inden man gør det :)

    /Grosen

  5. Morten siger:

    Lidt vildt at Googles eget værktøj fejler vs deres søgemaskine.
    Så er det bare igang med at tjekke, om alle ens sider er indekseret nu…
    Rigtig godt indlæg, selvom det er meget teknisk.

  6. Grosen Friis siger:

    Hej Morten

    Ja, vi endte også med en del rod med
    - hvilke sider der blev indekseret og
    - hvilke der blev blokeret imod indeksering

    indtil jeg fandt ud af, hvad der var galt :)

    Tak :)

    /Grosen

Leave a Reply