Caution Official docs AI & LLM Bots

Meta-ExternalFetcher

Operated by Meta

Quick Facts

User-Agent:
meta-externalfetcher
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-externalfetcher 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-ExternalFetcher?

Meta-ExternalFetcher fetches individual pages when a user asks a Meta AI product to.

Meta lists it as a user-requested fetcher; model training is Meta-ExternalAgent. It identifies itself with the token meta-externalfetcher. Meta documents it at developers.facebook.com.

What happens if you block Meta-ExternalFetcher?

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

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

How to block Meta-ExternalFetcher with robots.txt

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

Block completely (robots.txt)
User-agent: meta-externalfetcher Disallow: /
Allow all (robots.txt)
User-agent: meta-externalfetcher Allow: /
Block private only (robots.txt)
User-agent: meta-externalfetcher Disallow: /private/ Disallow: /api/ Disallow: /admin/ Allow: /
Nginx server block
# Nginx: Hard-block Meta-ExternalFetcher if ($http_user_agent ~* "meta\-externalfetcher") { return 403 "Bot blocked"; }
Apache .htaccess
# Apache: Hard-block Meta-ExternalFetcher SetEnvIfNoCase User-Agent "meta\-externalfetcher" 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-ExternalFetcher safe to allow?

Meta-ExternalFetcher is rated Caution. Meta documents it, so it is not a spoofing risk in itself, but it fetches content for uses you may not want to support, and it may not follow robots.txt. Decide on its purpose.
Verify by reverse-DNS lookup: legitimate Meta-ExternalFetcher requests resolve to meta's domain.

What does Meta-ExternalFetcher do?

From Meta's own documentation.

  • Meta-ExternalFetcher fetches individual pages when a user asks a Meta AI product to.
  • Not used to train AI models, according to the operator
  • No effect on Google or Bing, and no effect on Facebook link previews.

Meta-ExternalFetcher in context

Meta-ExternalFetcher is a user-triggered agent operated by Meta. In plain terms, it fetches a page when a person asks an assistant or app to open it. Our database files it under AI and LLM crawlers and ranks it Tier 2, important crawlers from established AI and search operators. 74 of the 104 AI and LLM crawlers in our database share this tier.

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

How site owners treat Meta-ExternalFetcher

Our robots.txt study of the Tranco top 10,000 did not track meta-externalfetcher as a named token, so we do not publish an adoption figure for it. If you run a large site, your own logs are the best evidence of how often it visits.

Does it follow robots.txt?

Meta-ExternalFetcher's robots.txt behaviour is documented with exceptions or has been publicly questioned, so pair a Meta-ExternalFetcher rule in robots.txt with a server-side rule if blocking matters to you.

Meta crawlers and close alternatives

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

  • Meta-ExternalFetcher: this crawler (Tier 2)
  • 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-ExternalAgent: Meta AI Training, collects pages to train AI models (Tier 1)
  • 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-ExternalFetcher the same answer as its siblings, stack User-agent: meta-externalfetcher with their lines above one set of rules; to treat Meta-ExternalFetcher differently, give it its own group.

Other AI and LLM crawlers that do the same job (fetches a page when a person asks an assistant or app to open it) include ChatGPT Agent from OpenAI, ChatGPT Operator from OpenAI, ChatGPT-User from OpenAI, ChatGPT-User/2.0 from OpenAI, Claude-SearchBot from Anthropic, Claude-User from Anthropic. Deciding about Meta-ExternalFetcher is usually a decision about the whole group, so check how your file treats these too.

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

Which rule Meta-ExternalFetcher actually follows

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

User-agent: *
Disallow: /private/

User-agent: meta-externalfetcher
Disallow: /drafts/
  1. Find the group. Meta-ExternalFetcher looks for a group naming meta-externalfetcher. 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-ExternalFetcher, 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-ExternalFetcher if the file also has a User-agent: meta-externalfetcher group?

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

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

Often, yes. Meta-ExternalFetcher is a user-triggered agent, so pages it cannot fetch can drop out of the answers or results it supports.

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

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

