Skip to content
ForgePlug — Logo
developerRuns Server-SideNo Signup

Robots.txt Tester

Fetches a domain's robots.txt, parses its rules, and flags a wildcard Disallow: / with no matching Allow (a common accidental "block everything" mistake), then fetches every sitemap it declares (or /sitemap.xml if none is declared) and spot-checks up to 20 of the URLs inside to confirm they actually return 200 OK. Part of ForgePlug's Site Health Check, which also runs SSL, DNS, and HTTP security header checks on the same domain at no extra cost.

This check runs server-side — ForgePlug briefly connects to the domain you enter to read its certificate, DNS records, response headers, and robots.txt/sitemap. We don't store anything beyond a 5-minute result cache (to avoid re-running the same check for everyone hitting a trending domain) and a short-lived snapshot used to compare a re-check later.

What this robots.txt tester actually validates

Rules and sitemaps — checked, not just displayed.

Plenty of tools will show you the raw text of a robots.txt file. This one parses it: it walks every rule in the wildcard (User-agent: *) group and flags a Disallow: / with no matching Allow — an easy copy-paste mistake that tells every search engine to stop indexing the entire site.

It then follows every Sitemap: line it finds (or falls back to checking /sitemap.xml if none is declared), confirms each sitemap URL actually loads, and spot-checks up to 20 of the URLs inside for a 200 OK response — catching a stale sitemap that still points at deleted pages.

Because it's part of ForgePlug's full Site Health Check, submitting also runs a TLS certificate check, a DNS propagation check, and an HTTP security header scan on the same domain — all in parallel, at no extra cost.

Frequently Asked Questions

robots.txt and sitemap testing, explained

What does this actually validate in robots.txt?
It fetches robots.txt, parses every Sitemap: line, and checks whether the wildcard (User-agent: *) group disallows the entire site with no matching Allow rule — a common accidental "noindex everything" mistake. It then fetches each declared sitemap (or /sitemap.xml if none is declared) and spot-checks up to 20 of the URLs inside it.
Does it crawl my whole sitemap?
No — for a free, unlimited tool that would be too expensive to run. It samples up to 20 URLs from the sitemap(s) it finds and checks that each one actually returns 200 OK, which is usually enough to catch a sitemap that's gone stale or points at deleted pages.
Does Disallow remove a page from Google?
No — and this is the most consequential misunderstanding about robots.txt. Disallow means 'do not crawl', not 'do not index'. A blocked URL can still appear in results, usually as a bare link with no description. Worse, blocking it stops crawlers ever seeing a noindex tag on that page, so the block defeats the removal you were attempting.
Then how do I actually get a page out of search results?
Allow crawling and serve a noindex directive on the page itself, via a meta robots tag or an X-Robots-Tag header. The crawler has to be able to fetch the page to see the instruction. Use Disallow only when your goal is saving crawl budget on pages you do not care about either way.
What is the most damaging robots.txt mistake?
Shipping a staging site's robots.txt to production. A single Disallow: / line asks every crawler to skip the entire site, and nothing visibly breaks — the site loads fine, analytics keeps reporting, and organic traffic simply decays over the following weeks. It is worth checking immediately after any launch.
Do I need a Sitemap line if I already submitted my sitemap in Search Console?
It is still worth declaring. The Sitemap: directive applies globally rather than to a specific user-agent group, so it tells every crawler — not just the one search engine you submitted to — where your URL inventory lives.
Is this really free, and is there a limit?
Yes — Site Health Check is free and doesn't require an account. Like every ForgePlug tool it's rate-limited per IP address (a handful of checks per minute) to keep the service fast and available for everyone, not to push a paid tier.
Why does this tool need a server? Aren't ForgePlug's tools all browser-based?
Almost all of them are — but a browser can't open a raw TLS handshake, query a DNS resolver directly, or fetch another site's headers without hitting CORS. Those three things require a real network connection from a server, so this one tool runs a small, rate-limited check server-side instead of pretending it can do it client-side.
What do you do with the domain I check?
The check result is cached for 5 minutes so a burst of people checking the same trending domain doesn't trigger five fresh outbound connections each time, and the most recent result is kept briefly so a re-check can eventually show what changed. We don't log who checked what.

