Search Console avisando “Página alternativa com tag canônica adequada” em URL que você quer indexada costuma ter um culpado só: alguém mandou a /page/2/ apontar a canônica para a página 1. O Yoast expõe essa URL num filtro e dá para consertar no functions.php do tema filho.
Confira o que está saindo no HTML
Antes de escrever código, olhe a tag que o servidor entrega. Nada de inspecionar no navegador, que plugin de cache pode mentir:
curl -s https://sualoja.com.br/loja/page/2/ | grep -i canonical
O filtro wpseo_canonical
O filtro recebe a URL que o Yoast montou (no Yoast 27 vem a presentation como segundo argumento) e imprime o que você devolver. Retornando false, a tag não sai.
add_filter( 'wpseo_canonical', function ( $canonical ) {
// URL de filtro de loja: consolida na vitrine, sem os parâmetros
if ( function_exists( 'is_shop' ) && is_shop() && ! empty( $_GET['filter_cor'] ) ) {
return get_post_type_archive_link( 'product' );
}
// paginação: cada página aponta para ela mesma
if ( is_paged() ) {
return get_pagenum_link( (int) get_query_var( 'paged' ) );
}
return $canonical;
}, 20 );
A ordem das duas condições não é gosto pessoal. O get_pagenum_link() remonta a URL a partir da requisição atual e devolve a query string junto, então em /loja/page/2/?filter_cor=azul ele entregaria uma canônica com o parâmetro dentro. Por isso o teste do filtro vem primeiro.
A origem do problema costuma ser tema ou plugin de filtro reescrevendo a canônica para evitar conteúdo duplicado, e consolidando toda a paginação na página 1. O Google lê como “a página 2 é a mesma coisa que a 1” e para de indexar o que só aparece no fim da lista.
A armadilha do cache
Depois de salvar o arquivo, limpe o cache de página e rode o curl de novo. Já perdi tempo achando que o filtro não tinha pegado quando o problema era HTML velho no disco. E cuide de dois detalhes: o filtro roda em toda requisição de front, então deixe as condicionais apertadas, e devolva sempre URL absoluta, porque o Yoast imprime a string que você retornar.
Se travou nisso e precisa de ajuda, me chama aqui.