URL 末尾のスラッシュについて

2010 年 4 月 21 日(水曜日)

今回取り上げるのは、よく聞かれる質問です。従来、末尾にスラッシュが付いた URL はディレクトリを示し、末尾にスラッシュが付いていない URL はファイルを示していることが一般的でした。

https://example.com/foo/ (with trailing slash, conventionally a directory)
https://example.com/foo (without trailing slash, conventionally a file)

しかし、そのようにする必要はありません。Google はファイルまたはディレクトリのいずれであるか、末尾にスラッシュが付いているか否かを問わず、前述の各 URL を個別に(かつ同等に)扱います。

Google にとっては、スラッシュが付いた URL とスラッシュが付いていない URL に異なるコンテンツを含めることは問題ありませんが、ほとんどの場合、ユーザーにとっては理想的ではありません。

検索エンジンに関する技術的な観点からは、これら 2 つの URL バージョンに異なるコンテンツを含めることは可能です。しかし、ユーザーにとっては、この構成は著しく混乱をもたらすものです。www.google.com/webmasterswww.google.com/webmasters/ が 2 つの別々のエクスペリエンスを提供しているケースを想像してみてください。

このような理由から、末尾にスラッシュが付いている URL と付いていない URL で同じコンテンツを表示するのが一般的です。よくある例としては、次のようなディレクトリ構成になっているサイトが挙げられます。

https://example.com/parent-directory/child-directory/

サイトの構成とオプション

サイトで簡易チェックを行い、このパターンに一致する URL の一方がもう片方の URL にリダイレクトしているかどうかを確認できます。

  1. https://example.com/foo/
    (末尾にスラッシュあり)
  2. https://example.com/foo
    (末尾にスラッシュなし)
  • 1 つのバージョンのみが返される(つまり、もう 1 つのバージョンはそちらのバージョンにリダイレクトされる)場合は問題ありません。この動作は重複コンテンツを削減でき、有益です。末尾にスラッシュが付いている URL にリダイレクトされる場合、Google の検索結果には通常、リダイレクトが 301302 かにかかわらず、200 レスポンス コードを返すバージョンの URL(多くの場合は末尾にスラッシュが付いている URL)が表示されます。
  • スラッシュ付き、スラッシュなしの両方の URL で同じコンテンツが表示され、それぞれの URL が 200 を返す場合は、次のような対応ができます。
    • この動作を変更して(詳しくは以下をご覧ください)、重複コンテンツの削減とクロール効率の向上を図ります。
    • 現状を維持します。多くのサイトで重複コンテンツが存在しています。Google のインデックス登録プロセスでは通常、ウェブマスターとユーザーのためにこのようなケースにも対応しています。最適な動作ではありませんが、問題のあるものではまったくありません。
    • 特にルート URL では、https://example.comhttps://example.com/ と同等であり、Chuck Norris であってもリダイレクトできません。

1 つの URL のみを表示する手順

サイトでは、次の 2 つの URL で重複コンテンツが表示されているとします。

https://example.com/foo/
https://example.com/foo

つまり、両方の URL が 200 を返します(いずれもリダイレクトしない、または rel="canonical" リンクタグが設定されていない)。このような状況を変える場合には次のことを実行します。

  1. 優先 URL としてどちらかの URL を選択します。ディレクトリ構造があるサイトの場合は、ディレクトリ URL の末尾にスラッシュを使用する(例: example.com/directory ではなく example.com/directory/)のが一般的ですが、どちらの URL でも選択できます。
  2. 優先 URL に一貫性を持たせます。内部リンクでは優先 URL を使用します。サイトマップがある場合は、優先 URL を含めます(重複 URL は含めません)。
  3. 301 リダイレクトを使用して、重複 URL から優先 URL にリダイレクトします。これができない場合は、rel="canonical" リンクタグを使用することをおすすめします。rel="canonical" は Google のインデックス登録において 301 と同様に機能し、その他の主要な検索エンジンでも機能します。
  4. ウェブマスター ツールFetch as Googlebot を使用して 301 構成をテストします。https://example.com/foo/https://example.com/foo という URL が想定どおりに動作していることを確認します。優先 URL は 200 ステータス コードを返します。重複 URL は優先 URL に 301 リダイレクトされます。
  5. ウェブマスター ツールでクロールエラーを確認します。可能であれば、301 リダイレクトが実装されていることの簡単なチェックとしてウェブサーバーのログを確認します。
  6. メリットとして、サイトをさらに最適化できる知識を習得でき、効率的なサーバー構成が可能となります。