Back to Blog

SEO KPIs for Agencies: What to Report and What to Drop

·, SEO·Agency operations
seo kpisagency seoseo reportingclient reportinggoogle search consolega4

The SEO KPIs an agency should report are the ones a client can connect to revenue or to a decision. That means non-branded clicks from Google Search, organic key events such as leads or sales, and the pages and topics that gained or lost. Drop the numbers that look busy but don't change what anyone does next, such as sitewide average position, total keyword counts and tool health scores.

The test for each metric is simple. If it moved sharply next month, would the client or your team do anything differently? If the answer is no, it belongs in an appendix or nowhere.

Key takeaways

  • An agency should report SEO KPIs a client can connect to revenue or a decision: non-branded clicks, organic key events, and the pages and topics that gained or lost.
  • Sitewide average position, total keyword counts and tool health scores belong in an appendix or nowhere, because they look busy without changing what anyone does next.
  • Search Console's branded queries filter splits Performance data into branded and non-branded views, so brand demand cannot hide the non-branded growth a client pays for.
  • Google Analytics counts key events only from the moment they are marked, with no effect on historic data, per Google Analytics help, so mark them at kickoff.

The KPIs worth a client's attention

KPIWhere it comes fromWhy it earns a place
Non-branded clicksSearch Console, branded queries filterShows growth from people who didn't already know the brand
Branded clicksThe same filterTracks brand demand separately so it can't mask non-branded change
Organic key eventsGoogle Analytics, Organic Search channelTies search traffic to leads, sign-ups or sales
Clicks and impressions for target topicsSearch Console regex filtersShows progress on the topics the work targets
Pages gained and lostSearch Console comparison, Clicks DifferenceExplains the headline change in a sentence
Brand presence in AI answers, per engineAn AI visibility trackerShows whether buyers asking an assistant hear the brand

Each row needs a little setup before it can be trusted.

Branded and non-branded clicks

Search Console has a branded queries filter that splits Performance data into branded and non-branded views. Google says branded queries typically lead to higher-ranking pages and higher click-through rates, while non-branded queries show how new users find a site. Report them together and brand demand hides the number the client is paying you to grow.

The filter has limits. Google's help page says it isn't available for sub-properties such as example.com/blog/ or for sites with a low number of impressions. The classification is AI-assisted, and Google's announcement says some queries may be misidentified. Where you need control, a regex filter does the job by hand. Google's own example captures a brand and its abbreviations with cats and dogs|cats & dogs|c&d.

Organic key events

Clicks are not outcomes. In Google Analytics, the Organic Search channel covers visits from non-ad links in organic results, and Google's channel definitions say it includes AI Overviews and AI Mode. Pair the channel with key events. A standard property can mark up to 30 events as key events, and marking one changes reports only from that point on, with no effect on historic data (Google Analytics help). Set them up at kickoff, or your first months of results will have nothing to compare against.

Expect Search Console clicks and Analytics sessions to differ. Google's guide to using both tools says they're calculated differently and won't match completely, and suggests comparing clicks with sessions to read the general pattern.

Target topics and page movers

Agree on the topics the work targets and turn each into a regex filter on queries. Search Console uses RE2 syntax, matches anywhere in the query unless you anchor the pattern, and ignores case by default, according to Google's filtering help. The same page explains comparison mode, which adds a Difference column to each row. Sort the Pages tab by that column and the page movers fall out.

AI answers

Some clients will ask whether ChatGPT or Gemini mentions them. If you track it, report it per engine, beside the search numbers and never blended into them. XeoRank asks ChatGPT, Gemini (grounded in Google Search) and Perplexity a client's buyer questions and reports each engine separately; see pricing for what each plan includes, and AI visibility for agencies for how that works across client sites.

What to drop or demote

These metrics are easy to put in a report. Each one either measures the wrong thing or moves for reasons unrelated to your work.

Sitewide average position

