Une dépêche reprise telle quelle depuis une agence de presse partenaire pose un problème classique de référencement : deux URL, celle du site source et celle du site local qui la republie, affichent un contenu identique ou quasi identique, ce qui peut diluer la visibilité de l’article aux yeux des moteurs de recherche si rien ne signale laquelle des deux fait référence.
Le problème posé
Par défaut, WordPress génère une balise rel="canonical" qui pointe vers l’URL de l’article publié localement, via la fonction rel_canonical() appelée dans l’en-tête du site. Cette URL canonique par défaut convient parfaitement à un contenu original, mais devient trompeuse pour une dépêche reprise : elle laisse entendre que la version locale est la source de référence, alors que ce n’est pas le cas.
Le snippet commenté
// Étape 1 : enregistrer une métadonnée pour stocker l'URL source de la dépêche
function wpm_enregistrer_meta_url_source() {
register_post_meta( 'post', 'depeche_url_source', array(
'type' => 'string',
'single' => true,
'show_in_rest' => true,
'auth_callback' => function() {
return current_user_can( 'edit_posts' );
},
) );
}
add_action( 'init', 'wpm_enregistrer_meta_url_source' );
// Étape 2 : remplacer l'URL canonique quand une source est renseignée
add_filter( 'get_canonical_url', 'wpm_canonical_vers_source', 10, 2 );
function wpm_canonical_vers_source( $url_canonique, $post ) {
if ( 'post' !== $post->post_type ) {
return $url_canonique;
}
$url_source = get_post_meta( $post->ID, 'depeche_url_source', true );
if ( ! empty( $url_source ) && filter_var( $url_source, FILTER_VALIDATE_URL ) ) {
return esc_url( $url_source );
}
return $url_canonique;
}
Le filtre get_canonical_url intervient précisément à l’endroit où WordPress détermine quelle URL afficher dans la balise de l’en-tête, sans avoir besoin de retirer manuellement l’appel à rel_canonical() ni de manipuler le HTML de l’en-tête directement.

Vérification du rendu final
<link rel="canonical" href="https://agence-source.fr/depeche/1234" />
Un simple contrôle de la source de la page publiée confirme que la balise pointe désormais vers l’URL de l’agence source plutôt que vers celle du site local, dès qu’une valeur a été renseignée dans le champ dédié à l’édition de l’article.
Variante 1 : appliquer la règle uniquement à une catégorie précise
add_filter( 'get_canonical_url', function( $url_canonique, $post ) {
if ( ! has_category( 'depeches-agence', $post ) ) {
return $url_canonique;
}
$url_source = get_post_meta( $post->ID, 'depeche_url_source', true );
return ! empty( $url_source ) ? esc_url( $url_source ) : $url_canonique;
}, 10, 2 );
Restreindre le filtre à une catégorie dédiée aux dépêches d’agence évite qu’une métadonnée renseignée par erreur sur un article original ne modifie accidentellement sa propre URL canonique.
Variante 2 : afficher une mention visible de la source sur la page
<p>Dépêche reprise depuis <a href="<?php echo esc_url( $url_source ); ?>">la source originale</a>.</p>
- Cette mention visible renforce la cohérence avec la balise canonique, plutôt qu’un signal invisible réservé aux moteurs de recherche
- Elle répond aussi à une attente de transparence éditoriale vis-à-vis des lecteurs, qui savent d’où provient l’information
Variante 3 : basculer automatiquement selon un accord de syndication
Si l’accord avec l’agence source prévoit que certaines dépêches restent canoniques sur le site local (par exemple une exclusivité locale), un simple champ booléen complémentaire, vérifié avant l’application du filtre, permet de gérer ce cas sans dupliquer la logique :
$exclusivite_locale = get_post_meta( $post->ID, 'depeche_exclusivite', true );
if ( $exclusivite_locale ) {
return $url_canonique;
}
La règle de base à retenir sur ce sujet : une URL canonique n’a jamais vocation à mentir sur l’origine réelle d’un contenu, quel que soit l’intérêt de référencement à court terme que cela pourrait sembler apporter.
En résumé
Gérer proprement la republication d’une dépêche d’agence tient en quelques lignes de filtre sur get_canonical_url, couplées à une métadonnée dédiée pour stocker l’URL source. Cette approche évite le contenu dupliqué sans jamais toucher à un mur payant ni à une logique d’abonnement, qui relève d’un besoin entièrement distinct pour un site de presse locale.