Mon site utilise des données PushState et JSON pour afficher du contenu. Ainsi, par exemple, cela pourrait apparaître sur ma page:
<a href="/some/page">some page</a>
Le JavaScript empêche ensuite l'action par défaut (après le lien) et affiche une vue (en utilisant une autre API, telle que/getjson? Some_page).
$('[href]').click(function(){
history.pushState(...);
handleURL(...);
});
Supposons que mon serveur réponde aux demandes de/some/page avec une version pré-affichée.
Mes questions sont:
Bien que Googlebot comprenne et analyse certains scripts JavaScript, ceux-ci ne fonctionnent pas comme le fait votre navigateur Web graphique. Il envoie une requête à une URL (votre page d’accueil, par exemple) et le serveur renvoie le code HTML.
Si votre site ne renvoie pas de véritable code HTML (par exemple, une simple balise de script), vous risquez de rencontrer des problèmes avec Google ou d'autres moteurs de recherche qui explorent vos pages.
Cependant, selon cette vidéo , Googlebot ne comprend PushState. Il semble donc qu’il utilisera la méthode AJAX plutôt que de faire des requêtes distinctes pour les pages. Cela signifie que afficherait l'URL correcte dans les résultats de recherche.
Cela ne veut pas dire que vous devriez oublier cela - faire une demande séparée devrait toujours renvoyer la page correcte telle qu'elle serait rendue. D'une part, Google comprend les "pages"; ainsi, après avoir parcouru une page, même si elle utilisait initialement pushState, elle ferait presque certainement des demandes de pages distinctes à l'avenir, au lieu de toujours "naviguer" à partir de la page d'accueil.
En outre, il est plus rapide pour les utilisateurs de recevoir du HTML que de recevoir un script, de l’analyser, puis d’extraire le HTML à l’aide de JavaScript. Et n'oubliez pas qu'il existe d'autres moteurs de recherche et navigateurs qui ne gèrent peut-être pas PushState ou JavaScript.
Matt Cutts de Google a répondu à votre question dans une vidéo :
Un site correctement implémenté qui utilise pushstate n'a généralement pas besoin de support supplémentaire pour pouvoir l'explorer.
En effet, Googlebot suivra toujours les liens qui se trouvent dans votre page, que JavaScript les intercepte ou non. Donc, il obtiendra les versions pré-rendues des pages et dirigera les utilisateurs vers ces URL.
Googlebot peut également essayer d'analyser une partie de votre JavaScript et d'extraire les URL qu'il y trouve. Il est donc possible que Googlebot récupère également certains des fragments de page que vous transmettez en tant qu'état Push.