SEO report example: a full monthly report, annotated.
Most SEO report examples on the web are screenshots of a dashboard with a logo on top. They show what a tool can draw, not what a client needs to read. This guide does the opposite: the five numbers that belong in a monthly report, the section order that makes them land, and a complete worked example with every block annotated so you can see why it is there. Copy the structure, replace the numbers, send it.

What does a good SEO report look like?
A monthly SEO report is one page of numbers and half a page of prose. The numbers are non-brand organic clicks, impressions on the queries you are working, average position across a fixed tracked keyword set, organic conversions or leads, and what shipped that month. The prose is a three-part verdict: what moved, why it moved, and what you will do about it next month. Put the verdict above the charts, not after them, because the report is read in about ninety seconds by someone deciding whether to keep paying you. Everything else, the crawl-error tables, the backlink dumps, the branded traffic, belongs in an appendix or nowhere.
- 01Who actually reads an SEO report.
- 02The five numbers a monthly SEO report needs.
- 03The SEO report template: section order that works.
- 04Where each number comes from, and its limits.
- 05The commentary: the part clients are paying for.
- 06A full SEO report example, annotated.
- 07Common mistakes in client SEO reports.
1. Who actually reads an SEO report.
One person, usually. A founder, a marketing lead, or a finance-adjacent manager who approves the invoice. They open the report on a phone, give it under two minutes, and are looking for one thing: is this working, yes or no. Every design decision in a monthly report follows from that. The headline numbers go at the top. The verdict goes above the evidence. The forty-row crawl table goes in an appendix or in the bin.
The failure mode is reporting to yourself instead. Agencies build reports that document effort, because effort is what feels defensible when results are slow. The client reads a wall of activity and concludes nothing, which is worse than reading a flat month with an honest explanation. Run several accounts on one template and that pressure compounds, which is why teams shopping for SEO software for agencies usually end up rebuilding their reporting layer first.
So the report has two jobs and they are not equal. The first is to tell the truth about the month in a form that survives being skimmed. The second is to make the next decision obvious: keep going, change the plan, or spend more. A report that nails the first and skips the second gets filed and forgotten, and the renewal conversation starts from zero every quarter.
2. The five numbers a monthly SEO report needs.
Five, fixed on day one, reported every month whether they flatter you or not. Non-brand organic clicks, because brand traffic was coming anyway and counting it inflates the work. Impressions on the queries you are actively working, which is the leading indicator that moves before clicks do. Average position across a fixed tracked keyword set. Organic conversions, whether that is leads, trials, or revenue. And what shipped: articles published, pages fixed, links earned.

The discipline is in what you leave out. Vendor authority scores move for reasons no one can explain to a client. Raw backlink counts reward junk. Bounce rate on a blog often measures whether the article answered the question, which is good news presented as bad. Keyword counts, total indexed pages, and social shares belong to the same family: numbers that go up while nothing happens. If a metric cannot change a decision, it is decoration.
Fix the tracked keyword set at the start of the engagement and freeze it. The most common piece of quiet dishonesty in client reporting is swapping out the terms that went backwards, which turns average position into a number that only ever improves. If the strategy genuinely changes, add terms and say so, keeping the original cohort visible underneath. That rule holds whether you run one site directly or resell the work under a white label SEO arrangement.
3. The SEO report template: section order that works.
This is the whole template. Seven blocks, in this order, and the order is the part that matters. Most SEO report templates you can download put the charts first and the interpretation last, which is backwards for a reader who stops after ninety seconds.
- Header block. Client, domain, period, comparison period, who wrote it. Four lines. It exists so the file still makes sense when someone opens it in eleven months.
- Headline numbers. The five metrics, each with the prior period beside it and the change. No charts yet.
- The verdict. Three short paragraphs: what moved, why, what it means. This is the section that actually gets read.
- Performance detail. The trend line, top gaining and losing pages, top gaining and losing queries. Five rows each, not fifty.
- Rankings. The fixed tracked set, grouped by intent, with movement since last month and since the engagement start.
- Work shipped. Plain list. Titles published, pages fixed, technical changes, links earned.
- Next month. Two or three specific commitments with owners and dates. Something the client can approve or challenge.

