web-dev-qa-db-fra.com

Où Google connecte-t-il le contenu récupéré avec AJAX?

Beaucoup a été écrit sur la manière dont Google indexe AJAX. Je lis Par exemple, cette expérience d'octobre 2013 était perspicace . Il semble que Google indexe le contenu lorsqu'il est chargé dans $(document).ready(...). Google le fait sans dispositions spéciales de la part du webmaster, sans plan du site avec #!. Google a connecté le contenu extrait AJAX à la page qui le récupère.

La même expérience a malheureusement montré que Google n’indexait pas le contenu extrait par AJAX chargé à partir d’un événement $(...).click(...). C'est là que la carte avec #! est nécessaire.

Ma question. Où Google connecte-t-il le contenu récupéré avec AJAX à partir de la carte du site? Si un utilisateur trouve ce qui est recherché dans le contenu extrait par AJAX, où va-t-il diriger Google? Comment peut-il savoir quelle page charge un bloc particulier de contenu extrait par AJAX?

Connexes:
SEO Friendly AJAX Exemple de site (ca Oct 2011)

Mise à jour:
Après avoir lu la réponse de Stephen, je me suis demandé pourquoi tout le monde disait la même chose et je n'arrive pas à comprendre. Ensuite, j'ai lu ce qui suit et la réponse de Stephen a commencé à avoir un sens.
Google FAQ sur AJAX crawling
# 85: Meilleures pratiques avec contenu dynamique (vidéo de 31 min, mai 2010)
Il s’est avéré que je n’ai pas choisi le meilleur endroit pour commencer à comprendre cela, au début.

2
Nick Alexeev

Il existe deux problèmes légèrement différents ici: l'analyse par Googlebot des liens de hachage et l'exécution de Googlebot par JavaScript.

À l'origine, Googlebot n'analysait pas du tout JavaScript. Il ne fonctionnerait donc qu'avec le code HTML renvoyé par le serveur pour chaque demande adressée à des URL. Il suivrait les liens donnés dans le code HTML mais ignorait la partie "ancre" (tout ce qui se trouve après #) car elle est destinée aux liens de page.

Plus tard, quand le JS est devenu beaucoup plus courant, ils ont décidé d'ajouter une sorte de "solution de contournement" pour leur manque de support du JS. Chaque fois qu'ils voyaient un lien avec une ancre commençant par #!, Googlebot vérifiait une URL spéciale (celle avec _escaped_fragment) pour trouver le contenu qui aurait été chargé sur cette page. À ce stade, Googlebot ne comprenait toujours pas JS, il faisait un cas particulier pour certains codes HTML. Il ne saurait rien de ce qui a été chargé via JS onload.

Plus récemment, Google a confirmé qu’il analysait maintenant JS. Toutefois, pour autant que je sache, Googlebot ne circule pas vraiment en "cliquant" (sinon, il est possible que des formulaires de spam, par exemple, soient lancés accidentellement, etc.). En bref, tout ce qui se passe sans interaction - par exemple lors du chargement de page - est un jeu juste.

J'espère que ça s'éclaircit.

1
DisgruntledGoat

Pour les URL #! style AJAX, vous devez fournir à Googlebot:

  • Une liste d'URL de hachage - Ce sont les URL vers lesquelles les utilisateurs seront référés.
  • Le bloc de contenu correspondant servi à l'équivalent _escaped_fragment

Pour plus d'informations, voir https://developers.google.com/webmasters/ajax-crawling/

2
Stephen Ostermiller

Le premier paragraphe de votre question est en réalité vrai et très important. Cependant, Googlebot semble ne plus autoriser les appels AJAX. Mais néanmoins, Googlebot exécute JavaScript.

Comme le disent les autres réponses, vous devez toujours prendre en compte ce que Google dit à propos de exploration AJAX . Cependant, si vous le faites correctement, vous n'avez plus besoin de servir des "instantanés HTML".

0
analog-nico