ホームページと末尾のスラッシュの正規URL


14

私のホームページは次のようにリンクされる可能性があります。

http://example.com
http://example.com/
http://example.com/?ref=1
http://example.com/index.html
http://example.com/index.html?ref=2

(the same page is served for all those URLs)

GoogleがこれらのURLを別のページと見なさないように、標準URLを定義することを考えています。

<link rel="canonical" href="/webmasters//" /> (relative)
<link rel="canonical" href="http://example.com/" /> (trailing slash)
<link rel="canonical" href="http://example.com" /> (no trailing slash)

どちらを使用する必要がありますか?私はただ平手打ちをするだろう/が、標準をいじるのは恐ろしいビジネスのように思えるので、最初にダブルチェックをしたかった。

ホームページの正規のURLを定義することはまったく良い考えですか?



回答:


14

RFC 2616(HTTP / 1.1)のセクション3.2.2に従って、URL http://www.example.comhttp://www.example.com/は同等であり、HTTPクライアントはサーバーにリクエストを送信する前に前者を後者に正規化する必要があります。

「abs_pathがURLに存在しない場合、リソースのRequest-URIとして使用する場合は「/」として指定する必要があります(セクション5.1.2)。」

セクション5.1.2には次のように記載されています。

「絶対パスを空にすることはできません。元のURIに何も存在しない場合は、「/」(サーバールート)として指定する必要があります。」

RFC 3986(URI Generic Syntax)は、セクション6.2.3、Scheme-Based Normalizationでこれを確認しており、次のことに注意してください。

「たとえば、「http」スキームはオーソリティコンポーネントを使用し、「80」のデフォルトポートを持ち、「/」に相当する空のパスを定義するため、次の4つのURIは同等です。

    http://example.com
    http://example.com/
    http://example.com:/
    http://example.com:80/

一般に、空のパスを持つ権限に汎用構文を使用するURIは、「/」のパスに正規化する必要があります。同様に、ポートが空またはスキームのデフォルトである明示的な「:port」は、ポートとその「:」区切り文字が省略されているため、スキームベースの正規化によって削除する必要があるものと同等です。たとえば、上の2番目のURIは「http」スキームの標準形式です。

技術的には、RFC 3986セクション6.2.3で説明されている正規化は、単にURLのインデックス付けなどの実装ではオプションですが、RFC 2616では、実際にHTTP要求を送信するクライアントに対して必須です。それでも、標準ではそのような正規化が許可されており、検索エンジンは通常、意図的に重複をインデックスに追加したくないため、ほぼすべての検索エンジンがすべてのURLを同じように正規化することを合理的に確信できます。

したがって、ブラウザを使用してhttp://www.example.comも検索エンジンを使用しても、どちらを使用しても違いはありませんhttp://www.example.com/。それらは同等です。


5
http://www.example.comそして、http://www.example.com/同等であってもよいが、http://www.example.com/ある標準的な、それはURIがに正規化されなければならないものですので、1。したがって、標準のメタタグで使用します。
スティーブンオステルミラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.