Eviter le duplicate content : Au moins sur les archives des catégories !

Eviter le duplicate content : Au moins sur les archives des catégories !

Par défaut, WordPress provoque du duplicate content sur les pages d’archives des catégories. Bug ou pas, un ticket est en route depuis pas mal de temps pour savoir si le core doit être modifié à ce sujet. Néanmoins, il existe une solution rapide pour régler ce problème.

Du code, direct

Ne perdons pas de temps ! Voici le code que j’ai donc mis à jour et qui corrige quelques rares cas qui peuvent provoquer des redirections non attendues.

Copiez ce code dans un mu-plugin ou dans le fichiers functions.php de votre thème (enfant)

add_action( 'wp', 'baw_non_duplicate_content' );

function baw_non_duplicate_content( $wp ) {
global $wp_query;
// On cherche à naviguer dans une catégorie
if( isset( $wp_query->query_vars['category_name'], $wp_query->query['category_name'] ) )
{
global $wp_rewrite;
$paged = isset( $wp_query->query_vars['paged'] ) && (int)$wp_query->query_vars['paged']>1 ?
$wp_rewrite->pagination_base.'/'.(int)$wp_query->query_vars['paged'].'/' : '';
// On récupère l'url de la catégorie désirée, et l'url actuelle
$correct_url = get_term_link( $wp_query->query_vars['category_name'], 'category' );
if( is_string( $correct_url ) && $correct_url )
{
$correct_url .= $paged;
}
$actual_url = 'http' . ( is_ssl() ? 's' : '' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$actual_url = reset( (explode('?', $actual_url)) );
$actual_url = reset( (explode('&', $actual_url)) );
// Si les urls sont différentes, on redirige vers la vraie url de la catégorie
if( is_string( $correct_url ) && $correct_url != $actual_url )
{

wp_redirect( $correct_url, 301 );
die();

}
}
}

Cette mise à jour gère la pagination de ces catégories, ce qui n’était pas le cas, de plus je récupère le permalien du terme maintenant, ce que je trouve meilleur.

Vous aimez ? Partagez !


Réagir à cet article

220 caractères maximum