Example output

What the tool produces

A real, two-site SEO recovery — anonymised end-to-end. A product site and its parent corporate site, taken from an emergency diagnostic through fixes to a full audit with 90-day plans. Same shape, same depth, same Health Score you'd get on your own site — no setup required to read it.

A real engagement, anonymised. Names and domains have been removed (the two properties are called Site 1 and Site 2) — but every figure is real.
Measured wins

Core Web Vitals — before & after

Two emergency performance fixes the audit drove, with real measured before/after results.

Site 1 (product) — layout stability

The page jumped around as it loaded (CLS), failing on both mobile and desktop — an unsized hero video, an undimensioned logo carousel, and late-loading fonts.

Desktop CLS
0.497 → 0.037 −92%
Mobile CLS
0.183 → 0.016 −91%
Mobile interactivity (TBT)
320ms → 170ms −47%

Site 2 (corporate) — load speed

The main content appeared slowly (LCP) because the hero image was set to load lazily — the browser delayed it until after the page was already laid out.

Mobile LCP
9.5s → 4.4s −54%
Mobile CLS
0.497 → 0.000 −100%

Site 1 now passes all four Core Web Vitals on desktop and three of four on mobile. Site 2 passes on the key metrics (current PageSpeed: mobile 76, desktop 92). The remaining work is listed in the plan.

SEO Health Score — two sites

A score that tracks the climb, not a victory lap

Both sites scored in the "High severity" band — because both were caught mid-crisis. The score's job isn't to flatter; it's to make the recovery measurable cycle over cycle. Here's the arc:

1. Caught failing

A broken migration was bleeding 3 years of search authority; Core Web Vitals failing on both sites.

2. Emergency fixes shipped

Redirect fixed (301, path-preserving, SSL); hero-video and lazy-image fixes deployed; recovery signals submitted to Google.

3. Now stabilising

Duplicate pages falling 12 → 5; both sites pass the key Core Web Vitals; 90-day plans in motion.

Site 1 · Product site
53 /100
High severity · recovering
Site 2 · Corporate site
42 /100
High severity · recovering
Category
S1
S2
Content Coverage22%
56
50
Technical SEO20%
41
42
On-Page SEO18%
60
44
Performance12%
62
76
Schema Markup10%
51
0
AI Visibility10%
42
38
Programmatic SEO8%
40
40

Three categories (Technical, Performance, Schema) are read straight off the tools — crawler, PageSpeed, schema validation — so re-runs are reproducible. Site 2's Schema score of 0 is real: the site has no structured data at all.

The headline finding

A good migration shipped without SEO hygiene and quietly bled years of hard-earned authority — and the worst of it has now been stopped. The redirect is fixed and path-preserving; Google's own indexing report confirms the canonical fix is working (duplicate pages down from 12 to 5). The job is no longer triage — it's growth, plus a handful of cheap, still-unshipped bug fixes.

Key outcomes to date

From an actively-worsening problem to a 90-day plan

  • Confirmed a broken redirect as the single most damaging active issue across the whole web presence.
  • Fixed it: now 301, path-preserving, with SSL — verified across all tested URLs.
  • Submitted formal migration-recovery signals to Google Search Console.
  • Submitted sitemaps and verified all three Search Console properties.
  • Diagnosed a site-wide canonical-tag suppression — fix shipped; duplicate pages already falling 12 → 5.
  • Completed full technical audits of both sites: performance, indexing, backlinks, keywords, SERPs.
  • Found a critical conversion failure — the main product page 404s, linked from 11 pages incl. the nav.
  • Produced prioritised 90-day action plans for both sites.

The full report

⬇ Download .md

Anonymised example — “Site 1” and “Site 2” are real properties with their names and domains removed; all figures are real.

Two-Site SEO Audit & Recovery — Site 1 (product) + Site 2 (corporate)

Scope: a B2B SaaS product site (Site 1) and its parent corporate/agency site (Site 2) · Data sources: Google Search Console (12 months, both properties), GA4, Squirrel Scan crawl (both sites), PageSpeed Insights (mobile + desktop), live SERPs, robots/sitemap, manual page audits.

New to SEO? Don’t worry — every action below is something you can do yourself or hand to a developer. If you get stuck on any of it, just ask your AI assistant to walk you through it step by step.

