Three numbers. You can delete the rest of the report.
A monthly SEO report typically runs somewhere between eighteen and thirty slides. Most of it is evidence of activity: keywords tracked, pages crawled, errors found, posts published, a screenshot of a rank tracker with the good rows visible. Activity is not progress, and a deck that leads with activity is usually leading with it for a reason.
Three numbers tell you almost everything, and the order matters because each one fails in a different way. Read them together and you don't just learn whether SEO is working — you learn what specifically is broken, which is the difference between a productive conversation in month six and an expensive shrug.
- Non-brand organic clicks and impressions — is anyone new finding you through search.
- Qualified leads from organic, as a trailing three-month average — is any of it worth money.
- Shipped work, counted — is the capacity you're paying for actually reaching your account.
Number one — non-brand organic demand
Brand search is the number that flatters everybody. Run a campaign, land press coverage, have a founder go mildly viral on LinkedIn, open a second office — brand searches rise, organic traffic rises with them, and the SEO report takes the credit. None of that movement came from SEO work, and in a bad engagement it's the only thing holding the chart up.
So split it before you read anything. In Google Search Console, open the Performance report, add a Query filter, choose Custom (regex), set it to doesn't match, and paste in every version of your brand somebody might type — the proper name, the one-word version, the domain, the common misspellings, the founder's name if people search it.
Something like (?i)lastagency|last agency|lastagencyhere for us. Save it as a bookmark, export the non-brand clicks and impressions every month, and keep them in a sheet. That single series is the closest thing SEO has to a truth serum, and it takes about four minutes to set up once.
What healthy looks like
Non-brand impressions move first, usually inside four to eight weeks, because a page can start appearing for queries long before it ranks well enough to be clicked. Clicks follow. Then the mix shifts: early wins are long-tail and low-volume, and over months they should be joined by mid-tail terms with commercial intent.
Flat non-brand impressions at month three is a warning worth raising. Flat at month six is a verdict.
The mix matters as much as the total
- Count distinct non-brand queries producing at least one click. Rising query count means the site is being trusted across a topic, not just on one lucky page.
- Check whether new queries are commercial or purely informational. A blog winning "what is" queries while the service pages sit still is a real problem dressed as a good month.
- Watch the click-through rate on your top twenty non-brand queries. Falling CTR at stable positions usually means an AI Overview or a rich result now sits above you.
Number two — qualified lead velocity, not form fills
Raw form fills include job applicants, vendors selling you backlinks, students doing a project, and the person who wanted a free audit and was never going to buy anything. Every agency knows this. Most report the raw number anyway, because it's bigger.
The fix is unglamorous: define "qualified" once, in writing, before work starts, and never renegotiate it mid-engagement. It doesn't have to be sophisticated. A workable definition is a lead that matches your ideal customer on two of three axes — size, budget signal, geography — and that your sales team agreed to take a call with. Sales agreeing to the call is the honest filter, because sales won't waste an hour to make marketing's chart look better.
Then measure velocity rather than a monthly count. Organic leads arrive lumpy — one month brings nine, the next brings three, and neither number means anything alone. A trailing three-month average smooths out the noise without hiding a genuine decline.
- Write the definition down and put it in the engagement doc, next to the baseline number.
- Track it in your CRM, not GA4. GA4 counts events. Your CRM counts humans somebody decided were worth talking to. Only one of those pays salaries.
- Capture source properly. A hidden field storing first-touch source and landing page on every form, plus a "how did you hear about us" question for the phone and WhatsApp enquiries that attribution will otherwise lose entirely.
- Report it as a trailing three-month average, alongside the frozen baseline from day one so the comparison is always visible.
- Count offline conversions too. In most Indian B2B and services businesses a meaningful share of organic leads arrive by phone or WhatsApp after reading a page. If nobody asks, that traffic looks like it converted at zero.
Number three — shipped work, counted honestly
This is the leading indicator almost nobody reports, because it's the one that's uncomfortable for both sides. Count it monthly, in a shared sheet either party can update: pages published, pages materially updated, technical fixes deployed, links earned.
The word doing the work there is *deployed*. On a typical SEO report, half the technical items have been recommended for four months and are sitting in a developer's backlog behind a payments integration. That's frequently the client's fault rather than the agency's — but somebody has to count it, because it's usually the reason the other two numbers haven't moved.
Shipped work leads the other two by months. Content published in April affects non-brand clicks in June or July and leads in August. Which means it's the only number that tells you in month two whether month six is going to be a disaster.
The scorecard, on one page
This is the whole review. Three rows, checked monthly, taking about fifteen minutes if the sheet is set up.
| The number | Where it lives | What a flat line means |
|---|---|---|
| Non-brand organic clicks and impressions | Search Console, with a regex query filter excluding every brand term, frozen at kickoff. | The plan is aimed at queries you can't win, or at queries nobody searches. A strategy problem, not an effort problem. |
| Qualified organic leads, trailing three-month average | Your CRM, with first-touch source and landing page captured on every enquiry. | You're winning traffic that doesn't buy, or winning the right traffic onto pages that don't convert it. |
| Shipped work: pages live, fixes deployed, links earned | A shared sheet both sides update. Two columns: recommended, and live. | Capacity isn't reaching your account — or your approvals and dev queue are the bottleneck. Find out which before anyone gets fired. |
What each number should be doing, month by month
Ranges rather than promises, because sites and markets differ enormously — a three-year-old site with clean technical foundations behaves nothing like a six-month-old domain in a competitive category. What doesn't differ much is the *shape*. If your engagement doesn't roughly match this shape, the deviation is the conversation.
| Month | Non-brand impressions | Qualified organic leads | Shipped work |
|---|---|---|---|
| Month 1 | Flat, and that's correct. The work is audit, baseline and setup. | Flat. Anything here is coincidence. | Highest of the engagement: audit, quick technical fixes, keyword map. |
| Month 3 | Moving. Flat here is the first genuine warning sign. | Early movement only on short sales cycles. | Steady cadence, technical backlog visibly shrinking. |
| Month 6 | Clearly up, with new queries entering — or the strategy is wrong. | Above baseline. This is the first honest read on money. | Steady. Content and links carrying most of the hours now. |
| Month 12 | Compounding: new queries appearing, not just old ones improving. | The number the entire engagement gets judged on. | Steady, with more refresh work and less net-new publishing. |
The decision rule when one of them is flat
Here's the part that turns a scorecard into a decision. Don't fire on a feeling in month four; fire on a pattern, and make sure you're firing the right thing. Sometimes the right thing to fire is the plan.
- Shipped work flat, any month. The easiest to diagnose and the fastest to fix. Nothing is being produced. Ask for the count and the reason. If the reason is your approvals or your dev queue, that's yours and it's fixable inside a week. If the reason is "resourcing", your account is subsidising a larger one and it won't self-correct.
- Non-brand flat at month six, shipped work healthy. The strategy is wrong, not the staffing. Change the plan before you change the agency: one honest reset conversation, a new keyword thesis aimed at queries you can realistically win, sixty days to show a different shape. A good agency will have raised this before you did.
- Non-brand up, leads flat at month six. A conversion or intent problem, not an SEO one. You're ranking for research queries rather than buying queries, or the pages that rank don't ask for anything. Firing the agency doesn't fix either. Fix the pages, then re-aim the content at commercial intent.
- Leads up, non-brand flat. Check whether a campaign, a PR hit or a seasonal spike is doing the work. Enjoy it, don't credit SEO for it, and don't renew on the strength of it.
- Anything still flat at month twelve. Leave. Twelve months is long enough that either the market is unwinnable at your budget — in which case the agency should have told you in month two and refunded your optimism — or you've been paying for activity.
Why average position is the worst number on your report
Average position is the most quoted SEO metric and the least useful, and the reason is mechanical rather than philosophical.
Search Console's average position is an average across every query where your site appeared, weighted by impressions. As SEO starts working, your site begins showing up for hundreds of new long-tail queries — at positions 40 to 80, because you've only just entered them. Those new rows drag the average down at exactly the moment the engagement is succeeding. A site can grow clicks by half while its average position visibly worsens for months.
Which puts an honest agency in an awkward spot. Report the average and you get punished for winning. So the industry does the other thing: a third-party rank tracker screenshot showing ten hand-picked keywords, all of them up. Both charts are technically accurate and neither tells you anything.
Third-party trackers add a further layer of fiction. They sample one location, one device and a de-personalised result that no actual human sees. Useful for spotting a large directional change. Useless as a monthly scorecard, and completely useless as the basis for a renewal decision.
There's exactly one good use for position data, and it isn't the average. Filter Search Console for queries where you sit between positions 8 and 15 with meaningful impressions. Those are pages one small improvement away from page one, where the click-through curve does the rest of the work. That's a work queue, not a KPI — the difference is covered further in keyword rankings vs organic traffic and in what average position actually measures.
What goes on our own report
Page one is the three numbers, with the frozen baseline printed beside the lead figure so nobody has to remember what it was. Page two is the work log, with the recommended column and the shipped column side by side, including the items stuck on your side. Page three is what we're doing next month and why we changed our mind about anything.
There's no rank tracker screenshot, and that occasionally disappoints people in month two. It stops disappointing them in month seven.
The reason we can report this way is the commitment underneath it: we freeze your trailing-ninety-day count of qualified organic leads on day one and guarantee movement against that number — never a ranking position, because nobody controls Google's index. Miss it in ninety days and we keep working free until we beat it. That's also why we cap at three new clients a month. The guarantee, in full.