TapCub is live — analytics, insights and live chat, free on one platform
AI Search

Meta-ExternalAgent: What Meta’s AI Crawler Does and How to Control It

Meta-ExternalAgent is the crawler Meta uses to collect web content for AI training and indexing. How it differs from Meta’s link preview crawler, how to verify it, a worked month comparing what it reads with the visitors Meta sends back, and robots.txt rules.

Xu An Published Nov 4, 2026 4 min read AI Search
Sample data. One month of server-side crawl data.Sample data

Try it on your own data

Every report in this article is in the free plan. One snippet for web and apps, up to 10 sites.

Start free

Meta-ExternalAgent shows up in many server logs as one of the busiest AI crawlers. This guide explains what it does, how it differs from the crawler behind Facebook link previews, how to verify it, and how to decide whether to allow it by comparing what it reads with the visitors Meta sends back.

What you will learn

  • Meta-ExternalAgent collects content for AI training and indexing; facebookexternalhit fetches link previews
  • Block the training crawler with robots.txt if you choose, but keep facebookexternalhit for link previews
  • Compare reads with visitors sent back before deciding, and enforce at the server if rules are ignored

What Meta-ExternalAgent is

Meta-ExternalAgent is a web crawler run by Meta. Meta's documentation says it crawls the web for uses such as training AI models and improving products by indexing content directly. Its user agent contains meta-externalagent, for example:

meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)

On many sites it has become one of the busiest AI crawlers, which is why people search for it after seeing it in their logs.

Meta's three crawlers

Meta documents several crawlers with different jobs. The table below compares them. The distinction matters: blocking the wrong one can break link previews when people share your pages on Facebook, Instagram or WhatsApp.

CrawlerWhat it doesrobots.txtIf you block it
Meta-ExternalAgentCrawls for AI training and indexingFollows it, per MetaContent not collected for those uses
FacebookExternalHitFetches title, image and description for link previewsMay bypass for preview and integrity checksShared links may show no preview
Meta-ExternalFetcherFetches a page when a user asks (e.g. an AI assistant request)May not apply, as it acts for a userThe assistant cannot read the page for that user

Check Meta’s documentation for the current list; crawler names and purposes change.

How to verify it

User agents can be faked. Meta's documentation gives a way to list the IP ranges its crawlers use, based on Meta's network (AS32934):

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route

Requests with a Meta user agent from IPs outside those ranges are not from Meta.

A worked month: reads vs visitors sent back

A content site's 30 days of server-side data (sample numbers):

  • meta-externalagent: 42,000 fetches, mostly blog and documentation pages
  • facebookexternalhit: 3,100 fetches, triggered by people sharing links
  • Meta-ExternalFetcher: 260 fetches
  • Human visits from Facebook, Instagram and Meta AI: 1,900

Reading it: Meta's training crawler reads about 22 pages for every visitor Meta sends back (42,000 ÷ 1,900). The link preview crawler, by contrast, serves visitors directly: every share that shows a preview makes a click more likely.

The site decides to block Meta-ExternalAgent for its paid documentation, keep it allowed on the public blog, and leave facebookexternalhit alone.

app.tapcub.com/web/bots

Training reads

42,000

meta-externalagent

Visits sent back

1,900

Facebook, Instagram, Meta AI

Return ratio

≈22

reads per visit

Meta crawlers · last 30 days

Sample
CrawlerPurposeFetches
meta-externalagentAI training and indexing42,000
facebookexternalhitLink previews when shared3,100
Meta-ExternalFetcherFetches on a user’s request260

Return ratio = reads ÷ human visitors sent back.

Sample data
Sample data. One month of server-side crawl data.

Controlling it with robots.txt

Meta states that Meta-ExternalAgent follows robots.txt. To block it from the whole site:

User-agent: meta-externalagent
Disallow: /

To block only part of the site:

User-agent: meta-externalagent
Disallow: /docs/
Disallow: /members/

Keep facebookexternalhit allowed if you want link previews. Meta notes that its fetchers acting on a user's request, and link preview checks, may not follow robots.txt in the same way.

If a crawler does not follow your rules, block it at the server, CDN or firewall by verified IP range and user agent. robots.txt is a request, not an enforcement mechanism.

Seeing Meta's crawlers in TapCub

  • Web analytics › Bots › AI & agents: the AI content ledger lists each operator's reads (training crawlers and answer engines in separate columns), human visitors sent back and a return ratio (reads ÷ visitors sent back).
  • Web analytics › Bots › All bots: each crawler's pages, most common status code and trust level (verified, suspected, unknown).
  • Monitoring › Crawler compliance: compares real fetches with your robots.txt and lists violations, such as a crawler fetching a disallowed path; a generator drafts rules such as "block training crawlers" for you to publish.

Crawlers that do not run JavaScript appear only with server collection or a log import. Related: GPTBot, ClaudeBot and the AI crawler ledger.

Filed underAI SearchBots

Was this article helpful?

We use your answers to fix and expand this page.

Xu An

Customer Experience Consultant

Writes about live chat, visitor conversations, and self-service, sharing practical ways to make customer communication clearer and more effective.

See which AI crawlers read your site

Reads, visitors sent back and return ratio by operator, plus robots.txt violations.

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics