Sur notre page, les utilisateurs ouvrent des messages de manière modale (comme Facebook ou Twitter).
Les liens ressemblent à ceci
<a class="showpost" data-mpid="416246" href="/p/416246/">Open Post</a>
Nous attrapons le clic, exécutons un appel ajax et convertissons la réponse JSON en HTML. Même si j'ai lu que Google peut exécuter ajax pendant un certain temps maintenant, aucun de nos messages n'est indexé. Si je crée un "aperçu de récupération" avec un rendu dans la console de recherche, le site Web s'affiche correctement avec la publication ouverte.
Nous avons plus de 500 000 articles, la plupart avec un contenu très long et de qualité (commentaires sur les produits) et il est vraiment agaçant qu’aucun d’eux ne puisse être trouvé dans les moteurs de recherche.
Des idées que nous faisons mal?
EDIT: Après quelques jours de recherches, je ne trouve toujours pas la solution. L'état de la sitemap pour ces liens est "Découvert - Aucune indexation en cours".
Est-il possible que Google le rende correctement mais que le contenu ajouté au DOM soit trop petit pour être "remarqué"? C'est une image, quelques paragraphes et parfois des commentaires ajoutés à une DIV existante, puis nous montrons cette DIV avec css. Dois-je cacher tout le reste de la page lors de l'ouverture du message?
Il est fort probable que Google n'indexe pas ces pages AJAX, car il ne parvient pas à lire votre script qui capture le lien.
Disons par exemple que la page AJAX charge /ajax/page.html. Parce que votre lien a href = "/ p/416246 /", Google transmettra votre contenu de lien à/p/416246 /, quand il semblerait que vous souhaitiez le transmettre à /ajax/page.html.
Href plus l'URL ajax est peut-être trop de pages pour un lien pour Google à explorer.
Mais le problème le plus probable pour Google de ne pas explorer ces URL AJAX est que le code Javascript est un peu complexe à comprendre correctement par Google. Par exemple, si votre AJAX contient des URL telles que /ajax/page.html, il est probable que Google l'explore. Si, par contre, votre AJAX ressemble à quelque chose comme var z ="page.html"; var url = '/ajax/' + z;
, ou même à quelque chose de plus complexe, cela pourrait être un peu difficile à traiter avec précision par Googlebot.
Google ou tout autre bateau ne recevra pas vos données, car vous n'êtes pas autorisé à le faire. Oui c'est vrai. Un bot ne peut pas interagir avec votre page, comme un clic ou un événement de souris. Il est vrai que le bateau commencera à lire les js mais ils n’ont pas dit qu’ils commenceraient à cliquer ou à survoler sur votre écran. Et dans votre cas, le code HTML est généré après un clic de l'utilisateur.
Ceci est la limitation au bateau qu'il ne peut pas exécuter l'action de l'utilisateur. Donc, si vous voulez indexer ces données sur la même page, vous devez les appeler avant le rendu. Qu'il soit masqué de l'utilisateur sans action telle que le clic de l'utilisateur, les robots sont assez intelligents pour le lire.