Rightshold™ Sign up

Answers · AI crawlers

Meta runs several crawlers (facebookexternalhit, meta-externalagent, meta-externalfetcher and others). Which ones can a site block in robots.txt without breaking Facebook and Instagram link previews, which ones may ignore it, and did Meta's proposed business terms that let it crawl sites linked to business accounts change any of that?

Last updated

TL;DR: Meta's crawler documentation (updated May 21, 2026) lists five user agents, each with its own robots.txt token. facebookexternalhit builds link previews when your page is shared on Facebook, Instagram or Messenger; Meta-WebIndexer crawls to improve Meta AI search results and helps Meta AI cite and link to you; Meta-ExternalAds crawls to improve advertising and business products; Meta-ExternalAgent crawls for uses such as training foundation AI models; and Meta-ExternalFetcher fetches single links at a user's request, including for AI agents completing tasks. To keep your pages out of Meta's model training, block meta-externalagent; to keep previews, leave facebookexternalhit allowed. Two of the five may not obey a block: Meta says Meta-ExternalFetcher may bypass robots.txt because the fetch was requested by a user, and facebookexternalhit might bypass it for security or integrity checks. Meta asks for up to 24 hours for changes. As for the terms: in October 2026 Meta announced updated Commercial Terms that would have authorized it to crawl sites associated with business accounts, first with "train" among the permitted uses, then revised to remove it. On November 5, 2026 Meta paused the update indefinitely; its Business Help Center says the existing terms remain in effect, and Meta has said throughout that robots.txt preferences are respected, though no published version of the new terms said so.

What should I check, step by step?

1. Search your logs for each token separately: facebookexternalhit, meta-webindexer, meta-externalads, meta-externalagent and meta-externalfetcher. A rule written for one doesn't apply to the others.

  1. To opt out of Meta model training, add "User-agent: meta-externalagent" then "Disallow: /". Meta's own example also shows a separate group for meta-externalads.
  2. Keep facebookexternalhit allowed unless you're willing to lose the title, description and image when people share your links on Facebook, Instagram or Messenger. It isn't the training crawler.
  3. Decide on meta-webindexer on its own: Meta says allowing it helps Meta AI cite and link to your content, so blocking it trades away citations, not training.
  4. If you run Meta ads, think before blocking meta-externalads: Meta describes it only as improving advertising and business products and doesn't document what blocking it changes.
  5. Don't rely on robots.txt for meta-externalfetcher. Meta says it may bypass robots.txt for user-requested fetches, so use a login, or a server or CDN rule if you accept the trade-offs, for anything it shouldn't read.
  6. If you check old robots.txt files, look for tokens Meta no longer lists (such as FacebookBot); a rule on a retired name does nothing for the current crawlers.
  7. Allow up to 24 hours for a change, keep a dated copy of each robots.txt version, and watch Meta's Business Help Center for any new version of the paused terms.

What are Meta's crawlers (facebookexternalhit, meta-externalagent, meta-webindexer) used for?

Meta's developer page lists the user agents behind its most common crawlers. facebookexternalhit crawls apps and websites shared on Meta's apps, caching and displaying the title, description and thumbnail. Meta asks sites to allow-list its user-agent strings or, more securely, its IP addresses, and to serve Open Graph tags in the first megabyte of the page.

Which Meta crawlers may ignore robots.txt?

Meta says, in plain words, that Meta-ExternalFetcher may bypass robots.txt rules because it performs fetches requested by the user, and that facebookexternalhit might bypass robots.txt when performing security or integrity checks, such as checking for malware. The page doesn't list a bypass for Meta-WebIndexer, Meta-ExternalAds or Meta-ExternalAgent.

Did Meta's new Commercial Terms let it crawl and train on business websites, and are they in effect?

In early October 2026 Meta notified business users of updated Commercial Terms, due to take effect on October 30. As reported by Nieman Lab on October 15, the draft authorized Meta to use automated software, and to create test credentials, to crawl domains and pages associated with a business's products or services, and to use that content to provide, develop, improve, research, train and maintain Meta products. Business use included running ads, managing a Page and using a product catalogue, with no opt-out other than stopping business use.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Does example.com's robots.txt block meta-externalagent from training on our pages, and which group did it match? Show me the same for the other AI training crawlers so I can see what's still allowed.”

One-click setup

{
  "tool": "read_ai_policy",
  "arguments": {
    "domain": "example.com"
  }
}

Rightshold reads a site's public crawl and AI-use signals. It isn't affiliated with Meta and can't make any crawler honor a preference. Crawler behavior is as described on Meta's crawler page (updated May 21, 2026); the terms timeline is from Meta's statements as reported by Nieman Lab through November 5, 2026, checked on November 10, 2026. Whether a contract can override a robots.txt preference depends on the terms and your jurisdiction. Not legal advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'