[wordpress]パーマリンクの設定について考えてみた
wordpressでサイトを作った時に、最も悩ましい問題、それはパーマリンクの設定だと思います。パーマリンクの設定とは、各ページのURLの付け方を決めることです。サイトを作った後にパーマリンクの設定を変えるということは、各ページのURLが全部変わってしまうということなので、とても影響が大きいのです。ここでは、このパーマリンクの設定について考えていきたいと思います。
パーマリンクを設定しないとどうなる?
wordpressをインストールして、いきなり記事を書き始めるとします。すると、その記事には、「?p=123」というようなURLがつきます。なんということでしょう。とてもださいです。
まぁ、見た目がいまいちなのですが、他にもいろいろといまいちです。「?p=123」の数字の部分は、記事のpost_idを表してします。つまり、投稿IDです。この投稿IDというのはやっかいで、はじめの記事から1、2、3とつくわけではありません。実際にはとびとびの数字がつきます。
投稿IDの数字が飛ぶのは、投稿のリビジョンにも投稿IDがつくからなんですね。リビジョンは自動で作られるので、投稿IDの数字は知らない間にどんどん飛んでいきます。
リビジョンを制御するプラグインを使うという方法もありますが、めんどうですね。リビジョンを使いたくないならともかく、URLをいじるためだけなら、プラグインを使うよりそもそもパーマリンクの設定を変えた方がいいですね。それに、投稿を削除したり、途中で下書き投稿をした場合も、当然数字は飛びます。リビジョンを使わなくても、投稿IDの数字は飛んでしまいます。
ということで、記事数とは全く関係のない数字がURLになるといういまいちさ。これは回避するしかありません。
パーマリンクでどんな設定ができる?
例えば、wordpressの日本語サイトに、wordpressに関する情報を発信するブログがあります。「すばらしき10年間」という記事がありました。この記事のリンクは次のようになっています。
http://ja.wordpress.org/2013/06/05/ten-good-years/
「http://ja.wordpress.org/」の後が、パーマリンクのルールに基づいて作られたものです。年、月、日、そして、投稿名となっていますね。
パーマリンクで設定できる項目は、公式サイトの「パーマリンクの使い方」に掲載されています。将来変更されるかもしれませんが、載せておきましょう。
%year%、%monthnum%、%day%、%hour%、%minute%、%second%、%post_id%、%postname%、%category%、%author%、%tag%
どれが何を表しているか、というのは英単語からなんとなくわかると思います。これらを複数組み合わせて、パーマリンクの設定を行います。上の「wordpressの日本語サイト」であれば、「/%year%/%monthnum%/%day%/%postname%」と設定されていると予想されます。
消去法でパーマリンクの設定を考える
ここからは、上で紹介したパーマリンクのタグのうち、使わないものを削除していきたいと思います。
まず、%author%ですが、これは複数の人でwordpressを作成してない限り使わないでしょう。これをパーマリンクに使う場面というのはかなり限定されると思います。
続いて、%tag%です。これはちょっと要注意です。というのは、パーマリンクに%tag%を使用したとしても、URLに使われるタグは一つだけなのです。しかも、使われるタグは、タグの固有IDが一番小さいものになります。
個別記事に複数のタグがついていることは多いと思います。しかし、その中で固有IDが一番小さいものを把握しているでしょうか。普通はしていないと思います。ということはどういうURLになるかわからないということです。そのため、%tag%は使わない方がいいでしょう。
そして、%post_id%についてですが、これははじめに書いた通り、記事数とは異なる数字がつくので、個人的には使いたくないです。
カテゴリーをパーマリンクに使うことについて
もうタグはほとんど残ってません。日付系のものと、投稿名、そしてカテゴリーしかありません。まずは、カテゴリーについてみていきましょう。
実は、%category%も、%tag%と同様のことが起こります。複数のカテゴリーに入っている個別記事には、固有IDが一番小さいカテゴリーが選択されてしまうのです。ただ、属するカテゴリーはいつも一つ、という運営にしていれば問題ないかなと思います。
また、SEO的には、URLにキーワードを入れやすくなるし、URLからどんな記事かが想像しやすくなるのもいいですね。
一つのブログに、複数の、しかも、互いにあまり関係のないカテゴリーが存在している場合には、カテゴリーをURLに含めることでページの内容がわかりやすくなるかもしれません。
ただし、カテゴリーだけでは記事を特定できないので、他のタグも使ってパーマリンクを設定する必要があります。特定するためには、日付系か投稿名と組み合わせる必要があります。
また、パーマリンクの設定を変えなくても、カテゴリーを変えてしまえばURLは変わってしまいます。パーマリンクにカテゴリーを入れると、将来ブログに記事が増えてきた場合に、カテゴリーを見直すことが困難になってしまう点には注意が必要です。
投稿名をパーマリンクに使うことについて
さて、次は投稿名について考えてみます。まず、パーマリンクの設定に投稿名を使うと、記事を書いたときにタイトルがパーマリンクに設定されます。
ここで一つ考えないといけないことがあります。それは、投稿名リンクを日本語のままつかうかどうかです。
もし、上で紹介したwordpressのブログで、「/%postname%」とパーマリンクの設定をしていたとすると、デフォルトのURLは次のようになります。
http://ja.wordpress.org/%E3%81%99%E3%81%B0%E3%82%89%E3%81%97%E3%81%8D10%E5%B9%B4%E9%96%93
URLに日本語そのままを使うことができないので、このようにとても長いものになってしまいます。長くなっても構わないという意見もあるかもしれませんが、少しかっこ悪いです。
これへの対応策として、記事を書くたびにパーマリンクを英語に設定しなおすという手があります。が、これもめんどうです。それに、英語に自信がないととても大変です。綴りが違う、文法が違う、文法的にはあっているけど意味が通じない、そんなURLにしてしまったら、あとあと大変です。というか、恥ずかしいです。
SEO的には、URLにキーワードを入れやすくなるのでいいのかもしれませんが、投稿名は少し手間が増えてしまいます。
ちなみに、新しく作った記事の投稿名が過去のものとかぶっていた場合、パーマリンクには連番号がつきます。なので必ず投稿名でURLを特定できるようになります。
日付系をパーマリンクに使うことについて
最後に日付系をパーマリンクに使うことについて考えてみます。
普通に考えると、「/%year%/%monthnum%/%day%/」か「/%year%%monthnum%%day%」というパーマリンクが思いつくはずです。が、実はこれはうまくいきません。
公式サイトには、次のように書かれています。結構下の方にこそっと書いています。個人的にはかなりネックになる部分だと思うのですが。
一日に一投稿しか公開しないので %year%%monthnum%%day% というパーマリンクを使用したいと思うかもしれませんが、このリンクはその日の全投稿のアーカイブとして生成されることに注意してください。個別投稿へのリンクは、少なくとも %year%%monthnum%%day%%hour% にする必要があります。
つまり、年月日だけでは、個別記事を特定することができず、その日に書かれた記事一覧になってしまうということです。使用するテーマによってはアーカイブになっても問題ないかもしれません。しかし、ここはちゃんと設定しておきたいところです。
wordpressではないですが、例えばはてなダイアリーでは、年月日に時分秒を組み合わせたパーマリンクになっています。こうすれば確実に特定することができますね。
パーマリンクへの思い別、おススメ設定
というわけで、こういう思いの人はこういうふうに設定してみてはどうでしょうか、という提案をまとめてみます。
URLが長くなってもいいのでSEO的に最強にしたい人は
ブログの内容が固まっていて、カテゴリーを変えないと思う人は、「/%category%/%postname%/」、将来カテゴリーを見直すかもしれないという人は、「/%postname%/」がいいでしょう。上でも書きましたが、デフォルトでは投稿のタイトルの日本語がそのままURLになってしまうので、それが嫌な人は手動で英語になおしましょう。
手間をかけずとにかくすっきりしたURLにしたい人は
日本語でも英語でも投稿名を入れるとURLは長くなります。URLはとにかくすっきりさせたいという人には、「/%year%/%monthnum%/%day%/%hour%%minute%%second%/」がいいと思います。年月日の間の「/」はお好みですが、月別アーカイブのページがあるなら、年月日の間に「/」があった方がいいと思います。時分秒の間には、アーカイブはないと思うので、「/」も不要だと思います。
このサイトも、この記事を書いている現在は、「/%year%/%monthnum%/%day%/%hour%%minute%%second%/」という設定にしています。個人的にはこれが一番楽ですっきりしているので気に入っています。