16 votes

SEO pour une page lourde en js

Nous utilisons beaucoup Backbone pour le rendu de nos pages. Toutes les données sont passées en json depuis le serveur et le html est créé sur le client avec backbone et mustache. Cela pose un gros problème pour le référencement. Une façon de contourner ce problème était de détecter si la requête provenait d'un robot et d'utiliser quelque chose comme HtmlUnit pour rendre la page sur le serveur et la renvoyer. J'aimerais avoir d'autres idées. J'aimerais également savoir s'il y a une faille dans ce que je prévois de faire.

5voto

Quentin Points 325526

Créez votre site en utilisant Amélioration progressive y JavaScript discret .

Lorsque vous effectuez des opérations Ajax importantes, utilisez l'API historique .

Vous aurez alors de vraies URL pour tout et Google ne sera plus un problème.

4voto

Simple As Could Be Points 3906

Je n'aime pas nécessairement que la seule option dont vous disposez pour obtenir des réponses soit de tout refaire pour répondre à une pratique exemplaire générale. Il y a de bonnes raisons d'envisager de faire les choses en utilisant une approche Javascript discrète, mais il y a peut-être une bonne raison pour laquelle vous faites cela en tant que site nécessitant du JS. Imaginons qu'il y en ait une.

Si vous réalisez une application Backbone.js avec des modèles de clients remplis dynamiquement, la meilleure façon de procéder à laquelle j'ai pensé est le lien ci-dessous. En gros, cela revient à dire à un navigateur sans tête de parcourir un ensemble de commandes de navigation pour afficher tous vos utilisateurs/produits/pages et enregistrer un fichier html statique à chaque étape pour des raisons de référencement.

Quel est le moyen le moins redondant de rendre un site avec du HTML généré par JavaScript accessible aux robots ?

3voto

lecstor Points 1416

Dans un projet sur lequel je travaille en ce moment, j'essaie de couvrir toutes les bases Un client piloté par Backbone, des uris pushstate, des pages à marquer d'un signet, et un fallback html quand c'est possible. L'approche que j'ai adoptée consiste à utiliser Mustache pour les modèles, à les décomposer en petits composants pour mes vues Backbone et à les mettre à la disposition du client dans un format brut. Lorsqu'une page est demandée, les modèles peuvent être traités sur le serveur pour produire une page complète et Backbone s'attache aux éléments qu'il veut contrôler.

L'installation n'est pas simple, mais jusqu'à présent, je n'ai rencontré aucun obstacle et je n'ai pas dupliqué de modèles. J'ai dû créer un modèle d'habillage de page pour chaque url disponible, car Mustache ne fait pas de "wrappers", mais je pense que je devrais pouvoir les éliminer avec un peu de codage supplémentaire sur le serveur.

Le plan est de pouvoir avoir certains composants en js pur là où l'interface l'exige et certains rendus par le serveur et améliorés avec du js là où c'est désiré

1voto

hereandnow78 Points 4914

Si vous utilisez node.js, utilisez rendr

Rendez vos applications Backbone.js sur le client et le serveur, en utilisant Node.js.

0voto

Ben Points 816

Il y a des avantages et des inconvénients à utiliser le système d'exploration google ajax - je l'ai utilisé pour un site de réseau social ( http://beta.playup.com ) avec des résultats mitigés...

J'ai écrit une gemme pour gérer cela de manière transparente en tant que middleware rack pour les utilisateurs de ruby (gem install google_ajax_crawler) ( https://github.com/benkitzelman/google-ajax-crawler )

Pour en savoir plus, consultez le site http://thecodeabode.blogspot.com.au/2013/03/backbonejs-and-seo-google-ajax-crawling.html

En résumé, même si j'ai réussi à envoyer des instantanés de domaines rendus à un moteur de recherche demandeur, et que j'ai pu voir à l'aide des outils pour webmasters que Google explorait environ 11 000 pages du site, j'ai constaté que Google était plus enclin à classer les différents états des applications (urls) comme des versions de la même page, et non comme des index séparés. Essayez de faire une recherche pour beta.playup.com - un seul index est listé même si le contenu rendu change radicalement entre les urls )....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X