35歳で会社を辞めて独立したまめのブログ

まめー

WordPressでパーマリンク変更と301リダイレクトを行う方法

※当サイトはWeb広告を利用しています


約900あるブログ記事のパーマリンクをおもいきって全ページ変更しました。ブログは、WordPressで構築しています。
(パーマリンクとはURLのことです)

踏み切った理由は、カテゴリを柔軟に変更したくなったからです。

これまでは、「ドメイン/カテゴリ/投稿名/」で運用を続けていましたが、これだとカテゴリを変更する度に、パーマリンクが変更されてしまうため、カテゴリの整理がしづらいのです。

そこで、「ドメイン/投稿名/」に変更しました。これだとカテゴリに影響されないパーマリンクになります。

パーマリンクの変更は、簡単なことのように思えますが、適切に301リダイレクトをかけないと、リンク切れや検索順位の下落など多大なる被害が発生するおそれがあります。

月間20万PV以上あるブログで、検索エンジンからのアクセスがほとんど。そのため、かなり慎重にやりました。

今回は、実際に僕が行ったWordPressにおけるパーマリンクの変更と301リダイレクトを設定する方法について紹介します。

スポンサードリンク

パーマリンク変更によるメリットとデメリット

パーマリンクの変更には、メリットがあると同時に、いくつかのデメリットがあります。よく考えた上で、実行しましょう。

メリット

変更するパーマリンクの形式によります。

ドメインを変更したのであれば必然ですし、長いURLを短くすれば読みやすくなるでしょう。

僕の場合は、冒頭でも書いたよう「ドメイン/投稿名/」にすることで、カテゴリの変更がしやすくなったというのが最大のメリットです。

例えば、カテゴリ名をパーマリンクに含めていると、「グルメ」カテゴリに入れているラーメンショップの記事は、

http://sample/gourmet/ramen-shop001/

というパーマリンクになります。

このデメリットは、ラーメン記事が増えてきたから「ラーメン」カテゴリを作ってそこに移そう、となったときにカテゴリを変更すると、

http://sample/ramen/ramen-shop001/

のようにパーマリンクが変わってしまうことです。

1記事くらいなら問題ないかもしれませんが、全体的にカテゴリを整理したくなったときはどうでしょう。カテゴリを移動させるたびパーマリンクが変わり、都度301リダイレクトをするという面倒なことになってしまうのです。

ところが、元々カテゴリ名を含めていなければ、

http://sample/amen-shop001/

となり、どう移動させようが、パーマリンクが変更されずに済むのです。

とはいえ、パーマリンクについては、いろいろな考えがあります。「SEO効果を最大にするWordPressのパーマリンク設定方法」も参考にしてみてください。

デメリット

パーマリンクの変更には、以下のようなデメリットがあることをよく理解しておきましょう。

・内部リンク及び外部リンクからのリンク切れ(404エラー)。
・SNSの数字がリセット。
・検索順位がリセット。
どれも手痛いですね。長く運営していて、ユーザーにも検索エンジンからも評価をもらっているのであればなおさらです。

しかし、上手にやれば最低限の損害に抑えることができます。そのために絶対に必要な処置が「301リダイレクト」なんです。

301リダイレクトとは

リダイレクトは、旧ページにアクセスしたときに自動的に新ページへリダイレクト(自動でリンク)されるため、リンク切れを防ぐ役割があります。

いくつかの種類があるのですが、パーマリンクを変更したのであれば301リダイレクトを強烈におすすめします。

301リダイレクトは「恒久的」という意味があり、この先もずっとこのURLに変更になりますという意味。そのため、検索エンジンの評価も新URLに引き継いでくれるのです。Googleも301リダイレクトを提唱しています。

ただし、完全ではありません。確実に検索順位をキープできるかといえば、そんな保証はなく、順位が下落することもありえるようです。とはいえ、現時点ではベストな方法であり、SEOを意識するのであれば絶対に設定しておきましょう。

似た方法に、「302リダイレクト」があります。こちらは「一時的」という意味であり、検索エンジンの評価は引き継がれません。間違えないように、ご注意ください。

スポンサードリンク

301リダイレクトの方法

主には、プラグインを使ったやり方とhtaccessを使ったやり方があります。

プラグイン

