BackCrawlers

Meta-ExternalAgent, Meta-ExternalFetcher and Meta-WebIndexer

Understand Meta's three crawler roles, choose robots.txt rules for each, and see how their visits appear separately in Aiola Analytics.

Panagiotis Visilias

Oct 26, 2026 · 5 min read

Three labeled crawler paths connecting web pages to different destinations

Meta-ExternalAgent, Meta-ExternalFetcher, and Meta-WebIndexer do different jobs. A meta-externalagent request names that one crawler. It does not stand for every Meta hit on your site.

What each crawler is for

Meta's web-crawlers page gives each crawler a purpose and sample headers. The last column is Aiola's bucket for that identity.

CrawlerMeta's documented purposeAiola Analytics bucket
Meta-ExternalAgentTrains foundation AI models, or improves products by indexing content directlyTraining
Meta-ExternalFetcherFetches individual links a user requested, and evaluates agentic AI that navigates sites to complete tasksAnswers
Meta-WebIndexerImproves Meta AI search quality. Allowing it in robots.txt helps Meta cite and link to your contentIndexing

Meta documents two more crawlers on that page. Meta-ExternalAds crawls for advertising and other business products. FacebookExternalHit collects a shared page's title, description, and thumbnail. It serves link previews on Facebook, Instagram, and Messenger.

Aiola places meta-externalads and facebookexternalhit under Other. It places FacebookBot with Meta-ExternalAgent under Training. A hit on one of those names is not a WebIndexer or ExternalFetcher visit.

ExternalFetcher may bypass robots.txt when a user requested the fetch. FacebookExternalHit might bypass robots.txt for security or integrity checks. Meta states those exceptions separately. A disallow for one token does not cover the other tokens.

Choose the rule for each purpose separately. A training preference for ExternalAgent does not state a search preference for WebIndexer. Keep the ExternalFetcher group separate as well.

The ExternalAgent token covers training and direct indexing together. Meta does not publish a second token that splits those two uses. Crawler preferences go in robots.txt, not NoAI tags, on Meta's page.

Match the sample user agents

Meta says a log header will be similar to one of two samples. ExternalAgent's samples are meta-externalagent/1.1 (+/documentation/sharing/webmasters/web-crawlers) and meta-externalagent/1.1.

ExternalFetcher's samples are meta-externalfetcher/1.1 (+/documentation/sharing/webmasters/web-crawlers) and meta-externalfetcher/1.1. WebIndexer's samples are meta-webindexer/1.1 (+/documentation/sharing/webmasters/web-crawlers) and meta-webindexer/1.1.

The robots.txt token drops the version and the parenthetical path. Meta's example uses User-agent: meta-externalagent, not the longer sample.

Aiola matches Meta-ExternalAgent, meta-externalagent, and FacebookBot to Training. It matches Meta-ExternalFetcher or meta-externalfetcher to Answers. It matches meta-webindexer to Indexing. The Set Up Analytics guide matches these tokens with a case-insensitive pattern.

Aiola's crawler directory records AS32934 for each of these three.

Give each token its own robots.txt group

Meta says to add a disallow for the crawler you want to block. Its sample puts Allow: / and Disallow: /private/ in the ExternalAgent group. It shows the same shape for meta-externalads.

This example allows WebIndexer outside /private/, blocks ExternalAgent, and disallows ExternalFetcher.

User-agent: meta-webindexer
Allow: /
Disallow: /private/

User-agent: meta-externalagent
Disallow: /

User-agent: meta-externalfetcher
Disallow: /

Replace /private/ with a directory you want to exclude. To block the search crawl, put Disallow: / in the WebIndexer group. To permit ExternalAgent, use Allow: / and add path exclusions in that group.

Meta says ExternalFetcher may still bypass robots.txt for user-requested fetches. A disallow does not promise those fetches will stop.

The robots.txt guide says to merge groups without assuming wildcard inheritance. That page also says to keep your sitemap line and path rules. It says to remove contradictory duplicate groups.

Plan for robots.txt caching

Meta asks you to allow up to 24 hours for a robots.txt change to take effect. Crawlers may cache the file for up to 24 hours. A request during that window can still follow the older copy.

After deployment, open /robots.txt on the hostname you changed. Meta lists [email protected] for questions about these crawlers.

Send hits to the crawler endpoint

Crawlers do not run JavaScript, so the browser tag cannot see them. One server or edge snippet from the setup guide posts each matching hit. Only known crawler user agents are stored.

The Analytics documentation describes the AI view.

Read the four buckets in the AI view

The AI view shows crawl totals, bots, pages, and activity over time. It groups hits into Answers, Indexing, Training, and Other. AI-answer referrals, crawler 404s, and discovery-file health also appear there.

Meta-ExternalAgent appears in Training, Meta-ExternalFetcher in Answers, and Meta-WebIndexer in Indexing.

A recorded crawl is not proof that Meta cited the page. An empty period is not proof that Meta cannot reach the site.

Try it in Aiola

Download Aiola free for macOS 12 or later and Windows 10 or later. Hosted Analytics needs Pro or the 7-day trial, and the pricing page lists both. Open the AI view and compare the three Meta crawler rows.

Common questions

More from the blog

Build, ship and fix in one app

Errors, user feedback, GitHub and analytics live next to your coding agents in one desktop app, so every issue becomes a task an agent can take.