10 instructions très utiles pour votre fichier .htaccess

En termes de référencement, le fichier .htaccess s’avère être un outil très efficace qui peut vous permettre de contourner certains problèmes liés à l’indexation et à l’accès de vos contenus. Pour rappel, le .htaccess est un fichier de configuration placé à la racine d’un serveur web Apache qui vous permet de manipuler les urls de votre site et qui offre beaucoup d’autres possibilités très utiles.

Voici un petit listing des meilleures instructions à placer au sein de votre fichier htaccess si vous rencontrez quelques difficultés suite à un audit SEO par exemple.

1) Rendez vos urls « seo-friendly »

Cette astuce est l’une des plus populaires car elle permet de transformer des urls « brutes » en adresses optimisées pour un bon référencement naturel. Par exemple, il est encore fréquent de croiser une url de ce type sur un site e-commerce :

/listing.php?produit=chapeau

Grâce à votre fichier .htaccess, vous pourrez transformer cette url disgracieuse en une adresse plus compréhensible telle que :

/produits/chapeau/

Pour effectuer cette manipulation, créez un fichier texte ou ouvrez votre fichier .htaccess existant avec un éditeur du type Notepad.

Utilisation sur un site e-commerce

Pour modifier l’url d’une fiche produit sur une boutique en ligne du type « http://ma-boutique.com/index.php?product=productname&price=30″, ajoutez les lignes suivantes :

[message type="info"]Options +FollowSymLinks
RewriteEngine On
RewriteRule ^products/([a-zA-Z]+)/([0-9]+)/$ index.php?product=$1&price=$2[/message]

(.*) correspond à tous les caractères, signifie un nombre quelconque de caractères
^ signifie « commencer », c’est à dire l’URL commence par le mot «sujet»
$ signifie « fin », c’est à dire l’URL se termine par …
[0-9] correspond à des chiffres

Ces instructions changeront l’ancienne adresse en ceci : http://ma-boutique.com/products/productname/30/

Utilisation sur un blog

Pour modifier l’url d’une fiche produit sur une boutique en ligne du type « http://mon-blog.com/article.php?id=75″, ajoutez les lignes suivantes :

[message type="info"]Options +FollowSymLinks
RewriteEngine On
^article-([0-9]+).html$ article.php?id=$1[/message]

2) Ajoutez le tag rel= »canonical » à vos pages

La communauté des référenceurs a très vite adopté le rel= »canonical » qui s’est révélé être une solution appréciable concernant des problèmes de duplication d’éléments qui ne pouvaient être résolus que par des blocages ou redirections volontaires. Ce tag anti duplicat content se place dans la section  »Head » de la page HTML avant son contenu.

En pratique, cet élément s’utilise sur une page dont une url est dupliquée de manière dynamique (exemple : http://www.ma-boutique.com/category.php?list=30). Le problème ici est le « ?list=30 » rajouté à la fin du fichier « category.php ». Ce désagrément se rencontre très souvent sur les sites e-commerce nécessitant une optimisation poussée de leur référencement naturel. Pour indiquer à Google que la page à prendre en compte est  »http://www.ma-boutique.com/category.php », il faut rajouter dans le head de la page l’instruction suivante :

[message type="info"]<link rel= »canonica » href= »http://www.ma-boutique.com/category.php »/>[/message]

A savoir qu’il est également possible d’ajouter ce tag sur des fichiers PDF et des images. Pour en savoir plus sur le tag Canonical, rendez-vous sur la page d’aide de Google :

http://support.google.com/webmasters/bin/answer.py?hl=fr&answer=139394

3) Donnez des directives pour les robots des moteurs

Comme certains webmasters, vous aurez peut-être remarqué que Google se fiche éperdument du contenu de votre fichier robots.txt, et notamment des éventuelles instructions de blocage de certaines pages et dossiers de votre site. Pour bloquer le passage d’un crawler sur une page, il existe deux solutions efficaces : la meta tag Robot et l’instruction au sein d’un fichier .htaccess.

La balise Meta Robots

Pour empêcher tous les robots d’indexer une page de votre site, placez la balise Meta suivante dans la section <HEAD> de la page ciblée :

[message type="info"]<meta name= »robots » content= »noindex »>[/message]

Cet élément sera effectif pour les robots de l’ensemble des moteurs de recherche. Pour bloquer juste celui de Google, ajoutez ceci :

[message type="info"]<meta name= »googlebot » content= »noindex »>[/message]

Pour plus d’information sur l’utilisation de ces balises meta, n’hésitez pas à vous réferrer à l’aide en ligne dédiée.

L’instruction dans le .htaccess

Si vous n’utilisez pas de CMS ou que celui-ci limite considérablement votre champ d’action, le htaccess sera votre sauveur. Vous pouvez ajouter une instruction de blocage concernant l’ensemble d’un dossier de pages web en créant votre fichier .htaccess au sein du dossier concerné et il vous suffira d’ajouter cette ligne de code

[message type="info"]Header set X-Robots-Tag « noindex, noarchive, nosnippet »[/message]

Simple et efficace.

