Jeg har gennem noget tid testet om det er muligt at benytte sig af X-Robots-Tag header, til at få sider deindekseret eller i det hele taget slet ikke indekseret i søgemaskiner som Google. Jeg er kommet frem med nedenstående eksempler på hvordan man i forskellige situationer kan bruge det.

Hvad er x-robots-tag?

X-Robots-Tag er en anden måde at definere om en side må indekseres eller ikke, om der skal følges links og meget andet. Kort sagt fungerer X-Robots-Tag på samme måde som robots metatagget, forskellen er bare at X-Robots-Tag bliver sat som en http header, mens robots metatagget er HTML kode man indsætter mellem head taggene i sin html fil.

Det betyder også at når man skal teste om det man har implementeret nu også virker, skal man benytte sig af et headers test værktøj, som kan vise din om X-Robots-Tag bliver sat.

Hvornår bruger man x-robots-tag headeren?

Man bruger den typisk når man ikke har muligheden for at indsætte noindex robots metatagget, eller når man ikke vil bruge pengene på at få lavet det korrekt fra starten af. Grunden er samtidig også at det er ret nemt at bruge, selvfølgelig kræver det viden, men man behøver ikke kendskab til PHP, html eller anden serversidescript for at kunne benytte sig af X-Robots-Tag. Det eneste man nok skal sætte sig lidt ind i er mod_rewrite og htaccess, og selvfølgelig hvornår man kan bruge funktionaliteten.

Samtidig skal man også være opmærksom på at Google stadig crawler siden for at se om det originale robots metatag findes på siden, og fortæller den at siden skal indekseres, ja så vælger google i mange tilfælde at indeksere siden alligevel.

Noindex og X-Robots-Tag eksempler

Noindex på Filtyper

Der kan være mange grunde til man gerne vil sætte noindex på filtyper, det kan fx være at man har PDF filer eller for den sags skyld, txt og eller word filer man ikke vil have indekseret. Og det er bestemt også metoden jeg vil anbefale man benytter sig af, da mange stadig prøver at beskytte sådanne filer via Robots.txt filen. Hvilket ikke er den rette metode at bruge. På denne måde kan man rent faktisk have PDF filen liggende på serveren, lade den blive crawlet og fulgt uden at den vil blive indekseret. Og det gør også at man uden tvivl kan putte indholdet af fx sin PDF ind på sin hjemmeside, hvilket jo giver flere fordele for synlighed på nettet.

Eksempel:

Skriv dette i din htaccess fil

<FilesMatch ".(doc|docx|pdf|txt)$">
Header set X-Robots-Tag "noindex, follow"
</FilesMatch>

Du har med ovenstående eksempel, også sikret mod at din robots.txt fil ikke bliver indekseret, dette ses tit og irriterer rigtig mange hjemmesideejere.

Samme eksempel, på bestemte filer:

<FilesMatch "filnavn.html$">
Header set X-Robots-Tag "noindex, follow"
</FilesMatch>

Noindex på mapper

Det er en god ide at vide hvordan man kan udelukke hele mapper fra indeksering, dette kan fx være administrationen for en hjemmeside, som man selvfølgelig ikke vil have indekseret i Google. Et eksempel på hvordan man kan skrive dette i sin vHost fil.


<Directory "/sti/til/mappe">
Header set X-Robots-Tag "noindex, follow"
</Directory>

Noindex ved querys

Ja jeg ser det tit, man har en shop eller en hjemmeside som benytter sig af querys til fx at sortere I produkter, søge på hjemmesiden, og endda også almindelige indholdssider kan have denne risiko. Men disse sider vil man på ingen måde have bliver indekseret, da de i sidste ende kan skabe uendelig risici for dobbelt indhold.

Den bedste metode til fx at undgå de værste ting er selvfølgelig en Catch All metode, men dette kræver at man har adgang til en programmør som ved hvordan dette skal programmeres. Og har man ikke en programmør der kan håndtere dette, vil alt for mange ting kunne gå galt.

Vil man ikke benytte sig af en programmør til at få sat noindex på nogle sider og canonical tag på andre sider, kan denne metode være ret god til at tage de eventuelle dobbelte sider man kan risikere at få indekseret i Google når man ikke har lukket hullet.

