Træt af at Googlebot indekserer din layered navigation?

Bemærk, at Brugen af denne .htaccess snip er dit eget ansvar. Powerhosting ApS kan og vil ikke være ansvarlig for din rating på Google eller andre steder, om du bruger denne snip eller ej. Omend, hvis du bruger den rigtigt, vil den helt klart gøre mere godt end skidt. Dansk tekst følger under den engelske.

I vores egenskab af at hoste flere tusinde e-commerce websites, ser vi ofte shops, der bliver indekseret hårdt af Googlebot. - Normalt vil du som shopejer gerne have Google til at kigge forbi en gang i mellem, men når den starter med at crawle dit filter eller layered navigation, går det snart op for dig, at det kan gøre stor skade. Ikke kun for SEO med duplicate content, men serverens ressourcer kan også blive udfordret.

I de fleste layered navigation moduler er filtret implementeret via query strenge. Således, at når man klikker på fx størrelse "L", så ændres shop-url'en til hvor-du-nu-end-var?size=L. Hvis du så tilføjer fx prisfiltrering (100-200), kommer det til at se sådan ud: hvor-du-nu-end-var?size=L±price=100-200. Hvis du således browser rundt i en given layered navigation, vil det gå op for dig, at mulighederne er uendelige. Hvis du ikke tror det, så vent til Googlebot kommer forbi.

Gennem tiden har mange kunder, som har oplevet dette, prøvet at håndtere det i robots.txt, eller ved at sætte noindex nofollow X-Robots-Tag headers eller meta tags, men med skiftende held. For det meste ser det ud til, at Google blot er ligeglad. Det eneste, der altid virker, er at sende den rette http response code til søgemaskinerne, når de indekserer query_strings.

Følgende er et eksempel, som skal modificeres til at passe til netop din situation. Query_strings er ofte tilpassede. Ved at gennemse din access log kan du finde de rette query strings. Det skal sættes ind i toppen af din .htaccess fil i document root.

# Sending 410 Gone to bots on filters / layered navigation - Here be dragons

<IfModule mod_rewrite.c>
        RewriteCond %{QUERY_STRING} (size=|manufacturer=|price=|limit=) [NC]
        RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|yahoo) [NC]
        RewriteRule .* - [G,NC]
</IfModule>

For det meste skal du kun redigere linjen med query strings. Husk, dette er en regualar expression, hvorfor vi bruger parentes i kombination med pipe, så du kan definere flere query strings i den samme linje. NC betyder ikke følsom for store/små bogstaver.