Back

Cómo Proteger un Sitio WordPress

Cómo Proteger un Sitio WordPress

WordPress impulsa más del 43% de la web, lo que lo convierte en el CMS más atacado del planeta. Pero esto es lo que la mayoría de los propietarios de sitios entienden mal: el software principal rara vez es el problema. Según investigaciones de seguridad de Patchstack, la gran mayoría de las vulnerabilidades de WordPress provienen de plugins y temas, no del núcleo de WordPress en sí. Esto significa que tu postura de seguridad depende casi por completo de cómo mantienes y configuras tu sitio.

Esta guía cubre las mejores prácticas de seguridad de WordPress que realmente importan, sin consejos obsoletos.

Puntos Clave

  • Casi todas las vulnerabilidades de WordPress se originan en plugins y temas, no en el núcleo — audita y depura tus extensiones regularmente.
  • La autenticación fuerte (contraseñas únicas, 2FA basado en TOTP y passkeys) es tu defensa más efectiva contra el acceso no autorizado.
  • Las protecciones a nivel de servidor como deshabilitar el editor de archivos, forzar HTTPS y establecer permisos de archivo correctos reducen drásticamente tu superficie de ataque.
  • Las copias de seguridad confiables y probadas son tu última línea de defensa — una copia de seguridad que nunca has restaurado es una copia de seguridad en la que no puedes confiar.

Por Qué la Mayoría de los Sitios WordPress Son Comprometidos

Antes de pasar a las soluciones, ayuda entender la superficie de ataque real. La mayoría de las brechas exitosas explotan:

  • Plugins y temas desactualizados o abandonados
  • Contraseñas débiles o reutilizadas
  • Permisos de archivo mal configurados
  • Entornos de hosting sin protecciones a nivel de servidor

El núcleo de WordPress (actualmente en la línea de versión 6.x) es mantenido activamente por un equipo de seguridad dedicado, utiliza bcrypt para el hash de contraseñas y envía actualizaciones de seguridad menores automáticas. El riesgo casi siempre está en el ecosistema que lo rodea.

Guía de Fortalecimiento de WordPress: Lo Esencial

Mantén Todo Actualizado — Sin Excepciones

La ventana entre la divulgación de una vulnerabilidad y la explotación activa suele ser de horas, no días. Habilita las actualizaciones automáticas en segundo plano para versiones menores del núcleo. Para plugins y temas, revisa y aplica actualizaciones semanalmente como mínimo.

Más importante aún, audita lo que tienes instalado. Cada plugin inactivo es una superficie de ataque. Si no lo estás usando, elimínalo — no solo lo desactives.

Antes de instalar cualquier plugin, verifica:

  • Fecha de última actualización (evita cualquier cosa sin actualizar durante 12+ meses)
  • Número de instalaciones activas
  • Si está listado en el repositorio de plugins de WordPress.org
  • Hilos de soporte abiertos que mencionen problemas de seguridad

Nunca instales temas y plugins pirateados o nulled. Frecuentemente contienen puertas traseras.

Usa Autenticación Fuerte en Todas las Cuentas

El núcleo de WordPress no incluye autenticación de dos factores integrada. Necesitarás un plugin o un proveedor de identidad externo para añadirla.

Mejores prácticas de autenticación modernas:

  • Usa una frase de contraseña (cuatro o más palabras aleatorias) o una contraseña generada aleatoriamente almacenada en un gestor de contraseñas como Bitwarden o 1Password
  • Habilita 2FA basado en TOTP (aplicación de autenticación) para todas las cuentas de administrador — el 2FA basado en SMS es mejor que nada pero más débil
  • Donde tu stack lo soporte, considera passkeys/WebAuthn para inicio de sesión resistente al phishing
  • Usa Application Passwords de WordPress para la API REST e integraciones de terceros en lugar de tus credenciales principales

Evita compartir cuentas de administrador. Cada usuario debe tener su propio inicio de sesión con el rol mínimo requerido.

Aplica Protecciones Básicas a Nivel de Servidor

