20 consejos de seguridad para WordPress que sí funcionan

WordPress mueve más del 43% de las webs del mundo, y esa misma popularidad lo convierte en el primer destino de cualquier bot que rastrea internet buscando logins abiertos, plugins desactualizados y formularios sin filtrar. Si llevas un tiempo administrando una instalación de WordPress, sabes que las amenazas no son una posibilidad teórica: son tráfico real que llega a tu servidor cada noche, en forma de intentos de acceso a /wp-login.php, peticiones raras a xmlrpc.php o subidas extrañas a wp-content/uploads.

La buena noticia es que la mayoría de los problemas de seguridad en WordPress se resuelven con higiene básica bien aplicada. No hace falta montar un SOC ni contratar un consultor para parar el 95% de los ataques. Aquí van los 20 consejos que de verdad mueven la aguja, ordenados por impacto y dificultad. Si solo tienes media hora, empieza por los cinco primeros.

1. Mantén WordPress, plugins y temas al día

El parche más eficaz que existe contra una vulnerabilidad conocida es la propia actualización que la corrige. Wordfence publicó en 2024 que más del 50% de los ataques con éxito sobre WordPress aprovechaban fallos en plugins desactualizados, no en el core. Activa las actualizaciones automáticas para versiones menores y revisa una vez por semana las mayores. Si tienes una web crítica, entra en la guía de WordPress 7.0 antes de saltar a una versión nueva: lo de «actualizar a ciegas el viernes por la tarde» no es plan.

2. Contraseñas largas y un gestor que las recuerde por ti

Olvídate de «contraseñas robustas» con símbolos raros que nadie recuerda. Lo que de verdad funciona es la longitud: una passphrase de 20 caracteres con palabras al azar tarda años en caer por fuerza bruta, y la metes en Bitwarden, 1Password o KeePassXC y ya no la tocas nunca. Cambia las contraseñas cuando pase algo que las exponga, no por calendario. La rotación cada 30 días es una práctica obsoleta que el propio NIST desaconseja desde 2017.

3. Limita los intentos de login

Sin un límite, un bot puede probar miles de combinaciones contra /wp-login.php en una hora. Plugins como Limit Login Attempts Reloaded o WP Limit Login Attempts cierran la puerta tras 3 o 5 intentos fallidos durante minutos u horas, según configures. Es la medida con mejor relación esfuerzo/resultado de toda esta lista: cinco minutos de configuración te ahorran el 90% del ruido de fuerza bruta.

4. Activa la autenticación en dos factores (2FA)

Aunque alguien consiga tu contraseña, sin el código del segundo factor no entra. Plugins como Two Factor o WP 2FA permiten activar TOTP con Google Authenticator, Authy o Aegis en cuestión de minutos. Hazlo obligatorio para todas las cuentas con rol de administrador o editor. Si solo vas a aplicar una medida de esta lista por encima del límite de logins, que sea el 2FA.

5. Certificado SSL en todas las páginas

Hoy un sitio sin HTTPS es un sitio que Chrome marca como «no seguro» antes de que llegue el primer visitante. Con Let’s Encrypt el certificado es gratis y la mayoría de hostings lo activan en un clic. Asegúrate de redirigir todo el tráfico HTTP a HTTPS desde el .htaccess o desde la configuración del servidor, y revisa la cabecera HSTS si manejas datos sensibles o pasarela de pago.

6. Backups automáticos en otro servidor

Un backup que vive en el mismo servidor que la web no es un backup, es un archivo más que el atacante también va a borrar. UpdraftPlus, BackWPup o WP STAGING Pro mandan las copias a Dropbox, Google Drive, Amazon S3 o un FTP externo. La frecuencia depende de cuánto contenido nuevo subes: una tienda WooCommerce con pedidos cada hora necesita backups diarios, un blog con un post a la semana se conforma con uno semanal. Y comprueba al menos una vez al trimestre que el backup se restaura de verdad.

7. Permisos de archivos correctos: 644 y 755

La regla básica que pocos respetan: 644 para archivos (lectura para todos, escritura solo para el dueño) y 755 para directorios. wp-config.php idealmente a 600 o 640. Si tu hosting te deja entrar por SSH, con dos comandos se ajusta todo el árbol:

find /ruta/a/tu/wp -type d -exec chmod 755 {} \;
find /ruta/a/tu/wp -type f -exec chmod 644 {} \;
chmod 600 /ruta/a/tu/wp/wp-config.php

8. Plugins de seguridad: pocos y de los buenos

