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. Robots.txt er en sag, der skal mestres, hvis du for alvor leger med SEO!
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.htmlHer 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å. Og det der med SEO - det har jeg mere viden om!
Rosenstand out!
Den ligger i roden på dit domænes webserver - altså for eksempel på domæne.dk/robots.txt. Det er der, den skal ligge for at søgemaskiner som Google kan koble den sammen med dit domæne.
Nej! Du kan lave alle mulige og umulige ulykker i robots.txt, hvis du ikke ved 100%, hvad du laver. Overlad det til fagfolk, hvis du er det mindste i tvivl!
Nej ikke mere. Det har aldrig været anbefalet, men har tidligere været muligt. Det er det IKKE mere.
Ikke nødvendigvis - men de fleste sites har gavn af den til at angive diverse kommandoer til søgerobotter.
og så lad være med at tro når du har lukket en mappe eller fil – så kan folk ikke finde den
http://www.alexa.com/search?q=%22Thanks%20for%20your%20order%22 🙂
Kl. 01.49 natten til lørdag. Sidder du i USA eller er du bare nørdet?
Nørdet 🙂
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 🙂 )
Ind imellem kan man også se, hvad konkurrenter eller andre pønser på og roder med ved at kigge i deres robots.txt, hvis de nøjes med at beskytte de nye tiltag i robots.txt.
Se f.eks. http://www.whitehouse.gov/robots.txt
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??
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.
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]
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
Angående #8. Så kan du nemt med plugins i browseren ændre din useragent.
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.
…man kan også gå den helt anden (og mere nørdede vej) at blogge i sin robots.txt: http://www.webmasterworld.com/robots.txt
…kan ikke helt huske forhistorien, men det var enten noget med nogen der blev sur på Google eller også var det noget med en blanding af øl og nørd… 🙂
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 ?
hmmm… nå, man må ikke paste kode ind på Thomas’ blog. Kedeligt.
Jeg prøvede at skrive:
meta name=ROBOTS content=NOINDEX, FOLLOW
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…
God gennemgang. Endelig fik jeg det helt på plads:-)
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. 🙂
Den er jo nærmest lavet, så alle burde/ville kunne forstå… 🙂
Keep up the good work 🙂
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 🙂
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
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.
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?
Hej Jesper
Ja, det er bestemt muligt, og det fremgår også af sitemap protokollen: http://www.sitemaps.org/protocol.html#submit_robots
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.
Hej Alex
Den er jeg lidt i tvivl om, så jeg pinger lige Kim Tetzlaff på den – han er temmelig hardcore på den slags.
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
Nerds to the rescue 🙂 Tak skal du have, Kim!
Så lidt
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 🙂
Hey Alex,
Prøv at tage et kig på min løsning hvad angår noindex via htaccess. ellers vil jeg anbefale dig at indprogrammere i selve løsningen at når der er en query sat, så skal der enten canonical på eller noindex på, alt efter hvad der i situationen er bedst.
Du kan også via htaccess sætte canonical tag, men det er en helt anden snak.
http://www.ktj-media.dk/blog/noindex-via-htaccess/#query
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.
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.
Hej Thomas
Ved ikke lige hvor (*) kom fra. Men mange tak for svaret.
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
Leffe: Som jeg svarede dig i din tidligere kommentar: Send mig en mail på thomas@concept-i.dk, så jeg kan lave et tilbud til dig på en gennemgang.
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
Glemte da lige at skrive at du selvfølgelig skal override i din style.css for temaet
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?
Så vis man skal indsætte en robot.txt fil skal man så bare indsætte den på foreksempel unoeuro?
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”.
Tusind tak 😀
Langhåret, men som sædvanlig med dig Thomas, så forstår man det med dine ord. Takker og bukker for et godt indlæg igen
Tak skal du have, Rene. Som det fremgår af videoen: Det der med langhåret er ikke lige mig 😉
Hej Thomas
Lavede lige en søgning på ombygning af robots.txt og fandt din guide
Var lige i gang med at lave en video-guide –
Tak for for guiden.