RoastMyOpsec

Vulnerabilities

sitemap.xml vs robots.txt for Hidden Paths

November 23, 2025

sitemap.xml vs robots.txt for hidden paths is an invitation versus a request. A sitemap is a list of URLs you want crawlers to fetch. robots.txt Disallow asks well-behaved bots not to crawl a prefix — it does not 403 the path, and it advertises names. Admin, backup.zip, dump.sql, .env, and signed query strings belong in neither file. They belong behind auth and CDN denies. RoastMyOpsec reads public robots.txt for spicy Disallow entries. It does not currently score /sitemap.xml, does not crawl every loc as an attack, and does not treat a missing sitemap as a vulnerability.

The practical difference

robots.txt is crawler etiquette plus an accidental inventory. sitemap.xml is an explicit inventory. Putting /wp-admin in Disallow and /backup.zip in a sitemap is how you publish the treasure map twice.

Search Console and ads will happily ingest a sitemap. So will anyone who fetches /sitemap.xml. That is a public document.

How to choose what to list

Sitemap: canonical marketing and docs URLs only, HTTPS, no tokens in query strings. robots.txt: allow the public site; do not Disallow every admin path as a security plan — deny those at the edge. Staging hosts: noindex, auth, and no production sitemap that includes them.

FileAudienceMust not containTakeaway
sitemap.xmlCrawlers you invitedAdmin, dumps, signed URLs, preview hostsPublic catalog of public pages
robots.txt DisallowPolite crawlersA belief that it blocks humansSee Disallow vs access control
CDN deny / 403Every clientHopeActual control
security.txtResearchersInternal hostnamesDifferent well-known file

What the roast can prove

Spicy robots.txt Disallow lines are findings. A 200 sitemap that lists /login is not scored today — still remove it in your own review. Pair with dump.sql vs backup.zip if archives were listed, and with open redirects vs tokens if loc URLs carry secrets.

Common mistakes

The first mistake is generating the sitemap from every route including /admin.

The second mistake is putting API keys or signed URLs in sitemap.xml.

The third mistake is Disallow: /backup and a sitemap loc for the same zip.

Free audit the URL you own

RoastMyOpsec is a defensive public-surface roast: headers, cookies, sensitive paths, and more — no exploit payloads. Start with the free audit, then open the vault if the blurred findings look expensive.

Free audit now

FAQ

Is a public sitemap a vulnerability?
Not by itself. Listing sensitive or tokenized URLs is. Keep the sitemap to pages you would print on the homepage.
Does robots.txt hide sitemap URLs?
No. Disallow does not remove a loc. Crawlers that ignore robots still fetch both files.
Does RoastMyOpsec fetch sitemap.xml?
It is not a scored path today. robots.txt spicy Disallow is. Audit sitemap loc entries yourself.

Sources

Related guides