検索から人が来ない理由を、ページの内容だけで判断しない
日米の株式セクターと銘柄のランキングを出す Web アプリ Sector Pulse では、検索から人を呼ぶために、銘柄ごとの説明ページを81本、自動で作って公開していました。それでも、Google 検索からの訪問はありませんでした。
ここで判断したかったのは、ページの作りが足りないのか、それとも、その市場では新しいサイトに人が来ないのかという点です。ただし、どちらを考えるにも、その前に確認することがありました。Google が説明ページを取りに来ているかどうかです。
ページを公開したことと、検索エンジンがページを知っていることは、今回の確認では分けて扱いました。まだ取りに来ていないなら、検索から人が来ないという結果だけで、内容や市場への判断はできません。
そこで、2026年9月23日の点検では、まずアクセスログを集計しました。今回のサービスは、サーバーレスの関数がページとデータを返しています。その関数には、リクエストごとに User-Agent を含むログが残っていました。確認できる記録から、誰が何を取りに来たかを数えることにしました。
確認用アクセスを除くと、HTML へのアクセスはなかった
集計したのは、9月9日から9月23日までのリクエスト全238件です。User-Agent とアクセス先を見て、説明ページの HTML へのリクエストと、データの JSON へのリクエストを分けました。
さらに、9月15日から9月22日までの8日間は、確認作業に使う Mac が止まっていました。この期間は、自分たちの確認用アクセスが混ざり得ない対照として切り分けました。
結果は次のとおりです。
| 区分 | 件数 |
|---|---|
| 期間全体のリクエスト | 238件 |
| うち説明ページ(HTML・81本)へのリクエスト | 100件 |
| その100件の送り主 | すべて curl/8.7.1=自社の確認用 |
| ブラウザからの HTML へのリクエスト | 0件 |
| クローラからの HTML へのリクエスト | 0件 |
| 作業用の Mac が止まっていた8日間のリクエスト | 21件(すべてボット・すべてデータ(JSON)宛・HTML は0件) |
| データ(JSON)を取りに来たクローラ | ClaudeBot/1.0 87件、GPTBot/1.4 2件 |
| Googlebot | 0件 |
リクエストの総数だけを見ると、サイトにはアクセスがありました。しかし、説明ページへの100件はすべて自社の確認用でした。AI のクローラが取りに来ていたのも JSON であり、説明ページの HTML ではありません。集計期間内に Googlebot は記録されていませんでした。
9月23日時点では、このサイトを Search Console に登録していませんでした。また、新しい URL を検索エンジンに知らせる IndexNow に、Google は参加していません。IndexNow を用意することと、Google にページを見つけてもらうことも、分けて考える必要がありました。
この段階で「この市場では新規に人が来ない」と結論づけるのは早いと判断しました。先に Search Console への登録と sitemap の送信を行い、その後の数字を見ることにしました。
同時に、止める基準も決めました。「Search Console 登録から28日で、説明ページへの自社の確認用以外のリクエストが累計20未満なら凍結」です。結果を見てから判断基準を変えるのではなく、日数と件数を先に置きました。
登録後も、発見された経路まで確かめる
9月26日に Search Console に登録し、81本を載せた sitemap を送信しました。その後、10月13日の点検では、更新を知らせる処理に修正すべき点が見つかりました。
一つは sitemap の更新日を示す lastmod です。ページの更新は日本時間の07:30と16:30に行っていましたが、lastmod は UTC の日付だけで書いていました。そのため、毎朝81ページを作り直しても、前日の夕方と同じ値になっていました。これを 2026-10-13T11:23:14+09:00 のような時差つきの日時に変更し、各回の更新で値が前に進むようにしました。
もう一つは IndexNow の送信です。送信実績は9月5日と9月6日の2回だけで、37日間送られていませんでした。手動実行が前提で、定期実行がなかったためです。ページを作り直す処理の直後に送信するようにし、1日2回、81 URL の送信で HTTP 200 を確認しました。送信に失敗しても、データ更新は成功のままとする構成にしました。
一方、内部リンクは、生の HTML を3段たどると81本すべてに到達できました。Googlebot の User-Agent を指定した確認でも、81本すべてが200を返していました。ただし、この確認はページを取得できることの点検であり、実際に Googlebot が来たことを示すものではありません。
10月19日に Search Console で数え直すと、81本のうち、Google に知られていないページが65本、索引済みが15本、クロール済みで未索引が1本でした。sitemap は送信から23日間、一度も取得されていませんでした。知られている16本は、すべてリンクをたどって発見されていました。
検索での表示は、7月1日から10月18日までで45回、クリックは0でした。10月11日からは毎日2〜8回表示されていましたが、Google 検索からの訪問はまだありませんでした。ページが知られること、索引に入ること、表示されること、訪問につながることを、それぞれ別の数字で確認しました。
リンクを数えて修正し、効果の判定は次の測定に残す
知られている16本について発見元を確認すると、/?utm_source=seo&... のようなクエリ付き URL が並んでいました。そこで、81ページの生の HTML からリンクをすべて抜き出しました。リンクは2,203本、異なる URL は269ありました。
| 種類 | 異なる URL |
|---|---|
| sitemap に載る本物のページ | 81 |
| クエリの無いほかの内部リンク | 2 |
| アプリへの導線(クエリ付き・銘柄ごと) | 158 |
| CSV の書き出し | 28 |
クエリ付きの158本は、どれも canonical が同じトップを指し、中身は同じ画面でした。CSV も検索に出す対象ではありません。つまり、リンクから見つけられる269 URL のうち、69%に当たる186本が複製か CSV でした。
この結果から、検索に出したい説明ページ以外の取得先を整理することにしました。robots.txt に加えたのは、次の2行です。
Disallow: /*?
Disallow: /export/
公開後の robots.txt で確認すると、本物の説明ページは81/81がクロール可能で、クエリ付き URL と CSV は186/186を遮断できていました。クエリのない内部リンクも83/83がクロール可能でした。テストは5/5が通り、古い robots.txt に戻すと2件が失敗しました。人が使う導線と計測は変えていません。
ただし、ここで確認できたのは、意図した URL を許可・遮断できることまでです。修正によってページの発見が進んだかどうかは、まだ分かっていません。
また、sitemap の未取得だけを主因とは判断しませんでした。別の自社サイトでは、sitemap が未取得のままでも検索表示が5,743回出ていたためです。リンク切れ、noindex、canonical の誤りも点検では見つかりませんでした。
次の確認日は10月26日とし、URL 検査を再実行して「知られていない65」が減るかを見ることにしました。1週間で動かなければ、sitemap の再送信か、URL ごとの登録リクエストに移る予定です。修正の完了と、効果の確認は別の段階として残しています。
業務に置き換えると
サイトを公開したのに検索に出ないとき、今回の記録から点検できる項目は次の5つです。
- User-Agent が残るログを探す。 今回はページを返す関数で確認できました。一方、別の自社サイトの静的ホスティングではサーバ側のアクセスログが出ず、Search Console の中でしか確認できませんでした。数えられる範囲を最初に把握します。
- 確認用アクセスと外部のアクセスを分ける。 総数だけで判断せず、送り主と取得先を確認します。確認作業が止まっていた期間があれば、アクセスが混ざらない対照として使います。
- Googlebot が来ているか、どこから発見されたかを見る。 来ていなければ、Search Console、sitemap、内部リンクを先に点検します。発見が始まったら、リンク先を数え、クエリ付きの複製や CSV がどれだけ含まれるかを確認します。
- 継続や停止の基準を先に決める。 今回は登録から28日、確認用以外のリクエスト累計20という基準を置きました。判断に使う数字を、日々の記録から取り出せるようにします。
- 修正前の値と再確認日を残す。 今回の基準値は、Google に知られていない65本です。設定のテストが通っただけで成果とせず、同じ指標を後日数え直します。
この記事は、TechAthletes が自社のサービスを作る中で記録した実測をもとに書いています。業務への導入のご相談は 仕事の窓口 で受け付けています。