La mayoría de los sitios con WordPress tienen los comentarios bloqueados. El motivo es sencillo: el spam. Hay bot que pueden enviar miles de comentarios a una entrada en pocos minutos, y eso puede acabar generando problemas serios (hace 15 años derrumbaron con esa técnica, creando una tabla de comentarios de varias gigas de tamaño en muy pocas horas).
El caso es que a veces, aún con los comentarios bloqueados, muchos blogs continúan mostrando spam en su panel de administración. Los comentarios spam en WordPress, incluso cuando tienes los comentarios desactivados y no hay formulario visible, pueden ser realmente molestos y potencialmente dañinos para tu sitio. Esta situación puede ocurrir por varias razones, y aquí te detallo algunas medidas que puedes tomar para resolver este problema:
-1. Revisa la configuración de discusión de WordPress
Aunque ya lo hayas hecho, es crucial verificar que la configuración de discusión de WordPress esté configurada correctamente para asegurarte de que no se permitan comentarios en nuevas publicaciones. Ve a Ajustes > Discusión en tu panel de administración de WordPress y asegúrate de que la opción ‘Permitir que las personas envíen comentarios en nuevas entradas’ esté desactivada.
-2. Revisa las configuraciones de los Temas y Plugins
Algunos temas o plugins pueden sobreescribir las configuraciones predeterminadas de WordPress, incluida la gestión de comentarios. Asegúrate de que no haya ninguna configuración dentro de tu tema o plugins que pueda estar permitiendo comentarios.
-3. Bloquea los comentarios a nivel de Base de Datos
Si los comentarios siguen llegando, puedes optar por una solución más técnica y ejecutar una consulta SQL para desactivar los comentarios en todas las publicaciones y páginas existentes. Esto implica acceder a tu base de datos a través de phpMyAdmin y ejecutar una consulta SQL para cerrar los comentarios en todas las entradas. Sin embargo, este paso debe realizarse con cuidado y es recomendable hacer una copia de seguridad de tu base de datos antes de proceder.
Aquí te proporciono las consultas SQL que necesitas. Estas consultas desactivarán los comentarios y los pings (trackbacks y pingbacks) en todas tus publicaciones y páginas:
- Desactivar comentarios en todas las publicaciones y páginas: UPDATE wp_posts SET comment_status = ‘closed’ WHERE post_status = ‘publish’;
- Desactivar pings (trackbacks y pingbacks) en todas las publicaciones y páginas: UPDATE wp_posts SET ping_status = ‘closed’ WHERE post_status = ‘publish’;
Recuerda que, dependiendo de la configuración de tu instalación de WordPress, el prefijo de la tabla (por defecto es wp_) podría ser diferente. Asegúrate de reemplazar wp_ con el prefijo real de tus tablas si utilizas uno distinto.
Estas consultas SQL básicamente actualizan la configuración de estado de comentarios y pings de todas tus publicaciones y páginas a ‘cerrado’, lo que significa que no se permitirán nuevos comentarios ni pings en ellas. Sin embargo, esta acción no eliminará los comentarios existentes; solo evitará futuros comentarios.
Si necesitas también eliminar todos los comentarios existentes (lo cual es una acción más drástica y permanente), podrías usar la siguiente consulta:
- DELETE FROM wp_comments;
Y para limpiar las metadatas asociadas a esos comentarios:
- DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
Advertencia: Sé muy cuidadoso al ejecutar estas últimas dos consultas, ya que eliminarán permanentemente todos los comentarios de tu sitio. Siempre asegúrate de tener una copia de seguridad antes de realizar cambios directos en la base de datos.
-4. Utiliza plugins anti-Spam
Existen varios plugins eficaces para controlar el spam en WordPress. Plugins como Akismet, que viene preinstalado con WordPress, pueden ayudar a filtrar y bloquear comentarios spam. Otros plugins populares incluyen Anti-Spam Bee y WPBruiser. Estos plugins pueden identificar y bloquear el spam de manera efectiva, incluso si tu sitio parece estar cerrado a los comentarios.
Aun así, tened en cuenta que estos plugins no eliminan el contenido de la base de datos, no solucionan el verdadero problema.
-5. Modifica el archivo .htaccess
Para los comentarios que se envían directamente a través de scripts, puedes intentar bloquear el acceso al archivo wp-comments-post.php mediante el archivo .htaccess. Añadir reglas específicas en tu archivo .htaccess puede prevenir que los bots accedan a este archivo y envíen comentarios spam.
-Ejemplos de modificaciones-
Bloquear el acceso directo al archivo wp-comments-post.php:
Para prevenir que los bots envíen comentarios spam directamente a través del archivo wp-comments-post.php, puedes agregar las siguientes líneas al archivo .htaccess:
<Files wp-comments-post.php>
Order Deny,Allow
Deny from all
</Files>
Prevenir el Spam de Comentarios:
Si identificas patrones específicos en las direcciones IP o en los agentes de usuario de los spammers, puedes usar el archivo .htaccess para bloquearlos. Por ejemplo, para bloquear una dirección IP específica:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.000$
RewriteRule .* – [F]
</IfModule>
Reemplaza 123\.456\.789\.000 con la dirección IP que deseas bloquear.
-6. Revisa la configuración de permisos de usuario
Asegúrate de que solo los usuarios registrados puedan comentar (si decides permitir comentarios en el futuro) y revisa los roles de los usuarios para asegurarte de que no estén configurados de manera que permitan a usuarios no deseados publicar comentarios.
Implementar una o varias de estas soluciones debería ayudarte a controlar y prevenir la llegada de comentarios spam a tu sitio WordPress, incluso cuando los comentarios estén oficialmente ‘bloqueados’. Es importante recordar que la seguridad y la administración de un sitio web son tareas continuas, por lo que revisar y actualizar tus configuraciones y plugins regularmente es clave para mantener tu sitio seguro y limpio de spam.