NUDAYOSH, S.L. · Software y seguridad para empresasContactoÁrea clienteES · EN
NUDAYOSH

BLOG · 2026-06-01

Hardening WordPress: las 10 cosas que SÍ funcionan

Internet está lleno de listas de "100 cosas para securizar WordPress" donde 80 son ruido o placebo. Aquí va la versión corta y honesta: las 10 medidas que reducen el 95% del riesgo, y 5 mitos que no merecen tu tiempo.

Capa externa · SSL, cabeceras, listas negrasCapa servidor · cuentas FTP/SSH, crons, archivosCapa WordPress · malware, fuerza bruta, hardening
Las tres capas que vigilamos a la vez.

Lo que SÍ funciona (las 10)

1. Mantener WordPress, plugins y temas actualizados CRÍTICO

El 80% de los hacks vienen de versiones desactualizadas con vulnerabilidades públicas conocidas. Activa auto-updates para todo: core, plugins, temas, traducciones. Sí, alguna vez se romperá algo — pero menos veces de las que te llegará un aviso de infección si no lo haces.

Cómo: Dashboard → Updates + plugin Easy Updates Manager. O instala el plugin NUDAYOSH Security que monitoriza qué versiones están en riesgo.

2. Eliminar plugins y temas que no usas CRÍTICO

Cada plugin desactivado que está instalado sigue siendo un vector de ataque: sus archivos están ahí, el atacante puede explotar la vulnerabilidad directamente accediendo a su URL. Desactivado no es lo mismo que desinstalado. Borra todo lo que no usas.

3. Bloquear ejecución PHP en /uploads/ CRÍTICO

La carpeta wp-content/uploads/ es para imágenes y documentos. No tiene ningún caso de uso legítimo de PHP ejecutable. Bloquea cualquier .php que aparezca ahí — siempre será malware.

Cómo manual: añade un .htaccess en uploads con <FilesMatch "\.php$">Require all denied</FilesMatch>. Cómo automático: el plugin NUDAYOSH los mueve a cuarentena al detectarlos, sin esperar a que tú actúes (lee por qué la auto-mitigation cambia el juego).

4. Deshabilitar el editor de archivos en wp-admin RECOMENDADO

Por defecto, un admin puede editar el código del theme y de los plugins desde Apariencia → Editor. Si te roban credenciales admin, el atacante usa esa puerta para meter código sin necesidad de FTP. Cerrarla es una línea en wp-config.php:

define( 'DISALLOW_FILE_EDIT', true );

5. Bloquear XML-RPC RECOMENDADO

XML-RPC es un protocolo viejo que sigue activo por compatibilidad con apps móviles antiguas y Jetpack. Si no usas ninguno, desactívalo — es vector típico de brute force amplificado y DDoS via pingback.

add_filter( 'xmlrpc_enabled', '__return_false' );

O bloquéalo directamente en .htaccess con <Files xmlrpc.php>Require all denied</Files>.

6. Auto-block IPs tras N login fails CRÍTICO

El 60% del tráfico que recibe tu wp-login es brute force automatizado desde botnets. Sin un mecanismo de bloqueo automático, esos bots tienen literalmente todo el tiempo del mundo para probar contraseñas.

La regla: 10 fails en 10 minutos = IP bloqueada 4 horas. Lo hace NUDAYOSH Security de serie. Limit Login Attempts también funciona. O súbelo a nivel Cloudflare: guía aquí.

7. Headers de seguridad en .htaccess CRÍTICO

Aunque tu WP esté limpio, sin estos headers cualquier XSS o iframe injection es más explotable de lo necesario. Añade en el .htaccess raíz:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
  Header always unset X-Powered-By
</IfModule>

8. SSL real + HSTS forzado CRÍTICO

Sin HTTPS, todo lo que tu cliente o tú escribís en el wp-admin viaja en plano. Plesk y casi todos los hostings tienen Let's Encrypt gratis. Actívalo y, además, fuerza redirección 301 de HTTP → HTTPS en .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

9. Deshabilitar enumeración de usuarios RECOMENDADO

Por defecto, WP filtra los nombres de tus usuarios admin vía:

  • /?author=1 (redirect a /author/admin/)
  • /wp-json/wp/v2/users (lista JSON sin autenticar)

Ambas son la primera pieza de un brute force inteligente. Bloquea con:

// En functions.php o un mu-plugin:
add_filter( 'rest_authentication_errors', function( $r ) {
  if ( ! is_user_logged_in() && strpos( $_SERVER['REQUEST_URI'], '/wp-json/wp/v2/users' ) !== false ) {
    return new WP_Error( 'rest_forbidden', 'Forbidden', array( 'status' => 403 ) );
  }
  return $r;
});

Y en .htaccess:

