
Traffic slowing, pages stuck as Discovered not indexed, and CWV slipping into the red are classic technical problems. Content often is not the issue. Use this technical SEO audit checklist to find and fix crawl, Core Web Vitals, and indexation issues fast, then keep them fixed.
Pre-audit prep
- Write down your goals and key templates. Prioritize by business value: product, category/collection, article, location, and checkout. List a few sample URLs for each so you can test consistently.
- Verify access to Google Search Console and GA4. In GSC, confirm property-level access to Indexing > Pages, Core Web Vitals, Sitemaps, and URL Inspection. In GA4, create an Explore with landing page + source/medium so you can tie fixes to traffic.
- Snapshot robots, sitemaps, and headers. Save current state in notes or version control:
curl -I https://example.com/,curl https://example.com/robots.txt, andcurl -I https://example.com/sitemap.xml. Check 200 status, content-type, cache-control, and that sitemaps list only canonical URLs. - Confirm your canonical host, protocol, and parameters policy. Decide https only, www or non-www, trailing slash rules, and which UTM or filter parameters are allowed. Enforce with 301s and self-referencing canonicals. Document which parameters are stripped or preserved.
- Record current Core Web Vitals and crawl stats. Note LCP, INP, and CLS thresholds by template (good: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1). In GSC Settings > Crawl stats, record average crawl requests per day and response size/time.
- List platform constraints and plugins. Identify who controls rendering, caching, and routing. Example: Next.js SSR with CDN cache, Shopify Liquid with app proxies, or WordPress with a caching plugin. This avoids pushing fixes where you cannot deploy them.
- Set a staging and rollback plan. Staging should be noindexed or behind basic auth, with IP allowlisting if possible. Keep a rollback for redirects, robots, and templates. Tag each deployment with a timestamp so you can correlate to metrics.
- Decide ownership and cadence. Assign owners for crawl, CWV, and indexation. Pick a weekly triage, a monthly release train, and a quarterly deep audit. Define SLAs for critical regressions.
Crawl and log review
- Run a full crawl with JavaScript rendering. Use a crawler that renders JS. Capture both the raw HTML and rendered HTML. Compare title/H1, links, and word count to see what Googlebot might miss when rendering fails.
- Map out robots directives and meta tags. Check robots.txt for unintended
Disallow: /on production, and look for per-path blocks that hide pagination or filters. On-page, verify<meta name="robots" content="index,follow">on indexable templates and remove straynoindexornofollow. - Find redirect chains and status code waste. Export 3xx chains and collapse to a single 301 hop. Fix 4xx on internal links and 5xx spikes. Enforce http to https and host canonicalization with one hop, then enable HSTS after verifying stability.
- Surface orphan and low-linked pages. Compare crawl data to sitemap URLs. Any page with zero internal inlinks needs at least one link from a hub page, category, or footer. Add breadcrumbs and contextual links to raise discovery and relevance.
- Compare sitemap URLs to discovered URLs. Your XML sitemaps should list only canonical 200 URLs. Remove non-canonicals, parameters, and 3xx/4xx. If you find high-value URLs not in the sitemap, add them and resubmit.
- Review server logs for Googlebot behavior. Sample recent logs to confirm Googlebot and Googlebot-Image are hitting important sections, not drowning in parameters. A typical hit looks like:
Watch for repeated 404s, slow 200s (> 1s TTFB), and waste on infinite filters.66.249.xx.xx - - [20/Jun/2026:12:01:02 +0000] "GET /category/widget?sort=az HTTP/1.1" 200 4321 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" - Standardize canonicals and hreflang. Every indexable page should have a self-referencing canonical. If you target multiple locales, include consistent hreflang pairs and x-default. Do not point hreflang to non-canonical URLs.
- Audit parameters and faceted URLs. Cap crawl space. Allow crawl for facets that users search, block infinite combos. Options: disallow noisy patterns in robots.txt, add
noindex,followto thin facets, and point canonicals back to the base category.
RankGoat crawls your site on a schedule, flags crawl waste and redirect chains, and corrects common robots and canonical mistakes before they cost traffic.
Core Web Vitals checks
- Start with field data, then validate with lab tests. Use CrUX and GSC for real-user LCP, INP, and CLS. Reproduce with Lighthouse in throttled mobile mode to isolate blocking resources and long tasks.
- Pinpoint the LCP element per template. Identify the hero image or headline. Preload it with
<link rel="preload" as="image" imagesrcset="..." fetchpriority="high" href="...">, use WebP or AVIF, compress aggressively, and inline critical CSS to avoid render-blocking. - Eliminate layout shifts at the source. Reserve space with intrinsic dimensions or
aspect-ratio, avoid injecting banners or consent UI late, and stabilize fonts withfont-display: swap. Audit sticky bars that push content down. - Tackle INP by cutting main-thread work. Defer non-critical scripts, split bundles, mark passive listeners, and break up tasks > 50ms. Prioritize input handlers and avoid synchronous third-party widgets on first interaction.
- Trim third-party scripts and tags. List every tag, owner, and purpose. Remove duplicates, set a load budget, and delay anything not needed at first paint. Use server-side tagging or a lightweight loader where possible.
- Right-size and lazy-load media. Use responsive
srcsetand sizes,loading="lazy"anddecoding="async", and cap hero images to the rendered viewport width. Compress video or replace with a click-to-load poster. - Strengthen caching and delivery. Serve from a CDN, enable compression, and set
Cache-Controlwith sensiblemax-age/s-maxage. Use HTTP/2 or HTTP/3, preconnect to critical origins, and avoid cache-busting query params on static assets. - Test on mobile first. Validate on a mid-tier device profile with ~1.6 Mbps and 300 ms RTT. Check CWV by template and page weight budgets. Verify that first input stays responsive on scroll-heavy pages.
RankGoat monitors Core Web Vitals by template, ships safe optimizations, and alerts you when regressions appear so you do not have to babysit graphs.
Indexation diagnostics
- Inspect key URLs in GSC. Use URL Inspection to confirm crawl, render, chosen canonical, and index status. If Google selects a different canonical, compare content, internal links, and canonicals to understand the signal conflict.
- Work through Page indexing buckets. For Discovered, not indexed, add internal links and include in the sitemap. For Crawled, not indexed, improve content depth and remove duplicate signals. For Duplicate without user-selected canonical, fix canonicals and redirects.
- Tighten canonicalization rules. Use self-referential
<link rel="canonical" href="...">on indexable pages. Unify trailing slashes sitewide. Use 301s for variants and avoid 302 or JS redirects for permanent moves. - Control thin, duplicate, and soft 404s. Noindex tag pages and search results. Consolidate near-duplicates into a primary URL. Return 404 or 410 for dead content rather than a 200 with an error message.
- Clean up sitemaps. Split by type if large, keep under 50k URLs or 50MB per file, include
<lastmod>in ISO format, and ensure all entries are 200, canonical, and indexable. Gzip large files and host at a stable URL. - Validate structured data. Use JSON-LD for articles, products, breadcrumbs, and organization. Ensure schema reflects on-page content and links to the canonical URL. Fix warnings that block eligibility for rich results.
- Handle faceted navigation at scale. Allow index for valuable combinations, but block or noindex the rest. Avoid linking to infinite sort/filter combos. Use canonical back to the base category for non-canonical views.
- Set international and GEO signals correctly. Implement hreflang with language-region codes like
en-US, include x-default, and keep canonicals self-referential per locale. Avoid automatic geo-redirects that prevent crawling.
Clean indexation helps with AI search visibility too. When canonical signals, structured data, and freshness are reliable, AI answers are more likely to cite and summarize your pages correctly.
Prioritize fixes
- Score every issue by impact and effort. Use a simple ICE model: Impact x Confidence / Effort. Tackle high-score items first. Keep a one-page tracker so everyone sees the queue and owners.
- Tackle blockers first. Fix 5xx errors, stray noindex rules, broken canonicals, and redirect loops before micro-optimizations. Unblock crawling and rendering, then iterate on speed.
- Ship fast CWV wins. Preload hero assets, defer analytics, set
font-display: swap, define image dimensions, and remove dead scripts. These usually move LCP and CLS in days, not weeks. - Standardize redirects and canonicals. Create global rules for host, protocol, trailing slashes, and case sensitivity. Ensure single-hop 301s so you do not waste crawl or pass diluted signals.
- Roll out by template, then measure. Deploy to one template, recrawl, then watch GSC and RUM trends for two weeks before scaling. This reduces risk and proves causality.
- Automate monitoring and alerts. Enable GSC email alerts, uptime checks, log sampling for 4xx/5xx spikes, and CWV budgets with alerts when LCP or INP regress beyond thresholds.
- Document changes with timestamps. Keep a changelog with what changed, when, where, and why. Annotate GA4 and your rank tracker. When rankings move, you will be able to connect cause and effect.
- Make it ongoing, not one-off. Pair this checklist with a reliable SEO automation service like RankGoat so crawling, CWV, and indexation stay healthy month after month.
Technical health multiplies everything else you do. A done-for-you blog writing service and a strong backlink building service pay off when pages get crawled fast, render cleanly, and index without confusion. RankGoat pricing reflects that the monthly service covers technical fixes alongside content and links, so you do not juggle vendors or dashboards.
Key takeaways
- Start with access, baselines, and clear rules for canonicals, slashes, and parameters.
- Fix crawl waste, redirect chains, and log-based errors to protect crawl budget.
- Prioritize Core Web Vitals improvements that impact real users first.
- Keep sitemaps clean and signals consistent to improve indexation and AI search visibility.
- Turn the audit into a recurring process with owners, SLAs, and alerts.
Bookmark this checklist, run it quarterly, and assign owners. If you would rather have it handled for you, RankGoat runs these checks continually while publishing new content and earning dofollow links, so you can focus on the business.