Caution Official docs AI & LLM Bots

Meta-ExternalAgent

Operated by Meta

Quick Facts

User-Agent:
meta-externalagent
Category:
AI & LLM Bots
Operator:
Meta
Safety:
Use Caution
Blocking Impact:
Varies - Evaluate before blocking
SEO Impact Score:
0/10

Confirmed by the operator

Meta names meta-externalagent on its own documentation page, linked above. The token, purpose and robots.txt behaviour on this profile come from that page, re-checked on October 19, 2026.

What is Meta-ExternalAgent?

Meta-ExternalAgent is Meta's crawler for training AI models and improving products, per Meta's crawler documentation.

Content may be used to train Meta AI models. It identifies itself with the token meta-externalagent. Meta documents it at developers.facebook.com.

What happens if you block Meta-ExternalAgent?

No effect on Google or Bing, and no effect on Facebook link previews (facebookexternalhit).
Generally safe to allow; provides legitimate crawling value.

Want to see whether Meta-ExternalAgent actually visits you? Read how do I monitor AI bot traffic to my website?

How to block Meta-ExternalAgent with robots.txt

<code>User-agent: meta-externalagent</code> - Matching is case-insensitive. Robots.txt is fetched from the root of each subdomain separately.

Block completely (robots.txt)
User-agent: meta-externalagent Disallow: /
Allow all (robots.txt)
User-agent: meta-externalagent Allow: /
Block private only (robots.txt)
User-agent: meta-externalagent Disallow: /private/ Disallow: /api/ Disallow: /admin/ Allow: /
Nginx server block
# Nginx: Hard-block Meta-ExternalAgent if ($http_user_agent ~* "meta\-externalagent") { return 403 "Bot blocked"; }
Apache .htaccess
# Apache: Hard-block Meta-ExternalAgent SetEnvIfNoCase User-Agent "meta\-externalagent" bad_bot Order Allow,Deny Allow from all Deny from env=bad_bot
Meta robots tag
<meta name="robots" content="noindex, nofollow">
X-Robots-Tag header
X-Robots-Tag: noindex, nofollow

Is Meta-ExternalAgent safe to allow?

Meta-ExternalAgent is rated Caution. Meta documents it, so it is not a spoofing risk in itself, but your content may be used for AI training. Decide on its purpose.
Verify by reverse-DNS lookup: legitimate Meta-ExternalAgent requests resolve to meta's domain.

What does Meta-ExternalAgent do?

From Meta's own documentation.

  • Meta-ExternalAgent is Meta's crawler for training AI models and improving products, per Meta's crawler documentation.
  • Content may be used to train AI models
  • No effect on Google or Bing, and no effect on Facebook link previews (facebookexternalhit).

Meta-ExternalAgent in context

Meta-ExternalAgent is a training crawler operated by Meta. In plain terms, it collects pages to train AI models. Our database files it under AI and LLM crawlers and ranks it Tier 1, the small set whose absence you would notice in AI answers or search results. 14 of the 104 AI and LLM crawlers in our database share this tier.

Its safety rating is caution and its blocking impact is medium. So the decision about Meta-ExternalAgent rests on what you want from Meta, not on its behaviour. How we rate safety and impact.

How site owners treat Meta-ExternalAgent

In our own study of robots.txt files across the Tranco top 10,000 sites (fetched October 20, 2026, 5,583 valid files), 598 files (10.7%) name Meta-ExternalAgent in a User-agent line, and 706 (12.6%) block it from the homepage. 486 of those blocks come from a group written for this crawler by name, and 220 come from a broad User-agent: * rule that catches it by accident. Larger sites are stricter: 19.2% of the top 1,000 block it, against 13.4% of the middle band and 11% of the tail.

Does it follow robots.txt?

Meta-ExternalAgent's operator says it follows robots.txt, so a correctly written Meta-ExternalAgent group is enough to control it.

Meta crawlers and close alternatives

