Glossar

Was facebookexternalhit ist und was Meta von deinem Server verlangt

Taras Shynkarenko
Taras Shynkarenko
Aktualisiert: 8 Min. Lesezeit
Was facebookexternalhit ist und was Meta von deinem Server verlangtWas facebookexternalhit ist und was Meta von deinem Server verlangt

TL;DR, Kurze Antwort

8 Min. Lesezeit

facebookexternalhit ist der Crawler, den Meta schickt, wenn ein Link auf Facebook, Instagram oder im Messenger geteilt wird, und er holt deine Seite, um die Vorschaukarte zu bauen. Meta dokumentiert zwei UA-Strings dafür, vier weitere Meta-Crawler daneben und eine kurze Liste an Serveranforderungen, darunter gzip und deflate, Open-Graph-Tags innerhalb des ersten 1 MB und Toleranz für einen Range-Header. Meta nennt die Allowlist per IP als die sicherere Option und verlinkt diesen Rat dann auf einen Anker der eigenen Seite, an dem keine IP-Liste steht.

Was ist facebookexternalhit?

Meta schickt facebookexternalhit, sobald ein Link zu deiner Seite in einer seiner Apps geteilt wird, und der Crawler holt die Seite, damit Meta die Vorschaukarte bauen kann. Metas Dokumentation Meta Web Crawlers sagt es klar: Der primäre Zweck „is to crawl the content of an app or website that was shared on one of Meta's family of apps, such as Facebook, Instagram, or Messenger.“ Dieselbe Seite schreibt, der Crawler „gathers, caches, and displays information about the app or website such as its title, description, and thumbnail image.“

Das Teilen muss nicht über einen Share-Button laufen. Meta sagt, der Link „might have been shared by copying and pasting or by using the Facebook social plugin“, eine in einen Messenger-Thread getippte URL löst also denselben Abruf aus wie ein öffentlicher Beitrag.

Welche User-Agent-Strings sendet facebookexternalhit?

Meta dokumentiert zwei, und beide beginnen mit demselben kleingeschriebenen Token. Die Seite sagt, der UA-String in deinen Logdateien „will be similar to one of the following“:

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

Achte auf die Diskrepanz zwischen Fließtext und Wire-Format. Metas Überschriften und Fließtext schreiben den Crawler als FacebookExternalHit in CamelCase, während der String, den dein Server tatsächlich bekommt, kleingeschrieben ist. Matche auf einen Teilstring ohne Rücksicht auf Groß- und Kleinschreibung, nicht auf die CamelCase-Variante.

Meta veröffentlicht außerdem die genaue Anfrage zum Nachspielen, wenn du reproduzieren willst, was der Crawler sieht:

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

Worin unterscheidet sich facebookexternalhit von meta-externalagent?

Es sind getrennte User Agents mit getrennten Zwecken, und eine robots.txt-Regel gegen den einen berührt den anderen nicht. Meta dokumentiert inzwischen fünf Crawler auf derselben Seite, und genau diese Aufteilung zählt, wenn du KI-Trainingstraffic loswerden willst, ohne deine Link-Vorschauen zu verlieren.

CrawlerUser-Agent-TokenZweck laut Meta
FacebookExternalHitfacebookexternalhit/1.1Crawlt in Metas App-Familie geteilte Inhalte und baut die Vorschau
Meta-WebIndexermeta-webindexer/1.1Durchsucht das Web, um die Qualität der Meta-AI-Suchergebnisse zu verbessern
Meta-ExternalAdsmeta-externalads/1.1Crawlt für Werbung und andere geschäftsbezogene Produkte und Dienste
Meta-ExternalAgentmeta-externalagent/1.1Trainiert KI-Basismodelle oder verbessert Produkte durch direktes Indexieren von Inhalten
Meta-ExternalFetchermeta-externalfetcher/1.1Holt einzelne Links auf Wunsch einer Person und unterstützt agentische KI

meta-externalagent zu blockieren kostet dich im Feed nichts, denn die Vorschaukarte baut ein anderer Crawler. Metas eigenes robots.txt-Beispiel nutzt meta-externalagent als Beispielagenten:

User-agent: meta-externalagent
Allow: /                    # Allow everything
Disallow: /private/         # Disallow a specific directory

Meta nennt kein Datum dafür, wann die KI-Crawler aus facebookexternalhit herausgelöst wurden. Die Seite trägt eine einzige Zeile „Updated: May 21, 2026“ und keine Versionshistorie, die Aufteilung ist also als Tatsache der Gegenwart dokumentiert, ohne ein Vorher und Nachher zum Nachprüfen.

