WordPressをインストールしてブログを作りはじめた時のこと、パーマリンクと呼ばれるそれぞれの記事のアドレスが日本語になっていることに気付きました。
「WordPress側がデフォルトで設定してるくらいだから、これが最善のやり方に違いない!」と勝手に決めつけて投稿すること40数件。ある日、思い立ってほんとにこれでいいのか調べてみるとあまりよろしくないことが判明してしまいます。
日本語URLをエンコードすると
http://workerblog.info/category/%E4%BC%9A%E7%A4%BE%E3%80%81%E4%BB%95%E4%BA%8B%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
のようになってしまいアドレスが長くなってしまうだけでなく、SNSなどで正しくリンクされない場合があるとのこと。
試してみたところ、リンク切れにはならなかったので最近では対策されてきてはいるものの、アドレスが長くなってしまい、扱いにくいことに変わりはないです。
あと、日本語URLだと「SEO的に有利」、とされていた時期もあったようですが、これも今となってはあまり関係なかったりします。
パーマリンクはどのようなアドレスにしたらいいの?
ということで新たに作るページ名は英語にすることにしました。後からタイトルを変える際にもこの方が便利。では、どのようなページ名がいいかと言うと、意見が分かれていて決定的なものは存在しませんでした。
WordPressのメニューから「設定」→「パーマリンク設定」の画面にいくと、デフォルトのパーマリンクを設定することができます。

ここが投稿名になっていたために日本語のアドレスが大量に作られてしまという悲劇が起こってしまった…。どうやらバージョンやテーマによってデフォルトが異なっていて、たまたま自分の環境では日本語URLになっていたようです。
設定によってはパーマリンクにカテゴリーを含んだり、記事番号にすることもできます。以前はこれらがデフォルトになっていたり、いくつか推奨するような内容の情報を見かけましたが、カテゴリーはブログを作り続けるうちに変更になることもあるので却下、記事番号は引っ越しなどで変わることもあるのでこちらも却下としました。
また、これらを組み合わせたパーマリンクも上記と同じ理由により却下です。
結果的に一番いいとされているのは、その記事に使用されている言葉を英訳して-(ハイフォン)や_(アンダースコア)で繋げるというものです。
サイトによってはどちらかに決めて使っていることが多いようでしたが、単語として繋がっているものは-(ハイフォン)、意味合いが異なるものは_(アンダースコア)というように使い分けることにしました。
例えば「WEBクリエイターやITエンジニアになって独立する方法」という記事では下記のようなアドレスになります。
http://workerblog.info/web-creator_it-engineer/
もちろん自動でという訳にはいかないので記事を投稿する度に「パーマリンク」の横の「編集」ボタンを押して手動で入力。
既に日本語URLで作ってしまった記事を英語にする
新しく投稿する記事についてはパーマリンクを英語にすることにしました。今までの記事についてはしょうがないのでほっとくつもりでしたが、やはり気分が悪いし、日本語URLのせいでSEO的に不利になる可能性もあるから何とかしたい。
アドレスを変更するには「投稿一覧」からひとつづつ「編集」でパーマリンクを英語にしていくしかないです。その際に心配なのが既に検索エンジンに登録されてしまっていたり、SNSからリンクが貼られている場合。
自動的に転送されることを期待したいところですが、そうは簡単にいきませんでした。パーマリンクを変更すると前のアドレスは無情にも「Not Found」になります。
そこでプラグインで何とかしようと探してみると使えそうなのは下記4つ。
・Redirection
・Simple 301 Redirects
・SEO Redirection Plugin
Permalink Redirect
Permalink Redirectは先ほどのようにパーマリンクにカテゴリーや記事番号を含むような法則性がある場合に使うと、一括で転送できてすごく便利なのですが、今回は自分で翻訳した英語を組み合わせてパーマリンクを作っているので残念ながら使えない。
あとこのプラグインを使うためには一度ダウンロードしてファイルを編集してからアップロードして取り込むといったちょっと面倒な作業が必要となります。
Simple 301 Redirects、SEO Redirection Plugin
この2つは知名度的に今一つでRedirectionに比べると情報が少なかったため、先にRedirectionを使ってみることにしました。
結果的にRedirectionでうまくいったので残念ながら試す機会がないまま現在に至ります。
Redirectionで日本語URLがうまく転送できなかった人がSimple 301 Redirectsで回避できたという情報を見かけたのでどちらでも大丈夫だったかもしれないです。
Redirection

最終的に使ったのがこのプラグイン。懸念された日本語URLもアドレスバーからコピペしたせいか、最新バージョンでは特に問題は発生していないです。
1ページずつ転送元と転送先を入れていかなければならないので手間はかかります。記事の数だけ繰り返すのは結構面倒ですけど、法則性がないので仕方ありません。
これはSimple 301 RedirectsやSEO Redirection Pluginを使っても多分同じはず。
インストールは「プラグイン」→「新規追加」からキーワード検索しておこなってください。有効化すると「ツール」の中に現れます。
あとはひたすら「ソース URL」に元の日本語URL、「ターゲット URL」に変更後のURLを入れて「転送ルールを追加」していきます。「グループ」は「転送ルール」のままでOKです。
「ターゲット URL」はドメイン以降を入れるのが正式な使い方ですが、そのままURLを全部入れてもドメイン部分は省いてくれます。
気を付けなければならないのが、先にパーマリンクを変更してしまって元の日本語URLが分からなくなってしまうこと。なので「投稿一覧」から記事ページを開いたらシフトキーを押しながらパーマリンクのURLが書かれている部分をクリックして新しいタブで変更前のページを表示しておきます。
パーマリンクの横の「編集」ボタンを押してURLの変更が完了したら、「更新」ボタンを押し、再びパーマリンクのURLが書かれている部分をクリックします。
そうするとブラウザのタブに元の日本語URLと変更後のURLが表示されるのでそれぞれのアドレスバーからコピーしてRedirectionに設定します。Redirectionも先に別のタブで開いておいた方が効率がいいです。
記事ページ以外のリダイレクト
記事ページ以外に日本語URLが設定されているのがカテゴリーページ。「投稿」→「カテゴリー」から「スラッグ」を英語に変更します。

こちらも記事ページ同様、Redirectionに設定していきます。カテゴリーページは意外と検索エンジンに登録されていることが多いので、面倒臭がらずに英語に変更したらリダイレクトするようにしておいた方がいいです。
他にはサイト内にリンクしたページもリダイレクトしてくれない場合があるのできちんと更新しておきたいところ。
検索するのに便利なプラグイン、Search Regexを使って
http://workerblog.info/%
のように検索をかけると日本語URLにリンクしたページが検索できます。%だけで検索してみてもいいかもしれないです。その場合Wikipediaなどにリンクした部分も検索されるので間違って直さないように。
リダイレクトの確認
先ほどの元の日本語URLのタブをリロードしても何故かリダイレクトされないのでアドレスをコピーして新しいタブに貼り付けると確認することができます。
変更後のURLを間違えた場合に修正するとすぐには反映されないのでF12キーを押してChromeのデベロッパーツールを出した状態でリロードボタンを右クリックし、「キャッシュの消去とハード再読み込み」を実行してみてください。
きちんとリダイレクトされているか確認する場合はリダイレクトツールを使う方法もあります。
一応検索エンジンで自分のブログの記事を検索し、きちんとリダイレクトされてページが正しく表示されるか確認しておくとさらに確実です。
サイトマップを用意している人は忘れずに再構築しておいてください。