Google SEO Advanced

Technical SEO Audit Checklist: 20 Checks for Crawling, Indexing, Rendering and Performance

A technical SEO audit isn't a matter of running a tool once and calling it done. It's systematic work, checking item by item across four quadrants. The crawling quadrant covers robots.txt, sitemaps, 4xx/5xx errors, crawl budg...

技术 SEO 审计:20 项检查,分四个象限Technical SEO audit: 20 checks across 4 quadrants 反直觉:收录率不是越高越好——低质量薄页被收录反而稀释质量信号Counter-intuitive: indexing rate is not always good — thin pages dilute quality signals 抓取 Crawling(5 项)Crawling (5 checks) 1. robots.txt 无错误阻止1. robots.txt no accidental blocks 2. XML Sitemap 可访问2. XML sitemap accessible 3. 抓取错误 4xx/5xx < 1%3. Crawl errors 4xx/5xx < 1% 4. 抓取预算未被浪费4. Crawl budget not wasted 5. 内部链接无断链5. No broken internal links 工具:Search Console + Screaming FrogTools: GSC + Screaming Frog 索引 Indexing(5 项)Indexing (5 checks) 6. 重要页面全部被索引6. Important pages indexed 7. 无 noindex 误设7. No accidental noindex 8. 无重复内容8. No duplicate content 9. canonical 标签正确9. Canonical tags correct 10. 索引覆盖率合理10. Index coverage reasonable 工具:Search Console 覆盖率报告Tools: GSC coverage report 渲染 Rendering(5 项)Rendering (5 checks) 11. Googlebot 能渲染 JS11. Googlebot renders JS 12. 核心内容在 HTML 源码中12. Core content in raw HTML 13. 无渲染错误控制台报错13. No console render errors 14. 结构化数据可被解析14. Structured data parseable 15. hreflang 标记正确15. hreflang tags correct 工具:URL 检查工具 + Rich Results TestTools: URL Inspection + Rich Results Test 性能 Performance(5 项)Performance (5 checks) 16. LCP ≤ 2.5 秒16. LCP ≤ 2.5s 17. INP ≤ 200 毫秒17. INP ≤ 200ms 18. CLS ≤ 0.118. CLS ≤ 0.1 19. 移动端可用19. Mobile usable 20. HTTPS 全站无混合内容20. HTTPS no mixed content 工具:PageSpeed Insights + CrUXTools: PageSpeed Insights + CrUX
Technical SEO Audit: 20-Point Checklist Across the Four Quadrants of Crawling, Indexing, Rendering and Performance

Technical SEO Audit Checklist: 20 Checks for Crawling, Indexing, Rendering and Performance

Bottom line first: A technical SEO audit isn’t a matter of running a tool once and calling it done. It’s systematic work, checking item by item across four quadrants. The crawling quadrant covers robots.txt, sitemaps, 4xx/5xx errors, crawl budget and broken links; the indexing quadrant covers whether important pages are indexed, accidental noindex tags, duplicate content, canonical tags and coverage; the rendering quadrant covers JavaScript rendering, whether core content is in the source code, console errors, structured data and hreflang; the performance quadrant covers LCP, INP, CLS, mobile and HTTPS. Here’s the counterintuitive part: a higher index rate isn’t better. If your site has a lot of thin pages indexed, Google lowers the quality score for the whole site. The right move is to noindex low-quality pages on purpose and concentrate your crawl budget on the pages that matter.

1. Why a technical audit needs four quadrants

A lot of people treat a technical audit as running PageSpeed Insights once and glancing at the error count in GSC. In reality, technical SEO has four layers: can Google crawl it (crawling), will it index what it crawled (indexing), is the content right (rendering), and does it run fast (performance). If any one of them breaks, all the work above it is wasted.

Counterintuitive: a 100% index rate is not the goal. On a 1,000-page site, if 900 of those pages are thin content, parameter pages or search result pages, having Google index them all actually drags down your overall quality score. The right move is to noindex low-quality pages on purpose and concentrate your crawl budget on the 100 pages that genuinely have value.

Quadrant Core issues If it breaks Weight
Crawling Can Googlebot reach your pages Pages never get visited at all Foundation layer, a single failure kills everything
Indexing Will what was crawled make it into the index Pages never enter Google’s database Foundation layer, a single failure kills everything
Rendering Is the HTML that was crawled the complete content Content is correct but Google can’t read it A common trouble spot on modern sites
Performance Does the page run fast Rankings get penalized or users leave One of the ranking factors

The four quadrants build on each other in order: first make sure pages can be crawled, then that they can be indexed, then that they render correctly, and only then optimize performance. The order can’t be reversed. If robots.txt is blocking important pages, no amount of LCP optimization will help. And Google SEO how it relates to other modules: a technical audit is the foundation,Structured data (Schema) builds the house on that foundation, and Core Web Vitals Optimization is a deep dive into the performance quadrant.

2. The crawling quadrant: 5 checks

Crawlability is the foundation. If Googlebot can’t reach your pages, nothing else matters.