あまりWordPressに詳しくない人や自信がない人は、プラグインを利用してください。パーマリンクの変更は、リスクが伴いますので、プラグインを利用したほうが安全です。以下ページが参考になりますよ。
Redirectionプラグインの使い方|AdminWeb

Simple 301 Redirectsプラグインの使い方|AdminWeb

htaccess

このページでは、htaccessを使った方法を詳しく紹介します。面倒だしリスクが高いですが僕は、htaccessを採用しました。

理由は、プラグインを使用するリスクの方が勝ったからです。プラグインは、WordPress&プラグインのバージョンアップや何かしらの仕組みと噛み合なかった場合の不具合が心配です。

301リダイレクトは、短期的に仕掛けておけばOKというものではありません。半永久的に仕掛けておくのがベターです。そのため、何かのきっかけで、301リダイレクトが効かなくなるのが恐いのです。

検索エンジンからのアクセスを失うとつらいですよ。

パーマリンクの変更の手順

ここまでの情報を踏まえたうえで、WordPressで作られた記事のパーマリンクを変更する手順を紹介します。

まず、全体的な流れに目を通しておくことをおすすめします。事前に心構えをしておいたほうが、何かあった場合もあわてずに対応できます。

それと、時間がかかってしまった場合、ユーザーがアクセスできなくなる恐れがあるため、深夜や早朝など、アクセスが少ない時間帯に行うのがおすすめです。

それでは、順にみていきましょう。

(1)ファイルのバックアップ

何が起こるか分かりませんので、WordPressの全データーのバックアップをとっておきましょう。

以下ページを参考に、phpmyadminからデーターベースのデーターを丸ごとバックアップするのがおすすめです。

(2)現ページのURLを抽出

リダイレクトのための.htaccessへの記述を表計算ソフトとget_postsで効率化|ウェブシェフ」のページを参考に現URLの一覧を取得します。こらは、301リダイレクト作成する際に必要です。

それに、パーマリンク失敗して元に戻したくなったときなどにも、手がかりになるかもしれません。

(3)管理画面でパーマリンク構造を変更

管理画面/設定/パーマリンクより、パーマリンク構造を変更します。

僕の場合は、「ドメイン/投稿名/」としたいので以下のように設定。


これで全ページのパーマリンクが変更されました。

(4)パーマリンクの変更を確認

正しくURLが変更されているか、いくつかのページにアクセスして確認してみましょう。正しく表示されれば、パーマリンクは上手く変更できているということになります。しかし、ここからが大事ですよ。

(5)旧URLにアクセス

次に旧URLにアクセスしてみましょう。


当然ながらページが表示されず、404エラーになっていると思います。ということは、検索エンジンや外部リンクからあなたのブログに訪れたユーザーは、すべて404エラーになっています。

しかし、「WordPressパーマリンクの変更に踏み切りました。悩んだ理由と、所感|Ateitexe」によるとWordPressはパーマリンクを変更すると自動的に301リダイレクト設定してくれる機能があるようです。もしそれが効いていればこれで終了です。大丈夫だった人は(10)に進んでください。

僕の場合はダメでした。たぶん、ほとんどの場合がそうだと思っておいてください。

(6)新URLを抽出&パーマリンクを元に戻す

(2)と同じ要領で、新URLを抽出します。

次に301リダイレクトを作成しますので、時間がかかってしまった場合のために(3)で行ったパーマリンク構造を元に戻しておきます。

(7)301リダイレクトを作成

次に、301リダイレクトを作成します。

まず、301リダイレクトの記述方法を見ておきましょう。

ここでは、簡単に紹介しますので詳しくは「301リダイレクトについて、必要性と設定手順をまとめてみた|ゆとり世代のブログ運営論」を参考にしてください。

ドメインやディレクトリ単位などいくつか方法がありますが、個別記事の方法について以下に書いておきます。やり方は、2種類。どちらでもOKです。

その1「mod_Rewrite」が利用できる場合の設定手順

RewriteEngine on
RewriteRule ^old.html$ http://www.example.com/new.html [R=301,L]

その2「mod_Rewrite」が利用できない場合の設定手順

Redirect 301 /old.html http://www.example.com/doc/new.html

old.htmlが旧URL、http://www.example.com/new.htmlが新URLです。
(htaccessがルートにある場合です)

当ブログが利用しているエックスサーバーでは、なぜか、その1が効かなかったので、その2でやりました。

