An SEO audit report should tell you three things: what's wrong with the site, which problems cost the most, and exactly how to fix them. Most examples online are exported from a tool, so they cover the first part and skip the other two.
Below is a section-by-section walk-through of a real, public audit — a TapasSEO Site SEO Audit run on stripe.com — with notes on what each section is for and what a weak version looks like. You can open the full sample report alongside this guide.
A professional audit flows one way: verdict first, evidence underneath, a sequenced plan at the end.
What a professional SEO audit report contains
| Section | Answers | Main reader |
|---|---|---|
| Executive summary | Is the site healthy, and what are the top three priorities? | Founder, marketing lead |
| Scorecard by area | Where is the site strong and weak? | Marketing lead |
| Findings by URL | What's wrong on each page? | SEO, developer |
| Cross-page issues | What problems only show at site level? | SEO |
| Priority-page deep dives | What should change on the pages that matter most? | SEO, content team |
| Prioritised action list | What do we fix first, and how? | Developer, project manager |
| AI search visibility | Do AI answers cite us or competitors? | Marketing lead |
| Roadmap | What happens in the next 90 days? | Everyone |
The example, annotated
1. Executive summary
Overall Score: 74 (Good) — 9 Critical findings, 19 Important, 20 Monitor. Stripe.com is one of the highest-authority domains in the global financial technology sector, holding 131,801 tracked organic keywords, an estimated 3,544,604 monthly organic visits, and a traffic value equivalent of approximately $36.7 million per month — a remarkable baseline that reflects years of compounding authority and content investment. However, the keyword movement picture reveals significant churn risk: 90,394 keywords have been lost and 28,943 have declined in ranking in the tracked period, against only 25,556 that improved — meaning the domain is currently losing ranking ground faster than it is gaining it. The 334,010 broken backlinks pointing to 11,405 broken pages represent a measurable and recoverable authority leak. — from the stripe.com sample audit, Section 1: Executive Summary
What it's for: a reader who stops here should still know what to do. A good summary gives a one-paragraph verdict, the three highest-impact fixes and what they're expected to change.
Weak version: a health score and a count of "errors, warnings and notices". It tells you the tool ran, not what matters.
2. Scorecard by area
Site Health Score Dashboard — Technical SEO 68/100 · On-Page SEO 71/100 · Content Quality 76/100 · Structured Data and Entity 65/100 · Authority and Backlinks 88/100 · GEO / AEO 70/100 · AI Visibility 90/100 · YMYL and E-E-A-T 73/100 · Competitive Position 69/100. — from the stripe.com sample audit, Section 2: Site Health Score Dashboard
This audit grades nine areas from 0 to 100, covering technical SEO, on-page signals, content quality, structured data, backlinks, GEO/AEO, AI visibility, E-E-A-T and competitive position.
What it's for: showing where effort belongs. A site scoring well on technical health and poorly on content authority needs writers, not developers.
Weak version: scores with no evidence. Every score should name the weakest URLs and the reason for the grade.
3. Findings by URL
<!-- TODO-EXCERPT: two rows of a per-URL findings table (one row per URL, covering title, meta description, H1, indexability, structured data, Core Web Vitals, internal-link counts) | could not find a matching real excerpt in /site-audit/sample/ — the live sample's DataForSEO crawl bundle covers a single sampled page (https://stripe.com/de), so the report has no multi-row per-URL table to quote from; needs a re-run against a fuller crawl, or this sub-section should be rewritten around the single-URL deep dives the sample does contain -->
Every URL in scope gets a row covering the core signals: title, meta description, H1, indexability, structured data, Core Web Vitals and internal-link counts.
What it's for: a complete inventory you can filter and assign. It's also how you spot template problems — 200 product pages failing the same check is one fix, not 200.
Weak version: a list of issue types with "affected URLs: 1,243" and no way to see which.
4. Cross-page issues
Keyword cannibalization analysis is significantly constrained by the available data: the crawl bundle contains only one page (https://stripe.com/de) and no ranked-keyword position data was provided in the bundle for this analysis pass. Without a multi-page crawl and keyword-position data mapping each keyword to its ranking URL, a statistically valid cannibalization audit cannot be performed. [...] Section score is 50 to reflect insufficient data for a complete assessment rather than a confirmed-clean finding. — from the stripe.com sample audit, Section 25: Keyword Cannibalization Audit
This is where a site audit earns its price, because single-page tools can't see these problems:
- Cannibalisation: two or more URLs targeting the same query, with a recommendation to keep, merge or redirect.
- Indexation diff: URLs in the sitemap vs. URLs found by crawling vs. URLs Google indexed.
- Internal-link graph: where authority flows, orphan pages, revenue pages with too few internal links.
- Schema consistency: templates shipping broken or inconsistent structured data.
The technical SEO audit guide explains how each of these is checked. Notice what the excerpt above actually does: rather than invent a clean cannibalisation finding from data it didn't have, the report states the limitation and scores accordingly. That honesty is itself a sign of a real audit rather than a tool export.
Weak version: absent. If an "audit" has no cross-page section, it's a set of page audits.
5. Priority-page deep dives
Score: 72/100. The homepage title tag ('Online-Bezahldienst und Zahlungsdienstleister | Stripe') is 54 characters long and technically well-formed — within the recommended 50–60 character range, free of duplication issues, and paired with a passing canonical tag pointing to stripe.com/de. However, the title is written entirely in German despite the domain (stripe.com) being the global English-language root. This creates a significant localisation mismatch. — from the stripe.com sample audit, Section 14: Title Tag Audit
The 5–10 pages that matter most (by traffic, revenue or ranking potential) get a heading-by-heading review, intent check and ready-to-paste fixes.
What it's for: putting the most expert time where the most money is.
Weak version: the same depth on every page, which means shallow everywhere.
6. The prioritised action list
Organization Schema — Stripe.com Entity Markup. Template — REPLACE-BEFORE-USE. Implements Organization structured data to reinforce Stripe's entity signals for the knowledge panel and entity disambiguation. Replace all [REPLACE_WITH_*] tokens with verified values before deployment. — from the stripe.com sample audit, Section 40: Ready-to-Implement Fix Library
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Stripe",
"url": "https://stripe.com",
"logo": "[REPLACE_WITH_VERIFIED_URL_TO_STRIPE_LOGO]",
"description": "Stripe is a financial infrastructure platform for businesses. Millions of companies use Stripe to accept payments, grow their revenue, and accelerate new business opportunities.",
"foundingDate": "2010",
"sameAs": [
"[REPLACE_WITH_VERIFIED_WIKIPEDIA_URL]",
"[REPLACE_WITH_VERIFIED_LINKEDIN_URL]",
"[REPLACE_WITH_VERIFIED_CRUNCHBASE_URL]",
"[REPLACE_WITH_VERIFIED_TWITTER_URL]"
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"url": "[REPLACE_WITH_VERIFIED_SUPPORT_URL]"
}
}
Every finding is scored Impact × Ease × Confidence ÷ Days to fix and sorted highest first. Each one states the issue, the affected URLs, why it matters, the exact fix (with code where relevant) and how to verify it. The bracketed [REPLACE_WITH_*] tokens above are deliberate — a real audit flags exactly which values it couldn't verify itself rather than guessing a logo URL or a LinkedIn handle.
What it's for: the list your developer works from on Monday. This section is the single best test of an audit's quality.
Weak version: issues sorted by the tool's severity label, with "fix this" and no detail. A developer has to come back with questions on every line.
7. AI search visibility
Citation Readiness Score: 94/100. Live LLM citation measurement: 14,176 mentions of stripe.com detected across ChatGPT (US/English) and Google AI Overview across 54,773 sampled questions. Stripe is the highest-cited domain in its competitive set by AI mentions, ranking first as a source domain with 14,000 mentions (search volume: 6,218,232) and first in AI search result citations with 536 mentions (search volume: 9,728). — from the stripe.com sample audit, Section 31: AI Citation Readiness
This section records which queries were tested in AI answer engines and who was cited — the site, competitors, or neither — plus the entity, schema and content changes that affect citation.
What it's for: AI summaries change click behaviour. Pew Research found Google users clicked a traditional result on 8% of visits when an AI summary appeared, against 15% without one. Knowing whether you're cited is now part of knowing where you stand.
Weak version: a generic "AI readiness score" with no actual queries tested.
8. Roadmap
Phase 1: Quick Wins (0–30 days). Broken backlink audit and redirect prioritization — critical. Export all 11,405 broken destination URLs from the DataForSEO Backlinks API. Sort by referring domain count descending. Create a redirect mapping document for the top 200 broken pages. Submit to engineering for 301 redirect implementation. Week 1–2. Effort: 5 days. — from the stripe.com sample audit, Section 39: 30/60/90-Day Prioritized Action Roadmap
The action list grouped into weeks: what ships first, what depends on what, and when to re-measure.
Weak version: "implement the recommendations" with no sequence.
Weak vs. strong: how to tell a real audit from a tool export
| Sign | Tool export | Expert audit |
|---|---|---|
| Opens with | A health score | A verdict and three priorities |
| Prioritised by | Tool severity labels | Business impact and effort |
| Findings name | Issue types and counts | Specific URLs, templates and evidence |
| Uses Search Console data | Rarely | Always (indexing, queries, canonicals) |
| Covers cannibalisation and internal links | No | Yes |
| Fixes include | "Fix this issue" | Exact change, code and verification step |
| Up to date | May recommend FAQ schema for rich results (retired May 2026) | Reflects current Google behaviour |
Our guide on how to read an SEO audit goes deeper on judging quality.
A report structure you can copy
If you're writing an audit report yourself, use this skeleton:
- Executive summary — verdict, top three fixes, expected effect (half a page).
- Scope and method — URLs covered, tools used, date of crawl, data sources.
- Scorecard — each area graded, each grade linked to evidence.
- Findings by URL — spreadsheet, one row per URL.
- Cross-page issues — cannibalisation, indexation diff, internal links, schema.
- Priority pages — deep dives on the 5–10 that matter most.
- Action list — each finding: issue · affected · evidence · why it matters · fix · effort · how to verify; sorted by priority score.
- Roadmap — 30/60/90 days.
- Appendix — raw exports.
Put the action list in a spreadsheet, not only a PDF. Developers will filter it.
Want this report for your own site? The Site SEO Audit delivers exactly this structure as a PDF and workbook.
Frequently asked questions
What should an SEO audit report include? An executive summary, scores by area with evidence, findings for each URL, site-wide issues such as cannibalisation and indexation gaps, deep dives on priority pages, a prioritised action list with exact fixes, and a short roadmap.
How long should an SEO audit report be? As long as the findings need and no longer. A small site's audit can be clear in 15–20 pages plus a spreadsheet. Length isn't quality: an 80-page report that's mostly tool screenshots is less useful than 20 pages of prioritised fixes.
Is there a free SEO audit report template? Use the nine-part structure above. Free tools can fill the findings and technical sections; the prioritisation and cross-page sections need manual work. See free SEO audit tools for what each tool covers.
What's the difference between an SEO audit report and a monthly SEO report? An audit report diagnoses the site at one point in time and prescribes fixes. A monthly report tracks performance over time. Our SEO report examples guide covers the monthly kind.
See it for your own site
Everything quoted above — the scores, the citation counts, the fix code — came from a real TapasSEO Site SEO Audit run on stripe.com. It's what a client actually receives: the same 42 sections, the same renderers, the same honesty about what the data can and can't support, built against your domain instead.