El error 403 Forbidden significa que el servidor entiende tu petición pero rechaza darte acceso. En WordPress, esto puede ocurrir al intentar acceder al admin, subir archivos, o navegar por tu web. Esta guía te muestra cómo solucionarlo.
¿Qué Significa el Error 403 Forbidden?
El código HTTP 403 indica que el servidor recibió y entendió tu solicitud, pero no tiene permiso para completarla. A diferencia del error 404 (no encontrado), el recurso existe pero no puedes acceder.
Mensajes típicos del error 403:
- "403 Forbidden"
- "Access Denied"
- "You don't have permission to access this resource"
- "Forbidden: You don't have permission to access / on this server"
Causas Comunes del Error 403
| Causa | Probabilidad | Dificultad |
|---|---|---|
| Permisos de archivos incorrectos | Alta | Fácil |
| .htaccess corrupto o mal configurado | Alta | Fácil |
| Plugin de seguridad bloqueando | Media | Fácil |
| ModSecurity del servidor | Media | Media |
| Falta archivo index.php | Baja | Fácil |
| Propiedad de archivos incorrecta | Media | Media |
| Hotlink protection | Baja | Fácil |
| IP bloqueada por el servidor | Baja | Contactar hosting |
Solución 1: Verificar Permisos de Archivos
Los permisos incorrectos son la causa más común del error 403 en WordPress.
Permisos correctos
| Carpetas | 755 o 750 |
| Archivos | 644 o 640 |
| wp-config.php | 600 o 640 |
Corregir por FTP
- Conecta por FTP (FileZilla, etc.)
- Navega a tu instalación WordPress
- Clic derecho en carpeta raíz → Atributos de archivo
- Escribe 755 para carpetas
- Marca "Aplicar a subdirectorios"
- Repite con 644 para archivos
Corregir por SSH
# Permisos de carpetas
find /path/to/wordpress -type d -exec chmod 755 {} \;
# Permisos de archivos
find /path/to/wordpress -type f -exec chmod 644 {} \;
# wp-config.php más restrictivo
chmod 600 /path/to/wordpress/wp-config.php
Solución 2: Regenerar .htaccess
Un archivo .htaccess corrupto o con reglas incorrectas puede causar error 403.
Método 1: Renombrar por FTP
- Conecta por FTP
- Busca el archivo
.htaccessen la raíz - Renómbralo a
.htaccess_backup - Intenta acceder a tu web
- Si funciona, ve a Ajustes → Enlaces permanentes y guarda
- WordPress regenerará un .htaccess limpio
Método 2: Crear .htaccess nuevo
Si no tienes .htaccess, crea uno con el contenido por defecto:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Solución 3: Desactivar Plugins
Plugins de seguridad como Wordfence, Sucuri o iThemes Security pueden bloquear accesos legítimos.
Desactivar por FTP
- Conecta por FTP
- Ve a
/wp-content/plugins/ - Renombra la carpeta
pluginsaplugins_desactivados - Intenta acceder a tu web
- Si funciona, renombra de vuelta a
plugins - Activa plugins uno a uno hasta encontrar el culpable
Plugins que suelen causar 403
- Wordfence Security
- Sucuri Security
- iThemes Security
- All In One WP Security
- BulletProof Security
Solución 4: Revisar ModSecurity
ModSecurity es un firewall que muchos hostings tienen activado. Puede bloquear peticiones legítimas.
Cómo identificar si es ModSecurity
- El error 403 aparece al enviar formularios
- Ocurre al guardar posts largos o con código
- Afecta a acciones específicas, no a toda la web
Soluciones
- cPanel: Seguridad → ModSecurity → Desactivar para tu dominio
- Plesk: Dominios → Tu dominio → Web Application Firewall → Off
- Hostinger: Seguridad → ModSecurity → Desactivar
- Si no tienes acceso: Contacta a tu hosting
Solución 5: Comprobar Archivo Index
Si falta el archivo index.php y la configuración del servidor no permite listar directorios, obtendrás error 403.
Verificar
- Conecta por FTP
- Verifica que existe
index.phpen la raíz - Si no existe, descárgalo de wordpress.org y súbelo
Contenido de index.php de WordPress
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*/
define( 'WP_USE_THEMES', true );
require __DIR__ . '/wp-blog-header.php';
Solución 6: Verificar Propiedad de Archivos
En servidores Linux, los archivos deben pertenecer al usuario correcto del servidor web.
Por SSH (si tienes acceso)
# Ver propietario actual
ls -la /path/to/wordpress
# Cambiar propietario (usuario típico: www-data, apache, nginx)
chown -R www-data:www-data /path/to/wordpress
Sin acceso SSH
Contacta a tu hosting y pide que verifiquen la propiedad de archivos de tu instalación WordPress.
Solución 7: Desactivar Hotlink Protection
La protección hotlink evita que otros sitios usen tus imágenes. Si está mal configurada, puede bloquear tu propia web.
Desactivar en cPanel
- Accede a cPanel
- Busca "Hotlink Protection"
- Desactiva o añade tu dominio a la lista permitida
Verificar en .htaccess
Busca y comenta (o elimina) reglas como:
# Hotlink protection - COMENTAR ESTAS LÍNEAS
# RewriteCond %{HTTP_REFERER} !^$
# RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tudominio\.com [NC]
# RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
Solución 8: Contactar Hosting
Si ninguna solución anterior funciona, el problema puede estar en el servidor:
- Tu IP está bloqueada: Por intentos de login fallidos o actividad sospechosa
- Firewall del servidor: Reglas que no puedes controlar
- Límites de recursos: CPU/RAM excedidos
- Configuración del servidor: Apache/Nginx mal configurado
Qué decir al soporte
"Tengo un error 403 Forbidden en mi WordPress. Ya he verificado permisos (755/644), regenerado .htaccess, desactivado plugins y no es ModSecurity. ¿Pueden revisar si hay algún bloqueo en el servidor o firewall que esté afectando a mi sitio?"
Preguntas Frecuentes
¿El error 403 afecta al SEO?
Sí, si Google no puede acceder a páginas de tu sitio durante un tiempo prolongado, puede afectar negativamente a tu posicionamiento. Soluciona el error lo antes posible.
¿Por qué solo me da error 403 en wp-admin?
Probablemente un plugin de seguridad está bloqueando el acceso al admin, o hay reglas en .htaccess que protegen /wp-admin/. Desactiva plugins por FTP o revisa las reglas del .htaccess.
¿Puede un plugin causar error 403 en todo el sitio?
Sí, plugins de seguridad mal configurados o con conflictos pueden bloquear todo el sitio. Desactiva plugins por FTP para verificar.
¿Diferencia entre error 403 y 401?
El 401 (Unauthorized) significa que necesitas autenticarte (login). El 403 (Forbidden) significa que aunque estés autenticado, no tienes permiso para ese recurso.