Cómo endurecer WordPress en seguridad y cumplimiento del RGPD
Una guía práctica para asegurar tu sitio WordPress y hacerlo compatible con el RGPD. Cubre endurecimiento del servidor, seguridad de plugins, cifrado de base de datos, consentimiento de cookies y requisitos de hosting europeo.
WordPress impulsa más del 40% de la web, lo que lo convierte en el objetivo número uno de los ataques automatizados. Si tu sitio WordPress maneja datos de usuarios europeos — formularios de contacto, pedidos de comercio electrónico, suscripciones a newsletters o analítica — también tienes obligaciones del RGPD que la mayoría de las instalaciones por defecto de WordPress no cumplen.
Esta guía cubre ambos aspectos: endurecer tu instalación de WordPress contra amenazas del mundo real y asegurar que cumple los requisitos de la legislación europea de protección de datos.
Los dos problemas de WordPress por defecto
De serie, WordPress tiene dos brechas críticas:
Los valores de seguridad por defecto son débiles. Las actualizaciones automáticas solo cubren versiones menores, la página de inicio de sesión es públicamente accesible en una URL conocida, los permisos de archivos suelen ser demasiado permisivos, y la mayoría de los stacks de hosting omiten cabeceras básicas como Content-Security-Policy.
El cumplimiento del RGPD es inexistente. El núcleo de WordPress establece cookies, recopila direcciones IP en los comentarios y no proporciona ningún mecanismo de consentimiento. Los plugins lo empeoran: cada fragmento de analítica, constructor de formularios o widget social puede introducir transferencias de datos a terceros de las que eres legalmente responsable.
Solucionar ambos problemas requiere cambios a nivel de servidor, de aplicación y de plugins.
Endurecimiento a nivel de servidor
Antes de tocar WordPress, asegura el servidor en el que se ejecuta.
Usa un servidor alojado en Europa
Si tu audiencia está en la UE, tu servidor también debería estarlo. Alojar con un proveedor europeo en un centro de datos de la UE significa que los datos personales nunca abandonan la jurisdicción europea. Esta es la forma más sencilla de evitar los complejos mecanismos de transferencia internacional de datos.
Fuerza HTTPS en todo el sitio
Instala un certificado SSL (Let's Encrypt es gratuito) y fuerza todo el tráfico a través de HTTPS:
# .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Añade cabeceras de seguridad
Añade estas a tu configuración de Nginx o Apache:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';" always;
Restringe los permisos de archivos
Los archivos de WordPress deben ser propiedad del usuario del servidor web pero no tener permisos de escritura para todos:
find /var/www/wordpress -type d -exec chmod 755 {} \;
find /var/www/wordpress -type f -exec chmod 644 {} \;
chmod 600 /var/www/wordpress/wp-config.php
El archivo wp-config.php contiene las credenciales de la base de datos: nunca debe ser legible por otros usuarios del sistema.
Endurecimiento de la aplicación WordPress
Mueve wp-config.php por encima de la raíz web
WordPress busca automáticamente wp-config.php un directorio más arriba. Moverlo ahí evita el acceso web directo:
mv /var/www/wordpress/wp-config.php /var/www/wp-config.php
Desactiva la edición de archivos desde el panel de administración
Evita que atacantes que comprometan una cuenta de administrador editen archivos de temas/plugins:
// wp-config.php
define('DISALLOW_FILE_EDIT', true);
Cambia la URL de inicio de sesión
Las rutas por defecto /wp-admin y /wp-login.php son objetivo de todos los bots en internet. Usa un plugin como WPS Hide Login para cambiar la URL a algo único.
Limita los intentos de inicio de sesión
Instala un plugin como Limit Login Attempts Reloaded o configura fail2ban a nivel de servidor para bloquear ataques de fuerza bruta:
# /etc/fail2ban/jail.local
[wordpress]
enabled = true
filter = wordpress-auth
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
Mantén todo actualizado
Habilita las actualizaciones automáticas para versiones menores, plugins y temas:
// wp-config.php
define('WP_AUTO_UPDATE_CORE', 'minor');
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Para versiones mayores, prueba primero en un entorno de staging.
Usa prefijos de base de datos seguros
Cambia el prefijo de tablas por defecto wp_ durante la instalación. Si el sitio ya está en producción, es más difícil de cambiar, pero reduce la efectividad de los ataques de inyección SQL que asumen nombres de tablas por defecto.
Lista de verificación de cumplimiento del RGPD
La seguridad técnica es solo la mitad del panorama. Esto es lo que necesitas para el cumplimiento del RGPD:
1. Consentimiento de cookies
Debes obtener consentimiento explícito antes de establecer cookies no esenciales. Esto incluye analítica (Google Analytics, Matomo), píxeles de marketing (Facebook, LinkedIn) y contenido embebido (YouTube, Google Maps).
Usa una plataforma de gestión de consentimiento (CMP) que:
- Bloquee los scripts hasta que se dé el consentimiento (no solo un banner que no hace nada)
- Permita consentimiento granular por categoría
- Registre prueba del consentimiento
- Proporcione una forma fácil de retirar el consentimiento
2. Política de privacidad
Tu política de privacidad debe listar:
- Qué datos personales recopilas y por qué
- La base legal de cada actividad de tratamiento
- Quién recibe los datos (proveedor de hosting, servicio de email, analítica)
- Cuánto tiempo conservas los datos
- Cómo los usuarios pueden ejercer sus derechos (acceso, supresión, portabilidad)
3. Formularios de contacto y comentarios
Cada formulario que recopile datos personales necesita:
- Un enlace a tu política de privacidad
- Una casilla de consentimiento (para comunicaciones comerciales)
- Minimización de datos — recopila solo lo que realmente necesitas
Para los comentarios de WordPress, considera desactivarlos o usar una solución autoalojada en lugar de Disqus (que transfiere datos a EE. UU.).
4. Analítica sin transferencias a terceros
Google Analytics transfiere datos a servidores de EE. UU., lo que genera complicaciones con el RGPD tras la sentencia Schrems II. Alternativas:
- Matomo (autoalojado) — analítica completa, los datos permanecen en tu servidor
- Plausible (alojado en la UE) — ligero, respetuoso con la privacidad
- Fathom — analítica simple con opción de residencia de datos en la UE
5. Email y cumplimiento en newsletters
Si usas Mailchimp o servicios similares con sede en EE. UU., estás transfiriendo datos de suscriptores fuera de la UE. Considera alternativas europeas como Brevo (anteriormente Sendinblue) o soluciones autoalojadas como Listmonk.
6. Derecho de supresión
WordPress 4.9.6+ incluye una herramienta integrada de exportación y supresión de datos en Herramientas > Exportar/Borrar datos personales. Asegúrate de que funciona y cubre todos los plugins que almacenan datos de usuario.
Auditoría de seguridad de plugins
Los plugins son la mayor superficie de ataque en WordPress. Sigue estas reglas:
- Elimina los plugins no utilizados — incluso los plugins desactivados pueden ser explotados
- Comprueba la reputación del plugin — revisa la fecha de la última actualización, las instalaciones activas y la actividad del foro de soporte
- Audita los flujos de datos del plugin — ¿el plugin envía datos a servidores externos? Revisa la política de privacidad del plugin
- Minimiza los plugins — cada plugin es una vulnerabilidad potencial. Si puedes lograr el mismo resultado con unas pocas líneas en
functions.php, hazlo
Copias de seguridad de la base de datos y recuperación ante desastres
Haz una copia de seguridad diaria de tu base de datos y almacena las copias en una ubicación separada en la UE:
mysqldump -u wp_user -p wordpress_db | gzip > \
/backups/wp_$(date +%F).sql.gz
Prueba tu proceso de restauración regularmente. Una copia de seguridad que nunca has probado no es una copia de seguridad.
Cuando la seguridad de WordPress se convierte en tu trabajo a tiempo completo
Mantener WordPress seguro y conforme con el RGPD no es una tarea puntual. Requiere monitorización continua, parcheo, auditorías de plugins, renovación de certificados y verificación de copias de seguridad. Para muchas empresas, esta carga operativa es insostenible, especialmente cuando una sola actualización olvidada puede provocar una brecha o una infracción de cumplimiento.
Alplink ofrece hosting WordPress totalmente gestionado en infraestructura europea soberana. Nos encargamos del endurecimiento de seguridad, las actualizaciones automáticas, las copias de seguridad diarias, las configuraciones de servidor compatibles con el RGPD y la monitorización 24/7, todo ejecutándose sobre NixOS para despliegues reproducibles y auditables. Tus datos permanecen en Europa, tu sitio permanece seguro y tú te mantienes enfocado en tu negocio. Más información en alplink.eu.