Cómo reducir el spam en WordPress: .htaccess, plugins y firewall

Cómo reducir el spam en WordPress con .htaccess plugins y firewall en 2026

El spam en WordPress no ha muerto, ha mutado. Los bots modernos son más sofisticados que los de 2012, pero las técnicas para combatirlos también. El clásico truco del .htaccess sigue funcionando en servidores Apache, pero ya no es suficiente por sí solo. Necesitas una estrategia en capas: desde el servidor hasta el WAF, pasando por plugins especializados y servicios en la nube.

En este tutorial repasamos todas las opciones: las reglas .htaccess probadas (con el bloque de código listo para copiar), su equivalente en nginx, y las alternativas modernas más eficaces hoy.

Por qué el spam en WordPress sigue siendo un problema

Cada instalación de WordPress publica el mismo endpoint de comentarios (wp-comments-post.php), el mismo archivo de login (wp-login.php) y el mismo protocolo XML-RPC. Los bots los conocen de memoria y los atacan sin parar. El resultado: comentarios basura, registros de usuario falsos y peticiones a formularios de contacto que colapsan tu bandeja de entrada.

Tres frentes que hay que blindar de forma distinta:

  • Spam de comentarios: bots que envían comentarios automáticos apuntando directamente a wp-comments-post.php.
  • Spam de formularios de contacto: peticiones POST a Contact Form 7, Gravity Forms, WPForms, etc.
  • Spam de registros: cuentas de usuario falsas creadas en masa, especialmente en sitios con registro público o tiendas WooCommerce.

.htaccess: el primer escudo a nivel de servidor

El archivo .htaccess permite interceptar peticiones antes de que WordPress las procese. Eso lo convierte en la primera línea de defensa, porque el bot ni siquiera llega a ejecutar PHP. El coste de servidor es mínimo y el efecto, inmediato.

El truco clásico consistía en bloquear peticiones POST a wp-comments-post.php que no viniesen del propio dominio. Lo enriquecemos aquí con protección para XML-RPC, wp-login.php y user-agents vacíos:

# ── ANTI-SPAM .htaccess para WordPress ─────────────────────────────────
# Sustituye "tudominio.com" por tu dominio real

# 1. Bloquear bots que envían comentarios sin pasar por la web
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} POST
  RewriteCond %{REQUEST_URI} .wp-comments-post.php$
  RewriteCond %{HTTP_REFERER} !.*tudominio.com.* [OR]
  RewriteCond %{HTTP_USER_AGENT} ^$
  RewriteRule ^.*$ - [F,L]
</IfModule>

# 2. Bloquear acceso directo a XML-RPC (si no lo usas)
<Files xmlrpc.php>
  Require all denied
</Files>

# 3. Limitar wp-login.php a tu IP (opcional, recomendado en producción)
# <Files wp-login.php>
#   Require ip 203.0.113.0/24
# </Files>

# 4. Bloquear user-agents conocidos de spam bots
<IfModule mod_rewrite.c>
  RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|MJ12bot|DotBot|SemrushBot|spambot|harvester) [NC]
  RewriteRule ^.*$ - [F,L]
</IfModule>

# 5. Bloquear referrer spam clásico
<IfModule mod_rewrite.c>
  RewriteCond %{HTTP_REFERER} (semalt.com|buttons-for-website.com|darodar.com) [NC]
  RewriteRule ^.*$ - [F,L]
</IfModule>
# ─────────────────────────────────────────────────────────────────────────Lenguaje del código: PHP (php)

Importante: el bloque 1 usa [F,L] (Forbidden + Last) en lugar del antiguo R=301. El redirect 301 a la IP del bot era una técnica de 2012 que hoy puede causar loops en CDN. [F] devuelve un 403 limpio y es el estándar recomendado.

Si quieres profundizar en otras directivas .htaccess para tu WordPress, revisa la guía completa de .htaccess en WordPress: 15 trucos útiles y cabeceras de seguridad, donde cubrimos caché, redirecciones y cabeceras HTTP.

Si tu servidor usa nginx, el .htaccess no aplica

⚠️ Nginx no lee .htaccess. Si tu hosting usa nginx (LiteSpeed nativo, algunos planes de Cloudways, Kinsta, Flywheel…), estas reglas no tendrán ningún efecto. El equivalente va en el bloque server {} de tu nginx.conf o en el panel de configuración del hosting:

location = /wp-comments-post.php {
    if ($http_referer !~ "tudominio.com") {
        return 403;
    }
    if ($http_user_agent = "") {
        return 403;
    }
    fastcgi_pass php_backend;
}

location = /xmlrpc.php {
    deny all;
}

En LiteSpeed (cPanel), sí se leen los .htaccess a través de su capa de compatibilidad, así que el bloque anterior funciona igual.

Plugins anti-spam: la segunda capa

El .htaccess bloquea bots primitivos. Los bots modernos simulan un navegador real, tienen JavaScript activo y envían el referer correcto. Para ellos necesitas plugins que analicen el contenido de la petición, no solo sus cabeceras.

Para spam de comentarios

  • Akismet: sigue siendo el estándar de facto. Analiza cada comentario contra su base de datos en tiempo real. Gratuito para uso personal, de pago para empresas. Eficacia alta contra bots genéricos, más baja contra spam de nicho específico.
  • Antispam Bee: alternativa europea sin cookies de terceros ni transferencias de datos fuera de la UE. Clave si tu sitio está bajo RGPD estricto. Muy ligero y con 0 dependencias externas.
  • CleanTalk: servicio en la nube que protege comentarios, formularios y registros desde un único plugin. Tiene una tasa de falsos positivos baja y el plan básico cuesta alrededor de 8€ al año.

Para spam en formularios de contacto

  • hCaptcha: el sustituto de Google reCAPTCHA con mejor privacidad. Compatible con Contact Form 7, Gravity Forms, WPForms y Elementor Forms mediante add-on oficial.
  • Cloudflare Turnstile: el CAPTCHA invisible de Cloudflare. No muestra ningún rompecabezas al usuario, analiza el comportamiento en segundo plano. Gratuito y sin límite de peticiones. Para integrarlo en WordPress puedes usar el plugin Simple Cloudflare Turnstile.
  • Honeypot en CF7: Contact Form 7 incluye un campo honeypot nativo (activa la opción «Acceptance» como honeypot). Sin coste computacional, eficaz contra bots simples.

Para spam de registros de usuario

  • WPBruiser (No-Captcha anti-Spam): protege el formulario de registro y comentarios sin CAPTCHA visible. Analiza patrones de comportamiento del bot.
  • Stop Spammers Security: bloquea registros sospechosos basándose en listas negras de IP, dominios de email temporales y patrones de comportamiento.
  • En WooCommerce: activar la verificación de email al registro (Ajustes > Cuentas y privacidad) reduce drásticamente los registros basura.

Firewall WAF: la tercera capa (y la más potente)

Un WAF (Web Application Firewall) analiza el tráfico antes de que llegue a tu servidor. Es la defensa más robusta porque elimina el problema de raíz.

Wordfence

Wordfence incluye un WAF a nivel de aplicación que se activa dentro de PHP. No tan potente como uno a nivel de red, pero suficiente para la mayoría de sitios. Bloquea IPs con comportamiento de bot, peticiones malformadas y payloads de inyección. La versión gratuita recibe las reglas con 30 días de retraso respecto a la premium.

Cloudflare Bot Management

Si pones tu sitio detrás de Cloudflare (el plan gratuito funciona), tienes acceso a Bot Fight Mode que bloquea bots conocidos sin tocar tu configuración de WordPress. El plan Pro añade reglas WAF más granulares. El plan Enterprise incluye Bot Management completo con detección de bots sofisticados.