Wordfence, Solid Security (antes iThemes) y Sucuri Security cubren prácticamente todo lo que un sitio normal necesita: firewall, escaneo de malware, alertas, hardening básico. Elige uno y configúralo bien, no instales tres a la vez porque se pisan entre ellos y disparan los falsos positivos. Si tu hosting ya incluye WAF a nivel de servidor, casi mejor un plugin ligero solo para escaneo y logs.

9. Monitoriza la actividad real del sitio

WP Activity Log y Simple History registran cada acceso, cada cambio de plugin, cada edición de un post o de un fichero. Cuando algo va mal, ese log es la única forma realista de saber qué pasó y cuándo. Para auditorías más profundas tienes herramientas externas como Site Audit Snapshot, que genera un informe del estado del sitio en un solo clic y te ayuda a detectar configuraciones que se han ido degradando con el tiempo.

10. Blinda wp-config.php

El archivo guarda las credenciales de la base de datos, las claves SALT y las constantes que controlan el comportamiento del core. Tres ajustes que conviene aplicar desde el primer día:

  • Mover wp-config.php fuera del root público cuando el hosting lo permita, dejando un cargador en su sitio.
  • Bloquear el acceso por web con una regla en .htaccess: <Files wp-config.php> Require all denied </Files>.
  • Desactivar la edición de archivos desde el panel añadiendo define('DISALLOW_FILE_EDIT', true); antes del comentario «That’s all, stop editing».

11. WAF: en el hosting o delante con Cloudflare

Un firewall de aplicaciones web filtra el tráfico antes de que toque WordPress. Lo ideal es tenerlo en dos sitios: el WAF del hosting (si es un hosting WordPress decente lo lleva incluido) y un servicio CDN/WAF como Cloudflare delante, en modo proxy. Cloudflare en plan gratis ya bloquea la mayoría de ataques DDoS pequeños y filtra países enteros si te están dando guerra. En el plan Pro tienes WAF gestionado con reglas actualizadas por el equipo de Cloudflare.

12. Adiós al usuario «admin»

El primer nombre que prueba cualquier bot es «admin». Si en tu instalación todavía existe ese usuario, créate uno nuevo con rol de administrador, asígnale los posts del antiguo desde el listado de usuarios y borra el de «admin». También evita nombres obvios tipo «administrador», «webmaster» o tu propio nombre si aparece en los autores del blog: WordPress los expone por defecto en la URL /?author=1.

13. Protege el .htaccess

El .htaccess de la raíz controla las reglas de reescritura de URL. Si un atacante puede modificarlo, redirige tu web a donde quiera. Asegúrate de que sus permisos están en 644, bloquea su lectura desde el navegador y, si tienes un editor visual de htaccess, audita lo que metes ahí cada vez que un plugin pide tocarlo. En servidores con Nginx el equivalente está en el bloque server: revisa que solo el usuario root pueda editar la config.

14. Comentarios y spam bajo control

Si no usas los comentarios, desactívalos. En Ajustes > Comentarios, marca «Cerrar comentarios automáticamente en posts con más de 30 días» y en Discusión exige que el usuario rellene nombre y email. Si los usas, instala Akismet o Antispam Bee y filtra todo lo que llegue con más de un enlace. Cada comentario aprobado a ciegas es un agujero potencial de inyección.

15. Oculta la versión de WordPress (sin obsesionarte)

Por defecto WordPress imprime la versión en la metaetiqueta generator del HTML y en el feed RSS. Quitar esa información complica un poco el trabajo a los bots que escanean buscando versiones vulnerables, aunque por sí sola no detiene a nadie con tiempo. Es seguridad por oscuridad: complementa, no sustituye. La mayoría de plugins de seguridad ya traen la opción activada en su modo de hardening.

16. Restringe la subida de archivos a uploads

La carpeta wp-content/uploads es la favorita de los atacantes para colar shells PHP camufladas como imágenes. Bloquea la ejecución de PHP en esa carpeta con una regla en .htaccess:

<Files *.php>
  Require all denied
</Files>

Aunque alguien suba un fichero malicioso, no podrá ejecutarlo. Si usas Nginx, la regla equivalente va en el bloque location ~ /wp-content/uploads/.*\.php$ { deny all; }.

17. Logs detallados de quién toca qué

Más allá del log de actividad de WordPress, configura el log de acceso del servidor (Apache, Nginx, LiteSpeed) para guardar al menos 30 días. Cuando hay un incidente, los logs son la diferencia entre saber exactamente qué IP entró y a qué URL, o quedarte mirando un sitio caído sin pistas. Si usas Cloudflare, sus Logs (en plan Pro) o Logpush (en Enterprise) te dan una visión completa del tráfico antes de que toque tu hosting.

18. Forma a tu equipo

El eslabón más débil casi siempre es humano. Un editor que abre un PDF infectado en su portátil, un freelance al que le roban las credenciales por phishing, una agencia que reutiliza la misma contraseña para 30 clientes. Establece reglas claras, prohíbe compartir contraseñas por email o Slack, exige 2FA y haz una sesión rápida con el equipo cada vez que se incorpora alguien nuevo. Vale más eso que cualquier plugin caro.

19. Hosting WordPress decente, no el de 1 €

El hosting marca la diferencia entre que un ataque DDoS pequeño te tire la web en cinco minutos o ni te enteres. Un buen hosting WordPress tiene WAF propio, detecta anomalías en el tráfico, aísla cada cliente para que un sitio infectado no contagie al vecino y el soporte sabe levantar un backup sin que tengas que explicárselo. Si tu factura mensual es de 2 € y compartes IP con 4.000 webs, asume que la seguridad la pones tú al 100% por encima.

20. Auditoría periódica con IA o herramientas externas

Una vez al trimestre, pasa un escaneo completo. Wordfence, Sucuri SiteCheck o WPScan te dan un informe de estado en minutos. Si quieres ir más allá, hay herramientas que combinan IA y análisis estático del sitio, como Claude Code WordPress Expert, que audita la web sin necesidad de instalar nada. Lo importante es que la auditoría no se quede en un PDF: cada hallazgo se traduce en una tarea con dueño y fecha.

Mi recomendación si solo puedes hacer cinco cosas

Si ahora mismo tu instalación no tiene nada de esto y vas con el tiempo justo, prioriza así: actualizaciones automáticas activas, contraseñas largas con gestor y 2FA en administradores, límite de intentos de login, backups diarios fuera del servidor y un buen hosting. Con esos cinco puntos te quitas de encima la inmensa mayoría de los ataques que circulan por la red. El resto de consejos suma capas, pero esos cinco son la base que no se discute.

Preguntas frecuentes

¿Cada cuánto debería actualizar plugins y temas?

Las actualizaciones menores y de seguridad, en cuanto salen. Las mayores, después de revisar el changelog y, si la web es crítica, probarlas antes en un staging. WordPress permite activar las automáticas por plugin desde el listado del panel: marca como mínimo las de seguridad para todos los plugins activos.

¿Vale la pena pagar un plugin de seguridad premium?

Para una web personal, los planes gratuitos de Wordfence o Solid Security cubren bien. Si gestionas una tienda WooCommerce con tráfico, una membresía o una web de empresa con datos sensibles, los planes pagos te dan reglas WAF actualizadas a tiempo real, escaneo de malware más profundo y soporte directo. Sale rentable comparado con limpiar una infección.

¿Qué hago si creo que ya estoy infectado?

Pon la web en mantenimiento, lanza un escaneo con Wordfence o Sucuri y compara los archivos del core con los originales (Wordfence lo hace automáticamente). Si encuentras shells o código sospechoso, restaura desde un backup anterior al incidente, cambia todas las contraseñas (WP, FTP, base de datos, hosting) y regenera las claves SALT en wp-config.php. Si no te sientes cómodo, contrata un servicio de limpieza profesional: Sucuri o Astra cobran entre 200 y 400 € y dejan la web limpia y monitorizada.

¿Es seguro tener WooCommerce con datos de pago?

Sí, siempre que delegues el pago en pasarelas externas como Stripe, Redsys o PayPal y no almacenes datos de tarjeta en tu base de datos. Activa SSL en toda la web, mantén WooCommerce y sus extensiones al día, exige 2FA a los administradores y revisa los logs de pedidos por si aparecen patrones raros (mismas IPs, importes idénticos, intentos fallidos masivos).

¿Cloudflare gratis es suficiente para una web pequeña?

Para una web personal o un blog que no maneja datos sensibles, Cloudflare gratuito ya frena la mayoría de los ataques DDoS pequeños, oculta la IP real del servidor y permite reglas básicas de firewall. Si tienes una tienda, una membresía o cualquier proyecto que pierda dinero cuando se cae, el plan Pro a 20 dólares al mes con WAF gestionado merece la pena.

MyR

Te puede interesar...

    Comments are closed

    WordPress Directo
    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.