Meta-ExternalAgent is one of 8 Meta crawlers in our database. A User-agent: meta-externalagent group controls Meta-ExternalAgent only; the other Meta tokens below need their own lines.

  • Meta-ExternalAgent: this crawler (Tier 1)
  • FacebookBot: Facebook Crawler, fetches a page to build a link preview when someone shares it (Tier 5)
  • facebookexternalhit: Facebook Preview, fetches a page to build a link preview when someone shares it (Tier 5)
  • Meta-ExternalAds: Meta Ads Crawler, checks pages for an SEO, uptime or analytics service (Tier 4)
  • Meta-ExternalFetcher: Meta AI Fetcher, fetches a page when a person asks an assistant or app to open it (Tier 2)
  • meta-externaltest: Meta-ExternalTest, checks pages for an SEO, uptime or analytics service (Tier 4)
  • meta-webindexer: Meta Web Indexer, builds a search or answer index (Tier 2)
  • muse-: Meta Muse (personal agent), fetches a page when a person asks an assistant or app to open it (Tier 1)

To give Meta-ExternalAgent the same answer as its siblings, stack User-agent: meta-externalagent with their lines above one set of rules; to treat Meta-ExternalAgent differently, give it its own group.

Other AI and LLM crawlers that do the same job (collects pages to train AI models) include ClaudeBot from Anthropic, Google-Extended from Google, GPTBot from OpenAI, AI2Bot from Allen Institute for AI, aiHitBot from aiHit, anthropic-ai from Anthropic. Deciding about Meta-ExternalAgent is usually a decision about the whole group, so check how your file treats these too.

We first recorded Meta-ExternalAgent on March 17, 2026. Meta documents it on developers.facebook.com, and we recheck that page before each release.

Which rule Meta-ExternalAgent actually follows

Meta-ExternalAgent reads exactly one group in robots.txt, the most specific one that names meta-externalagent, and never combines rules across groups. This short file shows the trap:

User-agent: *
Disallow: /private/

User-agent: meta-externalagent
Disallow: /drafts/
  1. Find the group. Meta-ExternalAgent looks for a group naming meta-externalagent. One exists, so it ignores User-agent: * completely.
  2. Apply only that group. It is refused /drafts/ and nothing else.
  3. The surprise. /private/ is open to Meta-ExternalAgent, because that rule lives in the * group it no longer reads. To keep it out of both, repeat Disallow: /private/ inside its own group.
Test yourself: does a rule under User-agent: * apply to Meta-ExternalAgent if the file also has a User-agent: meta-externalagent group?

No. Once a group names it, Meta-ExternalAgent reads only that group. Put every rule you want it to follow inside its own group.

Test yourself: will blocking Meta-ExternalAgent remove your pages from AI answers?

No. Meta-ExternalAgent collects training data. Blocking it changes what future models learn, not which pages AI answers cite today.

Test yourself: is User-agent: meta-externalagent the same as User-agent: meta-externalagent?

Yes. RFC 9309 makes user-agent matching case-insensitive. Paths are a different story: Disallow: /Blog/ does not block /blog/.

Should you allow Meta-ExternalAgent? Decide by situation

Recommended setting for Meta-ExternalAgent by type of site
If you are...Recommended setting
You publish content and want AI answers to cite itYour call. Meta-ExternalAgent is a training crawler, so blocking it does not remove you from AI answers; retrieval crawlers do that job.
You license content and want to stop AI trainingBlock it by name with User-agent: meta-externalagent and Disallow: /.
You run an online shopAllow it unless your logs show it is costly.
Your server is under load from botsRate-limit before blocking. It is rated caution in our database.

Check Meta-ExternalAgent on your own site

  1. Open /robots.txt on your domain and search for meta-externalagent. If it is not named, it follows User-agent: *.
  2. List the Disallow lines in the group Meta-ExternalAgent follows and test your key URLs against them; the longest match wins, and Allow wins a tie.
  3. Look beyond the file. A firewall or bot manager can refuse Meta-ExternalAgent even when robots.txt allows it, and that never shows in the file.
  4. Run our AI bot checker to see how Meta-ExternalAgent and every other crawler we track are treated in one pass, including firewall refusals.

Common mistakes with Meta-ExternalAgent