Eksempel:

Indsættes i htaccess

Hvis query er sat, sætter vi noindex på siden

RewriteEngine on
RewriteCond %{QUERY_STRING} !="" [NC]
RewriteRule .* - [E=QUERY_SET:1] 
Header set X-Robots-Tag "noindex, follow" env=QUERY_SET

Andre query eksempler:

Query starter med id=(et eller andet tal), og sætter X-Robots-Tag hvis den er det

RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule .* - [E=QUERY_SET:1] 
Header set X-Robots-Tag "noindex, follow" env=QUERY_SET

Kun noindex X-Robots-Tag hvis id ikke er defineret

RewriteEngine on
RewriteCond %{QUERY_STRING} !^id=([0-9]*)$
RewriteRule .* - [E=QUERY_SET:1] 
Header set X-Robots-Tag "noindex, follow" env=QUERY_SET

Noindex på fiktive filer og mapper

Hjemmesider i dag, benytter sig rigtig tit af fiktive filer og mapper for at lave det man kalder SEF-URL (Search Engine Friendly URL) på dansk Søgemaskinevenlig URL. Dette gør at det ikke altid er muligt at benytte sig af ovenstående metoder for filer og mapper. Men det er der selvfølgelig råd for

Eksempel på fiktiv mappe:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/sti/til/mappe [OR]
RewriteCond %{REQUEST_URI} ^/sti/til/anden/mappe
RewriteRule .* - [E=FIKTIV:1] 
Header set X-Robots-Tag "noindex, follow" env=FIKTIV

Eksempel på fiktiv fil:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/sti/til/fil.html [OR]
RewriteCond %{REQUEST_URI} ^/sti/til/anden/fil.html
RewriteRule .* - [E=FIKTIV:1] 
Header set X-Robots-Tag "noindex, follow" env=FIKTIV

Noindex på hele domæner og underdomæner

Det kan være at man vil ekskludere hele domæner fra søgemaskinernes indeks, altså gøre så hjemmeside, filer, mapper mm. På et domæne Ikke bliver indekseret.

Noindex på ALLE domæner undtagen www.domæne.dk

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domæne.dk$
RewriteRule .* - [E=DOMAIN:1] 
Header set X-Robots-Tag "noindex, follow" env=DOMAIN

Noindex på specifikt underdomæne

RewriteEngine on
RewriteCond %{HTTP_HOST} ^underdomæne.domæne.dk$
RewriteRule .* - [E=DOMAIN:1] 
Header set X-Robots-Tag "noindex, follow" env=DOMAIN

Brugerne har efterspurgt

Herunder vil komme de eksempler som folk og brugere har efterspurgt.

Noindex på et domænes undermapper, sider, filer, undtaget specifikke mapper
Bruges fx i forbindelse med CDN og de fejl som kan opstå i den forbindelse med dobbelt indhold

RewriteEngine on
RewriteCond %{HTTP_HOST} ^underdomæne.domæne.dk$
RewriteCond %{REQUEST_URI} !^/img
RewriteCond %{REQUEST_URI} !^/video
RewriteRule .* - [E=CDN_TEST:1] 
Header set X-Robots-Tag "noindex, follow" env=CDN_TEST

Hvornår kan man ikke bruge denne metode?

Det er sådan at Google stadig crawler siden/filen/mappen, hvilket samtidig også betyder at hvis der allerede er sat et robots metatag med index,follow. Så vil Google ikke kunne vide hvilken en af de to der er den rette at følge. Og dermed risikere man at siden alligevel vil blive indekseret. Og ja det er forbavsende mange hjemmesider og hjemmesideløsninger der rent faktisk sætter et robots metatag med index, follow, selvom det som standard er sådan at Google indeksere sider, medmindre andet er sagt. Og det er bestemt en dum ide at gøre det.

Du kan læse mere om hvad Google skriver om X-Robots-Tag og robots metatag her.

Afslutning

Der er mange måder at gøre de rette ting på, den bedste er selvfølgelig altid at undgå brugen af htaccess, og indbygge funktionerne direkte i CMS løsningen eller hjemmesidens kode. Htaccess metoden skal ses som en nem udvej indtil man finder den rette programmør til at implementere fx en Catch All løsning.