Der Facebook-Crawler

Oft werden Inhalte auf Facebook in Form einer Webseite geteilt. Wenn jemand einen Link zum ersten Mal teilt, liest der Facebook-Crawler die HTML unter der entsprechenden URL aus, um Informationen zum Inhalt, wie beispielsweise Titel, Beschreibung und Miniaturbild, abzurufen, zwischenzuspeichern und auf Facebook anzuzeigen. Abgesehen von der Webseite, die direkt auf Facebook geteilt wird, gibt es weitere Methoden zum Auslösen eines Crawls deiner Webseite. So kann eines der sozialen Plugins von Facebook auf der Webseite dazu führen, dass der Crawler die Webseite ausliest.

Identifizieren des Crawlers

Der Facebook-Crawler lässt sich anhand eines der folgenden User-Agent-Strings erkennen:

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

oder

facebookexternalhit/1.1

Crawler-Zugriff

Der Facebook-Crawler erfordert den Zugriff auf deinen Inhalt, um ihn ordnungsgemäß auslesen und teilen zu können. Deine Seiten müssen also für den Crawler sichtbar sein. Wenn der Zugriff auf deinen Inhalt eine Anmeldung erfordert oder anderweitig eingeschränkt ist, musst du unseren Crawler auf eine Whitelist setzen. Unser Crawler akzeptiert nur gzip- und deflate-Codierungen. Achte also darauf, ob dein Server die richtige Codierung verwendet. Der Crawler liest nur die ersten 1 MB einer Seite aus. Eventuelle Open Graph-Eigenschaften müssen also vor diesem Punkt aufgeführt sein.

Wenn der Inhalt zum Zeitpunkt des Auslesens nicht verfügbar ist, kannst du bei seiner Verfügbarkeit eine erneute Auslesung erzwingen, indem du die URL in den Sharing Debugger eingibst oder die Graph API verwendest.

Es gibt zwei Möglichkeiten, dem Crawler Zugriff zu gewähren:

  1. Hinzufügen der oben aufgeführten User-Agent-Strings zur Whitelist (hiernach sind keine weiteren Aktionen erforderlich)
  2. Hinzufügen der vom Crawler verwendeten IP-Adressen zur Whitelist (dies ist sicherer):

Führe diesen Befehl aus, um eine aktuelle Liste der vom Crawler verwendeten IP-Adressen abzurufen.

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

Hierdurch wird eine Liste der IP-Adressen zurückgegeben, die sich oft ändern:

# For example only - over 100 in total
31.13.24.0/21 
66.220.144.0/20    
2401:db00::/32  
2620:0:1c00::/40  
2a03:2880::/32 

Gewährleisten einer akzeptablen Latenz

Du musst sicherstellen, dass die in den URLs enthaltenen auszulesenden Ressourcen in annehmbarer Zeit – also nicht mehr als ein paar Sekunden – vom Crawler abgerufen werden können. Wenn der Crawler hierzu nicht in der Lage ist, kann Facebook die Ressource nicht anzeigen.

Crawler-Ratenbegrenzung

Du kannst Seiten und Objekte kennzeichnen, um anzugeben, wie lange der Facebook-Crawler wartet, bis er nach neuen Inhalten sucht. Verwende die Objekteigenschaft og:ttl, um den Crawler-Zugriff zu beschränken, wenn unser Crawler zu aggressiv vorgeht.

Facebook-Crawler

Seit 28. Mai 2014 gibt es einen Crawler mit folgendem User-Agent-String:

Facebot

Facebot ist der Web-Crawling-Roboter von Facebook, der dazu beiträgt, die Werbeanzeigen-Performance zu verbessern. Facebot ist auf Höflichkeit ausgelegt. Er tätigt Zugriffsversuche auf einen Webserver im Abstand von einigen Sekunden, was den Branchenstandards entspricht, und beachtet deine robots.txt-Einstellungen.

Beachte, dass Facebot nur ein paar Mal pro Tag die robots.txt-Datei deines Servers auf Änderungen überprüft. Wenn du also Änderungen vornimmst, werden diese eventuell nicht sofort berücksichtigt.