Guía de solución

Cómo ocultar el número de versión de WordPress

8 de febrero de 2026 Actualizado el 19 abr 2026

WordPress muestra su número de versión en varios lugares por defecto. Por sí solo, no es una vulnerabilidad crítica. Pero da a los atacantes una ventaja inicial. Si alguien sabe que estás usando WordPress 6.2.1, puede buscar todos los exploits conocidos para esa versión exacta y probarlos contra tu sitio. Eliminar la información de versión es un sencillo primer paso que hace que las herramientas de escaneo automatizadas sean menos efectivas.

Dónde expone WordPress el número de versión

WordPress es sorprendentemente generoso revelando qué versión está utilizando. Estos son los lugares más comunes donde los atacantes (y cualquiera que vea tu código fuente) pueden encontrarlo:

  • Etiqueta meta generator: WordPress añade una etiqueta <meta name="generator" content="WordPress 6.x.x"> a la sección <head> de cada página. Es el lugar más obvio y aparece en cada carga de página.
  • Feeds RSS y Atom: El feed RSS de tu sitio (normalmente en /feed/) incluye un elemento <generator> con la cadena completa de la versión de WordPress. Muchos propietarios de sitios olvidan los feeds por completo, dejando este vector abierto.
  • Cadenas de consulta de scripts y hojas de estilo: WordPress añade ?ver=6.x.x a las URLs de archivos CSS y JavaScript cuando los encola. Aunque elimines la etiqueta meta, este parámetro sigue revelando tu versión en cada petición de assets.
  • El archivo readme.html: WordPress se distribuye con un archivo readme.html en el directorio raíz. Este archivo contiene el número de versión en texto plano y es accesible para cualquiera que conozca la URL.
  • El archivo license.txt: Similar a readme.html, el archivo license.txt está en la raíz de WordPress y puede confirmar que el sitio utiliza WordPress.
  • El código fuente de la página de inicio de sesión: La página de inicio de sesión de WordPress en /wp-login.php carga hojas de estilo y scripts con cadenas de consulta de versión, convirtiéndose en otra fuente de información de versión.
  • Respuestas de la REST API: La raíz de la REST API de WordPress en /wp-json/ también puede revelar detalles de versión en sus cabeceras de respuesta o en el cuerpo.

Por qué importa ocultar la versión

Cada versión mayor de WordPress tiene un changelog público. Cuando se publica un parche de seguridad, la vulnerabilidad que corrige se hace de conocimiento público. Bots automatizados rastrean constantemente la web buscando sitios que aún ejecuten la versión antigua y vulnerable. Si tu sitio anuncia "WordPress 6.2.1" y se parcheó una inyección SQL crítica en 6.2.2, tu sitio se convierte en un objetivo en cuestión de horas tras la publicación del parche.

Ocultar el número de versión no soluciona la vulnerabilidad en sí. Simplemente elimina un dato que los atacantes utilizan para priorizar objetivos. Piénsalo como quitar el número de tu casa de una lista de hogares con puertas sin cerrar. La puerta puede seguir abierta, pero al menos no estás en la lista corta.

Eliminar la versión del HTML y los feeds

Añade el siguiente código al archivo functions.php de tu tema o, mejor aún, a un plugin específico del sitio para que sobreviva a los cambios de tema:

// Eliminar la etiqueta meta generator del head HTML
remove_action('wp_head', 'wp_generator');

// Eliminar la versión de los feeds RSS
add_filter('the_generator', '__return_empty_string');

// Eliminar la cadena de consulta de versión de scripts y estilos
function remove_wp_version_from_assets($src) {
    if (strpos($src, 'ver=' . get_bloginfo('version'))) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('style_loader_src', 'remove_wp_version_from_assets', 9999);
add_filter('script_loader_src', 'remove_wp_version_from_assets', 9999);

La llamada remove_action elimina la etiqueta meta. El filtro the_generator se encarga de los feeds RSS y Atom. Los dos filtros loader eliminan el parámetro ?ver= de todos los assets encolados. Usar la prioridad 9999 garantiza que esto se ejecute después de que los plugins y temas hayan añadido sus propios scripts.

Eliminar readme.html y license.txt

Estos archivos estáticos están en el directorio raíz de WordPress y contienen información de versión. Elimínalos:

rm /ruta/a/wordpress/readme.html
rm /ruta/a/wordpress/license.txt

Hay un detalle: WordPress recrea estos archivos durante las actualizaciones del core. Tienes dos opciones para manejarlo. Puedes eliminarlos manualmente tras cada actualización. O puedes añadir un pequeño script a tu proceso de despliegue que los elimine automáticamente. Si usas WP-CLI, un hook post-actualización funciona bien para esto.

Enfoques basados en plugins

Si prefieres no editar archivos de código, varios plugins se encargan de eliminar la versión por ti. Plugins de seguridad como Wordfence, iThemes Security y All In One WP Security incluyen opciones para ocultar la versión de WordPress. Opciones ligeras como Meta Generator and Version Info Remover se centran específicamente en esta tarea sin añadir sobrecarga adicional.

Al elegir un plugin, asegúrate de que cubra todas las ubicaciones listadas anteriormente, no solo la etiqueta meta. Algunos plugins solo eliminan la etiqueta generator y dejan intactas las cadenas de consulta de scripts.

La seguridad por oscuridad no es suficiente

Ocultar tu versión de WordPress es una buena práctica, pero no es una estrategia de seguridad por sí sola. Un atacante decidido aún puede identificar tu versión de WordPress mediante otros métodos, como comparar el contenido de archivos JavaScript del core o comprobar la presencia de funciones específicas introducidas en ciertas versiones.

Para una seguridad real, necesitas combinar ocultar la versión con los fundamentos:

  • Mantén WordPress, los temas y los plugins actualizados: Es la cosa más importante que puedes hacer. La mayoría de los hackeos de WordPress explotan vulnerabilidades conocidas en software desactualizado.
  • Usa contraseñas fuertes y autenticación de dos factores: Los ataques de fuerza bruta contra wp-login.php siguen siendo uno de los vectores de ataque más comunes.
  • Instala un Web Application Firewall (WAF): Servicios como Cloudflare, Sucuri o un WAF basado en plugin pueden bloquear peticiones maliciosas antes de que lleguen a WordPress.
  • Limita los intentos de inicio de sesión: Plugins como Limit Login Attempts Reloaded evitan que los atacantes ejecuten ataques automatizados de adivinación de contraseñas.
  • Desactiva XML-RPC si no lo necesitas: XML-RPC es otro vector de ataque común para fuerza bruta y amplificación de DDoS.

Verificar los cambios con InspectWP

Tras implementar estos cambios, ejecuta un nuevo análisis de InspectWP en tu sitio. Comprueba la sección de WordPress del informe. El número de versión ya no debería aparecer en el código fuente HTML, y la etiqueta meta generator debería haber desaparecido. Si InspectWP sigue detectando una versión, comprueba que el fragmento de código está cargado correctamente y que los plugins de caché no están sirviendo una versión desactualizada de tus páginas.

Analiza tu sitio de WordPress ahora

InspectWP analiza tu sitio de WordPress en busca de problemas de seguridad, SEO, cumplimiento del RGPD y rendimiento, gratis.

Analiza tu sitio gratis