Smile Today is our own dental directory. Over the 90 days after a single day of structural work, Google clicks went from 148 to 453 and organic conversion went from nothing measurable to 4.3%. Average position got worse over the same window, from 25.7 to 28.7.
That last number is the reason this case study exists.
Where it started
An earlier build got the directory indexed: 1,113 pages across 37 UK cities, from zero to 66,000 impressions. Visibility, but nothing to show for it. The site was being seen and was not being used.
The 90 days to 3 July 2026 looked like this:
| 5 Apr to 3 Jul | |
|---|---|
| Google clicks | 148 |
| Google impressions | 67,380 |
| Average position | 25.7 |
| Click-through rate | 0.22% |
| Pages earning impressions | 1,121 |
What we did, on one day
3 July 2026. Five changes, all structural, all shipped together.
Internal prose links went from 7,201 to 12,141, added inside the body copy of hub, money and practice pages rather than in navigation. The number that mattered more: commercial pages emitting no prose links at all fell from 475 to 46. Four hundred and seventy-five money pages had been dead ends.
The emergency and NHS pages for the top 12 cities were de-templated. They had been the same page with the city name swapped. They were rewritten answer-first, with verified local facts, correct England and Scotland NHS models, real dental hospital names, and city-specific FAQs.
Titles and meta descriptions were rewritten to match intent, using the practice rating as visible social proof rather than describing what the page contained.
Organization schema was enriched with areaServed and knowsAbout.
1,850 pages were rebuilt and validated: JSON-LD parsing, tag balance, FAQPage intact.
Then nothing, for 90 days, except watching.
What happened
| Before, 5 Apr to 3 Jul | After, 4 Jul to 1 Oct | Change | |
|---|---|---|---|
| Google clicks | 148 | 453 | 3.1x |
| Google impressions | 67,380 | 142,926 | 2.1x |
| Click-through rate | 0.22% | 0.32% | 1.5x |
| Pages earning impressions | 1,121 | 1,666 | +545 |
| Average position | 25.7 | 28.7 | worse by 3.0 |
And conversion, by month, on organic sessions with datacentre traffic removed:
| Month | Organic sessions | Conversions | Rate |
|---|---|---|---|
| June | 175 | 0 | tracking not yet live |
| July | 288 | 3 | 1.0% |
| August | 393 | 9 | 2.3% |
| September | 534 | 23 | 4.3% |
The useful part: average position was lying
Clicks tripled. Average position got worse by three places. Both are true, and if we had reported average position as the headline, a tripling would have read as a decline.
The explanation is in the fifth row of that table. The site went from 1,121 pages earning impressions to 1,666. Every one of those 545 newly visible pages entered the index at a poor position, because new pages always do. They dragged the mean down. Meanwhile the pages that already ranked got better and took the clicks.
Average position is an unweighted mean across every query a site appears for. A site that becomes broader will almost always see it fall, and a site that prunes its weakest pages will see it rise while earning less. It is close to useless as a health metric for a growing site, and it is on the front page of every Search Console report.
What to use instead: clicks, click-through rate, and the count of pages earning any impression. Those three together told the real story here, and the third one explained the other two.
What we got wrong
Five changes shipped on the same day across the entire site, so we cannot attribute the result to any one of them. The interlinking is the likeliest driver, since 475 dead-end commercial pages is a large and obvious fault, but that is a judgement rather than a measurement.
The fix is a declared holdout: a comparable set of pages left untouched, so the change has something to be measured against. We now write one into engagements, and we published the reasoning after making this mistake rather than before.
The other thing hiding in the data
58% of this site’s search traffic does not come from Google. Over 90 days: 518 sessions from Google, 387 from Bing, 172 from Yahoo, 85 from DuckDuckGo.
Every figure in the Search Console half of this case study therefore describes under half the picture. We only found that by checking GA4 source data, which is not something a Search Console dashboard will ever prompt you to do.
What this is and is not
Smile Today is our own property. Nobody vetoed these numbers and nobody approved them, and we can produce the raw exports. That also means it is an easier environment than client work: we control the whole stack and ship without sign-off.
It is also a young site. These are the first five months of a directory, not a turnaround of an established one. The honest claim is that structural work on a new directory moved it from visible to used inside a quarter, and that the metric most people would have watched would have told them the opposite.
If you want the method behind it rather than the result, the Synaptic Authority Engine is published in full.