独自ドメインを取った最初の悩み,「www ありにするか,なしにするか」.本記事では,個人開発者向けに正規化の判断軸と301リダイレクト設計を整理する.
この記事では,個人開発者・スモールチーム・学生エンジニアの方を主な読み手として書いています.10分で読み終わって,明日から動ける具体的な行動が1つ見つかる状態を目指しています.
なぜ www あり / なしを揃える必要があるのか
放置すると www.example.com と example.com が別サイトとして扱われる.SEO評価が2分割され,被リンクも分散し,どちらの結果も中途半端になる.
SNSシェアもバラバラ.アナリティクスは別カウント.Cookie も別ドメイン扱いで,ユーザーがログイン状態を失う事故も起きる.
判断軸1:技術的制約 ― apex に CNAME を貼れるか
古典的な制約としてapex ドメイン(例: example.com)にはCNAMEを貼れない.CDNやSaaSが「CNAMEで指定して」と要求する場合,www あり運用にせざるを得ない局面がある.
近年はCloudflareなどのDNSプロバイダが CNAME flattening や ALIAS レコードで解決.これに対応しているDNSならapex(wwwなし)運用が技術的に可能.
判断軸2:ブランディング ― 短い方が記憶される
名刺・口頭・SNS紹介の現場では example.com の方が www.example.com より3割短い.モダンWebの流れも apex 優勢.
ただし www ありには Cookie 分離のメリットがある.apex の Cookie がサブドメイン全体に漏れない構造を組みやすい.大規模サイト・SaaSはこの理由で www を選ぶことが多い.
判断軸3:301 リダイレクトを「片側に統一」する
どちらを正規にしても,もう一方から301で固定リダイレクトするのが原則.302(一時)ではなく 301(恒久) を使うこと.SEO評価が引き継がれる.
Apache(.htaccess)ならRewriteRule ^(.*)$ https://example.com/$1 [R=301,L].Nginxならreturn 301 https://example.com$request_uri;.サーバー側で書くのが最も堅い.
判断軸4:SSL 証明書をどちらでも取れているか
SSL証明書は example.com と www.example.com の両方をSAN(代替名)に含める.片方しかカバーしていないと,リダイレクト前にSSLエラーが出る.
Let’s Encrypt なら certbot -d example.com -d www.example.com で両方取得.ワイルドカード(*.example.com)は apex を含まないので別途取る必要がある点に注意.
判断軸5:Search Console の正規URLを揃える
Google Search Console には4プロパティ(http/https × www/なし)を全部登録.301設定後,検索結果に表示されるのが正規URL側に統一されるまで確認する.
サイトマップ・canonicalタグ・内部リンクの全てを正規URLに統一.これを徹底すると2-3か月でGoogleの認識が完全に揃う.
補論:「自分の城」のURLは1つに絞る
www あり/なし問題は,「自分の城」のURLを1つに絞る儀式.SNSはプラットフォーム任せですが,独自ドメインは自分で正規URLを設計できる.それが資産化の出発点です.
これからドメインを取るなら,取り扱い400種類以上のドメイン取得サービス─ムームードメイン─ ならコンパネで301設定までGUIで完結.apex / www 切替時もDNSレコードがすぐ反映される.
正規化リダイレクトを実装するサーバーは,ロリポップ!がおすすめ.独自SSL(Let’s Encrypt)が無料で,.htaccessでの301もすぐ書ける.個人開発者の「正規化第一歩」に向いている.
よくある質問
Q1:途中で www あり→なしに変えても大丈夫?
301を完璧に貼ればSEO評価は引き継げる.ただし一時的に順位が変動する.繁忙期は避ける.
Q2:apex の CNAME 制約は実害がある?
古いDNSサービスでは実害あり.Cloudflare/Route53等のモダンDNSを選べば気にしなくていい.
Q3:HSTS で強制 HTTPS する場合の注意は?
HSTS はサブドメイン含む全体に影響する設定にしておくと安全.includeSubDomainsを必ず付ける.
まとめ ― 正規化は「最初の1日」で決める
大事なのは,「正解を完璧に押さえる」ことではなく「動き始める」ことです.今日,自分のドメインのURLが https://example.com に1本化されているか,curl -Iで確認しましょう.