4) Quelques méthodes de redirection en vrac

La redirection permet d’améliorer le référencement d’un site internet en supprimant la présence d’un contenu en double. En pratique, un site est généralement accessible avec les WWW et sans les WWW. Du point de vue des moteurs de recherche, les sites www.mon-site.com et mon-site.com sont deux pages d’accueil différentes. Ce problème se règle via l’application d’une redirection canonique de type 301 comme celles listées ci-dessous.

Privilégier la version du site avec WWW sur toutes les urls
[message type="info"]RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301][/message]

S’assurer de l’utilisation du HTTPS sur le site
[message type="info"]RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/message]
Ajouter un slash à la fin de chaque url
[message type="info"]RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.example.com/$1/ [L,R=301][/message]

5) Paramétrer une page 404 personnalisée

Le pire pour un visiteur, c’est de tomber sur une page 404 par défaut (vous savez la page toute moche avec le gros « 404″ en gras et noir) à cause d’un lien mort ou d’un changement d’url intempestif. Si vous êtes le webmaster d’un site internet de qualité, vous devriez concocter une page 404 personnalisée aux couleurs de votre activité, incluant des liens pertinents vers les principales catégories de votre site par exemple.

Le truc bien c’est que votre page 404, si elle est vraiment originale et bien travaillée, pourra acquérir de nombreux liens entrant de manière parfaitement naturel. Voici par exemple une 404 très réussie sur laquelle je viens de tomber à l’instant : http://www.romainbrasier.fr/404

page 404 originale

Pour paramétrer votre 404 personnalisée via le .htaccess, procédez de la façon suivante :

[message type="info"]RewriteBase /
ErrorDocument 404 /ma-propre-404.html[/message]

Méthode fonctionnant aussi avec les page 500, etc…

6) Indiquez un site destiné aux utilisateurs sur mobile

Si vous proposez à la fois un site pour les internautes sur ordinateurs et sur mobiles via la même url de destination, vous devriez penser à intégrer l’option « Vary » dans votre fichier Htaccess pour faire savoir à Google que votre contenu HTML change pour les mobinautes. Cette instruction aide les robots des moteurs à crawler la page plus efficacement :

[message type="info"]Header append Vary User-Agent[/message]

Pour avoir plus d’information sur la création d’un site internet optimisé pour la navigation sur smartphone, visitez le centre d’aide de Google à cette adresse.

7) Améliorez le cache pour améliorer les performances de votre site

Ces dernières années ont vu apparaître un attachement tout particulier à la vitesse de chargement des pages d’un site internet. Et pour cause, Google a clairement avoué que c’était un des prérequis pour que le site soit perçu comme qualitatif. De plus en plus de développeurs web prennent la vitesse de chargement des sites comme un critère également très important pour la navigation sur mobile. Et ces développeurs ont raison !

Pour facilement fixer une durée de cache des éléments de votre site, vous pouvez ajouter cette instruction dans votre .htaccess. Le chiffre qui suit le « max-age » s’exprime en seconde. Un petit calcul s’impose donc si vous souhaitez réfléchir en journées complètes. L’instruction suivante paramètre le cache des fichiers pour une durée de 24h :

[message type="info"]<FilesMatch « .(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$ »>
Header set Cache-Control « max-age=28800″
</FilesMatch>[/message]

8) Une page de maintenance personnalisée

Lorsque la société à la pomme met en maintenance son site, elle montre une page personnalisée avec un petit message à l’attention des acheteurs.

 

Lorsque vous appliquez de gros changements sur votre site, il convient de faire de même en proposant à vos visiteurs une page créée spécialement pour eux avec un commentaire destiné à votre cible de clientèle.

Avec l’instruction .htaccess suivante, vous allez pouvoir rediriger des personnes en fonction de leur adresse IP. Vous pourrez ainsi épargner la vôtre pour conserver un accès à vos pages afin de les améliorer :

[message type="info"]RewriteCond %{REMOTE_ADDR}  !your_ip_address
RewriteCond %{REMOTE_ADDR}  !127.0.0.1
RewriteRule !offline.php$ http://www.example.com/back_soon.html [L,R=307][/message]
A noter que l’adresse IP 127.0.0.1 fait partie de votre configuration système et est nécessaire à votre connexion internet, c’est pourquoi elle est clairement affichée dans cette instruction.

9) Optimisez vos urls même lorsque votre CMS vous en empêche

De nombreux référenceurs vous le diront : tous les CMS ne se valent pas en termes d’optimisation SEO. Cela peut se révéler très frustrant pour un chargé de référencement de voir son champ d’action contraint par les limites de la solution utilisée, qu’elle soit open-source ou propriétaire. L’une de ces contraintes les plus gênantes concerne la modification des urls des pages pour les rendre SEO-friendly. Si vous ne pouvez pas intervenir via votre système de gestion de contenu, le fichier Htaccess est une solution à votre problème.

Par exemple, pour transformer une adresse du type product.php?id=3123 en /chapeau/ , ajoutez l’instruction suivante dans votre fichier .htaccess :

