Answers

Why is my SEO traffic growing while revenue stays flat?

Short answer

Your growth is arriving in the buckets that don't produce revenue. Compute revenue per session for each intent bucket separately, and you'll usually find top-funnel sessions grew several times faster than commercial ones. Because top-funnel converts at roughly a fifth the rate, a large traffic gain there moves the total sessions chart and barely touches revenue.

Start with the arithmetic

Take a realistic B2B blog. Commercial pages convert to opportunity at around 2%, top-funnel educational pages at around 0.3%.

Add 40,000 monthly sessions to top-funnel content and you generate roughly 120 opportunities. Add 4,000 sessions to commercial content and you generate around 80. The first looks like a tenfold bigger win on the traffic chart and produces less revenue.

That ratio is why "traffic up, revenue flat" is usually not a mystery. It's a mix outcome that only becomes visible when you stop reporting sessions in aggregate.

The twenty-minute diagnosis

Bucket every page by intent, then compute two numbers per bucket for both periods: session growth, and revenue per session.

Intent bucketTypical revenue per sessionWhat growth here does
Bottom-funnel commercialHighestMoves revenue directly
Comparison and alternativeHighMoves revenue within a quarter
Product-adjacent JTBDModerateMid-funnel contribution
Top-funnel educationalLowest, often 5 to 10x below commercialMoves the traffic chart, not the revenue chart

If top-funnel session growth outpaced commercial session growth by a wide margin, you've found it and no further investigation is needed.

The number to bring to leadership is revenue per session per bucket, both periods. It shows whether each bucket is performing as it always did, which reframes the conversation from "SEO stopped working" to "we grew the cheap bucket."

Rule out the three alternatives

If the mix held and revenue still flatlined, check these in order.

Commercial page conversion declined. Same traffic, worse conversion, usually because a competitor updated their comparison page or your pricing changed without the page changing. Pull conversion rate for your top 20 commercial pages across four quarters.

Attribution is losing revenue rather than the site. A growing share of buyers arrive via branded search or Direct after an AI answer introduced you, so the revenue exists and gets credited elsewhere. Method in How can I estimate how much AI-influenced traffic is hidden in my Direct channel?.

The problem is downstream of marketing. Trial-to-paid, sales cycle length, ACV, and churn. If any degraded, content is doing its job and something after it is not.

Why the mix drifts without anyone deciding to

Nobody plans to over-invest in top-funnel. It happens because top-funnel is easier to rank for, easier to brief, and produces bigger traffic numbers, so it quietly accumulates.

There's now a second force pulling the same direction. AI answers absorb informational clicks, so teams write more informational content to compensate for falling informational traffic, which deepens the mix problem while chasing the metric that's structurally declining.

Our own state of AI search research, covering more than 22,000 answers, found Google AI Mode returns a citation-rich answer in 97.4% of matched B2B queries, and Pew Research found that when an AI summary appears, users click a source link in only about 1% of visits. Writing more top-funnel content into that environment is the least efficient response available.

What to change

The fix is a production rebalance rather than a cut, because the pages producing revenue are usually a small minority of what you publish.

Redirect the next 60 to 90 days toward bottom-funnel commercial and comparison pieces, run a conversion pass on your existing top 10 commercial pages, and set a target expressed as revenue per session rather than sessions.

For the budget-side version of this decision, including when cutting genuinely is right, see Should I cut content spending when traffic is growing but revenue is flat?.

Automate the bucket view

The reason this diagnosis gets skipped is that bucketing pages by intent is manual, so nobody does it more than once a year.

The funnel-coverage recipe surfaces pages by funnel stage automatically, which turns the classification step into a node. GSC Page-Keyword Breakdown supplies the queries behind each page so the bucketing reflects what people actually search rather than what you intended when you published.

Analyze AI's Overview showing traffic and visibility movement split across surfaces

A monthly agent:

Start (schedule, 1st of month) → funnel-coverage recipe → GSC Top Pages for Site and Page-Keyword BreakdownGA4 AI Traffic OverviewHubSpot Get CRM Objects (revenue by landing page, 4 quarters) → Code (compute sessions and revenue per session per bucket for both periods, and the share of total growth landing in each) → Prompt LLM (state which bucket absorbed the growth and what it contributed) → Excel exportSend Email to CMO.

The output line that matters: 83% of session growth landed in top-funnel, contributing 11% of new revenue. One sentence, and the strategy conversation writes itself.

FAQ


Want revenue per session split by intent bucket every month? Start a free Analyze AI trial and connect GA4, GSC, and your CRM.