Bonjour à tous !
Le sujet qui m'amène va sûrement faire bondir plus d'un puriste, mais en gros voilà la situation :
J'ai été dans l'obligation de mettre beaucoup de Javascript dans la page d'accueil du site, car le client souhaite une navigation fluide, avec scrolling en douceur du menu vers le contenu choisi, sans rechargement total de la page pour assurer un effet de fluidité et sans rupture (je n'ai pas utilisé de iframe).
Du coup, au clic sur un lien, une fonction JS est appelée pour injecter le contenu (avec innerhtml) qui va bien dans la div qui va bien : du genre insereContenu('page1.php',div_contenu'). Et par la même technique je modifie également à la volée certains habillages css de la page, car chaque rubrique de menu à son propre univers graphique et ses propres codes de couleurs.
Donc en fait, j'ai bien autant de pages que de liens/catégories de menu (ces fichiers php pouvant avoir des paramètres GET), sauf que ces fichiers php sont composés uniquement du contenu de la div_contenu, et ils ne sont pas affichés directement (on ne lit pas leur url dans la barre d'adresse) mais insérés à la volée sur clic d'un lien.
C'est vrai que le résultat produit est bluffant (pas d'impression de rechargement de page, et en plus l'inclusion de contenu vraiment instantanée), sauf que le pb va se poser au niveau du référencement :
- en gros, il n'y a que la page index.php qui soit visible, tout au long de la navigation dans le site (c'est d'ailleurs la seule page toujours visible dans la barre d'adresse)
- le seul contenu référençable est l'édito de la page d'accueil, càd le contenu du fichier accueil.php injecté dans la div_contenu lors du chargement de la page index.php
- et en effet, quand on clique sur un lien de menu et que le contenu adéquat est injecté à la volée, ce contenu n'apparaît pas lorsqu'on affiche le code-source de la page dans le navigateur, et seul le contenu "édito accueil" chargé par défaut lors du chargement de la page d'accueil reste présent dans le code-source.
J'ai donc bien pensé, pour que le contenu de tout le site puisse être indexé, à insérer une div avec pour propriété css {display:none;}, qui recevrait le contenu d'une page "global.php" et qui serait lui aussi chargé/injecté dès le chargement de la page d'accueil du site. Cette page global.php serait un condensé pertinent, hiérarchisé et constamment à jour (puisque les contenus sont stockés dans une BDD Mysql) de toutes les catégories/menu du site, et aurait donc un contenu changeant et riche.
Sauf que ce genre de dissimulation de div pourrait blacklister le site, ou du moins avoir l'effet opposé à celui recherché en matière d'indexation.
Alors que pensez-vous de cette solution ? Après tout, ce n'est pas une div toute bête et figée avec une tripotée de mots-clés, c'est plutôt une div à contenu actualisé et dont les termes reflètent bien le contenu et la vocation du site, et en rapport avec les intitulés des menus hierarchisés (ul/li). Le pb, c'est où s'arrête l'optimisation et où commence le spamdexing selon les robots???
Merci beaucoup par avance pour vos retours d'expérience
@+
Le sujet qui m'amène va sûrement faire bondir plus d'un puriste, mais en gros voilà la situation :
J'ai été dans l'obligation de mettre beaucoup de Javascript dans la page d'accueil du site, car le client souhaite une navigation fluide, avec scrolling en douceur du menu vers le contenu choisi, sans rechargement total de la page pour assurer un effet de fluidité et sans rupture (je n'ai pas utilisé de iframe).
Du coup, au clic sur un lien, une fonction JS est appelée pour injecter le contenu (avec innerhtml) qui va bien dans la div qui va bien : du genre insereContenu('page1.php',div_contenu'). Et par la même technique je modifie également à la volée certains habillages css de la page, car chaque rubrique de menu à son propre univers graphique et ses propres codes de couleurs.
Donc en fait, j'ai bien autant de pages que de liens/catégories de menu (ces fichiers php pouvant avoir des paramètres GET), sauf que ces fichiers php sont composés uniquement du contenu de la div_contenu, et ils ne sont pas affichés directement (on ne lit pas leur url dans la barre d'adresse) mais insérés à la volée sur clic d'un lien.
C'est vrai que le résultat produit est bluffant (pas d'impression de rechargement de page, et en plus l'inclusion de contenu vraiment instantanée), sauf que le pb va se poser au niveau du référencement :
- en gros, il n'y a que la page index.php qui soit visible, tout au long de la navigation dans le site (c'est d'ailleurs la seule page toujours visible dans la barre d'adresse)
- le seul contenu référençable est l'édito de la page d'accueil, càd le contenu du fichier accueil.php injecté dans la div_contenu lors du chargement de la page index.php
- et en effet, quand on clique sur un lien de menu et que le contenu adéquat est injecté à la volée, ce contenu n'apparaît pas lorsqu'on affiche le code-source de la page dans le navigateur, et seul le contenu "édito accueil" chargé par défaut lors du chargement de la page d'accueil reste présent dans le code-source.
J'ai donc bien pensé, pour que le contenu de tout le site puisse être indexé, à insérer une div avec pour propriété css {display:none;}, qui recevrait le contenu d'une page "global.php" et qui serait lui aussi chargé/injecté dès le chargement de la page d'accueil du site. Cette page global.php serait un condensé pertinent, hiérarchisé et constamment à jour (puisque les contenus sont stockés dans une BDD Mysql) de toutes les catégories/menu du site, et aurait donc un contenu changeant et riche.
Sauf que ce genre de dissimulation de div pourrait blacklister le site, ou du moins avoir l'effet opposé à celui recherché en matière d'indexation.
Alors que pensez-vous de cette solution ? Après tout, ce n'est pas une div toute bête et figée avec une tripotée de mots-clés, c'est plutôt une div à contenu actualisé et dont les termes reflètent bien le contenu et la vocation du site, et en rapport avec les intitulés des menus hierarchisés (ul/li). Le pb, c'est où s'arrête l'optimisation et où commence le spamdexing selon les robots???
Merci beaucoup par avance pour vos retours d'expérience
@+