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
- Official docs:
- developers.facebook.com
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?
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.
Is Meta-ExternalFetcher safe to allow?
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/
- Find the group. Meta-ExternalFetcher looks for a group naming
meta-externalfetcher. One exists, so it ignoresUser-agent: *completely. - Apply only that group. It is refused
/drafts/and nothing else. - 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, repeatDisallow: /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
| If you are... | Recommended setting |
|---|---|
| You publish content and want AI answers to cite it | Allow it. Meta-ExternalFetcher fetches pages for answers, so blocking it can remove you from them. |
| You license content and want to stop AI training | Blocking it does not stop training, because Meta-ExternalFetcher is a user-triggered agent. Block the operator's training crawler instead. |
| You run an online shop | Allow it on product and category pages, which are the pages shoppers ask assistants about. |
| Your server is under load from bots | Rate-limit before blocking. It is rated caution in our database. |
Check Meta-ExternalFetcher on your own site
- Open
/robots.txton your domain and search formeta-externalfetcher. If it is not named, it followsUser-agent: *. - List the
Disallowlines in the group Meta-ExternalFetcher follows and test your key URLs against them; the longest match wins, andAllowwins a tie. - 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.
- 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:
- 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.
- 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.
- 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?
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?
Will blocking Meta-ExternalFetcher hurt my SEO?
How do I block Meta-ExternalFetcher in robots.txt?
/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?
How do I verify if Meta-ExternalFetcher is crawling my site?
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?
User-agent: meta-externalfetcher Crawl-delay: 10(10 second delay between requests).
Can I block Meta-ExternalFetcher from specific pages only?
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?
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.