Prompt
technical SEO audit tool for large site crawl and indexation issues
Latest observation
Here’s a solid technical SEO audit tool framework for detecting large-site crawl and indexation issues. I’ll keep it practical and implementation-oriented.
What the tool should detect
For large sites, the highest-value checks are usually:
Crawlability
- Broken internal links (4xx/5xx)
- Redirect chains and loops
- Orphan pages
- Pages blocked by
robots.txt noindexpages that should be indexed- Canonicalized pages pointing elsewhere
- Pages requiring too many clicks from important pages
- Excessive parameter/faceted URL duplication
- Slow response times / crawl budget waste
Indexation
- Indexed vs non-indexed pages at scale
- Pages discovered but not crawled
- Pages crawled but not indexed
- Soft 404s
- Duplicate content clusters
- Canonical mismatches
- Sitemap URLs not indexed
- Index bloat from thin/duplicate pages
- Staging/dev URLs accidentally indexable
Core inputs
A good audit tool should ingest:
-
Crawl data
- URL
- status code
- redirect target
- canonical tag
robotsmetax-robots-tag- title/meta description
- hreflang
- word count / content hash
- response time
- depth
- internal inlinks/outlinks
-
Search Console / index data
- Indexed pages
- Excluded pages
- Sitemap coverage
- Crawl stats
- URL inspection data if available
- Page indexing reasons
-
Sitemaps
- Submitted URLs
- Lastmod
- sitemap segmentation
-
Server logs (ideal for large sites)
- Googlebot hits
- Crawl frequency
- response codes
- crawl waste patterns
Architecture suggestion
For a large site, use a pipeline like:
1. URL discovery
- Start from sitemap(s)
- Crawl internal links
- Merge with logs and GSC URLs
- Normalize URLs:
- remove tracking params
- lowercase host
- handle trailing slashes
- normalize http/https if needed
2. Fetch and parse
For each URL, collect:
- status code
- headers
- final URL
- HTML parsing
- canonicals
- meta robots
- hreflang
- links extracted
- response time
3. Build graph
Represent the site as a graph:
- nodes = URLs
- edges = internal links
- annotate with crawl/index signals
4. Rule engine
Run checks like:
status != 200canonical != self && canonical not indexablenoindex && in sitemapblocked by robots but linked internallyredirect chain length > 1duplicate content hashorphan && important templatesitemap URL missing from crawlindexable page with low internal links
5. Prioritization
Score issues by:
- number of affected URLs
- template-wide vs single URL
- impact on revenue/traffic pages
- crawl depth
- indexation importance
- internal link equity loss
Important issue definitions
Orphan page
A URL that exists in sitemap/logs/GSC but has no internal links from crawlable pages.
Crawl trap
A URL pattern that generates infinite/near-infinite crawl paths:
- faceted navigation
- calendar pages
- session IDs
- sort/filter params
- pagination loops
Indexation mismatch
Examples:
- URL is in sitemap but noindexed
- Google indexed a non-canonical version
- canonical points to a 404/redirect
- page is crawlable but excluded due to duplication
Soft 404
Page returns 200 but content indicates:
- empty search results
- “not found” message
- very thin content
- category with no products
Recommended outputs
The tool should generate:
1. Executive summary
- Total URLs discovered
- Indexable URLs
- Non-indexable URLs
- Pages with crawl/indexation issues
- Estimated wasted crawl budget
2. Issue dashboard
Grouped by severity:
- Critical
- High
- Medium
- Low
3. URL-level export
For every URL:
- canonical
- indexable?
- status
- depth
- inlinks
- sitemap inclusion
- issue flags
- priority score
4. Template-level insights
So you can identify:
- product pages
- category pages
- blog posts
- faceted URLs
- search pages
- pagination pages
Suggested priority scoring
Example formula:
Priority = Impact × Scale × Confidence × BusinessValue
Where:
- Impact = crawl/indexation harm severity
- Scale = number of affected URLs
- Confidence = certainty the issue is real
- BusinessValue = page type importance
Example:
- Homepage canonical issue = very high
- 3 broken links on blog post = low
- 50,000 parameter URLs in sitemap = critical
Stack options
If you want to build it yourself
- Crawler: Scrapy / Playwright / Python requests
- Parsing: BeautifulSoup / lxml / parsel
- Storage: PostgreSQL / BigQuery / Elasticsearch
- Graph: Neo4j or a graph table model
- Queue: Redis / RabbitMQ / Celery
- Reporting: Metabase / Superset / custom dashboard
If you want faster time-to-value
Use existing tools and build a layer on top:
- Screaming Frog
- Sitebulb
- Oncrawl
- Deepcrawl/Lumar
- JetOctopus
- Botify
Then add:
- custom rules
- GSC integration
- log file analysis
- prioritized issue scoring
MVP feature list
If you’re building a first version, include:
- Sitemap ingestion
- Crawl with JS rendering optional
- Internal link graph
- Canonical/noindex/robots checks
- Redirect chain detection
- Duplicate content hashing
- Orphan detection
- Sitemap vs crawl comparison
- GSC indexation comparison
- CSV/JSON export
Example high-value alerts
- “12,430 URLs in sitemap are blocked by robots.txt”
- “8,221 URLs canonicalize to non-200 pages”
- “3,980 parameter URLs receive 41% of Googlebot hits”
- “1,204 indexable pages have zero internal links”
- “67% of discovered URLs are duplicate or near-duplicate”
- “Product template pages are excluded due to sitewide noindex”
If you want, I can also help with one of these next:
- A full feature specification
- A database schema
- A Python crawler prototype
- A SQL model for crawl/indexation analysis
- A UI/dashboard wireframe
- A rules engine for technical SEO checks
If you want, I can draft an MVP technical SEO audit tool spec for large sites in a more product-ready format.