Cómo ocultar la versión de WordPress y PHP por seguridad
¿Por qué es importante ocultar la versión de WordPress y PHP?
Cuando un atacante quiere entrar en tu sitio web, lo primero que hace es reconocimiento. Busca pistas sobre qué software usas y qué versiones concretas tienes instaladas. Si sabe que usas WordPress 5.8 y PHP 7.4, puede buscar vulnerabilidades conocidas específicas de esas versiones y atacarte con exploits ya preparados.
Ocultar la versión de WordPress y de PHP es una medida de hardening web básica pero muy efectiva. No hace tu sitio impenetrable, pero elimina información gratuita que le das al atacante. Es como no dejar las llaves de casa debajo del felpudo: no es la única medida de seguridad, pero es una capa extra que dificulta el trabajo al ladrón.
Además, muchos escáneres automáticos de vulnerabilidades rastrean internet buscando sitios con versiones antiguas y expuestas. Si ocultas esa información, tu sitio será mucho menos atractivo para estos bots.
En este artículo te enseñaré, paso a paso y sin necesidad de ser un experto, cómo ocultar la versión de WordPress y cómo ocultar la versión de PHP en tu servidor.
Cómo saber si tu versión está expuesta (antes de empezar)
Antes de aplicar cualquier cambio, vamos a comprobar si tu sitio realmente está mostrando esta información. Hay tres lugares típicos donde se filtra:
1. En el código fuente de tu web
Abre tu sitio en el navegador, haz clic derecho y selecciona "Ver código fuente" (o usa Ctrl+U en Windows / Cmd+U en Mac). Busca con Ctrl+F la palabra "generator". Verás algo como:
<meta name="generator" content="WordPress 6.4.2" />
2. En los archivos de lectura pública
Añade al final de tu dominio /readme.html (por ejemplo: tudominio.com/readme.html). Si ves la versión de WordPress en el título, está expuesta.
También puedes probar con /wp-includes/version.php o /feed/. A veces aparecen en los feeds RSS.
3. En las cabeceras HTTP
Usa herramientas online como WhatWeb, Wappalyzer o simplemente la consola de desarrollador del navegador (pestaña Red → clic en el documento principal → Cabeceras). Busca líneas como X-Powered-By: PHP/7.4.33 o Server: Apache/2.4.57 (Ubuntu).
Si has encontrado alguna de estas pistas, sigue leyendo. Vamos a taparlas todas.
Cómo ocultar la versión de WordPress (métodos paso a paso)
Existen varias formas de ocultar la versión de WordPress. Te mostraré las más efectivas y fáciles de aplicar, incluso si nunca has tocado código.
Método 1: Añadir código al archivo functions.php (el más recomendado)
Este método funciona en cualquier sitio WordPress, sin importar el tema que uses. Solo necesitas añadir un pequeño bloque de código al archivo functions.php de tu tema hijo (o del tema principal si no usas hijo, aunque es mejor práctica usar tema hijo).
Pasos:
- Accede a tu panel de administración de WordPress.
- Ve a Apariencia → Editor de archivos de tema.
- En la columna derecha, haz clic en
functions.php. - Al final del archivo, pega el siguiente código:
// Ocultar versión de WordPress en el meta generator
remove_action('wp_head', 'wp_generator');
// Ocultar versión de WordPress en los feeds RSS
add_filter('the_generator', '__return_empty_string');
// Eliminar parámetro ?ver= de scripts y estilos
function ocultar_version_wp_scripts($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'ocultar_version_wp_scripts', 9999);
add_filter('script_loader_src', 'ocultar_version_wp_scripts', 9999);
- Haz clic en Actualizar archivo.
[TIP] Si no usas tema hijo, te recomiendo crearlo antes. Así no perderás los cambios cuando actualices el tema principal. Puedes usar plugins como "Child Theme Configurator" para crearlo fácilmente.
Método 2: Usar un plugin de seguridad (para los que prefieren no tocar código)
Si no te sientes cómodo editando archivos, existen plugins que hacen esto por ti. Algunos populares:
- iThemes Security (antes Better WP Security)
- Wordfence Security
- All In One WP Security
En el caso de iThemes Security, por ejemplo:
- Instala y activa el plugin.
- Ve a Seguridad → Configuración.
- Busca la sección "Ocultar versión de WordPress" o "Hardening".
- Activa la opción de ocultar la versión.
- Guarda los cambios.
Estos plugins además hacen otras funciones de seguridad, así que es un buen punto de partida si quieres proteger tu sitio de forma integral.
Método 3: Quitar la versión de los scripts y estilos manualmente
A veces la versión de WordPress aparece en los archivos CSS y JS como parámetro ?ver=6.4.2. El código del Método 1 ya lo elimina, pero si prefieres hacerlo sin añadir código, puedes ir a Ajustes → Lectura y desmarcar la casilla de "Mostrar versión de WordPress en los feeds", aunque esto no elimina el meta generator ni las cabeceras.
Lo más completo es combinar el código del Método 1 con un plugin si quieres una solución robusta.
Cómo ocultar la versión de PHP (métodos para distintos servidores)
Ocultar la versión de PHP es un poco más delicado, porque depende del servidor web que uses (Apache, Nginx, LiteSpeed, etc.) y del panel de control. Vamos a ver los casos más comunes.
Caso 1: Servidores Apache (el más común en hosting compartido)
Apache envía la cabecera X-Powered-By: PHP/8.2.12 de forma predeterminada. Para ocultarla:
Opción A: Desde el archivo .htaccess
- Accede al administrador de archivos de tu hosting o usa FTP.
- Busca el archivo
.htaccessen la raíz de tu sitio (si no existe, créalo). - Añade estas líneas al final:
# Ocultar versión de PHP
Header unset X-Powered-By
Header always unset X-Powered-By
# Ocultar versión de Apache
ServerSignature Off
ServerTokens Prod
- Guarda los cambios.
Opción B: Desde PHP.ini
Si tu hosting te permite editar el php.ini:
- Busca el archivo
php.inien la carpeta de tu sitio o en la raíz. - Añade o modifica la línea:
expose_php = Off
- Reinicia PHP (en la mayoría de hosting se hace automáticamente al guardar, pero si no, contacta con soporte).
[INFO] Con expose_php = Off no solo ocultas la versión, sino que desactivas toda la cabecera X-Powered-By. Es la medida más limpia y efectiva.
Caso 2: Servidores Nginx
Si usas Nginx, tendrás que editar el archivo de configuración del servidor virtual (normalmente en /etc/nginx/sites-available/tudominio.conf o similar). Añade dentro del bloque server:
server_tokens off;
fastcgi_hide_header X-Powered-By;
Después recarga Nginx con sudo systemctl reload nginx o sudo service nginx reload.
Caso 3: Hosting con Syspanel (antes HestiaCP)
Si tu hosting usa Syspanel (el antiguo HestiaCP), el acceso se realiza a través del puerto 2106 (por ejemplo: https://tudominio.com:2106). Para ocultar la versión de PHP desde Syspanel:
- Inicia sesión en tu panel Syspanel usando el puerto 2106.
- Ve a Web → selecciona tu dominio.
- Busca la opción "Configuración" o "Avanzado".
- Añade las siguientes líneas al bloque de configuración de Nginx o Apache según tu caso:
Para Apache:
Header unset X-Powered-By
Para Nginx:
fastcgi_hide_header X-Powered-By;
- Guarda y reinicia el servicio web desde el propio panel.
[WARNING] Si tu hosting usa Syspanel, ten cuidado al editar configuraciones. Un error puede dejar tu web caída. Siempre haz una copia de seguridad antes de tocar nada.
Caso 4: Hosting compartido sin acceso a configuraciones
Algunos hosting compartidos no te dejan tocar php.ini ni los archivos de configuración del servidor. En ese caso, puedes intentar ocultar la cabecera desde PHP usando ini_set() al principio de tu wp-config.php:
ini_set('expose_php', '0');
Añade esta línea justo después de la línea define('DB_COLLATE', '');. Esto no es tan efectivo como php.ini, pero en muchos casos funciona.
Otras medidas de hardening web para complementar
Ocultar versiones es solo el principio. Aquí tienes otras medidas sencillas para reforzar tu seguridad:
1. Desactiva la edición de archivos desde el panel
Añade a tu wp-config.php:
define('DISALLOW_FILE_EDIT', true);
2. Cambia el prefijo de las tablas de la base de datos
Si tu base de datos aún usa wp_, considera cambiarlo a algo aleatorio como x7k2m_. Puedes hacerlo con plugins como "Change Table Prefix" o manualmente desde phpMyAdmin.
3. Limita los intentos de inicio de sesión
Usa plugins como "Limit Login Attempts Reloaded" para bloquear ataques de fuerza bruta.
4. Activa la autenticación de dos factores (2FA)
Con plugins como "Google Authenticator" o "Wordfence Login Security".
5. Mantén todo actualizado
Aunque ocultes la versión, un WordPress desactualizado es un riesgo. Actualiza siempre núcleo, temas y plugins.
Preguntas frecuentes (FAQ)
¿Es suficiente ocultar la versión para estar seguro?
No. Ocultar la versión es una capa más de seguridad, pero no sustituye a las actualizaciones ni a un buen plugin de seguridad. Es como poner un cartel de "no hay nadie en casa": disuade, pero si alguien quiere entrar, lo intentará igualmente.
¿Puedo ocultar la versión de WordPress sin tocar código?
Sí, usando plugins como iThemes Security o Wordfence. Ellos hacen el trabajo por ti.
¿Ocultar la versión de PHP afecta al rendimiento?
No, en absoluto. Es una modificación de cabeceras HTTP, no afecta a la velocidad de carga ni al funcionamiento del sitio.
¿Qué hago si después de los cambios sigue apareciendo la versión?
Primero, limpia la caché (del navegador y de tu plugin de caché). Si sigue apareciendo, revisa si tu tema o algún plugin está forzando la versión. Puedes usar la consola de desarrollador para ver el código fuente y localizar el origen.
¿Es legal ocultar la versión de WordPress?
Sí, es completamente legal. Es una medida de seguridad estándar recomendada por expertos. WordPress no prohíbe ocultar su versión, y muchos sitios profesionales lo hacen.
¿Puede causar problemas con los plugins o el tema?
No debería. Los plugins y temas no dependen de mostrar la versión para funcionar. Sin embargo, si algún plugin usa la versión para decidir la compatibilidad, podría dar avisos, pero es raro.
¿Qué es el hardening web exactamente?
Es el conjunto de prácticas para endurecer la seguridad de un servidor o aplicación web. Incluye ocultar versiones, desactivar directorios listables, configurar cabeceras de seguridad, limitar permisos, etc.
Conclusión y resumen rápido
Hemos visto cómo ocultar la versión de WordPress y de PHP con métodos sencillos y efectivos. Recuerda:
- Ocultar versión WordPress: añade el código en
functions.phpo usa un plugin de seguridad. - Ocultar versión PHP: desactiva
expose_phpenphp.ini, usa.htaccesso edita la configuración de Nginx según tu servidor. - Si usas Syspanel (antiguo HestiaCP), recuerda que el acceso es por el puerto 2106 y que puedes añadir las líneas de ocultación desde la configuración avanzada.
- Complementa con otras medidas de hardening como limitar intentos de login, desactivar edición de archivos y mantener todo actualizado.
Estos pequeños cambios hacen que tu sitio sea un objetivo mucho más difícil para atacantes automáticos. No tardarás más de 15 minutos en aplicarlos todos, y la tranquilidad que ganas es enorme.
Si tienes dudas, déjalas en los comentarios. Estaré encantado de ayudarte a proteger tu web.
