1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

Référencement d'un site en frame

Discussion dans 'Tests et études de cas' créé par UsagiYojimbo, 7 Novembre 2006.

  1. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 867
    J'aime reçus:
    70
    Nous savons tous qu'il faut éviter de concevoir un site en frame si on veut un tant soit peu le référencer. Mais quid des sites déjà développés et pour lesquels le client ne souhaite pas un redéveloppement ?

    Le plus dur dans un site en frame reste de référencer toutes les pages tout en offrant un confort de navigation optimal à l'utilisateur. En effet, on voit souvent des sites en frame référencés mais une fois cliqué sur un lien vers ce site depusi les pages de résultats de Google, on se retrouve dans une page amputés de certains éléments, voire pire sans éléments de navigation.

    J'ai donc mis au point une technique, utilisant le javascript de manière à ne pas être éxecutée lors du apssage des bots, qui a pour but de replacer la page dans le frameset si elle est appellée directement.

    La méthode se décompose en différents éléments :
    1) un fichier javascript qui va servir à créer/lire des cookies qu'on crée lors de l'appel d'un page hors contexte, et une fonction quivalancer tout le processus :
    Code:
    // JavaScript Document
    function detect_orphan_page(current_page)
    {
    	if (parent.location != "http://www.example.com/url_de_la_page_de_frameset.asp")
    	{
    		var pathname=location.pathname;
    		//var myDomain=pathname.substring(0,pathname.lastIndexOf('/')) +'/';
    		var date_exp = new Date();
    		date_exp.setTime(date_exp.getTime()+(365*24*3600*1000));
    		
    		SetCookie("curpage",current_page,date_exp,"/");
    		parent.location = "http://www.example.com/url_de_la_page_de_frameset.asp";
    	}
    }
    
    function SetCookie (name, value) {
    	var argv=SetCookie.arguments;
    	var argc=SetCookie.arguments.length;
    	var path=(argc > 2) ? argv[3] : null;
    	var domain=(argc > 3) ? argv[4] : null;
    	var secure=(argc > 4) ? argv[5] : false;
    	document.cookie=name+"="+escape(value)+
    		((path==null) ? "" : ("; path="+path))+
    		((domain==null) ? "" : ("; domain="+domain))+
    		((secure==true) ? "; secure" : "");
    }
    
    function getCookieVal(offset) {
    	var endstr=document.cookie.indexOf (";", offset);
    	if (endstr==-1)
          		endstr=document.cookie.length;
    	return unescape(document.cookie.substring(offset, endstr));
    }
    
    function GetCookie(name) {
    	var arg=name+"=";
    	var alen=arg.length;
    	var clen=document.cookie.length;
    	var i=0;
    	while (i<clen) {
    		var j=i+alen;
    		if (document.cookie.substring(i, j)==arg)
                            return getCookieVal (j);
                    i=document.cookie.indexOf(" ",i)+1;
                            if (i==0) break;}
    	return null;
    }
    
    On appelle donc la fonction gest_frame en en-tête des pages de contenus, en lui passant en paramètre le nom de cette même page :
    Code:
    <script language="javascript">
    detect_orphan_page('page.asp');
    </script>
    
    Sur la page du frameset, on a ce bout de code en en-tête de page :
    Code:
    <?
    // gestion du réajustement des frame si le cookie page a été créé et si le // visiteur n'est pas un bot
    if ((isset($_COOKIES['curpage'])) && ($_COOKIES['curpage']!=""))
    {
    	$page = $_COOKIES['curpage']
    }
    else
    {
    	page = "page_par_defaut.html"
    }
    ?>
    
    Tout cela fonctionne de la manière suivante : quand l'utilisateur arrive sur une page de l'intérieur du frameset, le script détecte que cette page est appellée hors-contexte, crée donc une variable contenant le nom de la page et redirige l'utilisateur vers la page telle qu'elle devrait apparaître dans le frameset.

    La limitation de cette méthode est celle du javascript : si l'utilisateur surfe sans javascript, il ne verra aucun différence et la page s'affichera hors-frameset.

    Pour l'instant, la méthode semble bien fonctionner sur les sites où je l'ai appliquée. L'enesemble des pages du site a pu être indéxé, et quand je clique sur les pages de mon site depuis les résultats de recherche, la page s'affiche avec le frameset complet.

    J'aimerais avoir votre avis sur cette méthode : risques, améliorations possibles, etc.
     
  2. bee_human
    bee_human WRInaute passionné
    Inscrit:
    16 Juin 2005
    Messages:
    1 746
    J'aime reçus:
    0
    Que se passe-t-il quand l'internaute qui est arrivé sur une page sans frameset depuis un moteur fait page précédente avec son browser ?

    C'est ça qui m'a fait abandonné les frames quand j'ai constaté dans mes stats que page précédente à cause du script renvoyait toujours sur la même page et que certains internautes cliquaient rageusement 10 à 20 fois sur le bouton page précédente avant de comprendre qu'il retomberaient toujours sur la même page.
     
  3. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 867
    J'aime reçus:
    70
    ...

    ... certes à un moment l'utilisateur se retrouve bloqué sur sa page d'entrée sur le site (et encore a priori ca ne le fait pas sur Firefox). Peut être un petit problème à résoudre. Personnelement je ne fais pas de sites en frame, et ma société a banni ce modus operandi depuis longtemps, mais quand on se retrouve avec un site comme ça à référencer, il faut bien trouver des solutions.
     
  4. mic_comte
    mic_comte WRInaute discret
    Inscrit:
    3 Août 2006
    Messages:
    104
    J'aime reçus:
    0
    Et la solution qui consiste a mettre un lien sur chaque page de contenu? C'est ce que je fai sur mon site, et ca a l'air de satisfaire les gens.
     
  5. nakuni
    nakuni Nouveau WRInaute
    Inscrit:
    6 Décembre 2006
    Messages:
    27
    J'aime reçus:
    0
    Ca à l'air de fonctionner niveau utilisateur, je vais tester la réaction de google. Par contre j'ai changé quelques trucs :

    Le fichier .js que j'ai appelé gestion_frames.js :

    Code:
    // JavaScript Document 
    function detect_orphan_page(current_page) 
    { 
     if (parent.frames.length < 1) 
       { 
          var pathname=location.pathname; 
          //var myDomain=pathname.substring(0,pathname.lastIndexOf('/')) +'/'; 
          var date_exp = new Date(); 
          date_exp.setTime(date_exp.getTime()+(365*24*3600*1000)); 
           
          SetCookie("curpage",current_page,date_exp,"/"); 
         parent.location = './index.php';
       } 
    } 
    
    function SetCookie (name, value) { 
       var argv=SetCookie.arguments; 
       var argc=SetCookie.arguments.length; 
       var path=(argc > 2) ? argv[3] : null; 
       var domain=(argc > 3) ? argv[4] : null; 
       var secure=(argc > 4) ? argv[5] : false; 
       document.cookie=name+"="+escape(value)+ 
          ((path==null) ? "" : ("; path="+path))+ 
          ((domain==null) ? "" : ("; domain="+domain))+ 
          ((secure==true) ? "; secure" : ""); 
    } 
    
    function getCookieVal(offset) { 
       var endstr=document.cookie.indexOf (";", offset); 
       if (endstr==-1) 
                endstr=document.cookie.length; 
       return unescape(document.cookie.substring(offset, endstr)); 
    } 
    
    function GetCookie(name) { 
       var arg=name+"="; 
       var alen=arg.length; 
       var clen=document.cookie.length; 
       var i=0; 
       while (i<clen) { 
          var j=i+alen; 
          if (document.cookie.substring(i, j)==arg) 
                            return getCookieVal (j); 
                    i=document.cookie.indexOf(" ",i)+1; 
                            if (i==0) break;} 
       return null; 
    }
    
    J'ai modifié le if et la redirection pour que le script d'adapte à tous les sites sans avoir à modifier le code à chaque fois. (à partir d'un autre script car je suis une quiche en javascript)

    l'appel du script :

    Code:
    <script src="gestion_frames.js" type="text/javascript" language="javascript"></script>
    
    <script language="javascript">
    	detect_orphan_page('realisations.htm'); 
    </script>
    
    C'est tout con mais j'ai du chercher sur google comment appeler une fonction dans un fichier externe (une quiche te dis-je ;))

    et enfin le bout de code php:

    Code:
    <?php
     
    // gestion du réajustement des frame si le cookie page a été créé et si le // visiteur n'est pas un bot 
    if ((isset($_COOKIE['curpage'])) && ($_COOKIE['curpage']!="")) 
    { 
       $page = $_COOKIE['curpage'] ;
    } 
    else 
    { 
       $page = "accueil.htm";
    } 
    
    ?>
    
    Je suppose que ton script est à l'origine en asp (je connais pas du tout asp), comme je bosse en php j'ai du enlever les S à la variable globale $_COOKIE et ajouter les points virgules

    Voilà, y'a plus qu'à optimiser mes pages et attendre que monsieur google passe par là
     
  6. abracarambar
    abracarambar Nouveau WRInaute
    Inscrit:
    10 Octobre 2009
    Messages:
    1
    J'aime reçus:
    0
    Bonjour,
    j'ai un problème au sujet de ce script ou peut-être pas...

    J'ai installé correctement le code sur le site suivant http://www.coda-asso.fr/index.php (le frameset)
    puis sur la page d'accueil http://www.coda-asso.fr/html/accueil.html
    et sur une troisième page http://www.coda-asso.fr/html/activites.html

    la manœuvre est que si l'on clique sur un lien tendant sur la frame activites.html,
    le site charge automatiquement le frameset index.php et la frame activites.html incrustée correctement dans le frameset.

    alors le résultat est que j'ai bien le frameset mais avec la frame accueil.html inscrustée (notez que accueil.html est la frame par défaut)

    Peut être que ce script ne fonctionne pas correctement avec les iframes.

    En tout cas je salue ce script émergeant d'esprits fûtés !
     
Chargement...
Similar Threads - Référencement frame Forum Date
WebGL 3D et iFrames: quel impact sur le référencement? Rédaction web et référencement 24 Mai 2016
Référencement et redirections frame - http Débuter en référencement 16 Septembre 2013
Youtube : Iframe ou Object, réferencement google Référencement Google 7 Décembre 2012
Référencement de son site sur d'autre en iframe Référencement Google 7 Novembre 2012
Forum dans une iframe bien pour le référencement ? Débuter en référencement 2 Mars 2011
IFrame et référencement Débuter en référencement 8 Janvier 2011
Référencement IFRAME sur mon site web, A L'AIDE :) Débuter en référencement 30 Septembre 2010
Iframe et référencement Débuter en référencement 3 Mai 2010
Redirection par frame: anti-référencement ? Noms de domaine et référencement 19 Février 2009
Comment auditer les images pour un bon référencement (et UX) YouTube, Google Images et Google Maps Jeudi à 11:16
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice