🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Restringir el acceso a wp-login.php en WordPress

Actualizado el 8 de junio de 2026

¿Cansado de ver intentos de acceso raros en tu WordPress? No estás solo. Proteger el login es una de las tareas más importantes para mantener tu web sana, y hoy te voy a enseñar exactamente cómo hacerlo, paso a paso y sin tecnicismos raros.

¿Por qué es tan importante proteger wp-login.php?

Imagina que tu web es una casa. La puerta principal es wp-login.php, el archivo que permite entrar a tu panel de administración. Si dejas esa puerta sin llave, cualquiera puede intentar entrar. Y cuando digo cualquiera, me refiero a bots y programas automáticos que prueban miles de contraseñas por minuto.

Esto se llama ataques de fuerza bruta WordPress, y es la pesadilla de cualquier administrador. No importa si tu web es un blog pequeño o una tienda online enorme: los atacantes no discriminan. Buscan cualquier WordPress con una puerta abierta para colarse, instalar malware, robar datos o, simplemente, romper tu web por diversión.

La buena noticia es que restringir el acceso a wp-login.php es más fácil de lo que parece. Con unos pocos ajustes, puedes convertir esa puerta en una bóveda blindada. Vamos a verlo.

Señales de que te están atacando ahora mismo

Antes de ponernos manos a la obra, es bueno que sepas detectar si ya estás sufriendo un ataque. Estas son las señales más comunes:

  • Tu web va lenta sin razón aparente: los ataques consumen recursos del servidor.
  • Ves intentos de acceso fallidos en los registros de tu hosting (logs).
  • Recibes correos raros de "nuevo usuario registrado" o "contraseña cambiada" que no has hecho tú.
  • Aparecen archivos extraños en tu carpeta de WordPress que no recuerdas haber subido.
  • Google te marca tu web como peligrosa o "hackeada".

Si has visto alguna de estas señales, no te asustes. Respira hondo. Lo que vamos a hacer ahora mismo es ponerle freno a todo eso.

Método 1: Cambiar la URL de acceso (el clásico)

Este es el método más conocido y uno de los más efectivos para restringir wp-login.php. La idea es simple: si los atacantes no saben dónde está la puerta, no pueden intentar abrirla.

¿En qué consiste exactamente?

En lugar de acceder a tudominio.com/wp-login.php, tú accedes a una URL secreta que solo tú conoces, como tudominio.com/acceso-privado. El archivo original queda desactivado o redirigido, así que los bots que buscan la URL por defecto se estrellan contra un muro.

Cómo hacerlo con un plugin (la vía fácil)

Para esto, te recomiendo usar un plugin llamado WPS Hide Login. Es gratuito, ligero y funciona de maravilla.

Pasos a seguir:

  1. Ve a tu panel de administración (si todavía puedes entrar) y navega hasta Plugins > Añadir nuevo.
  2. Busca "WPS Hide Login" e instálalo. Actívalo.
  3. Una vez activado, ve a Ajustes > WPS Hide Login.
  4. Verás un campo llamado "URL de acceso" o "Login URL". Ahí escribe la nueva dirección que quieres usar. Por ejemplo: mi-acceso-secreto.
  5. Guarda los cambios.

¡Importante! Anota la nueva URL en un lugar seguro. Si la pierdes, no podrás acceder a tu panel. Te recomiendo guardarla en un gestor de contraseñas o en una nota privada.

[WARNING] No uses URLs obvias como "admin", "login" o "entrar". Los atacantes también prueban con esas. Usa algo aleatorio y difícil de adivinar, como "acceso-confidencial-2024" o una combinación de letras y números sin sentido.

Cómo hacerlo editando el archivo functions.php (la vía manual)

Si eres más atrevido y no quieres instalar otro plugin, puedes hacerlo editando el archivo de funciones de tu tema. Pero ojo: si lo haces mal, puedes romper tu web. Hazlo solo si te sientes cómodo editando código.

Abre el archivo functions.php de tu tema hijo (¡nunca del tema padre!) y añade este código al final:

// Redirigir cualquier acceso directo a wp-login.php
add_action('init', 'redirect_login_page');
function redirect_login_page() {
    $login_url = home_url('/mi-acceso-secreto/');
    if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false) {
        wp_redirect($login_url);
        exit();
    }
}

