En pocas palabras: Para proteger el wp-admin, cambiá la URL del login con WPS Hide Login, limitá los intentos a 5 cada 4 horas y bloqueá las IPs sospechosas desde .htaccess o un firewall. Esas tres capas frenan la fuerza bruta que Wordfence llegó a registrar en picos históricos de 90.000 intentos por minuto.
Proteger el wp-admin de WordPress arranca con tres movimientos concretos: mover la URL de acceso con un plugin como WPS Hide Login, limitar los intentos de login a unos cinco cada cuatro horas y bloquear IPs sospechosas desde .htaccess o un firewall. Combinadas, esas capas frenan prácticamente cualquier ataque automatizado contra tu panel.
El wp-admin es el panel de administración de WordPress: la puerta por la que un administrador publica contenido, instala plugins y gestiona usuarios. Por eso concentra la mayoría de los ataques de fuerza bruta. Según los registros históricos de Wordfence, estas campañas llegaron a picos de 90.000 intentos de acceso por minuto, y el grueso apunta directo al formulario de login.
En 30 segundos
- 90.000 intentos por minuto: pico histórico de ataques de fuerza bruta registrado por Wordfence, con la enorme mayoría dirigida a la pantalla de login.
- URL nueva en 5 minutos: WPS Hide Login, gratuito y con más de 1 millón de instalaciones activas a agosto de 2026, mueve el login a la dirección que vos elijas.
- 5 intentos y 4 horas: los valores que recomienda Wordfence antes de bloquear una IP, que queda fuera otras 4 horas.
- .htaccess como candado: una whitelist de IPs en wp-login.php deja afuera a todo el resto del mundo.
- Tres capas juntas: combinadas, detienen cerca del 99% de los ataques automatizados según estimaciones de la propia Wordfence.
¿Qué es un ataque de fuerza bruta contra wp-admin y por qué es peligroso?
Ponele que un lunes a la mañana abrís las métricas del sitio y encontrás miles de peticiones POST a /wp-login.php viniendo de direcciones de medio planeta. Eso es fuerza bruta: un software automatizado prueba combinaciones de usuario y contraseña una y otra vez hasta que alguna entra.
¿Y por qué el wp-admin es el blanco favorito? Porque es la llave maestra del sitio.
Dentro del panel, quien entró puede subir un plugin con malware, crear usuarios nuevos, redirigir tu tráfico a páginas de spam o usar tu servidor para enviar phishing. Y hay un detalle que agrava todo: la documentación oficial de WordPress reconoce que el core no limita la cantidad de intentos de login, así que el bot insiste sin castigo mientras tu servidor procesa cada petición, gasta CPU y llena los logs. Si la campaña es distribuida, son cientos de IPs distintas repitiendo el mismo ciclo al mismo tiempo. De acuerdo con los datos de Wordfence, cerca del 90% de estos intentos apunta a la pantalla de acceso del panel.
¿Cómo cambiar la URL de wp-admin en WordPress? Paso a paso con WPS Hide Login
La forma más prolija de cambiar la URL es usar un plugin dedicado, porque aparte de renombrar la dirección maneja redirecciones y cookies. WPS Hide Login, gratuito y con más de 1 millón de instalaciones activas a agosto de 2026 según su ficha en el directorio oficial de WordPress, es el clásico del rubro y funciona con casi cualquier setup.
- Hacé backup: tocar el login sin red de seguridad es pedir problemas.
- Instalá el plugin: Plugins → Añadir nuevo, buscá «WPS Hide Login», instalar y activar.
- Elegí la URL nueva: andá a Ajustes → Generales y bajá al final. En «URL de login» poné algo poco obvio, tipo /mi-panel-2026. Evitá «login» o «admin».
- Definí la redirección: indicá a dónde cae quien entre por la URL vieja (un 404 o la home).
- Guardá y probá en incógnito: entrá por la URL nueva antes de cerrar tu sesión actual. Siempre.
- Anotala: guardala en tu gestor de contraseñas, porque la vas a necesitar.
Se puede intentar con RewriteRules a mano en .htaccess, pero entre cachés y cookies suele terminar en dolor de cabeza. El plugin existe justo por eso.
¿Es seguro cambiar la URL del login? Ventajas y riesgos
Cambia el juego en volumen: los bots escanean rutas por defecto a mansalva, y al mover la URL dejás de aparecer en esos barridos masivos. Ahora bien, esto es «seguridad por oscuridad»: baja el ruido, no blinda nada. Un atacante decidido puede encontrar la dirección nueva por logs filtrados, referencias o simplemente paciencia. Ojo también con conflictos: algunos plugins de membresías o de seguridad esperan encontrar wp-login.php y pueden pelearse, aunque en la práctica son casos puntuales. En nuestra guía para configurar Sucuri profundizamos sobre esto.
¿Qué pasa si olvidás la nueva URL de wp-admin?
Tenés dos salidas. La rápida: entrá al administrador de archivos de tu hosting (o por FTP) y renombrá la carpeta wp-content/plugins/wps-hide-login; al desactivarse el plugin, /wp-login.php vuelve a la vida. La lenta: buscá el valor en la tabla wp_options de la base de datos. Prevenir cuesta menos: bookmark directo.
¿Cómo limitar los intentos de inicio de sesión en WordPress?
Como el core no trae límite nativo, tenés tres caminos progresivos: un plugin específico, una suite de seguridad completa o reglas a nivel servidor. Arranco por el más simple.
Opción 1: Limit Login Attempts Reloaded
Instalás el plugin, entrás a sus ajustes y configurás el corazón del tema: cuántos intentos fallidos tolerar, en qué ventana de tiempo, y cuánto dura el bloqueo. Una config sólida, que coincide con lo que recomienda la documentación de Wordfence, es 5 intentos fallidos dentro de una ventana de 4 horas, con bloqueo de 4 horas para la IP infractora. Agregá tu IP a la whitelist para no auto-bloquearte, y activá los avisos por mail si querés enterarte de quién anda probando claves.
Opción 2: Wordfence Security, el camino completo
Wordfence junta firewall, límite de intentos, escaneo de malware y tráfico en vivo en un solo plugin. La versión gratuita ofrece protección contra fuerza bruta con esos mismos valores ajustables; la de pago agrega bloqueo por país y reglas en tiempo real. Si querés una sola herramienta que vigile todo, es la opción más redonda.
Opción 3: sin plugins, directo en el servidor
Vía .htaccess podés filtrar por IP o pedir autenticación extra. Es la más robusta y la más delicada de mantener; la vemos en detalle en la sección siguiente.
| Método | Qué hace | Dificultad | Cuándo conviene |
|---|---|---|---|
| WPS Hide Login | Mueve el login a otra URL y redirige la vieja | Baja | Todos los sitios, siempre |
| Limit Login Attempts Reloaded | Bloquea la IP tras X intentos fallidos | Baja | Sitios con varios autores o registro abierto |
| Wordfence Security | Firewall, límite de intentos, escaneo y tráfico en vivo | Media | Cuando querés todo en una herramienta |
| .htaccess (whitelist) | Solo deja entrar a tu IP en wp-login.php | Alta | IP fija, oficina o VPN propia |
| .htaccess (XML-RPC off) | Cierra xmlrpc.php por completo | Media | Si no usás Jetpack ni la app móvil |

