414 URI Too Long : quand les URL dépassent les limites du serveur
414 URI Too Long : l’URL demandée dépasse la longueur que le serveur accepte de traiter, souvent à cause de boucles de redirection ou de paramètres incontrôlés.
414 URI Too Long signifie que l’URL demandée dépasse la longueur que le serveur accepte de traiter. Les vrais visiteurs ne saisissent presque jamais de telles URL ; ce sont des logiciels qui les produisent, par des chaînes de requête incontrôlées, des combinaisons de filtres sans fin ou des boucles de redirection qui ajoutent sans cesse des paramètres.
Définition
La RFC 9110, section 15.5.15 énumère les causes habituelles : un client qui transforme un POST en GET avec une énorme chaîne de requête, un client pris dans une boucle de redirection où chaque saut allonge l’URL, ou une attaque. La section 4.1 de la même RFC recommande que les logiciels prennent en charge des URL d’au moins 8 000 octets. Un 414 est mis en cache par défaut.
Limites des serveurs
- Nginx renvoie 414 quand la ligne de requête ne tient pas dans
large_client_header_buffers(4 × 8 Ko par défaut). Sa page affiche « 414 Request-URI Too Large ». - Apache utilise
LimitRequestLine, 8 190 octets par défaut. - Les CDN, les répartiteurs de charge et les navigateurs ont leurs propres plafonds.
Impact SEO
Une URL qui renvoie 414 ne peut pas être indexée ; pour Google, c’est un 4xx comme un autre. Le plus gros problème se situe en amont : si votre site génère des URL à paramètres quasi infinies, les robots gaspillent du budget de crawl sur elles bien avant que l’une n’atteigne la limite. Les coupables habituels :
- Une navigation à facettes qui ajoute chaque filtre sélectionné comme un paramètre supplémentaire.
- Des paramètres de suivi ou de session ajoutés à chaque lien interne.
- Des règles de redirection qui rajoutent
?lang=en(ou équivalent) à chaque saut, créant une boucle qui grossit jusqu’à l’échec.
Comment le corriger
- Tracez l’URL avec le vérificateur de redirections ; si chaque saut est plus long que le précédent, corrigez la règle de réécriture à l’origine de la boucle.
- Envoyez les gros formulaires de recherche ou de filtrage en POST, ou conservez l’état côté serveur et transmettez un court identifiant.
- Gardez vos liens internes sur des URL propres et courtes, et faites pointer les variantes à paramètres vers la version principale avec une balise canonical.
- Ne relevez la limite du serveur que si une fonctionnalité légitime l’exige.
# Nginx
large_client_header_buffers 4 16k;
# Apache
LimitRequestLine 16384
Exemple de réponse
GET /shop?color=red&color=red&color=red&color=red... HTTP/1.1
Host: www.example.com
HTTP/1.1 414 Request-URI Too Large
Server: nginx
Content-Type: text/html
Une liste d’URL concernées peut aller directement dans le vérificateur de statut HTTP pour confirmer la correction.
Questions fréquentes
Quelle est la longueur maximale d’une URL ?
Il n’existe pas de limite unique. La RFC 9110 recommande de prendre en charge au moins 8 000 octets, et les serveurs courants limitent par défaut la ligne de requête à environ 8 Ko. Gardez de vraies URL bien plus courtes.
Les URL longues nuisent-elles au SEO ?
La longueur seule n’est pas le problème, mais des combinaisons de paramètres sans fin gaspillent le budget de crawl et créent du contenu dupliqué. Des URL courtes et descriptives sont aussi plus faciles à lire et à partager.
Pourquoi mon URL ne cesse-t-elle de s’allonger jusqu’à renvoyer 414 ?
En général, une règle de redirection ajoute un paramètre ou un segment de chemin à chaque saut, ce qui crée une boucle. Tracez-la avec un vérificateur de redirections et corrigez la règle pour qu’elle ne redirige que si nécessaire.