Réduire le contenu dupliqué sous WordPress

Le contenu dupliqué ou en anglais "duplicate content" est une plaie pour votre blog, un paramètre à ne pas négliger pour le référencement naturel...

A l'occasion de la refonte complète du blog de WP Formation et du changement de domaine, j'ai essayé de limiter au mieux ce fameux contenu dupliqué. Vous trouverez dans cet article quelques rappels et astuces, pas si inutiles que ça, pour lutter contre VOTRE propre contenu dupliqué...
 Réduire le contenu dupliqué sous WordPress duplicate content

Vous reprendrez bien la même chose?

Définition : le duplicate content désigne un contenu identique sur deux URL distinctes. Le plus connu et le plus évident, c'est le plagiat ou vol de contenu, mais il arrive également, involontairement,  qu'une même page soit accessible par plusieurs adresses différentes sur son propre blog:

  • /monsite.com/macategory/monarticle/
  • /monsite.com/tags/monarticle/
  • /monsite.com/monarticle/

Un autre fléau lié à WordPress, le "?replytocom=xxxx", en lien direct avec les réponses aux commentaires de votre article, ce dernier peut s'apparenter à une duplication:

  • /monsite.com/monarticle/
  • /monsite.com/monarticle/?replytocom=21493
  • /monsite.com/monarticle/?replytocom=21523

La pagination des catégories peut également poser des problèmes :

  • /macategory/
  • /macategory/page/2/
  • /macategory/page/3/

 

Comment limiter le Duplicate Content?

Les mesures évidentes

La première des choses à faire est de limiter les listes de vos derniers articles, meilleurs articles, etc... sur vos sidebars et sur votre footer, en effet ces derniers sont souvent déjà présents sur la Home, inutile donc de produire du contenu dupliqué en masse.

N'oubliez pas de limiter/tronquer vos articles placés sur la page d'accueil (pensez balise More, excerpt, etc.), cela permettra d'éviter un contenu dupliqué entre cette dernière et vos articles.

Pour aller plus loin, je vous conseille fortement la lecture de l'article publié par Daniel sur SeoMix : Duplication de contenu et optimisations évidentes.

 

Eradiquer le ?replytocom

Rien de plus simple, si vous utilisez le plugin SEO by Yoast, rendez-vous sur SEO>>Permaliens et cochez la case "Supprime les variables?replytocom".

Cela empêche les réponses traitées de fonctionner lorsque l'utilisateur a désactivé JavaScript, mais sur un grand site cela peut représenter une énorme amélioration de l'efficacité d'analyse pour les moteurs de recherche lorsque vous avez beaucoup de commentaires et cela limite le duplicate content.

 

Utiliser les No index et Follow

Pensez à vos Réglages Méta sur tout le site et n'indexez pas les sous-pages des archives, si vous voulez éviter que /page/2/ et les suivantes d'une archive, apparaîssent dans les résultats de recherche, activez cette option depuis le plugin Yoast via SEO>>Général.

Toujours sur SEO by Yoast, dans le menu SEO>>Titres & Métas>>Taxinomies, cochez les cases "Méta robots : noindex, follow" des catégories, mots-clés et format. Au même endroit, depuis l'onglet  Autres, pour les archives de l'Auteur et Dates, cochez les cases "noindex, follow" et "Désactiver les archives".

Si vous avez un site avec un seul auteur, la section archive de l'auteur va toujours être semblable à la page d'accueil. Et même si vous n'avez aucun lien vers cette section, d'autres pourraient le faire, ce qui vous causera du tort. Désactiver cette section vous permet d'être sur que les liens vers cette section seront redirigés (301) vers la page d'accueil.

Pour les archives de date, le même principe s'applique : ils ressemblent probablement beaucoup à votre page d'accueil, et peuvent donc être considérés comme du contenu en double.

Voici la version sans le plugin, insérez ce code entre vos balises <head> & </head> dans le fichier header.php, permettra d'indiquer aux robots que vous souhaitez indexer votre page d'accueil, vos articles, vos pages et catégories, mais empêcher l'indexation de toutes autres pages (RSS, archives, etc) :

<?php if((is_home() && ($paged < 2 )) || is_single() || is_page() || is_category()){
 echo '<meta name="robots" content="index,follow" />';
} else {
 echo '<meta name="robots" content="noindex,follow" />';
}

Nota: $paged est la variable correspondant au numéro de page en cas de pagination.

 

No index sur les résultats de la recherche

