Shruti Parashar

Digital Growth

How to tell whether SEO is working before the traffic arrives

Organic results lag the work by months. The leading indicators worth watching instead of the traffic chart, and the numbers that should never reach a board slide.

Shruti Parashar 22 min read

There is a stretch in every SEO engagement, usually between month two and month five, where the work is being done and the traffic chart has not moved. It is the point at which programmes get cancelled — not because they are failing, but because nobody agreed in advance what progress would look like before the outcome arrived. The fuller reporting system this sits inside is covered in the local marketing measurement guide; this page is about the narrower question of what to look at while you wait.

Traffic and revenue are lagging indicators. They are the right measures of success and useless as measures of progress. You need a second set, defined at the start, when nobody is anxious yet.

LeadingLagging
Moves inDays to weeksMonths to quarters
ExamplesIndexation of commercial pages, impressions, average position on a frozen set, entry page mixSessions, enquiries, revenue
Tells youWhether the work is landingWhether the work paid
Can be gamedOnly by changing the query setNot really
Use it toDecide whether to continue or diagnoseDecide whether it worked

Why the gap exists at all

Worth understanding, because it makes the indicators below make sense rather than seem like consolation prizes.

Between publishing a page and earning revenue from it there is a chain, and every link takes time:

Figure 1
Work done Revenue
  1. 01 Crawled and rendered Googlebot has fetched the page and executed the JavaScript. Measurable in days. Search Console URL Inspection.
  2. 02 Indexed Stored and eligible to appear at all. Measurable in days to weeks. This is the first real indicator.
  3. 03 Understood Matched to the queries it answers. Impressions begin. Weeks. Watch impressions, not clicks.
  4. 04 Competing Ranking somewhere in the top 50 and climbing. Weeks to months. Average position on a frozen query set.
  5. 05 Visible Top ten. Clicks start arriving. Months. The first point at which traffic moves at all.
  6. 06 Converting The right people arrive and do something. Months to quarters. The number everyone wanted on day one.
The chain between publishing and revenue. Traffic only measures the last two links, which is why a programme can be progressing normally and look like it has stalled.

A page can be doing well at link two and be completely invisible at link six. Traffic only measures the end of the chain. If you only watch traffic, you cannot distinguish between “this is progressing normally” and “this has stalled at indexation” — and those two situations demand completely different responses.

Leading indicators are simply measurements taken further up the chain.

Indexation, first

Nothing can rank until it is indexed, and indexation is fast, measurable and largely within your control.

Track the proportion of your commercially important pages that are indexed — not the total number of indexed URLs, which is nearly always inflated by pagination, filters and things nobody meant to publish. A site can report 40,000 indexed URLs while a third of its money pages sit outside the index.

If that proportion is moving up, something real is happening, and it will show up in rankings before it shows up anywhere else. If it is flat at 60% four months in, you have found your problem, and it is not a content problem — it is a technical one. This site’s rundown of the technical SEO checks that actually move something is the place to start, since indexation of commercial pages is the first check on that list too.

Impressions before clicks

Search Console reports impressions long before a page ranks well enough to earn clicks. A page sitting at position 34 generates impressions and almost no traffic. On a traffic chart that reads as failure. It is actually the first sign of life.

Watch impressions on your target query set, and watch average position on that same set. When a cluster moves from position 40 to position 18, nothing has happened commercially — but you have learned that the page is indexed, understood, considered relevant, and now competing. The remaining work is different work, and knowing that is worth a great deal in month three.

The progression to expect, roughly:

StageWhat you seeWhat it means
NothingNo impressionsNot indexed, or not considered relevant to anything
Position 30–50Impressions, no clicksUnderstood and competing. Normal and healthy.
Position 11–20Impressions rising, occasional clicksClose. Usually a relevance or authority gap, not a technical one.
Position 4–10Real clicksNow worth optimising the title and the page itself
Position 1–3Most of the available clicksDefend it

Most of the anxiety in an SEO engagement happens in row two, which is also the row where everything is going fine.

Search Console defines these terms precisely, and the definitions explain half the confusion

Most people read impressions, position and CTR as three separate readings of the same underlying health. They are not. Each is computed by a specific rule, and the rules interact in ways that regularly produce a chart that looks like decline when nothing has got worse — or looks flat when something genuinely has changed.