Should you allow Meta-ExternalFetcher? Decide by situation

Recommended setting for Meta-ExternalFetcher by type of site
If you are...Recommended setting
You publish content and want AI answers to cite itAllow it. Meta-ExternalFetcher fetches pages for answers, so blocking it can remove you from them.
You license content and want to stop AI trainingBlocking it does not stop training, because Meta-ExternalFetcher is a user-triggered agent. Block the operator's training crawler instead.
You run an online shopAllow it on product and category pages, which are the pages shoppers ask assistants about.
Your server is under load from botsRate-limit before blocking. It is rated caution in our database.

Check Meta-ExternalFetcher on your own site

  1. Open /robots.txt on your domain and search for meta-externalfetcher. If it is not named, it follows User-agent: *.
  2. List the Disallow lines in the group Meta-ExternalFetcher 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-ExternalFetcher even when robots.txt allows it, and that never shows in the file.
  4. Run our AI crawlability test to see how Meta-ExternalFetcher and every other crawler we track are treated in one pass, including firewall refusals.

Common mistakes with Meta-ExternalFetcher

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

  1. Assuming a robots.txt rule will stop Meta-ExternalFetcher. User-triggered fetches act for a person, and some operators say robots.txt may not apply to them. Check the operator's statement above.
  2. Blocking Meta-ExternalFetcher as if it were a bulk crawler. It fetches one page because a person asked; blocking it means that person's assistant cannot read your page.
  3. Counting Meta-ExternalFetcher visits as crawl volume. Each request maps to a real user question, which makes the paths it requests a useful signal of what people ask about you.

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

Spotting Meta-ExternalFetcher in your logs

robots.txt says what Meta-ExternalFetcher 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-ExternalFetcher" /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-ExternalFetcher" /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-ExternalFetcher user-agent, so confirm the source before acting on a match:

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

Frequently Asked Questions

What is the official user-agent string for Meta-ExternalFetcher?
The official user-agent string for Meta-ExternalFetcher is: meta-externalfetcher. 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-ExternalFetcher by performing a reverse-DNS lookup on the source IP - legitimate bots resolve back to their operator's domain.
Is Meta-ExternalFetcher safe?
Meta-ExternalFetcher is rated Caution. Meta documents it, so it is not a spoofing risk in itself, but it fetches content for uses you may not want to support, and it may not follow robots.txt. Decide on its purpose.
Will blocking Meta-ExternalFetcher hurt my SEO?
No effect on Google or Bing, and no effect on Facebook link previews.
How do I block Meta-ExternalFetcher in robots.txt?
Add the following lines to your /robots.txt file:
User-agent: meta-externalfetcher
Disallow: /

This instructs Meta-ExternalFetcher 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-ExternalFetcher respect robots.txt?
Not reliably. Meta says it "may bypass robots.txt because it performs fetches that were requested by the user". Use a firewall rule to stop it.
How do I verify if Meta-ExternalFetcher is crawling my site?
Search your web server access logs for the string meta-externalfetcher (case-insensitive grep: grep -i "meta-externalfetcher" /var/log/nginx/access.log). You can also check Google Search Console → Coverage → Crawl Stats for Googlebot variants. For Meta-ExternalFetcher specifically, filter by user-agent in your log analysis tool (GoAccess, AWStats, etc.).
What is the crawl frequency of Meta-ExternalFetcher?
Meta-ExternalFetcher crawls at a moderate rate. If you notice excessive traffic in your logs, you can add a Crawl-delay directive:
User-agent: meta-externalfetcher
Crawl-delay: 10
(10 second delay between requests).
Can I block Meta-ExternalFetcher from specific pages only?
Yes. Instead of a global Disallow: / you can restrict Meta-ExternalFetcher to specific paths:
User-agent: meta-externalfetcher
Disallow: /private/
Disallow: /staging/
Allow: /

This allows Meta-ExternalFetcher 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-ExternalFetcher (meta-externalfetcher) 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-externalfetcher and ensure your pages include <meta property="og:title">, og:description, and og:image.
WhatsApp us