Perrine Posté 23 Mars 2006 Posté 23 Mars 2006 Bonjour à tous, J'ai récupéré un projet web (http://www.cabrita-promotion.fr) qui a été initialement construit en frame. Mon client me fait remarquer qu'en tappant "cabrita promotion" sur Google, le 2ème résultat renvoie vers la page main-intro.php alors que je souhaiterai qu'il renvoie vers http://www.cabrita-promotion.fr/ tout court. (Ce problème n'apparait pas sur Yahoo). Est-ce que la création d'un fichier robot.txt lui indiquant de ne pas indexer les dites pages va résoudre le problème ? Si oui, je risque quand même de voir déréférencer mon site. (Aujourd'hui c'est pas capital car aucune prestation de référencement n'est en cours mais je n'ai pas non plus envie de voir le site sortir de l'index). Quelqu'un saurait comment résoudre ce problème ? (J'ai aussi pensé à la redirection mais ça va coincer quand je vais vouloir afficher la frame main-intro.php) Merci
Compte supprimé Posté 23 Mars 2006 Posté 23 Mars 2006 Solution a court terme : - Faire une redirection javascript vers la page avec frames (seulement si on a chargé la page sans frames) Solution à moyen terme : - Reconstruire le site sans les frames
Perrine Posté 23 Mars 2006 Auteur Posté 23 Mars 2006 La solution à court terme n'est malheureusement pas envisageable pour le moment. Ce problème est donc un problème classique des sites en frame ? Merci pour ton aide Je vais voir si je peux trouver ce genre de javascript, car ce langage et moi ne nous connaissons pas.
Dan Posté 23 Mars 2006 Posté 23 Mars 2006 Bonjour Perrine, De plus je vois que ce domaine a été créé avec 3 framesets imbriqués... le référencement doit être catastrophique. Ce n'est pas le référencement qu'un site de ce type devrait avoir: 8 pages dans l'index Google, et zéro backlink... http://www.google.fr/search?hl=fr&q=site%3...echercher&meta= Avec un peu de php et des frames virtuels (includes) la reconstruction de ce site devrait être rapide. Dan
Perrine Posté 23 Mars 2006 Auteur Posté 23 Mars 2006 J'entends bien vos propositions. Je serai la première à en parler au client quand j'en aurai l'opportunité (quoi que j'en ai déjà parlé, mais...). Le site a été refait (pas par mes soins, je vous rassure ) il y a peu (moins d'un an) donc je ne peux rien proposer raisonnablement aujourd'hui. Dans un premier temps, je souhaiterai juste trouver une solution à ce problème de frame sur Google. Et à moyen terme, proposer une alternative au site en frame et un référencement digne de ce nom
Dan Posté 23 Mars 2006 Posté 23 Mars 2006 Tu peux toujours forcer le retour à la page d'accueil si le frameset n'est pas complet... Mais lorsque les personnes viendront de Google, elles tomberont automatiquement sur la page d'accueil en suivant n'importe quel lien. C'est loin d'être idéal. Les frames interdisent aussi de mettre une page en favori vu que toutes les pages du site ont la même URL ... dommage pour vos visiteurs. Ce serait quelque chose comme ceci, à mettre dans toutes les pages, sauf celle définissant les framesets: <script type="text/javascript"><!--if(top == self) top.location.href = http://www.cabrita-promotion.fr;--> A placer entre <head> et </head>
Perrine Posté 23 Mars 2006 Auteur Posté 23 Mars 2006 Je connnais tous les inconvénients des frames (mauvais référencement, impossibilité de mettre en favori, mauvaise accessibilité...). D'ailleurs, quand on m'avait proposé de reprendre le projet, j'avais longtemps hésité car les frames sont en général une source d'embêtements (d'autant plus que je n'ai pas du tout l'habitude de travailler avec). Mais je comprends aussi le client qui a réinvesti dans une refonte de son site l'année dernière et qui ne souhaite pas encore débourser des sous aujourd'hui. (Enfin, je le comprends à moitié car il n'est pas visible aujourd'hui sur le net et ça, c'est très dommageable pour lui...). Mais d'un point de vue financier, c'est compréhensible, non ? Merci Dan pour ta solution en js, je vais tester ça dès que possible
Compte supprimé Posté 23 Mars 2006 Posté 23 Mars 2006 Tu peux toujours forcer le retour à la page d'accueil si le frameset n'est pas complet...Mais lorsque les personnes viendront de Google, elles tomberont automatiquement sur la page d'accueil en suivant n'importe quel lien. C'est loin d'être idéal. Il doit y avoir la possibilité de rediriger vers la bonne page avec les frames. En tous cas je l'ai déjà vu.
Dan Posté 23 Mars 2006 Posté 23 Mars 2006 Oui, mais avec 3 frameset imbriqués je n'ai pas la capacité de programmation en Javascript pour le faire... Je l'avais fait pour un frameset avec 3 frames, ça marchait bien... mais j'avais copieusement pompé le code.
Le-juge Posté 23 Mars 2006 Posté 23 Mars 2006 Salut Je pense qu'a moyen terme, la solution de refondre le site en php en appelant des includes dans des <div> avec des overflows sera a la fois la plus rapide et la moins couteuse...
Perrine Posté 28 Mars 2006 Auteur Posté 28 Mars 2006 Encore merci pour votre aide et vos propositions. Dan, je n'ai pas réussi à faire fonctionner ton script... ni d'ailleurs les quelques 4 ou 5 que j'ai trouvés sur le Net. Finalement, j'ai trouvé ce dernier qui fonctionne parfaitement : <script language="JavaScript"><!--if (parent.frames.length==0)parent.location.href="index.htm"//--></script>
Dan Posté 28 Mars 2006 Posté 28 Mars 2006 Il est vrai que je n'ai pas testé ce script avec autant de frameset imbriqués... Mais je l'utilise sur le Hub sans problème ... Dan
kuisless Posté 11 Juin 2007 Posté 11 Juin 2007 Bonjour, je viens de mettre en place la solution au problème. Si la page mere contient une frame nommée myiframe: Dans toutes les pages filles, à l'interieur du body, inclure le code suivant: < script type="text/JavaScript"> if (parent.frames.length==0){ parent.location.href="index.php?iframeurl="+location.href;}</script>Dans le head de la page mere, inclure:<script type="text/JavaScript"> function init(){ var query=this.location.search.substring(1); if (query.length > 0){ var params=query.split("&"); for (var i=0; i<params.length; i++){ var pos = params[i].indexOf("="); var name = params[i].substring(0, pos); var value = params[i].substring(pos + 1); if(name=="iframeurl"){ frames['myiframe'].location.href=value; } } } }</script> Invoquer cette fonction au chargement de la page: <body onload="init();"> Ca marche sur mon site, starletteslieusaint.free.fr.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant