Bastionado

Comentarios HTML y etiqueta generator: borra las huellas de WordPress

Comentarios HTML y etiqueta generator: borra las huellas de WordPress

Abre el código fuente de tu página de inicio: es muy probable que leas «This site is optimized with the Yoast SEO plugin v28.8», «Site Kit by Google 1.190.0» o «Elementor 4.3.5». Estas firmas nombran plugins que solo existen para WordPress, a menudo con su número de versión. Este artículo enumera lo que escriben los plugins habituales en tus páginas, explica cómo lo elimina Masquerade Security (versión gratuita) y cómo comprobarlo tú mismo.

Lo que los plugins escriben en tu código fuente

Dos tipos de huellas se esconden en el HTML que recibe cada visitante:

  • La etiqueta generator: <meta name="generator" content="...">, prevista por el HTML para nombrar el software que generó la página. WordPress pone ahí su versión, y también Site Kit, Elementor o WooCommerce.
  • Los comentarios HTML: <!-- ... -->, invisibles en pantalla pero legibles en el código fuente. Los plugins de SEO enmarcan con ellos sus etiquetas, los de estadísticas firman su código de seguimiento y las cachés anotan qué herramienta guardó la página.
Dos extractos de la misma cabecera HTML. Antes de la ocultación: comentarios de Yoast SEO 28.8 y de Site Kit, etiquetas generator de WordPress, de Site Kit by Google 1.190.0 y de Elementor 4.3.5, resaltados en rojo. Después de la ocultación: solo quedan el título, el script de Google y la etiqueta generator de Joomla!, resaltada en verde.
La misma cabecera, vista por un visitante anónimo, sin y con la ocultación (extracto simplificado).

Estas líneas no le sirven a ningún visitante. Varios desarrolladores prevén un filtro para quitarlas, pero rara vez una opción visible.

Por qué importan estas huellas

Las herramientas de detección leen precisamente estas líneas. Como explicábamos en nuestro artículo sobre el fingerprinting de WordPress, basta una sola señal para convencerlas:

  • Revelan WordPress. En las definiciones de Wappalyzer (proyecto webappanalyzer), el comentario de Yoast SEO basta para concluir que es WordPress. Una etiqueta generator de Elementor o de Site Kit lo dice con la misma claridad: estos plugins solo existen para WordPress.
  • Dan números de versión. Las mismas definiciones extraen la versión de Yoast SEO, Elementor y Site Kit. Una versión exacta se compara en segundos con las bases públicas de vulnerabilidades; de ahí la importancia de vigilar las vulnerabilidades de tus plugins.
  • Enumeran tus plugins sin ninguna petición adicional. WPScan tiene un detector dedicado que lee todos los comentarios HTML de la página y los compara con los patrones conocidos de cada plugin.
  • Contradicen la imitación. Un sitio que anuncia Joomla! en su etiqueta generator pero conserva un comentario de Rank Math queda al descubierto ante cualquier curioso que mire el código fuente.

Quitar estas huellas no corrige ninguna vulnerabilidad: reduce lo que los bots aprenden con una simple visita. Detallamos lo que la ocultación puede y no puede hacer en ocultar WordPress: lo que aporta y lo que no hace.

Lo que elimina Masquerade Security, plugin por plugin

Estas son las huellas que elimina la versión gratuita, verificadas en el código de cada plugin y, en las filas marcadas «probado», en un sitio real. En la columna «Eliminado por», «oficial» designa el ajuste previsto por el desarrollador y «filtro», el filtro de salida descrito más abajo.

PluginHuella eliminadaEliminado porPáginas en caché
Yoast SEO (probado, 28.8)Comentarios optimized with the Yoast SEO plugin v{version}, Premium incluidoOficial, filtro como respaldoLimpias
Rank Math (probado)Comentarios Search Engine Optimization by Rank Math, también traducidosOficial y filtroLimpias
All in One SEOGenerator All in One SEO (AIOSEO) {version} y comentariosOficial (etiqueta), filtro (comentarios)Limpias
The SEO FrameworkComentarios The SEO Framework by Sybre Waaijer, también traducidosOficial y filtroLimpias
Site Kit by Google (probado, 1.190.0)Generator Site Kit by Google {version}, comentarios added by Site KitOficial (etiqueta), filtro (comentarios)Limpias
MonsterInsights, ExactMetrics, GTM4WP, Matomo, píxeles de Meta, JetpackComentarios firmados, con la versión en MonsterInsights y ExactMetricsFiltroLimpias
WP Statistics, ComplianzComentarios firmadosOficial y filtroLimpias
WP Super Cache (probado)Cached page generated by WP-Super-Cache, Dynamic page generated in...Oficial (como desmarcar «Cache Status Messages»)Limpias, archivo de caché verificado
LiteSpeed Cache (probado, 7.9.2)Page cached by LiteSpeed Cache {version}, Page optimized by LiteSpeed CacheOficial y último filtro de la cachéLimpias
W3 Total Cache, WP Fastest Cache, WP-OptimizeComentarios de caché firmadosOficial (y filtro para WP-Optimize)Limpias (WP-Optimize: salvo con WP_DEBUG)
Hummingbirdcached by the Hummingbird Performance plugin v{version}Último filtro de la cachéLimpias
WP RocketThis website is like a Rocket... WP RocketConstante oficialSustituido por un texto genérico
BreezeCache served by breeze CACHENo eliminadoNo
Elementor (probado, 4.3.5)Generator Elementor {version}; features: ...; settings: ...Oficial («Generator Tag», ajuste guardado intacto) y filtroLimpias
WPBakery, Slider Revolution, Divi, ReduxGenerator con el nombre y a menudo la versiónFiltroLimpias
WooCommerce, WPMLGenerator WooCommerce {version}, WPML ver:{version}Módulo Identidad (WooCommerce), filtro (WPML)Limpias
El propio WordPressGenerator, comentarios que citan WordPress, wp-content, wp-json...Módulo Identidad y filtroLimpias
Los textos de WPBakery proceden de su documentación; los de Slider Revolution y Divi no se han podido verificar en el código. SEOPress y Slim SEO no escriben nada público.