# Checklist Pass criteria Tools FAQ
1 robots.txt blocks nothing by mistake Key pages aren’t Disallowed GSC robots testing tool Redesign left a stray Disallow: /
2 XML sitemap is reachable Returns 200, no errors GSC sitemap report Sitemap path is wrong or never submitted
3 Crawl errors 4xx/5xx < 1% 404/500 errors under 1% GSC crawl stats Redesign created mass 404s with no 301s
4 Crawl budget isn’t wasted Parameter and duplicate pages don’t burn crawl budget GSC crawl stats + log analysis Search result pages get crawled endlessly
5 No broken internal links Every internal link returns 200 Screaming Frog crawl Old posts link to deleted pages

Example 1: After a site redesign, the tech team set robots.txt to Disallow: / and forgot to revert it. Three weeks later, “Crawled – currently not indexed” pages in GSC jumped from 200 to 2,000. How to catch it: when the Coverage report shows an unusual spike in “Crawled – currently not indexed,” check robots.txt first. After fixing it, request indexing manually with the URL Inspection tool; recovery takes 1 to 3 days.

Crawl budget: Google only crawls each site so often. If your site has lots of parameterized URLs (like /products?sort=price&filter=red), Googlebot spends most of its time on those duplicates, and your important product pages never get crawled. The fix: block parameterized URLs in robots.txt, or point them to the main version with a canonical.

3. Indexing: 5 checks

Google crawling your page doesn’t mean it will index it. The indexing checks cover two things: are the pages you want indexed actually indexed, and are the ones you don’t want indexed kept out?

# Checklist Pass criteria Tools FAQ
6 All key pages are indexed Core product and article pages indexed > 95% GSC coverage report New product pages never submitted in the sitemap
7 No accidental noindex Live pages carry no noindex tag Screaming Frog + GSC noindex left on from the dev environment
8 No duplicate content Multiple URL versions of the same content < 5% Siteliner + Screaming Frog HTTP/HTTPS and www vs. non-www duplicates
9 canonical tags are correct Every page has a self-referencing canonical GSC + URL Inspection tool canonical points to the wrong page
10 Index coverage is reasonable Indexed page count matches the number of valuable pages GSC coverage report Thin pages are indexed in bulk

Example 2: A B2B site’s product listing page had 50 filter combinations, each generating its own URL (/products?category=valve&material=steel). Google indexed them all, and the total index count grew from 200 to 2,000. The result: the site was flagged for large amounts of duplicate thin content, its overall quality score dropped, and product detail pages actually ranked lower. The fix: add noindex to parameterized filter URLs, or block them outright in robots.txt.

A stray noindex is the most common and most damaging mistake. During development, the team added noindex to the site-wide head to keep the test site out of Google, then forgot to remove it after launch. Three months in, searching the brand name on Google still wouldn’t surface the official site. How to check: crawl with Screaming Frog, then filter for “Meta robots contains noindex” — live pages should return zero results.

4. Rendering quadrant: 5 checks

Modern sites rely heavily on JS rendering (React, Vue, Next.js client-side rendering). Googlebot can execute JS, but not in real time — it first crawls the raw HTML and queues it, then runs it through the Chrome rendering queue days later. This delay and rendering failures are the biggest SEO pitfalls for SPA sites.

# Checklist Pass criteria Tools FAQ
11 Googlebot can render JS URL Inspection tool shows “Rendered” GSC URL Inspection tool JS errors cause rendering failures
12 Core content is in the HTML source title, H1, and first body paragraph are in the raw HTML View page source (not F12) Pure client-side rendering, blank source
13 No rendering errors in the console No errors in Chrome DevTools Console Chrome DevTools API call failures leave content blank
14 Structured data can be parsed No errors in Rich Results Test Rich Results Test JSON-LD is injected dynamically via JS
15 hreflang tags are correct Multilingual pages reference each other correctly GSC + hreflang checking tools hreflang loops or wrong language returned

Key test: use “View page source” (Ctrl+U, not F12) to see the raw HTML. If the title, H1, and first body paragraph are visible in the raw HTML, the site uses SSR or SSG, and Google can read the content on its first crawl. If the raw HTML contains only div#app and a pile of script tags, the site uses pure client-side rendering (CSR), and Google has to wait for the Chrome rendering queue to read it.

hreflang errors are very common on multilingual sites: a German page pointing to an English page, an English page pointing to itself, or a missing x-default. For setup instructions, see Hreflang for multilingual sites. Injecting structured data dynamically via JS may eventually render for Google, but the crawl queue often misses it — JSON-LD is best placed in the raw HTML.Structured data (Schema)‘s verification workflow pairs with this one.

5. Performance quadrant: 5 checks

Performance covers the three Core Web Vitals plus mobile usability and HTTPS. Performance isn’t just about “running fast” — it’s a Google ranking factor. Since 2021, Core Web Vitals has been an official ranking signal.