SEO Health Score

SiteScoreSeverity
Site 1 — product53 / 100High
Site 2 — corporate42 / 100High

Site 1 is held back most by Technical SEO (rich schema stranded behind noindex tags) and Programmatic SEO (no comparison/alternatives pages for a category whose head SERPs are comparison-driven). Site 2 is held back most by Schema Markup (zero structured data anywhere on the site) and On-Page SEO (one generic meta description shared across every page). Technical, Performance and Schema are read straight off the tools (crawler, PageSpeed, schema validation), so their re-run deltas are reliable.

CategorySite 1Site 2Weight
Content Coverage565022%
Technical SEO414220%
On-Page SEO604418%
Performance627612%
Schema Markup51010%
AI Visibility423810%
Programmatic SEO40408%

Leadership Summary

We have moved from an initial diagnostic scan — which revealed an active and worsening SEO problem — through emergency fixes, to a complete technical audit of both sites with prioritised action plans for the next 90 days.

The most urgent issue, a broken domain migration that was actively destroying three years of accumulated search authority on the legacy domain, has been fixed. Recovery signals have been submitted to Google. Both sites have been audited in depth: performance, indexing, backlinks, keyword positioning, security, and SERP landscape. That audit has produced a clear picture of what to fix now, what to address over the next month, and what is better handled as part of a future rebuild.

Key outcomes to date

  • Identified and confirmed the redirect as the single most damaging active issue across the entire web presence.
  • Fixed the redirect: now 301, path-preserving, with SSL — verified across all tested URLs.
  • Submitted formal migration recovery signals to Google Search Console.
  • Submitted sitemaps and verified all three Search Console properties.
  • Diagnosed a site-wide canonical-tag suppression — cause identified, fix shipped on the product site (Google now shows duplicate-canonical pages falling from 12 to 5).
  • Completed full technical SEO audits of both sites, including backlink analysis, keyword research, and the SERP landscape for both.
  • Identified a critical conversion failure: the main product page returns a 404 and is linked from 11 pages, including the main navigation.
  • Produced prioritised 90-day action plans for both sites.

Core Web Vitals — before & after

Two emergency performance fixes, with measured before/after results. These are the headline wins of the recovery so far.

Site 1 (product) — layout stability

The site was failing Cumulative Layout Shift (CLS) — how much the page jumps around as it loads — by a wide margin on both mobile and desktop. Root causes: the hero video had no size reservation (so the page lurched down when it loaded), the customer-logo carousel had no defined dimensions, and key web fonts were loading late.

MetricBeforeAfterChange
Desktop CLS0.497 🔴0.037 ✅−92%
Mobile CLS0.183 🔴0.016 ✅−91%
Mobile interactivity (TBT)320 ms 🔴170 ms ✅−47%

Now passing all four Core Web Vitals on desktop, and three of four on mobile. The remaining mobile issue — page loading speed (LCP) — is caused by a 2.7 MB video loading unconditionally on page load. That’s a targeted fix we can make in the CMS editor, and it’s listed as a Month-1 action.

Site 2 (corporate) — load speed

The site was failing on how quickly the main content appeared (Largest Contentful Paint) because the hero image was set to load lazily — meaning the browser delayed downloading it until after it had already laid out the page.

MetricBeforeAfterChange
Mobile LCP9.5 s 🔴4.4 s ✅−54%
Mobile CLS0.497 🔴0.000 ✅−100%

Both metrics now pass Google’s thresholds. Current PageSpeed scores: mobile 76, desktop 92.

Executive Summary

The story across these two sites is not “everything is broken” — it’s that a good migration shipped without SEO hygiene and quietly bled years of hard-earned authority, and that the worst of it has now been stopped. The redirect that was stranding link equity is fixed and path-preserving; on the product site, Google’s own indexing report confirms the canonical fix is working (duplicate-canonical pages down from 12 to 5, 404s down to 1). The foundation is stabilising.

What’s working: performance was genuinely fixed on both sites and is holding (Site 2 passes Core Web Vitals; both desktop scores are 90+), the brand terms perform, and the underlying content and authority are real. What sets the priority order now is different per site. Site 1 is no longer a triage job — it’s a growth job being spent on the wrong page type: its most-impressed page ranks for a comparison-style query with a blog post, in a SERP that only rewards product and comparison pages. Site 2 still carries live, revenue-impacting bugs that are cheap to fix — a 404 on the main product link (in the navigation), an unresolved HTTP/HTTPS split, zero structured data, and one generic meta description shared across every page. Expect 4–8 weeks for Google to re-evaluate after each batch of fixes ships; the bigger content and rebuild work is a 1–2 quarter investment.

90-Day Execution Plan

Site 1 (product)

WindowActions
Week 1Add missing meta descriptions + og:image to core pages; add Product/Offer schema to pricing; review the 51 pages carrying schema but blocked from indexing.
Month 1Ship the deferred mobile-performance fixes (defer render-blocking CSS, font-display swap, cache/replace the 2.7 MB video) to get LCP under 2.5 s; build the first “vs competitor” comparison page; add llms.txt + FAQ structure.
This quarterBuild the comparison/alternatives cluster + integrations cluster; re-point internal links to commercial pages; trial a keyword tool (Ahrefs / Surfer SEO / Mangools).
DeprioritizedMore blog posts chasing the wrong term; “cost tracking” positioning; backlink outreach at scale.

Site 2 (corporate)

WindowActions
Week 1Fix the product-page 404 (linked from nav + 11 pages); enable Force HTTPS; fix the typo URL; set up GA4 conversion tracking (still zero).
Month 1Add Organisation schema (currently none anywhere); unique meta descriptions on the top 15 pages; add H1s to 6 pages + de-duplicate titles; serve the oversized product screenshot responsively.
This quarterDecide the rebuild direction (these audits are the baseline); create an English project-status page; trial a keyword tool.
DeprioritizedPlatform-level hreflang/schema/performance work, and rewriting all 73 meta descriptions — save for the rebuild.

Top Revenue Opportunities

#SiteOpportunityWhy it’s the top lever
1Site 2Fix the product 40411 pages + the nav link point to a dead end — a conversion failure happening today
2Site 1”vs competitor” comparison pageThe category’s head SERP is comparison pages, and the product is entirely absent
3Site 2Force HTTPS + GA4 conversion trackingThe HTTP homepage is the top-traffic page (authority split); zero conversion data today
4Site 1Mobile performance (LCP)Suppresses mobile rankings and conversions; regressed since the last check

Key Findings

Performance. Site 1: PSI mobile 62 / desktop 90; mobile LCP 9.8 s is the headline drag and has slightly regressed because the deferred fixes (render-blocking CSS, font-display, the uncached hero video) still haven’t shipped. Site 2: mobile 76 / desktop 92, LCP 4.4 s, CLS 0.021 — the hero-image fix is holding and it passes Core Web Vitals.

Indexing. Site 1 is recovering — duplicate-canonical pages down from 12 to 5, 404s down to 1 (the canonical fix is measurably working). Site 2 is weaker — only ~27% of known URLs indexed, with 38 duplicate-without-canonical pages (no canonical tags), 29 404s, and crawl drag from 24 redirect chains of 3–4 hops.

Traffic & SERP. Site 1 earns its only organic clicks from its brand term; its most-impressed non-brand page gets impressions but zero clicks because it’s a blog post in a comparison/Marketplace SERP — a page-type mismatch. Site 2 is brand-led; its competitive non-brand terms sit in SERPs dominated by the platform vendor itself and larger competitors.

On-page. Site 1 has a healthy schema foundation but is missing meta descriptions, Product/Offer schema, and an og:image. Site 2 has zero structured data, one 42-character meta description shared across all pages, 24 duplicate titles, and 6 pages with no H1.

Security & Platform Risk

(These need independent security-team validation; flagged because they affect trust, not because they’re confirmed exploits.) Both sites are missing CSP/HSTS headers at the server level (add HSTS once Force HTTPS is on for Site 2). Site 2 has a public contact form without CAPTCHA. None of this is blocking SEO; hand it to whoever owns hosting.

What NOT to Do

  • Don’t write more blog posts to chase a comparison-style query — the SERP rewards product/comparison pages; the format, not the effort, is the blocker.
  • Don’t invest in deep platform-level fixes (framework performance, hreflang plugins, a full schema suite) on a site that’s heading for a rebuild — that effort gets discarded.
  • Don’t buy backlinks — recover and consolidate the equity you already own first.

Prioritized Recommendations

(Each appears once. No “owner” field — this report doesn’t assume your team structure; assign internally.)

#1 — Fix the broken product navigation link (Site 2) · Impact ★★★★★ · Effort 15min Issue: the main product URL 404s while being linked from the navigation and 11 pages. Actions: repoint links to the working URL; add a 301 for the old one. Verification: the old URL returns a 301 to the working page.

#2 — Enable Force HTTPS (Site 2) · Impact ★★★★ · Effort 5min Issue: the HTTP homepage is the highest-traffic page in Search Console — more than the HTTPS version — so Google is splitting authority. Actions: force HTTPS at the host/CMS; add HSTS. Verification: HTTP 301s to HTTPS; impressions consolidate.

#3 — Set up GA4 conversion tracking (Site 2) · Impact ★★★★★ · Effort half-day Issue: zero key events in 12 months — return on SEO is unknowable. Actions: mark demo bookings, contact-form submits, and outbound marketplace clicks as key events. Verification: key events appear within days.

#4 — Cut Site 1 mobile LCP below 2.5 s · Impact ★★★★ · Effort half-day Issue: mobile LCP 9.8 s (regressed). Actions: defer render-blocking CSS, add font-display: swap, cache or replace the 2.7 MB hero video. Verification: PSI mobile LCP < 2.5 s.

#5 — Build a “vs competitor” comparison page (Site 1) · Impact ★★★★★ · Effort 1 week Issue: absent from the comparison SERP that decides the category. Actions: an honest comparison page with Product + ItemList schema; internal links from the features page. Verification: indexed + impressions for “[competitor] alternative”.

#6 — Add structured data (both sites) · Impact ★★★ · Effort 30min–1h Issue: Site 2 has no schema at all; Site 1’s pricing page lacks Product/Offer. Actions: Organisation JSON-LD on Site 2; Product/Offer on Site 1 pricing. Verification: Rich Results Test passes.

#7 — Unique meta descriptions + on-page hygiene (both sites) · Impact ★★★ · Effort 2h Issue: Site 2 shares one 42-char description across all pages, has 24 duplicate titles and 6 missing H1s; Site 1 is missing descriptions on core pages. Actions: unique 120–155-char descriptions on the top pages; add the missing H1s; differentiate titles. Verification: view-source; CTR over 4–8 weeks.

Verification & Tracking

SEO compounds over time — this is iteration 2, not a one-off. Do everything above, then re-run this audit every ~2 weeks. Ranking and traffic gains usually take 4–8 weeks for Google to re-evaluate — but re-running every two weeks is worth it anyway: each cycle ships the next batch of fixes and catches regressions before they fester (this cycle caught a mobile-LCP regression that had crept back in). Don’t put drift checks on an email-alert cron — triage them yourself.

DateSite 1Site 2
Iteration 1 (baseline)~55 (High)~42 (High)
Iteration 253 (High)42 (High)

The numbers look flat, and that’s an honest signal: on Site 1 a mobile-performance regression offset the indexing gains, and on Site 2 most of the cheap Week-1 fixes simply haven’t shipped yet. The score’s job is to keep that visible cycle over cycle — it goes up when the work ships.

From Audit to Action

This audit also generates ACTION-RUNBOOK.md locally beside the report. That client-specific document maps every recommendation above to what the AI can implement, draft, guide, research, or needs a human to decide. It manages approved batches, verifies production changes, measures outcomes at 2, 4, and 8 weeks, and preserves history across later audit cycles.

Follow ACTION-RUNBOOK.md and show me the Action Capability Map and recommended first batch. Research anything that may have changed. Do not change anything until I approve a batch.

Appendix: Data Sources

GSC 12-month performance + indexing (both properties, via logged-in session); GA4 (channels, events, conversion-tracking check); Squirrel Scan full crawls (both sites); PageSpeed Insights mobile + desktop (homepages); live SERP captures for the priority commercial keywords on each site; robots.txt + sitemaps; manual page audits.

Run this on your own site

Download the runbook, open it in Cursor or Claude Code, and an AI agent produces a report like this from your real data — on your machine.