Vercel × Route53 × Astro で「wwwあり」を正解にする理由
「ドメインは短い方がクールだ」
そう思って、個人開発のサイトではこれまで https://example.com のような「wwwなし(ネイキッドドメイン)」を好んで使っていました。しかし、このブログ(Astro Starlight + Vercel)を構築し、Google AdSenseやSearch Consoleの設定を進める中で、その認識を改めることになりました。
今回は、Vercel環境においてなぜ「wwwあり」が推奨されるのか、そしてAstroの設定でハマりやすい サイトマップの罠について共有します。
Vercelからの「提案」
Section titled “Vercelからの「提案」”AWS Route53 で取得したドメインを Vercel に接続したときのことです。 Vercelのダッシュボードには、親切にも次のような推奨設定が表示されていました。
- www.indigo165e83.com ->
Primary - indigo165e83.com ->
Redirect to www...
「え、逆じゃない? 短い方をメインにしたいんだけど」と最初は思いました。しかし、Vercelの公式ドキュメントやアーキテクチャを調べていくと、これには明確な技術的理由があることがわかったのです。
Anycast IP と CNAME の違い
Section titled “Anycast IP と CNAME の違い”結論から言うと、Vercel(というか多くのCDN)においては、サブドメイン(www)の方がパフォーマンスと耐障害性に優れています。
wwwあり(CNAMEレコード)
Section titled “wwwあり(CNAMEレコード)”www を使う場合、DNSレコードは CNAME で設定し、値は cname.vercel-dns.com になります。
これにより、Vercel側がトラフィックを動的に制御し、ユーザーから最も近いエッジサーバーへ最適にルーティングしてくれます。
wwwなし(Aレコード)
Section titled “wwwなし(Aレコード)”一方、ネイキッドドメインを使う場合、DNSの仕様上 CNAME が使えない(ことが多い)ため、Aレコード で固定IPを指定する必要があります。
Vercelの場合、ここで指定するのが 76.76.21.21 という Anycast IP です。
これも十分に高速なのですが、固定IPである以上、CNAMEを用いた柔軟なトラフィック制御に比べると、Vercelの持てるポテンシャルを100%引き出しにくいという側面があります。
「見た目のシンプルさ」を取るか、「インフラ的な最適解」を取るかのトレードオフですが、私は後者(wwwあり)を選びました。
Astro設定ファイルの落とし穴
Section titled “Astro設定ファイルの落とし穴”DNSの設定(AWS Route53)とVercelのリダイレクト設定を完了し、「これで完璧だ」と思っていました。 しかし、Google Search Console にサイトマップを送信したところ、**「インデックス登録されない」「AdSenseの審査が進まない」**という問題が発生しました。
原因は、私のローカルのコード、astro.config.mjs にありました。
// 修正前の astro.config.mjs(NG)export default defineConfig({ site: 'https://indigo165e83.com', // wwwがない! // ...});Webサーバー(Vercel)側では「wwwありが正義(Primary)」として動いているのに、Astroが自動生成する sitemap-index.xml の中身は、設定ファイルに従って https://indigo165e83.com/… (wwwなし)のURLをリストアップしていたのです。
Googleロボットがサイトマップを見る(wwwなしのURLが書いてある)そのURLにアクセスするVercelが「wwwあり」にリダイレクトするGoogleロボット「おっと、リダイレクトされた。正規URLがどっちかわからないぞ」これが評価を下げる要因になっていました。
正しい設定のまとめ
Section titled “正しい設定のまとめ”この問題を解決するために行った設定は以下の3点です。これでサイトマップ、実アクセス、DNSの全てが「wwwあり」で一本化されました。
- AWS Route 53 の設定ルートドメインへのアクセスも取りこぼさないよう、Aレコードも正しく設定します。レコード名タイプ値備考wwwCNAMEcname.vercel-dns.comメインの経路(空欄)A76.76.21.21Anycast IP (リダイレクト用)
- Vercel の設定Domains設定画面で
www.indigo165e83.comを Primary に設定。 - Astro の設定(忘れがち!)astro.config.mjs の site プロパティを、実際に運用するURLと完全に一致させます。
// 修正後の astro.config.mjs(OK)export default defineConfig({ site: 'https://www.indigo165e83.com', // wwwをつける integrations: [sitemap(), ...],});「たかがwww、されどwww」。
モダンなホスティング環境では、DNSの設定ひとつでパフォーマンスが変わりますし、SSGフレームワーク(Astro)側との整合性もSEOに直結します。
もしVercel × Astroで構築していて「インデックス登録が遅いな?」と感じたら、一度 astro.config.mjs と DNS設定の整合性を確認してみることをおすすめします。