WordPressのパーマリンク変更等によるリダイレクトまとめ
WordPressのパーマリンクを変更するとURLが変わってしまいますので、基本的には途中でパーマリンクは変更しない方が良いのですが、WordPressはだいぶ前から自動的にリダイレクトするような形になっていますので、変更しても特に問題は無い様にも思います。
パーマリンク変更時に404エラーを返すのではなく301リダイレクトするようになったのは、おそらくWP2.7か2.8頃からだったと思うのですが、どういった場合にリダイレクトされるのか良く分かっていないので、まとめておきます。
WordPressでURLを指定してリダイレクトしたい場合は、Redirectionが便利です。
WordPressによる自動リダイレクト設定
WordPressがどのようなケースの時にリダイレクトしてどのようなケースの時に404を返すのかを調べる為にはどこを見れば良いのかが良く分かりませんので、実際のケースに当てはめて実験してみる事にします。
ちなみにWordPressをインストールした際の.htaccessには以下のような記述があります。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
コレは「/」と「index.php」に関するリダイレクト設定ですよね?
WordPressはどのようなケースでリダイレクトするのか
色々と実験してみるとわかりますが、リダイレクトは、WordPressのバージョン、サーバ、テーマ、プラグイン等によって挙動が違う事が分かります。ですので、実際にパーマリンクを変更するような場合は、自分の環境でどういう処理になるのかと言う事を必ずチェックしてください。
以下のリダイレクト状況は、あくまで私の環境での実験結果という事になります。
また、リダイレクトが301なのか302なのかという事も重要になってきますが、軽く調べた限りでは全てのリダイレクトが301でしたので、WordPressのリダイレクト=301リダイレクトと考えて良いのかもしれません。
今回は以下のURLで説明していきますが、他のURLやサイトでも同時に実験しています。
http://www.seotemplate.biz/blog/wordpress-tips/1748/
wwwのありなし
リダイレクトされます。
http://seotemplate.biz/blog/wordpress-tips/1748/
wwwのありなしは一般設定に記述してあるURLによって変わってきます。この欄にwwwが有る場合は、無しでアクセスすると有りに転送されます。無しの場合は有りに転送されます。SEO上どちらが有利という事はありませんので、インストール時に好きな方を選んでください。
index.phpのありなし
リダイレクトされます。
http://www.seotemplate.biz/blog/wordpress-tips/1748/index.php
index.phpでアクセスしても無しに転送されます。ただし、index.htmlでアクセスした場合は、404の場合と「/index.html/」に転送される場合がありました。同じサーバーで同じ3.2なのに異なる挙動を見せていますので、この辺は利用しているテーマやプラグインの問題なのでしょうか。
スラッシュのありなし
リダイレクトされます。
http://www.seotemplate.biz/blog/wordpress-tips/1748
URLの最後のスラッシュは有っても無くてもどちらかのURLに転送されます。
www、index.php、スラッシュの有り無しについてはWordPressのバージョンが多少違っていたりテーマやプラグインに関係なく転送されるはずです。
テーマやプラグインによって挙動が変わるケース
パーマリンクを変更した場合
基本的にはリダイレクトされます。
http://www.seotemplate.biz/archives/1748/
http://www.seotemplate.biz/?p=1748
パーマリンクを変更した場合のリダイレクト状況が最も気になる部分だと思いますが、URLにIDを含まない場合でもリダイレクトされますので、基本的には旧URLから新URLに転送されると考えて良いでしょう。
ただし、リダイレクトされない場合もありますので注意が必要です。例えば「/archives/%post_id%」という設定をしていて、それを「/%year%/%monthnum%/%postname%/」に変更した場合には転送されませんでした。
また、パーマリンクによっては404ではなく異なるページに転送されるようなケースも見られ、どんなパーマリンクにしても転送されるというわけではありませんのでご注意ください。
URLの一部を削除
基本的にはリダイレクトされます。
http://www.seotemplate.biz/blog/1748/
このように本来のURLから一部を除いた状態でアクセスしても転送されます。「/%postname%/」を使っている場合でも転送されました。
しかし、これは、パーマリンクやテーマ、バージョンによって挙動が違い、場合によっては404になります。
URLに不必要なものを追加
そのままのURLで表示される
例えば個別記事を表示してそのURLの最後に「/1/」などの不必要な要素をプラスした場合、リダイレクトや404という形ではなく普通に200を返して該当のページが表示されます。しかし、「/1/1/1/」などのようにディレクトリの階層を増やすと404を返すようになります。
http://www.seotemplate.biz/blog/wordpress-tips/1748/1/
http://www.seotemplate.biz/blog/wordpress-tips/1748/1/1/
途中に増やした場合は転送されます。
http://www.seotemplate.biz/blogsssssssss/wordpress-tips/1748/
http://www.seotemplate.biz/blog/wordpress-tips/aaa/1748/
仕組みが良く分からないのですが、面白いですね。ただ、通常URLの一部が削除される事はあってもプラスされる事は無いと思いますので、転送されなくても気にする必要はないでしょう。
まとめ
他にも色々なケースが考えられますが、キリが無いのでこの辺にしておきます。結論としては、パーマリンクは途中で変更しない方が良いと思います。
変更しても基本的には、リダイレクトされるケースが多いのですが、環境や条件によって変わる部分が大きく、例え自分が確認した記事ではリダイレクトされていたとしても、固定ページやカテゴリページ等を含めた全てのページで同じように転送されているとは限りません。
また、301リダイレクトだとしても旧URLから新URLに100%のリンクジュースを渡すとは限りません。別ドメインへの301の場合は、80~85%のジュースが渡ると考えるのが一般的です。同一ドメインの場合は100%渡るような気がしますが、それは検索エンジンにしかわからない事です。
サイト開設まもなかったり、一切被リンクが付いてなかったり、どうしてもパーマリンクを変更せざるを得ない状況になった場合には変更しても構いませんが、なんとなくというような軽い気持ちでは変更しない方が良いでしょう。
個人的にはデフォルト状態や「/%postname%/」にして日本語URLにする事は好きではないのですが、パーマリンクによってSEOに影響が出ることはまずありませんので、サイト開設時に好きな物を選んでおけば良いと思います。
途中で変更した場合は、できる限り色々なURLでどのようにリダイレクトされているのかを確認してください。最悪の場合、特定のキーワードの検索順位が大きく下落したり、アクセス数が大幅に減少する可能性があります。
関連記事
- WordPressのパーマリンクでURLを日本語化
- 301リダイレクトと302リダイレクト、meta refreshの設定方法
- WordPressサイトが突然真っ白になった
- WordPressをカスタマイズしてブログのPVをアップさせる方法
- wwwやindex.htmlなど内部リンクのURLは統一する










[...] [...]