今回やること
この記事では、example.com と www.example.com のどちらかを正規URLに決め、もう片方からリダイレクトする流れを整理します。
wwwあり・なしは別URLなので、Webサイト公開時は正規URLを1つに決めて統一します。
前提条件
- apexドメインとwwwサブドメインの両方を管理できる
- ホスティングサービスに両方のドメインを登録できる
- DNSレコードを編集できる
- HTTPS証明書が両方で発行できる
例では、正規URLを https://www.example.com/ にします。
Step 1: 正規URLを決める
まず、どちらを正規URLにするか決めます。
| 正規URL | 例 |
|---|---|
| apexを正規にする | https://example.com/ |
| wwwを正規にする | https://www.example.com/ |
途中で変えるとリンク、検索、分析に影響するため、公開前に決めます。
Step 2: 両方のDNSを設定する
正規側だけでなく、リダイレクト元側もDNSで到達できる必要があります。
例:
| ホスト名 | 種類 | 値 |
|---|---|---|
example.com | A / ALIAS | ホスティング指定値 |
www.example.com | CNAME | ホスティング指定値 |
どちらかのDNSがないと、リダイレクト処理に到達できません。
Step 3: ホスティング側に両方登録する
ホスティングサービスのドメイン設定で、両方を登録します。
example.com
www.example.com
片方だけ登録していると、未登録ドメインとしてエラーになる場合があります。
Step 4: HTTPS証明書を確認する
両方のURLをHTTPSで確認します。
curl -I https://example.com
curl -I https://www.example.com
証明書エラーが出る場合は、証明書の対象名に両方が含まれているか確認します。
Step 5: 301リダイレクトを設定する
apexからwwwへ統一する例です。
https://example.com/
-> 301
https://www.example.com/
ホスティングサービス、CDN、Webサーバーのどこで設定するかは構成によって違います。
Step 6: canonicalを確認する
正規URL側のHTMLには、自分自身へのcanonicalを置きます。
<link rel="canonical" href="https://www.example.com/" />
canonicalはリダイレクトの代わりではありません。検索エンジンへ正規URLを伝える補助として使います。
Step 7: 確認する
curl -I https://example.com
curl -I https://www.example.com
期待例:
HTTP/2 301
location: https://www.example.com/
HTTP/2 200
リダイレクト元は301、正規URLは200になるのが基本です。
よくあるエラー
| エラー | よくある原因 | 確認すること |
|---|---|---|
| リダイレクトループ | apexとwwwが互いに転送している | 転送ルール |
| 証明書警告 | リダイレクト元の証明書がない | 両方のHTTPS |
| 片方だけ404 | ホスティング側のドメイン登録漏れ | ドメイン設定 |
| canonicalが逆 | 正規URLの指定ミス | HTMLのhead |
学習用と本番用の違い
学習ではどちらを正規にしても構いません。本番では、既存リンク、検索インデックス、SNS共有、広告URL、アクセス解析を確認してから統一します。
URL統一では、DNS、HTTPS、301、canonicalを同じ方向に揃えることが重要です。
まとめ
wwwあり・なしは別URLです。正規URLを決め、両方のDNSとHTTPSを用意し、リダイレクト元から正規URLへ301で転送します。canonicalは正規URLを検索エンジンへ伝える補助として使います。
参考リソース
- Google Search Central: Consolidate duplicate URLs
- MDN: 301 Moved Permanently
- Netlify: Redirects and rewrites