413 Content Too Large : corriger les limites de taille d’envoi
413 Content Too Large : le corps de la requête, souvent un fichier envoyé, dépasse la taille que le serveur accepte.
413 Content Too Large signifie que le corps de la requête, en général un fichier envoyé ou un gros formulaire, dépasse ce que le serveur accepte. Les anciennes normes l’appelaient « Request Entity Too Large », puis « Payload Too Large », des formulations que de nombreux serveurs affichent encore.
Définition
La RFC 9110, section 15.5.14 autorise le serveur à refuser la requête et à fermer la connexion. Si la limite n’est que temporaire, le serveur devrait envoyer Retry-After. Les clients qui envoient Expect: 100-continue peuvent connaître la limite avant de transmettre quoi que ce soit (voir 100 Continue).
Où se trouve la limite
Un 413 peut venir de n’importe quelle couche entre le navigateur et votre code : vérifiez-les toutes.
- Nginx :
client_max_body_size, 1 Mo par défaut. Sa page d’erreur affiche toujours « 413 Request Entity Too Large ». - Apache :
LimitRequestBody. - CDN ou proxy : Cloudflare, par exemple, plafonne la taille du corps de requête selon l’offre (100 Mo en Free et Pro à la date de rédaction).
- PHP :
upload_max_filesize(2M par défaut) etpost_max_size(8M par défaut). PHP n’envoie pas lui-même de 413 (les envois trop gros arrivent vides ou signalés par une erreur d’envoi), mais la solution figure dans la même liste. Le message WordPress « dépasse la taille maximale de téléversement » vient de ces réglages.
Comment le corriger
# Nginx (bloc http, server ou location)
client_max_body_size 64m;
# Apache
LimitRequestBody 67108864
; php.ini (puis redémarrez PHP-FPM)
upload_max_filesize = 64M
post_max_size = 64M
Ne relevez les limites que là où les envois ont lieu, comme une zone d’administration ou un emplacement d’envoi, plutôt que sur tout le site. Pour de très gros fichiers, envoyez-les directement vers un stockage d’objets avec des URL signées, ou utilisez des envois reprenables, qui évitent aussi les délais d’attente 408 sur les connexions lentes.
Impact SEO
Aucun pour le crawl habituel : Googlebot demande les pages avec GET et n’envoie aucun corps, il ne peut donc pas dépasser une limite de taille. Un 413 compte pour vos utilisateurs (envois qui échouent, formulaires cassés) et pour les intégrations d’API qui envoient des données en POST. Si l’URL d’une page renvoie 413 à une requête simple, vérifiez vos règles de sécurité ; Google le traiterait comme n’importe quel autre 4xx et retirerait la page.
Exemple et test
HTTP/1.1 413 Request Entity Too Large
Server: nginx
Content-Type: text/html
Connection: close
Les clients se fient au numéro, pas au texte : « Request Entity Too Large » et « Content Too Large » ont donc le même sens. Notre vérificateur d’en-têtes HTTP et notre vérificateur de statut HTTP envoient des requêtes ordinaires sans corps : ils ne reproduiront pas une limite d’envoi. Testez-la plutôt avec curl, par exemple curl -i -F 'file=@big.zip' https://www.example.com/upload.
Questions fréquentes
Comment corriger « 413 Request Entity Too Large » dans WordPress ?
Relevez la limite d’envoi à chaque couche : client_max_body_size dans Nginx (ou LimitRequestBody dans Apache), plus upload_max_filesize et post_max_size dans PHP. Sur un hébergement géré, demandez à votre hébergeur de les modifier.
Une erreur 413 affecte-t-elle le SEO ?
Non. Les robots récupèrent les pages sans corps de requête et ne rencontrent donc jamais les limites d’envoi. Elle n’affecte que les visiteurs et les intégrations qui envoient des données.
Pourquoi ai-je encore un 413 après avoir modifié php.ini ?
Une autre couche a encore une limite plus basse, en général client_max_body_size de Nginx ou un CDN, ou PHP-FPM n’a pas été redémarré. Vérifiez chaque couche entre le visiteur et votre application.