web-dev-qa-db-fra.com

URL Googlebot codant les adresses URL à longue distance qui provoquent des erreurs de serveur

Mon trafic de recherche Google n'a cessé de croître pendant des mois, sans aucun hoquet. Puis, il y a quelques jours, Google a diminué mon trafic d'environ 80% en une journée. La circulation reprendrait ensuite plusieurs heures plus tard ou le lendemain, pour ensuite redescendre un peu, puis revenir.

Bien sûr, cela me concerne et je ne pouvais pas comprendre le problème au début.

J'ai implémenté un autre sous-répertoire sur le site avec beaucoup de nouveau contenu il y a quelques semaines.

Après avoir effectué quelques tests, je me suis rendu compte que beaucoup de liens dans le nouveau sous-répertoire ont des caractères étrangers. Ensuite, Google les code.

Ainsi, par exemple, je lie à:

example.com/new-directory/--वाला- Ritesh-Pandey- का-2018--सबसे-हिट- Sad-Song- जनाजा-मेरा- Janaja-Mera-Riddhi-Enter.

Et puis, l'URL de Google le code comme:

example.com/new-directory/%E0%A4%B0%E0%A5%81%E0%A4%B2%E0%A4%BE4%BE0%E4%A0 % A8% E0% A5% 87% 20% E0% A4% B5% E0% A4% BE% E0% A4% B2% E0% A4% BE% 20Ritesh% 20Pandey% 20% E0% A4% 95% E0% A4 % BE% 202018% 20% E0% A4% 95% E0% A4% BE% 20% E0% A4% B8% E0% A4% AC% E0% A4% B8% E0% A5% 87% 20% E0% A4 % B9% E0% A4% BF% E0% A4% 9F% 20Sad% 20Song% 20-% 20% E0% A4% 9C% E0% A4% A0% A4% BE% E0% A4% 9C% E0% A4% BE% 20% E0% A4% AE% E0% A5% 87% E0% A4% B0% E0% A4% BE% 20-% 20Janaja% 20Mera% 20-% 20Riddhi% 20Entre.

Le problème est que la deuxième URL est trop longue et provoque des erreurs de serveur dues à un trop grand nombre de redirections. Lorsque je récupère ces URL dans la console de recherche, Google ne peut pas les restituer.

La console de recherche a commencé à signaler ces erreurs il y a environ une semaine, ce qui est passé inaperçu. Il est donc possible que ce soit ce qui ait causé la chute du trafic de Google Flux.

Il existe des millions de liens sur le site comme celui-ci, et pour enregistrer le site Web, j'ai donc supprimé le nouveau répertoire de contenu, tous les liens et redirigé toutes les pages de ce répertoire vers la page d'accueil. Google est maintenant en mesure de récupérer ces URL et montre qu'elles 302 sont redirigées vers la page d'accueil.

Je pourrais raccourcir les liens des URL encodées et cela devrait être corrigé, car il y a moins de redirections, mais j'ai peur de remettre le répertoire. En effet, si Google met plusieurs de ces URL longues en file d'attente, ils continueront à signaler ces erreurs et je risque un nouveau ralentissement du trafic.

Existe-t-il de bonnes solutions à ce problème? Je voudrais pouvoir sauvegarder le contenu et supprimer les fichiers 302, mais je ne sais pas comment corriger les erreurs de serveur associées à un trop grand nombre de redirections. J'ai essayé les URL sur deux serveurs différents et les deux avaient les mêmes erreurs.

Modifications:

Puis-je modifier LimitRequestLine dans httpd.conf pour autoriser des URL plus longues? Le fichier httpd.conf indique "Les modifications directes sur le fichier de configuration Apache SERONT perdues lors de la régénération ultérieure de ce fichier de configuration ou d'une mise à jour Apache." Si le fichier de configuration régénère/met à jour, ces erreurs continueront à se produire. Httpd.conf dit "Pour que vos modifications soient conservées, vous devez créer/modifier les fichiers d'inclusion spécifiques à l'administrateur:". Mais je ne sais pas vraiment comment faire cela et j'ai bien peur de ruiner le serveur en le ratant.

Est-il possible de supprimer les caractères de codage d'URL dans htaccess avant les redirections du serveur? Ou est-ce que les redirections encodées par URL du serveur se produisent avant htaccess mod-rewrites?

2
Michael d

Les navigateurs doivent également encoder les URL avec des caractères internationaux avant de les récupérer. Les URL ne peuvent contenir que ASCII par spécification. Les caractères internationaux ont été chausés dans via l'encodage. Les navigateurs affichent les caractères internationaux aux utilisateurs, mais envoient toujours la version codée au serveur.

Ceci est défini par RFC 398 . Il y a un peu plus facile à lire article Wikipedia à ce sujet.

Les caractères internationaux doivent être codés en utilisant le pourcentage de codage de leurs valeurs UTF-8. Cela signifie que chaque caractère international unique dans l'URL a une longueur de 6 à 12 ASCII. Votre URL encodée en pourcentage va être beaucoup plus longue que votre URL non encodée.

Votre serveur doit pouvoir prendre en charge l'intégralité des URL codées. Vous devez soit réduire la longueur des URL, soit trouver un serveur capable de les gérer. Il vous ressemble devrait pouvoir supporter des URL de 2 000 caractères sans aucun problème . IE devrait être le facteur limitant. Le serveur Apache devrait pouvoir prendre en charge les URL comportant jusqu'à 4 000 caractères.

2