Identifying Crawl Coverage Gaps
Covered here
- What a crawl coverage gap is
- The two directions of gaps: missing from the crawl and missing from Google
- How to build a URL comparison table
- How to sort gaps by cause before reporting
Short answer
A crawl coverage gap is any difference between the URLs your crawler found and the URLs that exist or matter. You find gaps by comparing the crawl against XML sitemaps, Search Console, analytics landing pages, and server logs, then sorting missing URLs into orphans, blocked pages, rendering problems, and scope errors.
Before you report a single issue, check that your crawl actually covered the site. An audit built on a crawl that missed the whole blog folder gives the client wrong answers. This lesson closes Module 2 by checking crawl completeness.
Two directions of gaps
Gap A: URLs that exist but your crawl missed. Found in the sitemap, Search Console, analytics, or logs, but not in the link crawl. Causes include orphans, JavaScript-only links, robots.txt blocks, and your own crawl limits.
Gap B: URLs your crawl found but Google does not use. Crawled as indexable, yet not indexed or with no impressions. Causes include duplicates, thin content, weak linking, or Google not having crawled them yet.
Build a URL comparison table
Create a spreadsheet with one row per URL and one column per source:
| URL | In crawl | In sitemap | In Search Console | In analytics | Status code |
|---|---|---|---|---|---|
| /rooms/deluxe/ | Yes | Yes | Yes | Yes | 200 |
| /packages/whale-sharks/ | No | Yes | Yes | Yes | 200 |
| /blog/?page=40 | Yes | No | No | No | 200 |
Every “No” on a URL that should rank is a gap to explain.
Sort gaps by cause
Group every gap into one cause before reporting:
- Orphan: live, no internal links (Lesson 2.5)
- Blocked: robots.txt or firewall stops crawling (Module 4)
- Rendering: links exist only after JavaScript (Module 8)
- Scope error: your exclusion or limit skipped it (Lesson 2.3)
- Not chosen by Google: crawled but excluded from the index (Module 4 and 5)
Fix your own scope errors first, recrawl, then report the rest. Grouping also shows root causes: 400 missing URLs in one folder usually means one problem.
Practice: what caused this gap?
Sort each item into the right group.
-
Product in sitemap, live, no internal links
Answer: Orphan.
-
Whole /blog/ folder missing, crawl stopped at the 500 URL limit
Answer: Scope error.
-
Category links built with onclick, not crawled
Answer: Blocked or rendering.
-
Folder disallowed in robots.txt
Answer: Blocked or rendering.
-
Your regex excluded every URL containing 'event'
Answer: Scope error.
-
Old campaign page with visits in analytics, unlinked
Answer: Orphan.
Common mistakes
- Reporting your own scope errors as site problems. Always check settings first.
- Treating every gap as an issue. Redirects and removed URLs belong outside the sitemap and index.
- Skipping this check entirely. Every later module depends on complete crawl data.
Your action
You have finished Module 2. In Module 3, you will audit HTTP status codes and redirects across your crawl.
Key terms
- Crawl coverage gap
- A URL present in one data source but missing from another, which signals a discovery, crawling, or indexing problem.
- URL comparison table
- A spreadsheet listing every known URL with a column for each source, showing where it appears and where it does not.
- Scope error
- A gap caused by your own crawl settings, such as an exclusion rule or a URL limit.
- Discovered, currently not indexed
- A Search Console status meaning Google knows the URL but has not crawled it yet.
Questions beginners ask
What is the most common cause of coverage gaps?
On small sites, orphan pages and sitemap problems. On large sites, crawl limits, JavaScript-only links, and parameter rules.
Should every URL be in every source?
No. Redirected, noindexed, and removed URLs should not be in the sitemap or index. A gap only matters when a URL that should rank is missing somewhere.
How do I check if my own settings caused a gap?
Look at your exclusion rules, URL limit, and robots.txt setting. If the missing URL matches any of them, it is a scope error, not a site problem.
Is this the same as the comparison in Module 4?
This lesson checks discovery coverage. Module 4 compares indexing signals in depth, such as noindex, canonicals, and Google's chosen canonical.
Related lessons
Want someone to handle SEO for your business while you learn? The team at Remar Digital can help.