Skip to content

Vercel × Route53 × Astro で「wwwあり」を正解にする理由

「ドメインは短い方がクールだ」

そう思って、個人開発のサイトではこれまで https://example.com のような「wwwなし(ネイキッドドメイン)」を好んで使っていました。しかし、このブログ(Astro Starlight + Vercel)を構築し、Google AdSenseやSearch Consoleの設定を進める中で、その認識を改めることになりました。

今回は、Vercel環境においてなぜ「wwwあり」が推奨されるのか、そしてAstroの設定でハマりやすい サイトマップの罠について共有します。

AWS Route53 で取得したドメインを Vercel に接続したときのことです。 Vercelのダッシュボードには、親切にも次のような推奨設定が表示されていました。

「え、逆じゃない? 短い方をメインにしたいんだけど」と最初は思いました。しかし、Vercelの公式ドキュメントやアーキテクチャを調べていくと、これには明確な技術的理由があることがわかったのです。

結論から言うと、Vercel(というか多くのCDN)においては、サブドメイン(www)の方がパフォーマンスと耐障害性に優れています。

www を使う場合、DNSレコードは CNAME で設定し、値は cname.vercel-dns.com になります。 これにより、Vercel側がトラフィックを動的に制御し、ユーザーから最も近いエッジサーバーへ最適にルーティングしてくれます。

一方、ネイキッドドメインを使う場合、DNSの仕様上 CNAME が使えない(ことが多い)ため、Aレコード で固定IPを指定する必要があります。 Vercelの場合、ここで指定するのが 76.76.21.21 という Anycast IP です。

これも十分に高速なのですが、固定IPである以上、CNAMEを用いた柔軟なトラフィック制御に比べると、Vercelの持てるポテンシャルを100%引き出しにくいという側面があります。

「見た目のシンプルさ」を取るか、「インフラ的な最適解」を取るかのトレードオフですが、私は後者(wwwあり)を選びました。

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がどっちかわからないぞ」これが評価を下げる要因になっていました。

この問題を解決するために行った設定は以下の3点です。これでサイトマップ、実アクセス、DNSの全てが「wwwあり」で一本化されました。

  1. AWS Route 53 の設定ルートドメインへのアクセスも取りこぼさないよう、Aレコードも正しく設定します。レコード名タイプ値備考wwwCNAMEcname.vercel-dns.comメインの経路(空欄)A76.76.21.21Anycast IP (リダイレクト用)
  2. Vercel の設定Domains設定画面で www.indigo165e83.com を Primary に設定。
  3. 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設定の整合性を確認してみることをおすすめします。