AI crawler profile
What is Meta-ExternalAgent? How to allow or block Meta's crawler
User-agent string to match in robots.txt and server logs: Meta-ExternalAgent
Meta-ExternalAgent is Meta's crawler for collecting training data for its Llama models and Meta AI products. It is distinct from facebookexternalhit (which fetches link previews), so you can block AI training without breaking how your links render on Facebook and Instagram.
Does Meta-ExternalAgent respect robots.txt?
Meta documents the agent and states it respects robots.txt rules.
Verify it's really Meta-ExternalAgent
Meta publishes no IP-range file for Meta-ExternalAgent, so it can only be identified by its user-agent string — which anything can send. Treat traffic claiming this agent as unverified, and prefer a reverse-DNS check where the operator documents one before acting on it.
Block Meta-ExternalAgent with robots.txt
User-agent: Meta-ExternalAgent Disallow: /
Explicitly allow Meta-ExternalAgent
User-agent: Meta-ExternalAgent Allow: /
Block Meta-ExternalAgent at the server or CDN
robots.txt is the right first step for Meta-ExternalAgent, since Meta honors it. Use these only if you want the block enforced rather than requested — for example to stop agents spoofing the user agent. Matching on the user-agent string still trusts a self-declared header — and no IP-range file exists for this agent, so treat it as best-effort.
if ($http_user_agent ~* "Meta-ExternalAgent") {
return 403;
}RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Meta-ExternalAgent [NC]
RewriteRule .* - [F,L](http.user_agent contains "Meta-ExternalAgent")
Find Meta-ExternalAgent in your server logs
grep -i "Meta-ExternalAgent" /var/log/nginx/access.log | wc -l
Should you block Meta-ExternalAgent?
Blocking Meta-ExternalAgent opts your content out of Meta's model training — a legitimate choice for original content you don't want reproduced by AI. The trade-off: models trained without your content are less likely to know your brand or recommend it unprompted. There is no direct traffic loss today, since training crawlers don't send visitors. See our guide on whether to block AI bots for the full decision framework.
Check and monitor Meta-ExternalAgent on your site
- AI Crawler Access Checker — see whether your current robots.txt allows or blocks Meta-ExternalAgent.
- robots.txt Generator for AI Bots — build a robots.txt with per-bot rules for all 28 known AI crawlers.
- AI Bot Log Analyzer — paste server logs and count real Meta-ExternalAgent hits, entirely in your browser.
Related reading
- List of AI crawlers and their user agents — how Meta-ExternalAgent fits among every other AI crawler, in one table.
- Can AI crawlers execute JavaScript? — whether Meta-ExternalAgent sees content your site renders client-side.
- Should you block AI bots? — the full decision framework for Meta and the rest.
Frequently asked questions
What is Meta-ExternalAgent?
Meta-ExternalAgent is Meta's web crawler for collecting AI training data. Crawls content to train Meta's AI models.
Does Meta-ExternalAgent respect robots.txt?
Meta documents the agent and states it respects robots.txt rules.
How do I block Meta-ExternalAgent?
Add "User-agent: Meta-ExternalAgent" followed by "Disallow: /" to your robots.txt file. The change takes effect the next time the bot fetches your robots.txt.
Does blocking Meta-ExternalAgent hurt my Google rankings?
No. Meta-ExternalAgent is separate from Googlebot, which handles Google Search indexing. Blocking Meta-ExternalAgent has no effect on your traditional search rankings.
How can I tell if Meta-ExternalAgent is crawling my site?
Search your server access logs for the string "Meta-ExternalAgent" — for example: grep -i "Meta-ExternalAgent" /var/log/nginx/access.log | wc -l. Our free AI Bot Log Analyzer does this in your browser: paste a log file and it counts hits per AI crawler, including Meta-ExternalAgent, with per-path breakdowns.
How do I use Meta-ExternalAgent?
You don't — Meta-ExternalAgent isn't a tool you run. It's Meta's own crawler, operated by Meta, that visits your site from their infrastructure. The only control you have over it is whether you allow or block it, via robots.txt or a server rule. If you're looking to crawl other sites yourself, you'd write your own crawler or use a crawling library; sending "Meta-ExternalAgent" as your user agent would be impersonating Meta.
Does Meta-ExternalAgent respect crawl-delay?
Almost certainly not. Crawl-delay was never part of the original robots.txt specification — Google has publicly said it ignores the directive, and the AI crawlers that model their parsers on Google's do the same. Meta publishes no position on crawl-delay for Meta-ExternalAgent, so treat it as unsupported. If Meta-ExternalAgent is hitting your site harder than you want, rate-limit it at the server or CDN instead: a Cloudflare rate-limiting rule or an nginx limit_req zone matched on the user agent will actually be enforced, whereas a crawl-delay line is only a request that this agent likely never reads.
Why is Meta-ExternalAgent ignoring my robots.txt?
Meta states Meta-ExternalAgent honors robots.txt, so if you are still seeing hits the cause is usually one of four things rather than the bot misbehaving. First, robots.txt is cached — Meta may be working from a copy fetched up to 24 hours before your change. Second, the rule may not match: robots.txt user-agent matching is on a prefix of the token, and a typo or a trailing character breaks it silently. Third, the block may sit under a different user-agent group than the one this bot reads, since a bot obeys only the most specific group that matches it, not the wildcard group as well. Fourth, the traffic may be something else sending Meta-ExternalAgent as its user agent, which anything can do.
Does Meta-ExternalAgent execute JavaScript?
Treat it as no unless Meta says otherwise. Rendering JavaScript costs an order of magnitude more than fetching HTML, and most AI crawlers — unlike Googlebot, which runs a full headless Chrome — read the raw HTML response and stop there. The practical consequence: anything your page loads client-side after the initial response is likely invisible to Meta-ExternalAgent. If your main content is client-rendered, server-render it or pre-render it so the text exists in the first response.
What are Meta-ExternalAgent's IP ranges?
Meta publishes no IP-range file for Meta-ExternalAgent, which means there is no way to verify a request really came from them. Any traffic claiming this user agent should be treated as unverified. If you need certainty, block on the user agent and accept that you may be blocking impostors rather than the real crawler — and note that the absence of published ranges is itself a signal about how seriously the operator treats crawler transparency.
How often does Meta-ExternalAgent crawl my site?
There is no published schedule, and no operator commits to one. Training crawlers like Meta-ExternalAgent typically sweep in bursts rather than at a steady rate — quiet for weeks, then hundreds of requests over a day or two as a collection run reaches your domain. Larger and more-linked sites are revisited more often. The only way to know for your own site is to measure it: grep your access log for the user agent, or paste the log into our AI Bot Log Analyzer, which breaks hits down by date and path in your browser.
Where is the official Meta documentation for Meta-ExternalAgent?
Meta publishes it at https://developers.facebook.com/docs/sharing/webmasters/web-crawlers/. That page is the authoritative source for the user-agent string and Meta's stated crawling policy.
Commonly confused with
Other AI crawlers
- Meta-ExternalFetcherFetches specific links for Meta AI when users share or request them.
- Google-ExtendedControls use of content for Gemini and Vertex AI training, separate from Googlebot.
- CCBotCommon Crawl's crawler; its dataset is widely used to train LLMs.
- BytespiderByteDance's crawler, used for training its AI models.
- Applebot-ExtendedControls use of content for training Apple's AI models (Apple Intelligence).
- cohere-aiCohere's crawler used for training and grounding its models.
Part of our directory of every known AI crawler, refreshed monthly. Last verified: 2026-09-13.