SEALGRADE.COM
Hardening

Hardening de WordPress: 20 medidas de seguridad esenciales (2026)

Publicado el 26 de septiembre de 2026 · 12 minutos de lectura · Por el equipo de Sealgrade

WordPress alimenta el 43% de las webs del mundo. Eso lo convierte en el CMS más usado, pero también en el más atacado. Cada día se producen millones de intentos de login automatizados contra sitios WordPress en todo el mundo.

La buena noticia: la mayoría de hackeos no son por fallos del core de WordPress (que se actualiza solo desde 2013), sino por plugins desactualizados, temas abandonados, contraseñas débiles y configuraciones por defecto inseguras. Y todos esos son problemas que puedes solucionar tú.

En esta guía te doy 20 medidas de hardening concretas, ordenadas por impacto, con ejemplos de código listos para copiar.

📑 Contenido del artículo

  1. Por qué WordPress es tan atacado
  2. Nivel 1 — Medidas críticas (hazlo hoy)
  3. Nivel 2 — Hardening intermedio
  4. Nivel 3 — Blindaje avanzado
  5. Plugins de seguridad recomendados
  6. Mantenimiento continuo
  7. Conclusión

1. Por qué WordPress es tan atacado

Los tres motivos principales:

Según datos de Wordfence, el 96% de los hackeos a WordPress se deben a:

Todo esto es prevenible con las medidas que te explico a continuación.

2. Nivel 1 — Medidas críticas (hazlo hoy)

Si solo puedes hacer 7 cosas, haz estas. Son las de mayor impacto.

1. Actualiza WordPress, plugins y temas
El 55% de hackeos vienen de plugins vulnerables. Mantén todo actualizado: Panel → Actualizaciones. Activa las actualizaciones automáticas para el core y, si puedes, para plugins críticos.
2. Cambia el prefijo de las tablas de la base de datos
WordPress usa wp_ por defecto en todas las tablas. Cambiarlo dificulta los ataques de SQL injection automatizados. Hazlo solo en instalaciones nuevas o con un plugin específico.
3. Contraseñas fuertes + 2FA
Contraseñas de 16+ caracteres con mayúsculas, minúsculas, números y símbolos. Activa autenticación de dos factores con plugins como WP 2FA o Google Authenticator. También en hosting, FTP y BBDD.
4. Limita los intentos de login
Los ataques de fuerza bruta intentan miles de combinaciones. Bloquea IP tras 3-5 intentos fallidos. Lo hacen plugins como Limit Login Attempts Reloaded o Wordfence.
5. Elimina usuarios y plugins inactivos
Revisa Usuarios: elimina cuentas que no uses. Los plugins desactivados siguen siendo vulnerables si no se actualizan: bórralos, no los dejes "por si acaso".
6. Configura correctamente los permisos de ficheros
En el servidor, los permisos deben ser: Carpetas: 755 Ficheros: 644 wp-config.php: 600 (o 440) .htaccess: 644 Nunca 777. Es una invitación al hackeo.
7. Desactiva la edición de ficheros desde el panel
Por defecto, cualquier admin puede editar el código PHP desde el panel de WordPress. Si tu cuenta se compromete, el atacante tiene ejecución de código. Desactívalo añadiendo en wp-config.php: define('DISALLOW_FILE_EDIT', true);
✅ Si solo haces estos 7 Ya habrás reducido tu superficie de ataque drásticamente. El 90% de los hackeos se evitan con estas medidas.

3. Nivel 2 — Hardening intermedio

Cuando ya tengas lo anterior, sube al siguiente nivel.

