Google 検索では、URL 内の角括弧句読点 (つまり ( )) の処理にいくつかの問題がありました。 Googleのジョン・ミューラー氏は元Google社員のヴァネッサ・フォックス氏に対し、「URLにこの種の文字が含まれることで内部的にいくつかの問題が発生していると認識している」と述べた。
さらに「(10年以上前の話ですが)」と丸カッコで付け加えた。同氏はまた、「他のクローラー/インデクサー/フェッチャーはこのロジックにおいてそれほど正確ではない可能性があるため、気になるものを再確認する価値があるかもしれない」とも述べた。
ヴァネッサ・フォックスの最初の質問はブルースカイに関するもので、彼女は次のように書いています。
私は YT ビデオのコメントにこの質問を投稿しました。エンコード可能な文字 (角かっこ、プラス記号、スペース) を含む URL の場合、Google はエンコードされたバージョンを別の URL として扱いますか? (example.com/category?filter()=123 対、リンクで使用される example.com/category?filter%5B%5D=123 対正規値)。
Google の John Mueller からは次のような長い返信がありました。
さて、ティル。私はそれらが同等であると思っていましたが、そうではありませんでした。これは楽しい寄り道でした。 “?filter()=123” ≠ “?filter%5B%5D=123” は、RFC 3986 セクション 2.2 で文字括弧 ((, )) とプラス記号 (+) が予約セットの一部として定義されているためです。
「予約文字を対応するパーセント エンコードされたオクテットに置き換える点が異なる URI は同等ではありません。予約文字をパーセント エンコードするか、予約文字に対応するパーセント エンコードされたオクテットをデコードすると、ほとんどのアプリケーションによる URI の解釈方法が変わります。したがって、予約セット内の文字は正規化から保護されます…」 — IETF STD 66 / RFC 3986、セクション 2.2
JavaScript はこれをチェックすることもできます: new URL(‘https://example.com/category?filter()=123’).href === new URL(‘https://example.com/category?filter%5B%5D=123’).href // 出力: false
そうは言っても、サーバーが同じコンテンツを提供することでそれらを「ソフト同等」にしている可能性があります。両方のバージョンをクロールし、同じコンテンツ (おそらくチェックサム レベルでも) が見つかった場合は、重複を除外してどちらかを選択します。
つまり、1 つを選択し、一貫して使用する必要があります (リンク、正規、サイトマップ、構造化データ)。 ” ” (スペース)、+ (プラス)、および “%20” も同様ですが、これは、どの URL 要素に含まれるか (パスとクエリ文字列) に応じて異なります。
スペースの部分については知っていましたが、括弧は予想外だったので、おそらく過去にこれについて人々に間違った答えを与えていたと思います。おっと。ところで、16 進数エンコードの場合、大文字と小文字は関係ないため、「%5B」 === “%5b” となります。
まるでそれだけでは十分ではないかのように。括弧: これらは等価ではないだけでなく、?filter()=123 の URL は技術的に無効です (RFC 3986 によれば) () は生の IPv6 アドレスをラップするためにのみホスト名に現れる可能性があります🤯。通常、ブラウザは入力時に 16 進数でエンコードしますが、サーバーは猫のようなものです。
ヴァネッサ・フォックスはその後、こう書いた。
ああ、見たよ!しかし、この特定のサイトでは無効な () 形式が全体的に使用されており、インデックスは正常に作成されているようです。それを変更するには膨大な作業が必要になるため、今のところそのままにしておきます… 指をくわえたままですか?
ジョン・ミューラーはこう答えた。
私はそれが機能し続けることを期待しています – Web は乱雑で、すべてが「技術的に正しい」わけではありません – しかし、私はこのような新しいサイトをセットアップしませんし、一貫性を保つためにすべての内部リンク (rel=canonical などのメタデータ、構造化データなどを含む) に特別な注意を払うでしょう。
また、URL にこの種の文字が含まれるという内部的な問題のいくつかを見ると (10 年以上前のことですが)、他のクローラー / インデクサー / フェッチャーはこのロジックにそれほど正確ではない可能性があるため、気になるものを再確認する価値があるかもしれません。
Google はおそらく今すぐ対処できるでしょうが、安全を確保したほうが良いでしょうか?
最新情報: John は、「問題ありません。URL のインターネット標準は非常に特殊なだけです。」と付け加えました。