Proving SEO results to a client means showing that the pages you worked on did better than comparable untouched pages over the same dates, by more than chance explains, and keeping a dated record of every change. A traffic rise alone is not proof, because seasons and Google updates can move many pages at once.
- Google says nobody can promise a number-one ranking, and suggests asking an SEO what results to expect, in what timeframe and how success is measured (Google, Search Central, read 30 October 2026).
- Search Console annotations are capped at 200 per property and 120 characters each, and are deleted after 500 days (Google, Search Console Help, read 30 October 2026).
- On a page earning 4 clicks a day with no drift between pages, Penlid's simulations found a real +50% lift 61.23% of the time with 6 comparison pages (Penlid, methodology, read 30 October 2026).
Why is a rise in traffic not proof of SEO results?
A rise in traffic is not proof of SEO results, because other events can move traffic in the same weeks. Google lists periodic changes in user sentiment, news events and improvements to a competing site as other events that can also contribute to changes in performance
; its guide to debugging traffic drops adds algorithmic updates and seasonality.
The trap is sharpest when you chose pages because they had just dropped, since a bad four weeks tends to be followed by a better four (see why pages that dropped often recover on their own). In Penlid's simulations, such pages left unchanged were called "improved" 5.50% to 9.20% of the time, against at most 3.10% for other pages (Penlid methodology).
What a client can fairly be shown is timing evidence, not proof of cause. Google suggests checking that gains line up in time with your changes and comparing similar past periods. Comparing a page with untouched pages from the same site, the difference-in-differences idea, is our method, not Google's advice; the methodology asks did this page do better than the pages we left alone would have predicted?
What evidence can a client check for themselves?
A client can check six things: a dated change log, untouched pages named in advance, a same-dates comparison, the working behind each number, the outcome after the click and any known data issues. The list is our reasoning; the sources support the rules inside it.
| Evidence | What the client can check |
|---|---|
| Dated change log | What changed, where and when |
| Untouched pages named in advance | That the comparison was not picked after the results |
| Same-dates comparison | Changed and untouched pages over identical calendar days |
| The working | The lift, its 95% interval, the p-value and the number of untouched pages |
| Outcome after the click | What visitors did next, from Analytics |
| Known data issues | Whether Google's data anomalies page lists one for the period |
Start before the work does: because nobody can promise a number-one ranking, agree how success will be measured and over what timeframe (our reasoning). Penlid freezes up to 30 untouched pages when it records a change, because the one fact that cannot be rebuilt afterwards is which pages you left alone
. Google says Search Console stops at the click, Analytics covers what visitors do after landing, and their clicks and sessions are calculated differently, so they will not match exactly. For known data issues, see the data anomalies guide.
How do you build a comparison a client can check, step by step?
Build the comparison in four steps: record the change, name the untouched pages first, export identical dates for every page, then check the column order and read the working.
- Record the change on the day it goes live. Note the page, the date and what changed, and leave the page alone until its after window ends. The free did-it-work tool takes one change per line, URL then date, up to 50. List every edit, the client's included, because a page edited outside the tool looks untouched to it.
- Name the untouched pages before you look at how they did after the change. On a day-by-day file the tool picks them from days −56 to −29, apart from the days the lift is measured over, except that when more than 8 qualify, their order also uses their trend, which includes days the lift is measured against. To choose by hand, see the control pages guide.
- Export identical dates for every page. Compare the 28 days after the change with the 28 days before it, using only windows that have fully ended (see how long to wait after a content update). A day-by-day table with Date and Page columns beats a Compare export, which has no separate stretch, so the pre-trend check cannot run.
- Check the column order, then read the working. A Compare file does not say which range is the "after", so the tool prints both column headings under the headline; if they are reversed, every verdict is. Then read the lift versus what the untouched pages predict, its 95% interval, the p-value and the page count.
What do you tell a client when the result is small or unclear?
Tell the client what the numbers support and no more: a size with its interval, a direction only, "we cannot tell" or "not measurable". The rules in the table come from the methodology; the wording is ours.
| Situation | What you can say |
|---|---|
| 10 or more clicks before, interval excludes zero | X% better (or worse) than the untouched pages predicted, with its interval and p-value |
| 10 or more clicks before, interval includes zero | We cannot tell; the smallest lift it could have detected was L% |
| 1 to 9 clicks before | It went up (or down); the starting traffic is too small to size |
| No clicks before | New page: nothing to compare yet |
| Fewer than 3 usable untouched pages | Not measurable, and here is why |
On a small page a real lift can come back as "we cannot tell" (see inconclusive SEO tests), so say so before the work starts.
| Changed page's clicks a day | Real lift | Drift between pages | Comparison pages | Found |
|---|---|---|---|---|
| 4 | +50% | none | 6 | 61.23% |
| 4 | +50% | none | 8 | 70.02% |
| 400 | +10% | none | 6 | 99.95% |
| 40 | +80% | 15% | 6 | 78.90% |
In Penlid's simulations, a real +50% lift on a 4-click-a-day page was found 61.23% of the time with six comparison pages, so about 39 in 100 such lifts would not be flagged (100 − 61.23 = 38.77, our arithmetic). The first two rows ran 200,000 experiments each and the last two 2,000, so those two figures can be a point or so off.
How do you report several changes without overclaiming?
Report every change you measured, not the best one, because the chance of at least one false win grows with each page you test. For m independent tests at the 5% level, that chance is 1 − 0.95^m, which is 22.6% for 5 tests and 40.1% for 10 (our arithmetic, assuming independent tests; Wikipedia's article on the multiple comparisons problem gives the formula). The guide to false wins in SEO testing works through the numbers.
How do you keep the evidence long enough to prove it later?
Save the evidence while Search Console still has it: it keeps data for the last 16 months, so once an engagement is 16 months old none of the months before it remain (our arithmetic). Annotations cannot be the whole log, being capped at 200 per property and 120 characters each and deleted after 500 days. For data from before a bulk data export was set up, Google's export page points to the Search Console API and the reports, so set up your own storage on day one (our advice). See keeping Search Console data older than 16 months and SEO renewal evidence.
Example (illustrative numbers)
These counts are invented to show the arithmetic; they are not data from any site. An agency rewrote five pages and, on the same day, wrote down six pages it left alone.
| Page | Before | After | Change | Versus the untouched pages |
|---|---|---|---|---|
| Page 1 | 820 | 1,066 | +30.0% | +20.4% |
| Page 2 | 1,150 | 1,380 | +20.0% | +11.1% |
| Page 3 | 560 | 616 | +10.0% | +1.9% |
| Page 4 | 930 | 837 | −10.0% | −16.7% |
| Page 5 | 1,400 | 1,722 | +23.0% | +13.9% |
| Five changed pages together | 4,860 | 5,621 | +15.7% | +7.1% |
| Six untouched pages together | 7,500 | 8,100 | +8.0% | the prediction |
The client's chart reads 5,621 ÷ 4,860 = 1.157, so +15.7%. The untouched pages went from 7,500 to 8,100, and 8,100 ÷ 7,500 = 1.08, so they predict +8.0%. Against that, the five pages together did 1.157 ÷ 1.08 = 1.071 times as well: +7.1% versus what the untouched pages predict, not the 7.7 points that subtracting gives. Page 1 works the same way: 1.30 ÷ 1.08 = 1.204, so +20.4%. Pooling is our arithmetic; the tool compares one changed page at a time and works from log ratios with half a click added to each count, so its figures may differ a little from these.
Whether a page counts as a win depends on its interval and p-value, which the tool prints and this example does not compute. The risk of reporting the best of five is plain arithmetic: if no page had improved and each test independently had a 5% chance of reading as a win, the chance that at least one still does is 1 − 0.95^5 = 1 − 0.774 = 0.226, about 22.6%. So report all five, page 4 included, each with the interval and p-value the tool prints, and give the pooled +7.1% versus the untouched pages rather than the raw +15.7%.
What this cannot tell you
- Timing evidence, not proof. The untouched pages remove what moved every page, not what moved only yours: a link, a ranking move, a news event or an unrecorded edit. The method is not a randomized experiment.
- A recovery story needs a discount. In Penlid's simulations the pre-trend warning appeared on only 10.9% to 22.7% of pages picked because they were declining, so it is a useful flag, not a safeguard.
- A past result is not a forecast. It says nothing about the next change; see how to forecast SEO results without overpromising and, when a number falls, what to check first when traffic drops.
Questions people also ask
How do you measure SEO success?
Choose the measure that matches the client's goal, then judge it against a fair baseline rather than last month alone. For visibility in Google that means Search Console clicks and impressions; for what visitors do next it means Analytics. Whatever the measure, set the changed pages beside pages you left alone over identical dates and report the interval, not just the percentage.
How do you create an SEO report for a client?
Open with the dated list of changes, then give each result as a percentage versus what the untouched pages predicted, with its interval, p-value and page count, and close with what stays uncertain. The free did-it-work tool can hand you the result as text to copy or a page to print or save as a PDF. The guide to what a monthly SEO report should contain covers the rest.
How do you evaluate SEO work?
Ask what changed, on which dates, and how the changed pages did against pages left alone over the same dates. Google's page on hiring an SEO suggests asking what results to expect and when, how success is measured, and for all the changes made to your site with the reasoning behind them. Work that arrives with no dates, no comparison pages and no stated uncertainty cannot be evaluated.
What counts as an SEO result?
An SEO result is a measured movement in something the client cares about, set against what untouched pages did over the same dates. In Search Console the Performance report offers four metrics, clicks, impressions, click-through rate and average position, and Google suggests watching trends in clicks and impressions more than position alone. What visitors do after landing belongs to Analytics.
Sources
- Do you need an SEO?, Google, Search Central, read 30 October 2026.
- Search Console annotations, Google, Search Console Help, read 30 October 2026.
- Performance report (Search results): Common tasks and use cases, Google, Search Console Help, read 30 October 2026.
can also contribute to changes in performance
- Debugging drops in Google Search traffic, Google, Search Central, read 30 October 2026.
- Using Search Console and Google Analytics data for SEO, Google, Search Central, read 30 October 2026.
- Data anomalies in Search Console, Google, Search Console Help, read 30 October 2026.
- Connect Search Console to Google Analytics, Google, Analytics Help, read 30 October 2026.
- Start a new bulk data export, Google, Search Console Help, read 30 October 2026.
- Performance report (Search results): Overview and basic setup, Google, Search Console Help, read 30 October 2026.
- Multiple comparisons problem, Wikipedia, read 30 October 2026.
- Methodology: how we measure, and what we can't, Penlid, read 30 October 2026.
did this page do better than the pages we left alone would have predicted?
the one fact that cannot be rebuilt afterwards is which pages you left alone
- Did that content change actually work?, Penlid, read 30 October 2026.