Un résultat de recherche WordPress ressemble à ceci: /wpformation.com/?s=xxxxx. Vous pouvez supprimer l'indexation de ces résultats de recherche en plaçant le code suivant entre vos balises <head> dans le fichier header.php:

<?php if ((is_search()) || (is_tag() )) { ?>
<meta name="robots" content="noindex,follow"/>
<?php } else { ?>
<meta name="robots" content="index, follow"/>
<?php } ?>

 

Eviter le duplicate content des archives catégories

Niveau SEO et référencement naturel, il est pénalisant d’avoir une page qui reprend exactement les mêmes articles dans le même ordre, et avec les mêmes extraits, ce bug est connu depuis plusieurs mois des développeurs WordPress, corrigé puis rebug et depuis plus d’un an, rien n’a changé...

Julio Potier de BoiteAWeb.fr, nous donne une solution à l'aide de ce code à insérer dans votre functions.php présent à la racine de votre thème, voir l'article complet sur Eviter le duplicate content sur les archives des catégories.

A noter que le bug n’est pas présent si vous n’utilisez pas la structure de permaliens, donc /?cat=2 ne peut pas reproduire le bug.

add_action('wp', 'baw_non_duplicate_content' );
function baw_non_duplicate_content( $wp )
{
 global $wp_query;
 // Si le nom de catégorie trouvée est différente entre le rewrite match et la variable requetée, alors on redirige
 if( isset( $wp_query->query_vars['category_name'], $wp_query->query['category_name'] )
 && $wp_query->query_vars['category_name'] != $wp_query->query['category_name'] ):
 // L'URL correcte dans laquelle on remplace la catégorie requetée par son véritable nom
 $correct_url = str_replace( $wp_query->query['category_name'], $wp_query->query_vars['category_name'], $wp->request );
 // Redirection 301
 wp_redirect( home_url( $correct_url ), 301 );
 // Toujours die() après une redirection
 die();
 endif;
}

 

La duplication sur les pages de catégories

Le principal problème des catégories, c’est le fait qu'elles reprennent une liste d’articles dans le même ordre que la page d’accueil, un des moyens simples pour éviter une duplication c'est d'utiliser une description de la dite catégorie.

C'est une bonne solution mais comment éviter que cette description se répète sur les pages suivantes en cas de pagination? Ce code à insérer dans votre fichier category.php, résoudra le problème.

Remplacez :

if ( ! empty( $category_description ) )

par

if (!empty($category_description) && $paged == 0)

Retrouvez l'ensemble des préconisation de Sylvain sur Blog.Axe-Net.fr et son article complet: Astuces WordPress contre la duplication.

Rappel: Quand vous installez WordPress, assurez-vous d'avoir bien choisi votre structure interne, catégories vs tags, comment vais-je trier, est-ce utile pour mes lecteurs et essayer autant que faire se peut, de limiter vos mots-clés...

Voici quelques-unes des modifications et optimisations mises en place sur ce site, pour l'exemple, allez sur une des catégories de ce blog (ex: wpformation.com/wordpress/), regardez la description puis passez à la page 2, vous verrez alors, que la dite description ne s'affiche que sur la première page de la catégorie ;)

Pour ne plus rien manquer... Abonnez-vous à nos Newsletters!

Le meilleur de WP Formation dans votre boîte email...

Vous cherchez une formation pour créer votre site web, blog ou Ecommerce?

Toutes nos Formations WordPress sont éligibles au CIF, DIF, AIF, OPCA...

 Réduire le contenu dupliqué sous WordPress formation WordPress 3 jours 134