// Cambiar la URL de login
add_filter('login_url', 'custom_login_url', 10, 2);
function custom_login_url($url, $redirect) {
    $login_url = home_url('/mi-acceso-secreto/');
    if (!empty($redirect)) {
        $login_url = add_query_arg('redirect_to', $redirect, $login_url);
    }
    return $login_url;
}

// Manejar la nueva URL de login
add_action('init', 'handle_custom_login');
function handle_custom_login() {
    $login_slug = 'mi-acceso-secreto';
    if (strpos($_SERVER['REQUEST_URI'], $login_slug) !== false) {
        // Cargar el formulario de login
        require_once(ABSPATH . 'wp-login.php');
        exit();
    }
}

Recuerda cambiar mi-acceso-secreto por tu propia URL secreta.

[INFO] Este método es más avanzado y puede dar problemas con algunos temas o plugins. Si no estás seguro, quédate con la opción del plugin. Es más segura y fácil de revertir.

Método 2: Bloquear por IP (control de acceso total)

Otra forma excelente de proteger el login WordPress es limitar quién puede acceder. Si solo tú (o tu equipo) necesitáis entrar, puedes bloquear el acceso a todo el mundo excepto a tus direcciones IP.

¿Qué es una dirección IP?

Es como la matrícula de tu coche, pero para internet. Cada dispositivo conectado a la red tiene una. Puedes descubrir la tuya buscando "cuál es mi IP" en Google.

Cómo bloquear por IP con .htaccess

Este método es para usuarios con hosting que use Apache (la mayoría). Accede a tu servidor mediante FTP o el administrador de archivos de tu hosting y busca el archivo .htaccess en la raíz de tu WordPress.

Añade este código al final del archivo:

# Bloquear wp-login.php excepto para IPs permitidas
<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 123.456.789.000
    Allow from 987.654.321.000
</Files>

Sustituye las direcciones IP de ejemplo por las tuyas. Si no sabes tu IP, búscala en Google antes de empezar.

[WARNING] Este método es muy efectivo, pero tiene un riesgo: si tu IP cambia (algo común con IPs dinámicas), te quedarás fuera de tu propio WordPress. Asegúrate de tener acceso al servidor por FTP o al panel de control de tu hosting para poder revertir el cambio si es necesario.

Cómo bloquear por IP en Syspanel

Si tu hosting usa Syspanel (el panel de control que antes se llamaba HestiaCP), el proceso es un poco diferente y más visual. Recuerda que para acceder a Syspanel, la URL es https://tudominio.com:2106.

Pasos en Syspanel:

  1. Accede a tu panel Syspanel usando el puerto 2106.
  2. Ve a la sección de "Web" o "Sitios web" y selecciona tu dominio.
  3. Busca la opción de "Proxy" o "Configuración de Apache" (dependiendo de la versión).
  4. Ahí podrás añadir reglas de acceso. Busca la opción de añadir una regla personalizada para el archivo wp-login.php.
  5. Añade tu IP a la lista blanca (allow) y deniega el acceso al resto (deny).

[TIP] En Syspanel, también puedes usar la función de "Firewall" que viene integrada. Ve a la sección de Firewall y añade una regla para bloquear el puerto 80 (HTTP) o 443 (HTTPS) para direcciones IP específicas, excepto la tuya. Es una capa extra de seguridad muy potente.

Método 3: Añadir autenticación de doble factor (2FA)

Esta es la forma más moderna y segura de restringir el acceso a wp-login.php. Aunque no bloquea la URL en sí, añade una capa extra que hace prácticamente imposible que un atacante entre, incluso si tiene tu contraseña.

¿Cómo funciona el 2FA?

Es como tener una segunda llave para tu puerta. Además de la contraseña, necesitas un código que se genera en tu móvil cada 30 segundos. Sin ese código, no hay entrada posible.

Cómo activar el 2FA

  1. Instala un plugin como Google Authenticator o WP 2FA.
  2. Actívalo y ve a tu perfil de usuario en WordPress.
  3. Escanea el código QR con la app de Google Authenticator en tu móvil.
  4. Introduce el código de 6 dígitos que te da la app para verificar.
  5. ¡Listo! A partir de ahora, cada vez que intentes entrar, te pedirá tu contraseña y el código de tu móvil.

[INFO] El 2FA no solo protege contra ataques de fuerza bruta, sino también contra el phishing (suplantación de identidad). Incluso si alguien consigue tu contraseña, no podrá entrar sin tu móvil.

