Hushfort

¿Cómo detecto y bloqueo los bots maliciosos y el Googlebot falso en WordPress?

Por Eureka Studio · Actualizado

Respuesta corta

Un Googlebot real llega desde los rangos de IP que publica Google; cualquiera que use ese nombre desde otra dirección es falso y WordPress puede bloquearlo. Para el resto de bots maliciosos, da a cada IP un presupuesto de peticiones por minuto en el que las peticiones costosas, como las búsquedas y los 404, cuesten más; responde con un 429 breve a las IP que lo superen y deja pasar siempre el pago.

Pasos

  1. 1Paso 1

    Detecta a los impostores en tu tráfico

    Muchos bots se presentan como Googlebot porque los sitios casi nunca lo bloquean. El nombre se copia gratis; la dirección IP, no. Con las listas oficiales de Google y Bing cargadas, Hushfort marca como bot de búsqueda falso a cualquier «Googlebot» que llegue desde otra dirección.

    Bloqueos recientes de la Protección de carga: un bot de búsqueda falso que dice ser Googlebot desde 203.0.113.120 y dos IP que superan su presupuesto, todo registrado en modo Supervisión
  2. 2Paso 2

    Activa la Protección de carga en modo Supervisión

    En Hushfort, abre Protección de carga y actívala. El Modo empieza en «Solo registrar — modo Supervisión (recomendado para empezar)»: registra qué IP alcanzarían el límite, sin bloquear a nadie. Deja activados los Bots de búsqueda falsos.

    Protección de carga activada en modo Supervisión con Bots de búsqueda falsos activado
  3. 3Paso 3

    Fija un presupuesto que valore las peticiones con justicia

    Cada IP recibe un Presupuesto por IP y minuto (120 puntos por defecto). Ver una página cuesta 1, una búsqueda 5, una llamada XML-RPC 10, y un 404 suma 4. El pago y las notificaciones de las pasarelas de pago son gratis.

    Presupuesto por IP y minuto de 120 puntos con la lista de puntos, duración del bloqueo de 10 minutos, bots de búsqueda falsos y rastreo de 404 activados
  4. 4Paso 4

    Las IP que superan el presupuesto hacen una breve pausa

    En modo Proteger, una IP que agota su presupuesto recibe una página 429 «Demasiadas peticiones» durante la Duración del bloqueo, 10 minutos por defecto. Los bots de búsqueda verificados quedan exentos y el pago sigue funcionando.

    La búsqueda de un visitante que ha superado el presupuesto recibe esta respuesta: Demasiadas peticiones en poco tiempo. Vuelve a intentarlo dentro de unos minutos.
  5. 5Paso 5

    Revisa el registro y pasa a Proteger

    Después de unos días en modo Supervisión, revisa los Bloqueos recientes. Si no aparecen visitantes reales, pon el Modo en «Proteger — detener con un 429 las IP que superen el presupuesto» y guarda.

    Modo de la Protección de carga cambiado a Proteger — detener con un 429 las IP que superen el presupuesto, y guardado

Por qué importa

No todos los días lentos son un éxito de tráfico. Algunos bots rastrean un sitio con mucha más intensidad que cualquier persona: machacan el buscador con palabras aleatorias, prueban cientos de archivos que no existen o se hacen pasar por Googlebot para que nadie se atreva a bloquearlos. Cada una de esas peticiones se salta la caché de página y obliga a WordPress y a la base de datos a trabajar de verdad.

En un hosting compartido eso significa páginas lentas, límites de CPU y, a veces, una cuenta suspendida. En una tienda significa clientes reales esperando mientras un bot lanza búsquedas.

El truco está en distinguir las peticiones caras de las baratas. Contar «peticiones por minuto» trata igual una visita a una página en caché que una búsqueda sin caché. Ponerles precio según su coste te permite ser generoso con los visitantes reales y estricto con los patrones que solo producen los bots.

Errores habituales

  • Bloquear por user agent. Cualquiera puede decir que es Googlebot, y bloquear el nombre bloquea también al real. Verifica por IP.
  • Un único límite para todo. Una regla plana de peticiones por minuto o deja pasar las avalanchas de búsquedas o atrapa a clientes que navegan rápido. Ponles precio a las peticiones según su coste.
  • Bloquear el pago. Un límite de frecuencia que puede detener una notificación de pago o un pago te cuesta dinero de verdad. Deja esas peticiones libres.
  • Bloqueos largos. Un bloqueo de un día sobre una IP compartida puede dejar fuera a una oficina entera o a una red móvil. Las pausas cortas bastan para romper el ritmo de un bot.
  • Esperar que un plugin detenga las avalanchas de red. Un tráfico capaz de llenar la conexión del servidor nunca llega a WordPress. Eso es trabajo de tu CDN.

