This SEO SOP gives agencies, in-house teams, and freelancers a repeatable way to find the traffic a page is already earning the impressions for but leaving on the table — by comparing each page’s expected click-through rate to what it actually earns. It distills the “expected click traffic” process shared by David Wilson of Zozimus on Unscripted SEO, and belongs to our library of repeatable SEO SOPs.
It’s free inside The Vault — create a free SEO Arcade account and grab the printable SOP plus every other playbook, deck and eBook in there.
Open The Vault →Objective
Turn Google Search Console position data into a hard, prioritized list of recoverable traffic. For each page you map its average position to a published position→CTR curve to get the expected click-through rate, compare that to the actual CTR the page earns, and treat the gap as recoverable clicks (and, for commercial pages, recoverable revenue). The output is a short list of below-curve pages where a meta/title/on-page fix wins back clicks the page is already qualified to earn — without chasing new rankings.
Key Steps
- Export per-page GSC data (the full set, not 1,000 rows): In Google Search Console, pull the last 3–12 months of Pages performance with clicks, impressions, and average position. Don’t settle for the 1,000-row UI export — a free Google Sheets add-on (e.g. Search Analytics for Sheets) pulls up to 25,000 rows, which David notes is “a huge difference” for real analysis.
- Pick a published position→CTR curve: Grab an industry CTR-by-position benchmark table (the “click-through-rate data that’s out there”). This gives you the expected CTR for each ranking position — e.g. roughly 9% at position four in David’s example. Use one curve consistently so every page is judged against the same yardstick.
- Calculate expected CTR per page: Match each page’s average position to the curve to get its expected CTR. Then multiply that expected CTR by the page’s impressions to get the clicks the page should be earning at its current position.
- Calculate actual CTR and find the gap: Compute actual CTR (clicks ÷ impressions) for each page and subtract it from the expected CTR. A page at position two earning 4% when the curve says 9% is running at roughly half the traffic it should — that delta is your gap.
- Rank pages by recoverable clicks (and revenue): Multiply each page’s CTR gap by its impressions to size the recoverable clicks, then sort largest-first. For commercial or e-commerce pages, extend the clicks by conversion rate and average order value — David notes the miss can be “hundreds of thousands of dollars per month” on a big store, which is what gets a company to act.
- Fix the below-curve pages on-page: For each top offender, rewrite the title tag and meta description, and refresh the block of on-page text Google pulls into the snippet, so the listing earns the click its position already qualifies it for. This is the “unblock the dammed creek” move — you’re freeing traffic the page can already rank for, not fighting to rank higher.
- Re-measure after Google recrawls, then repeat: Give Google time to recrawl and re-render the snippet, then recompute actual vs. expected CTR on the same pages to confirm the gap closed. Roll the model forward monthly on your next batch of below-curve pages.
Cautionary Notes
- A generic CTR curve is an estimate, not truth — branded queries, SERP features, and intent skew real CTR. Use it to prioritize, and sanity-check outliers before you promise a dollar figure.
- Low-impression pages produce noisy, misleading gaps. Set an impression floor so you’re acting on pages with enough data to trust.
- GSC hides some data — named queries rarely sum to total clicks (“dark clicks”), so treat page-level totals as directional, not exact.
- Average position blends every query a page ranks for; a single blended number can mask very different per-query behavior.
Tips for Efficiency
- Let AI do the crunching. David’s team hands the data to Claude or ChatGPT to “turn it around in hours” what used to take weeks of pivot tables — build the expected-vs-actual math once as a repeatable prompt, then rerun it monthly.
- Start with the money pages. Score commercial and high-impression URLs first — that’s where a CTR gap translates into the biggest recoverable revenue and the fastest client buy-in.
- Lead the client with the number, not the task. “Your CTR is 4% and should be 9% — you could double this page’s traffic with one change” moves a company to act far faster than a checklist item.
- Bank the wins. Keep a before/after CTR log per page so you can show the traffic you recovered and justify the next batch of fixes.
Sources & Relevant Episodes
David Wilson, Zozimus — David framed this as an “expected click traffic” process: take a page’s Search Console average position, apply the CTR curve to get what it should earn, compare to actual, and show the client the missed traffic (often “hundreds of thousands of dollars per month” for e-commerce) so they act. His throughline: he’s not optimizing for rankings, he’s optimizing for business results.
Hear the full conversation: Search Everywhere Optimization — the Unscripted SEO interview with David Wilson, or listen to the episode on Castos.
