Resources · 31
Diagnose crawling and indexing of useful pages
Connect links, HTTP responses, directives, canonicals and Search Console evidence before fixing.
· 6 min
What this guide helps achieve
- Select useful pages
- Test discovery
- Diagnose the gap
- Retest
Quick check
- Can an HTML link reach the page?
- What response do visitors and crawlers receive?
- Are robots, noindex and canonical signals coherent?
- Does the page provide distinct value?
- What does URL inspection show after a fix?
Step-by-step method
- 01
Choose the priority set
List important URLs with their intent, preferred canonical and actual last change. Exclude filters and pages without independent value.
Deliverable: prioritized inventory and hypothesis per URL.
- 02
Test discovery paths
Follow HTML links from entry pages and compare them with the sitemap. A URL in a sitemap may still remain uncrawled or unindexed.
Deliverable: paths, orphan pages and sitemap gaps.
- 03
Check responses
Verify HTTP status, redirects, availability, rendering and essential resources. Inspect robots rules and noindex directives separately.
Deliverable: response and directive record.
- 04
Inspect canonical selection
Compare the declared canonical, internal links, sitemap and the page selected by the search engine. Canonical preference is a signal, not an absolute command.
Deliverable: version cluster and contradictions.
- 05
Combine observations
Compare indexing reports, URL inspection and server logs where available. Separate discovery, crawl, rendering, canonical selection and indexing.
Deliverable: dated diagnosis with confidence level.
- 06
Fix and verify
Repair the identified cause, retest the page and its links, submit useful changes and monitor their progress. Do not promise an indexing deadline.
Deliverable: fix evidence and follow-up.
Management indicators
| Indicator | What it measures | First action |
|---|---|---|
| Discovery | Priority URLs reached by HTML links | Fix architecture |
| Response | Priority URLs with expected accessible status | Repair server and redirects |
| Consistency | Canonical, sitemap and directives aligned | Resolve contradictions |
| Follow-up | Causes documented and fixes retested | Revisit unproven cases |
Common pitfalls
- Treating sitemap inclusion as an indexing guarantee
- Blocking robots from a page where noindex must be read
- Changing canonicals at scale without reviewing variants
- Blaming every gap on technology without assessing content
Frequently asked questions
Does a sitemap force indexing?
No. It can aid discovery but guarantees neither crawling nor indexing.
Is a declared canonical binding on Google?
It expresses a preference; Google may select another version using observed signals.
When is a fix confirmed?
After checking the likely cause, deployed correction and inspection evidence over an appropriate period.
Robots.txt: crawling, indexing and evidence
Read a crawl decision before drawing indexing conclusions
Discovering a URL, allowing crawling, indexing content and citing a source are separate stages. A 200 response and an Allow rule do not establish that a search engine selected the page. This reference shows which evidence belongs to each stage.
The three files and twelve requests below are fictional. IndexBot, PreviewBot and OtherBot do not identify real services. Examples use ASCII prefixes and an exact $ ending, without encoding, path wildcards, redirects or cache handling. Filters organise explained outcomes; they neither test a domain nor modify this site’s robots.txt.
Access checks and the served response precede crawling. The crawler must be able to read indexing directives. Indexing and preview restrictions precede potential presentation or citation; no stage guarantees the next.
Compare three fictional robots.txt files
A · Specific groups and merging
IndexBot and INDEXBOT groups merge for the same case-insensitive token. PreviewBot uses its own group; it does not inherit restrictions from *.
User-agent: *
Disallow: /private/
Disallow: /search?
User-agent: IndexBot
Disallow: /private/
Disallow: /search?
User-agent: INDEXBOT
Allow: /private/public/
Disallow: /private/public/draft
User-agent: PreviewBot
Disallow: /preview/B · Exact ending and equivalent rules
The $ suffix ends matching: /edition/brief and /edition/brief?view=print yield different outcomes. For the equivalent Allow and Disallow rules on /same, this example selects Allow.
User-agent: *
Disallow: /edition/
Allow: /edition/brief$
Disallow: /same
Allow: /sameC · No fallback group
OtherBot matches no group and there is no * group: no rules apply to it. The /archive/ name provides no access protection.
User-agent: IndexBot
Disallow: /archive/Twelve rule decisions with their reasoning
| Fictional request | Applicable groups and selected rule | Crawl decision and reason |
|---|---|---|
A · IndexBot | Groups 2 + 3
| Crawling disallowed The two groups for this token are combined. Their common Disallow still applies. |
A · IndexBot | Groups 2 + 3
| Crawling allowed The /private/public/ prefix is more specific than /private/, so this crawl is allowed. |
A · indexbot | Groups 2 + 3
| Crawling disallowed The draft prefix is more specific again, overriding the shorter Allow. |
A · PreviewBot | Groups 4
| Crawling allowed A specific group exists. The * group is not added; no /preview/ rule matches this request. |
A · OtherBot | Groups 1
| Crawling disallowed This crawler uses *. The Allow in IndexBot’s group does not apply to it. |
A · OtherBot | Groups 1
| Crawling disallowed The rule includes the start of the query string. Parameters can change matching. |
A · OtherBot | Groups 1
| Crawling allowed Path case matters in these examples. /Search does not start with /search. |
B · OtherBot | Groups 1
| Crawling allowed The request ends exactly at /edition/brief, matching the $ ending. |
B · OtherBot | Groups 1
| Crawling disallowed Parameters extend the URL after brief: the exact Allow no longer matches, while /edition/ still disallows. |
B · OtherBot | Groups 1
| Crawling allowed Both rules have the same path. The example follows the Allow preference for equivalent rules. |
C · OtherBot | No group
| Crawling allowed Neither a group for OtherBot nor a * fallback exists: no REP restriction applies. |
C · IndexBot | Groups 1
| Crawling disallowed The IndexBot group matches and its /archive/ prefix disallows this crawl. |
No case matches. Remove a filter or change the search.
Six checks against the file actually served
| Check | Documented interpretation | Source and passage |
|---|---|---|
| Scope | /robots.txt concerns the target service. Google scopes it by host, protocol and port; check subdomains separately. | IETF · RFC 9309 — Robots Exclusion Protocol §2.3 |
| Format | The protocol specifies UTF-8, text/plain and a lowercase file name at the service root. | IETF · RFC 9309 — Robots Exclusion Protocol §2.3 |
| Size | The RFC requires parsing capacity of at least 500 KiB; Google documents its own 500 KiB limit. These are different statements. | IETF · RFC 9309 — Robots Exclusion Protocol §2.5; Google documentation, File format |
| Cache | The RFC recommends not using a cached copy beyond 24 hours unless the file is unreachable. A change may not be observed immediately. | IETF · RFC 9309 — Robots Exclusion Protocol §2.4 |
| 404 or 403 | The RFC permits the crawler to access resources in this situation. Google treats 4xx except 429 as no crawl restrictions: 403 on robots.txt does not protect pages. | Google · Interprétation de robots.txt / robots.txt interpretation Handling of errors |
| Server error | The RFC requires assuming complete disallow when the file is unreachable. Google documents its own 5xx sequence, starting with a 12-hour crawl stop; do not reduce every case to permanent refusal. | Google · Interprétation de robots.txt / robots.txt interpretation Handling of errors |
Six situations: what the signals establish
| Fictional situation | What is established | What still needs checking |
|---|---|---|
| 200, crawling allowed, no observed noindex | The content can be read; these signals do not individually exclude it. | Actual indexing, selected canonical, content quality and result selection. |
| Disallow and noindex in the page | A crawler respecting disallow does not read the page’s directive. | Links can still make the URL known. Make an indexing exclusion observable to the relevant engine. |
| 200 and observable noindex | The directive requests exclusion from a supporting index after processing. | Recrawl timing and observed state; this is not protection against human access. |
| 200 and canonical pointing elsewhere | A canonical preference is expressed. For Google this is a signal, not an absolute command. | Target relevance and agreement between links, sitemap and the selected canonical. |
| URL included in a sitemap | The publisher proposes a URL for discovery; Google treats inclusion as a weak canonical signal. | Response, directives, useful content and actual indexing. |
| Private page behind authorisation | The server or application must refuse unauthorised access. | Test rights with dedicated accounts; robots.txt never replaces this boundary. |
Compare AI controls and report data →
Primary sources and scope
REP rules come from RFC 9309; Google-specific details are attributed to its own documentation. Examples and the diagram are educational. Filtering performs no crawling and the tables contain no client results.
- IETF · RFC 9309 — Robots Exclusion Protocol · September 2022 · Standards Track
§2.2.1–2.2.3; §2.3–2.5; §3 - Google · Interprétation de robots.txt / robots.txt interpretation · Documentation consultée / accessed 2026-10-22
Group selection; path matching; HTTP errors and caching - Google Search Central · Block indexing with noindex · Documentation consultée / accessed 2026-10-22
Crawler access required to observe noindex - Google Search Central · Canonical URLs · Documentation consultée / accessed 2026-10-22
Signals, best practices and sitemap inclusion
References reviewed
IANA references and DNSSEC interpretation
Successful resolution enables access, not indexing
DNS enables reaching a destination; DNSSEC validation concerns DNS data authenticity. Neither guarantees crawling, indexing or ranking.
- Separate DNS observations from HTTP status and indexing directives.
- Do not infer a crawler’s recovery time from TTL alone.
- Keep changes and checks by layer to explain what was actually restored.
Read the registries and try the cache model →
IETF · RFC 4033 · §3–5 · 2026-10-23
Official references
References consulted: . The method and worksheet propose checks to adapt to your context; they do not constitute certification.
- Google Search Central — Crawling and indexing
- Google Search Central — Troubleshoot crawling errors
- IETF · RFC 4033 · DNSSEC introduction and requirements
- IETF · RFC 4035 · DNSSEC validation and caching
- IETF · RFC 9309 — Robots Exclusion Protocol
- Google · Interprétation de robots.txt / robots.txt interpretation
- Google Search Central · Block indexing with noindex
- Google Search Central · Canonical URLs