Otros nombres se reconocen por precaución, sin verificarlos uno a uno en el código: Avada, Oxygen, Bricks, Beaver Builder, Astra, Kadence, Smush o Polylang, por ejemplo.

Cómo se elimina: primero el ajuste oficial

El plugin aplica tres métodos, en este orden:

  1. El ajuste oficial de cada plugin: un filtro, una opción o una constante previstos por su desarrollador (por ejemplo wpseo_debug_markers para Yoast SEO o litespeed_comment para LiteSpeed Cache). Es el método más fiable y también actúa sobre la página que guarda la caché. Tus ajustes guardados no cambian.
  2. Un filtro de salida sobre la página HTML, para todo lo que no tiene ajuste. Solo afecta a las páginas públicas pedidas en GET o HEAD (ni la administración, ni AJAX, la API REST, los feeds, los sitemaps o robots.txt). Por encima de 4 MB o ante cualquier error, la página se envía tal cual.
  3. El último filtro de la caché, para LiteSpeed Cache y Hummingbird, que añaden su comentario después del filtro de salida.

El orden importa: en nuestras pruebas sin los ajustes oficiales, el filtro de salida por sí solo eliminaba las huellas de Yoast SEO, Rank Math, Site Kit y Elementor, pero no las de LiteSpeed Cache, que se añaden después. La detección se basa en los nombres de marca, no en frases; por eso también se eliminan los comentarios traducidos por Rank Math, Site Kit o The SEO Framework.

Esquema en dos partes. Arriba, los tres métodos por orden: ajuste oficial del plugin, filtro de salida sobre la página, último filtro de la caché para LiteSpeed Cache y Hummingbird. Abajo, tres columnas: lo que se elimina (etiquetas generator, comentarios firmados, también traducidos), lo que se conserva (generator imitado, scripts y JSON-LD, comentarios condicionales, marcas de las cachés, comentarios neutros salvo con la opción) y lo que queda fuera del alcance (Breeze, comentario genérico de WP Rocket, páginas ya en caché, cabeceras HTTP, clases CSS, direcciones de archivos).
Tres métodos, en este orden, y la frontera entre lo que se elimina, se conserva o queda fuera del alcance.

Lo que se conserva a propósito

Para no romper nada, se mantienen:

  • la etiqueta generator del software imitado (nivel 2 o superior del módulo Identidad), por ejemplo Joomla! - Open Source Content Management;
  • todo el contenido de las etiquetas script (JSON-LD incluido), style, pre, textarea, svg y template;
  • los comentarios condicionales de Internet Explorer (<!--[if ...]>);
  • las marcas que necesitan las cachés: noptimize, mfunc, mclude, dynamic-cached-content, esi;
  • los comentarios neutros de tu tema («.site-header», «Main navigation»), salvo si marcas la opción descrita más abajo.

Los límites que debes conocer

  • Breeze escribe su comentario en su archivo de caché, sin filtro ni ajuste: se queda.
  • WP Rocket no permite eliminar su comentario: se convierte en <!-- Cached for great performance -->, sin nombre de plugin ni WordPress.
  • Las páginas ya en caché antes de la activación conservan sus comentarios hasta que vacías la caché.
  • Las cachés de servidor y las CDN (Varnish, Cloudflare, caché del hosting) sirven la página guardada: está limpia si se guardó después de la activación, pero sus cabeceras HTTP se mantienen.
  • Lo que no es un comentario ni una etiqueta generator queda fuera: cabeceras HTTP (X-LiteSpeed-Cache, cf-edge-cache: cache,platform=wordpress de Cloudflare APO), clases CSS (elementor-, woocommerce, yoast-schema-graph), variables JavaScript, contenido JSON-LD, direcciones de archivos y el parámetro ?ver=.
  • Los visitantes con sesión iniciada ven el sitio sin ocultación.

