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...
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.
Si vous avez des questions, posez-les dans le forum WebRankInfo.
Si vous préférez du consulting, j'en propose sur mon site WebRankExpert.
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
avec ou sans www, c'est tout aussi efficace. Il faut choisir et ensuite ne plus changer, et faire les bonnes redirections.
je paye des frais supplémentaire pour certificat ssl de mon site
est-ce qu'il y a un moyen pour l'avoir gratuitement ?
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)
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,
le + efficace serait de poser la question dans le forum ;-)
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.
ça serait + efficace de poster cette demande dans une discussion sur le forum, merci d'avance !
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
il faut le faire en PHP alors, mais c'est plus compliqué de le mettre en place sur 100% des URL...
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?
@bertrand : désolé je n'ai pas compris. "www.example.com" est aussi bien que "example.com" pour le référencement.
Pareil pour que Waaaouh.
Merci pour le code Waaaouh maintenant ça fonctionne bien.
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 :
Bonjour,
Pour la redirection, ça sert à quoi le "/" à la fin du domaine ?
Bonjour,
Avez vous une idée pour rediriger les https ?
Exemple : vers
Amicalement
Sylvain
site : urldemonsite sans le sous domaine www dans les 2 moteurs.
Toutes les pages indexées le sont avec le www
Je viens de faire le test avec Bing, le résultat est conforme, idem Google donc.
Peut être d'autres moteurs... ?
Peux-tu préciser quel test tu as fait (et comment tu détermines qu'il est conforme) ? Merci
Pourquoi l'option "Domaine favori" proposée dans les GWT ne serait elle pas suffisante, y'a t-il eu des tests la dessus ?
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.
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.
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 ;-)
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.
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 ?
Pour travailler son référencement sérieusement, il faut absolument investir dans un nom de domaine...
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?
Tu peux par exemple lire mon tutoriel .htaccess
Sinon tu peux poser tes questions dans le forum .htaccess
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
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
Sa marche bien pour afterbug dot com.