The chart value is the average topmost position of the whole site (Google), so it blends brand terms, stray long-tail matches and everything between. Google's own advice in its common tasks guide is to focus more on trends in impressions and clicks than on position alone.

Keep position only for a short, named list of target queries.

Total ranking keyword counts

Third-party keyword counts are estimates. Google's guidance on hiring an SEO notes that third-party tools don't have access to Google's internal ranking data. Search Console's own query list isn't a stable count either: the table shows at most 1,000 rows (Google) and leaves out anonymized queries (Google).

Tool health scores

An audit score summarises a tool's own rules. Google says on the same hiring page that it doesn't evaluate or endorse third-party SEO tools. Report the specific issues you fixed and the pages they affected, which a client can check for themselves.

Sitewide CTR

CTR depends on how data is grouped. Search Console aggregates by property in the chart and by page in the Pages table, and Google's data help page shows how the same clicks give different CTR and position values under each method. A sitewide figure also moves when the mix of queries shifts, even if no page got better or worse.

Report CTR for specific pages after a title change instead.

Set baselines before the work starts

  1. Pull a full baseline at kickoff. Google's drops guide uses a 16-month view to separate yearly patterns from real change, and that window is a sensible starting point.
  2. Store it. To keep data beyond that window, Google points to the Search Analytics API or bulk data exports.
  3. Mark key events in Google Analytics on day one, since they only count from the moment they're marked (source).
  4. Write down the brand terms and target topic regexes, and keep them fixed for the reporting period so the numbers stay comparable.
  5. Agree how changes will be judged. Google's SEO Starter Guide suggests waiting a few weeks to assess whether a change helped, which makes monthly a sensible rhythm for outcome reporting.

When a KPI falls

Report a drop in the same format as a gain, with the cause you've checked. Google's guide to debugging traffic drops works as a checklist before the call. Compare against the same period last year, look the main queries up in Google Trends, and check whether the drop is site-wide or limited to a group of pages. Also check Google's list of ranking updates for the dates in question.

The same guide gives a move from position 2 to 4 as an example of a small drop and recommends avoiding radical changes to a page that's already performing well. Saying so in the report, with the link, is more useful to a client than a rushed fix.

Look at the shape of the drop too. Google's guide says that when impressions hold but clicks fall, the page title and snippet may not be as clear as they could be, or other results may be more appealing (source).

That points the next month's work at titles and descriptions first.

Reporting cadence and format

Report work weekly if the client wants it, and report outcomes monthly. Compare like with like: Google recommends weekly or monthly granularity for date comparisons so the day-of-the-week effect cancels out (source). Mark each shipped change with a Search Console annotation so the chart shows when work landed.

Keep the report to a page or two. Lead with the headline numbers, then what moved and why, what you shipped, what comes next and any decision you need from the client. Put the technical detail in an appendix for the person who wants it.

For the search numbers, XeoRank's business report does the assembly for each site. You pick a weekly or monthly period, and it compares it with the previous one across clicks, impressions, rankings and branded versus non-branded traffic, with your top queries and landing pages, exported as a PDF or Google Doc. On the Growth plan the report can be issued under your agency's name, as described on the white-label reports page.

An illustrative one-page report

The outline below is illustrative. It contains no client data; each row describes what goes in that section.

SectionWhat goes in it
HeadlineOne sentence on the change in non-branded clicks and organic key events this period
KPI tableEach KPI above with this period, the previous period and the difference
What movedThe pages that gained and lost the most, with one line of explanation each
What we shippedChanges and the dates they went live, matching the annotations
Next periodThe work planned and the KPI each item is meant to move
Decisions neededAnything waiting on the client, with a recommended answer

If a section has nothing in it this month, leave it in with "nothing to report". A fixed layout lets a client find the same section in the same place every month.

Ready to optimize your search rankings?

XeoRank connects to Google Search Console, analyzes content gaps with AI, and gives you actionable fixes — from the terminal or dashboard.