Sådan bruger du robots.txt

I den aldrig færdige historie om duplicate content har den lille frække sag kaldet robots.txt været nævnt nogle gange, og en gennemgang af mulighederne med den fil er blevet efterlyst. Derfor snupper vi lige et hurtigt kig på robots.txt og det, du kan gøre med den. En lille advarsel er på sin plads: Lad være med at rode med den, hvis du ikke ved, hvad du gør. Jeg er i min tid stødt på flere robots.txt, der effektivt har hindret en ønsket indeksering af hele hjemmesider eller dele af dem.

Opdateret december 2014:

Det er vigtigt, at du forstår, at du IKKE kan forhindre indeksering af en eller flere URLs med robots.txt. Det eneste, du kan med robots.txt er, at du kan forhindre søgerobotterne i at crawle selve indholdet på en URL. Men URl’en vil stadig være at finde i Google og i andre søgemaskiner! Hvis du sætter en URL til “disallow”, kan Google ikke læse nogen direktiver på den URL, du måtte have indsat – som for eksempel Canonical URL Tag, “noindex” eller andet.

Læs denne artikel om Meta Robots kontra robots.txt

Hvad er robots.txt?

En robots.txt fil er en fil i txt format, som placeres i roden af din hjemmeside. Når en søgerobot som for eksempel Googlebot besøger din hjemmeside, vil den først og fremmest undersøge, om der findes en robots.txt – og gør der det, vil robotten som oftest rette sig efter de anvisninger, den får fra filen.

Lad os ramme en pæl gennem en myte: Hvis du ikke har behov for at spærre adgangen for en søgemaskine til dele af din hjemmeside, behøver du ikke have en robots.txt

Hvorfor spærre med robots.txt?

Hvis du har statiske printvenlige sider, er det et must, at disse ikke crawles – for ellers får du problemer med duplicate content. Det kan også være tilfældet med PDF versioner af dit indhold.

Måske har du sider eller hele foldere med f.eks. passwordbeskyttet indhold, du ikke ønsker en søgerobots nysgerrige næse i. Det kan også være sider som indkøbskurven i en webshop eller lignende.

Hvordan bruges robots.txt?

Du kan skrive din robots.txt i f.eks. Notepad og uploade den til dit webhotel. Husk, at filen skal hedde robots.txt, og den skal ligge i “roden” af din hjemmeside. Når den er uploadet, skal du kunne se den i din browser ved at skrive din hjemmesideadresse/robots.txt

Hvis du vil spærre helt for adgangen til din hjemmeside for søgerobotter:

User-agent: *
Disallow: /

Pas på den! Med den vil INTET på din hjemmeside blive indekseret i Google eller andre søgemaskiner.

Hvis du har f.eks. PDF filer i en mappe med navnet “PDF”, og du ikke vil have dem indekseret:

User-agent: *
Disallow: /PDF/

Her vil alt andet på hjemmesiden blive crawlet – men ikke mappen /PDF/

Hvis du har en bestemt side (fil) på din hjemmeside, du vil spærre for:

User-agent: *
Disallow: /hemmelig-fil.html

Her springer robotterne bare den ene fil over.

Hvis du vil spærre for en bestemt søgerobot og tillade alle andre:

User-agent: googlebot

Disallow: /

User-agent: *
Disallow:

Her vil Googlebot være spærret for – men alle andre robotter kan komme til.

Her kan du downloade en liste med over 300 kendte søgerobotter: Robotter

Hvis du vil spærre for adgangen til en folder – men tillade en enkelt fil i samme folder:

User-agent: *
Disallow: /folder/
Allow: /folder/maa-indekseres.html

Det er de væsentlige muligheder – og de kan kombineres, så det burde være muligt at opnå det, du gerne vil. Lad mig gentage: Én fodfejl er nok til at hele din hjemmeside eller vigtige dele af den fjernes fra søgemaskinernes indeks indtil fejlen rettes. Så tjek – dobbelttjek og gør det igen. Eller ring til en ven…

Google har glimrende information om emnet – og det har Robotstxt.org også.

Rosenstand out!

Få et opkald fra Thomas Rosenstand - Så er du på vej til den ultimative SEO løsning!

Invalid Email
Invalid Number

