403 Forbidden: por qué se deniega el acceso y cómo arreglarlo
403 Forbidden significa que el servidor entendió la solicitud pero se niega a cumplirla, normalmente por permisos, reglas de denegación o un firewall.
403 Forbidden significa que el servidor entendió la solicitud y se niega a cumplirla. Volver a iniciar sesión no ayudará: a diferencia del 401, el problema no son unas credenciales ausentes sino una regla que dice “esto no es para ti”, como los permisos de archivo, un bloqueo de IP, la decisión de un firewall o la configuración del servidor.
Definición
La RFC 9110, sección 15.5.4 dice que el servidor “entendió la solicitud pero se niega a cumplirla”, y que el cliente no debería limitarse a reintentarla con las mismas credenciales. El servidor puede explicar el motivo en el cuerpo de la respuesta o, si quiere ocultar que el recurso existe, responder 404 en su lugar.
Causas habituales
- Permisos o propietario de los archivos. El usuario del servidor web no puede leer el archivo ni entrar en la carpeta. Los valores seguros habituales son 644 para archivos y 755 para directorios.
- Sin archivo de índice y con el listado de directorios desactivado. Nginx registra “directory index of … is forbidden”; Apache devuelve 403 con
Options -Indexes. - Reglas de denegación en
.htaccesso en la configuración del servidor (Require all denied,deny all), listas de IP permitidas o bloqueo geográfico. - WAF y protección contra bots: reglas de CDN, plugins de seguridad o firewalls del hosting que bloquean a los rastreadores, incluidos Googlebot o los bots de búsqueda con IA.
- Protección contra hotlinking en imágenes y descargas.
Impacto en el SEO
Según la documentación de Google sobre códigos de estado HTTP, un 403 se gestiona como los demás códigos 4xx: la URL no se indexa, las copias indexadas se eliminan y se ignora el contenido de la respuesta. Search Console lo etiqueta como “Bloqueada debido a un acceso prohibido (403)”. Google también dice que no se use el 403 para frenar a Googlebot, ya que no reducirá el rastreo. Si el propio robots.txt devuelve 403, Google trata el archivo como inexistente y asume que no hay restricciones de rastreo.
El caso peligroso es un firewall que bloquea a los rastreadores mientras las personas navegan con normalidad: el posicionamiento desaparece y nadie del equipo ve ningún error. Lo mismo ocurre con la búsqueda con IA. Si tu CDN devuelve 403 a OAI-SearchBot o a Claude-SearchBot, esos servicios no pueden obtener ni citar tus páginas, diga lo que diga tu robots.txt.
Cómo solucionar un 403
Para propietarios de sitios
- Averigua si el 403 lo recibe todo el mundo o solo algunos clientes. Si un comprobador recibe 403 pero tu navegador no, revisa tu firewall, los ajustes de bots de tu CDN o tu plugin de seguridad.
- Permite a los rastreadores de buscadores verificados. Google explica cómo verificar Googlebot mediante DNS inverso o sus rangos de IP publicados; apóyate en eso, no en la cadena del user-agent.
- Pide a tu hosting que revise los permisos y las reglas del servidor si afecta a toda una carpeta o a todo el sitio.
Para desarrolladores
# restablece los permisos habituales (ajusta antes la ruta y el propietario)
find /var/www/site -type d -exec chmod 755 {} \;
find /var/www/site -type f -exec chmod 644 {} \;
# Nginx: asegúrate de que los directorios tienen un archivo de índice
index index.html index.php;
Usa el 403 para fallos reales de autorización, no para páginas inexistentes ni para limitar la frecuencia de solicitudes, que es para lo que sirve el 429.
Cómo comprobarlo
El comprobador de códigos de estado HTTP solicita las URL desde nuestros servidores, fuera de tu sesión iniciada. El comprobador de rastreadores de IA va más allá: solicita tu página con user-agents de IA reales para detectar los 403 del firewall que el robots.txt no explica.
HTTP/1.1 403 Forbidden
Server: nginx
Content-Type: text/html
Content-Length: 146 Preguntas frecuentes
¿Por qué recibo un 403 cuando otras personas no?
Algo de tu solicitud coincide con una regla de bloqueo: tu dirección IP, tu país, tu red, una extensión del navegador o tus cookies. Lo normal es que el origen sea un firewall o un plugin de seguridad, así que revisa sus registros para ver tu solicitud.
¿Cómo sé si Googlebot recibe un 403 de mi sitio?
Busca “Bloqueada debido a un acceso prohibido (403)” en el informe Indexación de páginas de Search Console y revisa el informe Estadísticas de rastreo. Después busca en los registros de tu firewall o CDN las solicitudes bloqueadas de direcciones IP verificadas de Googlebot.
¿Las páginas privadas deben devolver 403 o 404?
Ambos mantienen una página fuera del índice de Google. La RFC 9110 permite el 404 cuando prefieres no revelar que la página existe; el 403 es más honesto cuando los usuarios saben que la página está ahí pero no tienen acceso.