Sin plugin

Verifica Googlebot a mano. Para una IP sospechosa de tu registro de accesos:

host 66.249.66.1
# 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
host crawl-66-249-66-1.googlebot.com
# crawl-66-249-66-1.googlebot.com has address 66.249.66.1

Las dos direcciones tienen que coincidir y terminar en googlebot.com o google.com. Google también publica los rangos de IP de sus rastreadores en un archivo JSON con el que puedes compararlas.

Limita la frecuencia en el servidor. En Nginx puedes poner un tope de peticiones por IP:

# in the http block
limit_req_zone $binary_remote_addr zone=perip:10m rate=60r/m;

# in the server block
location / {
    limit_req zone=perip burst=20 nodelay;
    limit_req_status 429;
    try_files $uri $uri/ /index.php?$args;
}

Las reglas de servidor son rápidas, pero no conocen WordPress. No distinguen el pago de una búsqueda, necesitan un acceso root que la mayoría de los planes de hosting no dan, y mantener a mano la lista de IP de Google es tedioso. Un firewall de CDN es otra buena opción si el tuyo te permite escribir reglas.

Si algo sale mal

  • Un visitante real ha recibido un 429. Busca la IP en el registro. Si es una oficina o una herramienta que usas, añádela a la lista de permitidas. Plantéate subir el presupuesto por minuto.
  • Search Console informa de errores de rastreo. Los rastreadores reales de Google están exentos, así que comprueba que los errores no vienen de una regla del servidor o de la CDN ajena a Hushfort.
  • El sitio sigue desbordado. Puede que la avalancha sea demasiado grande para cualquier plugin. Activa el modo de ataque de tu CDN. El modo de emergencia de Hushfort puede activar por ti el modo «Under Attack» de Cloudflare, con tu propia clave de API, y desactivarlo después.

Con Hushfort

La Protección de carga forma parte de Hushfort Pro, el complemento de pago que se instala sobre Hushfort Security, el plugin de seguridad gratuito para WordPress.

La capa de Protección de carga de Hushfort da a cada IP un presupuesto de 120 puntos por minuto por defecto. Ver una página cuesta 1; admin-ajax GET, 1 y POST, 2; REST GET, 2 y POST, 3; añadir al carrito, 3; una búsqueda, 5; otros POST, 5; XML-RPC, 10; y un 404 suma 4. El pago, las notificaciones de las pasarelas de pago, WP-Cron y las pantallas de wp-admin son gratis.

  • Las IP que superan el presupuesto reciben un 429 breve y una pausa de 10 minutos.
  • Se bloquean los Googlebot y Bingbot falsos, es decir, los que usan ese nombre desde una IP que no está en la lista oficial. Los bots de búsqueda verificados quedan exentos. La única descarga externa son las listas públicas de IP de los rastreadores de Google y Bing.
  • El modo de emergencia puede activar el modo «Under Attack» de Cloudflare con tu propia clave de API.
  • Empieza en modo Supervisión.

En nuestras propias pruebas, una IP que había superado su presupuesto completó igualmente el pago mientras sus otras peticiones recibían un 429.

Preguntas frecuentes

¿Cómo sé si una visita de Googlebot es real?

Comprueba la IP. Google publica los rangos de IP que usan sus rastreadores, y una búsqueda DNS inversa sobre la IP de un Googlebot real termina en googlebot.com o google.com. Un user agent de Googlebot desde cualquier otra IP es falso.

¿Bloquear los Googlebot falsos perjudica mi SEO?

No, si la verificación se hace por IP. Los rastreadores reales de Google y Bing se reconocen y quedan exentos, así que solo se rechaza a los impostores.

¿Qué significa un código de estado 429?

Significa Too Many Requests (demasiadas peticiones). Le indica al cliente que vaya más despacio. El 429 de Hushfort dura poco, así que una persona real que solo iba muy rápido puede continuar después de la pausa.

¿Puede un plugin detener un ataque DDoS?

Uno a nivel de red, no. Ese tráfico satura el servidor antes de que WordPress llegue a ejecutarse. Ahí el verdadero escudo es una CDN como Cloudflare; un plugin se ocupa de las avalanchas que llegan a WordPress.

¿Por qué las búsquedas y los 404 cuestan más?

Una búsqueda ejecuta una consulta a la base de datos y un 404 suele ser un escáner buscando archivos. Ambos le cuestan a tu servidor mucho más que ver una página en caché.

Informar de un error o pedir una función

Tu mensaje llega directamente al equipo que desarrolla Hushfort.

¿De qué se trata?

Solo lo usamos para responderte.

Usamos estos datos solo para responderte. Privacidad