In short
A good SEO report answers three questions: what happened, why it happened and what you will do next. It starts from business outcomes, explains them with segmented Search Console and GA4 data, and ends with technical health and a plan. Behind it sits a routine of automated alerts, weekly checks, a monthly report and a quarterly review, so nothing important is discovered for the first time on reporting day.
Who reads SEO reports and what each needs
Most SEO reporting fails for one simple reason: the same pile of numbers is sent to everyone. A chief executive, a marketing manager and a developer read the same data with different questions, and a report that answers none of them in the first minute is not read at all.
Executives want to know whether organic search is helping the business. Give them the business outcome from organic (revenue, leads or sign-ups), the trend against the same period last year, the biggest risk and, if needed, one decision you want from them. One page, no keyword lists.
Marketing wants to know what worked. That means organic key events by landing page group, the split between brand and non-brand demand, the results of content published in the last months and how organic interacts with campaigns, PR and paid search.
Technical teams want to know what is broken or at risk. Indexing changes, new errors, Core Web Vitals, crawl findings and regressions after releases, each with the affected URLs or templates so the issue can become a ticket.
You can serve all three with one report built in layers: a summary page for executives, a performance section for marketing and a technical appendix. Or you can keep one data source and three views. What does not work is one long document where the executive has to dig through crawl tables to find out whether things are going well.
What Google officially says
Every metric in your report should be defined the way the data source defines it. When a stakeholder asks what “impressions” means, quote Google rather than improvising.
“The Performance report shows important metrics about how your site performs in Google Search results.”
Search Console Help — Performance report (Search results): Overview and basic setup| Metric | Google's definition | What to watch in a report |
|---|---|---|
| Clicks | “The number of times a user clicked your site from Google Search results.” | The closest Search Console gets to traffic. Report by segment, not only as one total. |
| Impressions | “How many times your site appeared in Search results.” | Grows with new queries, many of them irrelevant. A context metric, not a goal. |
| CTR | “The click count divided by the impression count.” | Moves when the query mix moves. Compare it on a fixed set of queries or pages. |
| Average position | “The average position of the topmost result from your site.” | The easiest metric to misread. See the section on misleading averages. |
Google adds several warnings that belong in the method notes of any report:
“The position value is a complex metric that can be misleading if you don't understand the subtleties.”
Search Console Help — What are impressions, position, and clicks? Google recommends: “We recommend that you monitor change in position over time, particularly sudden position changes, as well as absolute position.”“The newest data can be preliminary, meaning it's still being collected and might change in the next few hours.”
Search Console Help — Performance report overview. On weekly and monthly views it says they are “Used to analyze longer-term trends by smoothing out daily fluctuations (like those caused by weekends or holidays).”“A key event is an event that measures an action that's particularly important to the success of your business.”
Analytics Help — Conversions vs. key events in Google Analytics“To protect user privacy, Search Analytics doesn't show all data.”
Data Studio documentation — Connect to Search Console (Looker Studio is now called Data Studio)Two more lines save a lot of arguments. Search Console notes that “The chart totals can sometimes differ from the table totals.” And when someone checks a query by hand and does not see the site: “Even if a query appears in your list, you might not see your site in results if you run the same query in Google Search.”
The KPI hierarchy
SEO KPIs are not a flat list. They form a hierarchy in which each level explains the level above it. Revenue from organic search is what the business pays for; clicks explain revenue; visibility explains clicks; technical health explains visibility.
Level 1, business outcomes. Revenue, qualified leads, sign-ups or bookings attributed to organic search. This is the number executives care about, and it is often outside your direct control: prices, stock and sales follow-up affect it as much as SEO does. Report it anyway, with that context.
Level 2, organic key events. In GA4 the actions that matter are marked as key events: purchases, form submissions, sign-ups. Report them for the Organic Search channel, by landing page group. Keep in mind that “Marking an event as a key event affects reports from time of creation. It doesn't change historic data.” If a key event was added in March, there is no year-over-year comparison for it before next March. GA4 also caps the list: “You can mark up to 30 events as key events for standard properties and 50 events as key events for Analytics 360 properties.” Channel setup and landing page reports are covered in the lesson GA4 for SEO.
Level 3, clicks and impressions by segment. Search Console data split into brand and non-brand queries, page groups, countries and devices. This is where SEO work shows most directly, especially non-brand clicks.
Level 4, visibility and positions. Positions for fixed groups of tracked queries and how many of them sit in the top 3 and top 10. A leading indicator: it often moves weeks before clicks do.
Level 5, technical health. Indexed pages, Page indexing issues, server errors, Core Web Vitals, crawl findings and uptime. Mostly a list of risks; when it is healthy, one line in the executive summary is enough.
Vanity metrics and misleading averages
A vanity metric is a number that is easy to grow and easy to celebrate but does not tell anyone whether the business is better off. SEO reporting is full of them. Google itself warns against chasing raw impressions: “you should aim not simply for more impressions, but meaningful impressions.”
Average position across the whole site is the classic trap. It averages very different queries together, and a position is only recorded when the site is actually seen: “A link must get an impression for its position to be recorded.” When you start ranking for hundreds of new long-tail queries on page two or three, impressions grow and the site-wide average position gets worse, even though nothing you already had has dropped. The opposite also happens: a site that loses its weak rankings can show a better average while traffic falls.
Site-wide CTR behaves the same way. If a new informational guide picks up thousands of impressions where AI Overviews and other features take most of the attention, overall CTR falls while every existing page performs as before. CTR is only meaningful on a fixed set of queries or pages.
| Instead of | Report | Why |
|---|---|---|
| Total impressions | Non-brand impressions for target page groups | Strips out noise from irrelevant queries and brand demand. |
| Site-wide average position | Position distribution (top 3, 4–10, 11–20) for a fixed query set | New low rankings no longer drag the number down. |
| Site-wide CTR | CTR for the same queries or pages, this period vs last year | Removes the effect of a changing query mix. |
| Number of ranking keywords | Clicks and key events from the queries that matter | A keyword at position 80 counts but brings nothing. |
| Third-party authority scores | Referring sites that matter, as context only | Not a Google metric; it does not appear in your data sources. |
| Sessions from all organic sources | Organic sessions with key events, by landing page group | Connects traffic to business value. |
Third-party visibility indexes and authority scores can be useful for comparing yourself with competitors, but label them as estimates from a named tool. Never mix them into the same table as Search Console data, where they look like official figures.
Segments that make numbers honest
Totals hide what is going on. A flat total can be a growing blog and a collapsing product catalogue, or rising brand demand from a TV campaign covering for falling non-brand rankings. Every report should show at least these splits.
Brand vs non-brand
Brand queries reflect how well known the company is: advertising, PR, word of mouth. Non-brand queries reflect SEO work most directly. In the Search Console Performance report, add a query filter with Custom (regex) and a pattern that catches your brand and its common misspellings, then create the opposite filter for non-brand:
# brand queries (query filter, Custom regex)
example|exmple|example shop|examplecom
# non-brand: the same pattern with "Doesn't match regex"
Review the pattern once a quarter: new product names, sub-brands and misspellings appear over time. Remember that some queries are hidden for privacy, so brand plus non-brand query rows will not add up exactly to the chart total. That is expected; say so in the method notes rather than forcing the numbers to match.
Page groups
Group URLs by template or section: /blog/, /products/, /category/, location pages. Page filters with regex in Search Console or content groups in GA4 make this repeatable. Movements in one group usually have one cause, which makes explanations far easier.
Countries, devices and search types
Split by the countries you sell in and by device. Search type matters too: Search Console reports Web, Image, Video and News separately, and Discover has its own report. A traffic jump from Image search is a different story from a jump in Web search.
New and existing pages
Separate pages published during the period from pages that already existed. Growth from new content and growth from improving old pages are different achievements, and a decline on existing pages can hide behind new pages.
Explaining change honestly
The hardest part of an SEO report is the “why”. Search traffic moves for many reasons at the same time, and most of them have nothing to do with the work done last month. Honest attribution rests on four habits.
Keep a work log. Every change with a date and the affected URLs: releases, migrations, template edits, redirects, content published or removed, internal link changes, tracking changes. When a line on the chart turns, the first question is what changed on the site that week, and the log answers it in seconds instead of in a week of guessing.
Compare like with like. Seasonal businesses should compare with the same period last year. Month-over-month comparisons need a note on seasonality and on the number of days and weekends in each month. Use complete weeks or months and leave out the most recent days of preliminary data.
Check external events. Note confirmed Google updates with their date ranges from the Google Search Status Dashboard, changes in the search results themselves (a new AI Overview, a new shopping block), competitor launches, outages and news events. A drop that begins on the same day as a confirmed update is a lead, not a proof.
Rule out tracking before trusting a drop. A removed GA4 tag, a new consent banner, a renamed key event or a duplicated tag looks exactly like a change in performance. If GA4 falls but Search Console clicks do not, the problem is almost certainly measurement.
Then use careful language: “likely”, “consistent with”, “we think”, followed by the evidence: which pages and queries moved, from what date, and what else changed. Do not claim credit for a rise you cannot connect to your work, and do not blame an update for a decline you have not investigated. Step-by-step diagnosis of declines is covered in the lesson Why traffic dropped: a diagnostic method.
AI search visibility in reports
Stakeholders now ask how the site appears in AI Overviews, AI Mode and AI assistants. Answer in the report, but be precise about what the data can and cannot show.
In Google Search, AI features are counted inside the normal Web data. Google states: “Clicking a link to an external page in the AI Overview counts as a click.” and “An AI Overview occupies a single position in search results, and all links in the AI Overview are assigned that same position.” For AI Mode: “Clicking a link to an external page in AI Mode counts as a click.” Search Console does not offer a separate AI filter, so you cannot report AI Overview clicks as their own number from it.
What you can report: visits referred by AI assistants in GA4, with their key events; the queries and pages where clicks fell while impressions held steady, which is consistent with answers being given on the results page; and, if you run one, a prompt panel: a fixed set of prompts checked regularly in AI tools. Label a prompt panel clearly as a sample in its own section, never in the same table as Search Console data. Methods, metrics and a separate template are in the lesson Measuring AI visibility.
Cadence: weekly monitoring, monthly report, quarterly review
Reporting is the visible end of a monitoring routine. Each rhythm has a different job: alerts catch emergencies, weekly checks catch problems while they are small, the monthly report explains, and the quarterly review decides.
Weekly monitoring is short and boring on purpose. Look at clicks against the same week last year, new issues in the Page indexing report, the status of a handful of key templates, the diff from your scheduled crawl and whether key event counts look normal. Add anything notable to the work log. Most weeks there is nothing to report, and that is the point.
The monthly report uses complete months, explains what moved and why, and agrees what happens next. Weekly or monthly views are the right granularity here because they smooth out weekday and holiday swings.
The quarterly review steps back: are the KPI targets still right, what does the year-over-year trend by segment say, which content should be improved, merged or removed, and what goes on the roadmap for the next quarter.
Alerts that run between reports
Serious problems should never wait for reporting day. Set up alerts once and check that the right people receive them.
- Search Console emails“Use the email preferences page to control which Search Console messages are emailed to you.” Note that “Email preferences are set at the user level, not the property level, so you can manage only your own email preferences.” Each person sets their own; nobody can switch them on for a colleague.
- The right users on the propertyMessages go to the people who have access, so add the developer and the site owner as users. Permission level matters: “Restricted users receive only messages that specifically affect them.”
- Uptime monitoringAn external check every few minutes on the home page and key templates, alerting by email or chat when the site returns errors or times out.
- Scheduled crawlsA weekly crawl of the site or of a fixed URL list, compared with the previous run: new 4xx and 5xx, changed canonicals, pages that became
noindex, missing titles. - Change monitorsAlerts when
robots.txt, the XML sitemap or the robots meta tag on key pages changes. A stagingDisallow: /pushed to production is a classic Friday release. - Tracking checksCustom insights or a simple daily check in GA4 for a sudden fall in organic sessions or key events, which catches broken tags as well as real drops.
Google also notes: “You cannot specify different email settings for different properties.” An agency managing many sites therefore receives the same message types for all of them. Route those emails into a shared inbox or ticketing tool rather than unsubscribing from noisy types.
A monthly SEO report template
Use the same template every month. A stable outline makes months comparable, shows when something is missing and saves hours of formatting. The structure below works for in-house teams and for agencies reporting to clients.
| Section | What goes in it | Data source | Main reader |
|---|---|---|---|
| 1 · Summary | Three bullets: outcome, trend vs last year, top risk. One decision needed, if any. | All, interpreted | Executive |
| 2 · KPIs vs target | Organic key events or revenue, non-brand clicks, against target, last month and last year. | GA4, Search Console | Executive, marketing |
| 3 · Traffic by segment | Brand vs non-brand, page groups, countries, devices. | Search Console | Marketing |
| 4 · Top movers | Pages and queries with the largest gains and losses, each with a likely cause. | Search Console, work log | Marketing, SEO |
| 5 · Work completed | What shipped this month, with dates and URLs, and first results where measurable. | Work log | All |
| 6 · Technical health | Indexing trend, new errors, Core Web Vitals, crawl findings, uptime incidents. | Search Console, crawler, monitors | Technical |
| 7 · AI search visibility | AI assistant referrals and key events; prompt panel results, labelled as a sample. | GA4, prompt panel | Marketing, executive |
| 8 · Issues and risks | What is broken, blocked or waiting on someone, with impact. | All | All |
| 9 · Next month | Planned work, owners, dates and the metric each item should move. | Plan | All |
| 10 · Method notes | Date ranges, filters and regex used, definitions, known data gaps. | — | Analysts |
Write the summary last and put it first. If the executive reads nothing else, the summary should still tell them whether things are on track and what you need from them. A good summary sounds like this: Organic leads up 12% on October last year, driven by the new service pages. Non-brand clicks flat after a template bug in July, now fixed. Decision needed: approve two developer days for the product filter fix. (illustrative).
Building the SEO dashboard
The monthly report is a narrative; the dashboard is the always-available view behind it. Data Studio (until recently called Looker Studio) has a native Search Console connector: “The Data Studio Search Console connector helps you measure and analyze your site's performance on Google Search.” A few setup details matter for reporting:
- The connector offers two tables, Site Impression and URL Impression, and one data source uses one of them. Google's advice: “To see your site impressions and URL impressions side by side, create two data sources and add both to a single report.”
- With owner's credentials, viewers can see the data without having their own Search Console access. That suits client and management dashboards; check who you share the report with.
- Add a GA4 data source for organic key events and show the date range and data freshness on every page.
Exports, the Search Console API, bulk export and connector setup are covered in depth in the lesson Exports, API and Looker Studio, and GA4 channel and key event setup in GA4 for SEO.
Note what the mock-up does. Impressions rose by 21% while CTR on the fixed query set slipped slightly; reported alone, the impressions tile would look like a big win. Placed next to clicks and key events it becomes context. The July dip carries its explanation directly on the chart, so nobody has to ask.
Where the technical layer comes from
The technical health section needs a repeatable crawl and checklist, run the same way each month so the numbers are comparable. OurSEO Tools runs a 69-point checklist across indexation, URLs and duplicates, redirects, rendering and speed, security, on-page, internal linking, content and local signals, plus a technical crawl of up to 1,000 pages with status code, canonical, indexability and load time per URL.
Presenting bad news
Every SEO program has bad months. How you report them decides whether stakeholders keep trusting the good months. The rule is simple: the bad news goes first, in plain words, with numbers and a plan.
- Say it first. Put the decline in the summary, not on page nine. A stakeholder who finds it themselves stops trusting the whole report.
- Quantify it. How many clicks, key events or how much revenue, against which comparison period.
- Show the scope. Which segments, page groups, countries or devices are affected, and which are not.
- Give the likely cause with evidence. Dates, the work log, update timing, tracking checks. If you do not know yet, say so and say when you will.
- Separate what you control. A bug you can fix is different from a change in demand or in the results page.
- Give a plan with owners and dates. And the metric that will show whether it worked.
- Commit to the next update. A date for the follow-up, even if it is before the next monthly report.
✕ Hides it
- Opens with “impressions up 21%”
- The drop appears only in an appendix chart
- “Google update” given as the cause, no evidence
- No plan, no date for the next update
✓ Owns it
- “Non-brand clicks to product pages fell 18% vs last July” (illustrative)
- Limited to product pages; blog and categories stable
- Started the day a template release removed product text; see work log
- Fix deployed 4 August, recovery checked weekly, update on 18 August
Add a technical health layer to your report
OurSEO Tools runs a 69-point checklist and crawls up to 1,000 pages, recording status code, canonical, indexability and load time for every URL, so the technical section of your monthly report rests on the same check each time.
Common mistakes
- ✕One report for everyoneExecutives get crawl tables and developers get revenue charts; nobody gets an answer.
- ✕Site-wide average position as a KPIIt falls when you gain new low rankings and rises when you lose weak ones.
- ✕Impressions as the headlineEasy to grow, weakly connected to business results.
- ✕No brand vs non-brand splitBrand demand from advertising hides or flatters the SEO trend.
- ✕Month over month for seasonal sitesDecember vs November says more about the calendar than about SEO.
- ✕Including the last few daysPreliminary data makes the end of every chart look like a drop.
- ✕Trusting a GA4 drop without checking trackingCompare with Search Console clicks before raising the alarm.
- ✕No work logWithout dates of changes, every explanation is a guess.
- ✕Claiming causes without evidence“The update hit us” needs dates, pages and queries behind it.
- ✕Mixing third-party estimates with Search Console dataTool scores look official in the same table; label their source.
FAQ
What are the most important SEO KPIs?
Organic key events or revenue at the top, non-brand clicks by page group below them, then positions for tracked query groups and technical health. Pick two or three headline KPIs that connect to how the business makes money and keep the rest as diagnostics.
How often should I send an SEO report?
Monthly for the full report, with a quarterly review for strategy. Monitor weekly and rely on automated alerts for emergencies, so the monthly report is an explanation rather than a discovery.
Should I report average position at all?
Yes, but for fixed groups of queries and as a distribution, not as one site-wide number. Google itself calls position a metric that “can be misleading if you don't understand the subtleties.”
Why do Search Console query rows not add up to the total?
Some queries are hidden to protect user privacy, and chart totals can differ from table totals because of how data is aggregated. Explain this in the method notes instead of trying to make the numbers match.
Can I report AI Overview clicks separately?
Not from Search Console. Clicks from AI Overviews and AI Mode are counted as normal Web clicks. Report AI assistant referrals from GA4 and, if you run one, a labelled prompt panel.
Search Console and GA4 show different numbers. Which one is right?
Both, for what they measure. Search Console counts clicks from Google results; GA4 counts sessions it was able to record, which depends on consent and tagging. Use Search Console for search visibility and GA4 for what visitors did on the site.
Sources
- Search Console Help — Performance report (Search results): Overview and basic setup
- Search Console Help — What are impressions, position, and clicks?
- Search Console Help — Email Preferences page
- Search Console Help — Managing owners, users, and permissions
- Analytics Help — Conversions vs. key events in Google Analytics
- Analytics Help — Mark events as key events
- Data Studio documentation — Connect to Search Console
Quotes checked against the official pages on 30 October 2026.