Le robot d’indexation Facebook

Ce robot indexe le code HTML d’une application ou d’un site web partagé sur Facebook en copiant/collant le lien ou à l’aide d’un plugin social Facebook. Le robot d’indexation rassemble, met en cache et affiche des informations sur l’application ou le site web, comme son titre, sa description et sa miniature.

Conditions relatives au robot d’indexation

  • Votre serveur doit utiliser les encodages gzip et deflate.
  • Toutes les propriétés Open Graph doivent donc figurer avant le premier mégaoctet de votre site web ou application, ou ce dernier fera l’objet d’une coupure.
  • Assurez-vous que le contenu peut être indexé en quelques secondes par le robot d’indexation ou Facebook sera incapable de l’afficher.
  • Votre application ou site web doit, soit générer et renvoyer une réponse avec toutes les propriétés requises selon les octets spécifiés dans l’en-tête Range de la demande du robot d’indexation, soit ignorer complètement l’en-tête Range.
  • Vous pouvez ajouter à la liste d'éléments autorisés les chaînes d’agent utilisateur ou les adresses IP (plus sécurisé) utilisées par le robot d’indexation.
  • Vérifiez que votre application ou site web autorise le robot d’indexation Facebook à indexer les politiques de confidentialité de votre application ou site web.

Adresses IP du robot d’indexation et agents utilisateur

Les chaînes d’agent utilisateur du robot d’indexation Facebook :

  • facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
  • facebookexternalhit/1.1
  • facebookcatalog/1.0

Exécutez la commande suivante pour obtenir une liste à jour des adresses IP utilisées par le robot d’indexation.

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

Ces adresses IP changent souvent.

Exemple de réponse

...
route:      69.63.176.0/21
route:      69.63.184.0/21
route:      66.220.144.0/20
route:      69.63.176.0/20
route6:     2620:0:1c00::/40
route6:     2a03:2880::/32
route6:     2a03:2880:fffe::/48
route6:     2a03:2880:ffff::/48
route6:     2620:0:1cff::/48
... 

Résolution des problèmes

Si le contenu de votre application ou site web n’est pas disponible au moment de l’indexation, vous pouvez forcer une indexation une fois qu’il devient disponible en faisant transiter l’URL par l’outil de débug du partage ou en utilisant l’API Sharing.

Vous pouvez simuler une demande du robot d’indexation avec le code suivant :

curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "$URL"