この要領で、全パーマリンクに関する301リダイレクトを作成します。

一つずつ手動で作成してもかまいませんが、時間がかかります。そこで、(2)と(6)で取得した新旧のURL一覧を使います。

まず、旧URL一覧をエクセルかGoogleスプレッドシートなどの表計算ソフトにコピー&ペーストしてください。

もう、お気づきかもしれませんが、表計算ソフトなら検索置換で一気に変更できるため楽なのです。

以下のような感じです。


(A)Redirect 301+半角スペースを入れる。(B)検索置換でドメインを抜いた状態の旧URLを入れる。(C)半角スペースを入れる。(D)新URLを入れる。これを「&」でつなぐ数式「例:=A1&B1&C1&D1」とすると301リダイレクトの記述の完成です。

僕の場合は、カテゴリ名を抜くだけだったので、これだけでしたが、投稿名などを変更する場合は、適時修正しましょう。

(8)管理画面で再びパーマリンク構造を変更

(3)と同じ要領で、再びパーマリンク構造を変更します。(4)と(5)も同様に確認してみてください。

(9)htaccessに貼付け

(7)で作った301リダイレクトの記述をコピーして、サーバーのルートにあるhtaccessにペーストします。作業する前に必ずhtaccessのバックアップをとっておきましょう。

(10)301リダイレクトができているか確認

旧URLにアクセスして、新URLにリダイレクトされているか確認してみましょう。

さらに、確実に301リダイレクトができているかを「リダイレクト検証ツール|SEO 検索エンジン最適化」で調べます。

ステータスが、「301 Moved Permanently」となっていると301リダイレクトできています。

失敗するようであれば、301リダイレクトの記述やhtaccessの場所などを見直してみてください。場合によっては、プラグインを試してみましょう。

解決の手助けとして、以下のサイトもヒントになるかもしれません。
WordPressパーマリンク変更作業でやったこと(301リダイレクト方法あれこれ)|nekonomemo.net

WordPress向けSEO上級編:適切なパーマリンクへの変更と複数言語への対応|Web担当者Forum

[WordPress] パーマリンク変更でリダイレクト|prasm

(11)ブログ内におかしいところがないかチェック

最後に、おかしいところがないか全体的に見ておきましょう。僕の場合はありました。それは内部リンク用のブログカードです。

リンク先のURLより画像などを取得しているのですが、パーマリンクが変わったため正しく取得されていませんでした。ページのリダイレクトはできても、こういった読み込み系は、エラーになる可能性があるので注意してください。

幸い数が少なかったので、手動で貼り直してました。数が多い場合は、データーをエクスポートして、検索置換で変更するのが手っ取り早いでしょう。これはこれで、慎重にやらなければいけませんが。

パーマリンクを変更したその後

1週間後くらいに検索エンジンを見てみると、新URLでインデックスされていました。ただ、PV数が減ってきています。いくつかのキーワードでは、順位が落ちてますね。

ただし、パーマリンクの変更が直接影響しているかどうかは分かりませんし、カテゴリの変更も大幅に行ったため、いろんな要因があると思ってます。しばらく、経過を見守りたいと思います。

とはいえ、今回のパーマリンクの変更は、本当にやってよかったと思ってます。カテゴリを柔軟に変更できるようになったのは大きいですね。

残念なことは、SNSの数値がリセットされたこと。すべてが0になるとちょっと寂しいです。

これまで、いいね!やシェアをしてくださった方には、申し訳ないですが、これからもよろしくお願いします。

まとめ

ちょっと長くなりましたが、パーマリンク変更&301リダイレクトの流れをおさらいしておきます。

(1)ファイルのバックアップ
(2)現ページのURLを抽出
(3)管理画面でパーマリンク構造を変更
(4)パーマリンクの変更を確認
(5)旧URLにアクセス
(6)新URLを抽出&パーマリンクを元に戻す
(7)301リダイレクトを作成
(8)管理画面で再びパーマリンク構造を変更
(9)301リダイレクトをhtaccessに貼付け
(10)301リダイレクトができているか確認
(11)ブログ内におかしいところがないかチェック

以上、参考になりましたら幸いです。

追記

その後、2ヶ月経過時点での結果を「900記事で実証!301リダイレクトはSEOへの影響はない」にもまとめています。タイトルの通りなんですが、大きな失敗はありませんでした。