web-dev-qa-db-fra.com

Rendu côté serveur pour les moteurs de recherche uniquement (SEO)

J'ai une application Web fortement basée sur JavaScript que je souhaite rendre indexable.

Je sais que Google Bot et d'autres agents peuvent déjà voir le code JavaScript, mais je ne crois pas qu'ils captureront correctement mon contenu et le problème est encore plus grave avec le code JavaScript asynchrone. Par exemple: certaines sections ne sont chargées que lorsque l'utilisateur fait défiler l'écran vers le bas. Il existe également des robots qui ne peuvent pas voir JavaScript, comme le robot de Facebook.

Puis-je simplement envoyer du code HTML pré-rendu, à l'aide de phantomjs ou d'un autre navigateur sans navigateur, au bot Google? Ce serait exactement ce que mes utilisateurs finaux voient, mais je crains que je ne subisse des pénalités pour avoir servi du contenu différent pour les robots.

4
lucaswxp

Puis-je simplement envoyer du code HTML pré-rendu, à l'aide de phantomjs ou d'un autre navigateur sans navigateur, au bot Google?

En bref ... non vous ne devriez pas. La position de Google sur les différentes versions pour les visiteurs et les robots de recherche est claire et, quelles que soient vos intentions, elle est considérée comme un voile. Google s'efforce également de rechercher des sites qui traitent spécifiquement le Googlebot différemment des autres visiteurs du site.

Tous les sites doivent rendre le même résultat à la fois avec Googlebot et les utilisateurs

Chaque site, quel que soit le code JavaScript, doit être rendu de la même manière par les utilisateurs et les moteurs de recherche. Si ce n'est pas le cas, votre site présente un problème.

Emulation de ce que Googlebot voit ...

Vous pouvez émuler et rendre ce que Googlebot voit lors de la visite de votre site en utilisant le Google Fetch Test avec la console de recherche Google. Les résultats fournis vous permettent de déboguer votre site et de vous assurer que sa lecture et son rendu sont conformes aux attentes. bots de recherche et les utilisateurs.

7
Simon Hayter