Могу предложить вам решение не связанное с Rank Math или Yoast. Вы можете написать любые условия и вывести meta noindex на хуке
wp_head
add_action( 'wp_head', 'skill_noindex', 1 );
if ( !function_exists( 'skill_noindex' ) ) {
function skill_noindex() {
// закрываем от индексации пустые архивные страницы (таксономии, категории, теги)
if( is_archive() && !have_posts() ) {
echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
}
// закрываем от индексации категорию "отзывы"
if ( is_category( 'testimonials' ) ) {
echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
}
// проверяем, что тип записи - post, но достаточно проверять is_single()
if ( get_post_type() === 'post' ) {
// получаем категории поста
if ( $categories = get_the_category( get_queried_object_id() ) ) {
foreach ( $categories as $key => $category ) {
// проверяем, что в массиве есть категория Новости
if ( $category->slug == 'news' ) {
echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
}
}
}
}
}
}
UPDATE
С версии 5.7 для этого появился фильтр, пользоваться так:
add_filter( 'wp_robots', 'skill_robots' );
if ( !function_exists( 'skill_robots' ) ) {
function skill_robots( $robots ) {
if ( is_archive() && !have_posts() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
$robots['max-snippet'] = '-1';
$robots['max-image-preview'] = 'large';
$robots['max-video-preview'] = '-1';
return $robots;
}
}