4ème cours du module référencement du Master IDEMM. On s'intéresse cette fois-ci à tout ce qui est optimisation de la structure des sites en regardant ce qui peut bloquer les robots d'indexation, et ce qui peut compliquer le travail des moteurs dans l'appréciation de la pertinence des pages web.
2. RAPPEL : LA PYRAMIDE DU REFERENCEMENT
L'ensemble de ces composantes doit être optimisé pour obtenir une bonne
visibilité :
POPULARITE
Ce que le web dit de votre site via les liens
Crédibilise Favorise
CONTENU
Essentiellement le contenu textuel du site
Valorise Redistribue On va travailler aujourd'hui sur
cet étage (ou plutôt les fondations...)
STRUCTURE
Le code qui contient le site et le met en forme
Auteur : Sébastien Billard (s.billard@free.fr)
3. ROLES DE L'OPTIMISATION STRUCTURELLE
L'optimisation de la structure d'un site pour le référencement vise à satisfaire deux
objectifs :
- A minima, assurer l'indexabilité du site par les robots d'indexation (accessibilité)
- Mettre en valeur le contenu pour un traitement optimal par les moteurs
Auteur : Sébastien Billard (s.billard@free.fr)
4. CE QUI PEUT BLOQUER LES ROBOTS
- Contenus au format Flash
- Contenus dans des formats tiers nécessitant l'installation d'un plugin
- Scripts javascript
- Scripts Ajax (javascript et XML)
- Contenus accessible uniquement au travers d'un formulaire
- Fichiers robots.txt
Auteur : Sébastien Billard (s.billard@free.fr)
5. CE QUI PEUT COMPLIQUER LE TRAVAIL DES MOTEURS
- Contenus sous forme d'images
- Mauvais usage des balises sémantique (ou absence d'usage)
- Contenus dupliqués
- Méthodes de redirections non adaptées
- Contenu délivrés en fonction de l'user-agent ou de l'adresse IP
- Splash pages
- Frames (cadres)
Auteur : Sébastien Billard (s.billard@free.fr)
6. VOIR LE WEB COMME UN ROBOT
Auteur : Sébastien Billard (s.billard@free.fr)
7. VOIR LE WEB COMME UN ROBOT : GRANDS PRINCIPES
Une bonne façon d'appréhender la structure d'un site ou d'une page, outre
l'examen du code, est de se mettre dans la peau d'un robot, c'est-à-dire naviguer
avec les même limitations :
- Pas d'images
- Pas de mise en forme (CSS)
- Pas de javascript
- Pas de Flash
- Pas de format tiers (Silverlight, Quicktime etc.)
- Lecture dans l'ordre du code (linéarisation)
- Pas de cookies
Auteur : Sébastien Billard (s.billard@free.fr)
8. VOIR COMME UN ROBOT : LYNX
URL du lien actif
Ouvrir une URL : "g"
Lien actif Activer des liens : "↓" et "↑"
Défiler : "espace"
Cliquer : "entrée"
Titre Lien Page prec/suiv : "←" et "→"
Source : ""
Emphase Aide : "?"
Télécharger : http://csant.info/lynx.htm
Auteur : Sébastien Billard (s.billard@free.fr)
9. VOIR COMME UN ROBOT : WEB DEVELOPER
On désactive
javascript...
...les cookies...
...CSS...
...et on linéarise
la page
on remplace les images
Par leurs attributs alt...
Télécharger : http://chrispederick.com/work/web-developer/
Auteur : Sébastien Billard (s.billard@free.fr)
10. VOIR COMME UN ROBOT : WEB DEVELOPER
Rendu navigateur
Rendu « moteur »
Auteur : Sébastien Billard (s.billard@free.fr)
11. CE QUI PEUT BLOQUER LES ROBOTS
Auteur : Sébastien Billard (s.billard@free.fr)
12. CONTENUS FLASH
- Flash n'est à l'origine pas un outil de publication, mais d'animation.
- Flash nécessite un plugin pour être lu (Flash Player). Ce n'est pas un standard
du web, même si son usage est aujourd'hui très répandu.
- Flash n'est pas correctement lu par les moteurs, même s'ils arrivent désormais à
extraire quelques informations.
- Il faut donc encore aujourd'hui considérer Flash comme étant totalement
inaccessible (et l'indexation éventuelle comme un bonus).
L'indexation de Flash pose de
nouveaux problèmes...
Auteur : Sébastien Billard (s.billard@free.fr)
13. SITE 100% FLASH : EXEMPLE
Ce que voit l'utilisateur
(s'il a Flash)
Ce que voit le moteur
(c'est à dire pas grand chose)
Tout le site est inclus dans un fichier
Flash (swf), non lisible par les moteurs
http://www.villat.ch/home.html Auteur : Sébastien Billard (s.billard@free.fr)
14. OPTIMISATION DES CONTENUS FLASH : APPROCHES POSSIBLES
- Ne pas construire de sites 100% Flash. Par contre l'inclusion d'éléments Flash
dans des sites majoritairement en HTML, avec du contenu autour, est parfaitement
possible.
- Construire deux versions, une Flash, une HTML. Problème : la version Flash
devient inutile puisque c'est la version HTML qui sera la mieux référencée, et donc
la plus visitée au final.
- Fournir un contenu alternatif : pis-aller pour un site Flash ordinaire (URL unique),
intéressant pour les sites Flash à plusieurs URLs. La méthode la plus connue est
swfObject (http://code.google.com/p/swfobject/).
<script type="text/javascript" src="swfobject.js"></script>
<div id="flashcontent">
Texte alternatif, visible pour les utilisateurs sans Flash ou sans javascript, ainsi que pour les moteurs
</div>
<script type="text/javascript"> var so = new SWFObject("flash.swf", "flash", 200, 100, 7, "#336699");
so.write("flashcontent");
</script>
Exemple d'utilisation de SWFObject
Auteur : Sébastien Billard (s.billard@free.fr)
15. JAVASCRIPT
- Javascript est un langage de programmation interprété coté client (c'est le
navigateur qui execute le code, pas le serveur).
- Javascript n'est pas interprété par les moteurs, même si des chaines de
caractères comme des URLs peuvent éventuellement être extraites du code
javascript.
- Il est souvent possible d'utiliser Javascript tout en restant accessible (concept de
dégradation élégante ou d'amélioration progressive).
- Les applications de Javascript les plus problématiques pour le référencement
sont typiquement les menus déroulants, les pop-ups et les contenus AJAX.
Auteur : Sébastien Billard (s.billard@free.fr)
16. EXEMPLES DE JAVASCRIPTS ACCESSIBLES ET NON-ACCESSIBLES
Un clic sur ce lien
ouvre un pop-up,
grâce à javascript...
Ce popup reste accessible aux
moteurs et visiteurs, car le code
javascript vient en surcouche de
HTML
Ce code aurait été inaccessible
<a href = "javascript:ouvreFenetre(‘http://s.billard.free.fr/radio.blog/index.php', 300, 222)">FS Radio
(popup)</a>
http://s.billard.free.fr/dotclear/ Auteur : Sébastien Billard (s.billard@free.fr)
17. REFERENCEMENT ET JAVASCRIPT : APPROCHES POSSIBLES
- Ne pas rendre la navigation d'un site dépendant de javascript : cela garantie un
minimum d'accessibilité pour les moteurs, comme pour les visiteurs.
- Pour être accessible, javascript doit venir en surcouche de HTML, pas en
remplacement de celui-ci.
- Si un menu javascript inaccessible ne peut être modifié, intégrer des liens
alternatifs HTML qui seront suivis par les robots. Cela peut être fait dans dans le
contenu lui-même, dans la balise <noscript>, dans le footer, dans un plan de site...
Auteur : Sébastien Billard (s.billard@free.fr)
18. FORMULAIRES
- Les moteurs ne savent par remplir un formulaire, ni sélectionner un élément, ni
cliquer sur un bouton radio.
- Seuls les résultats de type GET (paramètres passé dans l'URL) sont indexables.
- La méthode POST ne permet pas l'indexation, car le résultat du formulaire ne
peut être rappelé via une URL.
Auteur : Sébastien Billard (s.billard@free.fr)
19. FORMULAIRES : EXEMPLE
Hormis quelques liens vers les
recettes les plus populaires...
...la seule façon d'accéder à l'intégralité
du contenu était de renseigner un
formulaire
Une navigation alternative
a été proposée
Auteur : Sébastien Billard (s.billard@free.fr)
20. FORMULAIRES : OPTIMISATIONS POSSIBLES
- Ne pas utiliser de formulaires comme moyen unique de navigation si le site doit
être indexé.
- Utiliser la méthode GET (paramètres passé dans l'URL), et non pas POST.
- Permettre une navigation arborescente alternative, utilisant des liens HTML.
Page de
Exemple d'arborescence
recherche proposée pour un site de cuisine
avancée
Page
Page Page
index par
index par index par
type de
ingrédient champ
plat
Liste
Liste Liste Liste Liste Liste Liste Liste Liste
recettes
recettes recettes recettes recettes recettes recettes recettes recettes
Pommes
Aubergine Poulet Soupe Risotto Gratin Champ 1 Champ 2 Champ 3
de terre
Auteur : Sébastien Billard (s.billard@free.fr)
21. ROBOTS.TXT
- Ce protocole sert à restreindre volontairement l'indexation d'un site par les
robots. Il y a de très bonnes raisons de ne pas souhaiter l'indexation de certaines
pages (prévention du duplicate content, contenu inutiles...)
- On oublie parfois d'enlever le fichier robots.txt lors d'une mise en ligne, ou bien
on se trompe dans la syntaxe d'où des cas de non-indexation involontaires.
- Le fichier est un simple fichier texte. Il se place obligatoirement à la racine du
site. Ex: http://www.site.fr.robots.txt ou http://sous-domaine.site.fr/robots.txt.
- Le fichiers robots.txt n'est pas une protection contre les intrusions. Il n'empêche
pas l'accès aux pages. Les robots peuvent décider ou non de respecter le
protocole (les moteurs courants respectent tous les directives robots.txt).
- Attention à ne pas oublier le « s » à « robots » !
Auteur : Sébastien Billard (s.billard@free.fr)
22. ROBOTS.TXT : SYNTAXE
Le user-agent spécifie à quel(s) robot(s) s'adressent les directives.
Le wildcard (*) signifie tous les robots. On aurait pu spécifier
« Googlebot ». On peut donner des instructions différentes selon les
robots.
User-agent: * Le disallow spécifie les répertoires ou fichiers
Disallow: /repertoire_un/ interdits d'indexation
Disallow: /repertoire_deux/fichier.html
Disallow: *.xml
Le wildcard est accepté par les
moteurs majeurs pour les noms de
fichiers, même si cela ne fait pas
partie du protocole originel
En savoir plus : http://www.robotstxt.org/ Auteur : Sébastien Billard (s.billard@free.fr)
23. CE QUI PEUT COMPLIQUER LE TRAVAIL DES MOTEURS
Auteur : Sébastien Billard (s.billard@free.fr)
24. IMAGES
- Les moteurs ne savent pas lire les images. Toute information contenue dans une
image non optimisée peut être considérée comme inexistante pour les moteurs.
- Toute image porteuse d'information devrait être dotée d'un attribut alt pertinent,
idéalement de moins de 80 caractères.
- Les images décoratives devraient comporter un attribut alt vide.
- Une image peut être balisée sémantiquement, par exemple intégrée dans une
balise <hn> s'il s'agit d'un titre en image.
- Un texte HTML est en général jugé plus efficace pour le référencement qu'un
texte en image doté d'un attribut alt.
Exemple d'image dotée d'un
attribut alt pertinent
<img src="logo-idemm.gif" alt="IDEMM – Ingénierie Documentaire, Edition et Mediation
Multimedia " />
Auteur : Sébastien Billard (s.billard@free.fr)
25. BALISAGE SEMANTIQUE
- Les balises sémantiques servent à définir la fonction, le « sens », de chaque
élément dans le contenu.
- Certaines balises sémantiques se voient reconnaître un poids plus fort par les
moteurs de recherche : balises de titre (<hn>), emphases (<strong>)...
- Il faut utiliser les balises pour leur fonction, et non pas pour leur impact supposé
sur le référencement, ou leur rendu graphique (pas de détournement de balise).
- Le détournement de balise est souvent contre-productif. Les poids sont relatifs : si
tout est balisé comme un titre, il n'y a alors plus de titre.
- Un certain nombre de balises sémantiques n'ont a l'heure actuelle pas une
grande utilité pour le référencement. Ce qui ne veut pas dire qu'il ne faut pas les
utiliser, ni qu'elles ne seront jamais prises en compte
Spécifications HTML 4 en français : http://www.la-grange.net/w3c/html4.01/cover.html
Auteur : Sébastien Billard (s.billard@free.fr)
26. DES BALISES MOINS UTILES (POUR LE REFERENCEMENT )
Source : http://www.minet.net/spip/IMG/pdf/FichePratiqueHtmlSemantique-2-2-2.pdf
Auteur : Sébastien Billard (s.billard@free.fr)
27. BALISAGE SEMANTIQUE : EXEMPLE DE RECOMMANDATIONS
Auteur : Sébastien Billard (s.billard@free.fr)
28. COMMENT BALISER LES ELEMENTS D'UNE PAGE WEB ?
- Un logo-titre : rien, ou <h1> (différentes opinions sur le sujet, rien semble
préférable)
- Un titre ou un sous-titre : <h1>, <h2>, <h3>...
- Un bloc de texte : <p> (peut être considéré comme la balise par défaut)
- Un passage important, ou un chapô : <strong> (cette balise peut être incluse
dans une autre, par ex <p>)
- Une énumération non ordonnée (bullet points, tirets) : <ul>
- Une énumération ordonnée : <ol>
- Les liens d'un menu : <ul> (car un menu est une liste de liens)
Auteur : Sébastien Billard (s.billard@free.fr)
29. DUPLICATION DE CONTENU
- Les moteurs de recherche sont des bases de données, et font donc la chasse
aux doublons.
- Quand un même contenu est disponible sur plusieurs URLs, les moteurs vont en
général favoriser une URL. La loi de Murphy étant universelle, ce sera rarement la
bonne ;)
- La duplication de contenu peut diluer la popularité, celle-ci se répartissant entre
les différentes URLs.
- La duplication peut être complète, ou partielle (near duplicate).
Auteur : Sébastien Billard (s.billard@free.fr)
30. SOURCES COURANTES DE DUPLICATION
- Noms de domaines multiples (contenu visible sur un .fr et un .com, ou sur
plusieurs domaines).
- Non canonisation des domaines (site accessible avec et sans « www »)
- Identifiants de sessions passé dans les URLs.
- Mauvaise gestion de la réécriture d'URLs (absence de redirection 301)
- Inversion de l'ordre des paramètres dans les URLs.
- Pages d'impression.
Mauvaise canonisation Identifiants de session
Pages d'impression
Auteur : Sébastien Billard (s.billard@free.fr)
31. EVITER LA DUPLICATION DE CONTENU
- Utiliser un seul nom de domaine, et rediriger les autres vers celui-ci, via des
redirections 301.
- Canonisation : faire en sorte qu'une seule version soit accessible, en redirigeant
l'autre vers la première, via une redirection 301.
- Eviter les identifiants de session passé dans les URLs. Préférer l'identification
par cookies.
- URL rewriting : toujours rediriger la version non-réécrite vers la version réécrite,
via une redirection 301.
- Inversion de l'ordre des paramètres dans les URLs : faire attention :)
- Pages d'impression : interdire leur indexation par robots.txt, ou meta tags.
- Eventuellement : utiliser la balise <link> rel=canonical. Attention cette balise est
une indication, pas une directive.
Auteur : Sébastien Billard (s.billard@free.fr)
32. EVITER LA DUPLICATION DE CONTENU : 301 ET REL=CANONICAL
Ok ! j'indexe l'URL
actuelle et lui transfère
le « linkjuice » des
301 anciennes URLs
Ancienne URL URL actuelle
Ok ! j'indexe l'URL
canonique et lui
transfère le « linkjuice »
rel=canonical des versions dupliquées
Contenu dupliqué URL canonique
La balise link rel=canonical s'insère dans le <head> des documents. Ne pas interdire
l'indexation sinon la balise ne pourra être prise en compte. Syntaxe :
<link rel="canonical" href="http://www.site.fr/version-canonique.html" />
Auteur : Sébastien Billard (s.billard@free.fr)
33. REDIRECTIONS
- Seules les redirections coté serveur (redirections HTTP) sont suivies par les
moteurs. Elles peuvent être gérée au niveau du serveur (.htaccess, mod_rewrite)
ou du code des pages (header en PHP).
- Les redirections à base de javascript ou de balises meta refresh sont à éviter.
- Parmi les redirections coté serveur, seules les redirections 301 (permanentes)
transmettent correctement la popularité et permettent une bonne indexation des
pages. Eviter les redirections 302 (temporaires).
- Les redirections successives sont à éviter autant que possible, même les 301.
Exemple de redirection javascript,
<script type="text/javascript"> à placer dans le <head>
<!--
window.location = "http://www.site.fr/"
//-->
</script> Exemple de redirection utilisant la
balise meta refresh
<meta http-equiv="refresh" content="0;url=http://www.site.fr/" />
Auteur : Sébastien Billard (s.billard@free.fr)
34. COMPORTEMENT DES MOTEURS FACE AUX REDIRECTIONS 301 ET 302
Ok ! J'indexe le contenu
de l'URL actuelle mais
garde l'ancienne
302 adresse. Mon linkgraph
reste le même
URL de base URL actuelle
Ok ! j'indexe l'URL
actuelle et lui transfère
le « linkjuice » des
301 anciennes URLs
Ancienne URL URL actuelle
Auteur : Sébastien Billard (s.billard@free.fr)
35. TESTER UNE REDIRECTION AVEC WEBBUG
Sélectionner
Spécifier l'URL à tester HTTP 1.1
Le logiciel affiche
l'IP du serveur
Le logiciel affiche la réponse
HTTP, ici une redirection 301 Cliquer sur
« Get »
Télécharger : http://www.cyberspyder.com/webbug.html
Auteur : Sébastien Billard (s.billard@free.fr)
36. TESTER LES REPONSES HTTP D'UN SITE AVEC XML SITEMAP
URL de départ
URLs à inclure URLs à exclure
On respecte ou non
le protocole robots.txt
On exclue les
images
On lance le crawl
URL : http://www.auditmypc.com/xml-sitemap.asp
Auteur : Sébastien Billard (s.billard@free.fr)
37. TESTER LES REPONSES HTTP D'UN SITE AVEC XML SITEMAP
Les résultats du crawl sont
visibles dans l'onglet
« Sitemap »
Balises Liens entrants et Réponses
URLs crawlées <title> sortants HTTP
Auteur : Sébastien Billard (s.billard@free.fr)
38. NEGOCIATION DE CONTENU ET « CLOAKING » NON MALICIEUX
Il est possible de personnaliser le contenu d'une page en fonction de la localisation
de l'utilisateur, ou de sa langue. Cela peut poser des problèmes en matière de
référencement, pour trois raisons :
- L'adresse IP d'un robot d'indexation n'est pas forcément localisée dans la même
région que vos visiteurs cibles.
- Les robots d'indexation en général ne déclarent pas de langage.
- Plusieurs versions d'un contenu vont se partager une URL unique, une seule
version sera donc indexée.
Mieux vaut donc éviter en général la négociation de contenu, et proposer à
l'utilisateur de sélectionner la langue et/ou le pays de son choix.
Géolocalisation Localisation en
sur IP fonction de la
langue
Auteur : Sébastien Billard (s.billard@free.fr)
39. STRUCTURATION DES SITES INTERNATIONAUX (LOCALISATION)
- Les extensions locales sont souvent favorisées par les versions locales des
moteurs. Des domaines séparés avec TLD locaux (.fr, .be, .co.uk...) sont donc la
solution à préférer.
- Si certains TLD locaux ne sont pas disponibles, envisager un domaine avec
extension internationale (.com...). Le nom de domaine peut comporter un
indicateur de localisation, par ex : nom-societe-usa.com.
- Si tous les sites doivent être hébergés sur un domaine unique, bien séparer les
versions locales, par des sous-domaines (ex : usa.societe.com) ou par des
repertoires (ex : www.societe.com/usa/).
- Les sous-domaines apparaissent préférables, car il est plus facile d'effectuer des
actions de référencement spécifiques.
Auteur : Sébastien Billard (s.billard@free.fr)
40. STRUCTURATION DES SITES INTERNATIONAUX (LANGUE)
- La langue des documents est déterminée automatiquement par les moteurs de
recherche, en fonction des termes présents dans le contenu.
- L'attribut « lang » n'est pas pris en compte par les principaux moteurs.
Auteur : Sébastien Billard (s.billard@free.fr)