Il crawler di Facebook

Il crawler di Facebook esegue la scansione dell'HTML di un'app o di un sito web condiviso su Facebook copiando e incollando il link o tramite un plug-in social di Facebook. Il crawler raccoglie, memorizza nella cache e visualizza le informazioni sull'app o sul sito web come il titolo, la descrizione e l'immagine in miniatura.

Requisiti del crawler

  • Il tuo server deve utilizzare codifiche gzip e deflate.
  • Qualsiasi proprietà di Open Graph deve essere elencata prima del primo 1 MB del tuo sito web o della tua app, altrimenti verrà troncata.
  • Assicurati che il contenuto possa essere sottoposto a scansione da parte del crawler entro pochi secondi o Facebook non sarà in grado di visualizzare il contenuto.
  • La tua app o il tuo sito web dovrebbe generare e restituire una risposta con tutte le proprietà richieste in base ai byte specificati nell'intestazione Range della richiesta del crawler o dovrebbe ignorare del tutto l'intestazione Range.
  • Aggiungi nella lista di elementi consentiti le stringhe dello user agent o gli indirizzi IP (più sicuro) utilizzati dal crawler.
  • Assicurati che la tua app o il tuo sito web consenta al crawler di Facebook di ricercare l'informativa sulla privacy associata alla tua app o al tuo sito web.

Agenti utente e IP del crawler

Le stringhe agente utente del crawler di Facebook:

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

Esegui il seguente comando per ottenere una lista aggiornata degli indirizzi IP usati dal crawler.

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

Questi indirizzi IP cambiano spesso.

Esempio di risposta

...
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
... 

Risoluzione dei problemi

Se il contenuto della tua app o del tuo sito web non è disponibile al momento della scansione, puoi forzare una scansione quando sarà disponibile passando l'URL attraverso lo strumento Debugger di condivisione o utilizzando l'API Sharing.

Puoi simulare una richiesta del crawler con il seguente codice:

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