Desactivar comentarios en WordPress por completo

Desmarcar «Permitir comentarios» apenas sirve. Así eliminas los comentarios de WordPress por completo: front, admin, XML-RPC y REST, en un solo lugar.

WordPress activa los comentarios en todas partes por defecto: cada entrada, cada página, cada tipo de contenido personalizado. Para un blog construido sobre la conversación, perfecto. Para un sitio de empresa, un portafolio o una landing page, los comentarios son puro pasivo: un imán de spam, una superficie de ataque y un goteo constante de trabajo en el admin a cambio de nada. El problema es que la solución obvia —desmarcar «Permitir comentarios»— apenas hace nada. Aquí te explico cómo eliminarlos de verdad, por completo y de forma reversible.

Lo esencial

  • Desmarcar «Permitir comentarios» solo afecta a las entradas nuevas: las existentes, el menú del admin, la base de datos y los pingbacks siguen ahí.
  • Eliminarlos por completo significa: desactivar en los tipos de contenido, cerrar los existentes, ocultar del admin y bloquear los endpoints XML-RPC + REST de comentarios.
  • El módulo funciona en todo el sitio o por tipo de contenido, así que puedes matar los comentarios en todas partes o solo en las páginas mientras los conservas en el blog.
  • Elimina la cabecera X-Pingback, desregistra el widget de comentarios recientes y redirige edit-comments.php, cerrando toda la superficie de spam y de amplificación DDoS.
  • Es reversible: apágalo y todo vuelve, sin código sobrante ni ajustes huérfanos. Solo «borrar todos los comentarios» es permanente.

¿Por qué no basta con desmarcar «Permitir comentarios»?

Porque Ajustes → Comentarios es mucho más débil de lo que aparenta. Desmarcar «Permitir comentarios» cambia el valor por defecto solo para las entradas futuras. Todo lo que ya existe en tu sitio conserva su comment_status = 'open', así que las entradas antiguas siguen aceptando comentarios a nivel de base de datos. El menú Comentarios permanece en tu admin, las tablas wp_comments y wp_commentmeta siguen ahí y —esto es lo importante— los pingbacks siguen funcionando a través de XML-RPC.

Esa última parte importa más allá del orden. Los formularios de comentarios son un blanco muy trillado para spam, XSS e intentos de inyección, y el endpoint de pingback de XML-RPC puede abusarse para amplificar ataques DDoS, usando tu sitio para atacar a otros. «Desactivar los comentarios» a medias deja todo eso activo.

Aquí tienes dónde siguen colándose los comentarios, y qué cierra cada hueco:

Dónde persisten los comentariosEl ajuste nativoQué hace el módulo
Entradas existentesComentarios solo afecta a las entradas nuevas; las viejas conservan comment_status abiertoCierra comentarios y pings en todas las entradas existentes
Interfaz del adminEl menú, las columnas y el metabox de comentarios permanecenOculta el menú, las columnas, el metabox y el widget del escritorio
Base de datoswp_comments y wp_commentmeta siguen ahíPuede borrar todos los comentarios y reiniciar el contador de cada entrada
Pingbacks XML-RPCSiguen funcionandoFiltra los métodos de comentarios de XML-RPC
API RESTEl endpoint de comentarios sigue abiertoBloquea la creación de comentarios vía REST
Head HTML / cabecerasEl enlace del feed de comentarios y X-Pingback se siguen emitiendoElimina el enlace del feed y la cabecera X-Pingback

¿Qué exige realmente eliminar los comentarios por completo?

Siete cosas distintas, y justo por eso hacerlo a mano en functions.php es tan propenso a errores:

  1. Cerrar comentarios y pingbacks en todas las entradas existentes.
  2. Quitar el soporte de comentarios de cada tipo de contenido (o los que elijas).
  3. Ocultar del admin el menú Comentarios, el widget del escritorio, las columnas y el metabox.
  4. Eliminar el enlace del feed de comentarios del head de tu HTML.
  5. Quitar la cabecera X-Pingback de las respuestas.
  6. Desregistrar el widget de comentarios recientes.
  7. Bloquear la creación de comentarios vía XML-RPC y la API REST.

Si te falta una sola, has dejado un hueco: un endpoint abierto, un menú rezagado, una base de datos que sigue llenándose de spam. Un módulo dedicado cierra las siete de una vez.

¿Cómo desactivas los comentarios con Blaminhor Essentials?

Para eliminar los comentarios por completo, desactiva el soporte de comentarios en tus tipos de contenido, cierra los comentarios de las entradas existentes, oculta la interfaz de comentarios en el admin y bloquea los endpoints XML-RPC y REST. En Blaminhor Essentials, activar el módulo Disable Comments hace todo eso de una vez —en todo el sitio o por tipo de contenido— y puede, si quieres, borrar todos los comentarios existentes.

En cuanto se activa, los comentarios quedan bloqueados en todo el sitio: comments_open y pings_open devuelven false, el soporte de comentarios se retira de tus tipos de contenido, el enlace del feed y la cabecera X-Pingback se eliminan, y el widget de comentarios recientes se desregistra.

El módulo Disable Comments: elección entre todo el sitio o por tipo de contenido, un interruptor para ocultar del admin y botones para cerrar o borrar los comentarios existentes. Una sola pantalla: elige el alcance, oculta la interfaz y limpia los comentarios existentes, sin código ni cirugía en functions.php.

