メインコンテンツへスキップ
← すべてのガイド

検索エンジンの仕組み

公開したページと検索結果の間には3つの段階があります。SEOの問題はたいていそのうち1つに属し、正しい段階を見極めれば見当違いの修正を避けられます。

4つの段階と、区別が効く理由

検索エンジンはページに対して 4 つの別々の処理を行い、ある段階は成功しても次の段階で止まることがあります。まず URL を発見し、次にクロールして取得します。その後、インデックスに保存するかを判断し、検索クエリごとに表示するかをランキングで決めます。Google の AI 機能も検索の一部であり、関連クエリへ検索が広がる場合でも、クロール・インデックス登録・掲載資格という同じ基盤に依存します。

「なぜページが出てこないのか」で始まる問いは、ほぼ例外なく「どの段階で止まったのか」という問いです。答えが変われば次の一手はまるごと変わります。しかも各段階の失敗は外からは見分けがつきません。表示されないページは、そもそも発見されなかった場合も、取得を拒まれた場合も、保存に値しないと判断された場合も、保存されたうえで単に上位に届かなかった場合も、結果画面では同じに見えます。

段階何が起きるかどう失敗するか
発見リンクやサイトマップ経由でURLが知られるどこからもリンクされず、サイトマップにも載っていない
クロールURLが取得され、ブラウザ同様にレンダリングされるrobots.txtが許可せず、あるいはサーバーがエラーを返す
インデックス保存するかどうかを検索エンジンが判断する重複・内容が薄い・保存に値しないと判断される
ランキング保存済みページを意図に照らして評価する保存はされているが、より良い答えが存在する

発見:URLはどうやって知られるか

Googleは、毎日見つかる新規ページの圧倒的多数がリンク経由だとしています。すでにあなたのページを取得しているクローラーが、そのマークアップからURLを抜き出してキューに入れる。つまり内部リンクは、どのサイトにとっても発見の主たる仕組みであって、後から足す最適化ではありません。

サイトマップは二番目の経路です。効くのはリンクが最も弱い場面、すなわち非常に大規模なサイト、被リンクの少ない開設直後のサイト、自然なアンカーテキストを持たないメディア中心のサイトです。Googleは、URLを載せてもクロールもインデックス登録も保証しないと明言しています。検討のために差し出す提案であって、順に処理される待ち行列ではありません。

実務上の帰結はこうです。どこからもリンクされていないページは、二つのうち弱いほうの仕組みに頼ることになる。サイトマップの一行は文脈を運びません。URLが存在するとは言いますが、そのページが何のためにあるのか、他と何の関係があるのかは何も語らない。リンクは配置とアンカーテキストで、その両方を運びます。

クロール:許可・処理能力・需要

クロールは、Googleが別々に名前を与えている二つの要素に制約されます。クロール能力の上限は、サーバーに負荷をかけずに張る同時接続数で、応答時間やエラー率に応じて調整されます。クロールの需要は実際にどれだけ取得したいかで、サイト規模・更新頻度・品質評価によって決まります。

Google自身の指針は、大半のサイトはこれを気にする必要がないというものです。クロールバジェットが本当に論点になるのは、週次更新でおよそ100万ページを超える規模、日次更新で1万ページを超える規模、あるいはURLの大きな割合が「検出 – インデックス未登録」で滞留しているサイトです。それ未満なら、クロールの遅さはほぼ常に別の何かの症状です。

該当する場面でも、打ち手は地味です。重複を統合する、恒久的に削除したページには軟性404ではなく本物の404か410を返す、リダイレクトの連鎖を短くする、サーバーの応答時間を改善する、条件付きリクエストに対応して未変更のページを安く返す。この一覧に何が欠けているかに注目してください。noindexはクロールバジェットの道具ではありません。クローラーはその指示を読むために、まずページを取得しなければならないからです。

レンダリング:忘れられがちな段階

取得とインデックスの間にレンダリングがあります。検索エンジンはブラウザとほぼ同じようにページを実行し、レンダリング結果に含まれるものをインデックスします。JavaScriptの実行後にはじめて現れるコンテンツもインデックスされうる——ただしそれは、その実行が成功し、必要なリソースがクロール可能である場合に限られます。

robots.txtの一行が、書いた場所からはるか離れたところで害を及ぼすのがここです。スクリプトやAPIのパスを塞ぐと、ページが中身を組み立てるのに使うまさにそのファイルをクローラーが取得できなくなる。HTMLは問題なく取得され、ほぼ空でレンダリングされ、ほぼ空のままインデックスされます。どのステータスも「ブロック」とは言いません。ページ自体は一度もブロックされていないのです。

インデックスは判断であって順番待ちではない

この流れ全体で最もよくある誤読は、インデックスを行列として捉えることです。クロールされ、順番を待ち、登録される——そうは動きません。レンダリングのあと、検索エンジンはそのページが保存に値するかを判断し、その答えは「いいえ」でありえます。

Search Consoleの「クロール済み – インデックス未登録」が意味しているのは、まさにこれです。壊れてもいないし、何かが塞いでもいない。取得は成功しています。ページは評価され、脇に置かれた。テンプレートから生成され、差し替わった名前や数字だけが違うほぼ同一のページが典型的な理由で、再送信しても何も変わりません。判断の材料が変わっていないからです。

ランキングと Google の AI 機能は同じ基盤を共有しています

特定のクエリに対して、Google 検索は関連情報を取得して順位付けします。AI Overviews と AI Mode では query fan-out を使い、回答と補助リンクを生成する前に、サブトピックやデータソースにまたがる複数の関連検索を実行することがあります。

要点はシンプルです。Google の AI 検索機能に表示されるためにも、通常の Google 検索の基盤が必要です。Google は追加の技術要件や特別な AI マークアップは不要だと説明しています。クロールを許可し、重要な内容をインデックス可能なテキストとして提供し、nosnippet などのプレビュー制御を意図に合わせて使います。

自分のサイトで試す

よくある質問

robots.txtでブロックすればGoogleから消えますか。

いいえ。robots.txtが止めるのは取得であってインデックス登録ではありません。他サイトからリンクされているブロック済みURLは、説明文なしでインデックスされ表示されることがあります。除外するはずのnoindexを、クローラーが読むことを許されなかったからです。結果から外したいなら、クロールを許可したうえでnoindexを返すか、認証を必須にしてください。

インデックス登録にはどれくらいかかりますか。

保証された期間はありません。新しいページが数時間で登録されることも、何週間も放置されることもあり、Googleはクロールされることが登録の約束ではないと明言しています。同じサイトの同種のページが速く入ったのに、あるページだけ何週間も未登録なら、それは遅延ではなくページに対する判断と受け取ってください。

クロールバジェットを気にすべきですか。

ほぼ確実に不要です。Googleの目安は週次更新でおよそ100万ページ、日次更新で1万ページ規模。それ未満なら、表示が遅いページはクロール能力を待っているのではなく、インデックスの段階で落ちているのが普通です。

JavaScriptで生成した内容はインデックスされますか。

されます。検索エンジンはインデックス前にページをレンダリングするからです。危ういのはJavaScript自体ではなく、その依存関係です。ページが必要とするスクリプトやエンドポイントをrobots.txtが塞いでいると、空でレンダリングされ空のまま登録され、しかもどのステータスもその原因を名指ししません。