WordPressで訪問者向けサイトマップを作る

地図

前回はこのブログで発生したWordPress Popular Postプラグインの問題について紹介しました。今回はこのブログにサイトマップを設置したときの作業内容を紹介したいと思います。

ここでいうサイトマップは検索エンジン用のサイトマップではなく、このブログを訪問してくれた方にページ一覧を紹介するためのページです。

PS Auto Sitemapプラグイン

このブログはWordPressで作成してるのでプラグインを導入することで自動的にサイトマップを作成することができます。

今回はPS Auto Sitemapプラグインを使用してみることにしました。

PS Auto Sitemap
Developer: jim912
Price: Free

PS Auto Sitemapプラグインは、WordPressの管理画面のプラグインの新規追加で検索すると出てきますので簡単にインストールすることができます。

設定方法については下記のページを参考にすればすぐに設定できると思います。

ポイントは

  • 先にサイトマップ用の固定ページを作成しておくこと
  • サイトマップに含めたくないページのIDは除外記事として設定すること

あたりでしょうか。

除外記事と指定するためにページのIDを知る必要があるのですがそこがちょっと悩むかもしれません。除外したいページの編集画面をブラウザで開くとURLが「http://scratchpad.jp/wp-admin/post.php?post=NNN&action=edit」のようになっていると思います。このURLのpost=の後ろの数字がページIDになります。

作成されたサイトマップの問題点

PS Auto Sitemapプラグインを使うことであっという間にサイトマップができてしまいました。さすがWordPressということろです。

ところが実際に生成されたサイトマップを見ると2箇所問題がありました。

  • 「海外プリペイドSIMカードカテゴリ」の直下に大量の記事が表示される
  • 「Androidカテゴリ」の直下に大量の記事が表示される

似たような現象でしたが、違う原因でした。ここではその原因と対策を紹介したいと思います。

親カテゴリとの多重登録

まずは「「海外プリペイドSIMカードカテゴリ」の直下に大量の記事が表示される問題です。

結論から言うと原因は、海外プリペイドSIMネタの記事は「海外プリペイドSIMカードカテゴリ」と「個別の国カテゴリ」の両方に属するようにしていたのが問題でした。たとえば、アイスランドのプリペイドSIMカードの紹介をするときは下記のようなカテゴリ設定で「海外プリペイドSIMカード(親カテゴリ)」と「アイスランド(子カテゴリ)」の両方を選んでいたのです。

海外プリペイドSIMカードカテゴリ

このような設定をしてしまうと、PS Auto Sitemapプラグインで生成されるサイトマップでは、この記事が「海外プリペイドSIMカードカテゴリ」と「アイスランド」カテゴリの両方に表示されることになります。私は海外プリペイドSIMカードカテゴリの記事はすべてこのように親カテゴリと二重登録にしていたので、サイトマップの「海外プリペイドSIMカードカテゴリ(親カテゴリ)」直下に大量(約300個!)のリンクが表示されてしまったのです。

さて、これを解消する方法ですが、、、結局カテゴリの二重登録を手動で解除する(「海外プリペイドSIMカードカテゴリ」を解除する)しかありませんでした。

つまり1時間ほどかけて約300個の記事のカテゴリを修正することで、この問題を解決したのです。カテゴリを階層化する場合は注意した方がよさそうです。

カテゴリとタグの一致

次は「Androidカテゴリ」の直下に大量の記事が表示される問題です。

この問題はカテゴリを二重登録していたのとは別の原因でした。原因はカテゴリの「Androidカテゴリ」のスラッグ(android)と一致しているタグを利用していた記事が多数あったことでした。「Androidカテゴリ」の記事以外でも、タグを使用していただけでサイトマップ上ではAndroidカテゴリ直下に表示されてしまうのです。

たとえは、下記はあるスマホの記事に設定したタグですが、この記事のカテゴリは「Android」ではありませんが、タグとして「Android」が設定されいます。

SnapCrab_NoName_2015-3-7_3-39-21_No-00

するとPS Auto Sitemapプラグインで生成するサイトマップでは、なぜかこの記事も「Androidカテゴリ」の直下に表示されてしまうのです。

私のブログにはこのように「Android」というタグを持つ記事が多かったため、「Androidカテゴリ」直下に大量の記事が表示されてしまっていたのでした。

この問題についてはすでに対処している方がいました。

プラグインを書き換えてしまう方法なのでプラグインに更新があった時が面倒ですが、ここで紹介されている方法でこの問題は一発で解消することができました。ありがたい限りです。

重い!

これでPS Auto Sitemapプラグインで生成されるサイトマップは期待通りになったのですが、もう一点問題があり、それは「重い」ということです。

記事が600個ぐらいになっているので、サイトマップを表示するたびに「各記事のカテゴリを取得してサイトマップを生成する」という処理を行うのが重くなっているようです。

しかし、この問題についてはWordPressにキャッシュプラグイン(WP Super Cache)を入れるていたので、キャッシュを有効にするだけで解消することができました。

WP Super Cacheについては下記の記事を参照してください。

WordPress高速化: WP Super Cacheの導入
今回はWordPressの根本的な高速化を図るため、WP Super Cacheというプラグインを導入します。また、WP Super Cacheにあわせてnginxの設定も変更します。
Wordpress高速化: WP Super Cache + RAMディスク
今回は増量されたメモリを活用するためにRAMディスクを導入し、WP Super Cacheプラグインのキャッシュ用ディレクトリとして利用します。RAMディスクはHDDに比べてかなり高速なので、WordPressのパフォーマンスの向上が期待できます。

まとめ

今回はこのブログに訪問者用のサイトマップページを追加しました。

PS Auto Sitemapというプラグインを使うことでほぼ全自動でサイトマップを作ることができましたが、カテゴリの構成やタグの使い方によっては意図しない位置に記事が表示されてしまいます。思ったようなサイトマップが生成されない場合は、カテゴリとタグを確認しましょう。

次回はそろそろスマートフォンの話題に戻りたいと思います。