絞り込みURLが増え続ける原因と対策|クロールを無駄にしない

一覧ページに絞り込みを付けた。それ自体は使いやすくなった。ところが数か月後、検索エンジンが読み込んでいるURLの数が、実際のページ数の何十倍にもなっていました。増える仕組みと、止め方を整理します。
カメ先生クロールされているURLの数が、公開しているページ数と合わないそうだね。
カメ子はい。3,000ページのサイトなのに、10万を超えるURLが読み込まれています。
カメ先生それは絞り込みの組み合わせだね。放っておくと増え続けるよ。
カメ子……そんなに増えるものなんですか。設定した記憶はありません。
- 絞り込みは組み合わせの数だけURLを作るため、放置すると際限なく増える
- Googleはフィルタの指定にURLフラグメントを使う方法を挙げている
- canonicalとnofollowは効き方が弱い。止めるならrobots.txtとURL設計で対処する
AI×SEOに取り組む前に、社内のAI導入環境から整えませんか?
デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。
公開ページ数とクロール数が合わない
最初に、起きていることを確かめます。
サーチコンソールのクロールの統計情報を開くと、読み込まれたURLの一覧が確認できます。ここに、公開した覚えのないURLが並んでいることがあります。
多くの場合、一覧ページの絞り込みが作ったURLです。
色、サイズ、価格帯、並び順といった条件が、URLの末尾に付いた形です。
1つの一覧ページから、何千ものURLが生まれます。
この状態は、担当者が意図して作ったものではありません。
一覧に絞り込み機能を付けた結果として、自動的に生じます。
制作を外部に任せた場合、気づかないまま公開されていることもあります。
確認の方法は2つあります。
1つは、クロールの統計情報でURLの例を見ることです。
疑問符やアンパサンドを含むURLが多ければ、絞り込みが原因です。
もう1つは、サイトマップに載せた件数と、インデックスの状況を比べることです。
差が大きければ、想定外のURLが読み込まれています。
この2つを見れば、規模がわかります。
規模がわかると、対処の優先度も決まります。
以降では、増える仕組みから順に整理します。
あわせて、Googleが示している方法も確認します。
なぜ増え続けるのか
組み合わせの数の問題です。
絞り込みは、条件を掛け合わせた数だけURLを作ります。条件が5種類あり、それぞれに4つの選択肢があれば、組み合わせは1,000通りを超えます。
さらに並び順や表示件数が加わると、その倍数で増えます。
同じ内容のページが、別のURLとして何通りも存在する状態です。
しかも、条件を選ぶ順番でURLが変わる作りだと、さらに増えます。
色を選んでからサイズを選んだ場合と、逆の順番で選んだ場合で、別のURLになるためです。
内容は同じでも、URLの文字列が違えば別のページとして扱われます。
増え方は、ページ数に比例しません。
条件の数に対して、掛け算で増えていきます。
だからこそ、途中で急に問題が大きくなります。
条件を1つ追加したときに、URLが数倍になります。
ここに、期間や在庫の有無といった条件を足す改修が入ります。
良い改修のつもりが、クロールの負荷を増やします。
在庫や価格で内容が変わる作りだと、同じURLでも中身が変動します。
この変動も、読み込みの回数を増やす要因になります。
増える仕組みは、機能を消さない限り止まりません。
そのため、URLの側で扱いを決めます。
何が問題になるのか
影響は3つに分かれます。
1つ目は、読み込みの分散です。意味のないURLに読み込みが向かうと、本来見てほしいページの確認が遅れます。
新しく出した商品や記事の反映が遅くなる形で表れます。
小規模なサイトでは、影響が出ないこともあります。
ページ数が数万を超える規模では、無視できません。
2つ目は、似た内容のページが並ぶことです。
条件だけが違うページは、本文がほとんど同じになります。
どれを検索結果に出すかの判断が、検索側に委ねられます。
意図しないURLが検索結果に出ることもあります。
絞り込んだ状態のページが表示され、訪問者が混乱します。
3つ目は、サーバーの負荷です。
大量の読み込みが続くと、表示速度に影響が出る場合があります。
組み合わせのページを生成する処理は、負荷が高くなりがちです。
この3つのうち、どれが問題になるかは規模で変わります。
自社の状況を見て、対処の強さを決めます。
何も起きていなければ、急いで手を入れる必要はありません。
現状を数えるところから始める
手を入れる前の確認です。
対策の前に、いま何が読み込まれているかを数えます。思い込みで対処すると、必要なページを止めてしまいます。
見るのは、クロールの統計情報とインデックスの状況の2つです。
クロールの統計情報では、読み込まれたURLの種類の割合が確認できます。
画像やCSSを除いたHTMLの内訳を見ます。
インデックスの状況では、除外された理由の内訳が確認できます。
重複や、別のURLが正規として選ばれた件数が並びます。
この件数が多ければ、絞り込みが原因の可能性が高くなります。
あわせて、サーバーの記録も確認します。
どのURLに読み込みが集中しているかが、直接わかります。
記録を扱える体制があれば、この方法が最も確実です。
数えた結果を、簡単な表にまとめます。
書く項目は、URLの型、件数、検索から流入があるかの3つです。
流入がある型は、止めない判断になります。
流入がない型が、整理の対象です。
この区別を、対策の前に済ませます。
対策の手段と効き方
選べる方法を並べます。
| 方法 | 何が起きるか | 効き方 |
|---|---|---|
| URLフラグメント(#)で持たせる | クロールの対象にならない | 強い(新規設計に向く) |
| robots.txtで読み込みを止める | 指定した型を読み込まなくなる | 強い(既存の整理に向く) |
| rel=canonicalで正規版を示す | 非正規版の読み込みが徐々に減る | 弱め(時間がかかる) |
| rel=nofollowを付ける | そのリンクをたどりにくくなる | 限定的(全リンクに必要) |
| noindexを付ける | インデックスされなくなる | 読み込みは発生する |
Googleの資料では、フラグメントの使用とrobots.txtによる制御が挙げられています。canonicalとnofollowについては、長期的には効果が低い傾向があるとされています。
読み込みを減らしたいのか、検索結果から消したいのかで手段が変わります。
この2つは、混同されやすい目的です。
noindexはインデックスを防ぐ指定です。
指定を読み取るために読み込みは発生するため、読み込みの削減にはなりません。
逆に、robots.txtで止めたURLは中身を読み取れません。
すでにインデックスされているURLを消す目的には向きません。
この違いを踏まえて、手段を選びます。
目的が「読み込みを減らす」ならrobots.txtです。
目的が「検索結果から消す」ならnoindexです。
両方が必要な場合は、順番に進めます。
先にnoindexで消し、反映後にrobots.txtで止めます。
同時に指定すると、noindexが読み取られません。
フラグメントで持たせる方法
新しく作る場合の選択です。
Googleの資料では、フィルタの指定にURLフラグメントを使う方法が挙げられています。フラグメントは通常クロールやインデックスの対象にならないためです。
疑問符ではなく、番号記号の後ろに条件を持たせる作りです。
この形にすると、条件を変えても読み込みの対象が増えません。
複雑な制御を用意せずに済みます。
ただし、絞り込んだ状態を検索結果に出したい場合には使えません。
フラグメントの先は、検索側から見えない前提です。
見せたい絞り込みがある場合は、別の作りにします。
実装には、画面側の対応が必要になります。
条件の変更で表示を切り替える仕組みを用意します。
既存のサイトを途中から変える場合は、改修の規模が大きくなります。
すでに大量のURLがある状態では、robots.txtでの整理が先になります。
この方法は、これから作る一覧に向いています。
設計の段階で決めておけば、後の整理が不要になります。
制作を外部に任せる場合も、この方針を伝えます。
伝えなければ、疑問符の付いた作りで納品されます。
robots.txtで止める
既存の整理の主役です。
すでに増えてしまったURLは、robots.txtで読み込みを止めます。Googleの資料では、フィルタのパラメータを含むパターンを指定する例が示されています。
止める前に、そのURLに検索からの流入がないかを必ず確認します。
流入があるURLを止めると、その分の流入が失われます。
サーチコンソールの検索結果のレポートで、URLごとの数字が見られます。
指定は、広く書きすぎないように注意します。
パターンが広いと、必要なページも止まります。
公開前に、テストの機能で意図した動きになるかを確かめます。
止めるパターンは、少しずつ広げます。
最初に、明らかに不要な並び順や表示件数の条件から止めます。
次に、流入のない絞り込みの条件を止めます。
反映には時間がかかります。
読み込みの回数が減るまで、数週間かかる場合があります。
反映の状況は、クロールの統計情報で確認します。
止めたパターンの読み込みが減っていれば、効いています。
減らない場合は、パターンの書き方を見直します。
canonicalの位置づけ
併用する指定です。
絞り込んだURLに、絞り込みなしのURLを正規として示す指定を入れる方法があります。Googleの資料では、時間の経過とともに非正規のURLの読み込みが減る可能性があるとされています。
ただし、robots.txtやフラグメントより効果は弱いとされています。
読み込み自体は続きます。
減り方も、すぐには表れません。
それでも、入れておく価値はあります。
似た内容のページのうち、どれを代表とするかを伝えられます。
意図しないURLが検索結果に出る事故を減らせます。
注意点は、指定の中身です。
絞り込みなしのURLを、正しく指しているかを確認します。
自分自身を指す指定が入っていると、意味がありません。
robots.txtで止めたURLでは、この指定は読み取られません。
両方を同時に使う場合は、役割が重ならないようにします。
読み込みを止めたい型はrobots.txtです。
インデックスの整理をしたい型はcanonicalです。
この整理を、URLの型ごとに決めます。
nofollowの限界
期待しすぎない指定です。
絞り込みのリンクにnofollowを付ける方法もあります。ただし、Googleの資料では、効果を得るにはそのURLを指すすべてのアンカーに付ける必要があるとされています。
1か所でも付け忘れたリンクがあれば、そこからたどられます。
サイト内のすべての一覧を漏れなく直すのは、現実には難しくなります。
回遊のためのリンクやサイトマップからも、たどられる可能性があります。
外部から絞り込みのURLにリンクされた場合も、防げません。
そのため、単独の対策としては弱くなります。
補助として使う位置づけです。
たとえば、絞り込みの選択肢が多い一覧で使います。
リンクの数を抑える意味では、一定の効果があります。
ただし、これだけで増加は止まりません。
実装の手間と効果を比べて判断します。
大規模なサイトでは、手間の割に効果が見えにくくなります。
小規模なサイトでは、そもそも問題が起きていない場合もあります。
この指定に時間をかけるより、URLの設計を直すほうが確実です。
優先度は低めに置きます。
見せたい絞り込みページの条件
すべてを消すわけではありません。
検索されている絞り込みは、残す判断になります。需要のある条件は、独立したページとして扱う価値があります。
判断の基準は、その条件で検索されているかどうかです。
たとえば、地域や用途で探される商材があります。
その条件は、絞り込みではなくページとして作ります。
残すページには、そのページ固有の説明を入れます。
一覧の内容だけでは、他のページと区別がつきません。
条件に応じた説明文や、選び方の補足を加えます。
残すページは数を絞ります。
検索の需要が確認できたものだけにします。
需要の確認は、検索の回数を調べる道具や、既存の流入から行います。
残すページは、サイトマップにも載せます。
載せることで、意図が明確になります。
残さないページは、サイトマップに載せません。
この整理で、見せたいページとそうでないページが分かれます。
分かれていれば、後から判断が揺れません。
URLの書き方を揃える
残す場合の実務です。
インデックスさせたいURLは、書き方を統一します。Googleの資料では、キーと値を等号で結び、複数のパラメータをアンパサンドでつなぐ形が推奨されています。
コロンや角括弧、カンマで区切る形は推奨されていません。
独自の区切りを使うと、正しく解釈されない場合があります。
既存のサイトで独自の形になっていれば、改修の候補です。
パスで条件を表す形にする場合は、順序を固定します。
条件を選ぶ順番でURLが変わる状態を避けます。
順序を決めておけば、同じ内容に同じURLが対応します。
値の書き方も揃えます。
大文字と小文字、全角と半角が混ざると、別のURLになります。
入力を正規化する処理を入れます。
使っていない条件は、URLに残しません。
空の条件が付いたURLも、別のURLとして数えられます。
この統一は、後から直すと影響が広がります。
設計の段階で決めるのが最も安全です。
すでに動いている場合は、転送の設定と併せて計画します。
結果が0件のページの扱い
見落とされやすい部分です。
条件を組み合わせると、該当する商品が1つもない状態が生まれます。Googleの資料では、そうした組み合わせに404のステータスを返す方法が挙げられています。
0件のページを正常な応答で返し続けると、中身のないページが増えます。
訪問者にとっても、行き止まりになります。
この扱いを決めていないサイトが多くあります。
実装では、0件と判定した時点で応答を分けます。
あわせて、画面には別の選択肢を案内します。
条件を外す提案や、近い条件の一覧への案内です。
在庫がなくなった場合の扱いも決めます。
一時的に0件になる条件は、404にしない判断もあります。
すぐに戻る見込みがあれば、案内だけで足ります。
恒久的に該当がなくなった条件は、応答を変えます。
この判断の基準を、あらかじめ決めておきます。
判断がなければ、実装者が都度決めることになります。
結果として、扱いが揃いません。
基準は、簡単な文書で共有します。
一覧からのリンクの出し方
入口の設計です。
絞り込みの選択肢を、すべてリンクとして表示する必要はありません。選択肢の数がそのまま読み込みの対象になります。
よく使われる条件だけをリンクにし、残りは選択の操作で切り替えます。
使われていない条件を並べても、訪問者の役に立ちません。
どの条件が使われているかは、サイト内の記録から確認できます。
条件を組み合わせたリンクは、特に慎重に扱います。
2つ以上の条件を組み合わせたリンクを大量に置くと、増加が加速します。
組み合わせのリンクは、需要が確認できたものに限ります。
一覧の下部に置く関連の条件も、数を絞ります。
回遊のために置いたリンクが、増加の原因になることがあります。
この見直しは、画面の改修と一緒に行います。
表示の数を減らすと、訪問者にとっても選びやすくなります。
使われていない条件を隠す判断は、両方にとって利点があります。
減らした後は、数字を確認します。
使われる条件が減っていないかを見ます。
減っていれば、戻す判断もあります。
サイトマップとの整合
意図を伝える手段です。
サイトマップには、インデックスさせたいURLだけを載せます。絞り込みのURLを大量に載せると、意図が伝わりません。
載せる件数と、実際のインデックスの件数を定期的に比べます。
差が大きい場合、想定と違うURLが読み込まれています。
この比較を、月に1回程度行います。
robots.txtで止めたURLは、サイトマップからも外します。
止めたURLを載せたままでは、指示が矛盾します。
生成の仕組みを確認し、除外の条件を入れます。
サイトマップを自動で生成している場合は、注意が必要です。
サイト内のリンクをたどって作る仕組みだと、絞り込みも含まれます。
生成の条件を確認します。
残した絞り込みページは、載せます。
載せることで、読み込みの対象として伝わります。
更新の日付も正しく入れます。
この整合が取れていれば、状況の把握が楽になります。
取れていなければ、数字の意味が読めません。
進める5工程
順番に進めます。
クロールの統計情報とインデックスの状況を確認します。サーバーの記録が使えれば、URLの型ごとの件数を出します。
検索結果のレポートで、型ごとに流入があるかを見ます。流入がある型は残す判断になります。
検索されている条件だけを独立したページとして残します。固有の説明文を加え、サイトマップに載せます。
robots.txtで型を指定します。広く書きすぎないよう、テストの機能で確認してから公開します。
数週間かけて読み込みの回数の変化を見ます。減っていれば、次の型に進みます。
- noindexとrobots.txtを同時に指定すると、noindexが読み取られない
- 止める前に、そのURLに検索からの流入がないかを必ず確認する
- 残すページには、そのページ固有の説明を入れる(一覧だけでは区別がつかない)
- 0件になる条件の応答をどう返すか、あらかじめ基準を決める
- サイトマップに載せるURLと、robots.txtで止めるURLを矛盾させない
この5工程で、増加を止めながら必要なページを守れます。
2工程目を飛ばすと、流入のあるページを止める事故が起きます。
急いで止めるより、先に数えるほうが安全です。
3工程目は、SEOの判断が入る工程です。
4工程目は、実装の担当と一緒に進めます。
5工程目は、時間がかかることを前提にします。
すぐに数字が動かなくても、手順が正しければ変化は表れます。
やりがちな失敗
実際に起きている例です。
- 流入を確認せずにrobots.txtで止め、検索からの訪問が減る
- noindexとrobots.txtを同時に指定し、noindexが読み取られない状態にする
- nofollowだけで対処しようとして、付け忘れたリンクからたどられる
- 絞り込みの選択肢をすべてリンクにし、組み合わせのURLを大量に作る
- サイトマップを自動生成のままにして、絞り込みのURLを大量に載せる
1行目は最も影響が大きい失敗です。止める前に必ず数字を見ます。
2行目は、指示が届かない状態になります。順番に進めます。
3行目は、すべてのリンクに付けなければ効かない指定です。
4行目は、画面の設計で防げます。表示する条件を絞ります。
5行目は、生成の条件を確認すれば防げます。
どれも、対処の前に現状を数えていれば避けられます。
まとめ
絞り込みのURLは、条件の組み合わせの数だけ増えます。条件を1つ追加すると数倍になるため、あるとき急に問題が大きくなります。公開ページ数とクロールされているURLの数が合わない場合は、まずクロールの統計情報とインデックスの状況を確認します。
対処の手段は複数ありますが、効き方が違います。Googleの資料では、フィルタの指定にURLフラグメントを使う方法と、robots.txtで読み込みを止める方法が挙げられています。canonicalとnofollowは長期的には効果が低い傾向があるとされ、noindexは読み込み自体を減らしません。
進め方は、読み込まれているURLを数え、型ごとに流入を確認し、残す絞り込みを決めてから止める順番です。流入の確認を飛ばすと、必要なページを止める事故が起きます。残すページには固有の説明を入れ、サイトマップとrobots.txtの指示を矛盾させないように整えます。
※本記事にはAIが活用されています。編集者が確認・編集し、可能な限り正確で最新の情報を提供するよう努めておりますが、情報の完全性、正確性、最新性、有用性等について保証するものではありません。本記事の内容に基づいて行動を取る場合は、読者ご自身の責任で行っていただくようお願いいたします。
AI×SEOに取り組む前に、社内のAI導入環境から整えませんか?
デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。