[message type="info"]# Réécrire l’url d’un produit spécifique
RewriteRule chapeau/ product.php?id=3123[/message]
[message type="info"]# Réécrire un groupe de produit
RewriteRule product/([0-9]+)/ product.php?id=$1[/message]

Cette astuce couplée à l’utilisation judicieuse d’une balise rel= »canonical » bien placée vous permettra d’améliorer votre situation. N’oubliez pas de procéder à des redirections de type 301 depuis les anciennes urls indexées par Google vers les nouvelles fraîchement créées !

10)  Ajoutez un message personnalisé dans votre header HTTP

Le site SEOMOZ le fait d’une manière originale. Pour commencer, ajoutez l’url de ce dernier sur l’outil Web Sniffer et vous pourrez découvrir un statut assez particulier :

 

Si vous souhaitez ajouter un header HTTP personnalisé à votre site, il vous est possible de mettre en place les valeurs de votre choix :

[message type="info"]Header set X-Recruiting « If you’re reading this, maybe you should be working at SEOmoz instead »[/message]

Partagez les vôtres !

Cet article est loin d’être complet. Aussi, vous pouvez ajouter en commentaire toutes les instructions du Htaccess qui vous semblent utiles pour optimiser le référencement naturel d’un site internet.

N’hésitez pas à bookmarquer cette page afin de retrouver ces instructions rapidement dans le futur si le besoin se fait sentir !

Cet article est une libre traduction de l’excellent post de Tom Anthony à retrouver ici en VO : http://www.seomoz.org/blog/htaccess-file-snippets-for-seos

Cet article vous a plu ? Faites tourner !

13 thoughts on “10 instructions très utiles pour votre fichier .htaccess

  1. Hello,

    Il y a également cette règle pour les extensions :

    RewriteEngine On
    RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD) (/.*)?/index.(htm|html|php|asp|shtml)
    RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]

    Bon, il y en a encore des dizaines mais c’est sympa et clair comme article!

  2. Bonjour,

    Désolé d’intervenir pour ça mais il y a de grosses erreurs dans cet article.

    Une page maintenance ne doit pas être la fin d’une redirection et encore moins une 307. L’URL doit envoyer immédiatement une 503.

    « Comme certains webmasters, vous aurez peut-être remarqué que Google se fiche éperdument du contenu de votre fichier robots.txt »
    > Googlebot respecte à la lettre le robots.txt dès qu’il en a pris connaissance et si celui ci est correctement écrit.
    Qu’est ce qui te fait dire le contraire ?

    « Pour bloquer le passage d’un crawler sur une page, il existe deux solutions efficaces : la meta tag Robot et l’instruction au sein d’un fichier .htaccess. »
    La baslie meta robots ne permet pas de façonner le crawl. Peut-être permet elle, à terme et par effet de bord, ralentir le crawl sur les pages visées (personnellement je pensais que non mais un confrère m’a dit que si, preuves à l’appui), mais c’est tout. Les seuls éléments permettant de bloquer le crawl sont : interdiction (403) et encore en réalité Google crawle tout de même l’URL mais s’arrête a la page d’erreur, le robots.txt.

    Je suis étonné que SEOMoz ait pu publier ça.

    1. « Googlebot respecte à la lettre le robots.txt dès qu’il en a pris connaissance et si celui ci est correctement écrit. »
      > j’ai eu l’expérience sur l’un de mes nouveaux sites ou j’avais clairement indiqué un Disallow sur l’un de mes sous-dossier qui s’est quand même retrouvé sur l’index. Il est tout à fait possible que je me soit trompé dans l’instruction mais globalement, j’ai l’impression que Google gère les sites un peu comme ça l’arrange.

      « La baslie meta robots ne permet pas de façonner le crawl. Peut-être permet elle, à terme et par effet de bord, ralentir le crawl sur les pages visées (personnellement je pensais que non mais un confrère m’a dit que si, preuves à l’appui), mais c’est tout. Les seuls éléments permettant de bloquer le crawl sont : interdiction (403) et encore en réalité Google crawle tout de même l’URL mais s’arrête a la page d’erreur, le robots.txt »
      > Merci pour cette précision très intéressante, il va falloir que je fasse quelques tests plus poussés sur le blocage du Googlebot

  3. Je voulais justement mettre en place quelques redirections, en particulier pour le https et le www. Même plus besoin de chercher : j’ai la solution dans l’article ! Merci :-)

    Il y a 2 soucis avec ces techniques :
    1/ elles ne sont pas pour les débutants. Mais est-ce bien un souci :-)
    2/ cela fait un nouveau fichier à modifier, un nouvel outil à utiliser, une autre interface. Dans certains cas, le fichier htaccess est le plus efficace donc c’est bénéfique. Dans d’autres cas, certes cela économise un plugin wordpress, mais en cas de souci, on peut vite oublier une config particulière de htaccess …

    1. En effet, modifier un fichier .htaccess n’est pas à la portée de tout le monde. Il faut déjà avoir quelques compétences en webmastering pour {comprendre|décortiquer|assimiler} toutes ces instructions. Mais cela en vaut vraiment la peine :)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>