サイトの URL 構造はできる限りシンプルにします。論理的かつ人間が理解できる方法で(可能な場合は ID ではなく意味のある単語を使用して)URL を構成できるよう、コンテンツを分類します。たとえば、航空機(aviation)に関する情報を探している場合、http://en.wikipedia.org/wiki/Aviation のような URL であれば、見ただけで必要な情報であるかどうかを判断できます。http://www.example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1 のような URL 自体は、ユーザーの関心を引くことはほとんどありません。
URL では区切り記号を使うと効果的です。http://www.example.com/green-dress.html という URL の方が、http://www.example.com/greendress.html という URL よりずっとわかりやすくなります。URL にはアンダースコア (_) ではなくハイフン (-) を使用することをおすすめします。
特に複数のパラメータを含む 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 が生成されます。たとえば次のような場合です:
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 属性を追加します。
- サイトに壊れた相対リンクがないかどうか確認します。