Two to three pages total. If you need query-level exports or a technical crawl, attach them as a separate file and reference them in one line. Rebuild the shape in whatever renders for you: a doc, a slide deck, a generated PDF. The tool is not the interesting decision. Once the shape is stable across accounts the assembly becomes mechanical, which is the point where it is worth reading how to automate client SEO reports instead of rebuilding them by hand.
4. Where each number comes from, and its limits.
Clicks, impressions, and average position come from Search Console. Two limits are worth knowing before you promise a client a five-year trend line. The Performance report holds 16 months of data, so year-on-year works and the year before that does not. And a single Search Analytics API query caps at 25,000 rows and defaults to 1,000, which is how a naive export quietly truncates a large site and makes a normal month look like a collapse.
Conversions come from analytics, and the retention rule there is stricter than most agencies assume: standard properties keep event-scoped data for either 2 or 14 months depending on the setting. If a client will ever want multi-year history, turn on the bulk data export into a warehouse on day one. History you did not store is not recoverable later, and no reporting tool can invent it for you.
Rankings come from a tracker, and every tracker samples a personalised, localised result page, so treat position as a directional cohort measure rather than a precise one. Report the tracked set as a group average plus the movers, not as forty individual rows of noise. If you are picking tooling for this layer, the reporting sections of the white-label reporting platforms are where the real differences show up, not the dashboard screenshots.
Rate limits matter once you run this across a book of clients. Search Console allows roughly 1,200 Search Analytics queries per minute per site, which is generous for one account and a real constraint when thirty reports run on the first Monday of the month. Stagger the pulls, cache the raw rows, render from the cache.
5. The commentary: the part clients are paying for.
Three paragraphs, roughly 150 words, in a fixed shape. What moved, stated as a number with its direction. Why it moved, tied to a cause you can point at, either work you did or something that happened in the market. What it means for next month, phrased as a decision rather than a hope. That is the whole skill of client reporting, and it is why a numbers table on its own never survives contact with a sceptical founder.
Write it from the same rows the charts are built from. If the prose says traffic grew on the new comparison pages while the table shows the growth came from an old glossary post, you have told the client you did not read your own report. That is the argument for generating the first draft of the commentary from the underlying data and then editing it, the same discipline our AI SEO services pipeline applies to every written artefact it produces.
Report bad months plainly. A flat month with a named cause and a specific response builds more trust than a good month dressed up with four extra vanity charts. Clients can tell the difference, and the ones who cannot are the ones who churn without warning. If nothing shipped because approvals sat with the client, that is the finding, and it belongs in the report as one neutral sentence.
6. A full SEO report example, annotated.
Here is the whole thing for one month. The account is illustrative, a 62-page B2B software site four months into an engagement, with numbers in the shape Search Console and analytics exports come out in. No client data. Read the report first, then the annotations underneath.
Northbeam Software · northbeamsoftware.com · August 2026 · compared with July 2026 · prepared 4 September 2026.
- Non-brand organic clicks: 1,842 (July: 1,613, up 14%)
- Impressions on worked queries: 96,400 (July: 73,500, up 31%)
- Average position, 32 tracked terms: 14.9 (July: 18.4, up 3.5 places)
- Organic trial signups: 37 (July: 28)
- Shipped: 8 articles, 14 internal links, 1 title rewrite batch
Impressions grew faster than clicks, which is what a cohort of new pages looks like in its first month: they are being shown for their target queries and are not yet ranking high enough to be clicked. Nine of the 22 pages published since May entered the top 20 this month. Trial signups moved from 28 to 37, and 6 of the 9 new signups landed on the two comparison pages published in July, so the money is coming from comparison intent rather than the top-of-funnel guides.
The drag is the pricing page, down 210 clicks after a title change on 2 August. That was our change and we are reverting it this week. Next month we shift the ratio from six guides and two comparisons to four and four, because comparison pages are converting at roughly five times the rate of the guides on this account.
Top gainers: /compare/northbeam-vs-ledgerly, 412 clicks, up from 0. /guides/revenue-attribution, 260 clicks, up 88. /glossary/mta, 140 clicks, up 31. Top losers: /pricing, 190 clicks, down 210. /blog/2024-roundup, 40 clicks, down 55 (seasonal, no action).
Comparison intent, 8 terms: average position 9.1, was 15.6. Category intent, 12 terms: 16.4, was 19.0. Informational, 12 terms: 18.2, was 20.1. Two terms went backwards, revenue attribution software from 11 to 14 and marketing mix modelling from 22 to 27, both on pages untouched since May.
Published 8 articles (6 guides, 2 comparisons), added 14 internal links from existing pages into the new comparison cluster, rewrote titles and meta descriptions on 12 category pages, fixed 3 pages returning soft 404s.
Revert the pricing title by 9 September (us). Publish 4 comparison pages and 4 guides by 30 September (us). Approve the two competitor names for the comparison pages by 12 September (client), because both are blocked until legal signs off.