Algunos cambios de configuración reducen significativamente tu superficie de ataque:

  • Deshabilita el editor de archivos en wp-config.php para prevenir la ejecución de código si una cuenta de administrador es comprometida:
    define( 'DISALLOW_FILE_EDIT', true );
  • Protege wp-config.php restringiendo el acceso mediante la configuración de tu servidor y asegurándote de que no sea accesible públicamente
  • Establece permisos de archivo correctos: directorios en 755, archivos en 644
  • Usa SFTP o SSH en lugar de FTP simple al transferir archivos
  • Fuerza HTTPS — cada sitio WordPress debe tener un certificado TLS válido y redirigir HTTP a HTTPS

Añade un Firewall de Aplicaciones Web y Limitación de Tasa

Un WAF filtra el tráfico malicioso antes de que llegue a WordPress. Puedes implementar esto en tres niveles:

  1. Nivel CDN/proxy — servicios como Cloudflare ofrecen WAF y protección DDoS con gestión de bots
  2. Nivel de servidor — ModSecurity en Apache o Nginx
  3. Nivel de plugin — plugins de seguridad como Wordfence o Sucuri añaden reglas de firewall a nivel de aplicación y limitación de tasa de inicio de sesión

Limitar los intentos de inicio de sesión es esencial. Los ataques de fuerza bruta contra wp-login.php son constantes y automatizados.

Nota sobre XML-RPC: No deshabilites XML-RPC de forma general sin entender tus dependencias. Algunos plugins y aplicaciones móviles dependen de él. Si no lo usas, bloquearlo es razonable — pero hazlo a nivel de servidor en lugar de con reglas frágiles de .htaccess.

Realiza Copias de Seguridad Confiables y Prueba tus Restauraciones

Una copia de seguridad que nunca has probado no es una copia de seguridad. Usa la regla 3-2-1: tres copias, dos tipos de medios diferentes, una fuera del sitio. Automatiza las copias de seguridad y verifica que las restauraciones realmente funcionen en un calendario regular.

Protege tu Sitio WordPress: Lista de Verificación de Referencia Rápida

  • El núcleo de WordPress, plugins y temas están actualizados
  • Los plugins y temas no utilizados están eliminados
  • Todas las cuentas de administrador usan contraseñas fuertes y únicas
  • El 2FA está habilitado para cada usuario administrador
  • DISALLOW_FILE_EDIT está configurado en wp-config.php
  • Los permisos de archivo están configurados correctamente (755/644)
  • HTTPS está forzado en todo el sitio
  • Un WAF y limitación de tasa de inicio de sesión están activos
  • Las copias de seguridad automatizadas se ejecutan regularmente y las restauraciones son probadas
  • Los roles de usuario siguen el principio de mínimo privilegio

Conclusión

Proteger un sitio WordPress tiene menos que ver con trucos exóticos de fortalecimiento y más con disciplina de mantenimiento consistente. Mantén tu software actualizado, usa autenticación adecuada, aplica protecciones a nivel de servidor y realiza copias de seguridad regularmente. La mayoría de los ataques tienen éxito porque se omitió uno de estos fundamentos básicos — no porque WordPress en sí haya fallado.

Preguntas Frecuentes

No. El núcleo de WordPress es mantenido activamente por un equipo de seguridad dedicado y recibe actualizaciones de seguridad menores automáticas. La gran mayoría de las vulnerabilidades provienen de plugins y temas de terceros, no del software principal. Mantener tus extensiones auditadas y actualizadas es mucho más importante que preocuparse por WordPress en sí.

Sí. Los ataques de fuerza bruta y credential-stuffing contra wp-login.php son constantes y automatizados. Una contraseña fuerte por sí sola no es suficiente porque las contraseñas pueden filtrarse o reutilizarse. El 2FA basado en TOTP a través de una aplicación de autenticación añade una segunda capa que detiene la mayoría de los intentos de inicio de sesión no autorizados.

Depende de tu configuración. XML-RPC es una API heredada que algunos plugins y la aplicación móvil de WordPress aún usan. Si nada en tu sitio depende de ella, deshabilitarla reduce tu superficie de ataque. Bloquéala a nivel de servidor en lugar de mediante reglas htaccess, que pueden ser evadidas más fácilmente.

La frecuencia depende de cuán a menudo cambia tu contenido. Para sitios activos, las copias de seguridad automatizadas diarias son una línea base razonable. Más importante que la frecuencia es probar tus restauraciones regularmente. Sigue la regla 3-2-1: tres copias, dos tipos de almacenamiento diferentes, una almacenada fuera del sitio.

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay