Azure Static Web Apps × Google AdSenseで所有権確認を通すまでにハマったこと

2026-03-22
Contents

はじめに

Nuxt(SSG)+ Azure Static Web Apps(以下ASWA)で運用しているサイトにGoogle AdSenseを導入しようとしたところ、所有権確認がなかなか通らず苦労しました。 この記事では、ハマったポイントとその解決策をまとめます。同じ構成で困っている方の参考になれば幸いです。

📌この記事の要約

Azure Static Web Apps + Nuxt SSGの構成でAdSense所有権確認を通すために、ads.txtの配信とルートドメインのDNS設定(Cloudflare)のハマりポイントを乗り越えた記録です。

環境

項目技術
フレームワークNuxt 4(SSG)
ホスティングAzure Static Web Apps
DNSお名前.com → Cloudflare に移行
ドメインakizorasoft.com / www.akizorasoft.com

ハマりポイント: ルートドメインにアクセスできない

問題

AdSenseに登録できるのはakizorasoft.com(ルートドメイン)のみで、www.akizorasoft.comは登録できない。しかし、akizorasoft.comにはDNSレコードが設定されておらず、Googleのクローラーがサイトにアクセスできなかった。 これにより、ads.txtもルートドメインで配信できず、所有権確認が通らない状態だった。

原因

お名前.comではwww.akizorasoft.comのCNAMEレコードのみ設定しており、ルートドメイン(akizorasoft.com)にはレコードがなかった。 通常、ルートドメインにはCNAMEレコードを設定できない(DNS仕様上の制約)ため、ASWAへのルーティングができなかった。

なぜルートドメインにCNAMEが設定できないのか

DNS仕様(RFC 1034)では、ルートドメイン(Zone Apex)にはSOAレコードやNSレコードが必須であり、CNAMEレコードは他のレコードと共存できないという制約がある。そのため、ルートドメインにCNAMEを設定すると、これらの必須レコードと競合してしまう。

解決策: Cloudflareへの移行

Cloudflare(無料プラン)にDNSを移行し、CNAME Flatteningを利用した。 CNAME Flatteningは、ルートドメインのCNAMEレコードを内部的にAレコードに変換してレスポンスを返す仕組みで、DNS仕様の制約を回避できる。

手順

  1. Cloudflareにアカウントを作成し、akizorasoft.comを追加
  2. お名前.comのネームサーバーをCloudflare指定のNSに変更
  3. Cloudflare側でDNSレコードを設定
    • @(ルートドメイン)→ CNAME → ASWAのホスト名
    • www → CNAME → ASWAのホスト名
    • TXT → google-site-verification の値を移行
  4. ASWAのカスタムドメインにakizorasoft.comを追加
  5. ASWA側でドメイン検証用のTXTレコードをCloudflareに追加
  6. 検証完了後、AdSenseの所有権確認を再試行 → 成功

まとめ

Azure Static Web Apps + Nuxt SSGの構成でAdSenseの所有権確認を通すためのポイントです。

  • ルートドメインのDNS設定が最重要
    AdSenseはルートドメインでの登録が必須で、wwwサブドメインだけでは不可
  • CNAME Flatteningで制約を回避
    Cloudflare(無料プラン)でルートドメインにCNAMEを設定できる
  • ads.txtもルートドメインで配信が必要
    ルートドメインにアクセスできなければads.txtも到達不可

ルートドメインの問題はASWAに限らずどのホスティングサービスでも起こりうるため、同様の問題に直面した方はぜひCloudflareを試してみてください。

プロフィール画像
WRITTEN BY
あきぞら

東京都市大学 情報工学部在籍(2027年卒業予定)。
中学時代よりC#および.NETを用いた個人開発をスタート。現在はWebアプリエンジニアとして活動し、国内大手SaaS企業より内定。 培った技術の活用法から、新卒エンジニアとしてのキャリア形成、生産性を高めるITツールの導入まで、ITに興味のある方や現役エンジニアに役立つバラエティ豊かな情報を発信しています。