Ein Serverrack mit Netzwerkkabeln, stellvertretend für die Backend-Infrastruktur, die Crawler-Anfragen innerhalb weniger Sekunden beantworten muss.

Was verlangt Meta von deinem Server?

Fünf Anforderungen, alle unter Crawler Requirements gelistet, und vier davon reißt man leicht, ohne es zu merken. Dein Server „must use gzip and deflate encodings.“ Alle Open-Graph-Eigenschaften „need to be listed before the first 1 MB of your website or app, or it will be cutoff.“ Der Inhalt muss crawlbar sein „within a few seconds or Facebook will be unable to display the content.“

Die vierte bringt Range-fähige Server zu Fall. Meta sagt, deine App oder Website „should either generate and return a response with all required properties according to the bytes specified in the Range header of the crawler request or it should ignore the Range header altogether.“ Ein Server, der Range: bytes=0-524288 beachtet, den <head> aber hinter diese Grenze legt, liefert eine technisch korrekte Antwort, in der nichts zu parsen ist. Die fünfte ist die Allowlist, sie steht weiter unten.

Nichts davon betrifft den Inhalt deiner Tags, nur die Frage, ob der Crawler sie erreicht. Die Tag-Inhalte sind ein eigenes Problem, und den vollständigen Satz an Eigenschaften, den Meta und jedes andere Netzwerk liest, behandelt diese Anleitung zu Open-Graph-Tags.

Wie unterscheidest du eine echte facebookexternalhit-Anfrage von einer gefälschten?

An der IP, denn der User-Agent-String ist ein Freitext-Header, den jeder senden kann. Meta sieht das genauso und empfiehlt, „either the user agent strings or the IP addresses (more secure) used by the crawler“ auf eine Allowlist zu setzen.

Dann hört die Dokumentation auf. Dieser Satz verlinkt auf einen Anker namens identify, und die Live-Seite hat überhaupt keinen Abschnitt zu IP-Adressen. Im Quelltext der Seite hängt derselbe identify-Anker an vier verschiedenen Überschriften, darunter der robots.txt-Abschnitt. Meta nennt dir die sicherere Option und zeigt dann ins Leere.

Der Befehl ist veröffentlicht, auf einer ganz anderen Seite. Metas Dokumentation zu den WhatsApp-Webhooks gibt die Abfrage für Metas eigene Routen an:

AdaptlyPost
AdaptlyPost

7-Tage-Testversion starten

Plattformübergreifende Analysen

Sozialer Posteingang

KI-gestützter Assistent

whois -h whois.radb.net -- '-i origin AS32934' | grep '^route' | awk '{print $2}' | sort

Diese Autonomous-System-Nummer stimmt. Das Register von ARIN führt AS32934 als ASName: FACEBOOK, registriert am 24. August 2004. Führe die Abfrage selbst aus, und du bekommst den aktuellen Satz an Route-Objekten: Am 12. September 2026 lieferte sie 416 eindeutige IPv4-Präfixe und 633 eindeutige IPv6-Präfixe, von 102.132.100.0/24 bis zu Blöcken wie 2401:db00::/32. Metas eigener Vorbehalt reist mit dem Befehl mit, denn die WhatsApp-Seite warnt, dass „Meta periodically changes its IP addresses.“ Ein Reverse-DNS-Check der anfragenden Adresse ist für die meisten Seiten die günstigere Alternative.

Eine echte facebookexternalhit-Anfrage erkennen
1
User-Agent-String abgleichen. Ein Freitext-Header, den jeder senden kann, für sich allein kein Beweis.
2
IP-Adresse auf die Allowlist setzen. Die Option, die Meta als sicherer bezeichnet, verlinkt dann auf einen Anker ohne IP-Liste.
3
Reverse-DNS-Check durchführen. Die günstigere Alternative für die meisten Websites.
Meta nennt alle drei Prüfungen, lässt die IP-Liste aber unbelegt.

Kannst du facebookexternalhit in der robots.txt blockieren?

Kannst du, und Meta sagt, dass die Sperre nicht immer hält. Die Dokumentation schreibt, dass „the FacebookExternalHit crawler might bypass robots.txt when performing security or integrity checks, such as checking for malware or malicious content.“ Meta-ExternalFetcher trägt dieselbe Ausnahme, weil er Links holt, nach denen eine Person gefragt hat.

