Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

Résoudre le duplicate content (avec et sans www)

La plupart des webmasters n'y font pas attention, mais leur site est souvent accessible en tapant le nom de domaine avec ou sans le sous-domaine www. Ceci peut poser des problèmes car les moteurs pourraient indexer un duplicata du site. Ce dossier donne les solutions pour les serveurs Apache, nginx, lighttpd et IIS. Explications...

Article mis à jour le 10/06/2015, publié initialement le 01/11/2005

Même en ce moment, cette erreur est encore très présente, d'où l'intérêt de cet article ;-)

Imaginons que votre site soit www.example.com : savez-vous qu'il y a de fortes chances pour que votre site soit également accessible à l'adresse http://example.com (sans le www) ? Il suffit alors d'un seul lien vers votre site pointant vers cette adresse pour que les moteurs indexent votre site à la fois avec et sans le sous-domaine www. Dans ce cas, vous aurez sans doute de gros problèmes de contenus dupliqués (lisez en fin d'article en quoi ça pose problème).

La solution est d'utiliser une règle de réécriture sur le serveur, qui redirigera automatiquement vers la bonne version. A vous de choisir si vous préférez exploiter le nom de domaine avec ou sans le sous-domaine www, mais tenez-vous en à ce choix.

Rediriger son site vers le www (de monsite.com à www.monsite.com)

Pour forcer le sous-domaine www (et interdire l'indexation du site sans ce sous-domaine) :

Sur Apache

Sur Apache, mettez le code suivant en haut de votre fichier .htaccess situé à la racine du site (attention, si votre nom de domaine comporte une extension à plusieurs mots comme co.uk, il faut adapter le code). Ce code ne fonctionne que si vous n'avez aucun autre sous-domaine particulier (sinon, demandez de l'aide sur le forum).

RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+.[^.]+$
RewriteRule ^(.*)$ {HTTP_HOST}/$1 [R=301,L]

Si le code précédent ne fonctionne pas chez vous, essayez celui-ci (en remplaçant example.com par votre nom de domaine) :

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule (.*) https://www.example.com/$1 [QSA,R=301,L]

Selon les cas, vous devrez peut-être retirer le / à la fin du domaine, comme ceci :

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule (.*) https://www.example.com$1 [QSA,R=301,L]

Sur IIS (serveur Microsoft)

Voici le code pour les serveurs IIS :

<rewrite>
  <rules>
    <rule name="Redirect to WWW" stopprocessing="true">
      <match url=".*">
        <conditions>
          <add input="{HTTP_HOST}" pattern="^example.com$"></add>
        </conditions>
        <action type="Redirect" url="https://www.example.com/{R:0}" redirecttype="Permanent"></action>
      </match>
    </rule>
  </rules>
</rewrite>

Sur nginx

Voici le code pour les serveurs nginx :

server {
  server_name  example.com;
  rewrite ^ $scheme://www.example$request_uri redirect;
}

Sur lighttpd

Voici le code pour les serveurs lighttpd :

$HTTP["host"] =~ "^example.com$" {
  url.redirect = ( "^/(.*)" => "https://www.example.com/$1" )
}

Supprimer le www de son site (de www.monsite.com à monsite.com)

Au contraire, pour supprimer le sous-domaine www (et interdire l'indexation du site avec ce sous-domaine), mettez le code suivant en haut de votre fichier .htaccess situé à la racine du site (pour un serveur Apache) :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.([^.]+).([^.]+)$
RewriteRule ^(.*)$  [R=301,L]

Si le code précédent ne fonctionne pas chez vous, essayez celui-ci (en remplaçant example.com par votre nom de domaine) :

RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com [NC]
RewriteRule (.*) https://example.com/$1 [QSA,R=301,L]

Attention aux cas particuliers, notamment si vous avez des sous-domaines (autres que www). Voyez la discussion dans le forum...

Vérifiez si votre site a un problème !

Supposons que la version officielle de votre site contienne le fameux sous-domaine 'www' : votre page d'accueil est http://www.example.com/. Comme je l'ai indiqué plus haut, sans ces redirections, il suffit d'un seul lien vers une URL sans le 'www' pour que Google (et d'autres) crawlent et indexent votre site sous une mauvaise adresse.

