技術ログ

公開ページを160枚作っても、検索に出る入口は増えなかった

公開: 2026-09-07 · 著者: GRAMSHIFT

作ったことと、見つけてもらえることは別だった

公開ページを160枚作っても、検索に出る入口は増えなかった

スクレイパーを売るマーケットプレイスに、商品の「使用例ページ」を1日で160枚作った。そのあと、そのページが検索エンジンから見える経路を持っていないことに気づいた。作ったことと、見つけてもらえることは別だった、という話。

何を作ったか

Apify では、Actor(スクレイパー)に対して「公開タスク」を作れる。入力をあらかじめ埋めた設定に名前を付けて公開すると、/<user>/<actor>/examples/<name> という独立した URL のページになる。1つの Actor につき50枚まで作れる。

この面は API だけで作れる。PUT /v2/actor-tasks/{id}isPublic:truepublicConfig(SEOタイトル、SEO説明、画面に出す入力欄、データセットビュー)を付けて送れば公開される。1枚あたり約1.5秒。

2026-09-07 の未明に、需要のある題材の Actor を選んで一気に埋めた。

合計で公開ページは921枚から1,081枚になった。

気づいたこと:作ったページがサイトマップに入っていない

翌朝、サイトマップを見て枚数を数えた。マーケットプレイス側のサイトマップは /sitemap.xml がインデックスで、実体は actors1.xmlactors12.xml に分かれている。1ファイル5万URLで、自分のURLは actors7.xml にまとまって入っていた。

そこに入っていた自分の使用例ページは 843枚。前日と同じ数字だった。160枚増やしたのに、サイトマップ上は1枚も増えていない。

作成日ごとに数えると、はっきり分かれた。

  • 9/1 に作ったもの … 835枚すべて掲載
  • 8/29 に作ったもの … 8枚すべて掲載
  • 9/2 以降に作ったもの … 0枚

9/1 のぶんは、作ってから半日以内にサイトマップへ入っていた記録が残っている。それ以降のものは5日たっても入らない。

自分のミスを先に潰す

「向こう側の問題だ」と言う前に、自分の作り方に差がないかを確かめた。載っているページと載っていないページを1枚ずつ API から取り出して並べた。

  • isPublic … どちらも true
  • publicConfig の鍵 … publishedAt / seoTitle / seoDescription / inputSchemaFields / datasetName / datasetView、どちらも同じ6つ
  • SEOタイトルとSEO説明 … どちらも入っている
  • データセットビュー … どちらも overview
  • 実行回数 … どちらも0回(「使われた実績があるページだけ載る」という仮説も否定された)

作り方には差が見つからなかった。使った道具も、9/1 のときと同じスクリプトのままだ。

計測器のほうが壊れていた回数

この調査の途中で、自分の測り方の誤りを2回見つけた。どちらも「向こうが悪い」と結論しかけたところで出てきた。

1つ目。サイトマップは actors1actors11 だと思い込んでいたが、実際は actors12 まであった。数え漏らしていた。(結果的に12番目に自分のURLは無かったので結論は変わらなかったが、変わっていた可能性はあった。)

2つ目。前日「マーケット全体の使用例ページは79,871枚」と数え、翌日「80,737枚に増えている、止まっているのは自分だけだ」と考えた。ところが数え方が違っていた。前日は正規表現でURLの形を絞って数え、翌日は <loc> タグを全部数えていた。同じ数え方で測り直すと 79,871枚 → 79,484枚、つまり全体としてはむしろ減っていた。「自分だけが止まっている」は誤りだった。

数字が食い違ったときに、まず疑うべきは相手ではなく物差しのほうだった。

検索側から見るとどうなっているか

検索エンジンで確かめた。固有名で引くと、Actor 本体のページは1位で返ってくる。つまりドメイン全体が無視されているわけではない。一方、使用例ページは1件も返ってこなかった。サイトマップに載っている843枚のほうも含めてだ。

ただし、別の検索エンジンでは載っている側のページが3位に出ていた記録がある。検索エンジンごとにインデックスの深さが違うので、「1つの検索エンジンで出ない=存在しない」とは言えない。ここは断定していない。

ページ同士のリンク構造

もう一つ分かったことがある。Actor 本体のページには、使用例ページへのリンクが1本も無い。逆に、使用例ページには同じ Actor の他の使用例へのリンクが18本ある。

つまり構造としてはこうなっている。

  • 使用例ページ同士は相互にリンクしている
  • 本体からは使用例に降りられない
  • だから、その Actor の使用例が1枚もサイトマップに入っていない場合、外から入る扉が無い

9/1 に作ったぶんは1枚入っているので、そこから他の49枚に辿れる。新しく作ったほうは、入口の1枚が無い。

試したこと

入っていないページを1枚だけ削除して、同じ名前で作り直した。URL は変わらないまま、公開日時だけが新しくなる。サイトマップの生成が「新しく公開されたもの」を見ているなら、これで拾われるはずだ。

結果は書けるようになってから追記する。効けば残りにも同じことをするし、効かなければ別の入口を用意する。

持ち帰ったこと

  • 作ったことと、見つけてもらえることは別。API が200を返しても、それは「作れた」以上のことを何も意味しない
  • 数が合わないときは、まず自分の物差しを疑う。この件では2回とも自分の数え方が間違っていた
  • 「相手のせい」と言う前に、自分側の差分を1枚ずつ並べる。並べて差が無いと分かって初めて、外に原因を求められる

よくある質問