Meta bittet außerdem um Geduld bei der Regel selbst: „Please allow up to 24 hours for changes to robots.txt to take effect because crawlers may cache the contents of robots.txt for up to 24 hours.“ Ein Disallow, das du heute Morgen ergänzt hast, erklärt keinen Crawl am Nachmittag.

Den Crawler zu blockieren killt die Vorschau. Der Link wird weiterhin gepostet, er kommt nur als nackte URL ohne Karte an, was optisch dasselbe Ergebnis ist wie ein kaputtes Tag. Der Klick danach läuft so oder so durch Metas Redirect-Ebene, ein eigener Hop mit eigenen Folgen für deine Analytics, aufgeschlüsselt in dieser Analyse von l.facebook.com als Link-Shim.

Warum liefert der Crawler Code 0 oder eine leere Vorschau?

Wegen eines DNS-Eintrags, an den die meisten Seiten nie denken. Metas Link Sharing FAQ sagt es rundheraus: „The crawler will look for a AAAA record and return a response code 0 if it is not found.“ Ein reiner IPv4-Host, der in jedem Browser funktioniert, kann facebookexternalhit nichts zurückgeben.

Drei weitere Fehlerbilder stammen direkt aus derselben FAQ. Bilder werden „cached asynchronously, so the image may not render the first time someone shares your content“, und Metas Abhilfe ist das Vorab-Cachen, indem du mit dem Sharing Debugger unter /tools/debug/ einen Scrape auslöst. Ein Bild, das als weißer Kasten erscheint, ist „no longer available, is too big or could not be fetched“, und die Obergrenze liegt bei 8 MB. Ein Bild zwischen 200 x 200 und 600 x 315 Pixeln erscheint als kleines Quadrat statt als Karte.

Das letzte ist endgültig. Sobald ein Link geteilt wurde und „there have been more than 50 interactions with the post (comments, likes, shares, etc.), then the title cannot be changed.“ Metas erklärter Grund ist, zu verhindern, dass eine Seite die Geschichte unter denen austauscht, die bereits mit ihr interagiert haben. Jede andere Eigenschaft bleibt editierbar. Bring den Titel in Ordnung, bevor der Link rausgeht, denn nach 50 Interaktionen editierst du ein Feld, dessen Aktualisierung niemand zu sehen bekommt.

Wenn dieselbe URL gleichzeitig an mehrere Netzwerke geht, veröffentlicht adaptlypost einen Beitrag auf mehreren Konten, und jedes Netzwerk lässt danach seinen eigenen Crawler nach eigenem Zeitplan auf diese eine URL los. Das Crawl-Verhalten bleibt Sache der Plattform. Es ist dieselbe Arbeitsteilung wie beim Link-Wrapping, wo X jede URL in einen t.co-Link umschreibt, sobald du postest, und wo dein eigenes Kampagnen-Tracking diese Umschreibung überstehen muss, was dafür spricht, UTM-Parameter an die URL zu hängen, bevor sie überhaupt einen Composer erreicht.

Häufig gestellte Fragen

Führt facebookexternalhit JavaScript aus?

Meta sagt es nicht. Die Dokumentation beschreibt einen Abruf mit Range-Header, ein paar Sekunden Toleranz und eine 1-MB-Grenze dafür, wo Open-Graph-Eigenschaften stehen dürfen, und erwähnt Rendering nie. Liefere deine og:-Tags in der Serverantwort aus, statt sie clientseitig einzufügen.

Ist facebookexternalhit derselbe Crawler, den Instagram und Messenger nutzen?

Ja. Meta nennt alle drei in einem Satz und sagt, der Crawler kümmere sich um Inhalte „shared on one of Meta's family of apps, such as Facebook, Instagram, or Messenger.“ Ein User Agent deckt den Vorschau-Crawl über diese Oberflächen hinweg ab.

Eine Lupe über Codezeilen auf einem Bildschirm, sinnbildlich für die Log-Analyse, die nötig ist, um Traffic-Schübe zu erkennen.

Warum trifft facebookexternalhit meinen Server in Schüben?

Meta veröffentlicht dafür keine Crawl-Rate, kein Anfragebudget und keine Unterstützung für crawl-delay. Die Dokumentation listet Zweck, User-Agent-Strings, Serveranforderungen und den Umgang mit robots.txt, und hört dort auf. Rate Limiting per IP gegen den Routensatz von AS32934 ist der einzige Hebel, den die Dokumentation dir lässt.

