403 Forbidden : pourquoi l’accès est refusé et comment corriger

403 Forbidden : le serveur a compris la requête mais refuse de l’exécuter, en général à cause de permissions, de règles deny ou d’un pare-feu.

Vérifier le code d’état d’une URL

403 Forbidden signifie que le serveur a compris la requête et refuse de l’exécuter. Se reconnecter n’y changera rien : contrairement au 401, le problème n’est pas l’absence d’identifiants mais une règle qui dit « pas pour vous », comme des permissions de fichiers, un blocage d’IP, la décision d’un pare-feu ou la configuration du serveur.

Définition

La RFC 9110, section 15.5.4 précise que le serveur « a compris la requête mais refuse de l’exécuter », et qu’un client ne devrait pas simplement réessayer avec les mêmes identifiants. Le serveur peut expliquer pourquoi dans le corps de la réponse ou, s’il veut cacher jusqu’à l’existence de la ressource, répondre 404 à la place.

Causes courantes

  • Permissions ou propriétaire des fichiers. L’utilisateur du serveur web ne peut pas lire le fichier ou entrer dans le dossier. Les valeurs sûres habituelles sont 644 pour les fichiers et 755 pour les répertoires.
  • Pas de fichier index et liste des fichiers désactivée. Nginx consigne « directory index of … is forbidden » ; Apache renvoie 403 avec Options -Indexes.
  • Règles deny dans .htaccess ou dans la configuration du serveur (Require all denied, deny all), listes d’IP autorisées ou blocage géographique.
  • WAF et protection anti-bots : règles de CDN, extensions de sécurité ou pare-feu d’hébergeur qui bloquent les robots, dont Googlebot ou les robots de recherche IA.
  • Protection contre le hotlinking sur les images et les téléchargements.

Impact SEO

Selon la documentation de Google sur les codes de statut HTTP, un 403 est traité comme les autres codes 4xx : l’URL n’est pas indexée, les copies indexées sont supprimées et le contenu de la réponse est ignoré. La Search Console l’étiquette « Bloquée en raison d’un accès interdit (403) ». Google précise aussi qu’il ne faut pas utiliser 403 pour ralentir Googlebot, car cela ne réduit pas le crawl. Si robots.txt lui-même renvoie 403, Google considère le fichier comme absent et suppose qu’il n’y a aucune restriction de crawl.

Le cas dangereux est celui d’un pare-feu qui bloque les robots pendant que les humains naviguent normalement : les positions disparaissent et personne dans l’équipe ne voit d’erreur. Il en va de même pour la recherche IA. Si votre CDN renvoie 403 à OAI-SearchBot ou Claude-SearchBot, ces services ne peuvent ni récupérer ni citer vos pages, quoi que votre robots.txt autorise.

Comment corriger un 403

Pour les propriétaires de site

  1. Déterminez si tout le monde reçoit le 403 ou seulement certains clients. Si un vérificateur obtient 403 mais pas votre navigateur, examinez votre pare-feu, les réglages anti-bots de votre CDN ou votre extension de sécurité.
  2. Autorisez les robots de moteurs de recherche vérifiés. Google explique comment vérifier Googlebot par DNS inversé ou grâce à ses plages d’IP publiées ; fiez-vous à cela, et non à la chaîne user-agent.
  3. Demandez à votre hébergeur de vérifier les permissions et les règles du serveur si un dossier entier ou tout le site est touché.

Pour les développeurs

# rétablir les permissions habituelles (adaptez d’abord le chemin et le propriétaire)
find /var/www/site -type d -exec chmod 755 {} \;
find /var/www/site -type f -exec chmod 644 {} \;

# Nginx : vérifiez que les répertoires ont un fichier index
index index.html index.php;

Réservez le 403 aux vrais échecs d’autorisation, pas aux pages manquantes ni à la limitation de débit, pour laquelle existe le 429.

Comment vérifier

Le vérificateur de statut HTTP demande les URL depuis nos serveurs, en dehors de votre session connectée. Le vérificateur de robots IA va plus loin : il demande votre page avec de vrais user-agents d’IA pour repérer les 403 de pare-feu que robots.txt n’explique pas.

HTTP/1.1 403 Forbidden
Server: nginx
Content-Type: text/html
Content-Length: 146

Questions fréquentes

Pourquoi ai-je un 403 alors que les autres n’en ont pas ?

Un élément de votre requête correspond à une règle de blocage : votre adresse IP, votre pays, votre réseau, une extension de navigateur ou vos cookies. Les pare-feu et les extensions de sécurité en sont la source habituelle ; consultez donc leurs journaux pour retrouver votre requête.

Comment savoir si Googlebot reçoit un 403 de mon site ?

Cherchez « Bloquée en raison d’un accès interdit (403) » dans le rapport « Indexation des pages » de la Search Console et consultez le rapport sur les statistiques d’exploration. Cherchez ensuite dans les journaux de votre pare-feu ou de votre CDN les requêtes bloquées venant d’adresses IP vérifiées de Googlebot.

Les pages privées doivent-elles renvoyer 403 ou 404 ?

Les deux les gardent hors de l’index de Google. La RFC 9110 autorise le 404 quand vous préférez ne pas révéler l’existence de la page ; le 403 est plus honnête quand les utilisateurs savent que la page existe mais n’y ont pas accès.