Error 403 Forbidden: qué significa y cómo solucionarlo

Punto clave

Un error 403 Forbidden significa que el servidor entendió tu solicitud y se niega a atenderla: la página existe, pero no tienes permiso para verla. Las palabras bajo el mensaje (nginx, Apache, Cloudflare, Access Denied) nombran el software que te rechazó. Como visitante solo puedes descartar tu parte (una VPN, otra red, las cookies); el bloqueo en sí es un ajuste del sitio: permisos de archivos, un archivo index que falta, una regla deny o un firewall.

Compruébelo ahora

Guía para solucionar el error 403 Forbidden — causas de acceso denegado y soluciones paso a paso
Guía para solucionar el error 403 Forbidden — causas de acceso denegado y soluciones paso a paso
Empiece a leer
  1. ¿Qué es un error 403 Forbidden?
  2. Cómo se ve un error 403
  3. 403 vs 401 vs 404: ¿cuál es la diferencia?
  4. Causas comunes del error 403 Forbidden
  5. Cómo solucionar el 403 como visitante
  6. 1. Verifica la URL
  7. 2. Limpia la caché y cookies del navegador
  8. 3. Desactiva tu VPN o proxy
  9. 4. Prueba una red o dispositivo diferente
  10. Cómo solucionar el 403 como administrador del sitio
  11. 5. Corrige los permisos de archivos y directorios
  12. 6. Revisa las reglas de .htaccess
  13. 7. Agrega un archivo index predeterminado
  14. 8. Desactiva los plugins de WordPress
  15. 9. Verifica el bloqueo de IP y las reglas del firewall
  16. 10. Revisa las reglas de HTTPS y de certificado de cliente
  17. 11. Soluciona Cloudflare 403 / Error 1020
  18. 12. Soluciona Nginx 403 Forbidden
  19. Depuración de errores 403 con HTTP Headers
  20. ¿Afecta un error 403 al SEO?
  21. Cómo prevenir errores 403
  22. Preguntas frecuentes

¿Qué es un error 403 Forbidden?

Un error 403 Forbidden significa que el servidor entendió tu solicitud y se niega a atenderla: la página existe, pero no tienes permiso para verla. A diferencia de un 404, el servidor sabe exactamente qué pediste. Si la página muestra «nginx» o «Apache» bajo el mensaje, es solo el software que usa el sitio: la negativa es un ajuste de ese sitio, no de tu navegador.

El estándar HTTP, RFC 9110 §15.5.4, lo define con esas palabras: el servidor «understood the request but refuses to fulfill it» (entendió la solicitud pero se niega a cumplirla). Si enviaste credenciales, el servidor las considera insuficientes, y un cliente «SHOULD NOT automatically repeat the request with the same credentials» (no debería repetir automáticamente la solicitud con las mismas credenciales). Un servidor también puede responder 404 para ocultar que la página existe.

En pocas palabras: la puerta existe, pero no tienes permiso para cruzarla. Como visitante solo puedes descartar tu propia parte; como dueño del sitio puedes cambiar la regla.

¿Es un 403 para todos? Compruébalo desde varios lugares

Cómo se ve un error 403

Las palabras de la página 403 y el nombre del servidor debajo indican qué software te rechazó y, por tanto, quién puede solucionarlo:

