Aller au contenu

probleme referencement-frame


nick774

Sujets conseillés

bonjour et bienvenue a bord du hub

j'ai eu un site en frames aussi avec le meme probleme, j'avais mis un bouton accueil sur chaque page mais ca oblige tout visiteur à repasser par l'entree ce qui peut etre contraignant pour celui qui a une connexion lente

sinon il existe je crois des scripts qui permettent de rediriger sur les cadres

des specialistes ici t'indiqueront sans doute lesquels

Lien vers le commentaire
Partager sur d’autres sites

Bonjour nick774,

et bienvenue sur le Hub :)

Pour te conseiller plus utilement, il serait mieux de disposer de l'URL de ton site.

Pour cela, il te suffit de l'ajouter dans ton profil. Elle sera ainsi toujours disponible.

La première chose à faire, c'est d'utiliser la balise noframes pour y ajouter du contenu et des liens à l'intention des navigateurs qui ne reconnaissent pas les cadres... y compris les robots de moteurs !

Voici le squelette recommandé par le W3C pour un site avec frames.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
    "http://www.w3.org/TR/html4/frameset.dtd">
 <HTML>
 <HEAD>
 <TITLE>Un document avec jeu d'encadrement et NOFRAMES</TITLE>
 </HEAD>
 <FRAMESET cols="50%, 50%">
    <FRAME src="principal.html">
    <FRAME src="table_des_matieres.html">
    <NOFRAMES>
    <P>Voici la <A href="principal-noframes.html">
             version sans cadres du document.</A>
    </NOFRAMES>
 </FRAMESET>
 </HTML>

Il est utile aussi de prévoir un plan du site et un lien entre les toutes les pages et la page d'accueil.

Lien vers le commentaire
Partager sur d’autres sites

Ce qui est génant, ce n'est pas que le visiteur trouve des bouts de cadre dans les résultats du moteur, mais qu'il n'ait qu'une partie du site quand il clique dessus.

Ce qui est souhaitable, c'est qu'il retrouve la page entière, avec tous les cadres, quand il clique sur un cadre isolé.

C'est possible avec un javascript qui remet le cadre isolé dans son contexte.

C'est ce que fait le site de la CNIL avec une page nommée "frame.html" qui contient le code suivant (extrait) :

-----------

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<script LANGUAGE="JavaScript">

<!--

document.write('<FRAMESET COLS="112,*">');

document.write('<FRAME SRC="barver.htm" NAME="bar">');

document.write('<FRAME SRC="' +(location.search ?

location.search.substring(1) : index.htm)+(location.hash)+'"" NAME="princ">');

document.write('<\/FRAMESET>');

//-->

</SCRIPT>

</html>

---------------

Et les pages contenues dans les cadres ont ce script, extrait du code :

--------

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">

<HTML>

<HEAD>

<TITLE></TITLE>

<script language="JavaScript">

<!--

function checkFrame(){

if (self == top) {

top.location.href='../frame.htm?' + self.location;

}

}

//-->

</SCRIPT>

</HEAD>

<BODY onLoad="checkFrame()">

-----------

Pour éviter d'indexer la page de menu du cadre, on rajoute la meta robots avec "noindex, follow" comme contenu.

Lien vers le commentaire
Partager sur d’autres sites

L'exemple donné par philippe est interessant.

D'avoir référencé ces pages et permis aux moteurs de lire le contenu des frames avec les balises noframes, a ensuite un inconvenient.

Généralement le menu de la frame est séparée du contenu, qui ne contient que du texte et bien souvent il n'est pas utile de mettre retour à la page d'accueil, puisque le menu de gauche ou droite permet la navigation.

Cependant si la page de contenu est dans l'index du moteur et qu'un visiteur y accède, il va avoir une page de texte, sans aucun lien pour naviguer et continuer sa visite.

Le script proposé permet de re afficher la page avec son cadre itinial de navigation.

Sans ce script il faut alors programmer la navigation en bas de chaque page de contenu, et maintenir celà à jour dès lors que le site évolue un peu.

Lien vers le commentaire
Partager sur d’autres sites

y'a une autre solution sinon, qui est un script de reconstruction sur la page fille

<script LANGUAGE="JavaScript">

if (parent.frames.length==0)

{

document.location.href = 'http://www.monurl.com/index.htm';

}

</SCRIPT>

qu'en pensez vous?

Lien vers le commentaire
Partager sur d’autres sites

y'a une autre solution sinon, qui est un script de reconstruction sur la page fille

<script LANGUAGE="JavaScript">

if (parent.frames.length==0)

  {

  document.location.href = 'http://www.monurl.com/index.htm';

  }

</SCRIPT>

qu'en pensez vous?

L'inconvénient de ce script est qu'il renvoie au cadre général (parent) sans forcément afficher le contenu de la page fille, si ce n'est pas le cadre par défaut affiché par la page index (nom dans cet exemple).

Il faudrait, pour avoir le contenu désiré, créer autant de pages index (index1, index2, ...) qu'il y a de pages filles.

Le script sur le site de la CNIL, affiché plus haut, affiche forcément le contenu désiré.

Lien vers le commentaire
Partager sur d’autres sites

j'ai un ptit probleme concernant l'utilisation de votre exemple qui me parait plus judicieux en effet.

Si vous pourriez me donner un ptit coup de main ce serait sympa!

voila une partie de mon code dans la page index.htm

<frameset framespacing="0" border="0" rows="140,*" frameborder="0">

<frame name="banniere" scrolling="no" noresize target="sommaire" src="bandeau2.asp" marginwidth="0" marginheight="0"><frameset cols="187,*">

<frame name="sommaire" target="principal" src="sommaire.asp" marginwidth="0" marginheight="0" scrolling="yes" noresize>

<frame name="principal" src="principal.asp" marginwidth="0" marginheight="1" target="_self">

</frameset>

j'espere que ça va pouvoir vous aider!

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

j'ai un ptit probleme concernant l'utilisation de votre exemple qui me parait plus judicieux en effet.

Si vous pourriez me donner un ptit coup de main ce serait sympa!

voila une partie de mon code dans la page index.htm

<frameset framespacing="0" border="0" rows="140,*" frameborder="0">

  <frame name="banniere" scrolling="no" noresize target="sommaire" src="bandeau2.asp" marginwidth="0" marginheight="0"><frameset cols="187,*">

    <frame name="sommaire" target="principal" src="sommaire.asp" marginwidth="0" marginheight="0" scrolling="yes" noresize>

    <frame name="principal" src="principal.asp" marginwidth="0" marginheight="1" target="_self">

  </frameset>

j'espere que ça va pouvoir vous aider!

Merci d'avance

La page index du site n'a pas à être modifiée.

Il faut juste créer une nouvelle page appelée "frame.html" (voir mon premier message plus haut) par exemple dont l'unique objet est de rediriger le visiteur qui tombe sur une page fille dans les résultats d'un moteur de recherche vers le cadre parent.

La page frame.html recrée la structure du cadre de la page index en appelant dans le cadre "principal" la page orpheline.

Modifié par Philippe Batreau
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...