¿Cómo bloquear IPs en la administración de WordPress con .htaccess?
La jugada más efectiva es invertir la lógica: en vez de bloquear atacantes uno por uno, permitís solo tu IP y denegás al resto. Editás el archivo .htaccess en la raíz de tu instalación desde el administrador de archivos del panel de hosting; en donweb.com, por ejemplo, lo abrís directo desde el gestor de archivos.
Método 1, proteger solo la pantalla de login (Apache 2.2):
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 203.0.113.25
</Files>
En servidores con Apache 2.4 o superior, la sintaxis cambió:
<Files wp-login.php>
Require ip 203.0.113.25
</Files>
Reemplazá 203.0.113.25 por tu IP real. Método 2, un .htaccess propio dentro de la carpeta /wp-admin con las mismas directivas, cubriendo todo el panel. Acá va una advertencia que pocos mencionan: admin-ajax.php vive dentro de /wp-admin, así que si denegás todo en bloque rompés funcionalidades de plugins para visitantes. La solución es permitir ese archivo explícitamente: Para más detalles técnicos, mirá activar la verificación en dos pasos.
<Files "admin-ajax.php">
Require all granted
</Files>
¿Y qué pasa si tu sitio está detrás de una CDN como Cloudflare? Que el IP que ves es el del proxy, no el del visitante, y la whitelist se te convierte en un bloqueo masivo. En ese caso, usá las reglas de firewall de la propia plataforma o restaurá la cabecera de IP original.
Otro clásico: ¿qué pasa cuando tu proveedor te rota la IP dinámica? Exacto, quedás afuera de tu propio panel. Si tu IP cambia seguido, dejá la whitelist y apoyate en el límite de intentos.
Para ver quién te está atacando, Wordfence muestra el tráfico en vivo con las IPs que prueban credenciales, Limit Login Attempts Reloaded registra los intentos fallidos con usuario e IP, y los logs de acceso crudos del hosting tienen la foto completa.
¿Preferís bloquear IPs puntuales con plugin? Wordfence lo permite desde su pestaña Blocking, con bloques manuales por IP o rangos enteros.
¿Qué es XML-RPC en WordPress y cómo desactivarlo?
XML-RPC es un protocolo antiguo de WordPress que permite ejecutar acciones a distancia: publicar desde la app móvil, conectar Jetpack, recibir pingbacks. Su problema es que la función system.multicall mete decenas de pruebas de usuario y contraseña en una sola petición, así que los plugins que cuentan intentos ven una solicitud amable mientras el bot probó 50 combinaciones. Si no sabías que existía, es probable que no lo necesites. Complementá con configurar el doble factor sin errores.
Para cerrarlo vía .htaccess:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
O con código, agregando esto a un plugin de funciones propio:
add_filter('xmlrpc_enabled', '__return_false');
Eso sí: si usás Jetpack o la aplicación móvil de WordPress, al desactivarlo esas integraciones dejan de funcionar. Decidí en función de cómo administrás el sitio.
¿Por qué una sola medida no alcanza? La estrategia de 3 capas
Cada capa tiene puntos ciegos: la URL oculta no frena a quien la encuentra, el límite de intentos no protege una contraseña débil, y la whitelist de IP se rompe con conexiones dinámicas. Juntas se tapan mutuamente, y según estimaciones publicadas por la propia Wordfence esta combinación detiene alrededor del 99% de los ataques automatizados.
- Cambiá la URL del login: WPS Hide Login, cinco minutos.
- Limitá los intentos: 5 fallos por ventana de 4 horas, bloqueo de 4 horas.
- Cerrá XML-RPC si no lo usás.
- Sumá whitelist de IP solo si tu conexión tiene IP estable.
- Probá todo en ventana incógnito y documentá la URL nueva.
Media hora de trabajo, en total. Es el mejor retorno por hora invertida que vas a encontrar en seguridad web.
Medidas avanzadas: 2FA, WAF y autenticación adicional
Con las tres capas base resueltas, estos refuerzos suman profundidad sin complicar tu día a día. Son complementarios, no reemplazan nada de lo anterior.
- Doble factor (2FA): Wordfence incluye módulo de login con 2FA incluso gratis; un código temporal en el celular salva el día aunque filtran la contraseña.
- Contraseña extra a nivel servidor: la autenticación HTTP básica sobre el directorio del panel (muchos paneles la traen como «privacidad de directorio») pone una segunda puerta antes del formulario.
- Firewall de aplicación: el WAF de Wordfence o reglas a nivel CDN filtran patrones de ataque antes de que lleguen a PHP.
- Higiene básica: usuario distinto de «admin», contraseñas únicas guardadas en un gestor, y WordPress, plugins y temas al día.
Frecuencia de revisión: mirá los logs una vez al mes, diez minutos que suelen revelar campañas antes de que molesten. Sobre eso hablamos en blindar WordPress contra los hackers.
Cuatro errores comunes al proteger el wp-admin
- Confiar solo en la URL oculta. Es la trampa más frecuente: la «invisibilidad» baja el ruido pero un ataque dirigido la atraviesa. Sumá límite de intentos y 2FA sí o sí.
- Ponerte en whitelist con IP dinámica. Tu proveedor rota la dirección y un martes amanecés bloqueado de tu propio sitio. Probá con datos móviles antes de confiar en la regla.
- Dejar vivo el usuario «admin». Los bots lo prueban primero porque millones de sitios lo tuvieron. Creá otro administrador, transferí el contenido y borrá el viejo.
- Cerrar la sesión sin probar. Cambiás la URL, cerrás sesión, y había un typo en la dirección nueva. La ventana incógnito existe por algo.
Preguntas Frecuentes
¿Cuántos intentos de login debo permitir antes de bloquear?
Los valores que recomienda Wordfence son 5 intentos fallidos dentro de una ventana de 4 horas, con bloqueo de la IP por otras 4 horas. Para un sitio personal podés ser más estricto; para uno con muchos autores, ampliá la ventana para no molestar al equipo.
¿Qué plugin es mejor para proteger el wp-admin de WordPress?
No hay uno único: la combinación ganadora es WPS Hide Login para mover la URL más Limit Login Attempts Reloaded o Wordfence para limitar intentos. Si preferís todo en una sola herramienta, Wordfence cubre firewall, límites y escaneo.
¿Cambiar la URL del wp-admin afecta otros plugins o temas?
En la gran mayoría de los casos, no. Los conflictos aparecen con algunos plugins de membresías o de seguridad que buscan wp-login.php de forma fija. Probá en ventana incógnito después del cambio y verificá el flujo completo de login.
¿Qué hago si olvido la nueva URL de wp-admin y no puedo acceder?
Renombrá la carpeta wp-content/plugins/wps-hide-login desde el administrador de archivos del hosting o por FTP; al quedar desactivado el plugin, /wp-login.php vuelve a responder. Después reconfigurá y anotá la URL en un lugar seguro.
¿Qué es un ataque de fuerza bruta y por qué afecta al wp-admin?
Un ataque de fuerza bruta prueba combinaciones de usuario y contraseña de forma automatizada hasta dar con una válida. El wp-admin concentra esos ataques porque controla todo el sitio, y WordPress no limita intentos por defecto.
Conclusión
Blindar el wp-admin dejó de ser opcional: con campañas históricas que llegaron a 90.000 intentos por minuto según Wordfence, cualquier sitio WordPress sin límites de login es blanco automático. El plan concreto de hoy es simple: instalá WPS Hide Login y mové la URL, configurá el límite de 5 intentos con bloqueo de 4 horas, y cerrá XML-RPC si no lo usás. Si tu conexión tiene IP fija, rematá con la whitelist en .htaccess y, si querés ir por más, 2FA encima. Media hora de trabajo que convierte tu panel de «puerta abierta» a «puerta con tres cerraduras».