Lo que dice la páginaQuién te rechazóQué suele significar
403 Forbidden con nginx (o nginx/1.27.4, angie, openresty) debajoEl servidor nginx del sitio (Angie y OpenResty se basan en nginx)Una regla deny, un bloqueo de tu IP, país o VPN, archivos ilegibles o una carpeta sin archivo index
El encabezado Forbidden y You don't have permission to access this resource. (no tienes permiso para acceder a este recurso) con una línea Apache/2.4El servidor Apache del sitioUna regla Require all denied o Deny from, a menudo en .htaccess, o los permisos de archivos
403 - Forbidden: Access is denied.Microsoft IISPermisos de carpeta, o un subestado como 403.4 (se requiere HTTPS)
403 Forbidden con LiteSpeed Web ServerLiteSpeed (habitual en hosting compartido)Reglas de seguridad del hosting, permisos o .htaccess
Sorry, you have been blocked (Has sido bloqueado) con un Ray ID de CloudflareUna regla WAF de Cloudflare que puso el dueño del sitioTu solicitud coincidió con una regla del firewall: país, reputación de la IP, una regla de bots
Error 1020: Access denied (Acceso denegado) con un Ray IDOtra función de seguridad de CloudflareUna regla de bloqueo sin página personalizada (la documentación de Cloudflare da como ejemplos el esquema de API y las comprobaciones JWT)
Access Denied. You don't have permission to access … on this server. Reference #18…El firewall perimetral de AkamaiTu IP, red, VPN o patrón de solicitudes fue bloqueado antes de llegar al sitio
403 ERROR. The request could not be satisfied. (No se pudo satisfacer la solicitud) Generated by cloudfrontAmazon CloudFront / AWS WAFUna regla WAF o una restricción por país
Your access to this site has been limited by the site owner (El dueño del sitio ha limitado tu acceso)Wordfence (un plugin de seguridad de WordPress)El plugin bloqueó tu IP o tu solicitud; solo el dueño puede desbloquearla

Sea cual sea la redacción, el significado es el mismo: este servidor no te va a dar esta página. Una extensión del navegador o una cookie caducada rara vez lo causan, pero tu dirección IP, tu red o tu VPN sí pueden ser el motivo.

403 vs 401 vs 404: ¿cuál es la diferencia?

Estos tres códigos de error se confunden con frecuencia. Así es como se diferencian.

Código de estadoSignificado¿Se puede arreglar?Ejemplo
401 UnauthorizedNecesitas iniciar sesión primeroSí — proporciona credenciales válidasAcceder al panel de administración sin iniciar sesión
403 ForbiddenIniciaste sesión pero no tienes permisoDepende — el servidor te está bloqueandoIntentar acceder a archivos de otro usuario
404 Not FoundLa página no existeVerifica la ortografía de la URLVisitar una página eliminada o con errores de escritura

La diferencia clave: un error 401 te dice que te autentiques. Un error 403 te dice que la autenticación no ayudará — el servidor ya decidió que no puedes acceder a este recurso. Un 404 significa que el recurso no existe en absoluto.

Si el servidor rechaza la propia solicitud por mal formada, por ejemplo por cookies demasiado grandes o una URL rota, obtienes 400 Bad Request.

Causas comunes del error 403 Forbidden

Entender por qué ocurre un 403 te ayuda a solucionarlo más rápido. Estas son las causas más comunes, divididas según si eres visitante o administrador del sitio.

  • Permisos de archivo incorrectos — archivos configurados en 600 o carpetas en 700 bloquean el acceso público
  • Reglas .htaccess mal configuradas — directivas deny o reglas mod_rewrite que bloquean solicitudes
  • Archivo index faltante — sin index.html o index.php, y el listado de directorio está desactivado
  • Bloqueo de IP — reglas del servidor o firewall bloqueando tu dirección IP o país
  • VPN, proxy o IP de centro de datos — muchos sitios (streaming, entradas, contenido adulto, banca) bloquean por política los rangos de IP de VPN y de hosting, y una IP de VPN compartida también puede estar en una lista de bloqueo
  • Protección contra hotlink — el servidor bloquea enlaces directos a imágenes o archivos desde otros dominios
  • Conflictos con plugins de WordPress — plugins de seguridad como Wordfence o iThemes bloqueando solicitudes
  • Web Application Firewall (WAF) — Cloudflare, Sucuri o ModSecurity marcando tu solicitud
  • Reglas de HTTPS o de certificado de cliente — un servidor que exige HTTPS (IIS 403.4) o un certificado de cliente (IIS 403.7) rechaza las solicitudes que no lo cumplen. Un certificado caducado muestra en cambio una advertencia de privacidad del navegador, no un 403
  • Límite de solicitudes (rate limiting) — demasiadas solicitudes desde tu IP en poco tiempo; la mayoría de los servidores responden con 429 Too Many Requests, algunos firewalls con 403

Cómo solucionar el 403 como visitante

Si estás viendo un error 403 en un sitio web que no es tuyo, estos son los pasos a seguir. Están listados en orden — comienza desde arriba.

1. Verifica la URL

