WordPressのパーマリンクをSEOの影響を受けずに簡単に変更する方法

WordpressのパーマリンクをSEOの影響を受けずに変更する方法

このブログをはじめたときは、SEOの知識もなかったので、パーマリンク(記事のURL)を重複しないようにと、
「月と投稿名」の形式で設定していました。

http://dot1.tv/wp/2017/04/itunes-music-delete/

という感じです。なんかやぼったいですし、更新して新しい情報にしても古い感じがしてしまいますね・・

そこで、googleの推奨するURL構造「できるだけシンプルにわかりやすくすること」というルールにのっとって、パーマリンクを変更したいと思います。

どのようなパーマリンクが理想か?

「http://dot1.tv/wp/カテゴリー/投稿名」の形式が構造的にも、またURLを見てページの情報が連想しやすいので理想的です。

ですが、カテゴリーは構造を変更したい場合がよくあるので、今回は「http://dot1.tv/wp/投稿名」の形式にします。

上記のページですと、http://dot1.tv/wp/itunes-music-delete/にします。

ホームページを立ち上げる前から構造をしっかりと決めて、カテゴリーの変更がない場合は「http://dot1.tv/wp/カテゴリー/投稿名」の形式にした方がよいでしょう。

パーマリンクの変更手順

では、実際にパーマリンクを変更するための手順です。
パーマリンクを変更することの最大の障害はURLが変わってしまうこと

当然ですが今までの被リンク(他のウェブサイトやFacebook等のSNSからのリンク)やブックマーク等は古いURLにアクセスします。パーマリンクを変更するとURLが変わるので、アクセスされても「ページが見つかりません」となってしまいます。

それを防ぐために、古いURLにアクセスされた際に自動的に新しいURLにアクセスするようリダイレクト(自動転送)を行います。

リダイレクト(自動転送)

リダイレクトすることにより、googleにこっちのURLに変ったよと通知するとともに、ユーザーも今まで通りページが表示されるのでURLが変わったことを意識させることもありません。

Permalink Redirect(プラグイン)のダウンロード

まず初めに、古いURLから新しいURLへ自動転送(リダイレクト)してくれるPermalink Redirect というプラグインをダウンロードします。

WordPress内のプラグイン検索では出てきません。
ZIP版でご説明しています

Permalink Redirect(プラグイン)の書き換えとアップロード

ダウンロードしたPermalink Redirectの一部を書き換えます。

リダイレクトには301リダイレクトと302リダイレクトがあり、用途が違います。

リダイレクト方式301リダイレクト302リダイレクト
意味合い恒久的転送一時的な転送
用途・ドメイン移転
・SSL設定後の転送
・wwwの有り無しの統合
・ページのA/Bテスト
・モバイルページ転送

Permalink Redirectプラグインの初期設定は「302リダイレクト」となっているので、「301リダイレクト」に変更します。

1:ダウンロードしたプラグインの「ylsy_permalink_redirect.php」を開きます。

2:406行目の「$status=301」を「$status=302 」に変更します。

406行目の「$status=301」を「$status=302 」に変更

3:ダウロードした「permalink_redirect-2.0.5」フォルダごとwordpress内の/wp-content/plugins/にアップロードする。
※アップロード方法がわからない方は、「プラグインインストール FTP」等で検索してみてください。

パーマリンク設定にてパーマリンク構造を変更する

wordpressの「ダッシュボード」>「設定」>「パーマリンク設定」に移動して、現在の構造をコピーする。

wordpressの「ダッシュボード」>「設定」>「パーマリンク設定」に移動して、現在の構造をコピー

「投稿名」を選択して「変更を保存」。保存したら旧URLはエラーになるので、一連で下記作業も行いましょう

Permalink Redirectプラグインの有効化と古いパーマリンク構造の設定

Permalink Redirectプラグインを有効化し、「設定」>「Permalink Redirect」にて「Old Permalink Structures」の欄に、先ほどコピーした古いパーマリンク構造を貼り付けて「Update Option」を押して設定完了。

Permalink Redirectプラグインの有効化と古いパーマリンク構造の設定

もちろん直打ちで記入しても大丈夫です。

パーマリンク変更のテスト

設定完了後、古いリンクでアクセスしてみてテストしましょう。

正常に設定できていれば、新しいURLにリダイレクトされます。
お疲れ様でした。URLが短いとすっきりしますね!

301リダイレクトしておく期間

301リダイレクト設定はしたけど、いつまでこのままにしておけばいいの?という疑問が出てくるかと思いますが、こちらは色々調べてみると「できるだけずっと」が良いようです。404エラーが出ちゃダメってことですね。

特別な理由がない限り、そのままにしておきましょう。

パーマリンク変更時のトラブルと注意点

何事も変更には痛みが伴うもので、今回もトラブルが発生しました・・

add_options_page のエラー

上記の手順でパーマリンクの変更はうまくいったのですが、wordpressの管理画面にエラーが出るようになってしまいました。

Notice: has_cap がバージョン 2.0.0 から非推奨になった引数付きで呼び出されました。ユーザーレベルの使用は推奨されていません。代わりに権限を使ってください。 in /usr/home/XXXXX/html/wp/wp-includes/functions.php on line 4115
ERROR

Notice: has_cap がバージョン 2.0.0 から非推奨になった引数付きで呼び出されました。ユーザーレベルの使用は推奨されていません。代わりに権限を使ってください。 in /usr/home/XXXXX/html/wp/wp-includes/functions.php on line 4115

プラグイン入れてすぐのトラブルなので、原因はもちろんプラグイン。
「has_cap」という関数関連で問題を起こしているのもメッセージからわかるので、早速検索。
すると、「add_options_page」関数の引数が問題とのこと。

早速プラグインのファイルをもう一度確認すると、ばっちりありました。

Permalink Redirectで「has_cap」エラーとなる「add_options_page」

Codexで「add_options_page」を確認すると、第3引数は数字ではなく文字列で指定しなきゃいけないみたい。Codexにある通り、「5」の部分を「’manage_option’」に変更。

Permalink Redirectのadd_options_pageの第3引数を5からmanage_optionに変更

見事エラーは解消されました。古いプラグインにはありがちなようですね。

その他注意点

ブログカード等サイト内のURLから情報を取得しているものがあると、上手く表示出来ないでしょう。

そのため新しいURLに書き換えてあげる必要があります。これはかなり面倒ですが 「Search Regex(サーチ リジェックス)」 というwordpress内の文字列を置換してくれるプラグインを使って、URLの余計な部分を削除するしかなさそうです。

「Search Regex(サーチ リジェックス)」の使い方は https://techacademy.jp/magazine/7168 などをご参照くだささい。

この記事を書いた人

木村 太一

ドットワンの代表です。