Método 4: Limitar los intentos de acceso

Este es un complemento perfecto para cualquier otro método. La idea es simple: si alguien falla la contraseña 3 o 5 veces, se bloquea su IP durante un tiempo.

Cómo limitar intentos

Puedes usar el plugin Limit Login Attempts Reloaded. Es muy configurable y fácil de usar.

Configuración recomendada:

  • Máximo de intentos: 3
  • Tiempo de bloqueo: 15 minutos
  • Bloqueo después de varios fallos: sí
  • Mensaje de error personalizado: "Demasiados intentos fallidos. Inténtalo de nuevo en 15 minutos."

Esto hace que los bots que prueban miles de contraseñas se bloqueen a los pocos intentos, ralentizando muchísimo sus ataques.

Método 5: Proteger con contraseña a nivel de servidor

Este es el método más radical y efectivo. Consiste en poner una contraseña adicional a nivel de servidor, antes incluso de que llegue a WordPress. Es como tener una puerta blindada antes de la puerta principal.

Cómo hacerlo

  1. Accede a tu servidor por FTP o al administrador de archivos.
  2. Crea un archivo llamado .htpasswd en un directorio seguro (fuera de la carpeta pública).
  3. Genera un usuario y contraseña cifrada. Puedes usar herramientas online como "htpasswd generator".
  4. Añade este código a tu archivo .htaccess:
<Files wp-login.php>
    AuthName "Acceso Restringido"
    AuthType Basic
    AuthUserFile /ruta/completa/a/tu/.htpasswd
    Require valid-user
</Files>

[WARNING] Asegúrate de que la ruta al archivo .htpasswd sea correcta. Si no, bloquearás el acceso a todo el mundo, incluido tú. Es un método muy potente, pero también el más delicado.

¿Qué método es el mejor para mí?

No hay una respuesta única. Depende de tu nivel de comodidad técnica y de las necesidades de tu web. Aquí tienes una guía rápida:

  • Para principiantes: Empieza con WPS Hide Login + Limit Login Attempts Reloaded. Es fácil, reversible y muy efectivo.
  • Para usuarios intermedios: Añade el bloqueo por IP a la mezcla. Solo si tu IP es fija.
  • Para los más avanzados: Combina WPS Hide Login + 2FA + bloqueo por IP + limitación de intentos. Es la combinación definitiva.

Preguntas frecuentes (FAQ)

¿Puedo restringir el acceso solo a ciertos usuarios?

Sí, el método de bloqueo por IP es perfecto para eso. Puedes permitir solo las IPs de los administradores y editores de tu equipo.

¿Qué pasa si me olvido de la nueva URL de acceso?

Es un problema, pero no el fin del mundo. Puedes acceder a tu base de datos (phpMyAdmin) y desactivar el plugin desde la tabla wp_options. También puedes usar FTP para renombrar la carpeta del plugin.

¿Estos métodos afectan al SEO?

No. Los buscadores no indexan la página de login de WordPress. De hecho, protegerla puede mejorar tu seguridad general, lo que Google valora positivamente.

¿Puedo usar varios métodos a la vez?

¡Por supuesto! De hecho, es lo recomendado. La seguridad en capas es la mejor estrategia. Cuantas más barreras pongas, más difícil será para los atacantes.

¿Qué hago si mi web ya ha sido hackeada?

Primero, no entres en pánico. Cambia todas tus contraseñas, incluyendo las de FTP, base de datos y WordPress. Después, instala un plugin de seguridad como Wordfence para escanear y limpiar tu web. Si el daño es extenso, considera restaurar una copia de seguridad limpia.

Conclusión: la seguridad es un hábito, no un evento

Restringir wp-login.php no es una tarea de una sola vez. Es un hábito que debes mantener. Los atacantes siempre están buscando nuevas formas de entrar, así que debes estar un paso por delante.

Empieza hoy mismo con un método sencillo como WPS Hide Login. Dedica 10 minutos a configurarlo y dormirás mucho más tranquilo sabiendo que tu web está protegida.

Recuerda: tu web es tu negocio, tu proyecto, tu pasión. No la dejes desprotegida. Con estos pasos, estás construyendo un muro sólido contra los ataques de fuerza bruta WordPress y garantizando que solo tú decidas quién entra y quién no.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel