web-dev-qa-db-ja.com

検索エンジンはプロトコル相対リンクをどのように処理しますか?

現在、多くのサイトがHTTPSをサポートしていますが、HTTPSを必要としないため、プロトコル相対リンクが増加しています。

プロトコル相対リンクは、プロトコルが指定されていないリンクです。リンクを含むページがHTTPSとして表示される場合、ブラウザーはHTTPSにリダイレクトし、リンクを含むページがHTTPとして表示される場合、HTTPにリダイレクトします。たとえば、 this link はプロトコル相対です。マウスオーバーすると、この質問を表示しているのと同じプロトコルが表示されます。

検索エンジンはプロトコル相対リンクをどのように解析しますか? GooglebotがHTTP経由でページをクロールしている場合、プロトコル相対リンクをたどるとHTTPのままになりますか、それともターゲットリンクのHTTPバージョンとHTTPSバージョンの両方を確認する必要がありますか?

3
nhinkle

検索エンジンはプロトコル相対リンクをどのように解析しますか?

Webクローラー は、 RFC 3986 で説明されているように、ブラウザーがURIを解析するのと同じ規則に従います RL normalizationin order to avoid crawling the same resource more than onceの実行を含みます。

Googlebotのような一部のクローラーは render webpagesであるため、プロトコル相対URIと相対URIは、最新のブラウザーを使用するユーザーと同じように表示され、現在の場所からのベースパスが追加されます。

また、Googleは here 相対URLを使用することensures your links and resources always use HTTPS.


フェッチしてレンダリング モードを Fetch as Google を使用して、Googlebotでテストできます。

Googlebotは、画像、CSS、JavaScriptファイルなど、URLで参照されるすべてのリソースを取得し、任意のコードを実行します。ページの視覚的なレイアウトを画像としてレンダリングまたはキャプチャします。レンダリングされた画像を使用して、Googlebotがページを表示する方法と、ブラウザがページをレンダリングする方法の違いを検出できます。

ソースにプロトコル相対URIを使用して画像を追加すると、Googlebotがその画像でページをレンダリングするかどうかを確認できます。


ただし、プロトコル相対URIおよび相対URIは、URLがソースコードから解析され、データベース化されてからクロールされる parallel アーキテクチャをよく使用するため、Googlebotよりも洗練されていない一部のクローラーでエラーが発生する可能性がありますparallel。それらが見つかったURLからのベースパスが相対URIに追加されない限り、クローラーはそれを解決できません。

別の問題のある領域は、サイトマップツールを使用してサイトマップが自動的に作成される場合です。これは、ソースコードからの相対URIも解析し、サイトマップ内の、上記と同じ問題が発生します。

base element を設定することにより、これらの問題を回避できる可能性があります。これは、そのページで見つかった相対URIに使用するプロトコルなど、相対URIを解決する方法をブラウザーとボットに指示します。これらの問題を完全に回避するために、可能な限り 絶対URL を使用することを強くお勧めします。

3
dan