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

Restringir acceso a wp-admin por IP en WordPress

Actualizado el 1 de abril de 2026

¿Por qué restringir el acceso a wp-admin por IP?

Si tienes un sitio web en WordPress, seguro que alguna vez has visto en tus estadísticas intentos de acceso extraños. Es algo habitual: bots y atacantes automáticos prueban constantemente contraseñas en la URL wp-login.php o en el directorio wp-admin. Es como si alguien intentara forzar la puerta de tu casa a todas horas.

Limitar el acceso a wp-admin por IP es una de las medidas de seguridad más efectivas y simples que puedes aplicar. Básicamente, le dices a tu servidor: "Solo permito la entrada a esta zona privada desde estas direcciones IP concretas". El resto del mundo recibirá un error 403 (Acceso Prohibido) y ni siquiera verá la pantalla de inicio de sesión.

Este método reduce drásticamente los ataques de fuerza bruta y añade una capa extra de protección a tu panel de administración. No es infalible, pero combinado con otras prácticas, convierte tu WordPress en un objetivo mucho menos atractivo.

En este artículo, te explicaré paso a paso cómo hacerlo, qué opciones tienes según tu tipo de hosting (cPanel, VPS, Nginx, etc.) y qué precauciones debes tomar para no quedarte fuera de tu propio sitio.


Antes de empezar: ¿Cuál es tu dirección IP?

Parece obvio, pero es el primer paso. Para restringir wp-admin, necesitas saber cuál es tu dirección IP pública actual. Esta es la que te identifica en Internet cuando te conectas desde tu casa u oficina.

Puedes averiguarla fácilmente visitando sitios como whatismyip.com o simplemente buscando "cuál es mi IP" en Google. Anota ese número, porque lo usarás en los siguientes pasos.

[WARNING] Muchas conexiones domésticas usan IPs dinámicas, es decir, cambian cada cierto tiempo (cada 24 horas o cada pocos días). Si tu IP cambia y no la actualizas en la configuración, te quedarás sin acceso a tu propio panel. Si te pasa esto, tendrás que acceder por FTP o al panel de control de tu hosting para revertir el cambio.


Método 1: Restringir por IP con un plugin (el más fácil)

Si no te sientes cómodo editando archivos, esta es tu opción. Los plugins hacen el trabajo sucio por ti y suelen ser muy intuitivos.

Paso 1: Instalar un plugin de seguridad

Existen muchos plugins, pero los más populares para esta tarea son iThemes Security, Wordfence o Limit Login Attempts Reloaded. En este ejemplo, usaremos iThemes Security porque tiene una opción muy clara para esto.

  1. Ve a tu panel de administración de WordPress (wp-admin).
  2. Navega a Plugins > Añadir nuevo.
  3. Busca "iThemes Security" y haz clic en Instalar ahora y luego Activar.

Paso 2: Configurar la restricción

  1. Una vez activado, ve a Seguridad > Ajustes.
  2. Busca la sección que dice Protección del sistema o Sistema de archivos.
  3. Localiza la opción "Restringir el acceso al panel de administración" o "IPs permitidas".
  4. Introduce tu dirección IP en el campo correspondiente.
  5. Guarda los cambios.

El plugin se encargará de modificar los archivos del servidor por ti. Es la forma más rápida y menos propensa a errores.

[TIP] Si usas un plugin de caché, asegúrate de purgar la caché después de hacer este cambio para que se aplique correctamente.


Método 2: Editar el archivo .htaccess (Hosting con Apache/Cpanel)

Este es el método clásico para proteger login WordPress en la mayoría de los hostings compartidos que usan Apache. Es muy efectivo y no requiere instalar nada extra.

Paso 1: Acceder a los archivos de tu sitio

Tienes dos formas: a través del Administrador de Archivos de cPanel o mediante un cliente FTP como FileZilla. Conecta y localiza la carpeta raíz de tu instalación de WordPress (normalmente es public_html).

Paso 2: Localizar el archivo .htaccess