La solución más simple suele ser la correcta. Asegúrate de que estás visitando una URL de página, no una URL de directorio. La mayoría de los servidores bloquean la exploración de directorios por defecto.

Por ejemplo, visitar https://example.com/images/ (una carpeta) devolverá 403 en la mayoría de los servidores, mientras que https://example.com/images/logo.png (un archivo específico) funciona bien. Revisa que no haya errores de escritura y asegúrate de que la URL apunte a una página real.

2. Limpia la caché y cookies del navegador

Tu navegador puede estar enviando cookies obsoletas o tokens de autenticación en caché que el servidor está rechazando. Limpiarlos fuerza una solicitud nueva.

text
Chrome:  Settings → Privacy → Clear browsing data → Cookies + Cached images
Firefox: Settings → Privacy → Clear Data → Cookies + Cache
Safari:  Settings → Privacy → Manage Website Data → Remove All
Edge:    Settings → Privacy → Clear browsing data → Cookies + Cache

Después de limpiar, cierra y vuelve a abrir tu navegador, luego intenta la URL de nuevo.

3. Desactiva tu VPN o proxy

Las VPN, los proxies y Tor envían tu tráfico desde direcciones IP compartidas en centros de datos. Muchos sitios bloquean esos rangos por completo (sobre todo streaming, venta de entradas, contenido adulto y banca), y una IP compartida que alguien más haya usado de forma abusiva puede estar en una lista de bloqueo.

Desconecta la VPN y recarga. Si la página se abre, el bloqueo es sobre la IP de la VPN: elige otro servidor o deja la VPN apagada para ese sitio. Si no usas VPN, comprueba tu propia IP con ¿Cuál es mi IP? y su reputación con el Verificador de blacklist de IP.

4. Prueba una red o dispositivo diferente

Si el 403 persiste, cambia a una red diferente (datos móviles en vez de Wi-Fi, o viceversa). Esto ayuda a determinar si tu dirección IP está siendo bloqueada.

También puedes probar con un dispositivo o navegador diferente. Si la página carga en un navegador pero no en otro, el problema probablemente está relacionado con datos en caché o extensiones del navegador, no con un bloqueo de IP.

Cómo solucionar el 403 como administrador del sitio

Si los visitantes reportan errores 403 en tu sitio — o los estás viendo tú mismo — la solución casi siempre está en la configuración del servidor. Revisa estos puntos en orden.

5. Corrige los permisos de archivos y directorios

Los permisos de archivo incorrectos son la causa número uno de errores 403 en servidores web. Los permisos estándar para un servidor web son 755 para directorios y 644 para archivos.

Esto es lo que significan esos números: el primer dígito es el permiso del propietario, el segundo es el grupo y el tercero es todos los demás. 7 = leer + escribir + ejecutar, 5 = leer + ejecutar, 4 = solo lectura.

bash
# Fix directory permissions (755 = owner rwx, group rx, others rx)
find /var/www/html -type d -exec chmod 755 {} \;

# Fix file permissions (644 = owner rw, group r, others r)
find /var/www/html -type f -exec chmod 644 {} \;

# Verify ownership (should match your web server user)
ls -la /var/www/html/

# Change ownership to web server user if needed
chown -R www-data:www-data /var/www/html/

6. Revisa las reglas de .htaccess

En servidores Apache, el archivo .htaccess controla las reglas de acceso. Una sola línea mal configurada puede bloquear a todos los visitantes. Busca directivas Deny from all o reglas Require demasiado restrictivas.

La forma más rápida de probar: renombra .htaccess a .htaccess.bak temporalmente. Si el 403 desaparece, el problema está en ese archivo.

bash
# Temporarily rename .htaccess to test
mv /var/www/html/.htaccess /var/www/html/.htaccess.bak

# If 403 goes away, check the file for deny rules:
grep -i 'deny\|require\|allow' /var/www/html/.htaccess.bak

# Common problematic lines:
# Deny from all
# Require all denied
# Order deny,allow

Si el sitio funciona sin .htaccess, revisa el archivo línea por línea. Busca directivas Deny from all o Require all denied que puedan estar bloqueando tráfico legítimo. Reemplázalas con reglas específicas que solo bloqueen lo que deseas bloquear.

7. Agrega un archivo index predeterminado

