---
name: technical-seo-audit
slug: technical-seo-audit
description: This skill should be used when the user asks to "run a technical SEO audit", "audit technical SEO", "check site health for SEO", "technical SEO checklist", "crawl the site for SEO issues", "find technical SEO problems", "site audit for SEO", "diagnose technical SEO issues", or any variation of running, planning, or executing a technical SEO audit for a B2B SaaS website.
category: general
---

# Technical SEO Audit

A technical SEO audit identifies infrastructure issues that prevent Google (and AI engines) from crawling, indexing, and ranking your pages. No amount of great content compensates for technical problems — if Google can't access or understand your pages, they won't rank.

For SaaS sites, the most common technical issues are JavaScript rendering problems, slow page speeds, poor URL structure, and missing schema markup. These are fixable with engineering effort but are often invisible to content teams.

## The Technical SEO Audit Checklist

### Crawlability

| Check | Tool | Pass criteria | Common SaaS issue |
|-------|------|--------------|-------------------|
| Robots.txt allows crawling of important pages | Site audit tool, manual check | No important pages blocked by `Disallow` | Staging rules accidentally blocking production pages |
| XML sitemap exists and is submitted | GSC → Sitemaps | Sitemap submitted, < 1% errors | Sitemap missing or outdated |
| All important pages are in the sitemap | Compare sitemap to site pages | 100% of important pages included | New pages not auto-added to sitemap |
| No orphan pages (pages not linked from any other page) | Screaming Frog, Ahrefs Site Audit | Zero orphan pages for important content | pSEO pages not linked from hub pages |
| Crawl budget not wasted on low-value pages | GSC → Crawl Stats | Low-value pages (admin, tags, search results) blocked from crawling | Internal search result pages being crawled |
| Server returns correct status codes | Screaming Frog | 200 for live pages, 301 for redirects, 404 for deleted | Soft 404s (page shows "not found" but returns 200) |

### Indexability

| Check | Tool | Pass criteria | Common SaaS issue |
|-------|------|--------------|-------------------|
| Important pages are indexed | `site:yourdomain.com` in Google, GSC → Coverage | All important pages indexed | JavaScript-rendered content not indexed |
| No accidental noindex tags | Screaming Frog → Directives | No `noindex` on pages that should rank | Dev accidentally left noindex from staging |
| Canonical tags are correct | Screaming Frog → Canonicals | Every page has correct self-referencing canonical | Canonicals pointing to wrong pages |
| No duplicate content | Screaming Frog → Duplicates, Ahrefs | No two pages with identical or near-identical content | pSEO pages with insufficient content variation |
| Hreflang correct (if multilingual) | Screaming Frog → Hreflang | Correct language/region tags, reciprocal links | Missing or incorrect hreflang tags |

### Page speed

| Check | Tool | Target | Common SaaS issue |
|-------|------|--------|-------------------|
| Largest Contentful Paint (LCP) | PageSpeed Insights, GSC → CWV | < 2.5 seconds | Large unoptimized hero images |
| First Input Delay (FID) / INP | PageSpeed Insights | < 200ms | Heavy JavaScript frameworks |
| Cumulative Layout Shift (CLS) | PageSpeed Insights | < 0.1 | Dynamic content loading without reserved space |
| Mobile page speed score | PageSpeed Insights | 70+ | Desktop-first design not optimized for mobile |
| Time to First Byte (TTFB) | WebPageTest | < 600ms | Slow server response, no CDN |

### Rendering

| Check | Tool | Pass criteria | Common SaaS issue |
|-------|------|--------------|-------------------|
| Content visible without JavaScript | Disable JS in browser, view page | Core content visible in HTML source | React/Next.js app with client-side rendering |
| Google renders the page correctly | GSC → URL Inspection → Live Test → View Tested Page | Rendered page matches live page | JS-dependent content not rendering for Googlebot |
| AI engines can access content | Fetch page without JS (curl) | Content available in raw HTML | AI crawlers don't execute JavaScript |

### URL structure

| Check | Tool | Pass criteria | Common SaaS issue |
|-------|------|--------------|-------------------|
| Clean, descriptive URLs | Manual review | `/vs/hubspot-vs-salesforce` not `/page?id=12345` | Dynamic URL parameters |
| Consistent URL format | Screaming Frog | Lowercase, hyphens, no trailing slashes (or consistent trailing slashes) | Mix of formats |
| No URL parameters for content | Manual review | Content URLs are static paths | Session IDs or tracking params in URLs |
| Redirect chains < 3 hops | Screaming Frog → Redirects | Max 2 redirects in any chain | Years of URL changes creating long chains |

