How to estimate the sales better Google visibility could bring
Build a simple forecast from visits and customer value, and understand what it can and can't tell you.
Updated 28 September 2026 · 9 min read
An SEO forecast is a sentence that starts with "if". If this page moves from position 7 to position 5, and if the extra visitors behave like the ones it already gets, it should earn about this much more each month. That sentence is useful. It is how you decide which page to work on first and what a link to it is worth.
The trouble starts when the "if" falls off. A forecast pasted into a slide becomes "SEO will add $20,000 a month". Three months later someone compares that figure with what happened, and either the work looks like a failure or, worse, the forecast gets reported as though it were the result.
This guide shows how to build a forecast for one page from inputs you can check, how to label each input by how well you know it, which scenario to plan on, and how to keep the forecast apart from what you later measure.
The inputs, and where each one comes from
A revenue forecast for a page needs five numbers:
- Impressions: how many times the page appeared in Google's results for its searches. From Search Console.
- Position: where it appeared, on average. Also from Search Console. It's an average across every search and every impression, so a page "at 7" may be third for one search and fourteenth for another.
- A CTR curve: the share of searchers who click the result at each position (CTR is click-through rate). This is a general pattern, not a fact about your page.
- Conversion rate: the share of visits that turn into a sale or a lead. From your analytics.
- Value per conversion: average order value, or for leads, the share of leads that close multiplied by the value of a deal.
You can replace the last two with one number: revenue per session for visitors arriving from organic search on that page, which Google Analytics and similar tools report directly. Either way you end up with a value per click.
The forecast is then one line:
extra monthly revenue = impressions × (CTR at the new position − CTR now) × value per click
For the curve, this guide uses typical figures. They vary a lot by result page (ads, shopping results and answer boxes all push organic results down), so treat them as a starting point: #1 28%, #2 16%, #3 10.5%, #4 7.5%, #5 5.2%, #6 4%, #7 3.1%, #8 2.5%, #9 2.1%, #10 1.8%.
Leave brand searches out. People searching your company's name will find you whatever you do to the page, so they add noise and no upside.
Measured, modelled and assumed
Every number in a forecast belongs to one of three kinds, and the label should sit next to it:
- Measured: counted from things that already happened. Impressions, clicks, sessions, orders.
- Modelled: calculated from measured inputs using a general pattern that may not hold for your page. The CTR curve, and every click figure worked out from it.
- Assumed: a number someone chose. The confidence discount, that impressions stay the same when you move up, that new visitors convert like current ones.
A forecast is only as solid as its weakest input. One assumed number makes the whole output an estimate, however precise the measured inputs are. Labelling each line doesn't make the forecast more accurate, but it tells the reader exactly which parts to argue with.
One step turns a generic curve into something closer to your page: calibration. Divide the page's measured CTR by the curve's CTR at its current position. If the page gets less than the curve says, perhaps because shopping results sit above it or its title is weak, carry that ratio forward to the other positions.
A worked example
Take an online furniture shop on Shopify and its /standing-desks collection page. The figures are illustrative. Brand searches are excluded, and Search Console figures are averaged over the last three months to smooth out a single odd month.
First, the inputs:
| Step | Figure | Worked out as | Label |
|---|---|---|---|
| 1. Impressions a month | 15,000 | Search Console, non-brand | Measured |
| 2. Position now | 7 | Search Console average | Measured |
| 3. Clicks a month | 372 | Search Console | Measured |
| 4. Page CTR now | 2.48% | 372 ÷ 15,000 | Measured |
| 5. Curve CTR at #7 | 3.1% | Typical curve | Modelled |
| 6. Calibration | 0.8 | 2.48% ÷ 3.1% | Modelled |
| 7. Value per click | $7.20 | 1.5% conversion × $480 average order | Measured inputs; one click = one session is assumed |
| 8. Confidence | 50% | Our choice | Assumed |
| 9. Gross margin | 40% | Use your finance team's figure | Assumed here |
Then the three scenarios. Impressions are held at 15,000, which is itself an assumption (more on that below):
| Next rung (#5) | Top 3 (#3) | #1 | |
|---|---|---|---|
| Curve CTR | 5.2% | 10.5% | 28% |
| Page CTR (× 0.8) | 4.16% | 8.4% | 22.4% |
| Clicks a month (× 15,000) | 624 | 1,260 | 3,360 |
| Extra clicks (− 372) | 252 | 888 | 2,988 |
| Extra revenue a month (× $7.20) | $1,814 | $6,394 | $21,514 |
| Risk-adjusted (× 50%) | $907 | $3,197 | $10,757 |
| Gross profit a month (× 40%) | $363 | $1,279 | $4,303 |
Dollar figures are rounded to the nearest dollar at each row; the unrounded values are $1,814.40, $907.20 and $362.88 for the next rung.
Why is #5 the next rung and not #6? That's a judgement about the pages above. In this example, the pages at #5 and #6 have similar content and a similar number of linking sites to /standing-desks, while the top three are large retailers with far more. Two places is a realistic move. Getting past the top three is a different project.
Plan on the next rung
The #1 column is nearly twelve times the next rung ($21,514 against $1,814). That's why it ends up on slides. It's also why it shouldn't be the plan:
- Each rung is harder than the last. The pages at the top usually got there with more links, more content and more time.
- It takes longer. A move of two places can show up inside the 90 days you'll measure over. A move to #1 may take a year, and a lot can change in between.
- It costs more, and you can't price it yet. You can see what it would take to pass the two pages directly above you. You can't reliably see what it would take to pass all six.
- It sets the work up to fail. If the budget was justified by #1, reaching #5 looks like a miss even when it pays back well.
Use the top 3 and #1 columns as ceilings. They tell you whether a page is worth attention at all. The next rung tells you what to spend. Ship/Scale works the same way: a link's payback is judged on the next realistic rung, never #1, with modelled revenue multiplied by a confidence setting that starts at 50%.
Confidence discounts
The curve isn't your result page, the move might not happen, and new visitors might not buy like old ones. A confidence discount is a single, visible way to account for all of that. It's crude, but it is honest about being crude.
Keep it as its own row. Don't hide it by quietly using a lower CTR or a lower conversion rate, because then nobody can see how much caution was applied, or change it.
Go lower than 50% when the position jumps around from week to week, when the value per click rests on a handful of orders, or when the result page has several ads and shopping results above the organic listings. Go higher only when you have measured results from similar changes on similar pages.
Revenue is not profit
The forecast above is revenue. A business keeps only its margin. Suppose closing the gap to #5 needs links costing $3,000 in total:
- Payback on revenue: $3,000 ÷ $907 a month = about 3.3 months.
- Payback on gross profit: $3,000 ÷ $363 a month = about 8.3 months.
Both are correct. They answer different questions. Payback on revenue is a fair way to compare one page with another, because margin is usually similar across a shop's pages. It is not a return on investment.
The same goes for ratios. A year of risk-adjusted revenue is about $10,886, or 3.6 times the $3,000 spent. It is tempting to call that a "3.6× return". It isn't. A year of gross profit is about $4,355; after the $3,000 spend, that leaves about $1,355, a return of about 45% on the first year. And gross profit still isn't net profit: returns, delivery and payment fees come out of it.
So: say "revenue" when you mean revenue, and never present revenue divided by spend as if it were profit.
A forecast is never a result
A forecast answers "what might this be worth?". A result answers "what happened?". They need different evidence, and they must never be added together.
- Keep the forecast as it was. Save it with its date and inputs, labelled modelled. Don't revise it after the fact to match what happened.
- Measure the result separately. After the change, compare clicks, impressions and position on the searches you targeted against the 28 days before. The guide on what to measure 30, 60 and 90 days after an SEO change covers the windows and the traps.
- Never total them. "$4,000 measured plus $6,000 forecast from pages still in progress" is not $10,000 of anything.
- Use the words. "Modelled: about $907 a month, risk-adjusted" and "Measured: clicks on the targeted searches up 40%" can sit on the same page. They shouldn't sit in the same number.
Ship/Scale labels every forecast as modelled and every result as measured, which keeps the two apart wherever they appear.
Even a measured gain in clicks is not measured revenue. Linking extra orders to a ranking change needs its own care, because sales, seasons and advertising all move revenue too.
Where forecasting goes wrong
- Average position hides the spread. A page averaging 7 may rank third for a small search and fourteenth for the one that matters. For the searches that carry most of the value, forecast each one separately and add them up.
- Impressions don't stay put. Search Console counts an impression when your result appears on a page of results someone loaded (Google's help on the performance report explains how). A page moving from the second page of results to the first can gain impressions as well as clicks, so holding impressions fixed understates the gain. Within the first page, the change is usually smaller.
- Calibration assumes the result page stays the same. If Google adds shopping results or an answer box above you, the old ratio stops applying.
- New visitors may not convert like the old ones. Moving up for broader searches brings people earlier in their decision. Check conversion rate by search where you can.
- Seasonality. A three-month average in a seasonal business is the wrong base for the next three months. Use the same months last year.
- Small numbers. A 1.5% conversion rate worked out from 20 orders could easily be 1% or 2%. Lower the confidence to match.
- Not every search is visible. Search Console leaves out some rare searches to protect privacy, so the searches you can see add up to less than the page's total.
The key points
Build the forecast from measured impressions and position, a CTR curve calibrated to your own page, and value per click from your analytics, and label every input measured, modelled or assumed. Plan on the next realistic rung with a visible confidence discount, and treat top 3 and #1 as ceilings. Convert revenue to gross profit before anyone says "return". Then measure what actually happens separately, and never report the forecast as the result.
Keep learning
- ShipScale9 min read
Did your website changes help? What to check next
Compare performance after 30, 60 and 90 days without mistaking normal ups and downs for lasting progress.
- Scale7 min read
Could a paid link be worth its cost?
Test the assumptions behind a placement's estimated return before deciding to buy.
- Ship9 min read
Find the pages worth improving in Google Search Console
See which pages people already find in Google, and where a useful update could help your business.