IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / Wordpress / WordPress:robotsメタタグをプラグインなしで制御する

WordPress:robotsメタタグをプラグインなしで制御する

2022/12/21 Wordpress

テーマをゼロから作ってみる(9)です。

プラグインを使わずに robotsメタタグをページにより制御して出力します。

  • wp_robots フィルターフック
  • デフォルトの robots メタタグ
  • カテゴリーページ、記事一覧ページを noindex にする
    • 固定ページを is_home() で検出?

wp_robots フィルターフック

5.7 以降では wp_robots フィルターフックを使って robots メタタグの出力を制御できます。

  • wp_robots()

このフィルターフックは、robots メタタグとして出力したいディレクティブを連想配列のキーとしてその値とともに渡せば head タグ内に出力してくれます。もちろん、値はディレクティブ名に妥当な文字列、またはブール値でなくてはいけません。

たとえばカテゴリーページを noindex にする場合は、

function custom_meta_robots( array $robots ) {
    if ( is_category() ) {
        $robots['noindex'] = true;
        $robots['max-image-preview'] = false;
    }
    return $robots;
}
add_filter( 'wp_robots', 'custom_meta_robots' );

こんな感じです。

デフォルトの robots メタタグ

デフォルトで出力される robots メタタグを調べてみました。連想配列がデフォルトで持っている値です。

検索ページ以外では次の値を持っています。

array(1) {
  ["max-image-preview"]=>
  string(5) "large"
}

検索ページは、

array(3) {
  ["noindex"]=>
  bool(true)
  ["follow"]=>
  bool(true)
  ["max-image-preview"]=>
  string(5) "large"
}

となっています。

カテゴリーページ、記事一覧ページを noindex にする

SEO関連の記事を読みますとカテゴリーページをどうするかにはいろいろ考え方があるようですので結局は自分で判断するしかないということです。現在作成しているテーマのカテゴリーは五十音順の映画一覧ですので noindex にすることにします。上に書いたコードそのままです。

で、ちょっと驚いたことがあります。

固定ページを is_home() で検出?

現在作成中のテーマでは、次の画像のようにホームページ(フロントページ)と投稿ページ(ブログページ、記事一覧ページ)に固定ページを指定しています。

この場合、投稿ページを検出するためには is_home() を使わないと検出できません。is_page() は false になります。ドキュメントにちゃんと書いてありました(笑)。

ユーザーがある固定ページをホームページとして定義し、別の固定ページでブログを表示するということもあります。この場合ブログページがホームページではないにも関わらず is_home() 関数で true を返します。

(条件分岐タグ)

WordPress の条件分岐はややこしいですね。

ということで、現在の robots メタタグ指定は functions.php に次のように書いています。

function custom_meta_robots( array $robots ) {
    if ( is_category() || is_home() ) {
        $robots['noindex']           = true;
        $robots['max-image-preview'] = false;
    }
    return $robots;
}
add_filter( 'wp_robots', 'custom_meta_robots' );

検索ページのデフォルト値には max-image-preview:large が指定されていましたが、false にしておいたほうがいいかもしれません。noindex ですから関係ないか…。

Amazonギフトカード グリーティングカードタイプ - 5,000円 (お年玉)

Amazonギフトカード グリーティングカードタイプ – 5,000円 (お年玉)

5,000円(01/28 01:56時点)
Amazon
WordPress:プラグインなしでカスタムフィールドを追加する
WordPress:canonicalタグをプラグインなしで制御する
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/01/26

WordPress:メニューのid,classを整理カスタマイズ

2023/01/19

WordPress:JSON-LD構造化データをプラグインなしで出力

2023/01/11

WordPress:OGPタグをプラグインなしで挿入する

2022/12/27

WordPress:canonicalタグをプラグインなしで制御する

2022/12/21

WordPress:robotsメタタグをプラグインなしで制御する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips108
  • javascript98
  • Joomla!88
  • Windows68
  • CSS63
  • Wordpress59
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Plamo33
  • Google32
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • genesis6
  • ConoHa WING6
  • Git入門6
  • Python5
  • Android5
  • スマートフォン4
  • PC全般4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Facebook3
  • Blankslate3
  • Docker3
  • Mactype2
  • GitHub2
  • youtube1
  • rails入門1
  • Twitter1
  • はてなブクマ1
  • 映画1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com