とある WordPress サイトの引越しを手伝った時、サイト引越しに伴ってドメイン名を変更したいという要望がありました。
パーマリンクの命名規則等は変わらないんで、あくまでもドメイン名だけ変更するということだったので、簡単なプラグインを作って、旧サイトから新サイトへ 301 リダイレクトするようにしました。
301リダイレクト後は Google さんとかが、ちゃんと処理してくれるので SEO 的には問題ないはずと思ってたんですが、検索結果の移行が中々進まない時は焦りました。
すべての処理が終わって、検索順位が回復するには1週間弱くらいはかかるようです。
ドメイン名変更を 301 リダイレクトで処理しようとしてる方は、焦らないでじっと待っててくださいね。
via. 301リダイレクトでPageRankはどのくらい失われる? | 海外SEO情報ブログ
その時、作成した簡単なプラグインは、こんな感じです。
<?php /* Plugin Name: Redirect to Version: 0.1.2 Plugin URI: Description: Author: wokamoto Author URI: https://dogmap.jp/ */ define('REDIRECT_SITE', 'http://example.com/'); function url_redirect() { $request_uri = site_url($_SERVER['REQUEST_URI']); if ( !is_admin() && !preg_match('/(wp\-admin|wp\-login\.php)/i', $request_uri)) { $search = site_url('/'); $replace = REDIRECT_SITE; $redirect_uri = str_replace($search, $replace, $request_uri); if ($request_uri !== $redirect_uri) { header('HTTP/1.0 301 Moved Permanently', true, 301); header('Status: 301 Moved Permanently', true, 301); header('Location: ' . $redirect_uri ); die(); //wp_redirect($redirect_uri, 301); } } } add_action('init', 'url_redirect'); ?>
これを旧サイトの WordPress で有効化するだけで、301 リダイレクトしてくれます。
10行目の http://example.com/ は、新サイトの URL に置き換えてやってください。
ピンバック: [WordPress]独自ドメイン設定に伴い旧サイトから新サイトに301リダイレクトするプラグインを入れた : 太のうぇぶでぶ -There is no border in the Internet!-
ピンバック: Tweets that mention 旧サイトから新サイトへ 301 Redirect する : dogmap.jp -- Topsy.com