Google 検索における URL 構造のベスト プラクティス
Google 検索によりサイトが効率的にクロールされるように、以下の要件を満たすクロール可能な URL 構造を使用してください。URL が以下の基準を満たしていない場合、Google 検索によるサイトのクロール効率が低下する可能性があります(クロール頻度が極端に高くなったり、まったくクロールされなかったりなど)。
クロール可能な URL 構造の要件 | |||||||
---|---|---|---|---|---|---|---|
IETF STD 66 に準拠する |
Google 検索は、IETF STD 66 で定義された URL をサポートしています。この規定で予約文字として定義されている文字には、パーセント エンコーディングを行う必要があります。 |
||||||
コンテンツを変更する際に URL フラグメントを使用しない |
Google 検索は通常、URL フラグメントをサポートしていないため、ページのコンテンツを変更する際にフラグメントを使用しないでください。以下に、URL フラグメントの例を示します。 https://example.com/#/potatoes JavaScript でコンテンツを変更する場合は、代わりに History API を使用してください。 |
||||||
URL パラメータには一般的なエンコードを使用する |
URL パラメータを指定するときは、次のような一般的なエンコードを使用します。Key-Value ペアを区切るには等号(
|
URL 構造をわかりやすくする
Google 検索(およびユーザー)がサイトをより正しく理解できるように、可能な限りシンプルな URL 構造を作成して、以下のベスト プラクティスを適用することをおすすめします。
ベスト プラクティス | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
わかりやすい URL を使用する |
可能であれば、長い ID 番号ではなく意味のある単語を URL に使用します。
|
||||||||||
オーディエンスの言語を使用する |
オーディエンスの言語にある単語(必要に応じて文字変換を取り入れながら)を URL に使用します。たとえば、オーディエンスがドイツ語で検索している場合は、URL にドイツ語の単語を使用してください。 https://example.com/lebensmittel/pfefferminz あるいは、オーディエンスが日本語で検索している場合は、URL に日本語の単語を使用してください。 https://example.com/ペパーミント |
||||||||||
必要に応じてパーセント エンコードを行う |
サイト上のページにリンクする場合は、必要に応じてリンクの
|
||||||||||
単語を区切るのにハイフンを使用する |
可能な限り、URL 内の単語は区切ることをおすすめします。具体的には、URL 内の単語を区切るにはアンダースコア(
|
||||||||||
パラメータの使用はできるだけ少なくする |
可能な限り、不要なパラメータ(コンテンツに影響を与えないパラメータ)を削除して URL を短くします。 | ||||||||||
URL は大文字と小文字が区別されることに注意する |
IETF STD 66 に準拠する他の HTTP クライアントと同様に、Google 検索の URL 処理は大文字と小文字を区別します(たとえば、Google は /APPLE と /apple をそれぞれ独自のコンテンツを持つ別々の URL として扱います)。ウェブサーバーで URL の大文字と小文字が同じように扱われる場合、すべてをどちらかに変換すると、URL が同じページを参照していることを Google が判別しやすくなります。 |
||||||||||
複数の地域を対象とするサイトの場合 |
複数の地域を対象とするサイトでは、サイトの地域ターゲティングが簡単になるような URL 構造の使用を検討してください。URL 構造に関する他の例については、地域ごとの URL を使用するをご覧ください。 推奨(国別のドメインを使用する): https://example.de 推奨(gTLD とともに国別のサブディレクトリを使用する): https://example.com/de/ |
URL に関する一般的な問題を回避する
過度に複雑な URL(特に、複数のパラメータを含む URL など)は、サイト上の同一または類似のコンテンツを表す多数の URL が不必要に作成される原因となることがあります。その結果、クロールの際に問題が発生し、Googlebot が必要以上に帯域幅を消費したり、Google 検索がサイトのコンテンツをインデックスに登録しきれない状態を招いたりする可能性があります。
URL が不必要に多い場合、次のような原因が考えられます。
一般的な問題 | |
---|---|
アイテムセットに対する複合条件でのフィルタリング |
同じアイテムセットや検索結果をさまざまなビューで表示できる多くのサイトでは、定義済みの条件(たとえば「ビーチに面したホテルのリストを表示する」)を使用してアイテムセットをフィルタリングできるようにしています。複数のフィルタを加算的に組み合わせることが可能な場合(たとえば「ビーチに面しており、なおかつフィットネス センターのあるホテルのリストを表示する」)、サイトの URL(データビュー)の数は急増します。Googlebot が各ホテルのページにアクセスするには少数のリストがあれば十分で、内容に大差ないホテルのリストを大量に作成しても無駄になるだけです。次に例を示します。
|
不必要なパラメータ |
URL に不必要なパラメータがあると、次のような URL が大量に生成される可能性があります。
robots.txt file を使用して、問題のある URL への Googlebot のアクセスをブロックできます。 |
カレンダーの問題 |
動的に生成されるカレンダーは、開始日や終了日の制限を設けずに、未来や過去の日付のリンクを生成することがあります。次に例を示します。 https://example.com/calendar.php?d=13&m=8&y=2011 サイトに無限のカレンダーがある場合、動的に作成される未来のカレンダー ページへのリンクに |
破損した相対リンク |
親ディレクトリへの相対リンクを間違ったページに配置すると、存在しないページに対してサーバーが適切な HTTP ステータス コードを返さない場合、無限のスペースが作成される可能性があります。たとえば、https://example.com/category/community/070413/html/FAQ.htm に <a href="../../category/stuff">...</a> のような親ディレクトリへの相対リンクが配置されると、https://example.com/category/community/category/stuff などの偽造 URL が生成される可能性があります。修正するには、リンクに(親ディレクトリへの相対ではなく)ルート相対 URL を使用してください。 |
クロール関連の URL 構造の問題を修正する
Google 検索がこのような問題のある URL をクロールしていることに気づいた場合、以下の対応をおすすめします。
- robots.txt file を使用して、問題のある URL への Googlebot のアクセスをブロックできます。一般的には、検索結果を生成する URL などの動的 URL や、カレンダーなど無限のスペースを生成する可能性のある URL、並べ替え機能やフィルタ機能へのアクセスをブロックします。
- サイトにファセット ナビゲーションがある場合は、ファセット ナビゲーション URL のクロールを管理する方法をご覧ください。