Now the annotations. The header exists for the archive, not the reader. Every headline number carries its prior value, because a figure without a comparison is not information. The verdict names a cause for both the rise and the fall, and it commits to a ratio change rather than promising to keep going. That comparison-versus-guide split is exactly the finding a SaaS SEO program should surface within a quarter, and it is worth more to the client than any chart in the document.
Note what the losers block does. It names the pricing drop, attributes it to our own title change, and states the fix with a date. Burying that would have been easier and would have cost the relationship the first time the client opened Search Console themselves. Note also that the rankings block reports intent groups rather than 32 rows, and still names the two terms that went backwards, so the grouping compresses noise without hiding losses.
The next-month block has three items, each with an owner and a date, and one of them belongs to the client. That last detail does more for renewal than the rest of the report combined, because it makes the engagement a shared plan rather than a monthly delivery of numbers. Everything above is roughly two pages, and none of it needed a dashboard.
7. Common mistakes in client SEO reports.
- Counting brand traffic as a win. Branded clicks track the client's own marketing, funding news, and podcast appearances, not your work. Report them on a separate line so the non-brand number stays honest.
- Rotating the keyword set. Quietly dropping the terms that fell makes average position improve forever. It is the reporting equivalent of moving the goalposts, and clients who eventually notice do not come back.
- Charts instead of a verdict. Twelve charts and no sentence saying what they mean pushes the interpretation onto the reader, who is paying you specifically so they do not have to do that.
- Reporting effort as outcome. Hours logged, tasks closed, and pages audited measure your input. The client is buying output. Keep the activity list, but keep it in section six where it belongs.
- Vanity metrics with no decision behind them. Authority scores, total indexed pages, and raw link counts move without meaning. If a metric cannot change what you do next month, it has not earned its space.
- Sending it late, or not at all. A report that arrives on the 20th about the previous month has lost its audience. Pick a date three or four working days after month end, once the data has settled, and hold it. A skipped month is read as bad news, correctly.
The through-line is that reports fail for editorial reasons, not technical ones. The data is usually fine. What is missing is a person willing to say what it meant. Automating the assembly is the right move precisely because it frees the hour that should go into the verdict, the same reason we put a fact-check and a quality gate around generated drafts inside the SEO automation pipeline rather than shipping whatever the first draft said.
A report is a decision document, not a data dump.
Copy the seven-block structure, fix your five numbers, and spend the time you save on the verdict paragraph. That is the difference between a report that gets skimmed and one that gets a reply. If you want the mechanical half handled, the automation side of client reporting covers the pipeline: fixed metric set, API-backed pulls, one template, a scheduled run.
And if section six is the hard part, because nothing shipped again this month, that is a production problem rather than a reporting one. An AI SEO agent researches, writes, checks and publishes on a schedule for a flat $99 a month, with every claim fact-checked before publish, so the work-shipped block has something in it before you sit down to write.
What should a monthly SEO report include?
Five numbers and a paragraph. Non-brand organic clicks, impressions on the queries you are working, rankings for a fixed tracked set, conversions or leads from organic, and what shipped that month. Then a short written verdict that says what moved, why, and what happens next. Everything past that is padding: a report that runs to forty pages of charts is usually hiding the fact that nothing was decided.
How long should an SEO report for clients be?
One page of numbers and half a page of prose covers a normal month. Two to three pages total, plus an appendix if the client asks for query-level detail. The constraint is not aesthetic. A report gets read in about ninety seconds by someone who is between meetings, so anything not visible in that window may as well not be in the document.
Is there a free SEO report template I can copy?
The section order in this guide is the template: header block, headline numbers, the verdict paragraph, performance detail, rankings, work shipped, next month. Rebuild it in whatever renders for you, a doc, a slide deck, or a generated PDF. The order matters more than the tool, because it puts the interpretation above the evidence rather than after it.
What is the difference between brand and non-brand clicks?
Brand clicks come from queries containing your company or product name. Those people were already going to find you, so counting them as SEO wins overstates the work. Non-brand clicks are everything else, and that is the number that reflects whether your content is winning new demand. Filter brand terms out in Search Console with a query filter and report brand separately.
How far back can an SEO report compare?
Search Console keeps 16 months in the Performance report, so year-on-year comparison works for a bit over a year and then falls off the back. Standard analytics properties keep event-scoped data for either 2 or 14 months depending on the setting. If a client wants multi-year trend lines, export to a warehouse early, because the history you did not store is not recoverable later.
Should the report include rankings or just traffic?
Both, but rankings on a fixed set only. Pick twenty to forty terms at the start of an engagement and never quietly swap the losers out, because a rotating keyword set makes every month look like progress. Rankings explain traffic movement. Traffic and conversions are what the client is buying.
How often should I send an SEO report?
Monthly for the numbers, quarterly for strategy. SEO moves too slowly for weekly reporting to say anything true, and a weekly cadence trains the client to read noise as signal. If something breaks between reports, send a note the day it happens rather than saving it for the monthly.
Can SEO reports be generated automatically?
The assembly can. Pulling numbers, rendering the template, and drafting a first-pass summary from those same numbers is mechanical work nobody should repeat by hand every month. The judgement is not automatable: deciding what a 20% impression rise on flat clicks means for next month is the part the client is paying a human for.
Related guides + features.
Automate client SEO reports
The pipeline behind the template: one fixed metric set, API-backed pulls, a single render, and a check before the report reaches a client inbox.
/blog/automate-client-seo-reports →PILLAR · AGENCIESSEO software for agencies
Run every client retainer through one pipeline: validated keywords, cited drafts, a quality gate, and native publish into each client CMS.
/features/seo-software-for-agencies →PILLAR · WHITE LABELWhite label SEO
Resell the output under your own brand: researched, fact-checked articles published into each client CMS with nothing pointing back at a vendor.
/features/white-label-seo →The best reporting fix is having something to report.
The agent researches keywords with live search data, writes and fact-checks the articles, refuses the drafts that fail the quality gate, and publishes them natively to your site every week. You keep the client relationship and the verdict paragraph.
FREE TRIAL · CANCEL IN ONE CLICK