Desde hace un tiempo, detectamos que bots como Google y Bingbot están rastreando todas las URL’s que los filtros de PrestaShop genera. Aparte de ser poco beneficioso, impacta de forma notoria contra la carga de los servidores, provocando que las webs vayan lentas, que los usuarios no puedan navegar, etc.
Se han llegado a ver casos de webs que han recibido 100.000 peticiones en 1 solo día. Tras el bloqueo, bajar la carga del 100% CPU constante a casi nada de carga, la normal de la operativa de la web del día a día.
Las peticiones que suelen hacer tienen este estilo, según el filtro que crawlean en ese momento:
66.249.79.1 – – [20/Jun/2025:05:59:54 +0200] «GET /31-ropa-para-mujer?q=Talla-XS-38-44-XL%5C/XXL&resultsPerPage=12 HTTP/1.1″ 200 31833 «-» «Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.7151.103 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)»
Bloquear el rastreo de estas URL’s de filtros, evita que Google y Bing indexe estas páginas irrelevantes, mejorando el SEO y optimizando el rendimiento del sitio. Además, al reducir el rastreo de URLs dinámicas, se disminuye el consumo de CPU y consultas SQL, haciendo que la tienda funcione más rápido y con menos carga en el servidor.
ProfesionalHosting no se responsabiliza de potenciales posibles pérdidas de posicionamiento web. Esta guía pretende ayudar a mitigar el abuso de rastreadores/crawlers analizando su servidor. Antes de hacer nada de lo que se expone abajo, contacte con su técnico SEO o con la asistencia de Google.
Bloqueo por robots.txt (Opción menos agresiva) #
Podemos decirle a los principales crawlers que no rastreen ciertas zonas de la web, el problema es que si ya las han rastreado alguna vez en el pasado y la tienen guardada en su base de datos, la volverán a rastrear.
Puede intentar solicitar la eliminación de estas URL’s en Google Search Console para que las borre de su base de datos y evitar que se vuelvan a crawlear sino están en su sitemap.
Edite el fichero robots.txt de tu web (Si no existe, crealo) y agrega las siguientes líneas al comienzo del fichero:
User-agent: Googlebot
Disallow: /*?q=
Disallow: /*?selected_filters
Disallow: /*?order=
Disallow: /*?n=
Disallow: /*?p=
Disallow: /*?resultsPerPage=
Disallow: /*?productListView=
Disallow: /*?search_query=
Repita este bloque con tantos robots quiera añadir, por ejemplo, Bingbot, Ahrefs, etc.
Bloqueo por .htaccess (Opción agresiva) #
Como hemos dicho antes, en la opción del robots.txt, Google puede seguir crawleando su web aunque se especifique lo contrario provocando así que siga sobrecargando su servidor. Entonces, la forma de bloquear a Google, entre otros, directamente y que no sobrecargue su servidor es mediante .htaccess añadiendo este código al principio:
RewriteEngine On
RewriteCond %{QUERY_STRING} (q=|selected_filters|order=|n=|p=|resultsPerPage=|productListView=|search_query=) [NC]
RewriteCond %{HTTP_USER_AGENT} (Googlebot|bingbot|AhrefsBot) [NC]
RewriteRule ^.*$ – [F,L]
Esto hará que todas las peticiones de filtros por parte del crawler de Google o BingBot o Ahrefsbot (Añadir/quitar según necesidad) el servidor bloquee la petición con un 403 (Forbidden) lo cual denegará el acceso a la web y, por tanto, la carga en esa petición.
Bloqueo por CDN (Opción más agresiva) #
En caso de que nuestro dominio pase por un CDN, como por ejemplo CloudFlare, podemos añadir una regla al WAF extra a las que podamos tener para que directamente siquiera la petición con filtros llegue al servidor. De tal manera que, aunque bloqueemos por .htaccess como ejemplo anterior, la petición siquiera llegará a ser bloqueada por este porque no llegará al servidor.
(cf.client.bot) and (http.request.uri.query contains «q=» or
http.request.uri.query contains «p=» or
http.request.uri.query contains «selected_filters» or
http.request.uri.query contains «order=» or
http.request.uri.query contains «n=» or
http.request.uri.query contains «resultsPerPage» or
http.request.uri.query contains «productListView» or
http.request.uri.query contains «search_query»)
Con esa regla indicamos que cualquier petición hecha por un bot conocido por CloudFlare y que, además, contenga uno de esos filtros, bloquee la petición directamente desde CloudFlare sin que llegue siquiera al servidor.