Comment optimiser le référencement avec un système de cadres
mercredi 31 mars 2004, par FAQ - Foire aux questions référencement
Question :
J’ai un site avec des frames (cadres) et dans les résultats des moteurs de recherche, j’obtiens mes pages sans le cadre général. Comment faire afficher l’ensemble du cadre ?
Réponse :
C’est un problème classique du référencement des sites construit avec des cadres, c’est à dire les balises frameset et frame.
Ce qui est génant, ce n’est pas le référencement de la page isolée (page fille), mais le fait que le visiteur en cliquant dessus arrive sur une page isolée de son cadre général (cadre parent).
Il faut donc, rediriger le visiteur qui clique sur un tel lien dans le cadre parent, affichant la page fille.
C’est possible en suivant la méthode suivante, utilisée notamment par l’ancien site de la CNIL :
il faut créer une nouvelle page dont le rôle unique sera d’afficher le cadre parent au lieu de la page fille isolée. Appelons cette page "cadre.html". Cadre.html sera appelée par un javascript par la page fille.
Cadre.html contient un javascript après les balises d’entête renvoyant vers le cadre parent :
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script LANGUAGE="JavaScript">
<!--
document.write('<FRAMESET COLS="xx,*">'); // votre structure de frameset
document.write('<FRAME SRC="menu.html" NAME="bar">'); // votre cadre de menu
document.write('<FRAME SRC="' +(location.search ?
location.search.substring(1) : index.htm)+(location.hash)+'"" NAME="princ">'); // affichage de la page isolée
document.write('<\/FRAMESET>');
//-->
</SCRIPT>
</html>
Vos pages filles doivent appeler la page cadre.html en y insérant un javascript dans l'entête et l'appeler dans la balise <body> :
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<script language="JavaScript">
<!--
function checkFrame(){
if (self == top) {
top.location.href='../cadre.html?' + self.location;
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="checkFrame()">