### Internal linking

| Check | Tool | Pass criteria | Common SaaS issue |
|-------|------|--------------|-------------------|
| All important pages reachable within 3 clicks from homepage | Screaming Frog → Crawl Depth | Depth ≤ 3 for priority pages | Deep pages buried 5+ clicks from homepage |
| Internal links use descriptive anchor text | Screaming Frog → Anchors | Anchor text describes the target page | "Click here" or "Learn more" as anchor text |
| No broken internal links | Screaming Frog → Status Codes | Zero internal 404s | Deleted pages still linked from other content |

### Schema and structured data

| Check | Tool | Pass criteria |
|-------|------|--------------|
| Organization schema site-wide | Manual review | Present on every page |
| Page-type-appropriate schema | Google Rich Results Test | Correct schema per page type |
| No schema errors | GSC → Enhancements | Zero schema errors |
| `dateModified` present and accurate | Manual review | Updated on every edit |

---

## Running the Audit

### Tools needed

| Tool | Purpose | Cost |
|------|---------|------|
| Screaming Frog | Site crawl, technical issues | Free (up to 500 URLs), £199/year |
| Google Search Console | Indexing, crawl, CWV data | Free |
| PageSpeed Insights | Page speed and CWV | Free |
| Ahrefs Site Audit | Comprehensive technical audit | $99+/month |
| Google Rich Results Test | Schema validation | Free |

### Audit process

| Step | Action | Time |
|------|--------|------|
| 1 | Run Screaming Frog crawl of the entire site | 15-60 min (depends on site size) |
| 2 | Review GSC Coverage, CWV, and Enhancements reports | 30 min |
| 3 | Run PageSpeed Insights on 5 key pages (homepage, top blog, comparison, pricing, product) | 15 min |
| 4 | Check rendering with JS disabled on 5 key pages | 15 min |
| 5 | Validate schema on 5 key pages with Rich Results Test | 15 min |
| 6 | Review URL structure and internal linking from Screaming Frog data | 30 min |
| 7 | Compile findings, prioritize by impact | 30-60 min |

**Total: 3-4 hours for a complete technical audit.**

### Prioritizing fixes

| Impact | Issue type | Fix timeline |
|--------|-----------|-------------|
| Critical | Pages not being indexed, JavaScript rendering blocking content | This week |
| High | Slow page speed (LCP > 4s), broken redirects, missing sitemap | Within 2 weeks |
| Medium | Missing schema, suboptimal URL structure, thin internal linking | Within 30 days |
| Low | Minor CWV issues, redirect chains, non-critical 404s | Next quarter |

---

## Pre-Audit Checklist

- [ ] Screaming Frog or equivalent crawl tool ready
- [ ] Google Search Console access confirmed
- [ ] List of priority pages identified (top 20 by traffic or business value)
- [ ] Current indexation count noted (baseline)
- [ ] Audit findings template ready
- [ ] Engineering team briefed on potential fix requests
- [ ] Follow-up schedule set (re-audit in 30 days to verify fixes)

---

## Anti-Pattern Check

- Never running a technical audit → Technical issues accumulate silently. A page that doesn't render for Googlebot gets zero traffic regardless of content quality. Audit quarterly at minimum
- Content team ignoring technical SEO → "That's engineering's problem" means nobody owns it. Content can't rank on a broken technical foundation. Someone must own technical SEO — content team, SEO specialist, or engineering
- Fixing everything at once → A 50-item fix list overwhelms engineering. Prioritize by impact. Fix critical indexation issues first. Speed improvements second. Cosmetic URL issues last
- Assuming SSR/SSG means no rendering issues → Server-side rendered sites can still have rendering problems. Always check with GSC URL Inspection → View Tested Page. Verify Google sees what users see
- Only auditing the blog → Your product pages, pricing page, and comparison pages need technical SEO too. Audit the entire site, not just the content section
- Not re-auditing after fixes → An audit without follow-up is incomplete. Re-crawl 30 days after fixes to verify issues are resolved and no new issues were introduced