web-dev-qa-db-ja.com

サーバーエラーの原因となっているGooglebot URLencoding longtail URL

私のGoogle検索トラフィックは何ヶ月も一貫して増え続けており、何の問題もありません。それから数日前、Googleは1日でトラフィックを約80%落としました。その後、トラフィックは数時間後または翌日にリバウンドし、少しの間だけドロップしてから戻ってきました。

もちろんこれは私に関係しており、最初は問題が何であったかわかりませんでした。

数週間前に、新しいコンテンツがたくさんある別のサブディレクトリをサイトに実装しました。

いくつかのテストを実行した後、新しいサブディレクトリ内のリンクの多くに外来文字が含まれていることに気付きました。次に、GoogleはそれらをURLエンコードします。

したがって、たとえば、私はにリンクします:

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

そして、Googleはそれを次のようにURLエンコードします:

example.com/new-directory/%E0%A4%B0%E0%A5%81%E0%A4%B2%E0%A4%BE%20%E0%A4%A6%E0%A5%87%E0%A4 %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%A8%E0%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%20Enter。

問題は、2番目のURLが長すぎて、リダイレクトが多すぎるためにサーバーエラーが発生していることです。検索コンソールでこれらのURLを取得すると、Googleはそれらをレンダリングできません。

Search Consoleは1週間ほど前にこれらのエラーの報告を開始しましたが、気付かなかったため、これがGoogleのフラックストラフィックの低下を引き起こした可能性があると考えています。

このようなサイトには数百万のリンクがあります。そのため、Webサイトを保存するために、新しいコンテンツディレクトリを削除し、すべてのリンクを削除し、そのディレクトリのすべてのページをホームページにリダイレクトします。 GoogleはこれらのURLを取得できるようになり、ホームページに302リダイレクトされることを示しています。

URLencoded URLのリンクを短くすることができ、リダイレクトが少なくなるのでこれを修正する必要がありますが、ディレクトリを元に戻すことを恐れています。 GoogleがこれらのロングテールURLのキューをキューに入れている場合、それらは引き続きこれらのエラーを報告し、別のトラフィックドロップのリスクがあるためです。

この問題の良い解決策はありますか?コンテンツをバックアップし、302を削除したいのですが、リダイレクトが多すぎるサーバーエラーを修正する方法がわかりません。 2つの異なるサーバーでURLを試しましたが、どちらにも同じエラーがありました。

編集:

長いURLを許可するようにhttpd.confのLimitRequestLineを変更できますか? httpd.confファイルには、「Apache構成ファイルへの直接の変更は、この構成ファイルの後続の再生成またはApacheの更新時に失われます」と書かれています。構成ファイルが再生成/更新されると、これらのエラーが発生し続けます。 Httpd.confは、「変更を保持するには、管理者固有のインクルードファイルを作成/編集する必要があります」と述べています。しかし、私はそれを行う方法を本当に知りません、それを台無しにすることでサーバーを台無しにすることができるのではないかと心配しています。

サーバーがリダイレクトする前にhtaccessのURLencoding文字を削除することは可能ですか?または、htaccess mod-rewriteの前にサーバーのURLエンコードされたリダイレクトが発生しますか?

2
Michael d

また、ブラウザはURLを取得する前に国際文字でエンコードする必要があります。 URLには、仕様によりASCIIのみを含めることができます。国際文字は、エンコードを介して急上昇しました。ブラウザは国際文字をユーザーに表示しますが、エンコードされたバージョンを常にサーバーに送信します。

これは RFC 398 で定義されています。少し読みやすい Wikipediaの記事 についてあります。

国際文字は、UTF-8値のパーセントエンコーディングを使用してエンコードする必要があります。つまり、URLの各国際文字は6〜12 ASCII文字の長さになります。エンコードされたURLの割合は、エンコードされていないURLよりもはるかに長くなります。

サーバーは、完全にエンコードされたURLをサポートできる必要があります。 URLの長さを短くするか、URLを処理できるサーバーを見つける必要があります。 問題なく2,000文字のURLをサポートできるはずです 。 IEは制限要因である必要があります。 Apacheサーバーは、最大4,000文字のURLをサポートできる必要があります。

2