Webaff

公開 更新 文責 Webaff 編集部

Netlifyに独自ドメインを接続する手順

  • Netlify
  • ドメイン
  • 運用

このブログは webaff-blog.netlify.app で公開を始めて、2026年8月に webaff.net へ切り替えました。この記事はそのときの作業記録です。DNS の設定そのものより、切替後に忘れていた計測まわりで手戻りが出たので、そこを含めて残します。

ちなみに切替後の検索の数字はこうなりました。この記事自身の実績です。

月 クリック 表示回数 平均掲載順位
2026-08 2 16 26.6位
2026-09(23日時点) 2 5 10.6位

表示回数は減っていますが、平均掲載順位は26.6位から10.6位に上がりました。記事ごとの実測値は 検証データのページ で公開しています。

前提:この手順が想定している状態

次の状態からスタートします。ここまで終わっていないと、途中の画面が出てきません。

  • Netlify にサイトがデプロイ済みで、*.netlify.app のURLで表示できる
  • Netlify のプランは Free でよい(独自ドメインの接続は Free でも可能)
  • 独自ドメインを購入済み、またはこれから購入する(レジストラは問いません)
  • レジストラの管理画面にログインでき、ネームサーバーかDNSレコードを編集できる
  • サイト側に SITE_URL のような正規URLの設定値があり、自分で書き換えられる

逆に、ドメインを他社から移管する場合や、メール(MXレコード)を同じドメインで運用する場合は、ここで説明する範囲より設定が増えます。

切替を決めた理由

*.netlify.app のままでもサイトは公開できます。このブログが切り替えたのは、サイト名が固まって、継続して更新する見込みが立った時点です。判断の材料にしたのは次の3点でした。

  • URLが短くなってブランド名と一致する
  • ホスティング先を将来変えても、ドメインを資産として残せる
  • AdSense 申請や外部への共有で説明しやすくなる

費用は .net の通常取得料金で税込1,992円/年でした(更新も同額)。TLDごとの差や「初年度0円」の適用条件は XServerドメインで独自ドメインを取得する手順 に実費つきでまとめています。

接続の全体像

流れは次の5ステップです。

  1. ドメインを取得する(レジストラで購入)
  2. Netlify の Domain management にドメインを追加する
  3. レジストラ側で DNS(A / CNAME / NS など)を案内どおり設定する
  4. HTTPS(証明書)が有効になるまで待つ
  5. サイト側の SITE_URL と Search Console を新URLに合わせる

DNSの反映には数分から48時間かかることがあります。慌てて何度も値を変えず、公式の案内値を一度正しく入れるのが近道です。

Netlify側でやること

  1. Site configuration → Domain management
  2. Add a domain で取得したドメインを入力
  3. 表示される DNS レコードをメモする
  4. Primary domain を独自ドメインに設定(www あり/なしも決める)
  5. HTTPS が Provisioned になるのを確認

このブログは apex(webaff.net)を Primary domain にしました。www については追加の設定を書いていませんが、実際の応答はこうなっています。

$ curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' https://www.webaff.net/
301 https://webaff.net/

netlify.toml に www 用のリダイレクトは1行も書いていません。Primary domain を決めるとNetlify側が自動で301を返します。自分でリダイレクトを書き足す前に、まずこのコマンドで実際の応答を見てください。

一方で *.netlify.app の方は、意図的に残しています。

$ curl -s -o /dev/null -w '%{http_code}\n' https://webaff-blog.netlify.app/
200

Netlify のデフォルトURLは、独自ドメインを設定しても自動では独自ドメインへ飛びません。飛ばしたい場合は netlify.toml か _redirects で301を自分で書きます。このブログは確認用・バックアップ用として両方開ける状態を選んだので書いていません。どちらが正しいかは運用方針の話ですが、放置すると同じ内容が2つのURLで開くことは知っておいてください。

切替後に忘れていた更新

ここが今回いちばん手戻りが出たところです。ドメインを変えたら、次もセットで直す必要があります。

項目 直さないとどうなるか
SITE_URL canonical と sitemap が旧URLのまま出力される
Search Console 新URLのデータが入らない
GA4 ストリームURLや参照除外が旧URLのまま
内部リンク 旧ドメイン直書きのリンクが残る

このブログは netlify.toml の [build.environment] に SITE_URL = "https://webaff.net" を置いて、canonical と sitemap の土台にしています。Search Console はドメインプロパティ(sc-domain:webaff.net)で登録したので、http/https や www の有無をまとめて扱えます。切替をともなう場合、ドメインプロパティの方が管理は楽でした。

送信したsitemapが404だった

切替後に Search Console へ sitemap を送信したところ、指定したURLが存在しませんでした。原因は Astro 側の出力ファイル名です。

@astrojs/sitemap が出力するのは sitemap-index.xml で、sitemap.xml ではありません。robots.txt に Sitemap: https://example.com/sitemap.xml と書いていると、宣言先が404になります。

このブログでは、ビルド完了後にコピーを作って両方のURLで開けるようにしました。

// astro.config.mjs のインテグレーション内
'astro:build:done': async ({ dir, logger }) => {
  const outDir = fileURLToPath(dir);
  await copyFile(join(outDir, 'sitemap-index.xml'), join(outDir, 'sitemap.xml'));
  logger.info('Copied sitemap-index.xml → sitemap.xml');
},

結果として、現在はどちらのURLでも開けます。

$ curl -s -o /dev/null -w '%{http_code}\n' https://webaff.net/sitemap.xml
200
$ curl -s -o /dev/null -w '%{http_code}\n' https://webaff.net/sitemap-index.xml
200

コピーを作らずに robots.txt の宣言を sitemap-index.xml へ直すだけでも解決します。sitemap まわりの詰まりどころは AstroブログのSEO初期設定とsitemapの落とし穴 にもまとめています。

切替後に確認したこと

作業のあと、この順番で見ました。上から順に、失敗したときの原因が切り分けやすい並びです。

  1. https://独自ドメイン/ が開く
  2. 鍵マーク(HTTPS)が付いている
  3. www と非 www が意図どおりリダイレクトする(curl で応答コードを見る)
  4. sitemap が宣言したURLで開ける
  5. GA4 リアルタイムにヒットが出る

3番と4番は、ブラウザだけで見ていると気づきにくいところです。ブラウザはリダイレクトを勝手に追ってしまうので、curl で応答コードを直接見た方が確実でした。

まとめ

独自ドメイン接続そのものは「買う → Netlifyに追加 → DNS → HTTPS」で、画面の指示値を写すだけで終わります。実際に時間を取られたのはその後です。www のリダイレクトは自分で書かなくてもNetlifyが返すので確認だけでよく、逆に *.netlify.app は放置すると2つのURLで開きます。そして SITE_URL と Search Console の更新を忘れると、人が来ているのに数字だけ空という状態になります。切替は DNS より後片付けの方が事故りやすい、というのが今回の結論です。

関連記事