/map answers “what pages does this site have?” without downloading them. It merges two sources:
- Sitemaps, found through
robots.txtfirst, then at the usual locations (/sitemap.xml,/sitemap_index.xml). Sitemap indexes are followed one level deep. One sitemap can describe a whole site, cheaply. - On-page links, every link on the URL you pass. This is the fallback for sites without a sitemap, and the only source that shows what’s actually linked today.
lastmod, but it keeps the link’s label from the page (its title or aria-label, otherwise its text) as a title.
The first 10 links also get their own page’s <title> and meta description, read within a short time budget. A page that doesn’t answer in time keeps its link label and a null description.
Use /map to plan a crawl, to find one page without guessing its path, or to see what a site published recently.
Example requests
Example response
Reading the response
A map that finds no link to the site’s own pages, on the page or in any sitemap, fails with
NO_LINKS_FOUND (422) instead of returning an empty list. You aren’t charged for it.
Order and search
Withoutsearch, links come back most useful first: the homepage, then key pages (about, pricing, products, docs, blog, careers, contact) and the pages the site’s navigation links to, then the rest, shallowest first. These move to the end:
- copies of a page in another language or region (
/de/pricingwhen you mapped the English site), which keep only their best-placed version in the ranking - error pages (
/404,/404.html) - handles and short links (
/@name,/sf6) - app sign-ins on other subdomains (
app.,login.)
limit decides how much of the list you get.
With search, results are filtered as well as ranked: links that match nothing are dropped. A match in the URL path outranks a match in the link text.
Choosing sources
robots.txt is always read for its Sitemap: entries. /map fetches at most one page of the site, so Disallow rules don’t affect it.Scope
By default the result stays on the site you asked about, subdomains included, and URLs that differ only by query string collapse into one.include_subdomains=falsekeeps the exact host.blog.stripe.comis left out when you mapstripe.com.ignore_query_params=falsekeeps?page=2and?page=3as separate entries.
Next
Crawl a site
Fetch the pages you found, in one job. 1 credit per page.
API reference
Every parameter, and a playground to try it.