All in One SEO Packでカテゴリーページにdescriptionを設定する方法

WordPress(ワードプレス)のイメージ

WordPressの定番SEOプラグインといえば「All in One SEO Pack」。検索エンジン対策の基本設定が手軽に整うので、当ブログでも長く世話になっているプラグインです。ところが以前は、投稿や固定ページにはdescriptionを入力できるのに、カテゴリーページなどのアーカイブページには設定欄が見当たらない、という悩みがありました。

アーカイブページにnoindexを付けているなら気にしなくてよいのですが、カテゴリーページをあえてインデックスさせたい場合は、やはり説明文を用意しておきたいところです。私も昔はfunctions.phpに手を入れて対応していました。

ただ、事情は大きく変わりました。このプラグインは2020年に「All in One SEO(AIOSEO)」として大幅リニューアルされ、管理画面も設定場所もすっかり作り替えられています。今のバージョン(v4系)では、コードを書かなくても管理画面からカテゴリーページのdescriptionを設定できるようになりました。この記事では、現行の手順を中心にまとめ直しています。

関連記事:これだけでよかった!WordPressで本当に必要だった8つのおすすめプラグイン

今のAIOSEOはカテゴリーページのdescriptionを標準で設定できる

かつての「All in One SEO Pack」には、カテゴリーページ用のdescription欄がありませんでした。そのため当時はfunctions.phpにコードを追記して対応するのが定番だったのですが、現行のAIOSEO(v4系)では、その必要はほぼなくなっています。管理画面のメニュー名も「All in One SEO」に変わっているので、まずはそこを探してみてください。

設定方法は大きく二つあります。カテゴリー全体にまとめて説明文の書式を決める方法と、特定のカテゴリーだけ個別に説明文を上書きする方法です。

カテゴリー全体の書式を決める(検索での見え方 → タクソノミー)

すべてのカテゴリーページに共通の説明文フォーマットを設定したい場合は、こちらです。

  • 管理画面のメニューから「All in One SEO」→「検索での見え方(Search Appearance)」を開く
  • 上部のタブから「タクソノミー(Taxonomies)」を選ぶ
  • 「カテゴリー」のセクションにある「メタディスクリプション」欄を編集する

この欄には文字をそのまま入力できるほか、「#」を打つと使えるスマートタグ(動的な差し込み項目)の一覧が出てきます。テキストとスマートタグを組み合わせて書式を作れるので、たとえばカテゴリー名を差し込む形にしておけば、各カテゴリーページに合わせた説明文が自動で入るようになります。ここで設定した内容は、原則としてすべてのカテゴリーページに反映されます。

一点だけ注意があります。この設定欄は、同じ画面の「検索結果に表示(Show in Search Results)」が「いいえ」になっていると隠れて表示されません。カテゴリーページを検索エンジンに載せたいのであれば、ここを「はい」にしておく必要があります。

特定のカテゴリーだけ個別に設定する(カテゴリー編集画面)

「このカテゴリーだけは違う説明文にしたい」という場合は、カテゴリーの編集画面から上書きできます。

  • 管理画面から「投稿」→「カテゴリー」を開く
  • 対象のカテゴリーの編集画面を開く
  • 下の方にある「AIOSEO Settings(AIOSEOの設定)」欄までスクロールする
  • その中の「メタディスクリプション」欄に、そのカテゴリー用の説明文を入力する

ここで入力した内容は、先ほどの「検索での見え方」で決めた全体の書式よりも優先されます。カテゴリーごとに手作業で丁寧に書き分けたいときはこちらが向いています。
なお、私が確認した範囲では、この個別の上書きが使える範囲や一部の書式指定は、無料版と有料版(Pro)で挙動が異なる場合があるようです。手元の画面で欄が見当たらないときは、お使いのバージョンの案内も合わせて確認してみてください。

昔のやり方(functions.phpでの対応)はどうだったか

参考までに、旧「All in One SEO Pack」の時代に使われていた方法にも触れておきます。当時はカテゴリー用のdescription欄がなかったため、テーマのfunctions.phpにフィルターを追加し、カテゴリーIDごとに説明文を差し替えるコードを書いていました。

// カテゴリーページのdescription(旧All in One SEO Pack時代の対応例)
add_filter( 'aioseop_description', 'custom_aioseop_description' );
function custom_aioseop_description( $description ) {
  if ( is_category(1) ) {
    $description = '「HP制作」のカテゴリーページです。';
  } else if ( is_category(2) ) {
    $description = '「iPhone」のカテゴリーページです。';
  } else if ( is_category(3) ) {
    $description = '「Wordpress」のカテゴリーページです。';
  } else if ( is_category(4) ) {
    $description = '「ニュース」のカテゴリーページです。';
  }
  return $description;
}

WordPressの条件分岐タグis_category()でカテゴリーを判定し、それぞれに説明文を割り当てるという発想です。ここで指定するカテゴリーIDは、管理画面の「投稿」→「カテゴリー」で対象カテゴリーの編集画面を開き、URLに含まれる「tag_ID」の値で確認できました。

ただし、このフィルター名は旧バージョン向けのもので、現行のAIOSEO(v4系)でそのまま同じように動く保証はありません。今から新しく設定するなら、無理にコードを書かず、先に紹介した管理画面からの設定を使うのが素直です。functions.phpは記述を一つ間違えるだけでサイト全体が真っ白になることもあるファイルなので、どうしても編集する場合はバックアップを取り、子テーマ側で作業するのが安全です。

まとめ:まずは管理画面から、書き分けは編集画面で

カテゴリーページはサイトの構造を整理する大事な入り口でもあるので、適切な説明文を添えておくと、検索エンジンにも内容が伝わりやすくなります。今のAIOSEOであれば、次の使い分けで十分対応できます。

  • 全カテゴリー共通の書式:「All in One SEO」→「検索での見え方」→「タクソノミー」の「カテゴリー」欄
  • 個別のカテゴリーだけ上書き:カテゴリー編集画面の「AIOSEO Settings」内のメタディスクリプション欄
  • 「検索結果に表示」が「いいえ」だと設定欄が隠れる点に注意

タグページや著者ページなど、他のアーカイブについても同じ「検索での見え方 → タクソノミー」の画面から書式を整えられます。かつてはコードが必要だった部分が管理画面で完結するようになったので、以前つまずいた方こそ、一度あらためて設定画面をのぞいてみてください。