# Checklist Pass criteria Tools FAQ
16 LCP (Largest Contentful Paint) ≤ 2.5s PageSpeed Insights + CrUX Above-the-fold images uncompressed, fonts blocking
17 INP (Interaction to Next Paint) ≤ 200ms PageSpeed Insights + CrUX Third-party scripts block the main thread
18 CLS (Cumulative Layout Shift) ≤ 0.1 PageSpeed Insights + CrUX Images without dimensions, ad slots not reserved
19 Mobile usability No blocking layout errors GSC Mobile Usability report Tap targets too small, horizontal scrolling
20 HTTPS site-wide with no mixed content All resources served over HTTPS Browser console + GSC Images/CSS still point to HTTP links

Example 3: A B2B site scores LCP 4.2s and INP 350ms on PageSpeed. The diagnosis: the hero banner is an uncompressed 3MB PNG, and the homepage loads 8 third-party tracking scripts. The fix: convert images to WebP and compress them to 200KB, and defer scripts with Tag Manager. Two weeks later, LCP drops to 1.8s and INP to 120ms. See the optimization method at Core Web Vitals Optimization.

Performance priority: LCP before INP before CLS. If LCP fails, check hero images first (compression, lazy loading, preload) and TTFB, then look at render-blocking resources.Global CDN acceleration Directly improves TTFB and LCP for overseas sites.

FAQ

How often should I run a technical SEO audit?
Run a full audit every quarter for a typical site. After a redesign, migration, or tech stack change, run an emergency audit within the first week. For day-to-day monitoring, use the Coverage report and Crawl stats in Search Console, and investigate immediately when you see unusual swings (a sudden drop in indexed pages, a spike in crawl errors). Running all 20 checks takes about 2 to 3 business days; a small site (under 100 pages) can be done in 1 day.
Is a higher index rate always better?
No. If your site has lots of thin content pages, filtered result pages, and duplicate content pages, having Google index them all actually drags down your site’s overall quality score. The right approach is to actively exclude low-quality pages with noindex or canonical, so Google focuses its crawl budget on the pages that truly matter. A 200-page site full of high-quality content ranks far better than a 2,000-page site full of thin content.
How do I do SEO for a React/Vue SPA site?
Three key steps: First, use View Page Source (not F12) to confirm whether the title, H1, and first paragraph of body text are in the raw HTML. If they aren’t, the site is purely client-side rendered and needs to be changed to SSR (server-side rendering) or SSG (static generation). Second, put structured data JSON-LD in the raw HTML, not injected dynamically via JS. Third, use the URL Inspection tool in GSC to test the rendered version and confirm Googlebot can execute JS correctly and read the full content.
What is crawl budget? How do I tell if it’s being wasted?
Crawl budget is how many pages on your site Googlebot is willing to crawl in a given amount of time. Small sites (under 500 pages) barely need to worry about crawl budget, since Google has enough to crawl every page. Large sites (5,000+ pages) need to pay attention: if GSC crawl stats show lots of Googlebot requests for parameterized filter pages, sort pages, and duplicate URLs, your crawl budget is being wasted. The fix is to block crawling of worthless URLs with robots.txt, or consolidate duplicate versions with canonical.
How do I quickly fix a failing LCP?
Troubleshoot in priority order. First, compress the largest image above the fold: convert it to WebP, set up srcset with responsive images, and get it under 200KB. Second, server response time (TTFB): use a CDN and optimize database queries to bring TTFB under 600 milliseconds. Third, render-blocking resources: defer CSS and JS that aren’t above the fold, and inline critical CSS. Once you’ve done these three steps, LCP usually drops from over 4 seconds to under 2.
How do you find and fix an accidental noindex?
How to find it: crawl the whole site with Screaming Frog and filter for “Meta robots contains noindex” — live pages should return zero results. Or check the GSC coverage report for an unusually high number of “Crawled – currently not indexed” pages. How to fix it: remove the noindex meta tag from the head, then use the URL Inspection tool to request reindexing manually. Pages are usually reindexed within 1 to 3 days. Common cause: noindex was added in the dev environment to keep pages out of search, then never removed after launch.

Final thoughts

A technical SEO audit is the foundation of all SEO work: no matter how good your content is or how much you paid for backlinks, it’s all wasted if Google can’t crawl your pages or only finds an empty JS shell. These 20 checks aren’t a one-time task — run through them every quarter.

Three steps to put this into practice: this week, export data from the GSC coverage report and crawl stats, then check off each of the 20 items; next week, rank the failures by priority — fix crawling and indexing first (these are dealbreakers), then rendering, and optimize performance last; in the third week, retest your fixes with the URL Inspection tool and PageSpeed.

One line worth remembering: technical SEO isn’t about being more complex, it’s about being cleaner — if Googlebot can crawl fast, index accurately, render correctly, and run stably, you’ve done your part. Leave the rest to content and backlinks.

Cui Lishu
Cui Lishu Crater experts

Delivery · Operations Lead · Crater Delivery & Operations Team

Delivery & Operations Lead at Crater. Responsible for SEO execution, social media channel operations, and content distribution, with a knack for breaking down growth actions with data. Has overseen the delivery of multiple go-global projects, with a focus on the coordinated playbook across Facebook, Twitter, TikTok, YouTube, and SEO/GEO.

SEO executionContent operationsCase breakdowns
1106articles shared
84knowledge base articles