Pour savoir si votre site est concerné, il faut vérifier 100% des liens présents sur votre site, ainsi que les URL canoniques et autres références à des URL...

Envie de tester sur votre site ? Lancez mon outil RM Tech

Il s'agit d'un outil en ligne d'audit technique SEO, qui part d'une URL de départ et suit tous les liens. Ensuite, il décortique tout et liste les erreurs et sous-optimisations en termes de référencement. En particulier, il vous montrera si vous avez ce problème de contenus dupliqués WWW.

Pour en savoir plus...

Si vous avez besoin d'aide, posez votre question dans le forum URL Rewriting et .htaccess, dans la discussion Interdire example.com et obliger www.example.com

Sachez que depuis la 1ère publication de cet article, j'ai rédigé un article de synthèse sur le duplicate content ainsi qu'un guide donnant des solutions aux contenus dupliqués, et que Google gère désormais l'URL canonique qui peut résoudre aussi les problèmes de duplicate content.

Je vous conseille également de lire mon tutoriel redirections qui explique les différence entre les 301 et 302 et fournit les méthodes pour bien rediriger ses pages.

On a aussi dans le forum WebRankInfo une discussion qui rassemble les bonnes idées pour résoudre les problèmes liés aux contenus dupliqués.

Cet article vous a-t-il plu ?

Note : 4.5 (11 votes)
Cliquez pour voter !

30 commentaires

Smarktic

Bonjour,

tout d'abord merci pour votre précieuses informations
mon site Web fonctionne avec no www et je peux avoir s'il vous plaît
Quel est le meilleur pour le référencement WWW ou non-WWW ?

merci d'avance

Olivier Duffez

avec ou sans www, c'est tout aussi efficace. Il faut choisir et ensuite ne plus changer, et faire les bonnes redirections.

buroca

je paye des frais supplémentaire pour certificat ssl de mon site
est-ce qu'il y a un moyen pour l'avoir gratuitement ?

Web-Master ... ou qui essaye

Bonjour,

Article ancien mais toujours utile et intéressant.
Merci,

Pour une mise au goût du jour :
il y avait le avec et sans www
Maintenant, il y aussi le http et le https

Mes recherches n'ont rien donné pour le moment.

Si on veut un site uniquement sans www et uniquement en https,
ce simple code est-il valable ?
(sur un nom de domaine chez hébergeur)

RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com [NC]
RewriteRule (.*) https://example.com/$1 [QSA,R=301,L]

L'idée est de faire en sorte que, en un code simple, on fasse :
http://example.com --> https://example.com
http://www.example.com --> https://example.com

(je suis en pause mais au boulot = je ne peux accéder à mon .htaccess pour tester)

Merci,

Olivier Duffez

le + efficace serait de poser la question dans le forum ;-)

Fournipro

Bonjour,

On pouvait accéder à mon site http://www.fournipro.ma avec et sans www, pour éviter le duplicate content j'ai mis le code ci dessous dans le fichier htaccess.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.fournipro.ma$
RewriteRule ^(.*) http://fournipro.ma/$1 [QSA,L,R=301]

Pour la page d’accueil c'est nickel, mais quand je veux tester les autres pages du site, c'est le drame; elles renvoient toutes vers la page d'accueil! J'ai essayé différents codes que j'ai trouvé dans plusieurs forums ou blogs, toujours la même chose. J'ai aussi essayee de faire une redirection à partir de Redirections sur Cpanel, pour la page d'accueil aucun souci, mais site je rajoute par exemple /index.htm, /home.html, ou php.html => page d'accueil.

Je n'arrive jusqu’à présent deja aucune solution, je cherche de nouvelles pistes sinon qui a pu résoudre un probleme similaire merci par avance pour votre aide.

Olivier Duffez

ça serait + efficace de poster cette demande dans une discussion sur le forum, merci d'avance !

Link

