WordPressでドメイン移行時に使ったSQL文とNginxの設定

PREMIUM TRADING compatible with many FX brokers
PREMIUM TRADING is the best cashback site in the English speaking world

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, '%');

新ドメインで正常に動作していることが確認できれば元のドメインのアクセスを全て新ドメインにリダイレクトする設定をします。

nginx ドメイン移転 #nginx - Qiita

ドメイン移行後の検索順位

移転してそんなに日数が経っていないのでまだ断定はできませんが、もともとGoogleのアルゴリズム変更で検索順位が落ちていたせいか、以前より検索順位が回復傾向。

Googleは「TLDによって検索順位が変わることはない」と公言していますが、

特に海外FX絡みの検索ワード上位のサイトを見ているとほとんど.com、たまに.jpってイメージしかないんですよね。

TLD=.com, .jp, .netなど

それに加えて「これ以上SEOが弱まりそうもない」ことから思い切ってドメイン移行に踏み切りましたが、今のところ結果オーライ。

  • 追記

結局以前の検索順位に戻ってきました。

まぁちゃんとリダイレクトした場合のドメイン移行のSEO効果はプラマイゼロとすると当然の結果ですが、

これなら301リダイレクトせずに新規ドメイン扱いにした方がまだマシだったかも知れない。

WordPress関連記事



PREMIUM TRADING compatible with many FX brokers
PREMIUM TRADING is the best cashback site in the English speaking world

About site

スマートフォンで海外FX&ビットコイン取引をする方法の解説。TariTali推し。

search

Categories