Le référencement et le positionnement d'une page peut parfois être géné, voire totalement empêché, par certains "obstacles".
Ici nous allons les passer en revue et expliquer comment les contourner.



  Le problème...
Face aux pages en frame, le spider peut avoir plusieurs réactions :
 -1 : il ignore totalement la page et ne l'indexera pas (rare)
 -2 : il indexe les fichiers "parent" et "fille" et fonctionne comme une page sans frame. C'est la situation révée (mais ne rêvez pas trop : très peu de robots comprennent les frames).
 -3 : il n'indexe que le fichier "parent" (celui qui contient les "filles") et passe son chemin. Ce comportement est assez répandu. Résultat : vos pages qui sont appelées par la frame seront purement et simplement oubliées par les moteurs. C'est facheux...
 -4 : le spider indexera le "parent" et la "fille" mais ne comprendra pas le lien qui existe entre eux. Résultat : les considérant comme deux pages indépendante l'une de l'autre, elles seront présentées comme telles dans les pages de résultats. Votre site n'aura plus ni queue ni tête... C'est le comportement le plus fréquent.

  ...et la solution !
Pour répondre au problème de frame en général, il faut utiliser la balise <noframes>.
Cette balise sera placée après la définition de la frame et l'on y mettra du texte comme dans une page" normale" :
<frameset cols=25%,75%>
<frame src="gauche.htm">
<frame src="droite.htm">
</frameset>
<noframes>
Et voici du texte pour le robot !!!! Optimisez le et mettez des liens vers vos pages filles car il n'y a que ça qui est pris en compte...
</noframes>


Pour régler le problème 4 (destruction de la frame par le robot), je vous conseille vivement d'insérer un javascript de reconstitution de frame dans vos "filles".
Exemple de javascript (qui fonctionne ;-)) :
<script language='javascript'>
<!-- // Tester si le document fait partie d'une presentation avec frames
if (parent.frames.length==0) parent.location.href="parent.htm" //-->
</script>

Explication : un test est effectué pour savoir si la page est affichée seule (en dehors de son cadre), si oui : une redirection est opérée vers l'url de la page mère (parent.htm).
Tout cela est parfaitement transparent pour les surfeurs (sauf si votre page pèse 10 mégas...)



  Le problème...
Pour que les robots des moteurs soit heureux et vous classent bien il faut les nourrir. Et on nourrit principalement un robot avec du texte ( revoyez vos bases si vous n'avez pas suivi ! ).
Donc les homepages entièrement graphiques et les accueil en flash : le robot n'aime pas et la plupart du temps n'indexera pas (ou très mal) vos pages...

  ...et la solution !
Une première solution consiste en la création de pages satellites. Mais attention au spam ! Vous retrouver blacklisté par les moteurs à la suite d'une mauvaise utilisation de pages sat serait pire que d'être ignoré.

Deuxième solution : créer une page en frame 100% et y déposer dans le cadre la fameuse page tout en flash ou en images. Et, bien sûr, utiliser la balise noframes !
Exemple :
<frameset cols=100%,0%>
<frame src="mapagegraphique.htm">
<frame src="pagebidon.htm">
</frameset>
Ce n'est pas la panacée...

Troisième solution (pour les pages en flash exclusivement) : il existe une balise <noembed> qui fonctionne de la même manière que la balise <noframes>, mais pour les fichiers flash. Efficacité moyenne...

Quatrième solution -et c'est sans doute la meilleure- : refaire une home page avec du texte (au moins un minimum ! ).


Les url de sites dynamiques (asp, cfm...) sont elles aussi souvent très difficilement référençables : l'intitulé des urls est trop long ou contient des caractères "exotiques" qui éloignent les robots (exemple : le "?" des querystring). Les pages faisant appel à des CGI-bin sont particulièrement mal référencées.

Les imagemaps utilisant la balise area sont assez bien comprises par l'ensemble des moteurs : les liens seront suivis.

Par contre les liens appelés dans des javascript seront sytématiquement ignorés !