Robots.txt eller META-robots? Guide til korrekt udelukkelse af søgemaskinerne
Der kan være mange gode grunde til, at der er sider på dit website, som du ikke ønsker crawlet eller indekseret i søgemaskinerne. Men hvordan er det lige man gør det på den rigtige måde. Skal du bruge robots.txt eller META-robots tags? Det er der øjensynligt rigtig mange som er i tvivl om og det resulterer desværre meget tit i fatale fejl.
I dette indlæg vil jeg derfor, en gang for alle, gøre det helt klart, så alle kan forstå det, hvordan du korrekt udelukker søgemaskinerne fra crawling eller indeksering af sider på dit website…
Hvorfor udelukke sider fra crawling eller indeksering?
Der kan som sagt være mange, rigtig gode, grunde til at udelukke bestemte sider, dokumenter eller dele af dit website fra søgemaskinerne – enten fra at blive indekseret eller crawlet. Lad mig nævne nogle få eksempler:
- Test- eller udviklingsversioner af dit website
- Sider der er en under-del af et forløb, hvor det ikke giver mening at komme ind halvvejs henne i forløbet
- Tynde sider – sider som Google ikke ønsker at indeksere og som alligevel ikke ville ranke på noget, fordi der ikke, eller stort set ikke, er nogen rigtig tekst på dem
- Søgeresultatsider – som Google kræver at vi, som webmastere, udelukker fra crawling eller indeksering
- Sider, som der findes en identisk version af et andet sted på dit website (såkaldt Duplicate Content)
- Dokumenter i formater, som ikke egner sig som landing-sider fra søgninger, som f.eks. PDF, MS Word eller Excel filer
- Kontaktformularer, login-sider og andre sider som af andre grunde bare ikke er gode landing sider for dem som kommer ind fra en søgemaskine
Udelukkelse af crawling med Robots.txt
Robots.txt er en standard som stor set alle søgemaskiner understøtter. Med denne standard kan du angive filer eller biblioteker på din webserver, som du ikke ønsker at søgemaskinerne skal crawle.
Robots.txt udelukker ikke dine sider fra at blive indekseret!
Det kan måske lyde lidt underligt, for hvis dine sider ikke bliver crawlet af søgemaskinerne, fordi de er udelukket med Robots.txt, så ville det jo være logisk at antage, at de så heller ikke bliver indekseret og således kan findes i søgeresultaterne. Men så enkelt er det (desværre) ikke.
Søgemaskinerne kan nemlig godt finde på, at indeksere sider som de slet ikke har crawlet – enten fordi de er udelukket fra at crawle dem, fordi de bare ikke har nået det endnu, eller fordi der er tekniske forhindringer for at gøre det. Når de så alligevel vælger at indeksere dem sker det som oftest fordi, de på baggrund af links til siden eller dokumentet kan se at de eksisterer og måske endda er så populært, at det giver god mening at have det med i indekset.
Google har faktisk mange milliarder sider i deres indeks som de ikke har crawlet.
Sider som ikke er crawlet, men alligevel bliver indekseret, anvender naturligvis ikke sidens indhold, TITLE eller META-data. Det eneste søgemaskinerne har at forholde sig til er andres omtale af siden. Det betyder så også, at hvis du udelukker sider fra crawling med Robots.txt for at undgå Duplicate Content, så er der ingen fare for at det alligevel sker, hvis siderne bliver indekseret – for søgemaskinerne kan jo ikke se selve indholdet.
Implementering af Robots.txt
Robots.txt er en almindelig tekstfil, som placeres i roden af dit website med filnavnet: robots.txt. Så hvis dit domæne f.eks. er: www.MitWebsite.dk så skal Robots.txt filen ligge på adressen: www.MitWebsite.dk/robots.txt
Filen kan bestå af 2 eller flere linier, som hver især angiver bestemte filer eller biblioteker, som du ønsker at udelukke fra crawling.
Hvis du f.eks. ønsker at udelukke alle sider fra crawling gøres det på følgende måde:
User-agent: * Disallow: /
Den første linie fortæller, at det er alle søgemaskiner, som skal overholde denne regel. Den næste linie fortæller, at det er alle sider på dit website der skal udelukkes fra crawling.
Du kan også målrette dine regler mod bestemte søgemaskiner. Hvis det g.eks. kun er Googles crawler du vil udelukke fra at crawle dit website skrives det på denne måde:
User-agent: googlebot Disallow: /
Hvis det ikke er hele dit website du ønsker at udelukke fra crawling, hvilket i reglen kun er tilfældet hvis det er en test- eller udviklingsversion af dit rigtige website, så kan du angive det på følgende måde:
User-agent: * Disallow: /admin/ Disallow: /tmp/ Disallow: /crap/
Du kan også angive specifikke filer og visse former for wildcards. Det sidste skal du dog være varsom med, da det ikke er alle søgemaskiner der understøtter det på samme måde og omfang. Så normalt vil jeg anbefale, at du holder dig til de mere simple folder- og fil-regler.
Du kan læse mere om den tekniske implementering af Robots.txt her.
Du kan teste din Robots.txt fil i Google Webmaster Tools under Sundhed -> Blokerede Webadresser – og det vil jeg bestemt anbefale at du gør. Det er et meget dumt sted at lave fejl!
Udelukkelse af indeksering med META-robots
I modsætning til Robots.txt er META-robots standardarden lavet for at kunne udelukke bestemte sider fra indeksering og eller følge links fra siderne.
Søgemaskinerne vil således stadig crawle de sider hvor du har implementeret en udelukkelse med META-robots. Hvis ikke de crawlede dem kunne de jo heller ikke se dine META-robots tags.
Der er to ting du kan angive i dine META-robots tags:
- NOINDEX – eller INDEX
- NOFOLLOW – eller FOLLOW
Med NOINDEX fortæller du søgemaskinerne, at siden ikke skal indekseres. Med INDEX fortæller du dem, at siden godt må indekseres.
Med NOFOLLOW fortæller du søgemaskinerne at de ikke skal følge links fra siden. Med FOLLOW fortæller du søgemaskinerne, at de gerne må følge links fra siden.
META-robots skirves på følgende måde:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
Koden placeres i HEADER-sektionen af dit website mellem <head> og </head>. Det ser således ud på den færdige side:
<head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head>
Udover ovensteånde vil der så normalt også være andre informationer i HEADER-sektionen, så som sidens TITLE, META-descriptions, referencer til eksterne CSS og JavaScript filer mv.
De mest almindelige fejl med Robots.txt og META-robots
Der bliver desværre begået rigtig mange fejl med Robots.txt og META-robots – selv af erfarne webfolk og mennesker der udgiver sig for at være SEO-eksperter. Nedenfor har jeg kort beskrevet nogle af de mest almindelige fejl, så du selv kan undgå dem.
- Robots.txt fjerner ikke indeksering
Jeg oplever ofte folk der har tilføjet sider eller sektioner på deres website til Robots.txt og ikke forstår, at de så stadig er indekseret. Men det er helt korrekt. Robots.txt udelukker ikke indeksering, men kun crawling! - META-robots stopper ikke crawling
Tilsvarende oplever jeg også ind imellem folk der tilføjer META-robots på sider og så ikke forstår, hvorfor de stadig bliver crawlet. Men det er også helt korrekt. META-robots udelukker ikke crawling, men kun indeksering (hvis der bruges NOINDEX) og evt. at links følges (med NOFOLLOW). - META.robots NOFOLLOW forhindrer ikke indeksering
Hvis du tilføjer NOFOLLOW til en side, så følger søgemaskinerne ikke links fra den pågældende side, men der kan sagtens være links andre steder fra til de sider der linkes til fra siden, som gør, at søgemaskinerne alligevel finder, crawler og indekserer dem, hvis ikke disse specifikt udelukkes fra dette. - META-robots INDEX giver ingen mening
Hvis du gerne vil have en side indekseret giver det ingen mening at bruge META-robots INDEX på siden. Du vil opnå det samme ved slet ikke at have denne kode – og dermed spare den plads. Du skal kun bruge NOINDEX – og naturligvis kun på sider du ikke vil have indekseret. NOFOLLOW of FOLLOW kan begge bruges, afhængigt af, om du ønsker links fra siden skal følges eller ej. Typisk bruges en kombination af NOINDEX og FOLLOW på sider du ikke vil have indekseret, men hvor du gerne vil have links følges – f.eks. på Duplicate Content sider. - Robots.txt og META-robots på de samme sider
Dette er nok en den mest almindelige fejl. Du skal aldrig bruge både Robots.txt og META-robots på samme sider. For hvis du bruger Robots.txt til at blokere for crawling af en side, så kan søgemaskinerne jo ikke læse din META-robots kode.
Jeg håber du nu har helt styr på, hvordan du bruger Robots.txt og META-robots korrekt på dit website. Hvis du har nogle spørgsmål er du velkommen til at spørge nedenfor …
Peter Ulstrup Hansen skriver
Hej Mikkel, fed artikel!
Et punkt vi ofte støder på når vi laver SEO Analyser er forkert brug af wild card “*”, som oprindelig er defineret som “alle søgerobotter” og derfor kun i visse tilfælde kan benyttes i den traditionelle brug, hvor “*” (uden anførselstegn) betyder alt.
“*” benyttes typisk i pattern matching, hvor f.eks. alle PDF sider skal udelukkes, dette skrives:
user-agent: *
disallow: /*.pdf$
Artiklen findes her: http://support.google.com/webmasters/bin/answer.py?hl=en&answer=156449&from=40367&rd=1
Peter
Gita Street Kristiansen skriver
Nu bliver der brugt eksempel med Disallow: /*.pdf$ i robots,txt-filen.
Er der nogen speciel grund til at forhindre crawling af eksempelvis en pdf-fil, nu hvor det er muligt at forhindre indeksering med NOINDEX vha X-Robots Header Tag header?
Den eneste begrundelse jeg kan komme i tanker om til at bruge robots.txt er at det nok er “billigere” mht load tider, men hvis man putter de filer, der skal have X-Robots Header Tags i en separat folder kan de jo få tagget i en lokal .htaccess-fil, så man undgår en overfyldt .htaccess-fil i roden.
Mikkel deMib Svendsen skriver
Robots.txt og META-robots er standader alle sites kan bruge.
Gita Street Kristiansen skriver
Havde glemt at det ikke altid er lige hensigtsmæssigt at tilføje mulighed for brug af .htaccess-fil på eksempelvis en Microsoft server, så der kan det selvfølgelig være rart at kunne bruge robots.txt.
Claus Rump skriver
Hej Mikkel!
Beklager hvis jeg er en smule langsom her, men hvad er din anbefaling, hvis jeg f.eks. har en “tynd” side med en kontaktformular, som jeg ikke vil have skal “trække mit site ned”? Så ønsker jeg vel, at siden ikke bliver indekseret. Men som jeg forstår dig vil en robots.txt, der indeholder nedenstående kun gøre, at siden ikke bliver crawlet men stadig indekseret?
User-agent: *
Disallow: /kontakt-os.php/
Mikkel deMib Svendsen skriver
Du behøver skam ikke undskylde – der er ingen dumme spørgsmål her 🙂
I den situation du beskriver kan du bruge både Robots.txt og META-robots. Gør det som er lettest for dig – begge dele løser dit problem.
Claus Rump skriver
Tak for dit hurtige svar (0;
Henrik skriver
Tak for en god gennemgang, men hvad skal man gøre, hvis en eller flere tynde sider allerede er indexerede og man gerne vil have dem væk fra index?