8. Protege wp-config.php
Añade en wp-config.php: define('DISALLOW_FILE_MODS', true); // No permitir instalar plugins/temas desde el panel define('AUTOMATIC_UPDATER_DISABLED', true); // Control manual de actualizaciones define('WP_DEBUG', false); // Sin debug en producción define('WP_DEBUG_LOG', false); define('WP_DEBUG_DISPLAY', false);
9. Bloquea el acceso a wp-config.php desde web
En el .htaccess raíz: <files wp-config.php> order allow,deny deny from all </files>
10. Desactiva el listado de directorios
Evita que se pueda ver el contenido de carpetas sin index.php: Options -Indexes
11. Bloquea el acceso a xmlrpc.php
xmlrpc.php es un endpoint usado por herramientas antiguas y por atacantes para fuerza bruta. Si no lo usas (Jetpack, apps móviles), bloquéalo: <files xmlrpc.php> order allow,deny deny from all </files>
12. Protege wp-login.php y wp-admin
Añade autenticación HTTP básica o limita el acceso por IP. Opción intermedia: redirigir wp-login.php a una URL personalizada (cambia la URL de login).
13. Oculta la versión de WordPress
WordPress revela su versión en el código fuente. Los atacantes lo usan para saber qué vulnerabilidades buscar. Añade en functions.php: remove_action('wp_head', 'wp_generator'); add_filter('the_generator', '__return_empty_string');
14. Configura un WAF
Un Web Application Firewall filtra ataques antes de que lleguen a WordPress. Opciones: Cloudflare (gratis), Wordfence WAF, Sucuri. Cloudflare es la opción más sencilla y no ralentiza tu web.
15. Bloquea el hotlinking de imágenes
Evita que otras webs carguen tus imágenes usando tu ancho de banda: RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|png|webp)$ - [F]

4. Nivel 3 — Blindaje avanzado

Si tu WordPress maneja datos sensibles (clientes, pagos, información médica), aplica estas medidas adicionales.

16. Cambia la URL de login
En lugar de /wp-login.php, usa /acceso-secreto-2026. Plugins como WPS Hide Login lo hacen con un clic. Reduce drásticamente los ataques automatizados.
17. Añade cabeceras HTTP de seguridad
En .htaccess o en Nginx: 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 Content-Security-Policy "default-src 'self'; frame-ancestors 'self'"
Más info en la guía de cabeceras HTTP.
18. Deshabilita la API REST para usuarios no autenticados
La API REST de WordPress (/wp-json/) puede exponer información. Si no la usas para nada externo, bloquéala: add_filter('rest_authentication_errors', function($result) { if (!empty($result)) return $result; if (!is_user_logged_in()) { return new WP_Error('rest_not_logged_in', 'Acceso no autorizado.', array('status' => 401)); } return $result; });
19. Bloquea la enumeración de usuarios
WordPress permite listar usuarios con ?author=1. Los atacantes usan esto para descubrir nombres de usuario válidos. Añade en functions.php: if (!is_admin()) { if (isset($_REQUEST['author']) && !is_numeric($_REQUEST['author'])) { wp_die('Acceso no autorizado.', 'Error', array('response' => 403)); } }
20. Backups automáticos off-site
Un backup externo (S3, Dropbox, Google Drive) es tu red de seguridad. Plugins: UpdraftPlus, BackupBuddy, Duplicator. Frecuencia mínima: diaria si tienes contenido activo. Prueba la restauración periódicamente: un backup que no restaura no sirve de nada.

5. Plugins de seguridad recomendados

No necesitas 10 plugins. Con 2-3 bien elegidos es suficiente:

⚠️ No instales todo Demasiados plugins = más superficie de ataque. Elige 3-4 y evita duplicar funciones (por ejemplo, dos plugins de seguridad que se peleen entre sí).

6. Mantenimiento continuo

El hardening no es algo que se hace una vez. Es un proceso continuo. Rutina recomendada:

💡 Automatiza lo que puedas Actualizaciones automáticas, backups diarios, alertas por email cuando algo cambia. Cuanto menos dependas de la memoria humana, mejor.

7. Conclusión

WordPress es seguro si lo configuras bien. El resumen en 8 líneas:

  1. Actualiza core, plugins y temas.
  2. Contraseñas fuertes + 2FA en todos los accesos.
  3. Limita intentos de login.
  4. Permisos correctos en ficheros (644/755).
  5. Desactiva edición de ficheros desde el panel.
  6. Añade un WAF (Cloudflare es gratis).
  7. Backups automáticos off-site.
  8. Auditoría externa periódica.

Con estas medidas, tu WordPress estará mejor protegido que el 90% de las webs del mundo. No es paranoia, es higiene digital.

🎯 ¿Está tu WordPress protegido?

Audítalo gratis en 30 segundos con Sealgrade. Detecta ficheros sensibles, puertos abiertos, cabeceras y más.

🔍 Auditar mi WordPress →
🛡️

Equipo de Sealgrade

Sealgrade es un estándar abierto y gratuito de auditoría y calificación de seguridad web. Analizamos miles de dominios para ayudar a empresas y particulares a mejorar su postura defensiva.