Crawl rules
By IndexHaven Editorial · Published 2026-10-12 · Updated 2026-10-12
Understand crawl rules, search indexing instructions and private access controls. Test the right URL and avoid common robots.txt configuration mistakes.
Robots.txt controls which paths a cooperating crawler may request. Noindex tells a supporting search engine not to include a resource in search after it reads that instruction. Authentication controls whether someone can retrieve private content. These are different jobs: a robots.txt block is not a reliable substitute for noindex, and neither mechanism is a security boundary.
If you want a public page to appear in search, check that its crawl rules and page-level instructions agree with that goal. If you want to keep sensitive information private, require appropriate access controls. This guide helps website owners separate those decisions, test the right URL, and avoid broad robots.txt changes that create a new problem while fixing an old one.
All three mechanisms can make content harder to encounter, so they are often described loosely as “blocking a page.” That phrase hides the important question: blocking whom, from doing what? A crawler request, a search result, and a signed-out visitor are not the same event.
Imagine an office with a visitor policy, a public directory, and a locked records room. The policies interact, but changing a directory entry does not lock the room. In the same way, removing a page from search does not prevent someone with the URL from requesting it. This analogy is useful for discussion, but the actual technical controls still need verification.
Before editing anything, write the intended outcome in ordinary language. “Customers should find this service page.” “This duplicate campaign page should remain accessible but not searchable.” “Only signed-in staff should retrieve this report.” Those statements lead to different implementations and more meaningful acceptance tests.
A robots.txt file lives at a site's root and provides crawler instructions for that origin. Google's introduction to robots.txt explains that its main purpose is managing crawl access. A disallowed URL can still be known through links, so the file should not be treated as a guaranteed search-removal mechanism.
Open the actual file for the hostname you are investigating. A rule at one subdomain does not automatically describe another subdomain. Likewise, do not assume a file from a preview environment is the same as the file on production. Host and environment mistakes are common enough to deserve an explicit check.
Keep the file focused. Every added exception increases the amount of behavior someone must understand later. If a rule no longer has an owner or a reason, investigate it before deleting it. A short comment explaining intent can prevent a future editor from undoing a necessary restriction.
Topics: robots.txt, noindex, technical SEO, robots-txt-checker
Noindex belongs to the resource response, typically through HTML meta information or a response header. It addresses inclusion in search rather than whether a cooperating crawler should request a path. For a supporting crawler to act on it, that crawler needs access to the response containing the instruction.
This is why a blocked page can be confusing. An owner may add noindex and expect an immediate disappearance, while a robots rule prevents the search engine from reading the change. The accidental noindex guide covers the response-level investigation in detail, including the difference between a live check and older Search Console information.
Do not change both systems at once without documenting the intended sequence. If your goal is removal from search, understand how the crawler will learn the new instruction. If your goal is confidentiality, move to access control rather than relying on search behavior at all.
Authentication establishes who a person is, while authorization decides what that person may access. A private dashboard should enforce those decisions on the server. Hiding the link in navigation or listing the path in robots.txt does not stop an unauthorized request.
Avoid putting private paths, tokens, or customer details into a public crawler file as if the file were secret. Robots.txt is publicly retrievable by design. Its contents can describe where you prefer crawlers not to go, but they should not be your inventory of sensitive information.
For a private report or account page, test a signed-out request and a user without the required permission. The correct result depends on your application's design, but it should not expose the protected content. Search directives can be an additional layer of intent, not a replacement for those tests.
A basic group identifies a user agent and then lists path rules. In this example, the wildcard group applies broadly, while the disallow line refers to a private-area path:
User-agent: *
Disallow: /private-area/
Sitemap: https://example.com/sitemap.xmlThis is an illustration, not a recommendation to copy those paths into every website. The sitemap line points toward a public discovery file; it does not grant access to content that the application protects. A site's real rules should reflect its actual routes and requirements.
Google's robots.txt specification describes how its crawlers interpret groups and path matching. Use a parser or relevant testing tool for nontrivial rules rather than judging the result solely from the visual order of lines. The file can be short and still contain an exception that changes the answer.
Divide your sample into public landing pages, public utility pages, duplicate variations, and private application routes. You do not need a complicated taxonomy; you need enough structure to avoid applying the same rule to everything. Include one example from each important template.
For each sample, note whether it should be crawlable, searchable, and accessible without signing in. Those are three separate columns. A public utility page may be accessible without needing a search presence. A service page intended for customers usually has a different policy. A staff account page should have a deliberate access boundary.
Have the content owner review the sample before technical work begins. This prevents the developer from guessing business intent based on a path name. A route called /resources might contain marketing articles, private downloads, or both; the name alone is not enough.
Use the robots.txt checker to inspect the file and relevant path behavior. IndexHaven provides evidence for selected crawler rules, including Googlebot and Bingbot, within its fetching limits. Read both the result and the actual rule context rather than treating a single label as a complete site policy.
Test the full path that caused concern. A rule affecting /catalog/ may not affect /catalog, and a broader pattern may cover more than its author expected. Keep your test values explicit. If a tool normalizes an address or follows a redirect, record the final context being evaluated.
Also check file availability. An HTML error page delivered at /robots.txt is not the same as the intended plain-text file. A successful browser view does not tell you whether a proxy, location rule, or deployment served the correct content type and body. Capture enough evidence for a developer to reproduce the response.
Once you know whether the crawler can request the page, inspect the page's own response. Use the noindex checker for HTML and header evidence. Then check the canonical declaration if the page is a variation of other content. These checks answer different questions and should be kept separate in the report.
A helpful result might read: “The path is allowed for Googlebot, the response has no unintended noindex instruction, and the canonical points to the intended URL.” An unhelpful result is simply “SEO passed.” The detailed version makes it easier to spot what changed during the next release.
If access is blocked, a respectful checker may stop rather than fetch the content. That is not evidence that the page's meta tags are correct or incorrect. It means the page-level inspection was not completed under those conditions. Label the unknown rather than filling it with an assumption.
Robots.txt might be a static file, a CMS-generated response, a framework route, or a hosting feature. Editing the wrong copy may have no effect, or it may work until the next deployment overwrites it. Ask which source produces the response currently served on the public hostname.
Look at recent changes in that system. A copied staging file, a plugin update, or a route change can explain an unexpected broad restriction. If several layers can generate the file, decide which should be authoritative and remove accidental duplication through a reviewed change.
Keep a rollback copy before editing. A plain-text file is easy to change quickly, which is also why an unnoticed mistake can affect many URLs. Treat it as application configuration with an owner, a review step, and a small repeatable test set.
Imagine a developer using a broad crawl restriction on a preview hostname. During launch, a deployment copies that file to production. The website looks correct to visitors, but the crawl policy no longer matches the purpose of its public pages.
The right investigation compares the preview and production files, identifies the shared source, and separates the environment configuration. After the correction, test several intended public paths and confirm that the preview retains its intended restrictions. Do not make the preview public merely because production needed to be opened.
Add the two environments to the release checklist with opposite expectations where appropriate. That is a stronger preventive measure than telling the team to “be careful next time.” The error came from a repeatable configuration path, so the prevention should test that path.
Suppose a report is publicly retrievable through a long URL. Someone adds that path to robots.txt and assumes the report is now private. A cooperating crawler may avoid it, but anyone who has the URL may still retrieve the content if the server allows the request.
The owner should involve the application developer and decide how report access should work: account authorization, recipient-scoped access, expiration, or another appropriate design. Then test unauthorized requests. Do not publish the report URL in a public ticket or crawler file while investigating.
Once the access issue is addressed, review search exposure separately. If sensitive material was already public, a robots edit alone is not an adequate incident response. Keep the discussion focused on actual access and exposure rather than the reassuring appearance of a disallow line.
A shop may create a rule intended to reduce crawling of low-value filter combinations. Later, a useful category landing page adopts a similar path pattern and becomes unintentionally restricted. The rule was not necessarily wrong originally; the website changed around it.
Review the affected path alongside the variations the rule was meant to cover. Write the intended outcomes for both. A narrow exception or a clearer route design may be appropriate, but the choice should follow the site's actual content strategy and the parser's matching behavior.
After the change, test at least one allowed case and one deliberately restricted case. A repair that opens the desired category while accidentally opening thousands of unwanted combinations has not fully met the requirement. Good verification checks both sides of the boundary.
It is tempting to treat the file as a general-purpose SEO settings document. That leads to lines that look meaningful but are not interpreted as expected. For Google's behavior, consult its current specification rather than copying an old snippet from a forum or plugin comment.
In particular, do not rely on a noindex line in robots.txt to replace the page-level methods. Keep the control in the location documented for that purpose. If a crawler has its own extension or policy, verify that with the crawler's operator rather than assuming every bot supports the same vocabulary.
A simple file with tested intent is easier to maintain than a large collection of speculative commands. Remove uncertainty through documentation and observed behavior. Adding more lines is not the same as adding more protection or improving search visibility.
Different operators use different crawlers for search, retrieval, and training-related activities. Decide what public access you want to permit, then use the relevant operator's documented controls. A user-agent name in a configuration file is not proof that a particular AI system has visited or cited the website.
Google's AI search guidance says its AI search features use the ordinary search foundations and do not require a special AI text file or unique schema. A readable llms.txt file can be supplementary documentation, but it is not an authorization system or a guarantee of inclusion in generated answers.
For practical monitoring, separate policy from results. Policy asks which requests you intend to allow. Logs can show observed requests, subject to identity verification. Search and AI visibility require separate evidence. Keeping these layers distinct prevents a list of bot names from being sold internally as a completed growth strategy.
Before release, capture the old file and list the paths whose behavior should change. Add paths whose behavior must stay the same. Run those examples through the relevant parser or checker, then compare the served public response after deployment.
Include the homepage, a deep content page, a deliberately restricted path, and the sitemap location where appropriate. Check the intended hostname rather than a local development server. If the site uses multiple public hosts, verify each relevant origin instead of assuming one file covers all of them.
Record the time and responsible release. If Search Console later reports an older restriction, that record helps compare the crawl date with the fix. Without it, teams can waste time repeatedly changing a configuration that is already correct because they are looking at historical data.
A website's crawl policy can change without a visible redesign. Hosting moves, plugins, templates, and environment variables all deserve attention when they affect the public response. Put robots.txt availability and important page directives alongside status and canonical checks in your maintenance routine.
IndexHaven can help collect observations and compare selected signals for verified websites. Review its monitoring scope and choose pages that represent different parts of the site. The service does not prove indexing or render every client-side behavior, so supplement it with the appropriate browser and Search Console checks.
When a change is deliberate, document it before accepting a new baseline. When it is unexpected, investigate the responsible system. A baseline should represent an approved policy, not whatever happened to be present when someone clicked a button.
It removes a crawl restriction when that restriction was the obstacle. It does not guarantee indexing or ranking. The response, content, canonical signals, and Google's decisions still matter. Use the live test and indexing reports to observe the outcome rather than promising it from a robots change alone.
A public sitemap should describe the public URLs you want discovered for search. Private application routes belong behind their access controls and generally do not need public sitemap entries. The sitemap guide explains how to validate the inventory as well as the XML delivery.
Crawl rules are only one part of access. DNS, HTTPS, server errors, rate limits, and tool-specific safety restrictions can also prevent a request. Read the actual failure rather than assuming the robots file is responsible. Start with the HTTP status tool when you need to separate response problems from page instructions.
There is no universal line to add or delete. The safest starting point is a written expected result for the affected URL, a saved copy of current behavior, and a narrow change in the responsible system. Verify both the newly allowed case and the paths that should remain restricted before closing the task.