Sobre todo, ten esto en cuenta: mientras las direcciones /wp-content/plugins/... sigan en la página, Wappalyzer reconoce WordPress. Quitar los comentarios elimina sobre todo nombres y versiones; para ir más lejos, los alias de las direcciones de archivos de WP Masquerade Pro renombran esas rutas.

Comprueba tu propio sitio

Haz la prueba antes y después de la activación, siempre como visitante anónimo:

  1. Abre una ventana de navegación privada, sin sesión en WordPress.
  2. Muestra el código fuente de la página de inicio y de una entrada (Ctrl+U, o Cmd+Option+U en Mac).
  3. Busca (Ctrl+F) <!--, luego name="generator" y luego el nombre de tus plugins.
  4. Recarga la página: la primera visita suele llenar la caché y la segunda muestra la página servida por la caché.

Desde la línea de comandos:

curl -s https://www.example.com/ | grep -n -E "<!--|name=\"generator\""

Solo deben quedar la etiqueta del software imitado, los comentarios condicionales, las marcas de las cachés y, sin la opción, los comentarios neutros del tema. El vídeo de abajo muestra lo que detecta un curioso.

Cómo reconocer un sitio WordPress en unos segundos (en francés).

Activa la función

  1. Abre Masquerade Security (el icono de máscara del menú de administración).
  2. Elige un modo (Esencial, Recomendado o Máximo) o pon el módulo Identidad al menos en el nivel 1 («Ocultar WordPress»): las huellas se eliminan desde ese nivel.
  3. Activa el interruptor «Camuflaje activado» y guarda.
  4. Opcional: en la pestaña Identidad, marca «Eliminar todos los comentarios HTML de las páginas públicas». Desactivada por defecto, esta opción elimina también los comentarios neutros, pero conserva los comentarios condicionales, las marcas de las cachés y el comentario de cobertura (nivel 4, Pro).
  5. Haz clic en Vaciar las cachés (pestaña Diagnóstico), vacía también la caché del hosting o de la CDN y comprueba.

El vaciado integrado cubre LiteSpeed Cache, WP Super Cache y WP Rocket; los detalles por hosting están en la página compatibilidad con hostings y cachés.

Gratis o Pro

La eliminación de las huellas de los plugins forma parte de la versión gratuita, sin límites ni clave de licencia. WP Masquerade Pro se ocupa de las demás señales:

FunciónGratisPro
Comentarios HTML y etiquetas generator de los plugins eliminadosSíSí
Opción «Eliminar todos los comentarios HTML»SíSí
Generator de WordPress eliminado, etiqueta de otro software5 perfiles o nombre libre41 perfiles
Enlaces RSD, Windows Live Writer y enlaces cortos eliminadosSíSí
Anuncio de la API REST (etiqueta y cabecera HTTP Link) y descubrimiento oEmbed eliminadosNoSí
Alias de las direcciones de archivos (/wp-content/, /wp-includes/)NoSí
Marcadores reconocidos por Wappalyzer y comentario de cobertura del software imitadoNoSí
Funciones relacionadas con las huellas de WordPress.

Más detalles en los enlaces técnicos, la imitación de otro CMS y en la comparativa. Descarga la versión gratuita o consulta los precios de Pro, desde 59 € al año sin IVA.

En resumen

  • Yoast SEO, Site Kit, Elementor y las cachés firman tus páginas, a menudo con su versión.
  • El comentario de Yoast SEO basta para que Wappalyzer concluya que es WordPress, y WPScan lee los comentarios HTML para enumerar tus plugins.
  • Masquerade Security, gratuito, los elimina desde el nivel 1 del módulo Identidad: primero el ajuste oficial y después el filtro de salida.
  • Límites: Breeze, WP Rocket (texto genérico), páginas ya en caché (vacíalas), cabeceras HTTP, direcciones de archivos.
  • Comprueba en navegación privada: busca <!-- y generator en el código fuente.

Fuentes

  • WordPress Developer: get_the_generator() (enlace externo, se abre en una pestaña nueva)
  • MDN: el atributo name de meta, valor generator (enlace externo, se abre en una pestaña nueva)
  • WordPress.org: Yoast SEO (enlace externo, se abre en una pestaña nueva)
  • WordPress.org: Site Kit by Google (enlace externo, se abre en una pestaña nueva)

Otras fuentes consultadas: páginas oficiales de los editores.

Seguridad de WordPress, sin ruido

Un correo cuando importa: nuevos ataques observados, actualizaciones de la extensión y guías prácticas. Sin spam, baja con un clic.

Empieza gratis y pasa a Pro cuando estés listo

La versión gratuita ya oculta WordPress y cambia la dirección de la página de acceso. Pro añade alias, verificación en dos pasos y supervisión.