Este archivo suele estar oculto. Si usas el Administrador de Archivos de cPanel, activa la opción "Mostrar archivos ocultos". Si usas FTP, asegúrate de que tu cliente esté configurado para verlos.

Abre el archivo .htaccess con un editor de texto (el Bloc de notas o el editor propio de cPanel).

Paso 3: Añadir el código de restricción

Al final del archivo, pega el siguiente bloque de código:

# RESTRINGIR WP-ADMIN POR IP
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from TU_IP_AQUI
</Files>

<Directory wp-admin>
Order Deny,Allow
Deny from all
Allow from TU_IP_AQUI
</Directory>

Es crucial que reemplaces TU_IP_AQUI con tu dirección IP real.

Guarda los cambios y sube el archivo de nuevo si lo estabas editando localmente.

¿Cómo funciona este código?

  • <Files wp-login.php>: Aplica la regla al archivo de inicio de sesión.
  • <Directory wp-admin>: Aplica la regla a todo el directorio de administración.
  • Deny from all: Bloquea el acceso a todo el mundo.
  • Allow from TU_IP_AQUI: Excepto a tu IP.

[WARNING] Si editas el .htaccess y te equivocas con la IP, puedes bloquear tu acceso. Siempre ten una copia de seguridad del archivo original antes de editarlo. Si te bloqueas, puedes eliminar el archivo .htaccess por FTP y WordPress lo regenerará (perderás otras reglas, como las de permalinks, pero recuperarás el acceso).


Método 3: Restringir en servidores Nginx

Si tu hosting usa Nginx (común en VPS o servidores dedicados), no hay archivo .htaccess. La configuración se hace en el bloque del servidor (server block) de tu sitio.

Paso 1: Acceder al archivo de configuración

Normalmente se encuentra en /etc/nginx/sites-available/tu-sitio.com o /etc/nginx/conf.d/. Necesitarás acceso SSH al servidor.

Paso 2: Añadir la regla de ubicación

Dentro del bloque server { }, añade lo siguiente:

location /wp-admin/ {
    allow TU_IP_AQUI;
    deny all;
}

location = /wp-login.php {
    allow TU_IP_AQUI;
    deny all;
}

Paso 3: Recargar Nginx

Guarda el archivo y ejecuta sudo nginx -t para comprobar que no hay errores de sintaxis. Luego, recarga la configuración con sudo systemctl reload nginx.

Este método es muy eficiente y ligero, ya que Nginx maneja el bloqueo directamente.


Método 4: Proteger con contraseña a nivel de servidor (HTTP Auth)

Esta es una técnica complementaria. En lugar de (o además de) restringir por IP, puedes poner una contraseña extra a la carpeta wp-admin o al archivo wp-login.php. Es una barrera más.

Para Apache (.htpasswd)

  1. Crea un archivo llamado .htpasswd en un directorio fuera de public_html (por seguridad). Puedes generarlo con herramientas online o por SSH.
  2. Añade esto a tu .htaccess:
<Files wp-login.php>
AuthName "Zona Restringida"
AuthType Basic
AuthUserFile /ruta/absoluta/a/.htpasswd
Require valid-user
</Files>

Ahora, al intentar acceder a wp-login.php, el navegador te pedirá un usuario y contraseña adicionales.


Método 5: Usando el panel de control Syspanel (ex HestiaCP)

