Ajouter automatiquement des balises canonical à votre blog WordPress
La balise canonical est une arme contre la duplication de contenu des sites internet. Elle s’insère dans l’entête des pages html de cette façon:
<head>
...
<link rel="canonical" href="https://aide-memoire.blog-machine.info" />
...
</head>
Son principe est simple: Si plusieurs pages ont un contenu dupliqué ou très proche, vous indiquez grâce à cette balise que ces contenus se rapportent à une seule et même page, celle spécifiée dans la balise canonical.
Cette balise peut donc être utilse pour se prémunir du scrapping, ou gérer des problèmes d’url multiples.
J’ai cherché longtemps sur WordPress un plugin capable de mettre en place simplement des balises canonical, et je n’en ai pas trouvé. Les seuls plugins susceptibles de faire ça sont des plugins SEO qui font une multitude d’autres choses en même temps. C’est le genre de plugin « tout-en-un » que je déteste car on en perd vite le contrôle tant ils sont « trop » complets…
J’ai fini par trouver sur un site chinois un petit script PHP, à mettre dans le fichier functions.php de votre thème WordPress, qui vous intégrera automatiquement des balises canonical sur toutes les pages de votre blog:
function any_head_canonical( $output = '' ){
if( is_home() ){$output = home_url( '/' ); }
if( is_category() ){ global $cat; $output = get_category_link($cat); }
if( is_tag() ){ global $tag_id; $output = get_tag_link($tag_id); }
if( is_page() ){ global $page_id; $output = get_page_link($page_id); }
if( is_single() ){ $output = get_permalink(); }
if( $output != '' ){ echo '<link rel="canonical" href="',$output,'">'; }
}
add_action('wp_head', 'any_head_canonical');
Source: https://seonoco.com/1290 (site en chinois)