Cuando un visitante solicita una URL de directorio (como example.com/blog/) sin especificar un archivo, el servidor busca un archivo index predeterminado. Si no existe y el listado de directorios está desactivado, obtienes un 403.

La solución: crea un archivo index.html o index.php en cada directorio de acceso público. También puedes configurar el servidor para permitir el listado de directorios, pero esto generalmente representa un riesgo de seguridad.

apache
# In .htaccess or Apache config — set default index files
DirectoryIndex index.html index.php index.htm

# If you want to allow directory listing (not recommended for production):
Options +Indexes

8. Desactiva los plugins de WordPress

Plugins de seguridad como Wordfence, iThemes Security, Sucuri y All In One WP Security pueden provocar errores 403 al bloquear solicitudes que consideran sospechosas. Esto ocurre con frecuencia después de una actualización de plugin o cambio de reglas.

Para probar, renombra la carpeta de plugins vía FTP o SSH para desactivar todos los plugins a la vez.

bash
# Disable all plugins by renaming the folder
mv /var/www/html/wp-content/plugins /var/www/html/wp-content/plugins.bak

# If 403 goes away, re-enable plugins one by one:
mv /var/www/html/wp-content/plugins.bak /var/www/html/wp-content/plugins
# Then deactivate/reactivate each plugin from WordPress admin

Si el 403 desaparece, vuelve a activar los plugins uno por uno para encontrar el culpable. Revisa los registros del firewall o seguridad del plugin para ver las solicitudes bloqueadas.

9. Verifica el bloqueo de IP y las reglas del firewall

El firewall de tu servidor o el panel de control del hosting puede estar bloqueando direcciones IP específicas, rangos o países enteros. Esto es común con fail2ban, CSF (ConfigServer Security & Firewall) o listas de bloqueo de IP a nivel de hosting.

Revisa las reglas del firewall y los registros del servidor para ver si IPs legítimas están siendo bloqueadas.

bash
# Check if an IP is blocked by iptables
iptables -L -n | grep "203.0.113.50"

# Check fail2ban jail status
fail2ban-client status

# Unban a specific IP
fail2ban-client set <jail-name> unbanip 203.0.113.50

# Check Apache deny rules in server config
grep -r 'Deny from\|Require not ip' /etc/apache2/

10. Revisa las reglas de HTTPS y de certificado de cliente

Un 403 relacionado con TLS ocurre en dos casos: el servidor exige HTTPS y la solicitud llegó por HTTP simple (IIS lo informa como 403.4, «SSL required»), o el servidor exige un certificado de cliente que el visitante no presentó (IIS 403.7; reglas de Apache basadas en SSLVerifyClient). Un certificado caducado o incorrecto muestra en cambio la advertencia de privacidad del navegador, nunca un 403.

Compara los dos esquemas para la misma URL y comprueba el propio certificado con el Verificador SSL de DNS Robot:

bash
# Same page over HTTP and HTTPS: a 403 on one only points at a scheme rule
curl -sI http://example.com/page | head -1
curl -sI https://example.com/page | head -1

11. Soluciona Cloudflare 403 / Error 1020

Detrás de Cloudflare, un 403 puede venir de Cloudflare y no de tu servidor, y su página indica qué función se activó. Una regla WAF personalizada o administrada muestra «Sorry, you have been blocked»; otras funciones de seguridad con la acción Block y sin página personalizada muestran Error 1020: Access denied (documentación de Cloudflare, actualizada en octubre de 2026). Ambas incluyen un Ray ID.

Pide al visitante una captura con el Ray ID y búscalo (o su IP) en el panel, en Security → Analytics → Events: el evento nombra la regla exacta. Ajusta esa regla en lugar de bajar la seguridad en todo el sitio.

  • Security → WAF — revisa las reglas personalizadas, verifica si rutas legítimas están siendo bloqueadas
  • Security → Analytics → Events — encuentra el Ray ID (las marcas de tiempo están en UTC) y mira qué regla provocó el bloqueo
  • Security → Bots — Bot Fight Mode puede bloquear rastreadores legítimos y clientes API
  • Security Level — si está configurado en 'I'm Under Attack', todos los visitantes ven una página de desafío
  • IP Access Rules — verifica que tu IP o país no estén bloqueados accidentalmente

