Le nouveau deep linking silex

Posted by
|

__________________________________________________________________________

Silex, deep linking, référencement, sitemap,…

__________________________________________________________________________

Au cours de la navigation dans un site Silex, l’adresses qui est affichée dans la barre d’adresse de votre navigateur (zone de texte horizontale en haut) est modifiée pour refléter l’endroit où vous vous trouvez dans le site. Elle est aussi modifiée lorsque vous arrivez sur un site Silex en suivant un lien depuis un site ou depuis google.

nav

la barre d'adresse de votre navigateur : l'adresse du site, le "?", le nom du site, le "#", et enfin, le deep link (chemin de la page) qui est modifié au cours de la navigation

Cet article présente le fonctionnement de Silex concernant les adresses des sites et des pages. Nous verrons aussi que ce fonctionnement a changé dans la version 1.5 de Silex (Silex Comet).

Cela a une grande influence sur le référencement, nous verrons pourquoi.

Le deep linking dans Silex Comet

Prenons l’exemple de mon site CV : une page a une adresse directe de la forme http://silex-ria.org/?/lex/developpeur.independant.actionscript/accueil . Chaque page étant associé à un seul lien, il s’agit d’un lien profond ou deep link.

_____________________________________

définition du deep linking
lien hypertexte pointant directement vers une page située à l’intérieur d’un autre site web, sur laquelle on peut donc atterrir directement sans passer par la page d’accueil du site en question. (source: linux-france.org)
  • définition « lien profond » wikipedia
  • Un article pas mal sur le deep linking
  • Définition de wikipedia en anglais
  • _____________________________________

    Lorsque cette adresse directe vers une page de mon site apparait dans un autre site, sous forme d’un lien, ce lien est appelé permalink (cf. définitions wikipedia en français et en anglais), car il est utilisé pour être indexé et suivi par les moteurs de recherche qui indexent alors cette page de mon site CV.

    Comme c’est l’adresse indexée, lorsqu’un internaute trouve ce lien suite à une recherche google, il ouvre http://silex-ria.org/?/lex/developpeur.independant.actionscript/accueil . Mais cette adresse est rapidement réécrite en http://silex-ria.org/?/lex/#/developpeur.independant.actionscript/accueil .

    _____________________________________

    le # et le deeplinking
    Dans une URL, seul ce qui se trouve après un # peut être modifié sans que le navigateur recharge entièrement la page. Ca nous vient des ancres HTML, et c’est pour que Silex puisse modifier l’adresse au cours de la navigation dans le site que nous devons insérer un # après le nom du site et avant le nom des pages.

    _____________________________________

    Cependant, la réécriture n’a pas lieu lorsqu’un moteur de recherche est détecté : google, lui, reçois  bien une page lorsqu’il demande http://silex-ria.org/?/lex/developpeur.independant.actionscript/accueil , cette adresse n’est pas réécrite dans ce cas et la page servie contient les mots clefs, les images, les liens etc. de la page correspondante de mon Site silex – la page « accueil » dans cet exemple.

    Le deep linking d’avant la Comet

    Auparavant, dans Silex v0.7 et jusqu’à Silex Comet, les liens permalink étaient de la forme http://silex-ria.org/lex/developpeur.independant.actionscript/accueil et étaient réécrit en deep link http://silex-ria.org/#/lex/developpeur.independant.actionscript/accueil

    La réécriture d’URL était faite à la volée : lorsqu’un moteur de recherche demandait la page http://silex-ria.org/lex/developpeur.independant.actionscript/accueil , Silex utilisait un module de réécriture d’URL (Le module Mod-rewrite) pour servir une page HTML équivalente au contenu de la page « accueil » de mon site Silex.

    _____________________________________

    Le module Mod-rewrite
    Ce module n’est pas présent chez tous les hébergeurs, c’est ce qui nous pousse à nous en passer. Il est nécessaire pour modifier des URLs à la volée de façon transparente pour le navigateur. Dans notre cas, il permet de servir une page HTML qui n’existe pas en prétendant qu’elle existe, sans qu’une erreur soit détectée. Par exemple la page http://silex-ria.org/lex/developpeur.independant.actionscript/accueil n’existe pas mais la page HTML équivalente à la page « accueil » de mon site Flash est retournée pour que google indexe son contenu. C’est la technique de l’URL rewriting avec des fichiers .htaccess, cf cet article de wikipedia ou celui-ci en anglais.

    _____________________________________

    Pourquoi cette différence est-elle si importante?

    Dorénavant, la réécriture d’URL est faite par la page index.php car http://silex-ria.org/?/lex signifie pour un serveur web : http://silex-ria.org/index.php avec comme paramètre, « /lex ».

    Et donc :

    • plus besoin du module Mod-rewrite pour réécrire les URLs. Les sites Silex pourront donc être vus par les moteurs de recherche quel que soit votre hébergeur, même s’il est très sécurisé ou très bon marché (ou gratuit :).
    • les sites Silex sont un peu mieux indexés (plus précisément) grâce au nom de site avant le #, dans le cas ou il y a quelque part des liens vers votre site avec le #, par exemple http://silex-ria.org/?/lex/#/developpeur.independant.actionscript/accueil Silex sert un équivalent HTML de la 1ere page du site lex (ici « developpeur.independant.actionscript ») alors que pour le lien http://silex-ria.org/#/lex/developpeur.independant.actionscript/accueil Silex ne peut servir que la 1ere page du site par défaut, c’est à dire la 1ere page du site officiel de Silex au lieu de celle de mon CV.

    Quelles sont les conséquences

    • on ne peut plus passer d’un site à un autre sans recharger toute la page et donc tout silex, même si les deux sites sont sur le même serveur Silex
    • on peut désormais se passer du nom du site pour le site par défaut : http://silex-ria.org/#/silex/home est équivalent à http://silex-ria.org/?/open.source.flash.cms/#/silex/home mais est plus facile à retenir, et plus beau à voir

    FAQ

    Pourquoi réécrire les liens, pourquoi ne pas laisser google indexer directement les liens avec le « # »?

    Comment google trouve-t-il toutes les pages de mon site? Il n’y a pas de liens vers toutes les pages sur internet…

    > Voici un exemple de parcours suivi par les bots des moteurs de recherche :

    1. sur un site, découverte d’un lien vers la page http://silex-ria.org/?/lex/developpeur.independant.actionscript/experiences ou la page http://silex-ria.org/lex/developpeur.independant.actionscript/experiences (ce qui revient au même car mon site a bien le module Mod-rewrite)
    2. le bot suit le lien, Silex lui retourne l’équivalent HTML du contenu de la page « experiences » et indexe ce contenu en prenant en compte les mots clefs de la page du site initial, celui qui contenait le lien.
    3. il suit les liens internes au site http://silex-ria.org/ qui se trouvent dans cette page « experiences »
    4. le bot cherche le fichier http://silex-ria.org/robots.txt et puisqu’il existe (silex en a un de base), il en extrait l’adresse du sitemap-index, ici http://silex-ria.org/sitemap_index.php
    5. il ouvre ce sitemap-index qui est généré par Silex lorsqu’on fait « indexer » dans le manager
    6. il ouvre tous les sitemaps contenus dans le sitemap-index. Ces sitemaps contiennent les adresses de toutes les pages des sites, par exemple le sitemap http://silex-ria.org/sitemap.php?id_site=lex contient des liens vers toutes mes pages :

    http://silex-ria.org/lex/developpeur.independant.actionscript/ http://silex-ria.org/lex/developpeur.independant.actionscript/accueil/ http://silex-ria.org/lex/developpeur.independant.actionscript/experiences/ http://silex-ria.org/lex/developpeur.independant.actionscript/contacts/ http://silex-ria.org/lex/developpeur.independant.actionscript/divers/ http://silex-ria.org/lex/developpeur.independant.actionscript/formation/ http://silex-ria.org/lex/developpeur.independant.actionscript/a.propos.de.ce.cv/

    > Vous remarquerez que ces liens sont des permalinks sans # pour que le bot voit les équivalent HTML des pages, cf explication ci-dessus.

    > Le bot a donc tous les liens et peut indexer les pages, même celles qui n’étaient pas linkées dans un article ou ailleurs sur le site.

    Comments

    1. Ariel

      13 Oct 09

      doudiou c’est dense comme billet! beau boulot, par contre je pense que t’as perdu pas mal de lecteurs en route 🙂
      amis lecteurs, ne vous découragez pas, et posez vos questions dans les commentaires! ou utilisez silex sans vous poser trop de questions sur le deeplinking, ça marche aussi.

    2. lexa

      13 Oct 09

      c’est clair
      il y aurait bien besoin d’un petit résumé ou rewriting…

      J’aimerais bien savoir ce que les non-techos en pensent

    3. Lex

      21 Oct 09

      hello

      the .htaccess is different depending on your host. usually, it is generated by silex installer… you should simply go to http://www.mysite.it/install

      and with silex comet, you do not need the .htaccess. this, because you do not need http://www.mysite.it/start anymore, since google indexes http://www.mysite.it/?/sitename/start and php does the rewrite from http://www.mysite.it/?/sitename/start to http://www.mysite.it/?/sitename/#/start

      this is the point of the new deeplinking, no need to have .htaccess file anymore (at least for url rewriting)

      do not hesitate to ask more questions or to give me your host name so that i create a .htaccess file

    4. Massimo

      21 Oct 09

      Hello Lex,
      my problem is just that, Google does not bring up my site http://www.obiettivo-benessere.it in its indices, while the examples of Silex, corporate-2009, managers (who are on my host) are placed on Google without problems. Help me 🙂

    5. Lex

      21 Oct 09

      Massimo

      Your site does not work, I can not see it…
      This is probably an installation problem, please talk about it here: http://silex.hoyau.info/forum_en/viewforum.php?f=3

      Anyway, I see that your sitemap index is here: http://www.obiettivo-benessere.it/sitemap_index.php
      And it dispèlays a website called « obiettivo » which is your main website right?

      But the sitemap itself is empty: http://www.obiettivo-benessere.it/sitemap.php?id_site=obiettivo
      Did you click on « index » in the manager for this website?

    6. Massimo

      22 Oct 09

      With Lex, it seems that I solved the problem! I run the index when the site was named differently.
      I wanted to ask why sitemap_index.php also appears in the folder manager, as I can disappear farlsa not be indexed by Google?

      Thanks again for your patience

    7. lexa

      22 Oct 09

      No problemo amigo 🙂

    8. lexa

      23 Oct 09

      Hi massimo

      Here is what google does :
      – start at http://www.obiettivo-benessere.it/robots.txt
      – follow the link to http://www.obiettivo-benessere.it/sitemap_index.php
      – follow the link to http://www.obiettivo-benessere.it/sitemap.php?id_site=obiettivo
      – follow the link to http://www.obiettivo-benessere.it/obiettivo/starts/

      And the point is that this last page does not exist since you do not have url rewrite (did you try the installer?)… So it should be http://www.obiettivo-benessere.it/?/obiettivo/starts/ instead.

      And this latter link is what Silex usually write but you have changed a parameter which tell Silex that you want to use URL rewriting. So put the default value back:
      – open the file « conf/silex_server.ini » in a text editor (not word, but notepad or the very good, very open notepad++ )
      – replace USE_URL_REWRITE = true
      by USE_URL_REWRITE = false

      And this default value will make it work! But remember to press the « index » button in your manager in order to have a link to each page of your site in http://www.obiettivo-benessere.it/sitemap.php?id_site=obiettivo

    9. Massimo

      23 Oct 09

      Hello Lex, I finally solved the mystery! I thought that inside the file. Ini I had to put true instead of false and now everything is ok.
      Thank you and we hope that now I see even Google.

      Cum find http://www.obiettivo-benessere.it

      😛

      Hello

    10. Massimo

      10 Nov 09

      Hello Lex, now I have a problem with the indexing of google. Using a tool from Google itself, almost all of the keywords that the crawler tracks, 99% are members of silex and not my site, for example:

      1. silex 2. paramsfile 3. Keywords 4. Text 5. btn 6. vel, 7. aut 8. config 9. siteconftxt 10. menu 11. browser 12. Spot
      13. with 14. Pain 15. pain; 16. alit 17. hack 18. Standing 19. loreet 20. conulla

      14-17-18 are the words that interest me, you know help me??

    11. lexa

      10 Nov 09

      Hi Massimo
      Please open a post in the forums for this issue
      and eventually post a conclusion here in the blog ok?
      Thanks,
      lex.

    12. Massimo

      10 Nov 09

      OK, I added a post on the forum with the name Google Indexing, thanks

    13. Romain

      21 Fév 10

      Bonjour et merci, je trouve l’article super intéressant mais je me posais une question (je n’ai pas épluché le site de Silex par manque de temps) : est-il possible de continuer à coder de façon classique dans Flash en utilisant seulement les fonctionnalités de DeepLinking de Silex, sans tout l’attirail de CMS qui va avec ?

    14. lexa

      28 Fév 10

      @Romain
      Salut
      Oui c’est possible, les scripts js et le code as est existant et simple à isoler.
      Mais il existe des produits open source faits exprès pour le deep linking avec Flash, comme swfaddress
      Bye
      lex.

    Comments are closed

    News letter

    Evénements Silex Labs sur Paris et sa région: Inscrivez vous à la Newsletter mensuelle

    Silex Labs community Tweets

    Facebook page