Note : cet article actualise et complète certains articles parus précédemment sur le site Abondance et concernant le sujet traité...

 Sites réalisés avec des frames

De façon assez générale, les frames sont très souvent considérées comme un réel obstacle pour les moteurs de recherche et donc pour le bon référencement d'un site qui prendrait en compte cette technique de subdivision de l'écran en différentes fenêtres indépendantes. Et... c'est vrai. Enfin, c'est souvent vrai, serait-on tenté de dire, car nous verrons plus loin que les frames peuvent également être utilisées pour obtenir un meilleur positionnement...

Avant de voir comment les moteurs réagissent lorsqu'ils arrivent sur une page ainsi bâties, il est nécessaire de dire deux mots de la réalisation de ce type de page en HTML. Imaginons une page web imaginaire qui aurait pour nom Frames.html et dont le code HTML serait le suivant :

<FRAMESET ROWS=20%,80%>

<FRAME SRC="FH.html" NAME="haut">

<FRAMESET COLS=*,2*>

<FRAME SRC="FGB.html" NAME="gauchebas">

<FRAME SRC="FDB.html" NAME="droitebas">

</FRAMESET>

<NOFRAMES>

Cette page a &eacute;t&eacute; r&eacute;alis&eacute;e avec des frames.

</NOFRAMES>

</FRAMESET>

La balise <FRAMESET> ... </FRAMESET> permet de définir les cadres qui constitueront l'écran du navigateur et d'indiquer quels fichiers HTML (ici FH.html, FGB.html et FDB.html) seront affichés à l'intérieur de ces zones (= cadres = frames). Notez bien que le fichier Frames.html, que nous appellerons "fichier mère", sert uniquement à la description des zones de découpage de l'écran et ne contient aucune indication sur le texte ou les images qui y seront affichées.

Les fichiers FH.html, FGB.html et FDB.html, que nous appellerons "fichiers filles", contiennent pour leur part les informations à afficher dans chaque partie d'écran. Le fichier Frames.html (fichier "mère") décrit donc la façon dont les fichiers "filles" seront affichés sur l'écran.

Mettons nous maintenant à la place du spider qui arrive sur une page, obligatoirement de type "mère" dans un premier temps. Il peut avoir quatre réactions différentes :

* Premièrement, il ignore complètement la page Web et ne l'indexe pas, car il a décidé (enfin, ses concepteurs ont décidé pour lui) de ne pas prendre en compte les pages avec frames. ce type de cas n'existe quasiment plus aujourd'hui sur le Web.

* Deuxièmement, il indexe les fichiers "mère" et "filles" et fonctionne exactement comme pour une page sans frames. La situation est idéale : si un mot clé est trouvé dans l'une des pages "filles", il peut revenir au fichier "mère" et affiche la page comme elle doit l'être normalement, restaurant ainsi le contexte d'affichage initial. Très peu de moteurs (et pour tout dire aucun) ne savent faire cela. Dommage...

* Troisièmement, le spider indexe uniquement la page "mère", et notamment le contenu de la balise <NOFRAMES>...</NOFRAMES> et ignore délibérément les fichiers "filles" en ne suivant pas les liens présents dans les balises <FRAME>. Bon nombre de moteurs fonctionnent ainsi. Et d'autres, censés bien prendre en compte les frames, n'en font souvent pas plus.

* Quatrièmement, le spider indexe les fichiers "mère" et "filles". Puis il les considère tous comme des pages Web distinctes, sans rapport les unes avec les autres. Si un mot clé est trouvé, par exemple, dans la page FDB.html, le moteur proposera un lien direct vers ce document et non pas vers Frames.html. FDB.html s'affichera alors seul sur l'écran du navigateur. Le moteur n'a pas pu reconstituer le lien entre le fichier "fille" FDB.html et le "mère" Frames.html. Le contexte des frames est ainsi perdu. L'internaute, qui a cliqué sur un lien dans la page de résultats du moteur, se retrouve avec une page sortie de son contexte "framé". Pour tout dire, c'est assez génant et, malheureusement, très courant sur les moteurs de recherche...

Fichier PDF téléchargeable ici (la lettre Réacteur n'était à cette époque-là disponible que sous cette forme).