12. Soluciona Nginx 403 Forbidden

Nginx devuelve 403 por varios problemas de configuración específicos. El más común: el proceso worker de Nginx no tiene permiso de lectura sobre los archivos, o la directiva autoindex está desactivada para un directorio sin archivo index.

nginx
# Check Nginx error log for the exact cause
tail -f /var/log/nginx/error.log

# Common Nginx 403 causes and fixes:

# 1. Permission denied — Nginx runs as 'nginx' or 'www-data' user
# Fix: ensure the user running Nginx can read the files
chown -R nginx:nginx /var/www/html/

# 2. No index file in directory — add to server block:
location / {
    index index.html index.php;
}

# 3. SELinux blocking access (CentOS/RHEL)
setsebool -P httpd_read_user_content 1
# Or set proper context:
chcon -R -t httpd_sys_content_t /var/www/html/

SELinux es una causa frecuentemente pasada por alto de errores Nginx 403 en sistemas CentOS y RHEL. Incluso si los permisos de archivo son correctos, SELinux puede bloquear al proceso Nginx de leer archivos. El comando chcon anterior soluciona esto.

Depuración de errores 403 con HTTP Headers

Cuando no puedes determinar la causa, inspecciona los encabezados de respuesta HTTP del servidor. A menudo contienen pistas sobre por qué se bloqueó la solicitud.

Usa el Verificador de encabezados HTTP de DNS Robot o curl desde la terminal para ver la respuesta completa.

bash
# Check the status line and headers of a 403 page
curl -I https://example.com/restricted-page

# Headers that name the system in the path:
# server: cloudflare + cf-ray: 8f3a...-LAX   → Cloudflare
# server: AkamaiGHost                       → Akamai
# server: CloudFront + x-amz-cf-id          → Amazon CloudFront
# x-sucuri-id                               → Sucuri firewall
# x-iinfo                                   → Imperva
# server: nginx / Apache / LiteSpeed        → the site's own web server

Una cabecera de CDN o firewall en un 403 significa que el bloqueo ocurrió antes de que la solicitud llegara a tu servidor, así que busca en el registro de eventos de ese servicio; el nombre de tu propio servidor web significa que la regla está en la configuración del servidor, en .htaccess o en un plugin.

¿Afecta un error 403 al SEO?

Sí, los errores 403 pueden perjudicar tu posicionamiento si afectan a páginas rastreables. Google no indexa las URL que devuelven un código 4xx (salvo 429) y elimina las que ya estaban indexadas.

Unos pocos errores 403 en páginas intencionalmente restringidas (paneles de administración, archivos privados) son normales y no afectarán tu SEO. Pero las páginas públicas que devuelven 403 salen del índice de Google.

El informe «Indexación de páginas» de Search Console las muestra como «Se ha bloqueado debido a que el acceso no está permitido (403)». Googlebot nunca envía credenciales, así que un 403 en una página pública significa que un firewall o una regla de bots lo está bloqueando.

Cómo prevenir errores 403

La prevención es más fácil que la solución de problemas. Sigue estas prácticas para evitar errores 403 en tu sitio.

  • Configura los permisos correctos desde el inicio — 755 para directorios, 644 para archivos, nunca 777
  • Siempre ten un archivo index — cada directorio público necesita index.html o index.php
  • Prueba los cambios en .htaccess — respalda el archivo antes de modificarlo, prueba una regla a la vez
  • Monitorea tus reglas WAF — revisa los registros de Cloudflare, Sucuri o ModSecurity semanalmente
  • Agrega tus propias IPs a la lista blanca — asegúrate de que las IPs de tu oficina, casa y servidor de despliegue estén en la lista blanca
  • Usa el Verificador de encabezados HTTP — verifica regularmente que tus páginas devuelvan 200, no 403
  • Configura monitoreo — usa monitoreo de uptime para recibir alertas cuando las páginas comiencen a devolver 403

¿Es un 403 para todos o solo para ti?

Pasa la página por el Verificador de páginas caídas gratuito de DNS Robot: consulta desde varios lugares a la vez y muestra el estado que recibe cada uno. Un 403 en todas partes es una regla del sitio; un 403 solo para ti es tu red, tu VPN o tu IP.