31 commentaires

  1. Romain de Shakeberry.fr

    Article très instructif et complet ! Merci.

  2. Très bon article, je me suis fait avoir une fois avec du contenu dupliqué. J'utilisais un peu trop les tags...
    Mais j'apprends de mes erreurs (enfin je crois), du coup maintenant j'utilise systématiquement SEO de Yoast quand je monte un site sous WordPress.
    Et il est vraiment pas mal, avant j'utilisais All in one SEO, mais ce pluggin n'est pas aussi complet je trouve.

  3. Merci pour la citation :)

    Je ne connaissais pas le problème avec les réponses aux commentaires de WordPress "replytocom".

    Sincèrement, WordPress SEO by Yoast est vraiment très complet :) Il faudtait plus qu'il ajoute la possible de supprimer la base de tag dans les url (comme pour les catégories) et il sera parfait.

  4. @Guillaume, en effet Yoast est une belle ressource, qui plus est gratuite!

    @Jonathan, normal de citer les bonnes sources & ressources;) J'ai vraiment vu la duplication liée au ?replytocom à l'aide d'un programme que je teste et qui va bientôt sortir...

    Pour la suppressison des tags, je suis d'accord, as tu entendu parlé de ce plugin : http://wordpress.org/extend/plugins/wp-no-tag-base/

  5. Oui j'ai découvert WP No Tag Base hier soir :)

  6. rédaction web

    Merci
    pour ce billet très détaillé avec des astuces bien précises.
    Bon nombre de sites rencontrent ce problème de contenu dupliqué souvent
    origine de mal positionnement, voir même de déréférencement desdits
    sites. Afin de prévenir ces genres de cas, cet article se montre bel et
    bien très utile!

  7. aspirateur sans sac

    il faut penser a éviter la duplication car il influence sur l'article même si le contenu est bon

  8. Si on veut pousser l'absence de duplication plus loin et qu'on a, comme moi, des centaines de tags (oui je sais, j'aurais pu en avoir dix seulement mais bon), on peut totalement supprimer le lien sur les tags et leurs pages respectives.

    Pour la duplication de catégories, j'ai changé le code de base et maintenant je n'affiche plus qu'un listing des articles avec les titres et pas d'extraits, c'est plus propre, plus rapide à parcourir (pas de pagination) et pas de risque de contenu dupliqué.

    Pour les derniers articles, personnellement je les affiche mais seulement si je ne suis PAS sur la page d'accueil (possible directement dans le code ou bien avec le plugin Widget Logic).

  9. Il est dommage de se priver des tags et des catégories, on peut parfaitement modifier son thème et ajouter un custom-post dédié "Pagination", ainsi on ajoute du poids et on prends du jus sans duplication;)

    Pour les derniers articles, je suis un partisan de la home, en revanche sur les autres pages, on peut utiliser WP Category Post List Widget, en random, ainsi les articles ne seront jamais affichés dans le même ordre et ils seront tous poussés à un moment ou un autre...

    En ce moment, je teste un programme qui devrait permettre de déterminer les points de blocage et de duplication, RDV fin décembre pour le compte-rendu test;)

  10. Salut,
    Encore un très bon article merci.

    Certaines astuces se combinent, aussi peut-être éviter les redondances :

    if((is_home() && ($paged < 2 )) || is_single() || is_page() || is_category() && !is_search() && !is_tag() ){
    ?> meta name="robots" content="index, follow"/
    < ?php } else {
    ?> meta name="robots" content="noindex,follow"/
    < ?php }
    ?>
    (Edit: n'oubliez pas les ouvertures/fermetures <> de balises sur meta name, elles ne s'affichent pas dans les commentaires), pour voir le code dans son intégralité http://pastebin.com/qk0AvZmi

    Pour l'utilisation de more, j'ai publié un guide si ça intéresse certains : http://wp.jmperso.eu/fr/codewp/tips-utiles-pour-en-savoir-plus-sur-more/

  11. Merci Julien pour cette astuce;) et pour l'info complémentaire sur la méconnue "more"

  12. Cédric DEBACQ

    Salut Fabrice, merci pour article tuto bien pratique pour wordpress seo.

    Au niveau des Titres & Métas et onglet Taxinomies il y a "wordpress seo méta box" avec une case à cocher qui dit "cacher", faut-il cocher cette case ?

    Merci pour ton retour :)

  13. Bonjour Cédric,

    "Cacher" la meta box au sens de ne pas l'afficher dans les Taxinomies côté Admin. En résumé, il est recommandé de laisser décochée cette option si tu souhaites avoir accès aux options avancées de WordPress SEO.

  14. Pour la duplication de contenus externes, il faut bien penser aussi à tronquer son flux rss et ne pas afficher ses articles en entier dans le flux, car si le blog est repris par des agrégateurs ça va poser pas mal de soucis de dc

  15. Tout d'abord un grand merci pour ces conseils, depuis la refonte de mon site + un changement de thème Google a indexé des pages plus qu'inutiles et m'a remonté plus de 5000 erreurs 404 dues au moteur de recherche interne de mon site...
    Juste une question concernant votre code à placer dans le head ()
    Est ce que cela signifie que Google n'indexera pas les tags non plus (à cause du (is_tag()) ? J'ai en effet quelques tags que j'aimerais qu'il suive (j'ai mis les autres en noindex nofollow via mon plugin seo). Ce qui m'intéresse le plus serait qu'il ne suive pas les résultat de recherche uniquement. Merci de m'éclairer sur ce point :)
    Bonne journée et encore bravo pour ce sujet !

  16. @Katell, bonjour et merci de votre retour.

    Concernant votre question, il s'agit ici uniquement du tag de la recherche ((is_search()) || (is_tag() )), donc aucun soucis;)

  17. Super merci Fabrice, je mets vos conseils en pratique tout de suite et je croise les doigts ;)

  18. Je me rends compte que mes blogs ne sont pas du tout optimisés pour éviter le duplicate content, je vais de suite essayer de tronquer mes articles qui apparaissent en home page pour éviter cela... merci beaucoup pour ces conseils :)

  19. CV Web-Marketing

    Bonsoir,
    Tout d'abord merci pour ce billet, c'est le plus complet que j'ai pu trouver concernant les problêmes de duplicate content sur WordPress.
    Une question de newbie en quelque sorte :
    Quel est l'intéret d'enlever /category et /tags dans le chemin des catégories et mots clefs, en ce qui concerne le référencement ?
    Y-a-t-il un avantage en terme de Seo
    Merci pour vos réponses
    Cordialement

  20. Merci ;)
    Il n'y a aucun bénéfice ni inconvénient à enlever /category ou /tags en terme de référencement ;)

  21. Bonjour,

    J'ai voulu insérer le code

    <?php if((is_home() && ($paged < 2 )) || is_single() || is_page() || is_category()){
    echo '';
    } else {
    echo '';
    }

    dans le fichier header.php entre les deux balises head, mais j'ai l'erreur suivante :
    Parse error: syntax error, unexpected '<' in /homez.706/faraboul/www/wp-content/themes/portfolio-press-enfant/header.php on line 30

    J'ai déjà plusieurs plugins donc je ne voudrais pas en ajouter, comment je dois faire ?
    Merci

  22. Merci je vais essayer voir si sur certains de mes blogs le duplicata diminue

  23. Quand est-il des doublons de balise title pour les pages de catégorie ? En effet les outil webmaster de google m'indique des doublons de titre sur mes page de catégorie par exemple :

    /category/nouveaute-leurre-2013/
    /category/nouveaute-leurre-2013/page/2/
    /category/nouveaute-leurre-2013/page/3/

    Elles ont toutes le même titre alors comment remédier à ce problème ?

    cordialement,

  24. N'indexez pas les sous-pages des archives, si vous voulez éviter que /page/2/ et les suivantes d'une archive, apparaîssent dans les résultats de recherche, activez cette option depuis le plugin SEO Yoast via SEO>>Général.

  25. Cette option est déjà activé dans les réglages du plugin pourtant j'ai toujours ce problème que m'indique les outils webmaster de google !

  26. Google ne devrait pas indexer ces contenus, sinon il y a le pansement sur jambe de bois, à savoir augmenter le nombre d'articles affiché par page archive et passer de 10 habituellement à un nombre plus important 20 ou 30 et tant pis pour l'ergonomie utilisateur :/

  27. Ok je vais voir j'ai demandé une suppression des urls gênante dans google /page/2/ voir si le problème disparait et revient ou disparait totalement !

    Bravo pour votre site de nombreux conseils pertinents !!!

  28. N'allez pas jusqu'à la demande de suppression Google, ce n'est pas nécessaire! Le contenu se désindexera par lui-même, nous avons tous un peu de contenu dupliqué;)

    Merci de vos encouragements ;)

  29. Bonjour,
    Grace à votre article, j'ai pu modifier pas mal de choses. Mais un problème qui dure déjà depuis un bon moment. L'analyse de mon site avec Attracta me montre une grande quantité de liens doublons dans les meta tags et les meta description. voici un exemple:

    meta description: Georges Mbourou est de loin le meilleur artiste gabonais. Peintre, son travail de la patine se réclame d’un talent encore mal connu...
    Liens:
    bantoozone.com/georges-mbourou/
    bantoozone.com/georges-mbourou/?shared=email&msg=fail

    Je n'ai aucune idée de la provenance de ce doublon, ni comment cesser cela. Cela se produit à chaque nouvel article publié.
    Merci.

  30. @Brice, au vu de la 2ème URL il semble que cela soit du fait d'un plugin, et je dirais JetPack avec l'option partage par email activée, à vérifier et à supprimer le cas échéant;)

  31. Bonsoir et merci de m'avoir répondu.
    Je m'en doutais un peu de la culpabilité de Jetpack. Il y a tellement de fonctionnalités (je ne l'ai utilise pas toutes) que j'ai dû supprimer le bouton de partage par mail dans Publicize. J'espère que c'est bien de là d'où vient le problème. Juste que je ne sais pas si cela supprimera les doublons?
    Merci pour la suggestion, je vais voir ce que ça donne.