Référencer au mieux un site flash

Le 21 novembre 2007

Référencer au mieux un site flash

Voici une méthode que je propose pour référencer au mieux un site full flash dynamique. je reviens sur un article que j’avais écris il y a maintenant un petit moment, mais qui n’a jamais vraiment été achevé.

Utilisation de deux systèmes d’url :
-un format pour la navigation et les utilisateurs (que j’appelerai “format user” tout au long de l’article pour plus de lisibilité)
-un format pour le référencement (que j’appelerai “format robots” )

Le format user est un format type ancre nommée, que la classe ExternalInterface de flash permet de modifier directement dans la barre de navigation, sans recharger la page.
Certaines classe comme swfAddress permettent de faire la même chose avec des fonctionnalités en plus que l’on n’abordera pas ici.
Il permet alors de faire des liens directs vers vos pages flash, comme on le ferai sur une page html, et donc facilite la navigation pour l’utilisateur.
http://www.lutincapuche.com/#4-18-monArticle
4 et 18 sont respectivement l’id de la catégorie et l’id de l’article à afficher, qui, une fois parsés en js puis transmis au flash, permettront d’afficher les bonnes informations dans le flash.
monArticle est le titre de l’article, qui permet d’expliciter l’url à l’utilisateur. Cette information n’est pas indispensable.

Le format robots permet d’optimiser le référencement, puisqu’il permet de créer virtuellement chaque page, et de générer le contenu alternatif du flash en fonction de la page appelée.
http://www.lutincapuche.com/wp-flashblog/index.asp?idCat=4&idArticle=18

Pourquoi deux types d’url?

C’est donc le format robots que l’on va utiliser pour optimiser le référencement, c’est à dire le sitemap et le contenu/menu alternatif.
Il faut bien sur que les 2 formats d’url mènent à la même page flash, donc traiter les 2 cas pour récupérer les id catégorie et article dans votre page php ou asp.

Voila sur le principe, je vais maintenant décrire chaque étape, avec des exemples pour être plus claire. Ces exemples sont basés sur le flogMaker, mon plugin worpdress.

1. Choix du format d’url

format user: http://www.lutincapuche.com/#idCategorie-idArticle-titreArticle
format robots: http://www.lutincapuche.com/index.asp?idCat=idCategorie&idArticle=idArticle&titre=titreArticle

C’est bien de mettre le titre de l’article dans le format robots car le contenu de l’url est pris en compte par les moteurs de recherche.
Ces formats dépendent de vos besoins, un seul id peut suffir, à vous de voir.

2. Ecriture de l’url format user depuis Flash

Le code AS2, disponible à partir de Fash 8, qui permet d’écrire dans la barre de navigation :

//importation de la classe
import flash.external.ExternalInterface

