How to Run a Technical SEO Audit With a Prioritized Fix Plan
This guide outlines a repeatable, production-grade technical SEO audit workflow. It is designed for freelancers and in-house technical marketers who need to diagnose crawlability, indexing, and performance bottlenecks without relying on superficial automated reports.
Phase 1: Crawlability, Robots.txt, and Sitemaps
Before Google can rank your content, it must crawl it efficiently. Your crawl budget must not be wasted on low-value pages.
Concrete Steps
- Verify Robots.txt: Ensure your
robots.txtis located at the root (/robots.txt). It must point to your primary XML sitemap and must not block critical CSS, JS, or API endpoints required to render the page. - Execute a Headless Crawl: Use Screaming Frog SEO Spider via the command line to run a headless crawl. This saves memory and allows for automation.
- Analyze Google Search Console (GSC): Navigate to Indexing > Pages. Identify the exact reasons why pages are "Crawled - currently not indexed" or "Discovered - currently not indexed."
Commands
To run a headless crawl and export redirect and canonical data, run this command in your terminal:
screamingfrogseospider --crawl https://example.com --headless --output-folder /path/to/export --export-tabs "Internal:All,Response Codes:All"
To check if your server correctly handles redirects and headers, use curl:
curl -IvL https://example.com
Look for a clean 200 OK response for the canonical URL, and 301 Moved Permanently for all non-canonical variations (HTTP, non-WWW, trailing slash).
Common Mistakes
- Blocking JS/CSS in robots.txt: Preventing Googlebot from rendering the page, leading to poor mobile-friendliness evaluations.
- Sitemap mismatches: Including
noindexpages, 404s, or redirected URLs in thesitemap.xml.
Phase 2: Index Coverage and Canonicalization
Duplicate content dilutes link equity and confuses search engines about which page to rank.
Concrete Steps
- Audit Canonical Tags: Ensure every indexable page has a self-referencing canonical tag unless it is a duplicate/alternate version.
- Check Protocol and Subdomain Consistency: Verify that
http://,http://www.,https://www., andhttps://all resolve to a single canonical version. - Identify Parameter Bloat: Check GSC for URLs containing tracking parameters (e.g.,
?utm_source=,?gclid=) that are being indexed.
Checklist
- [ ] All indexable pages have a valid
<link rel="canonical" href="...">in the HTML<head>. - [ ] Canonical tags point to absolute URLs, not relative paths.
- [ ] No pages contain multiple canonical tags (common in misconfigured WordPress setups).
- [ ] Non-canonical pages (like pagination or search filters) either point to the main category or use
noindexappropriately.
Phase 3: Core Web Vitals and Performance
Google uses Core Web Vitals (CWV) as a ranking signal. You must measure real-user data (CrUX) and lab data.
Concrete Steps
- Run Lighthouse in Headless Chrome: Test your key page templates (Homepage, Category, Product, Blog Post) using the Lighthouse CLI.
- Analyze Cumulative Layout Shift (CLS): Ensure images, ads, and iframes have explicit
widthandheightdimensions. - Optimize Largest Contentful Paint (LCP): Identify the LCP element (usually a hero image or large text block) and preload it.
Commands
Install and run the Lighthouse CLI to generate a mobile performance report:
npm install -g lighthouse
lighthouse https://example.com --chrome-flags="--headless" --only-categories=performance --output html --output-path ./report.html
Common Mistakes
- Optimizing for Desktop Only: Google indexes sites based on mobile-first indexing. Your mobile CWV scores are what impact rankings.
- Lazy-loading Above-the-Fold Images: Lazy-loading your hero image delays the LCP, severely damaging your performance score.
Phase 4: Schema Markup and Internal Linking
Structured data helps Google understand page context, while internal links distribute PageRank throughout your site.
Concrete Steps
- Validate JSON-LD Schema: Extract schema markup and test it using the Schema Markup Validator.
- Map Internal Link Depth: Ensure no critical page is more than 3 clicks away from the homepage.
- Identify Orphan Pages: Compare your Screaming Frog crawl list against your XML sitemap. Any URL in the sitemap with 0 incoming internal links is an orphan page.
Common Mistakes
- Syntax Errors in JSON-LD: Missing commas or unescaped quotes that break the entire schema block.
- Using "Click Here" as Anchor Text: Failing to use descriptive, keyword-rich anchor text for internal links.
Prioritized Fix Matrix
This matrix prioritizes tasks based on their impact on organic visibility and the development effort required to implement them.
| Issue Detected | Impact | Effort | Action Plan |
|---|---|---|---|
| Robots.txt blocking CSS/JS | High | Low | Remove restrictive Disallow rules blocking assets. |
| Broken/Missing Canonical Tags | High | Medium | Implement self-referencing canonicals programmatically across all templates. |
| Redirect Chains (301 -> 301 -> 200) | Medium | Low | Update internal links to point directly to the final destination URL. |
| Poor LCP (Unoptimized Hero Images) | High | Medium | Compress images to WebP/AVIF, set explicit dimensions, and apply fetchpriority="high". |
| Orphan Pages | Medium | Medium | Integrate orphan pages into the main site navigation or category pages. |
| Invalid Schema Syntax | Low | Low | Fix JSON-LD formatting errors using the Schema Markup Validator. |
| Sitemap containing 404/301 URLs | Medium | Low | Re-generate the XML sitemap to include only 200 OK indexable URLs. |
Repeatable Audit Checklist
Keep this checklist handy for every audit you perform:
- Crawl & Indexing
- [ ] Run a Screaming Frog crawl (ensure status 200 for all indexable pages).
- [ ] Check GSC for "Indexed, though blocked by robots.txt" warnings.
- [ ] Verify that the XML sitemap is registered in GSC and returns a 200 status.
- On-Page & Architecture
- [ ] Verify only one
<h1>tag exists per page. - [ ] Check that all images have descriptive
altattributes. - [ ] Ensure no critical content is hidden behind tabs that use
display: nonewithout proper ARIA attributes. - Performance & Mobile
- [ ] Verify the site passes the Core Web Vitals assessment on mobile.
- [ ] Check for render-blocking resources in the
<head>. - [ ] Ensure the viewport meta tag is configured correctly for mobile responsiveness.
Get Your Custom Technical SEO Audit
A generic automated PDF audit won't help your rankings. You need a manually verified, prioritized action plan tailored to your specific CMS and server architecture.
Let's clean up your site's technical foundation and recover your lost organic traffic:
- Get a done-for-you audit with a clear fix plan: Order my Technical SEO Audit on Kwork
- Hire me directly for custom consulting and implementation: View my profile on Freelancehunt
Комментарии
Отправить комментарий