WP
検索結果ページがいつの間にかnoindexとなっている
WordPressサイトに於いて、キーワード検索や条件検索などを行って表示された検索結果一覧ページのソースコードを見ると、metaに「noindex」が入っていた。SEO系のプラグインの設定も見直したが、そういった指定は見当たらなかった。
ググると、WordPress5.7からwp_robotsという関数が導入され、meta robotsタグの出力仕様が大幅に変更となったらしい。
これらはfunctionなどで制御が可能。
〇〇の検索結果の一覧というページもインデックスさせたい場合は、
function.phpへの記述で対応する場合
remove_filter( 'wp_robots', 'wp_robots_noindex_search' );
何かしらの理由でfunctionは触りたくないというケースでは以下でも可能
header-meta.phpへの記述で対応する場合
<?php
// wp_head();
?>
<?php
if ( is_search() ) {
ob_start();
wp_head();
$metahead = ob_get_contents();
ob_end_clean();
$metahead = str_replace('noindex, ','',$metahead);
$metahead = str_replace('nofollow, ','',$metahead); // おまけ
echo $metahead;
}else{
wp_head();
}
?>
テンプレートによって記述内容はマチマチだが、もしwp_head()を元々読み込んでいる場合は、必ず置き換えるかコメントアウトしておかないと正常に動かない。
追記:
URLの?s=の後にスパムワードを付与し、膨大なアクセスを発生させ、検索結果にインデックスさせるなどのスパム行為を防ぐために、敢えて検索結果ページをnoindexとしている方も多いようなので、アクセス解析時などにおかしなパラメータを見つけたら、noindexに戻しておいたほうがよいかもしれない。