Fuentes

  1. RFC 9110: HTTP Semantics, §15.5.4 403 Forbidden, IETF
  2. Error 1020 (Cloudflare 1xxx errors), Cloudflare
  3. How HTTP status codes, and network and DNS errors affect Google Search, Google Search Central

Preguntas frecuentes

¿Qué significa 403 Forbidden?

Significa que el servidor entendió tu solicitud y se niega a atenderla: la página existe, pero no tienes permiso para verla. La RFC 9110 lo define exactamente en esos términos. Iniciar sesión o recargar no lo cambia mientras no cambie la regla del sitio.

¿Qué significa «403 Forbidden nginx»?

El sitio funciona con el servidor web nginx y nginx rechazó tu solicitud. «nginx» (o una versión como nginx/1.27.4) es solo la firma de su página de error por defecto: el bloqueo es un ajuste del sitio, como una regla deny, una IP o VPN bloqueada o una carpeta sin archivo index.

¿Qué significa «Forbidden» con «You don't have permission to access this resource»?

Es la página 403 por defecto del servidor web Apache; en español: «Prohibido: no tienes permiso para acceder a este recurso». La configuración del sitio, a menudo una regla de .htaccess o los permisos de archivos, deniega el acceso a esa dirección. Como visitante solo puedes revisar tu parte (VPN, red); el dueño tiene que cambiar la regla.

¿Cómo soluciono un error 403 Forbidden?

Como visitante: revisa la URL, apaga tu VPN o proxy, prueba otra red y borra las cookies del sitio. Como dueño del sitio: pon las carpetas en 755 y los archivos en 644, asegúrate de que cada carpeta pública tenga un archivo index y busca reglas deny en la configuración del servidor, .htaccess o el firewall.

¿403 Forbidden significa que estoy bloqueado?

A veces. Si la página se abre con datos móviles o con la VPN apagada, tu IP o tu red está bloqueada. Si falla en todas partes y para todos, la página está restringida o mal configurada. Un comprobador desde varias ubicaciones te dice cuál es en un solo paso.

¿Por qué me sale 403 Forbidden con una VPN?

Muchos sitios bloquean por política las direcciones IP de VPN, proxies y centros de datos, y las IP de VPN compartidas acaban en listas de bloqueo. Apaga la VPN o cambia de servidor; si el sitio bloquea las VPN a propósito, ningún ajuste de tu lado lo evitará.

¿Cuál es la diferencia entre 403 y 401?

Un 401 Unauthorized te pide autenticarte: unas credenciales válidas te dejan entrar. Un 403 Forbidden te rechaza aunque el servidor sepa quién eres; unas credenciales nuevas solo ayudan si el rechazo era por ellas.

¿Por qué Cloudflare muestra 403 Error 1020?

Una función de seguridad de Cloudflare configurada por el dueño bloqueó tu solicitud. Las reglas WAF muestran en cambio «Sorry, you have been blocked»; el 1020 viene de otras funciones con la acción Block. Envía al dueño el Ray ID: encontrará la regla en Security → Analytics → Events.

¿Qué permisos de archivo corrigen un error 403?

755 para directorios y 644 para archivos, con propietario el usuario con el que corre tu servidor web. Nunca 777: permite que cualquiera en el servidor modifique tus archivos. En CentOS y RHEL, revisa también el contexto de SELinux.

¿Un error 403 puede afectar el SEO?

Sí. Google no indexa las URL que devuelven un 403 y elimina las que ya estaban indexadas. El informe «Indexación de páginas» de Search Console las muestra como «Se ha bloqueado debido a que el acceso no está permitido (403)»; asegúrate de que las reglas del firewall y de bots dejen pasar a Googlebot.

Sobre el autor

Shaik Vahid

Fundador de DNS Robot. Vahid pasó años en el soporte de alojamiento web resolviendo dominios, registros DNS, certificados SSL y la entrega de correo para clientes. Desarrolla las herramientas de DNS Robot y escribe estas guías a partir de los errores que la gente encuentra de verdad.

Comprobador de Páginas Caídas

¿La página está caída para todos o solo para usted? Compruebe cualquier web desde 11 lugares y desde su conexión, con una captura en vivo