Si tu hosting utiliza Syspanel (el antiguo HestiaCP), el proceso para limitar acceso por IP WordPress es ligeramente diferente, pero igual de sencillo. Recuerda que el acceso a este panel se realiza a través del puerto 2106 (ejemplo: https://tudominio.com:2106).

Paso 1: Acceder a Syspanel

Inicia sesión en tu panel con tus credenciales de administrador.

Paso 2: Ir a la configuración de Nginx

Syspanel usa Nginx y Apache como proxy inverso. Deberás editar la configuración de Nginx para tu sitio.

  1. Ve a Web > Tu Dominio.
  2. Busca la opción "Configuración del servidor web" o "Nginx".
  3. En la sección de configuración avanzada, verás una caja de texto donde puedes añadir reglas personalizadas.

Paso 3: Añadir la regla personalizada

Pega el mismo bloque de código que vimos para Nginx (Método 3), pero adaptado al contexto de Syspanel. La estructura sería similar a esta:

location /wp-admin/ {
    allow TU_IP_AQUI;
    deny all;
}

Guarda los cambios y reinicia Nginx desde el propio panel (suele haber un botón para "Reiniciar" o "Guardar y Recargar").

[INFO] Syspanel gestiona la configuración de forma centralizada. Si no encuentras la opción exacta, busca en la documentación de tu proveedor de hosting, ya que a veces la personalización se realiza a través de archivos de plantilla específicos.


Errores comunes y cómo solucionarlos

Me he bloqueado mi propia IP, ¿qué hago?

Tranquilo, no es el fin del mundo. Tienes dos opciones:

  1. Acceder por FTP/cPanel: Deshaz el cambio que hiciste. Si fue con un plugin, desactívalo renombrando la carpeta del plugin en /wp-content/plugins/. Si fue en .htaccess, revierte el cambio o elimina el archivo.
  2. Usar una VPN: Conéctate a una VPN que tenga una IP que hayas permitido (si tienes un rango amplio) o que coincida con una de las IPs permitidas.

Mi IP es dinámica y cambia constantemente

Este es el mayor inconveniente de este método. Si tu IP cambia cada día, estarás constantemente bloqueándote.

Soluciones:

  • Rango de IPs: Si tu proveedor usa un rango fijo, puedes permitir un rango (ej. 192.168.1.*), pero es menos seguro.
  • Combinar con VPN: Conéctate siempre a la misma VPN de pago que tenga IPs estáticas y permite solo esas IPs.
  • No usar este método: Si tu IP es muy inestable, considera usar otros métodos como la autenticación de dos factores (2FA) en lugar de la restricción por IP.

Preguntas frecuentes (FAQ)

¿Es suficiente con restringir por IP para proteger mi WordPress?

No. Es una capa muy buena, pero no es la única solución. Debes combinarla con:

  • Contraseñas robustas.
  • Autenticación de dos factores (2FA).
  • Mantener WordPress, plugins y temas actualizados.
  • Usar un plugin de seguridad completo.

¿Puedo permitir varias IPs?

Sí. En el código de .htaccess o Nginx, solo tienes que añadir más líneas Allow from o allow con las IPs adicionales.

¿Restringir por IP afecta a mis visitantes o a Google?

No. Solo afecta al acceso a wp-admin y wp-login.php. El resto de tu sitio web (la parte pública) permanece accesible para todos, incluido el rastreador de Google.

¿Qué es mejor, plugin o editar el archivo?

Para un usuario sin experiencia, el plugin es más seguro y cómodo. Editar archivos manualmente te da más control y no añade peso extra al sitio, pero requiere más cuidado.

¿Puedo restringir solo el wp-login.php y no el wp-admin?

Sí, puedes hacerlo. De hecho, muchos ataques se centran en wp-login.php. Puedes aplicar la regla solo a ese archivo si prefieres no bloquear el acceso a los archivos de administración (como los CSS/JS del panel).


Conclusión

Restringir el acceso a wp-admin por IP es una de las prácticas de ciberseguridad más efectivas y con mejor relación esfuerzo/resultado que puedes implementar en tu sitio WordPress. Aunque requiere una configuración inicial, la tranquilidad de saber que solo tú (y quienes tú decidas) pueden acceder a la zona de administración no tiene precio.

Elige el método que mejor se adapte a tu nivel técnico y a tu tipo de hosting. Si tienes dudas, empieza con un plugin. Si te atreves, edita los archivos de configuración. Y recuerda siempre tener un plan B por si te quedas fuera.

La seguridad de tu web es un proceso continuo. No te detengas aquí; explora otras medidas como los cortafuegos de aplicación web (WAF) o la monitorización de archivos. Tu futuro yo te lo agradecerá.

¿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