Per Google’s own definitions of the Search Console metrics, an impression is counted when a user has seen, or could plausibly have seen, a link to your site in Search, Discover or News. For a standard organic result that threshold is low: the documentation’s wording is that an impression counts whenever an item appears in the current page of results, whether or not it is scrolled into view, as long as the user need not click to see more results.

Expandable elements work differently. Within a carousel or an expanding section, the item counts only once it has been scrolled into view inside that widget or opened by a click. Returning to the same results page and looking at the same link twice in one session still counts as a single impression.

A click, by the same documentation, is counted only when it sends the user to a page outside Search, Discover or News. Expanding a “people also ask” item or clicking a query-refinement suggestion that keeps the user inside Google doesn’t register. Click-through rate is nothing more than clicks divided by impressions, with no weighting or adjustment.

Average position is the one worth reading twice. Google defines it as the topmost position occupied by a link to your property or page, averaged across all queries — not the average of every position the page occupied. If a page appears in more than one slot on the results page for a single query, only the topmost of those positions counts for that event, before the averaging happens across the whole date range.

Two consequences follow from that, and both catch people out. Average position is structurally more flattering than a manual, single-position rank check for any page that shows up more than once per search event, because the weaker placement is simply never counted. And a site-wide average position figure is a compressed summary of something far noisier underneath it, best read as a direction of travel, not a literal ranking.

Rising impressions with falling CTR is not the same story as rising impressions with flat CTR

This is the specific trap worth naming, because it produces more false alarms mid-engagement than any other reading of this data. Search Console’s own documentation defines each of these metrics precisely and stops there — it does not publish guidance on how to read them together, so the interpretation below follows from the definitions above rather than from anything Google states explicitly.

Rising impressions with falling CTR, at a stable or worsening average position, usually means the page has started appearing for a wider, less qualified spread of queries — not that its established ranking has actually dropped. Because an impression only requires that a link could plausibly have been seen, a page picking up visibility under more loosely related query variants will generate impressions from searchers less likely to want what’s on it.

The blended CTR falls even though the page’s real relevance to its core queries hasn’t changed. The check that settles it is the query list underneath the aggregate number: if the newly-added impressions cluster around terms only loosely related to the page’s actual topic, that’s expansion, not decay.

Rising impressions with flat CTR is close to the opposite reading, and the more reassuring one. It typically means the same relevant query set is simply generating more search volume, or the page has begun appearing consistently for genuinely more searches of the kind it already ranked for. Visibility is growing without dilution.

Falling impressions with rising CTR is the pattern most often misread as decline when it’s frequently the opposite. It commonly follows a deliberate content change — consolidating near-duplicate pages, removing thin content, tightening a page’s focus — that trades a wider, weaker footprint of queries for a narrower, better-matched one.

Fewer people see the page; a higher share of the people who do click. Read alongside indexation and the page list, this is often good news wearing the shape of bad news on a top-line chart.

Flat impressions with an improving average position is simply the earlier part of the progression already described above: a page moving from position 40 to position 18 gains almost nothing in click volume until it crosses into single digits. Expect CTR to follow position, with a lag, not to move alongside it.

Two mechanical cautions belong alongside all four of these, and both come straight from Google’s own account of what Search Console data is and isn’t. The first is latency rather than provisionality: performance data typically takes two to three days to appear, and only the separate 24-hour view shows part-collected data, which the interface marks with a dotted line.

Diagnosing a dip from a window that hasn’t finished filling in is a reliable way to chase a problem that resolves itself in the next report.

The second is that the tables are not the whole picture. Google caps them at 1,000 rows and omits rare queries entirely to protect user privacy, so a query-level list will never sum to the totals on the chart above it. That gap is documented behaviour, not a tracking fault, and mistaking it for one wastes an afternoon.

Share of visibility on a defined query set

This is the most useful single metric in the middle of an engagement, and it requires one piece of discipline: defining the query set at the start and not changing it.

Pick the queries that would matter if you ranked for them — the commercial ones, agreed with the business rather than harvested from a tool — and track your visibility across that set as a whole.

