まだコンテンツが少ない時はアーカイブページをnoindexにした方がSEO的にも良いとのことなので、使っていない(使う予定はある…。)アーカイブページをnoindexにしてみました。
// 特定のタームアーカイブだけ noindex
add_filter( 'wp_robots', function ( $robots ) {
if (is_tax(‘タクソ名’, ‘ターム’) ) {
$robots['noindex'] = true;
$robots['nofollow'] = false; // followのまま。状況によってtrueに。
}
return $robots;
});
PHP
右クリックして、「ページのソースを表示」→command + Fで「noindex」を検索。 すると
<meta name=”robots” content=”noindex,follow“>
こんなのがあればOK。
(サーバーキャッシュも確認してね)
ALL in One SEOのプラグインを入れている場合は、WordPress標準の
add_filter(‘wp_robots‘, …);
の出力はほぼ全部上書きされるらしく、以下のコードを書くと成功します。
add_filter( 'aioseo_robots_meta', function( $robots ) {
if ( is_tax( 'タクソ名', 'ターム' ) ) {
$robots['index'] = 'noindex';
$robots['follow'] = 'follow';
}
return $robots;
});
PHPちなみに記事だったら、管理画面から簡単に変更できます。
記事の編集画面から「ALL in One SEO」→「高度な設定」→「Robots Meta」→「デフォルト設定を使用」のとこをオフ「インデックスなし」をチェック
カスタム投稿のアーカイブなども管理画面から簡単に変更できます。
管理画面の「ALL in One SEO」→「検索の外観」→上のタブの「コンテンツタイプ」→noindexにしたいコンテンツまでスクロール→「高度な設定」→「ロボットのメタ設定」→「デフォルト設定を使用」のとこをオフ「インデックスなし」をチェック
特定のタクソノミーをnoindexにする場合も同様管理画面から可能です。
記事も、カスタム投稿もタクソノミーもnoindexに管理画面からできるけど、タームだけ有料プランに入れないと設定出来ないようです。
ちなみに複数のタームをnoindexしたい場合のコードはこちら。
2種類のタクソノミーあり。
add_filter( 'aioseo_robots_meta', function( $robots ) {
$noindex_terms = array(
'タクソ1’ => array( ‘ターム1’, 'ターム2’ ),
'タクソ2’ => array( ‘ターム3, 'ターム4’ ),
);
if ( is_tax() ) {
$qo = get_queried_object();
if ( $qo instanceof WP_Term && isset( $noindex_terms[ $qo->taxonomy ]) ) {
if ( in_array( $qo->slug, $noindex_terms[ $qo->taxonomy ], true ) ) {
$robots['index'] = 'noindex';
$robots['follow'] = 'follow';
}
}
}
return $robots;
});
PHP