WordPress向けSEO上級編:適切なパーマリンクへの変更と複数言語への対応
この記事は、「上級WordPress SEO」という、SEOmozのウェブセミナー「Mozinar」で僕が行ったセッションを補足するものだ。WordPressに固有なSEOの問題とその解決法について一緒に議論したセミナー参加者たちに感謝したい。
WordPressのSEOは盛り上がるテーマであり、ウェブセミナーの最中と終了後にすばらしい質問をたくさん受けたのだが、その場では答える時間がなかった。寄せられた関連質問を読んでみて、その多くが同じ話題に関するものだとわかったので、誰でも閲覧できるよう、そうした共通する質問への回答を今回の記事にまとめることにした。
もちろん、WordPressは非常に柔軟なプラットフォームなので、ここで取り上げるWordPressの問題には対処法がいくつもある。この記事では、僕が過去に実施した方法に絞る。
パーマリンクの適切な構造と留意点
ウェブセミナーの中で大きな話題となったのは、WordPressでは、ブログ投稿のパーマリンク(固定リンク)が数字以外で始めるものになっているとサイトの表示速度に重大な問題が生じる可能性がある点についてだった。ここでいう「パーマリンクが数字で始まる」とは、URLのうち、ブログ内での記事を識別するパス部分が数字で始まっているかどうかを意味する。
具体的な例で示すなら、次のようなことだ。
www.example.com/blog/2012/awesome-post/
↑ パーマリンクが数字で始まっている:ページがすぐに表示されるwww.example.com/blog/online-marketing/awesome-post/
↑ パーマリンクが数字で始まっていない:ページの表示速度に問題が生じる
この問題は、ブログの規模が大きくなるほど顕著になる。こういった問題が起きるのは、最初のディレクトリが数字ではない場合、呼び出す記事がデータベース内のどこにあるかを判断するのにWordPressが苦労するためだ。WordPressの開発チームは、古いバージョンについてはこの問題を公式に認めている。
しかし、多くの視聴者がすぐに指摘してくれたように、新しいバージョンのWordPressでは、この問題は完全に解消されている。
具体的には、WordPress 3.3以降なら、「投稿記事のURLを数字で始める必要がある」という話は忘れて、好きなパーマリンク構造を使うことができる。表示速度の問題は心配しなくてよい。
ウェブセミナーでは、WordPressのバージョンによるそうした違いについて言及しなかったので、ここで整理したいと思う。WordPress 3.3以降におけるパーマリンクのベストプラクティスは「/%category%/%postname%/」、あるいは単に「/%postname%/」となる。この2つはよりユーザーフレンドリーで、サイトの階層も合理的になるし、SEOもやりやすくなる。
もちろん、WordPressをまだアップデートしていなかったり、何らかの理由で3.3より古いバージョンから動かせなかったりする場合もあるだろう。新しいバージョンでは使えないプラグインが必要、プラットフォームを大幅にカスタマイズしているなどの理由だ。
そういった場合には、ブログ記事のURL(パーマリンク構造)の最初を数字以外にしているとサイトの表示速度に深刻な問題が生じる可能性がある。WordPressのアップグレードを完了するか、パーマリンク構造を変更して、利用者のためにも検索エンジンのためにもサイトを軽くすべき、というのが僕の提案だ。
パーマリンク構造を変更する適切な方法
パーマリンク構造を変更する場合、どのような手順がベストだろうか? WordPressの3.3より古いバージョンを使うしかなく、サイト表示速度の問題に対処するためパーマリンク構造を新しくする必要がある人がいるかもしれない。あるいは、サイト開設時にデフォルトのパーマリンク構造を使ったが、SEOやユーザーの使い勝手などの理由で今から変更したいというケースもあるだろう。
WordPressのパーマリンクを変更するということは、検索エンジンから見えるURLも変わるということを意味する。URLを変更する場合は常に注意が必要で、検索エンジンにおける露出に大きく影響する可能性があるため、適切な計画が求められる。
どんなケースであれ、古いURLからは新しいURLへの301リダイレクトを徹底することが望ましい。これは、ユーザー体験を良好にするというだけではなく、URLが変わったことを検索エンジンに適切に伝えて、掲載順位とリンクの価値を新しいURLに引き継ぐということでもある。
301リダイレクトを確実に行わないと、検索エンジンにおける露出をひどく損なう可能性がある。
WordPressは、非常に強力なURL書き換え機能を備え、簡単にURLをカスタマイズできる点ですばらしい。しかし残念なことに、URLのパーマリンク構造を変更すると、古いURLから新しいURLには必要な301リダイレクト(「永続的な変更」を意味する)ではなく、302リダイレクト(「一時的な変更」を意味する)が適用されてしまう。
こうしたWordPressのありがたくない挙動のせいで検索順位が落ちた例を、僕は少なからず見てきた。だからこそ、こんなことが読者のみんなには起きないようにと願う。
幸いにも、リダイレクトのルールに頭を悩ませたり、1つひとつ301リダイレクトを設定したりせずに済ませる解決策が2つある。
解決策その1:.htaccessファイルのコードを書き換える
パーマリンク構造を「/%postname%/」に変更する場合(このパーマリンク構造に移行する場合に限る)は、.htaccessファイルの書き換えで古いURLから新しいURLに301リダイレクトする方法がお勧めだ。
インストール済みのWordPressでは.htaccessファイル内で作業した方が速いこと、また、プラグインによる肥大化を避けられることから、僕はこのやり方が気に入っている。
.htaccessファイルのバックアップコピーを作成する。万が一うまくいかなかった場合、古いファイルをもう一度アップロードする必要があるためだ。
「Yoast」というSEOサイトのこのページを記事のいちばん下(コメント欄の手前)までスクロールして、「Generate Redirects」と書かれたオレンジ色のボタンをクリックする
このツールは、あなたのWordPressサイトのパーマリンク構造を「/%postname%/」に変更した場合に、古いURLからのリダイレクトのための.htaccessコードを自動生成するものだ。
フォームの各項目に入力していく。
- 「URL of your site」には、あなたのサイトのURLを「http://(またはhttps://」から記入する。
- あなたのWordPressサイトがサブフォルダ(たとえば/blogなど)にあるのならば、それを「Is your WordPress site running in a subfolder?」に記入する。
- 以前に使っていた(変更前の)パーマリンク構造を「Your old permalink structure」で選択する。
入力が終わったら「Generate Redirect」ボタンをクリックし、適切なコードを出力する
そのコードをコピーして、.htaccessファイルの最初にペーストする
WordPressのインターフェイス内からパーマリンク構造を「/%postname%/」に変更する。
記事の古いURLから新しいURLへのリダイレクトが301リダイレクトになっていることを確認する。たとえばこのページにあるような301リダイレクトの確認ツールを使い、古いURLを無作為抽出して検査する(繰り返すが、僕はユーザーであるという以外、リンク先とは何ら関係がない)。
この方法なら、あまり混乱を招くことなく.htaccessファイルの内容を書き換えられる。うまくいかない場合は、パーマリンク構造を元に戻して、.htaccessファイルのバックアップを再アップロードしておこう。
解決策その2:リダイレクト設定プラグインを利用する
「/%postname%/」以外のパーマリンク構造を使いたければ、ただ.htaccessを更新するだけでは話にならない。
代わりに薦めたいのが、WordPress用のプラグインを使って301リダイレクトの処理に必要な制御をするやり方だ。
もちろん、301リダイレクト用のプラグインは山ほど出回っているが、僕はジョン・ゴドレー氏の「Redirection」を推奨する(繰り返しておくが、僕は1人のユーザーに過ぎず、Redirectionプラグインともゴドレー氏ともそれ以外の関係は一切ない)。
このプラグインは、URLの変更を自動で301リダイレクトすることも、1つひとつ301リダイレクトを設定することもでき、正規表現に基づくリダイレクトのルールも作ることさえできる! しかも、すべての操作がWordPressのインターフェイス内でできるので、パーマリンク構造の移行を管理するには比較的簡単な解決策だ。
このプラグインをインストールしてからパーマリンクを変更する。変更完了後に、301リダイレクトが正しく実行されていることを確認しよう。
当然のことだが、URL構造を変更する際には、SEOにまつわるその他の問題も考慮する必要がある(それに関する議論はこちらの記事が参考になるだろう)。
しかし、ここで紹介した2つの解決策を利用すれば、インストールされたほとんどのWordPress環境で、パーマリンクの適切な変更に対応できるはずだ。
WordPressサイトを複数言語に対応させる
WordPressを複数の言語に対応させる最善の方法はどんなものだろうか。
これはウェブセミナー後によく受けた質問で、たとえば「www.yoursite.com/fr/」とするとコンテンツのフランス語訳を返し、www.yoursite.com/de/だとドイツ語に翻訳して返すというような場合に、どうすればいいのかという問題だ。
WordPressは、そのままの状態では複数言語のサイトやブログには対応していないが、複数の言語に対応したサイトを実現して運営する方法はいくつもある。たとえば次のようなものだ。
- 各言語1投稿
- 全言語1投稿
- 生成ページ上での翻訳管理
- 外部の翻訳サービスへのリンク
- 各言語1つの WordPress インストール
これら5つの方法について(メリットもデメリットも含めて)詳細な解説を提供している記事が、WordPress Codex日本語版の「WordPressで多言語サイトを作成する」の記事にあるので、そちらを参照してほしい。そのすばらしい説明をここで全部繰り返す必要はないだろう。
その代わり、複数言語サイトを作成する際の僕のお気に入りの方法を紹介しよう。「対応できる翻訳コンテンツを1つのページ、または1本の投稿記事にすべて含め、選択された言語ディレクトリ(/fr/や/de/)に応じてどれを表示すべきかをWordPressに自動で選ばせる」という方法だ。
ソリューション:WPMLプラグイン
僕はいつも、複数言語に対応するためにWPMLプラグインを使っている(1ユーザーという以外に特別な関係はない)。理由は以下の通りだ。
- WordPress内の同じページ内にすべての翻訳を置いておけるので、翻訳コンテンツを管理しやすい。
- 新しい言語を追加したければ、簡単に追加できる。
- すべてのページに「rel="alternate" hreflang="x"」が自動で組み込まれるので、複数言語に対応したSEOの新しいベストプラクティスに従いつつ、重複コンテンツ問題を引き起こす可能性を減らせる。
- 言語ディレクトリ、サブドメイン、ドメイン名が利用できるので、柔軟性に富み、Googleウェブマスターツールの設定との統合もうまくいく。
購入および設定やインストールについての詳細な説明は、WPMLのサイトで確認してほしい。インストールの仕方は他のプラグインと同じで、僕がWordPressで複数言語対応ブログを作った際に利用した中では最善のソリューションだと思う。
方法は他にもある!
ここまでの説明で、WordPressの扱いに関するよくある疑問のいくつかを解決できたと思いたい。僕はWordPressというプラットフォームが大好きだが、WordPressが完璧というわけではないし、できる限りSEOフレンドリーなものにするためにはカスタマイズが必要なのも事実だ。
この記事では、問題を解決するために僕が使っている方法を説明してきたが、この記事で説明したような変更を行う方法は、当然ながら他にもたくさんある。君自身が使って成功した方法を、コミュニティに紹介してほしい。
ソーシャルもやってます!