[PR]
本サイトはアフィリエイト広告を利用しています。
「PVが100万超え?」と笑っていたのに、ログを見ると笑えない量のアクセスが……。
本記事は、試験的に始めたおみくじページ(/rese-deve-omikuji)で起きた“PV暴走”を、GSCでは見えない領域まで掘って止血対策した記録です。
※Cloudflare導入は次章(導入前に区切りとしてこの記事を残す)。
状況:Live PVでおみくじ系の数字が異常に跳ねた。
観測:日付が変わって約2時間で A:168 / C:293 まで減少(効いてるが、まだ多い気もする)。
学び:GSCのクロール統計が落ち着いて見えても、“PV暴走の犯人”がGoogleとは限らない。
ある日、Live PVを見ていると「ん?」となる数値が出た。 おみくじは試験的に始めたページのはず。人気爆発する理由が薄い。 でも数字は跳ねる。しかも、GSCのクロール統計を見ると「落ち着いてるようにも見える」。
ここで考えられる対応を二択に絞る。 「試験ページだし消して終わり」にするか。 それとも「未知の世界を征服する」方向へ踏み込むか。 ……自分は後者が好きだ。
そして“征服”の入口は、いつも地味だ。 派手なダッシュボードより先に、access_log を開く。 そこには、PVグラフでは見えない真実が並んでいた。
叩かれていたのは、ほぼ1点。
/rese-deve-omikuji。
しかも、クエリが付いた無数のURL。
つまり「ページが人気」ではなく、URLが無限に増える構造が“燃料”になっていた。
対策は、派手な魔法じゃない。 “増殖するURL”をやめる。 “過去にばら撒かれたURL”は、301で吸収する。 それだけで世界が静かになる。 (ついでにCloudflare株を1株買った。これは物語として面白い。※投資助言ではない)
まだ戦いは終わっていない。 今度の相手は、クエリ無しの素URLを叩く分散ボット。 だから次章はCloudflare。 でも、ここまででPV暴走の物語を一度区切る。ここまででも“学び”は十分に濃いから。 途中放置とはいえ数か月を経過してしまった。AIが出した成果物が一発で成功する開発方法の教訓となった。
「URLが無限に増殖する仕組み」があると、ボット/クローラが燃料にして暴走する。
典型例は ?reroll=time() のように、アクセスのたびに別URLを生成するパターン。
reroll= / choice= が大量に出ていないか- だらけなら人間導線ではない可能性が高いざっくり言うと、“200が大量”=オリジンが仕事をしてしまっている、“301が増える”=吸収に成功している、という見方ができる。
?reroll= が来たら 301でクエリ無しへ吸収(本丸)。?choice= はCookie保存→ 302でクエリ無しへ。rel="nofollow" を付与(保険)。/rese-deve-omikuji?reroll=123 → 301でクエリ無しへ戻る/rese-deve-omikuji?choice=先に連絡する → 302でクエリ無しへ戻り、選択はページ上に反映(Cookie)?reroll= の 200が消えて、301が増えるページが動く=OKではなく、過去に拡散したクエリURLが 301/302で吸収されることを確認すると勝ち
今回の止血で「無限URL増殖」は抑えられた。
ただし、クエリ無しの素URLを叩く分散ボットが残る場合がある。
そこで次回はCloudflareを導入して、
/rese-deve-omikuji を Managed Challenge/JS Challenge で守り、
オリジンに届く200をどこまで落とせるかを検証する。
※Cloudflare導入は、お名前.comレンタルサーバー/ドメイン側の設定変更を伴うため、ここで一度区切って記事化。