En todo el sitio o solo en algunos tipos de contenido

No estás condenado al todo o nada. Déjalo en modo todo el sitio para desactivar los comentarios en toda la web, o cambia al modo por tipo de contenido y elige exactamente cuáles pierden los comentarios: elimínalos en páginas y productos mientras los conservas en las entradas del blog, por ejemplo.

Limpia el admin

Con «Ocultar del admin» (activado por defecto), todo rastro de comentarios desaparece de tu escritorio: el menú Comentarios se esfuma, las columnas de comentarios se van de los listados de entradas, el metabox se retira del editor, el widget del escritorio desaparece, y visitar edit-comments.php te devuelve al escritorio.

Bloquea las puertas traseras

Dos interruptores —ambos activados por defecto— cierran los endpoints que el front no deja ver: los métodos de comentarios de XML-RPC se filtran (matando el abuso de pingbacks) y la creación de comentarios vía API REST queda bloqueada. En modo por tipo de contenido, REST sigue disponible para los tipos que dejaste en paz y solo bloquea los desactivados.

Cierra, o borra, los comentarios existentes

  • Cerrar los comentarios existentes ejecuta una única actualización en la base de datos que pone comment_status y ping_status en cerrado en todas las entradas, y te dice cuántas cambió.
  • Borrar todos los comentarios vacía de forma permanente wp_comments y wp_commentmeta y reinicia el comment_count de cada entrada a cero.

¿Puedes reactivar los comentarios más adelante?

Sí: todo salvo el borrado es reversible. Desactiva el módulo y WordPress vuelve a su comportamiento de fábrica: los comentarios se reabren, los menús y widgets reaparecen, los endpoints regresan. Como el módulo trabaja únicamente a través de los propios hooks de WordPress, no deja código residual ni ajustes huérfanos en tu base de datos cuando está apagado. Si solo habías cerrado los comentarios existentes, seguirán cerrados, pero puedes reabrir los que quieras desde la pantalla de edición en lote.

Más ligero, más limpio, más seguro

Desactivar los comentarios no es cosmético. Encoge tu base de datos, recorta tu superficie de ataque, elimina consultas innecesarias y borra una tarea recurrente. Para cualquier sitio que no viva de la interacción con sus lectores, es uno de los trabajos de cinco minutos con mejor relación esfuerzo-beneficio que puedes hacer.

Disable Comments es una de las más de 20 herramientas de Blaminhor Essentials, gratuito y open source en WordPress.org.

Descargar Blaminhor Essentials

– blaminhor

FAQ

¿Desactivar los comentarios mejora la seguridad y el rendimiento?

Sí. Los formularios de comentarios son un blanco clásico de spam e intentos de inyección, y los endpoints de XML-RPC/pingback pueden abusarse para amplificar ataques DDoS. Eliminar los comentarios reduce esa superficie de ataque, evita que el spam infle wp_comments y wp_commentmeta, y elimina consultas y ruido en el admin que nunca usas.

¿Cómo desactivo los comentarios sin un plugin?

Se puede, pero requiere siete ediciones separadas en functions.php: cerrar los comentarios en las entradas existentes, quitar el soporte de comentarios por tipo de contenido, ocultar la interfaz del admin, eliminar el enlace del feed y la cabecera X-Pingback, desregistrar el widget y bloquear XML-RPC y REST. Si te saltas una, queda un hueco abierto; por eso un módulo dedicado es más seguro.

¿Cómo freno el spam en los comentarios sin desactivarlos?

Si de verdad quieres conversación, mantén los comentarios activos pero añade moderación: exige aprobación antes de publicar, activa Akismet o un filtro antispam comparable, añade un honeypot o CAPTCHA, y cierra los comentarios automáticamente en entradas con más de cierto número de días. Desactivarlos solo es la decisión correcta cuando nunca quisiste comentarios.

¿Desactivar los comentarios perjudica el SEO?

No. Los comentarios pueden aportar texto fresco con palabras clave, pero las secciones llenas de spam o vacías logran lo contrario: contenido pobre, enlaces salientes dudosos y páginas más lentas. En un sitio de empresa, un portafolio o una landing page que nunca aloja conversación real, quitar los comentarios es neutro o positivo para el SEO y recorta tu superficie de rastreo.

¿Cómo elimino el mensaje «Los comentarios están cerrados»?

Cerrar los comentarios suele dejar temas que imprimen «Los comentarios están cerrados» donde antes estaba el formulario. Quitar el soporte de comentarios del tipo de contenido por completo —no solo cerrar el hilo— impide que la plantilla de comentarios se renderice, y esa línea desaparece. El módulo Disable Comments hace exactamente esto, así que no queda ningún mensaje residual.

¿Desactivar los comentarios borrará los que ya tengo?

No, salvo que se lo pidas. Cerrar los comentarios solo bloquea los nuevos y oculta los hilos; los existentes permanecen intactos en la base de datos y reaparecen si los reactivas. Borrarlos es una acción aparte y deliberada que pide confirmación, porque a diferencia de todo lo demás, vaciar wp_comments es permanente.

blaminhor Construyo lo que falta.

Comentarios