Sollte ich facebookexternalhit erlauben und meta-externalagent blockieren?

Genau für diese Kombination existieren die getrennten User Agents. facebookexternalhit zu erlauben hält die Vorschaukarten auf Facebook, Instagram und Messenger am Laufen, während ein Disallow: / unter User-agent: meta-externalagent den Crawler adressiert, den Meta als Trainer von KI-Basismodellen beschreibt.

Was bedeutet der Range-Header in einer Crawler-Anfrage?

Er fragt deinen Server nach einem Byte-Fenster statt nach dem ganzen Dokument, und Metas Beispielanfrage nutzt Range: bytes=0-524288, die ersten 512 KB. Meta akzeptiert beides: den Header beachten und die angeforderten Bytes mit allen nötigen Eigenschaften darin zurückgeben, oder den Header komplett ignorieren und die volle Antwort schicken.

Wie zwinge ich Meta, eine URL neu zu crawlen?

Schick sie durch den Sharing Debugger unter /tools/debug/, den Meta als Weg nennt, einen Scrape auszulösen, oder rufe die Sharing API auf. Metas eigene Best-Practices-Seite beschreibt den Debugger als Werkzeug für Seiten, die ihre Tags häufiger aktualisieren müssen als im üblichen 24-Stunden-Rhythmus.

AdaptlyPost
AdaptlyPost

7-Tage-Testversion starten

Plattformübergreifende Analysen

Sozialer Posteingang

KI-gestützter Assistent

Wird ein Link, der privat in einem Messenger-Chat geteilt wird, genauso gecrawlt wie ein öffentlicher Post?

Meta sagt, ein Share kann durch Kopieren und Einfügen eines Links oder über das Facebook-Social-Plugin entstehen, nicht nur über einen Teilen-Button. Eine URL, die in einen Messenger-Chat eingefügt wird, löst denselben facebookexternalhit-Abruf aus wie ein öffentlich auf Facebook geposteter Link. Meta dokumentiert keinen eigenen Crawl-Pfad für eine private Nachricht, nur die Familie von Apps, aus der ein Share stammen kann.

Warum erscheint facebookexternalhit in meinen Server-Logs klein geschrieben?

Metas Dokumentation schreibt den Crawler in Überschriften und Fließtext als FacebookExternalHit, aber der tatsächlich gesendete String ist klein geschrieben: facebookexternalhit/1.1. Eine Filter- oder Allowlist-Regel, die auf die CamelCase-Schreibweise achtet, übersieht echte Anfragen. Prüfe stattdessen auf einen Substring ohne Berücksichtigung der Groß- und Kleinschreibung.

Welche Kompression verlangt facebookexternalhit von meinem Server?

Metas Crawler-Anforderungen verlangen, dass dein Server gzip- und deflate-Kodierung unterstützt. Das steht neben den übrigen Punkten der Liste: Open-Graph-Tags innerhalb des ersten 1 MB, eine Seite, die innerhalb weniger Sekunden crawlbar ist, korrekter Umgang mit dem Range-Header und die Option der IP-Allowlist. Meta nennt gzip und deflate an erster Stelle und formuliert die Anforderung ohne Einschränkung.

Ignoriert Meta manchmal meine Disallow-Regel in der robots.txt für facebookexternalhit?

Meta sagt, facebookexternalhit kann die robots.txt umgehen, wenn er Sicherheits- oder Integritätsprüfungen durchführt, etwa auf Malware oder schädliche Inhalte. Meta-ExternalFetcher hat dieselbe Ausnahme, weil er Links abruft, die eine Person direkt angefragt hat. Eine Disallow-Regel wirkt zudem nicht sofort: Meta bittet um bis zu 24 Stunden, weil Crawler die robots.txt so lange zwischenspeichern können.

War dieser Artikel hilfreich?

Teilen Sie uns Ihre Meinung mit!

Sieh uns öfter bei Google

Ein Klick macht AdaptlyPost zu einer bevorzugten Quelle. Unsere Artikel stehen dann weiter oben in deinen Top-Meldungen, im KI-Modus und in den KI-Übersichten.

Bevor Sie gehen...

AdaptlyPost

AdaptlyPost

Planen Sie Ihre Inhalte für alle Plattformen

Verwalten Sie alle Ihre Social-Media-Konten an einem Ort mit AdaptlyPost.

Plattformübergreifende Analysen

Sozialer Posteingang

KI-gestützter Assistent

Verwandte Glossarbegriffe

Verwandte Artikel