//definition de la fonction de reecriture
function reecriture_url(tag){
	ExternalInterface.call('eval', 'location.href="http://www.lutincapuch
	e.com/#'+tag+'" ');
}

//on appelle la fonction sur une action de l'utilisateur par exemple
monBouton.onPress=function(){
	monTag = this.idCategorie+"-"+ this.idArticle +"-"+this.titreArticle;
	reecriture_url(monTag) ;
}

3. Format user: récupération des variables

Au chargement de la page html, si l’url ne contient pas les variables GET recherchées :

-Parsage javascript de l’url pour voir si elle contient les id catégorie et article après le #.
-Passage des paramètres en variables au flash

Exemple:

<script language="javascript">
function retourne_cat(){
	var url = url.substr(posparamUrl+1,500);
	var paramUrl = url.substr(url.indexOf("#",0)+1,500);
	var chaineCategorie = paramUrl.substr(0,paramUrl.indexOf("&",0));
	var idCategorie = chaineCategorie.substr(chaineCategorie.indexOf("="
	,0)+1,100);
	return idCategorie;
}

function retourne_art(){
	var url = window.location.href;
	var paramUrl = url.substr(url.indexOf("#",0)+1,500);
	var chaineCategorie = paramUrl.substr(0,paramUrl.indexOf("&amp;",0));
	var idCategorie = chaineCategorie.substr(chaineCategorie.indexOf("="
	,0)+1,100);
	var reste = paramUrl.substr(paramUrl.indexOf("&amp;",0)+1,500);
	var chaineArticle = reste.substr(0,reste.indexOf("&amp;",0));
	var idArticle = chaineArticle.substr(chaineArticle.indexOf("=",0)+1
	,100);
	return idArticle;
}
</script>

Puis lors de l’insertion du flash:

<script type="text/javascript">
var categorie = retourne_cat();
var article = retourne_art();
var so = new SWFObject("index.swf?idCategorie="+categorie+"&amp;idArticle="
+article", "LutinCapucheBlog", "100%", "100%", "8", "#000000");
so.addParam("scale", "noscale");
so.addParam("allowdomain", "always");
so.addParam("idCategorie", categorie);
so.addParam("idArticle", article);
so.useExpressInstall('expressinstall.swf');
so.write("flashcontent");
</script>

4. Format robots: création du contenu alternatif

On vérifie les variables passées en GET. Si l’url contient ces variables, on remplie le header avec les informations sur l’article que l’on peut alors aller chercher en base (titre, date, description, contenu pour le référencement).
Le contenu alternatif du Flash doit contenir ces informations pour qu’il puisse être scanné pertinement par les robots des moteurs de recherche.
Pour optimiser le référencement, je vous conseille aussi de générer l’équivalent de votre menu flash sous forme de liste item, et en utilisant le format d’url contenant les variables en GET pour être considéré comme un lien et pas une ancre nommée.
Ne pas oublier de passer au flash les variables PHP et non les variables récupérées en javascript.

Exemple:

<div id="flashContent">
	<ul><li>menu1</li><li>menu2</li>...</ul>
	<p><?= $titre ?><?= $description ?><?= $date ?></p>
</div>
...

<?if ($idCat!=null & $idCat!=""){?>
var categorie = <?=$idCat;?>;
var article = <?=$idArticle;?>;
<?}else{?>
var categorie = retourne_cat();
var article = retourne_art();
<?}?>

5. Ouverture du flash à la bonne page

Là, à vous de gérer dans le flash, chaque cas est tellement différent.
Vous récupérez les variables en _root sur le flash appelé, avec le nom renseigné dans le javascript. (ici idCategorie et idArticle).

6. Génération du plan sitemap.xml

Faites un petit script php qui génère automatiquement le fichier sitemap.xml à chaque nouvel insert ou suppression d’article.
Ici, on crée une entrée pour chaque article, en utilisant le format robots d’url pour que chaque article soit considéré comme une page:

Exemple:

<?php
$reqContenu="SELECT * FROM wp_posts WHERE post_status='publish'";
$resultPage=$wpdb->get_results($reqContenu);

$filename = 'sitemap.xml';
$var = "";
$var = $var."<?xml version='1.0' encoding='UTF-8'?>";
$var = $var."<urlset xmlns='http://www.google.com/schemas/sitemap/0.84' ";
$var = $var."xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' ";
$var = $var."xsi:schemaLocation='http://www.google.com/schemas/sitemap/0.84";
$var = $var."http://www.google.com/schemas/sitemap/0.84/sitemap.xsd'>";
$myURL="http://www.lutincapuche.com";


if(!$resultPage){
}else{
	foreach($resultPage as $e){	
		$UrlArticle="index.php#idCat=".$e->ID_cat."&idArticle=".$e->ID;
		$var = $var."<url>";		
		$var = $var."<loc><![CDATA[".$myURL."/".$UrlArticle."]]></loc>";
		$var = $var."<lastmod>".$e->post_date."</lastmod>";
		$var = $var."<changefreq>daily</changefreq>";
		$var = $var."<priority>0.9</priority>";
		$var = $var."</url>";
	}
	$var = $var."</urlset>";
	// Assurons nous que le fichier est accessible en écriture
	if (is_writable($filename)) {	   
	   if (!$handle = fopen($filename, 'w')) {
	         echo "Impossible d'ouvrir le fichier ($filename)";
	         exit;
	   }
	   // Ecrivons quelque chose dans notre fichier.
	   if (fwrite($handle, $var) === FALSE) {
	       echo "Impossible d'écrire dans le fichier ($filename)";
	       exit;
	   }	  	  
	    fclose($handle);
	} else {
	   echo "Le fichier $filename n'est pas accessible en écriture.";
	}
}
?>

Il ne reste qu’à lier ce sitmap.xml à votre site flash en utilisant le WebmasterTools de Google.


Et la boucle est bouclée. Votre site flash pourra être référencé de manière beaucoup plus efficace que si vous ne faites rien, puisque qu’au lieu d’une simple et unique page, les moteurs de recherche trouveront autant qu’il existe d’articles ou de pages dynamiques.

Si vous avez des propositions pour encore améliorer le système, n’hésitez pas !

7. Liens relatifs

Flash 8 ( Vu : 15685 fois )

Commentaires

15 Réponses à “Référencer au mieux un site flash”

  1. clem on 21 novembre 2007 11:18

    Est-ce que tu as un retour d’experience sur cette technique ?

  2. LutinCapuche on 21 novembre 2007 11:25

    Oui, j’ai toutes mes pages qui sont référencées dans google, toujours d’après le webmaster tools de Google, ce qui n’était pas le cas avant…

  3. SuperJogos - Todos os jogos da internet » Référencer au mieux un site flash on 21 novembre 2007 12:11

    [...] davidgp.com â âHace tiempo estaba indeciso, pero ahora ya no estoy tan seguroâ… wrote an interesting post today!.Here’s a quick excerptRéférencer au mieux un site flash Le 21 novembre 2007 [IMG Référencer au mieux un site flash] Voici une méthode que je propose pour référencer au mieux un site full flash dynamique. je reviens sur un article que j’avais écris il y a maintenant un petit moment, mais qui n’a jamais vraiment été achevé. Utilisation de deux systèmes d’url : -un format pour la navigation et les utilisateurs (que j’appelerai “format user” tout au long de l’article pour plus de lisibilité) -un format pour le référ [...]

  4. daweed on 21 novembre 2007 14:22

    yes, idem, les site ou j’ai mis ca en place ca marche. toutes les pages sortent.

  5. Tetsouille on 27 novembre 2007 14:20

    Super article, on apprend pleins de choses ici :)

  6. touky on 27 novembre 2007 14:59

    pour le referencement des animations flash j’ai lu un article avec une astuce.

    fonction a rajouté dans le code html

    Mon texte alternatif pour l’animation Flash

    C’est vraiment une bonne solution ou pas.

    Sinon très bon l’article.
    Merci

  7. LutinCapuche on 28 novembre 2007 14:36

    Hello touky,
    Oui, ce que tu évoques est un premier pas. Mais ca convient pour les sites statiques, pour lesquels tu met à disposition des moteurs de recherche tout le contenu puisque tu le connais d’avance. Et ca se limite à une seule page.
    Alors qu’en mettant en place la procédure ci dessus, tu gere les sites flash dynamiques, et tu références plusieurs pages au lieu d’une seule.

  8. Gobi on 30 novembre 2007 22:09

    Merci beaucoup pour cet article miss ça fait un bail que je cherchais une bonne technique pour referencer du flash dynamique et mes bricolages avaient jusqu’alors que moyennement marchés…
    Big Up!

    Gobi

  9. daweed on 19 décembre 2007 14:40

    google vient de mettre a jour son protocole sitemap.
    Et notemment ils integrent une balise pour renseigné les vidéos ( et par extension les swf’s )

    sur l’article http://blog.digitalbackcountry.com/?p=1200

    l’auteur nous montre comment renseigner les nouveaux protocole sitemap pour les swf.

    ce n’est encore qu’une piste a etudier, mais bientot des resultats devraient tomber, et nous renseigner sur la validité de cette methode.

  10. auvergnator on 27 janvier 2008 19:11

    ….trop balaise tout ca !!!Chapeau…meme si j’ai pas compris grand choses!!!

  11. Soon7 on 19 mars 2008 17:38

    Ton article est super intéressant ^^ ! Merci de partager ton expérience

  12. Kartec on 4 avril 2008 5:27

    ENFIN !!! c’est tout simplement magnifique.

    Merci LutinCapuche, ton article est mon sauveur. Je cherchais une approche aussi claire et complète. C’est gagné.

    Merci énormément, nous allons pouvoir refaire sortir a la surface les sites full-flash, mais cette fois ci, indexées correctement, et respectant les normes…

    Que demande le peuple…

    - swfObject
    - swfAdress
    - Les Liens et Contenu
    - fichier sitemap.xml avec les adresses réelles (sans #)

    = GREAT WORK !

    Merci aussi à daweed pour la piste sur le nouveau sitemap de google ;)

  13. LutinCapuche on 4 avril 2008 8:07

    Contente que ça vous soit utile.
    Je rajouterai même que maintenant, Google Analytics permet de mettre assez simplement en place un système de stats détaillées à intégré dans le flash (pour avoir des stats sur les zones de clic, les pages flash vues…)
    C’est une grande bataille contre tout ces gens qui n’arrètent pas de répéter qu’un site fullflash n’est pas optimisé pour le référencement et bla et bla… c’est FAUX!!!!

  14. Onto on 4 avril 2008 15:42

    Hello L Capuche,
    Carrément que c’est faux !!! A bas les antiflash ,lol.
    Bon moi j’ai une petite question : Alors j’arrive bien à afficher l’url dans la barre d’adresse mais je n’arrive pas à afficher le swf que je veux d’après l’appel de l’url. Je ne sais pas si je suis clair :

    J’utilise movieClipLoader pour charger mes swf

    dans le flash : si je clik sur media : url => monsite.com/#media
    mais si je mets dans la barre d’adresse monsite.com/#media il ne me load pas ce fichier.

    je me suis dis qu’il fallait peut être au chargement de mon flash que je vérifie l’existence d’une variable me permettant de charger tel ou tel swf mais je ne vois pas comment:
    genre à l’ouverture du flash : mcl.loadClip(_root.tag, conteneur_mc); ou tag represente le nom duswf à charger

    Aurais tu une idée ?

    Désolé c’est super long comme post.

    merci

  15. onto on 5 avril 2008 21:05

    Remoi

    heu désolé tu avais donné la réponse.

    merci pour ce tuto

Répondre