How to create an SEO report people read: structure, metrics and the commentary
Most SEO reports are a stack of charts that nobody reads past the first page. A report that gets read leads with what changed, why, and what happens next, in the reader’s terms, then shows the evidence. This guide covers the structure, the metrics worth including, the Search Console traps that mislead readers, how to tell a seasonal change from a real one, and templates for three audiences.
What is an SEO report?
An SEO report is a regular summary of how a site is performing in organic search, why, and what the team will do next. It is written for a particular reader, usually a manager, a client or the team itself, and it is useful only if that reader comes away knowing whether things are on track and what decision, if any, they need to make.
This guide is about the report: what goes in it and how to write it. What to measure in the first place, and how to put a value on organic search when attribution undercounts it, is covered in the guide to SEO measurement when attribution is already broken. Which few metrics belong in front of leadership across all of marketing is in the guide to marketing metrics worth tracking.
Why most SEO reports go unread
SEO reports usually fail in the same few ways, and every one of them makes the report longer.
| Problem | What the reader experiences | What to do instead |
|---|---|---|
| Charts without commentary | Twenty charts and no idea which ones matter | A summary first, and one sentence under each chart saying what it shows |
| Metrics the reader does not use | Domain scores, total keywords, crawl stats for a finance director | Choose metrics by audience; put the rest in an appendix |
| Month-on-month only | A seasonal dip reported as a crisis, or a seasonal rise as a win | Compare with the same month last year as well |
| Changes unexplained | A drop the reader has to ask about | Explain every notable change before anyone asks |
| No next steps | Information with no decision attached | End with what you will do next and anything you need from the reader |
| A different format each month | Readers cannot compare one report with the last | Fix the structure and change only the content |
The pattern in most published templates is to start from available data and add sections. Semrush’s guide to SEO reports, for example, lists nine standard sections. That is a reasonable inventory. The better order is the reverse: start from what the reader needs to decide and include only what supports it.
The structure of an SEO report
A report that gets read has the same structure every time, so readers know where to look. The first page is written for someone who will read nothing else.
- 1SummaryThree to five sentences: how organic search performed against the target, the main reason, and what happens next.
- 2Headline numbersThree to five metrics, each with this period, the same period last year, and the change.
- 3What changed and whyThe two or three changes that matter, each with its cause, or the honest statement that the cause is not yet known.
- 4Work doneWhat shipped this period, and which numbers it should move, and when.
- 5Next periodWhat you will do next, and any decision or resource you need from the reader.
- 6AppendixThe detailed charts and tables, for anyone who wants them.
The useful version answers the three questions every reader has: are we on track, why did it move, and what happens next. It uses a year-on-year comparison to put the monthly change in context, and it names a business result, not just traffic.
Which metrics to include, by audience
Choose metrics by who reads the report and what they decide. The same data supports three different reports.
| Metric | Leadership | Marketing lead | SEO team |
|---|---|---|---|
| Conversions or revenue from organic search | Yes | Yes | Yes |
| Organic clicks, against the same period last year | Yes | Yes | Yes |
| Progress on the quarter’s goal | Yes | Yes | Yes |
| Clicks and conversions by section or topic | No | Yes | Yes |
| Queries ranking in the top ten, for target topics | No | Yes | Yes |
| Impressions and click-through rate by page | No | Rarely | Yes |
| Indexing and technical issues | Only if serious | Summary | Yes |
| Backlinks and referring domains | No | Summary | Yes |
Some metrics are best left out of every report, or confined to the SEO team’s appendix. Third-party domain scores are estimates from tool vendors, not Google metrics. Total keywords a site ranks for counts positions 50 and 90 alongside position one. And a single site-wide average position mixes very different queries into one number that moves for reasons unrelated to performance, as the next section explains.
Search Console numbers that mislead, and how to report them
Most SEO reports draw on Search Console, and several of its numbers are easy to misread. Getting these right is what makes a report trustworthy.
Average position
Search Console’s average position is the topmost position occupied by a link to your property, averaged across all queries. Google’s own example: a site at positions 2, 4 and 6 for one query and 3, 5 and 9 for another has an average position of 2.5. Because it averages across queries, average position falls when you start ranking for new queries further down, even while your existing rankings hold. Report position for specific target queries or pages, not as a site-wide figure.
Chart totals and table totals
Google’s documentation on the Performance report explains that data can be aggregated by property or by page. Aggregated by property, all impressions for a query are counted once and the topmost position is reported; aggregated by page, each URL counts separately. So the chart totals and the sum of the page table can differ, and click-through rate and average position are generally higher when aggregated by property. Take totals from the chart, and say so.
Anonymised queries
Search Console withholds queries that very few people searched. Ahrefs found that anonymised queries accounted for 46.77% of clicks across roughly 887,000 properties in April 2025. Any report built by adding up the queries you can see will undercount, often by a lot. Report totals from the property or page level, and treat query tables as a sample.
Recent data
The most recent days in the report can be preliminary and may change in the next few hours, according to the same documentation. End the reporting period at least a couple of days before you pull the data, or note that the last days may move.
History
The Performance report keeps 16 months, so a year-on-year comparison for a full year needs data saved outside it. Set up the bulk data export to BigQuery, or save a monthly export, before you need it.
Is the change seasonal? A calculator
The most common reporting mistake is treating a seasonal swing as a result. If clicks fall 12% from July to August, the question is how they moved from July to August last year. The calculator compares this year’s monthly change with last year’s for the same months, and shows the change that remains once seasonality is taken out.
Hypothetical defaults. Use total clicks from the Search Console chart for the whole property or section.
With these defaults, clicks fell 12% on the month, but rose 6% on the same month last year, and last year’s July to August change was a fall of about 15%. Allowing for that, this year’s monthly change is a small improvement. That is the sentence that belongs in the summary. The method behind it, a seasonal index from your own history, is set out in the SEO forecasting guide.
How to explain a change in an SEO report
Readers forgive a fall that is explained; they lose confidence in a report that leaves one unexplained. Work through the likely causes in order, cheapest to check first.
Yes, about the same
No
Yes
No
Yes
No
Google lists confirmed ranking updates and incidents on its Search Status Dashboard, which is the place to check dates rather than social media. When a change comes from AI Overviews appearing for your queries, note that Google’s documentation on AI features says traffic from them is reported within the Web search type in Search Console, so it is already inside your totals rather than a separate line.
SEO report templates for three audiences
The same month’s data makes three reports. Each has the same order, summary first, but a different depth.
Leadership
Marketing lead
SEO team
A worked example: one month, two reports
Take a hypothetical B2B software company in September. Organic clicks fell 9% on August, the CEO has noticed, and the marketing lead wants to know whether the new comparison pages are working. The same data produces both reports below. All figures are invented to show the method.
| Measure | September | August | September last year |
|---|---|---|---|
| Organic clicks | 21,400 | 23,500 | 18,900 |
| Demo requests from organic search | 37 | 35 | 26 |
| Comparison pages: clicks | 1,150 | 640 | n/a |
| Target queries in the top ten | 48 of 120 | 44 of 120 | 31 of 120 |
The leadership summary reads: organic clicks were 13% above September last year, and demo requests from organic search rose to 37 from 26 a year ago, ahead of the quarter’s plan. The 9% fall from August matches last year’s pattern, when September also fell from a strong August. No decision is needed this month.
The marketing lead’s report adds the detail that answers their question. The three comparison pages published in July almost doubled their clicks on August and now account for about one in nine demo requests that name a source page, though they are still below the first page for their two largest queries. Four more target queries reached the top ten. Next month the team updates the two weakest comparison pages and publishes the integration guide, and needs product to confirm two feature details by the 10th.
Neither report mentions domain scores, total keywords or site-wide average position. Both put the same month last year beside every number, explain the fall before anyone asks, and end with what happens next.
Reporting AI search visibility
Leadership increasingly asks how the brand appears in AI search, and it is worth reporting, carefully. Clicks from Google’s AI Overviews and AI Mode are already in Search Console’s web totals, per Google’s AI features documentation, so they need no separate line. Visibility in other assistants, such as ChatGPT or Perplexity, is not in Search Console at all.
For those, report what you can measure honestly: referral visits from the assistants in your analytics, and the results of a fixed set of prompts checked on a schedule, showing whether and how the brand is mentioned. Say clearly that prompt checks are a sample, not a census. How to track brand mentions in AI answers is covered in the guide to tracking brand mentions in AI search.
How often to report, and how to produce it
Report monthly to the team and marketing lead, and quarterly to leadership, unless the business runs on a different rhythm. Weekly numbers in organic search are mostly noise, and reporting them invites reactions to it. Watching for sudden problems is a monitoring job with alerts, not a report.
Automate the data, not the commentary. Pull Search Console and analytics data into one place on a schedule, build the same charts each month, and flag the largest movements automatically. Then write the summary and the explanations yourself; they take less than an hour once the data assembles itself, and they are the part readers value. What to automate and how to keep it reliable is covered in the guide to SEO automation.
When the report needs to connect organic results to money, the SEO ROI Calculator models revenue and payback from the same traffic figures, which is useful for the quarterly leadership report.
Common SEO reporting mistakes
Each mistake below makes a report less trusted or less read. Each has the check that catches it.
- No summary. Check: could someone who reads only the first five sentences say whether things are on track?
- Month-on-month only. Check: is every headline number compared with the same period last year?
- Site-wide average position. Check: is position reported for specific queries or pages instead?
- Summing visible queries. Check: do totals come from the chart, not from adding up the query table?
- Unexplained changes. Check: does every notable change have a cause, or an honest ‘not yet known’ with a date?
- Vanity metrics for leadership. Check: does every number in the leadership report connect to a business result?
- No next steps. Check: does the report end with what happens next and any decision needed?
- A different format each month. Check: is the structure the same as last month’s?
Setting up reporting that connects organic search to the numbers a business runs on, so the report supports decisions rather than describing activity, is part of a growth consulting engagement.
An SEO report exists to support a decision, so lead with a short summary: what changed, why, and what you will do next. Choose metrics by audience, compare against the same period last year to remove seasonality, and explain changes before anyone asks. Know the traps in the data: Search Console’s average position uses the topmost result and is averaged differently by property and by page, and a large share of clicks sits under anonymised queries. Automate the data collection and write the commentary yourself.
When I take over an SEO report, the first change is usually to move the last page to the front: the next steps. A report that starts with what will happen and why reads very differently from one that starts with twenty charts.
The second is adding the same month last year beside every number. Half the alarm in most monthly reports disappears once the seasonal pattern is on the page.
Frequently asked
What should an SEO report include?
How do you create an SEO report?
What metrics should be in an SEO report?
How often should you send an SEO report?
Why does average position in Search Console go down when traffic goes up?
Why don’t Search Console query totals match the chart?
How do you explain a traffic drop in an SEO report?
Should AI search be in an SEO report?
I am not taking on new work right now, but I am always glad to talk ideas. If this raised a question about your own situation, send it over.
Say hello