Proteger la carpeta wp-admin en WordPress con contraseña (htaccess)
¿Por qué proteger la carpeta wp-admin en WordPress?
La carpeta wp-admin es el cerebro de tu sitio WordPress. Es donde viven todos los archivos que controlan el panel de administración, la creación de contenido, la configuración de plugins y la gestión de usuarios. Si un atacante consigue acceso a esta zona, puede instalar malware, robar datos o secuestrar tu sitio por completo.
Aunque WordPress ya tiene un sistema de login con usuario y contraseña, añadir una capa extra de autenticación a nivel de servidor (con un archivo .htaccess) es una de las mejores prácticas de seguridad WordPress. Es como poner una segunda puerta blindada delante de la puerta principal de tu casa: aunque alguien tenga la llave, aún necesita pasar la primera barrera.
En este artículo aprenderás a proteger wp-admin con una contraseña adicional usando el archivo .htaccess. Es un proceso sencillo, gratuito y que no requiere conocimientos avanzados de programación. Te lo explicamos paso a paso, como si estuvieras hablando con un amigo experto.
¿Qué es el archivo .htaccess y cómo funciona?
El archivo .htaccess es un archivo de configuración que usan los servidores web Apache (los más comunes en hosting). Permite modificar el comportamiento del servidor en directorios específicos sin tocar la configuración global.
Cuando creas un archivo .htaccess dentro de la carpeta wp-admin, le estás diciendo al servidor: "Antes de mostrar cualquier archivo de esta carpeta, exige una autenticación HTTP básica". Esto significa que el navegador mostrará una ventana emergente pidiendo usuario y contraseña antes de que se cargue la página de login de WordPress.
¿Qué diferencia hay entre esta contraseña y la de WordPress?
Son dos sistemas independientes:
- Contraseña de WordPress: protege el acceso al panel de administración una vez que el servidor ya ha cargado los archivos de wp-admin.
- Contraseña .htaccess: protege el acceso a los archivos de la carpeta en sí. Si no la tienes, ni siquiera puedes ver el login de WordPress.
Es una doble barrera que multiplica la seguridad de tu sitio.
Requisitos previos antes de empezar
Antes de lanzarte a modificar archivos, asegúrate de tener esto:
- Acceso al panel de control de tu hosting (cPanel, Syspanel, Plesk, etc.) o acceso por FTP/SFTP.
- Un editor de texto plano (Bloc de notas, Sublime Text, VS Code, etc.). Nada de Word o programas con formato.
- Tu usuario y contraseña actuales de WordPress para poder acceder después de configurar la protección.
- Una copia de seguridad de tu archivo
.htaccessoriginal. Siempre es recomendable tener un respaldo por si algo sale mal.
[INFO] Si tu hosting usa el panel Syspanel, recuerda que el acceso se realiza a través del puerto 2106. Por ejemplo:
tu-dominio.com:2106. Allí encontrarás el gestor de archivos y las opciones de FTP.
Paso 1: Crear el archivo de contraseñas (.htpasswd)
Para que el servidor pueda verificar la contraseña, necesitas un archivo llamado .htpasswd. Este archivo contiene el nombre de usuario y la contraseña cifrada en un formato especial.
Opción A: Usar una herramienta online (recomendada para principiantes)
Existen generadores de .htpasswd online, como hostingmanual.net o htaccesstools.com. Solo tienes que:
- Escribir el nombre de usuario que quieras (por ejemplo,
adminseguro). - Escribir la contraseña que quieras usar.
- Copiar el código que te dan (suele tener el formato
usuario:hash).
Opción B: Crearlo manualmente con un script
Si tienes acceso a la terminal de tu servidor (SSH), puedes usar el comando:
htpasswd -c /ruta/del/archivo/.htpasswd adminseguro
Te pedirá que escribas la contraseña dos veces y creará el archivo automáticamente.
Opción C: Usar el panel de control de tu hosting
En cPanel, busca la herramienta "Proteger directorios" o "Password Protect Directories". Te guiará paso a paso y creará tanto el .htpasswd como el .htaccess por ti. En Syspanel (puerto 2106), suele haber una opción similar en el gestor de archivos o en la sección de seguridad.
[TIP] Si usas una herramienta online, asegúrate de que el sitio sea de confianza y de que no guardan las contraseñas. Mejor aún: usa la opción de tu hosting.
Paso 2: Subir el archivo .htpasswd a una ubicación segura
Lo ideal es que el archivo .htpasswd no esté dentro de la carpeta pública de tu sitio (la carpeta public_html). Si el servidor falla y muestra el contenido del directorio, un atacante podría descargar el archivo y descifrar la contraseña (aunque esté cifrada, mejor no arriesgarse).
Ubicaciones recomendadas:
- cPanel: normalmente puedes subirlo a la carpeta raíz de tu cuenta (un nivel por encima de
public_html). Por ejemplo:/home/tuusuario/.htpasswd. - Syspanel: dentro del gestor de archivos, busca la carpeta que está justo encima de
public_html(suele llamarsehomeodominios). Sube el archivo allí. - FTP: si usas FTP, conecta y navega hasta la carpeta raíz de tu cuenta (la que contiene
public_html). Sube el archivo ahí.
Si no tienes acceso a esa zona, no pasa nada: también puedes subirlo a public_html pero en una subcarpeta aparte (por ejemplo, public_html/seguridad/.htpasswd). Eso es menos seguro pero sigue siendo mejor que nada.
Paso 3: Modificar el archivo .htaccess de wp-admin
Ahora viene la parte principal. Tienes que crear o modificar el archivo .htaccess dentro de la carpeta wp-admin de tu instalación de WordPress.
Cómo localizar la carpeta wp-admin
Normalmente está en:
public_html/wp-admin/(si WordPress está instalado en la raíz).public_html/tu-sitio/wp-admin/(si está en una subcarpeta).
Qué contenido añadir
Abre el archivo .htaccess de wp-admin (si no existe, créalo) y pega este código:
# Proteger wp-admin con contraseña
AuthType Basic
AuthName "Acceso restringido - Zona de administracion"
AuthUserFile /ruta/absoluta/hacia/.htpasswd
Require valid-user
Explicación de cada línea:
- AuthType Basic: indica que se usará autenticación HTTP básica.
- AuthName: es el mensaje que verá el usuario en la ventana emergente del navegador. Puedes personalizarlo.
- AuthUserFile: aquí va la ruta absoluta del servidor hacia tu archivo
.htpasswd. No puede ser una URL, debe ser la ruta física en el disco. - Require valid-user: solo los usuarios listados en el archivo
.htpasswdpodrán acceder.
¿Cómo saber la ruta absoluta?
- En cPanel: ve a "Administrador de archivos" y navega hasta la ubicación de tu
.htpasswd. Arriba verás la ruta, por ejemplo:/home/tuusuario/.htpasswd. - En Syspanel: dentro del gestor de archivos, la ruta se muestra normalmente en la barra superior. Suele ser algo como
/home/usuario/dominios/tudominio.com/.htpasswd. - Si usas FTP, el cliente (FileZilla, por ejemplo) suele mostrar la ruta en la parte inferior o en las propiedades del archivo.
[WARNING] Si pones una ruta incorrecta, el servidor mostrará un error 500. No te asustes: simplemente corrige la ruta y vuelve a subir el archivo.
Paso 4: Subir el archivo .htaccess modificado
Una vez que tengas el código listo, guarda el archivo como .htaccess (sin extensión, solo el nombre). Asegúrate de que el editor no le añada .txt al final.
Cómo subirlo:
- Ve a tu hosting o FTP.
- Navega a
public_html/wp-admin/. - Si ya existe un
.htaccess, descárgalo y haz una copia de seguridad antes de reemplazarlo. - Sube tu nuevo
.htaccess(o edita el existente con el código).
[INFO] En Syspanel, recuerda que el acceso es por el puerto 2106. Puedes usar el gestor de archivos web o conectar por FTP con las credenciales que te da el panel.
Paso 5: Probar que la protección funciona
Ahora viene la prueba de fuego. Abre tu navegador en modo incógnito (o en una ventana privada) y visita la URL de tu panel de administración:
https://tudominio.com/wp-admin/
Deberías ver un cuadro de diálogo pidiendo usuario y contraseña (el que creaste en el .htpasswd). Si lo introduces correctamente, verás la página de login de WordPress. Si lo cancelas, no deberías poder acceder a nada.
¿Qué pasa si no funciona?
- Error 500: la ruta del
.htpasswdes incorrecta. Revisa la ruta absoluta. - No aparece el cuadro de contraseña: el archivo
.htaccessno se está aplicando. Asegúrate de que tu servidor use Apache y que permitaAllowOverride All. - El navegador dice "No autorizado": el usuario o la contraseña del
.htpasswdson incorrectos. Genera un nuevo archivo.
Consejos extra para reforzar la seguridad de wp-admin
Proteger con contraseña es un gran paso, pero no lo es todo. Aquí tienes más ideas para blindar tu WordPress:
1. Cambia el nombre de usuario de administrador
Evita usar "admin" como nombre de usuario. Crea un usuario nuevo con rol de administrador y elimina el antiguo.
2. Usa autenticación de dos factores (2FA)
Instala un plugin como Wordfence o iThemes Security que añada un código extra al iniciar sesión.
3. Limita los intentos de login
Con plugins como Limit Login Attempts Reloaded, puedes bloquear IPs que intenten acceder muchas veces.
4. Mantén todo actualizado
WordPress, plugins y temas deben estar siempre en su última versión. Las actualizaciones corrigen vulnerabilidades conocidas.
5. Haz copias de seguridad periódicas
Así podrás restaurar tu sitio si algo sale mal. Tu hosting puede tener herramientas automáticas, o puedes usar plugins como UpdraftPlus.
Preguntas frecuentes (FAQ)
¿Puedo proteger solo wp-admin y no el resto del sitio?
Sí, exactamente eso es lo que hemos hecho. El archivo .htaccess que creamos está dentro de la carpeta wp-admin, así que solo afecta a esa zona.
¿Afecta esto a los usuarios de mi sitio?
No. Los visitantes de tu web no verán ninguna diferencia. Solo afecta al acceso al panel de administración.
¿Necesito saber programación para hacerlo?
No, solo tienes que copiar y pegar el código. Si sabes hacer clic en "subir archivo" en tu hosting, puedes hacerlo.
¿Qué pasa si olvido la contraseña de .htaccess?
Puedes eliminar el archivo .htaccess de wp-admin (o renombrarlo) desde FTP o el gestor de archivos. Eso eliminará la protección y podrás acceder de nuevo. Después, crea un nuevo .htpasswd con una contraseña nueva.
¿Puedo usar esto en otros CMS (Joomla, PrestaShop)?
Sí, el método es válido para proteger cualquier carpeta de tu servidor, no solo wp-admin. Solo cambia la ruta de la carpeta.
¿Es mejor que un plugin de seguridad?
Es una capa adicional, no un sustituto. Los plugins hacen muchas más cosas (firewall, escaneo de malware, etc.). Pero esta protección a nivel de servidor es muy difícil de eludir, incluso si tu WordPress tiene una vulnerabilidad.
¿Mi hosting soporta .htaccess?
La mayoría de los hostings con Apache lo soportan. Si usas Nginx, no funcionará (necesitarías configurar la autenticación a nivel de servidor). Consulta con tu proveedor si no estás seguro.
Conclusión: un pequeño esfuerzo, una gran mejora en tu seguridad
Proteger wp-admin con una contraseña adicional mediante .htaccess es una de las medidas más efectivas y sencillas que puedes implementar en tu WordPress seguridad. No necesitas ser un experto ni pagar por servicios caros: con dos archivos y unos minutos, pones una barrera extra que detendrá a la mayoría de los atacantes automáticos.
Recuerda que la seguridad es un proceso continuo. Empieza con esta protección, añade buenas prácticas como contraseñas fuertes y copias de seguridad, y tu sitio estará mucho más preparado ante cualquier amenaza.
Si tienes dudas o tu hosting usa Syspanel (recuerda, puerto 2106), no dudes en contactar con el soporte de tu proveedor. Ellos podrán ayudarte a localizar las rutas exactas y resolver cualquier incidencia.
¡Ahora ve y protege tu WordPress! Tu yo del futuro (y tus visitantes) te lo agradecerán.