44 kommentarer til “Sådan bruger du robots.txt”

  1. Godt, på sin plads med sådan en gennemgang.
    Kan også nævne at man kan blokerer querystrings ala
    User-agent: *
    Disallow: /hemmelig-fil.php?id=50
    DOG skal man være opmærksom på at den også vil blokerer alle andre querystrings der starter med 50, fx 500,501 osv. Men det kan være brugbart nogle gange. (Kender i en stopkode så man kun blokerer 50 og intet andet hører jeg det gerne 🙂 )

  2. Outstanding, Thomas! Rart at få dét på plads – altså ikke at du er nørdet, men at man ikke behøver denne robotfil 😉

    Hvordan opstod myten om, at man Skulle have denne fil – selv når man ikke ville spærre noget??

  3. Robots.txt er faktisk en meget overset teknik. En lille tilføjelse er at man ikke skal forhindre søgerobotter afgang til hemmelige filer, ved hjælp af robots.txt, da alle jo kan se en sides robots.txt fil, og dermed også filnavnet til den hemmelige fil.

  4. Intet problem, Bachmann! Er du lidt lørdagsgroggy eller hva’? 🙂

    RewriteCond %{HTTP_USER_AGENT} ^(Mozilla¦Opera)
    RewriteCond %{HTTP_USER_AGENT}!(Slurp¦surfsafely)
    RewriteRule ^robots\.txt$ /someotherfile [L]

  5. Undskyld, det var lørdag, jeg var fuld, det skal aldrig ske igen ( puha, der fik jeg lige et dejavue ) 😉

    Jeg ved godt at du aldrig kunne finde på det, så det vare mere ment som en service til dem som læser denne guide og skal lave en robots.txt for første gang. tro mig, jeg har set robots.txt filer indeholde URL’er til “hemmelige” filer 😉

    Og det er nok ikke lige dem der begynder at rode med en .htaccess fil.. 😉

    Hygge og god søndag

  6. Ja, det er ikke noget problem, og det er der mange metoder til. Også uden plugins. Men det er trods alt ikke så mange, der kan det – så det indsnævrer gruppen en del. Skal noget hemmeligt ligge online, skal det beskyttes på anden vis end med robots.txt, og faktisk var det heller ikke emnet her oprindeligt.

    Robots.txt handler først og fremmest om at undgå indeksering af hensyn til duplicate content og usability – ikke om at beskytte følsomme oplysninger.

  7. Hvis man vil udelukke alle søgebots fra en enkelt, måske lidt hemmelig side (som man jo deraf ikke kan smide i robots.txt), ikke kan passwordbeskytte siden og så videre, er der så noget galt med ?

  8. Nicolai: Nej, det er der ikke noget galt med – men husk lige, at Google vil følge de links, der er på den “hemmelige” side, hvis du bruger det tag. Alternativt skal du bruge “Noindex,Nofollow”.

    Pål: Jeps – jeg kan godt huske den. Ret pudsig…

  9. Vadskær:

    Interessant observation. Nu hvor ejeren er lige præcis Det Hvide Hus, som jo alle bekendt er tilholdssted for en særdeles kløgtig administration, ville jeg ikke ha’ været overrasket, hvis jeg stødte på navnet Lewinsky én gang eller to i filen. Men desværre…

    Pål:

    Damn! Det er så nørdet, at det er cool. 🙂

  10. Så fik jeg også for første gang brug for at rode med robots.txt – og selvom det her blev skrevet for lidt over 3 år siden, er det stadig at finde næsten øverst på Google (evt. takket være G+), og svarede da også på alle mine spørgsmål. Merci beaucoup. Nu til at smide min nye robots.txt fil ned i roden på serveren 🙂

  11. Hej Thomas,

    Et lille hurtigt spørgsmål ved robots.txt i Dandomain – kan det passe at hvis man har flere sites i samme DD løsning, så er det den der ligger på hoved domænet der gælder for alle sites ?
    Jeg har prøvet at ligge en ud på Urskiven.com, men når jeg checker, så ser det ud til at være den fra Guldsmykket.dk der gælder

    Finn

    1. Hmm… Du skal have en robots.txt fil i roden af hvert site, for at det virker. Altså: Du skal kunne kalde den på domæne/robots.txt og kunne se den. Kan hænde du skal have fat i DD support for at knække den nød.

      1. Er det muligt at linke til flere sitemaps i én og samme robots.txt?

        tænker at man kan bruge

        sitemap: dansk.xml
        sitemap: english.xml
        sitemap: norsk.xml

        hvis man så samtidig verificere ejerskab via Google webmastertools – bør det vel virke?

  12. Alex Westergaard

    Jeg har bygget min .htaccess til at køre alt igennem /index.php/$0

    Jeg vil nu gerne blokere for ting, som f.eks. url som starter med noget specifikt. Hvilken skal jeg så bruge?

    /*wp-*
    /wp-*
    /*wp-$

    ^ Såvel som med “?” tegnet, hvordan gør jeg så at jeg ikke indeksere sider hvor der er lavet get’s?

    /*?
    /*?*
    /*?$

    ^ Jeg er i tvivel, ville være dejligt med et svar, som er mere specifikt.

  13. Hej Thomas og Alex,
    Der er flere måder du kan gøre det på via htaccess, og det er forskelligt fra server til server hvad løsningen er.

    I forhold til querys og get, der er den bedste metode ikke at bruge htaccess, men at bruge rel=”canonical” link tagget i html koden for websitet. Det er ikke en god ide at benytte htaccess til den del. Medmindre du allerede nu ved at du ikke skal bruge GET til noget på din hjemmeside, da du så kan lave en 301 redirect til samme side uden query (GET).

    dette gøres sådan:

    RewriteEngine on
    RewriteCond %{QUERY_STRING} !=””
    RewriteRule ^(.*)$ /$1? [R=301,L]

    Har du nogle querys som du gerne vil have går igennem, kan du fx skrive endnu en RewriteCond. Hvis du fx herne vil have at alle querys der indeholder id=xxx ikke skal have fjernet query, kan du skrive en linjen:

    RewriteCond %{QUERY_STRING} !^id=.*

    før RewriteRule.

    Men som sagt er den bedste metode at bruge canonical link tag i det her tilfælde, da det så er muligt at benytte sig af querys uden man skal til at tage hensyn til alle mulige querys som godt må gå igennem, hvilket også kan resultere i DC.

    Alternativt kan du også bruge x-robots-tag til at fortælle at sider ikke må indekseres, og det kan du læse mere om her: http://www.ktj-media.dk/blog/noindex-via-htaccess/#query

    Så længe du husker at x-robots-tag i det her tilfælde er sidste udvej.

    Har ikke lige mere tid til at skrive, da jeg skal ud af døren, men du kan nok finde svaret på dit andet spørgsmål, på ovenstående side. hvis ikke du finder svaret, eller lige kan gennemskue hvordan du skal gøre, så vil jeg senere komme med løsningen på dit problem.

    MVH Kim

    1. Alex Westergaard

      Hej Kim,

      Min hjemmeside bruger GETS internt, men ikke noget brugere kommer til at se. Så derfor vil jeg gerne have at den ikke indeksere mine sider når der er GETS på.

      f.eks. website.com/index.html?sd – Der bruges “?sd” til at vise information om den åbne side, men det er kun noget man får adgang til ved at kende til denne GET. (Ikke i brug længere).

      ^ Jeg har mange små finurligheder som køre igennem mine GETS, som er interne, og derfor ikke skal indekseres 🙂

  14. Emil Sørensen

    Hej Thomas

    Bruger man kun Robot.txt til at udelukke sider, og derved undgå DC?

    Og er den her formel under, kendt af dig, og god at bruge?:

    User-agent:
    * Disallow: / cgi-bin /
    Disallow: / tmp /
    Disallow: / junk /

    Tak for dit svar.

    1. Hej Emil
      Ja – og også hvis der er andre grunde end lige DC til, at man ikke ønsker en given URL’s indhold crawlet. Husk dog, at du aldrig må nøjes med robots.txt, hvis der er tale om fortroligt indhold.

      Jeg forstår ikke dit eksempels første linje? Hvad skal det wild card tegn der (*)? Resten ser fint ud.

  15. Hej Thomas

    På zorbas.se får jeg en fejl men ikke på zorbas.dk.
    Fejlen får jeg på webmastertools som siger:

    Svarkode: 403 (kan ikke få adgang) til wp-content/plugins/LayerSlider/skins/

    Hvad kan jeg gøre for at løse dette problem?
    Skal jeg spærre via robots.txt og hvordan skal det se ud?

    ______________________________

    Som noget helt andet kunne jeg godt tænke mig noget kritik på mine hjemmesider på dk. og .se, både udseende men også SEO.

    Vh. Leffe

  16. Du skal ikke blokerer/spærre via robots.txt i det tilfælde, da det sikkert bare er en fejl i LayerSlider css filen, eller tilsvarende. Det ser dog ikke ud til at den fejl findes mere.

    Men i det tilfælde skal du rette fejlen i css filen, hvilket kan gøres på flere måder, hvor den bedste nok er at du overrider den pågældende style som laver fejlen, og fortæller at den ikke skal hente den fil den nu prøver at hente i skins mappen.

    MVH Kim Tetzlaff

  17. Hej Alex

    Hvis fejlen stadig er der, kan du guide mig igennem hvordan jeg skal gøre det?

    En anden ting, jeg har prøvet med nogle plugins i wordpress som skulle lave leverage browser caching, men ingen af de plugins har virket.

    Kender du et plugin der virker eller paramater/text til htaccess hvor det bare virker med det samme?

    1. Hej Martin
      Robots.txt filen skal ligge i dit webhotel, der kan være hos Unoeuro for eksempel. Den skal ligge samme sted som dit site – typisk i “public html”.

Skriv en kommentar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *