WordPress SEO対策「All in One SEO Pack」でキーワード、ディスクリプションが表示されない(mata keywords編)

all-in-one-seo-pack
All in One SEO Pack

WordPressで構築したWEBサイトでSEO対策として、プラグイン「All in One SEO Pack」(以下、aioseop)を使った際に、「mata keywords」や「meta description」が出力されたりされなかったり安定しないケースがあります。

そこで、メタ情報を出力するプラグイン「Meta Manager」の方が「mata keywords/description」を取り扱う上では、使い勝手が良く、aioseopを止めて Meta Manager をご利用の方は多いことのように思います。

筆者も両方のプラグインを使ったことがあるのですが、一長一短で、なかでもaioseopのページタイトルのフォーマット機能は、諦めても諦めきれない優秀な機能です。

SEO対策的にも筆者の感覚的なものですが、下記のように思います(優先順位が高い順)。

  1. ページタイトル
  2. meta description
  3. mata keywords  (これってSEO的に今でも有効なのか疑問ですが・・)

ということで、お客様のホームページ制作の際には、ページタイトルに強いaioseopの方をよく使います。でもってことで、下記の記事のとおり「functions.php」にコードを追加すれば、安定的に「meta description」が出力されるようになりました(と思ってるだけ?)。

WordPress SEO対策 All in One SEO Packのdescription出力の改造

とこれで全てうまく思い通りと思ったのですが、やっぱりaioseopでも「mata keywords」を「Meta Manager」のように対応して見たかったので、あまり検証はしておりませんがご紹介します。

出力されたりされなかったりの状況は、下記のとおりです。

  1. 投稿(post)の個別ページ(single)のキーワードの生成は、カテゴリ・タグを使って綺麗に生成されてるっぽいので弄らない。投稿(post)の一覧も含めて。
  2. どうも、投稿者別、カテゴリ毎、日付毎のアーカイブ等が出力されていない。
  3. 固定ページは、ページ毎の編集画面でキーワードを個別に入れてあげないと出力されない。
  4. aioseop設定画面の「ホームキーワード(コンマで区切る):」は本当にホームのキーワードで、ホームを固定ページ(page)にして、そのページの編集画面でキーワードを個別に入れてあげても、「ホームキーワード(コンマで区切る):」を上書きしてくれない。

なので、考え方として、下記としました。

  1. aioseop設定画面の「ホームキーワード(コンマで区切る):」を「Meta Manager」の共通キーワード的な扱いに変える。
  2. 投稿者別、カテゴリ毎、日付毎のアーカイブ等、キーワードが出力されてないものは上記1の「共通キーワード」をセットしてあげる。
  3. 固定ページは、ページ毎の編集画面でキーワードを個別に入れない場合のみ、「共通キーワード」を出力する。
  4. 筆者は、トップページをよく固定ページ(page)にするので、その場合のみのロジックを考える(手抜き)。
  5. トップページの固定ページの編集画面でキーワードを個別に入れたら、それが出力されるようにする。

aioseop設定は下記のようにしました。「ホームキーワード(コンマで区切る):」に共通キーワード的なものを設定しています。

aioseop-home-page-setting

aioseop-keyword-settings

その上で、「mata description」のときのように、フィルターフックを利用して「meta keywords」を加工してあげます。

/**
* plugin all in one seo pack の keyword出力改造
*/
function my_keywords($keywords) {
	global $post;
	global $aioseop_options;

	if ( get_option( 'show_on_front' ) == 'page' && $post->ID == get_option( 'page_on_front' ) && get_post_meta( $post->ID, "_aioseop_keywords", true )) {
		$keywords = esc_html(stripcslashes(get_post_meta( $post->ID, "_aioseop_keywords", true ) ) );
	} else {
		$keywords = trim($keywords);
		if (!$keywords) {
			$keywords = esc_html(trim($aioseop_options['aiosp_home_keywords']));
		}
	}
	return $keywords;
}
add_filter('aioseop_keywords', 'my_keywords');

このコードと「WordPress SEO対策 All in One SEO Packのdescription出力の改造」で、「All in One SEO Pack」でも「Meta Manager」のように安定した出力ができるようになったと思います。
All in One SEO Pack」のフィルターフックをうまく利用して、皆様もSEO対策してみては如何でしょうか。

※全固定ページ(page)・投稿(post)に「キーワード」と「description」を入力しろよというツッコミはなしでお願いします。