Para spam en formularios, Cloudflare Turnstile (mencionado arriba) se puede desplegar sin cambiar de plan: es gratuito y funciona con cualquier hosting.

La seguridad del código que instalas también cuenta: mantener los plugins actualizados reduce la superficie de ataque. Puedes ver cómo WP Beacon vigila la cadena de suministro de plugins de WordPress para detectar dependencias comprometidas antes de que sean un problema.

Estrategia recomendada: combinar capas

No existe una bala de plata. La defensa efectiva combina:

CapaHerramientaQué bloqueaCoste
Servidor.htaccess / nginxBots sin referer, XML-RPCGratis
RedCloudflare (Bot Fight)Bots conocidos, DDoSGratis / Pro
AplicaciónAkismet o Antispam BeeComentarios spamGratis (personal)
FormulariosCloudflare Turnstile / hCaptchaEnvíos automáticosGratis
WAF completoWordfence PremiumAtaques de todo tipo~119$/año

Para sitios pequeños: .htaccess + Cloudflare gratuito + Akismet o Antispam Bee cubre el 90% de los casos sin coste adicional. Para sitios medianos o con presión alta: añade Wordfence Premium o CleanTalk y Cloudflare Turnstile en formularios.

Y si el spam empieza a impactar en la velocidad de carga (muchas peticiones bloqueadas consumen recursos), revísa también la guía de rendimiento de WordPress: la caché bien configurada reduce la carga que llega a PHP incluso cuando hay tráfico de bots.

Preguntas frecuentes sobre spam en WordPress

¿El .htaccess anti-spam afecta al SEO o a usuarios reales?

No, si está bien configurado. Las reglas bloquean peticiones POST sin referer correcto o con user-agent vacío. Los usuarios reales siempre tienen referer (vienen de alguna página de tu sitio) y user-agent (su navegador). Googlebot y otros crawlers legítimos tampoco envían comentarios, así que no se ven afectados.

¿Debo deshabilitar XML-RPC completamente?

Depende. XML-RPC lo usan aplicaciones móviles de WordPress, Jetpack, y algunos servicios de publicación remota. Si no usas ninguno de estos, bloquearlo con <Files xmlrpc.php> Require all denied </Files> es lo más seguro. Si usas Jetpack, no lo bloquees del todo: configura Cloudflare para bloquear solo las peticiones con más de X intentos por minuto.

¿Akismet sigue siendo fiable?

Sí. Akismet lleva desde 2005 aprendiendo de millones de sitios WordPress. Su base de datos de spam es enorme y la tasa de falsos positivos es muy baja. El único punto débil: para spam muy específico de nicho (comentarios en idiomas poco comunes, spam de nicho de foro privado) puede escaparse alguno. Complementar con Antispam Bee en esos casos ayuda.

¿Cloudflare Turnstile reemplaza a hCaptcha?

Son alternativas con enfoque diferente. Turnstile es completamente invisible para el usuario (mejor UX, especialmente en móvil) y gratuito sin límite de peticiones. hCaptcha puede mostrar un desafío visual cuando detecta algo sospechoso, lo que da una capa extra. Para la mayoría de sitios, Turnstile es suficiente y más cómodo para el usuario. Usa hCaptcha si tu hosting ya tiene integración nativa o si necesitas más control sobre los desafíos.

¿Qué hago si el spam de registros de usuario me desborda en WooCommerce?

Primero activa la verificación de email en WooCommerce > Ajustes > Cuentas y privacidad. Luego añade Turnstile o hCaptcha al formulario de registro. Si el problema persiste, Stop Spammers Security permite bloquear dominios de email temporales (como mailinator.com o guerrillamail.com) que son los que usan los bots para registros masivos.

David Carrero Fernández-Baillo

Experimentando con un sitio web sobre WordPress, este popular gestor de contenidos, entre otros muchos proyectos.

Te puede interesar...

    Comments are closed

    WordPress Directo
    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.