RewriteCond %{QUERY_STRING} author=\d
RewriteRule ^ /? [L,R=301]

10. File Integrity Monitor CRÍTICO

Las 9 medidas anteriores reducen la probabilidad de ataque. El FIM (File Integrity Monitor) te avisa cuando hay un cambio sospechoso — porque ningún hardening es 100%.

Cómo funciona: el plugin guarda hashes SHA256 de todos tus archivos. Cada hora compara con el estado actual. Si aparece un archivo nuevo, se modificó uno existente, o desapareció algo, te avisa (y si tiene auto-mitigation, actúa).

Wordfence y NUDAYOSH lo hacen. Sin FIM, una infección puede pasar 6 meses sin que te enteres.

Lo que NO funciona (5 mitos)

1. Renombrar wp-login.php PLACEBO

Plugins como WPS Hide Login mueven /wp-login.php a /mi-login-secreto/. Suena bien — esconde el endpoint, no? Pero no es seguridad, es ofuscación. Un bot serio prueba 30 rutas comunes en 2 segundos. Y si tu URL aparece en cualquier referrer (Google Analytics, algún email que envías al cliente con un enlace), está expuesta.

El tiempo que dedicas a esto es mejor usado en bloqueo por IP y por país (medidas 6 + Cloudflare). Eso sí frena bots.

2. Cambiar el prefijo de tabla wp_ a wpxyz_ PLACEBO

Idea: si el prefijo es wp_, un ataque SQL injection conoce los nombres de tabla. Si lo cambias, no.

Realidad: cualquier SQL injection grave ejecuta primero SHOW TABLES y descubre el prefijo en milisegundos. No detiene a nadie. Solo te da problemas migrando o restaurando backups.

3. Plugins de seguridad "todo en uno" DEPENDE

Wordfence/iThemes/Sucuri marketean como "protección total". La verdad: hacen 30 cosas y de esas, 10 son útiles, 10 son ruidosas, y 10 se solapan con lo que ya hace Plesk o Cloudflare.

Si vas a usar uno, elige uno que sea explícito sobre qué hace y por qué, y úsalo combinado con Cloudflare a nivel perimetral. No confíes en que un único plugin lo cubra todo.

4. CAPTCHA en formularios públicos CASI INÚTIL

Los CAPTCHAs de Google reCAPTCHA v2/v3 ya no frenan a casi ningún bot moderno (los pasan vía Anti-Captcha o headless browsers). Lo que sí frena spam: honeypots (campos invisibles que solo los bots rellenan) y rate limiting por IP.

5. "Cambiar la contraseña cada 30 días" CONTRAPRODUCENTE

Forzar cambios de contraseña frecuentes hace que la gente use contraseñas predecibles (Verano2026!, Otoño2026!...) o las apunte en post-its. NIST lo desaconseja desde 2017.

Mejor: contraseñas largas únicas por sitio (gestor de contraseñas) + 2FA en wp-admin (plugin Two-Factor). Cambias solo si hay sospecha de leak.

El plan de 30 minutos

Si tienes 30 minutos hoy:

  1. 5 min: actualiza todo (#1) y borra plugins/themes que no usas (#2)
  2. 10 min: configura Cloudflare gratis siguiendo la guía — incluye HTTPS + bloqueo XML-RPC + bloqueo por país (#5 + #8)
  3. 10 min: instala el plugin NUDAYOSH Security y pulsa "Aplicar hardening" — aplica #3, #4, #5 (refuerzo), #7, #9, #10 de golpe + auto-mitigation
  4. 5 min: activa 2FA en tu cuenta admin con el plugin Two-Factor

Has cubierto las 10 medidas críticas. Tu web ahora es significativamente más segura que el 90% de WordPress en internet. Sin gastar un euro y sin necesitar conocimientos técnicos avanzados.

El stack mínimo

Cloudflare gratis + plugin NUDAYOSH Security con auto-mitigation activa + 2FA en admin + auto-updates. Cero euros. Una tarde. Mejor que la mayoría de planes de 50€/mes.

Preguntas frecuentes

Sobre el hardening de WordPress.

¿Qué es el «hardening» de WordPress?

Es apretar las tuercas de tu web: una serie de ajustes y hábitos que reducen por dónde te pueden atacar. No es un producto que se compra, son configuraciones que se aplican.

He leído que ocultar la versión de WordPress o cambiar el prefijo de la base de datos protege. ¿Es verdad?

Son de los mitos. Dan sensación de seguridad pero apenas frenan a un atacante de verdad. En el artículo separamos lo que protege de verdad de lo que solo es postureo.

¿Cuánto se tarda en hacer lo importante?

Lo esencial se hace en una media hora. El artículo trae un plan de 30 minutos con lo que más protege por el menor esfuerzo, para que empieces por lo que de verdad mueve la aguja.