The errors we see most often with Meta-ExternalAgent in the files and firewalls we test:

  1. Assuming that blocking Meta-ExternalAgent removes you from AI answers. It is a training crawler; AI answers are fed by retrieval and user-triggered crawlers with different tokens.
  2. Blocking Meta-ExternalAgent with a broad User-agent: * rule that also catches search engines. Name meta-externalagent in its own group instead.
  3. Expecting a Meta-ExternalAgent block to remove content already collected. robots.txt only affects future visits.

All three hide inside a file that looks correct, so check Meta-ExternalAgent from outside after every change.

Spotting Meta-ExternalAgent in your logs

robots.txt says what Meta-ExternalAgent may do; your access logs show what it actually did.

Count requests

On a server with standard Nginx or Apache logs, this counts matching requests per day (adjust the log path for your host):

grep -iE "Meta-ExternalAgent" /var/log/nginx/access.log \
  | awk '{print $4}' | cut -d: -f1 | sort | uniq -c

And this shows which paths it requested most, which is the quickest way to see whether your Disallow lines are being respected:

grep -iE "Meta-ExternalAgent" /var/log/nginx/access.log \
  | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

Check the requests are genuine

Anyone can send the Meta-ExternalAgent user-agent, so confirm the source before acting on a match:

  • Meta-ExternalAgent: we hold no published IP list, so use reverse DNS where the operator documents a hostname and treat an unverifiable Meta-ExternalAgent request with caution.

Frequently Asked Questions

What is the official user-agent string for Meta-ExternalAgent?
The official user-agent string for Meta-ExternalAgent is: meta-externalagent. This is the exact string you must use in robots.txt, Nginx, Apache, or Cloudflare firewall rules to target this bot. User-agent matching in robots.txt is case-insensitive, but the string must be spelled correctly. You can verify that a request genuinely comes from Meta-ExternalAgent by performing a reverse-DNS lookup on the source IP - legitimate bots resolve back to their operator's domain.
Is Meta-ExternalAgent safe?
Meta-ExternalAgent is rated Caution. Meta documents it, so it is not a spoofing risk in itself, but your content may be used for AI training. Decide on its purpose.
Will blocking Meta-ExternalAgent hurt my SEO?
No effect on Google or Bing, and no effect on Facebook link previews (facebookexternalhit).
How do I block Meta-ExternalAgent in robots.txt?
Add the following lines to your /robots.txt file:
User-agent: meta-externalagent
Disallow: /

This instructs Meta-ExternalAgent not to crawl any path on your site. The Disallow: / directive covers the entire domain including subfolders. To only block specific sections, replace / with the path (e.g., Disallow: /blog/). Note: robots.txt is publicly readable - any bot or human can inspect it at yourdomain.com/robots.txt.
Does Meta-ExternalAgent respect robots.txt?
Yes. Meta documents robots.txt control for it.
How do I verify if Meta-ExternalAgent is crawling my site?
Search your web server access logs for the string meta-externalagent (case-insensitive grep: grep -i "meta-externalagent" /var/log/nginx/access.log). You can also check Google Search Console → Coverage → Crawl Stats for Googlebot variants. For Meta-ExternalAgent specifically, filter by user-agent in your log analysis tool (GoAccess, AWStats, etc.).
What is the crawl frequency of Meta-ExternalAgent?
Meta-ExternalAgent crawls at a moderate rate. If you notice excessive traffic in your logs, you can add a Crawl-delay directive:
User-agent: meta-externalagent
Crawl-delay: 10
(10 second delay between requests).
Can I block Meta-ExternalAgent from specific pages only?
Yes. Instead of a global Disallow: / you can restrict Meta-ExternalAgent to specific paths:
User-agent: meta-externalagent
Disallow: /private/
Disallow: /staging/
Allow: /

This allows Meta-ExternalAgent everywhere except the listed paths. Path matching in robots.txt uses prefix matching - Disallow: /private/ blocks /private/page.html but NOT /public/private/.
Why is my link preview broken when shared on Meta's platform?
If links to your site appear without a preview image or title on Meta, it's likely because:
1. Meta-ExternalAgent (meta-externalagent) is blocked in your robots.txt.
2. Your Open Graph meta tags are missing or malformed.
3. Meta's cache is stale - request a refresh using Meta's debugger tool.
Fix: Remove any block rule for meta-externalagent and ensure your pages include <meta property="og:title">, og:description, and og:image.
WhatsApp us