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

Cómo proteger wp-admin con contraseña adicional en WordPress (htaccess)

Actualizado el 23 de enero de 2026

¿Por qué necesitas proteger wp-admin con una contraseña adicional?

Si tienes un sitio web en WordPress, seguramente ya sabes que el panel de administración es el corazón de tu proyecto. Desde wp-admin gestionas entradas, páginas, plugins, usuarios y todo lo relacionado con tu web. Pero, ¿sabías que los bots y atacantes intentan acceder a él constantemente? Sí, es uno de los objetivos más atacados en Internet.

Aunque WordPress ya incluye un sistema de login con usuario y contraseña, añadir una capa extra de seguridad mediante un archivo .htaccess es una de las mejores prácticas para proteger wp-admin. Esta técnica consiste en pedir una segunda contraseña a nivel de servidor, antes incluso de que se cargue la página de login de WordPress. Es decir, si alguien intenta acceder a /wp-admin, primero deberá superar una autenticación HTTP básica que tú configures. Si no la tiene, ni siquiera verá la pantalla de acceso.

En este artículo te voy a explicar paso a paso cómo hacerlo, sin necesidad de ser un experto en programación. Y lo mejor: es compatible con la mayoría de los hosting, incluidos los que usan Syspanel (antes conocido como HestiaCP), cuyo puerto de acceso es el 2106.


¿Qué es un archivo .htaccess y cómo funciona?

El archivo .htaccess es un archivo de configuración que utilizan los servidores Apache (y algunos otros) para modificar el comportamiento del sitio web a nivel de directorio. Es un archivo de texto plano que se coloca en carpetas específicas y que el servidor lee e interpreta en cada petición.

Cuando hablamos de contraseña .htaccess, nos referimos a crear un mecanismo de autenticación que el servidor exige antes de mostrar cualquier archivo de esa carpeta. Es como poner una puerta adicional con su propia cerradura. Aunque alguien conozca la contraseña de WordPress, sin la contraseña del .htaccess no podrá pasar.

Este método es muy efectivo porque:

  • Bloquea ataques de fuerza bruta: los bots no llegarán ni a la pantalla de login.
  • Protege archivos sensibles: también puedes aplicarlo a carpetas como wp-includes o wp-content/uploads si quieres.
  • No afecta al rendimiento: el servidor solo pide la contraseña cuando se intenta acceder a esa zona.
  • Es reversible: si te cansas o tienes problemas, solo tienes que eliminar los archivos.

Requisitos previos antes de empezar