It is honest in a way individual rankings are not, because it cannot be gamed by finding a term that happens to have improved. A single keyword moving from four to two is not evidence of anything. The distribution of your positions across fifty agreed commercial queries, tracked monthly, is evidence.

Freeze the list. A moving target measures nothing, and a query set that quietly gains terms you now rank for is a moving target.

What moved in Whitespark’s ranking-factor panel tells you which report to open first

This site’s own trace of Whitespark’s Local Search Ranking Factors survey is useful here for something more specific than a list of what matters: the movement between its 2023 and 2026 editions tells you which report to prioritise, and the honest answer depends on the kind of site being measured.

One scope caveat before the numbers, because getting this wrong is the most common way the data gets misused: Whitespark’s Local Search Ranking Factors panel scores factors for the local pack specifically — the three-listing map result — not organic, blue-link rankings generally.

The two are related but distinct contests, and Search Console’s Performance report doesn’t see the local pack at all; its search-results report covers web, image, video and news results, not Google Maps or the map-pack surface.

That surface is measured through the Business Profile’s own profile performance report — the thing most people still call Insights, which is the name Google retired. Conflating the two reports is a common way a business ends up concluding “SEO isn’t working” while reading the wrong dashboard for what it actually sells.

With that boundary in place, the movement is informative. Between the 2023 and 2026 editions, three of the panel’s fastest-rising factors were all Business Profile completeness signals: presence of predefined services climbed 59 places, keywords in the services list rose 75 places, and properly set hours rose 64 places, with “business open at the time of the search” entering the top five outright.

Over the same period, three factors fell by a similar margin: internal links from the GBP landing page dropped 65 places, linking out to authority sites dropped 64, and volume of quality content on service pages fell 40.

None of the fallers vanished from the panel, and this remains a survey of 47 experienced practitioners’ judgement rather than a measured correlation study — Whitespark presents it as such, and it’s graded accordingly on this site’s local SEO statistics page. But the direction is consistent enough to take seriously as a prior, and the Google Business Profile statistics page traces what else in that surface has a measured number behind it.

For a business whose commercial queries actually trigger the local pack — most trades, healthcare, hospitality, local retail — that argues for weighting the leading-indicator review toward the profile performance report: profile views, direction requests, calls, and the completeness of categories, services and hours, none of which appears in Search Console at all. Which of those fields are worth finishing first is set out in the Google Business Profile optimisation guide.

Watching blue-link impressions climb while a business’s real commercial surface is the map pack is watching the wrong report improve while the one that matters sits unreviewed.

For a site with no map-pack presence to fight for — a SaaS product, a national e-commerce catalogue, a publisher — the reverse fall in content-volume scoring is not evidence that content depth matters less for organic rankings generally. It’s evidence, at most, that within the narrower contest for the map pack specifically, content depth stopped being a strong differentiator relative to profile completeness.

Indexation, impressions and average position on a frozen query set — the indicators built up through the rest of this guide — remain the primary leading indicators for that kind of site.

A business that’s both — a local business running a genuine content and SEO programme alongside its Business Profile — needs both tracks reviewed in parallel, because a searcher choosing between the map pack and the organic results below it is being served by two different rankings, and only one report can see each of them.

The quality of what does arrive

Long before organic volume grows, its composition changes. Two things to watch.

Entry pages. If sessions are flat but the pages people arrive on have shifted from your homepage and your blog to your commercial pages, the channel is becoming useful even though the headline number has not moved. This is often the earliest genuinely commercial signal available.

Behaviour on arrival. Non-brand organic visitors who stay longer, scroll further and convert at a higher rate than three months ago are a different kind of visitor. That is exactly what a strategy built around intent is supposed to produce, and it happens well before volume changes.

Both of these require that you separated brand from non-brand at the start. If you did not, neither number will show you anything.

Leading commercial signals

Between rankings and revenue there is usually a step you can measure sooner.

Depending on the business: demo requests from organic, quote form starts, pricing page views from an organic entry, calls from the local pack, sample requests, newsletter signups on a commercial page.

These are noisy at low volume — read them as a trend across a quarter rather than week to week — but they move well before revenue does, and they are the ones a finance director will actually recognise as a business outcome.

To make them recognisable as money rather than as counts, you need two numbers agreed in advance: what an enquiry is worth and what one currently costs. The lead value calculator and the cost per lead calculator exist for exactly that, and the local SEO ROI calculator turns the pair into the range a programme has to clear before it is worth continuing. Which enquiries count at all is a question the local lead generation guide settles first.

A flat indicator is sometimes a broken meter, not a stalled programme

Before treating a flat or falling leading indicator as evidence the work isn’t landing, it’s worth ruling out that the meter itself broke. This happens more often than it should, and it produces exactly the false alarm that costs a genuinely working programme its budget and its credibility.

A redesign or replatform resetting analytics. A new GA4 property, a migrated CMS that changes URL structure, or even a consent-banner change can reset session counting or silently stop a key event firing — and a key event that stops firing takes the enquiry count with it, because that is the only place GA4 records the action as commercially important.

The tell is in the shape of the drop rather than its size. A genuine ranking loss is usually selective, hitting the specific pages or query cluster it should affect. A tracking break is usually sudden and near-total, arriving on the exact date something in the stack changed, and it hits pages and queries indiscriminately.

A tracking gap that isn’t a ranking gap. Search Console verification can lapse — an ownership token gets removed in a redeploy, a DNS record changes — a tag manager container can fail to fire after an unrelated script edit, or a robots.txt change can accidentally block a section nobody meant to touch.

Any of these can make a lagging dashboard read “traffic fell” while indexation and impressions, the leading indicators built up through this guide, are either unaffected or telling a completely different story.

This is exactly why they belong in the review even on a site that also runs GA4 carefully: they come from Google’s own crawl and index, not from a script running in the browser that can silently stop executing. The technical checks worth running first cover the robots.txt and indexation half of that list.

Seasonality mistaken for decline. A large share of local categories are genuinely seasonal — home services, tax preparation, event venues, anything tied to a retail calendar — and a month-on-month fall that matches the same fall from a year earlier isn’t a signal at all. The fix is mechanical: compare against the same period twelve months back before concluding anything moved for a reason worth acting on.

A query set that’s gone stale without anyone noticing. If the business itself changed — a service line was discontinued, a location closed, a product was dropped — a query set frozen months ago can show a real decline that has nothing to do with SEO and everything to do with the business no longer wanting to win that query.

Reviewing the set on a fixed schedule is a different discipline from letting it drift week to week. Changing it too often hides real movement; never reviewing it at all lets it go on measuring something the business stopped caring about.

One outlier query dragging an averaged number. A single high-volume term losing or gaining position can move a site-wide average position or CTR figure enough to look like a trend, when the other forty-nine queries in a frozen set of fifty didn’t move at all. The fix is the same discipline already recommended for the query set as a whole: read the distribution, not the blended number.

The load-bearing habit underneath all five of these: before asking whether the work is failing, ask whether the measurement changed on the same date the number did.

A launch, a migration, a tag change, a policy update or the calendar itself are all more common explanations than a genuine reversal in search performance. Every one of them is checkable in minutes against a release log or last year’s figures — considerably cheaper than diagnosing, and possibly abandoning, a programme that was never actually broken.

Search-specific leading indicators are only half the measurement picture in any case. Where the fault sits in the wider funnel — lead capture, attribution or response time — rather than in search itself is covered in full in this site’s guide to local marketing measurement and attribution.

What not to report

Total organic traffic as one number. Brand searches dominate it and mostly reflect awareness, PR and paid spend. A figure that rises when you run a campaign is not telling you about search. Split brand from non-brand or the number describes your marketing generally.

Individual keyword rankings. Rankings are personalised, localised and volatile. One term moving from four to two is not evidence. Distribution across a defined set is.

Anything a tool produced without a definition. Visibility indexes, authority scores, domain ratings — useful for relative comparison, meaningless as targets. If nobody in the room can explain how the number is calculated, it should not be on the slide, and it certainly should not be a KPI.

Rankings on queries you added last month. If the set moves, the measurement is worthless. This happens more often through carelessness than dishonesty, which does not make it better.

When the indicators say stop

Leading indicators are only credible if they can deliver bad news, so decide in advance what bad news looks like.

A reasonable version: after one full quarter of consistent work, if indexation of commercial pages has not improved, impressions on the frozen query set have not risen, and average position across that set is flat — that is not slowness. That is the work failing to land, and it warrants a diagnosis rather than another quarter of the same.

The distinction between “this is slow” and “this is not working” is only available to you if you defined the measurements before you needed them. That is the entire argument for doing this at the start.

It also matters which stage the diagnosis lands on. Indexation and impressions are FOUND problems; entry-page mix and behaviour on arrival are TRUSTED and CHOSEN problems, and they take different work — the FOUND, TRUSTED, CHOSEN framework is how this site keeps those three apart.

A worked example: four months of leading indicators, two trajectories

Take a hypothetical single-location glazing and window-repair business — illustrative only, not a real client — starting a structured SEO programme after several years running on referrals and paid search alone.

At the outset, 55% of its commercially important pages are indexed, a frozen query set of 40 local commercial queries sits at an average position of 47 across the set, monthly impressions on that set run around 1,200, and its Google Business Profile is roughly 60% complete, with no services list and irregular holiday hours.

Here is what a healthy quarter looks like, reviewed the way this guide has built up — indexation first, then impressions and position on the frozen set, then entry-page mix and commercial signals:

MonthCommercial pages indexedFrozen-set impressionsAvg. positionWhat’s actually happening
178%~1,35045Technical fixes ship and the Business Profile gets completed. Indexation moves fast because it’s mechanically controllable; impressions and position barely shift yet because Google hasn’t finished recrawling and re-evaluating the site.
291%~2,40034Indexation is essentially done. Impressions climb as newly indexed pages get evaluated against more queries. The set is still mostly in the 30–50 band described earlier — impressions with no meaningful clicks, which is normal and healthy at this stage.
393%~3,6002611 of the 40 queries have crossed into the top 20. The first non-brand organic sessions land on service pages rather than the homepage — the entry-mix shift flagged earlier as an early commercial signal. Business Profile direction requests are up 15% against the baseline.
494%~4,3001916 of 40 queries sit inside the top 20, five inside the top ten. Real click volume arrives on the frozen set for the first time, and the first organic-attributed contact-form submissions are logged — the point at which the lagging indicator finally starts to move.

And here is a stalling quarter, starting from the identical baseline, with the measurement-artefact checks from earlier in this guide run at every stage before anyone calls it a ranking problem:

MonthCommercial pages indexedFrozen-set impressionsAvg. positionWhat’s actually happening
158%~1,25047The same technical fixes ship, but a batch of new location and service pages sits outside the index. Business Profile completeness rises anyway — that part is mechanical and independent of whatever is wrong with the pages.
261%~1,30046Indexation is essentially flat. Before assuming a ranking problem, the checks from earlier in this guide get run: Search Console is still verified, there’s been no migration in the window, and the category isn’t seasonal. None of those explain it — this is heading toward a genuine stall, not a tracking fault.
363%~1,34045Still flat. The cause traces to the new pages themselves: they differ from one another only by town name — the exact failure this site has described elsewhere for multi-location content. Google is declining to index near-duplicates rather than penalising anything, but the effect on the leading indicators is identical either way.
464%~1,31046A full quarter of consistent work with indexation, impressions and average position all flat. Per the diagnostic set out earlier in this guide, that’s the point to stop calling it slow and start calling it not working — and to rebuild the pages with genuinely differentiated content rather than run a fifth month of the same approach.

The two trajectories start from an identical baseline and receive, on paper, similar effort. What separates them is visible by month two to anyone reading indexation, impressions and average position together, rather than waiting for the traffic chart to move.

That is three months of redirected effort on the stalling site — recovered before a quarterly business review would otherwise have discovered the problem the hard way, on a slide with no explanation for why nothing had moved.

Setting the expectation before you need it

The most valuable thing you can do at the start of an engagement is agree, in writing, what months one to three will look like — and specifically that traffic is unlikely to be the thing that moves.

Then report the leading indicators every month, including the ones that did not move. Especially the ones that did not move. Confidence in a channel with a six-month feedback loop comes from consistent, unglamorous reporting long before it comes from results.

If nobody can tell whether the work is going well until revenue changes, the programme is being run on faith. Faith runs out at about month four.

Questions

How long does SEO take to show results?
Meaningful commercial results typically take three to six months, and longer in competitive categories or on sites with technical debt. Technical fixes can move things within weeks. Content and authority compound over quarters. Anyone giving you a specific date is guessing, which is precisely why leading indicators matter — they tell you whether the work is on track long before revenue does.
What are leading indicators in SEO?
Measures that move before traffic and revenue do: the proportion of your commercial pages that are indexed, impressions on your target query set, average position across that set, the mix of pages people land on, and behaviour once they arrive. They tell you whether the work is having an effect while the lagging measures are still flat.
Why is total organic traffic a bad SEO metric?
Because brand searches dominate it, and brand search reflects awareness, PR and paid spend rather than SEO. A number that goes up when you run a TV campaign is not measuring your search programme. Split brand from non-brand and report them separately, or the figure tells you about your marketing in general and nothing about search.
What should an SEO report include in the first three months?
Indexation of commercial pages, impressions and average position on a frozen query set, share of visibility across that set, entry page mix, and any leading commercial signals such as demo requests or calls from organic. It should also include what did not move and what was learned — a report that only contains good news is not a report.
How do I know if SEO is failing rather than just slow?
If none of the leading indicators have moved after a full quarter of consistent work, that is a real signal. Indexation flat, impressions flat, average position flat across a frozen query set means the work is not landing — as opposed to landing and not yet paying. The distinction is only available to you if you defined the indicators before you started.
What does Search Console's average position actually measure?
Google's documentation defines it as the topmost position occupied by a link to your property or page in search results, averaged across all queries — not a simple average of every position the page has ever held. If a page appears in more than one slot on the results page for the same query, only the topmost of those positions counts for that event, before any averaging happens. That structurally flatters average position relative to a manual, single-position rank check, which is why the number is best read as a trend over time rather than as a literal ranking.
What does it mean if impressions are rising but click-through rate is falling?
It usually means the page is being shown for a wider, less qualified spread of queries rather than that its established ranking has actually dropped. Search Console counts an impression whenever a link has been shown or could plausibly have been seen, so a page picking up visibility under more loosely related query variants will generate impressions from searchers less likely to click, which pulls the blended CTR down even while genuine visibility is expanding. Google's documentation doesn't publish this as a rule; it follows from how impressions and CTR are each defined, and it's worth checking the underlying query list before assuming the page got worse.
Is Google Business Profile Insights the same thing as Search Console?
No, and treating them as interchangeable is a common source of confused reporting. Search Console's search-results Performance report covers web, image, video and news results, with Discover reported separately — the organic pathway. The Business Profile's performance report, which Google's own documentation no longer calls Insights, covers views, searches, direction requests, calls, messages and bookings generated against the business's profile on Search and Maps, which is the map-pack and Maps-app surface. A business whose enquiries mostly arrive through the local pack needs that profile performance report as its primary leading indicator; Search Console alone will understate what's actually happening.
How do I tell a genuine SEO problem apart from a tracking or measurement fault?
Check whether the drop coincides with a known change — a site migration, a new analytics property, a robots.txt edit, a Search Console verification lapsing — before concluding the ranking itself moved. A genuine ranking problem is usually selective, hitting the specific pages or queries it should affect; a tracking fault is usually sudden and uniform, hitting everything on the same date a system changed. Comparing the affected period to the same period a year earlier also rules out seasonality, which is routinely mistaken for decline in categories with a genuine calendar pattern.
Should I prioritise Google Business Profile completeness or website content right now?
For a business that depends on the local map pack, the current evidence points at profile completeness. Whitespark's 2026 Local Search Ranking Factors survey — an expert-panel judgement, not a measured correlation study — found that Business Profile signals such as complete predefined services, keywords in the services list and accurate hours rose sharply in the panel's scoring between 2023 and 2026, while volume of on-site content fell. That's a judgement about the local pack specifically, not about organic rankings generally, so a site with no map-pack presence to fight for shouldn't read it as a reason to stop writing.
Start here

A reporting line that can deliver bad news

If your current reporting cannot tell a slow programme from a stalled one, the fix is a defined query set, an indexation baseline and a monthly review that includes what did not move. That is the conversation to start.

Replies usually go out within one working day.