Pour les articles hébergés en WordPress je pense qu'il n'y a pas de solution... même si on a investi dans le nom de domaine on n'a pas accès au fichier .htaccess

Olivier Duffez

il faut le faire en PHP alors, mais c'est plus compliqué de le mettre en place sur 100% des URL...

bertrand

D'après vous y a t-il une différence entre www vers rien ou rien vers www?

Vaut-elle le coût d'un changement quand google à déjà référencer l'un des deux?

Olivier Duffez

@bertrand : désolé je n'ai pas compris. "www.example.com" est aussi bien que "example.com" pour le référencement.

dominique

Pareil pour que Waaaouh.
Merci pour le code Waaaouh maintenant ça fonctionne bien.

Waaaouh

Sur un nouveau serveur tout frais sous Debian 6, les solutions citées ne fonctionnaient pas (Internal Sever Error : Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.)

J'ai résolu le problème avec ce htaccess :

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]

Dotit

Bonjour,
Pour la redirection, ça sert à quoi le "/" à la fin du domaine ?

Sylvain

Bonjour,

Avez vous une idée pour rediriger les https ?

Exemple : vers

Amicalement
Sylvain

Chasseur immobilier

site : urldemonsite sans le sous domaine www dans les 2 moteurs.
Toutes les pages indexées le sont avec le www

Chasseur immobilier

Je viens de faire le test avec Bing, le résultat est conforme, idem Google donc.
Peut être d'autres moteurs... ?

Olivier Duffez

Peux-tu préciser quel test tu as fait (et comment tu détermines qu'il est conforme) ? Merci

Chasseur immobilier

Pourquoi l'option "Domaine favori" proposée dans les GWT ne serait elle pas suffisante, y'a t-il eu des tests la dessus ?

Olivier Duffez

Car seul Google le propose, car les 301 permettent de renvoyer l'internaute au bon endroit, y compris ceux n'étant pas venus par Google, et parce que les 301 restent plus efficaces.

ybet

Google propose depuis longtemps de choisir via son outils mais (c'est mon avis), mélange les deux pour le reférencement et le contenu sans distinction: un peu trop tard pour cet article même s'il a le mérite de donner les techniques pour éviter les deux en même temps.

Olivier Duffez

Tu fais référence je suppose à l'option "Domaine favori" de Google Webmaster Tools. Nous sommes nombreux je pense à considérer qu'elle ne suffit pas du tout et qu'il faut absolument faire les redirections 301 évoquées ici. D'ailleurs cette option n'existe que chez Google et pas chez les autres moteurs.
Au fait, cet article a été publié en 2005, je n'ai fait que le compléter et le mettre à jour aujourd'hui ;-)

SmartCenter

Selon google les contenus dupliqués "tolérés" sont les forums pouvant générer à la fois des pages normales et des pages "raccourcies" destinées aux mobiles, les articles en vente affichés ou liés via plusieurs URL distinctes, les versions imprimables uniquement de pages Web.
Sinon il faut effectivement déjà supprimer la duplication de sous-domaine, faire des redirections 301, des rel="canonical" sur les pages dupliquées ou trop similaires.

Ozan

Tout cela, c'est bien joli, mais comment fait-on pour un blog hébergé sur la plateforme blogger ?
Mon blog : Aurais-je le même problème d'indexation ?

Olivier Duffez

Pour travailler son référencement sérieusement, il faut absolument investir dans un nom de domaine...

badziz

Bonjour,
est il possible de généraliser:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com [NC] RewriteRule (.*) [QSA,R=301,L]
pour tous les sites sans avoir à changer l'adresse à chaque fois?

Dandari

Quelqu'un saurais t il me donner un lien où je peux apprendre l'utilisation de htaccess parce que j'ai essayé mais ça marche pas.
Merci

Matt

Bof,

Je suis d'avis que si Google ne reconnait pas déjà ça, et bien il n'est pas celui que je croyais qu'il était..
La tweak est bonne(pourquoi pas normaliser ses URLs?) mais je crois fort que Google en a rien a battre.

- Matt

Malin dejour

Sa marche bien pour afterbug dot com.

Les commentaires sont fermés