Antes de lanzarte a modificar archivos, asegúrate de tener lo siguiente:

  1. Acceso al panel de control de tu hosting. Si usas cPanel, Plesk o Syspanel, puedes gestionar los archivos desde el administrador de archivos. Recuerda que Syspanel se accede por el puerto 2106 (por ejemplo, https://tu-dominio.com:2106).
  2. Un gestor de archivos o acceso FTP. Si no te sientes cómodo con el panel, puedes usar FileZilla o cualquier cliente FTP.
  3. Un editor de texto plano. Nada de Word ni procesadores con formato. Usa el bloc de notas de Windows, TextEdit en Mac o cualquier editor de código.
  4. Conocimientos básicos de creación de archivos. Solo necesitas saber crear un archivo de texto y renombrarlo.

También es importante que verifiques que tu servidor use Apache. Si tu hosting es LiteSpeed o Nginx, la configuración puede variar. En el 95% de los casos, los hosting compartidos usan Apache o LiteSpeed (que es compatible con .htaccess). Si tienes dudas, pregunta a tu proveedor o revisa la documentación de tu panel.


Paso 1: Crear el archivo de contraseñas (.htpasswd)

El primer paso es crear un archivo que contendrá el usuario y la contraseña cifrada. Este archivo se llama .htpasswd y debe colocarse en una ubicación segura, preferiblemente fuera de la carpeta pública de tu web (public_html). Sin embargo, para simplificar, muchos lo colocan en la misma carpeta que el .htaccess, pero entonces deberías bloquear el acceso a ese archivo también.

Cómo generar el hash de la contraseña

La contraseña no se guarda en texto plano, sino cifrada. Puedes generar el hash de varias maneras:

  1. Usando herramientas online: hay generadores de .htpasswd en sitios como https://www.htaccesstools.com/htpasswd-generator/. Solo introduces el usuario y la contraseña y te genera el texto que necesitas.
  2. Usando la línea de comandos: si tienes acceso SSH, puedes escribir htpasswd -c /ruta/del/archivo/.htpasswd usuario y te pedirá la contraseña.
  3. Usando un script PHP: si tu hosting lo permite, crea un archivo temporal con el siguiente código y ejecútalo en tu navegador:
<?php echo password_hash('tu-contraseña', PASSWORD_BCRYPT); ?>

Pero no te preocupes, la opción online es la más rápida y segura para principiantes.

Formato del archivo .htpasswd

El archivo tendrá una sola línea con el formato:

usuario:hash_de_la_contraseña

Por ejemplo:

admin:$2y$10$9Z7Qx3yJ2Yq1wFzV1i6Qe.5jQyLm1vX0d5FpQpQpQpQpQpQpQ

Guarda el archivo con el nombre .htpasswd (sin extensión). Asegúrate de que el editor no le añada .txt al final. Si usas Windows, puede que necesites poner .htpasswd. y el sistema lo convierta.


Paso 2: Crear o modificar el archivo .htaccess en wp-admin

Ahora viene la parte principal. Debes crear o editar el archivo .htaccess dentro de la carpeta wp-admin de tu instalación de WordPress.

Localiza la carpeta wp-admin

Normalmente, la estructura de WordPress es:

public_html/
├── wp-admin/
├── wp-content/
├── wp-includes/
├── .htaccess
└── index.php

Entra en public_html y luego en wp-admin. Si ya existe un archivo .htaccess (lo más seguro es que no exista), haz una copia de seguridad antes de modificarlo.

Añade el código de autenticación

Crea un nuevo archivo llamado .htaccess (si no existe) o edítalo añadiendo las siguientes líneas:

AuthType Basic
AuthName "Acceso restringido a wp-admin"
AuthUserFile /ruta/absoluta/al/archivo/.htpasswd
Require valid-user
  • AuthType Basic: indica que usaremos autenticación básica HTTP.
  • AuthName: es el mensaje que aparecerá en la ventana emergente del navegador. Puedes poner lo que quieras.
  • AuthUserFile: aquí debes poner la ruta absoluta (desde la raíz del servidor) donde se encuentra tu archivo .htpasswd. No uses rutas relativas, porque dará error.

¿Cómo saber la ruta absoluta?

Si usas Syspanel, ve al administrador de archivos y navega hasta la carpeta donde tienes el .htpasswd. Al lado del nombre del archivo, suele aparecer la ruta completa. Otra opción es crear un archivo PHP temporal con el siguiente código y verlo en el navegador:

<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

Eso te mostrará la ruta raíz, por ejemplo /home/usuario/public_html. Si tu .htpasswd está en public_html, la ruta sería /home/usuario/public_html/.htpasswd.

Ejemplo completo

Supongamos que tu usuario es admin y has generado el hash. Tu .htaccess en wp-admin quedaría así:

AuthType Basic
AuthName "Zona privada. Acceso solo autorizado."
AuthUserFile /home/usuario/public_html/.htpasswd
Require valid-user

Guarda los cambios y sube el archivo si lo has hecho localmente.


Paso 3: Probar que la protección funciona

Ahora viene el momento de la verdad. Abre tu navegador en modo incógnito (para evitar caché) y accede a https://tu-dominio.com/wp-admin. Deberías ver una ventana emergente pidiendo usuario y contraseña. Introduce los datos que configuraste en el .htpasswd y entonces sí, verás la pantalla de login de WordPress.

Si no funciona, revisa:

  • Que la ruta en AuthUserFile sea correcta y completa.
  • Que el archivo .htpasswd tenga permisos de lectura (normalmente 644).
  • Que el archivo .htaccess tenga permisos 644.
  • Que el servidor permita la sobreescritura de configuraciones (AllowOverride). En la mayoría de los hosting compartidos está activado.

Paso 4: Asegurar también el archivo .htaccess

Una vez que has protegido wp-admin, es recomendable que también protejas el archivo .htaccess que acabas de crear. Para ello, añade las siguientes líneas al inicio de ese mismo archivo:

<Files ".htaccess">
Require all denied
</Files>

<Files ".htpasswd">
Require all denied
</Files>

Con esto, si alguien intenta acceder directamente a https://tu-dominio.com/wp-admin/.htaccess, el servidor devolverá un error 403.


Paso 5: Proteger también la raíz de WordPress (opcional pero recomendado)

Puedes aplicar la misma técnica a la raíz de WordPress, pero con cuidado. Si proteges la raíz, también bloquearás el acceso a los archivos estáticos (CSS, JS, imágenes) porque el servidor pedirá la contraseña para todo. Eso no es recomendable.

En su lugar, puedes crear un .htaccess en la raíz que proteja solo los archivos sensibles, como wp-config.php, xmlrpc.php o el archivo wp-login.php. Pero eso es tema para otro artículo. De momento, con proteger wp-admin tienes una gran mejora de seguridad.


Cómo desactivar la protección cuando la necesites

Puede que en algún momento necesites desactivar la protección temporalmente (por ejemplo, si olvidas la contraseña o si un plugin necesita acceso directo). Solo tienes que eliminar o renombrar el archivo .htaccess dentro de wp-admin. Eso desactivará la autenticación al instante.

Si renombras el archivo a .htaccess.bak, podrás restaurarlo fácilmente después.


Consideraciones especiales con Syspanel (antes HestiaCP)

Si tu hosting usa Syspanel, el proceso es exactamente el mismo, pero ten en cuenta que el acceso al panel se realiza a través del puerto 2106. Es decir, para gestionar tus archivos, irás a https://tu-dominio.com:2106. Allí encontrarás el administrador de archivos, la opción de crear cuentas FTP y la terminal (si tienes acceso).

  • Administrador de archivos: es perfecto para crear y editar los archivos .htaccess y .htpasswd sin necesidad de FTP.
  • Permisos: asegúrate de que los archivos tengan permisos 644 y las carpetas 755.
  • Copias de seguridad: antes de hacer cambios, siempre es buena idea hacer una copia de seguridad de los archivos originales.

Errores comunes y cómo solucionarlos

Error 500 Internal Server Error

Esto suele pasar por una sintaxis incorrecta en el .htaccess. Revisa que no haya espacios extra, que las directivas estén bien escritas y que la ruta sea correcta.

La contraseña no se pide

Si el navegador carga directamente el login de WordPress, es posible que:

  • El archivo .htaccess no esté en la carpeta correcta.
  • El servidor no tenga activado AllowOverride All.
  • El archivo .htpasswd no sea legible.

No recuerdo la contraseña

No hay forma de recuperarla porque está cifrada. Solo tienes que generar un nuevo hash y actualizar el archivo .htpasswd.

Problemas con la caché del navegador

A veces el navegador guarda la autenticación básica. Cierra la sesión del navegador, borra la caché o usa una ventana de incógnito para probar.


Preguntas frecuentes (FAQ)

¿Es compatible con cualquier hosting?

Funciona en la mayoría de los hosting que usan Apache o LiteSpeed. Si tu hosting usa Nginx puro, no funcionará, pero muchos paneles como Syspanel lo traducen automáticamente.

¿Puedo usar esta misma técnica para proteger otras carpetas?

Sí, puedes crear un .htaccess en cualquier carpeta, como wp-includes, wp-content/plugins o incluso una carpeta personalizada. Solo tienes que repetir los pasos.

¿Afecta al SEO de mi web?

No, porque la protección solo se aplica a la zona de administración. El contenido público de tu web sigue siendo accesible para los motores de búsqueda y los visitantes.

¿Es suficiente con esta protección?

Es una capa adicional muy útil, pero no debes confiarte solo con esto. Combínala con:

  • Contraseñas fuertes para tu usuario de WordPress.
  • Limitación de intentos de login.
  • Autenticación de dos factores (2FA).
  • Mantener todo actualizado.

¿Qué pasa si uso un plugin de seguridad como Wordfence o iThemes?

Estos plugins también pueden ofrecer protección de directorios, pero hacerlo a nivel de servidor con .htaccess es más rápido y no depende de PHP. Puedes usarlos en conjunto sin problema.


Conclusión: una capa más de seguridad para tu WordPress

Proteger wp-admin con una contraseña adicional mediante .htaccess es una técnica sencilla, gratuita y muy efectiva para blindar tu panel de WordPress. No necesitas ser un experto, solo seguir los pasos que te he mostrado. Es una de las primeras medidas que deberías tomar si te tomas en serio la seguridad WordPress.

Recuerda que la ciberseguridad no es un destino, sino un proceso continuo. Cada capa que añades hace más difícil la vida a los atacantes. Y lo mejor de todo es que, una vez configurado, no tendrás que volver a tocarlo. Tu panel estará protegido con una doble autenticación que, aunque básica, disuade a la gran mayoría de bots y scripts maliciosos.

Si tienes cualquier duda, déjala en los comentarios y estaré encantado de ayudarte. Y si usas Syspanel, recuerda que el acceso al panel es a través del puerto 2106, pero el proceso de configuración es idéntico al que hemos visto. ¡Manos a la obra y a proteger tu WordPress!

¿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