WordPressのドメインを移行したので手順をまとめる
常々「短いドメインの方がカッコいいよなぁ」と思っていたところ、jpドメインが空いていたので移行しました。
できれば.comの方が良かったけど
「ドメインを変えると301リダイレクトをしてもSEOが下がる場合がある」みたいな記事もありますが、そもそも当ブログは検索順位低下を恐れるほどのSEOパワーがないのでものは試し。
特に2024年のGoogleアップデート移行は検索順位が壊滅状態だったので、むしろドメイン変更で検索順位が上がってくれることを期待しつつ。
新しいドメインにAレコードを設定
ドメイン取得時にはおなじみ。
新しいドメインでNginxのデフォルトのページが表示されるまで待ちましょう。
「ドメインの浸透」って言うと怒り出す界隈がいますが、目に見える結果としては別に間違ってないんだから落ち着けよ。
Nginxの設定+Let's Encryptの発行
ドメインを追加する時よりも移転時の方がハマった。
追加したドメインは最初はSSL証明書がないのでSSL系の設定は全部コメントアウト。
server {
server_name new.example.com;
location / {
root /var/www/vhosts/new.example.com/;
# index index.html index.php;
}
# return 301 https://$host$request_uri;
}
# server {
# WordPressの基本的な設定ファイル
# include /etc/nginx/conf.d/wp-base-config;
# server_name new.example.com;
# root /var/www/vhosts/new.example.com/;
# # SSL
# # ssl_certificate /etc/letsencrypt/live/new.example.com/fullchain.pem;
# # ssl_certificate_key /etc/letsencrypt/live/new.example.com/privkey.pem;
# # ssl_trusted_certificate /etc/letsencrypt/live/new.example.com/fullchain.pem;
# access_log /var/log/nginx/new.example.com-access.log;
# error_log /var/log/nginx/new.example.com-error.log;
# }
元々のドメインでfastcgiのキャッシュを使っている場合、新しいドメイン用の設定もちゃんと追加。
Nginxの設定をミスってcertbotからのアクセスが404になった場合、キャッシュが更新されずに404が出続けることがあります。
fastcgi_cache_path /var/cache/nginx/new.example.com levels=1:2 keys_zone=example.com:30m max_size=512M inactive=600m;
certbotでLet's Encryptの証明書をインストール。
sudo certbot certonly --webroot -w /var/www/vhosts/new.example.com -d new.example.com
SSL証明書がインストールされたらNginxのSSL系のコメントアウトしていた部分をアンコメント(もとに戻す)します。
SQL文でデータベースを置換
AdminerやPHPMyAdminなどのWebツールを使った方が安心感がありますが、
MySQLでログインして実行してもOK。
@TARGETに旧ドメイン、@REPLACEに新ドメインをそれぞれ入力してください。
当然ですがデータベースはバックアップするか、旧ドメインと新ドメインで別々のものを使うことをオススメします。
事故ったら終わりなので。
SET @TARGET = 'example.com';
SET @REPLACE = 'new.example.com';
UPDATE wp_posts
SET guid = REPLACE(guid, @TARGET, @REPLACE)
WHERE guid LIKE CONCAT('%', @TARGET, '%');
UPDATE wp_posts
SET post_title = REPLACE(post_title, @TARGET, @REPLACE)
WHERE post_title LIKE CONCAT('%', @TARGET, '%');
UPDATE wp_posts
SET post_content = REPLACE(post_content, @TARGET, @REPLACE)
WHERE post_content LIKE CONCAT('%', @TARGET, '%');
UPDATE wp_options
SET option_value = REPLACE(option_value, @TARGET, @REPLACE)
WHERE option_value LIKE CONCAT('%', @TARGET, '%');
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, @TARGET, @REPLACE)
WHERE meta_value LIKE CONCAT('%', @TARGET, '%');
新ドメインで正常に動作していることが確認できれば元のドメインのアクセスを全て新ドメインにリダイレクトする設定をします。
ドメイン移行後の検索順位
移転してそんなに日数が経っていないのでまだ断定はできませんが、もともとGoogleのアルゴリズム変更で検索順位が落ちていたせいか、以前より検索順位が回復傾向。
Googleは「TLDによって検索順位が変わることはない」と公言していますが、
特に海外FX絡みの検索ワード上位のサイトを見ているとほとんど.com、たまに.jpってイメージしかないんですよね。
TLD=.com, .jp, .netなど
それに加えて「これ以上SEOが弱まりそうもない」ことから思い切ってドメイン移行に踏み切りましたが、今のところ結果オーライ。
- 追記
結局以前の検索順位に戻ってきました。
まぁちゃんとリダイレクトした場合のドメイン移行のSEO効果はプラマイゼロとすると当然の結果ですが、
これなら301リダイレクトせずに新規ドメイン扱いにした方がまだマシだったかも知れない。
- さらに追記
ドメイン移行前より全体的に検索順位が上がってきました。
その間、過去記事のリライトやタグ付けなども行っていたのでドメイン移行だけが原因なのかは不明。
WordPress関連記事
- WordPressテーマUnderStrapのカスタマイズ例
- WordPressのメディアや記事全文の文字を置換して日付も更新するSQL
- プラグインを使わずにWordPressのショートコードで広告を管理する
- WordPressの絵文字やEasy Table of Contents関係のファイルの読み込みを止める
- WordPressの投稿画面のツールバー・ショートカットキーをカスタマイズする
- プラグインなしでアップロード画像をWebPに変換
- プラグインなしでWordPressの画像入れ替えをする