シンプルな URL 構造を維持する

サイトの URL 構造はできる限りシンプルにします。論理的かつ人間が理解できる方法で URL を構成できるよう、コンテンツを分類します。

可能な場合は、長い ID ではなく意味のある単語を URL に使用します。

推奨 - シンプルでわかりやすい URL:

http://en.wikipedia.org/wiki/Aviation

非推奨 - 複雑でわかりにくい URL:

http://www.example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1

URL では区切り記号を使うと効果的です。区切り記号により、ユーザーや検索エンジンが URL に含まれるコンセプトを簡単に識別できるようになります。

推奨 - URL 内のキーワードを区切り記号で区切る:

http://www.example.com/green-dress.html

非推奨 - URL 内のキーワードをつなげている:

http://www.example.com/greendress.html

URL にはアンダースコア _ ではなくハイフン - を使用することをおすすめします。

推奨 - ハイフン(-):

http://www.example.com/summer-clothing/filter?color-profile=dark-grey

非推奨 - アンダースコア(_):

http://www.example.com/summer_clothing/filter?color_profile=dark_grey

過度に複雑な URL(特に、複数のパラメータを含む URL など)は、サイト上の同じまたは同様のコンテンツを表す多数の URL が不必要に作成される原因となることがあります。その結果、クロールの際に問題が発生し、Googlebot が必要以上に帯域幅を消費したり、サイトのすべてのコンテンツがインデックスに登録されない状態を招いたりする可能性があります。

この問題の主な原因

URL が不必要に多い場合、次のような原因が考えられます。

  • アイテムセットの加算的なフィルタリング。同じアイテムセットや検索結果をさまざまなビューで表示できる多くのサイトでは、定義済みの条件(たとえば「ビーチに面したホテルのリストを表示する」)を使用してアイテムセットをフィルタリングできるようにしています。複数のフィルタを足し算のように合わせることが可能な場合(たとえば「フィットネス センターがあり、ビーチに面したホテルのリストを表示する」など)、サイトの URL(データビュー)の数は急増します。Googlebot がすべてのホテルのページにアクセスするにはホテルリストが少しあれば十分ですから、内容に大差ないホテルのリストをたくさん作っても無駄になるだけです。たとえば、次のような場合です。
    • 「割り引き価格」のホテル:
      http://www.example.com/hotel-search-results.jsp?Ne=292&N=461
    • 「割り引き価格」で「ビーチに面した」ホテル:
      http://www.example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240
    • 「割り引き価格」で「フィットネス センターがある」、「ビーチに面した」ホテル:
      http://www.example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240+4294967270
  • ドキュメントの動的な生成。カウンター、タイムスタンプ、広告などによって小さな変更が生じます。
  • 問題を起こしやすい URL パラメータ。たとえば、セッション ID は膨大な数の重複と URL を生成する可能性があります。
  • 並べ替えパラメータ。大規模なショッピング サイトなど、同じアイテムを複数の方法で並べ替えできるようにしているサイトでは、URL が多数生成されます。たとえば次のような URL です。
    http://www.example.com/results?search_type=search_videos&search_query=tpb&search_sort=relevance&search_category=25
  • 参照パラメータなど、URL に含まれる不必要なパラメータ。たとえば、次のようなリンクです。
    http://www.example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&clickPage=OPD+Product+Page&cat=79
    http://www.example.com/discuss/showthread.php?referrerid=249406&threadid=535913
    http://www.example.com/products/products.asp?N=200063&Ne=500955&ref=foo%2Cbar&Cn=Accessories.
  • カレンダーの問題。動的に生成されるカレンダーでは、開始日や終了日の制限がない場合、将来または過去の日付のリンクが生成されることがあります。たとえば、次のようなリンクです。
    http://www.example.com/calendar.php?d=13&m=8&y=2011
    http://www.example.com/calendar/cgi?2008&month=jan
  • 破損した相対リンク。相対リンクが壊れていると、無限のスペースが生じることがあります。多くの場合、パスの要素の繰り返しによって生じます。たとえば、次のようなリンクです。
    http://www.example.com/index.shtml/discuss/category/school/061121/html/interview/category/health/070223/html/category/business/070302/html/category/community/070413/html/FAQ.htm

この問題の解決方法

URL 構造による問題を回避する方法は次のとおりです。

  • robots.txt ファイルを使用して、問題のある URL への Googlebot のアクセスをブロックすることを検討します。一般的には、検索結果を生成する URL などの動的 URL や、カレンダーなど無限のスペースを生成する可能性のある URL へのアクセスをブロックします。robots.txt ファイルで正規表現を使用すると、多くの URL を簡単にブロックできます。
  • 可能な限り、URL でセッション ID を使うことは避け、代わりに Cookie を使用します。 詳しくは、ウェブマスター向けガイドライン(品質に関するガイドライン)をご覧ください。
  • 可能な限り、不必要なパラメータを削除して URL を短くします。
  • サイトに無限のカレンダーがある場合、動的に作成される将来のカレンダー ページへのリンクに nofollow 属性を追加します。
  • サイトに壊れた相対リンクがないかどうか確認します。