
導入
Vercelで運用しているサイトにおいて、ある日突然「AdSenseの広告が表示されなくなった」「インプレッションや収益が急に落ちた」と感じた経験はないでしょうか。
コードを変更した覚えがないにもかかわらず挙動が変わる場合、その背景には VercelやNext.jsのアップデート が影響している可能性があります。
本記事では、VercelのアップデートによってAdSenseが影響を受けやすいポイントを整理し、なぜ問題が起きるのか、どこを確認すべきかを実務目線で丁寧に解説します。
VercelアップデートがAdSenseに影響する理由
Vercelのアップデートは、単なる管理画面の改善ではありません。
以下のような領域が同時に変更されることがあります。
- Next.js本体の挙動(App Router・Script管理)
- ビルドおよび配信方式
- キャッシュ・再実行タイミング
- Edge / Serverless Functions の仕様
AdSenseは外部スクリプトに強く依存しているため、実行タイミングや再描画の変化に非常に弱いという特性があります。
スクリプト実行タイミングの変化による影響
App Router移行後に起きやすい問題
Next.jsのApp Routerでは、レイアウトやページが再評価される場面が増えました。
その結果、以下のような現象が起きることがあります。
- 広告スクリプトが意図せず複数回実行される
adsbygoogle.push()が重複して呼ばれる- エラーは出ないが広告が表示されない
これは実装ミスではなく、フレームワーク側の実行モデル変更に起因するケースが多く見られます。
注意点
layout.tsxとpage.tsxの両方で広告関連処理をしていないか- クライアントコンポーネント内で初期化が走りすぎていないか
ads.txt 配信構造の落とし穴
Google AdSenseでは、ads.txt がドメイン直下で取得できることが必須です。
Vercel + Next.js 環境では、次のような見落としが起きやすくなります。
public/ads.txtに置いたが、実際は 404- ビルド後のパスが想定と異なる
- 開発環境では見えるが本番で取得できない
確認すべきポイント
- ブラウザで
https://自分のドメイン/ads.txtを直接開く - デプロイ後も同じURLで内容が表示されるか
ads.txt が正しく取得できない状態が続くと、広告配信制限や収益低下につながります。
ドメイン設定とAdSense認識のズレ
Vercelでは以下が混在しがちです。
- 独自ドメイン
.vercel.appサブドメイン
この状態で運用していると、
- canonical
- Search Console
- AdSenseのサイト認識
が一致せず、広告配信が不安定になることがあります。
実務上の対策
- 本番運用は独自ドメインに完全統一する
.vercel.app側をインデックスさせない- AdSenseに登録しているURLと実運用URLを一致させる
Vercelのプランと収益化の考え方
VercelのHobbyプランでもAdSenseは技術的に動作します。
ただし、無料プランは非商用利用を前提とした位置づけであり、収益化はグレーゾーンと解釈される余地があります。
現実的な判断基準
- 小規模検証:Hobbyプランでも問題になりにくい
- 継続的な収益運用:有料プランを検討する価値あり
安定性を重視する場合、環境要因による広告停止リスクは可能な限り減らすべきです。
実務で使えるチェックリスト
Vercelアップデート後にAdSenseの挙動がおかしいと感じた場合、以下を順に確認します。
- ads.txt がドメイン直下で取得できるか
- 広告スクリプトが一度だけ初期化されているか
- App Router移行時の重複実行がないか
- 独自ドメインに統一されているか
- AdSenseとSearch Consoleの登録URLが一致しているか
まとめ
VercelのアップデートによるAdSenseの影響は、派手なエラーではなく静かに収益を削る形で現れることが多いのが特徴です。
コードだけを見るのではなく、
- 配信構造
- 実行タイミング
- ドメイン設計
を冷静に見直すことが、再現性の高い対処につながります。
日々進化するVercelとNext.jsの環境では、「昨日まで動いていた」が保証にならない時代です。
だからこそ、広告まわりは定期的に仕組みごと点検する姿勢が、長期運用では確実に効いてきます。