Guides & Articles

Learn how to get the most out of this tool with our in-depth guides.

Tool Overview

A closer look at Robots.txt Tester — how it works, who it's for, and where it fits in your workflow.

robots.txt is two lines of plain text with the power to remove a site from search results. The single most expensive mistake in web operations is a staging-site robots.txt containing Disallow: / that gets deployed to production along with everything else. Nothing breaks. The site loads normally, analytics keeps reporting, and traffic decays over the following weeks as search engines drop pages they have been told not to crawl. By the time someone connects the decline to a deploy, months of ranking can be gone.

There is also a persistent misunderstanding worth being precise about: Disallow does not mean 'do not index'. It means 'do not crawl'. A URL that is blocked in robots.txt can still appear in search results — typically as a bare link with no description, because the crawler was forbidden from fetching the page to see what is on it. Worse, blocking a page in robots.txt prevents crawlers from ever seeing a noindex tag on that page, so the block actively defeats the removal you were trying to achieve. If you want a page out of the index, allow crawling and serve noindex; if you want to save crawl budget on pages you do not care about, use Disallow.

The other half of the file is discovery. A Sitemap: line tells crawlers where your URL inventory lives, and unlike the rest of robots.txt it is not tied to a user-agent group — it applies globally. A sitemap that 404s, that lists URLs redirecting elsewhere, or that has gone stale after a restructure quietly wastes crawl budget on every visit.

This checker fetches robots.txt, parses every declared Sitemap: line, and specifically tests whether the wildcard User-agent: * group blocks the entire site with no matching Allow rule. It then fetches each declared sitemap — or falls back to /sitemap.xml when none is declared — and spot-checks up to 20 of the URLs inside to confirm they return 200 OK rather than errors or redirect chains.

Key Features

Everything you get with this tool, at a glance.

Catches an accidental site-wide block

Specifically tests the wildcard group for a Disallow: / with no matching Allow rule.

Parses every Sitemap directive

Reads all declared Sitemap: lines rather than assuming a single conventional location.

Falls back to /sitemap.xml

If no sitemap is declared, it checks the conventional path so an undeclared sitemap still gets validated.

Spot-checks sitemap URLs

Samples up to 20 listed URLs and confirms each returns 200 OK, catching stale entries after a restructure.

Reads the live file

Fetches robots.txt over the network as a crawler would, so redirects and CDN rules are reflected.

Plain-English verdict

Reports what the directives mean in practice rather than echoing the raw file back at you.

How to Use Robots.txt Tester

Get from zero to done in four quick steps — no account, no learning curve.

  1. Check production immediately after a deploy

    This is the check worth running the moment a site goes live. A staging robots.txt shipped to production is silent, and the cost compounds daily.

  2. Read the wildcard group carefully

    The User-agent: * group applies to crawlers without a more specific rule. A bare Disallow: / there blocks essentially everything, regardless of what other groups say.

  3. Declare your sitemap explicitly

    Add a Sitemap: line with the absolute URL. It applies globally and removes any guesswork about where your URL inventory lives.

  4. Fix sitemap URLs that do not return 200

    Entries that 404 or redirect waste crawl budget every time the sitemap is read. Sitemaps should list final destination URLs only.

  5. Use noindex, not Disallow, for removal

    To take a page out of search results, let crawlers fetch it and serve a noindex tag. Blocking it in robots.txt prevents the crawler from ever seeing that tag.

Practical Examples

Real input and output pairs so you know exactly what to expect.

Healthy configuration

Input

wikipedia.org

Output

Pass — crawling permitted for the wildcard group, sitemap declared, and sampled sitemap URLs returning 200 OK.

Accidental site-wide block

Input

A production site still serving a staging robots.txt

Output

Fail — User-agent: * with Disallow: / and no matching Allow rule, which asks every crawler to skip the entire site.

Sitemap gone stale

Input

A site restructured without regenerating its sitemap

Output

Warning — the sitemap is reachable, but sampled URLs return 404 or redirect, so crawl budget is being spent on dead entries.

Guides & Articles

Learn how to get the most out of this tool with our in-depth guides.

Was this tool helpful?

Your feedback helps us improve Robots.txt Tester for everyone.

Share this tool

Share