URL 構造をシンプルにする
サイトの URL 構造はできる限りシンプルにします。論理的かつ人間が理解できる方法で URL を構成できるよう、コンテンツを分類します。
可能であれば、長い ID 番号ではなく意味のある語句を URL に使用します。
推奨される: シンプルでわかりやすい語句を URL に使用する。
https://en.wikipedia.org/wiki/Aviation
推奨される: ローカライズした語句を URL に使用する(該当する場合)。
https://www.example.com/lebensmittel/pfefferminz
推奨される: 必要に応じて UTF-8 エンコードを使用する。たとえば、次の例では、URL 内のアラビア文字に UTF-8 エンコードを使用しています。
https://www.example.com/%D9%86%D8%B9%D9%86%D8%A7%D8%B9/%D8%A8%D9%82%D8%A7%D9%84%D8%A9
次の例では、URL 内の中国語文字に UTF-8 エンコードを使用しています。
https://example.com/%E6%9D%82%E8%B4%A7/%E8%96%84%E8%8D%B7
次の例では、URL 内のウムラウトに UTF-8 エンコードを使用しています。
https://www.example.com/gem%C3%BCse
次の例では、URL 内の絵文字に UTF-8 エンコードを使用しています。
https://example.com/%F0%9F%A6%99%E2%9C%A8
推奨されない: 非 ASCII 文字を URL に使用する。
https://www.example.com/نعناع
https://www.example.com/杂货/薄荷
https://www.example.com/gemüse
https://www.example.com/🦙✨
推奨されない: 意味のない長い ID 番号を URL に使用する。
https://www.example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1
多くの地域を対象とするサイトでは、サイトの地域ターゲティングが簡単になるような URL 構造の使用を検討してください。URL 構造を作成する方法の多数の例については、地域ごとの URL を使用するをご覧ください。
推奨される: 国別のドメインを使用する。
https://example.de
推奨される: gTLD とともに国別のサブディレクトリを使用する。
https://example.com/de/
URL では、ハイフンを使用して単語を区切ることを検討してください。そのようにすると、ユーザーと検索エンジンにとって URL のコンセプトが理解しやすくなります。URL では、アンダースコア(_
)ではなくハイフン(-
)を使用することをおすすめします。
推奨される: ハイフン(-
)を使用する。
https://www.example.com/summer-clothing/filter?color-profile=dark-grey
推奨されない: アンダースコア(_
)を使用する。
https://www.example.com/summer_clothing/filter?color_profile=dark_grey
推奨されない: URL 内の単語をつなげる。
https://www.example.com/greendress
過度に複雑な URL(特に、複数のパラメータを含む URL など)は、サイト上の同じまたは同様のコンテンツを表す多数の URL が不必要に作成される原因となることがあります。その結果、クロールの際に問題が発生し、Googlebot が必要以上に帯域幅を消費したり、サイトのすべてのコンテンツがインデックスに登録されない状態を招いたりする可能性があります。
この問題の主な原因
URL が不必要に多い場合、次のような原因が考えられます。
- アイテムセットの加算的なフィルタリング。同じアイテムセットや検索結果をさまざまなビューで表示できる多くのサイトでは、定義済みの条件(たとえば「ビーチに面したホテルのリストを表示する」)を使用してアイテムセットをフィルタリングできるようにしています。複数のフィルタを足し算のように合わせることが可能な場合(たとえば「フィットネス センターがあり、ビーチに面したホテルのリストを表示する」など)、サイトの URL(データビュー)の数は急増します。Googlebot がすべてのホテルのページにアクセスするにはホテルリストが少しあれば十分ですから、内容に大差ないホテルのリストをたくさん作っても無駄になるだけです。たとえば、次のような場合です。
- 「割り引き価格」のホテル:
https://www.example.com/hotel-search-results.jsp?Ne=292&N=461
- 「割り引き価格」で「ビーチに面した」ホテル:
https://www.example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240
- 「割り引き価格」で「フィットネス センターがある」、「ビーチに面した」ホテル:
https://www.example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240+4294967270
- 「割り引き価格」のホテル:
- ドキュメントの動的な生成。カウンター、タイムスタンプ、広告などによって小さな変更が生じます。
- 問題を起こしやすい URL パラメータ。たとえば、セッション ID は膨大な数の重複と URL を生成する可能性があります。
-
並べ替えパラメータ。大規模なショッピング サイトなど、同じアイテムを複数の方法で並べ替えできるようにしているサイトでは、URL が多数生成されます。たとえば、次のような URL です。
https://www.example.com/results?search_type=search_videos&search_query=tpb&search_sort=relevance&search_category=25
- URL に含まれる不必要なパラメータ(参照パラメータなど)。たとえば、次のような URL です。
https://www.example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&clickPage=OPD+Product+Page&cat=79
https://www.example.com/discuss/showthread.php?referrerid=249406&threadid=535913
https://www.example.com/products/products.asp?N=200063&Ne=500955&ref=foo%2Cbar&Cn=Accessories.
- カレンダーの問題。動的に生成されるカレンダーでは、開始日や終了日の制限がない場合、将来または過去の日付のリンクが生成されることがあります。たとえば、次のようなリンクです。
https://www.example.com/calendar.php?d=13&m=8&y=2011
- 破損した相対リンク。相対リンクが壊れていると、無限のスペースが生じることがあります。多くの場合、パスの要素の繰り返しによって生じます。たとえば、次のようなリンクです。
https://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
属性を追加します。 - サイトに壊れた相対リンクがないかどうか確認します。