Case studies / Dentistry / Technical SEO + Local SEO
Case study, updated August 28, 2026

Google was indexing 9 of this practice's 67 pages. Six weeks after the fix, clicks had grown 2.4x.

Dr Arnaud Vali runs a dental practice in Neuilly-sur-Seine with an implantology focus and a well-built website that Google was ignoring: 49 of its URLs had never been crawled at all. The problem was not the content, not the links, and not the canonicals. This is what diagnosing and fixing crawl starvation looks like, measured in Search Console.

Client
Dr Arnaud Vali, dentiste-neuilly.fr
Vertical
Dentistry and implantology, Neuilly-sur-Seine
Service
Technical SEO + content cluster + local SEO + Ads
Window
April to August 2026
Book a call and walk the dashboards liveEvery figure on this page comes from the Search Console API, Local Falcon grid scans or the Google Ads console, checkable on request.
2.4x
Clicks, 72 to 173, in the six weeks after the July 15 rebuild vs the prior two months
GSC API, extracted Aug 28
3.5x
Weekly impressions, from about 700 to 2,400-2,800
GSC weekly, Jul-Aug 2026
15 > 27
Pages receiving impressions on Google, June to August
GSC, monthly
#4 > #1
Map position at the practice address on "dentiste", held for six weeks
Local Falcon grid, Jun 19 to Aug 28
The context

A good site that Google refused to read

The practice had invested in a proper Webflow site with real content. Search Console told another story: 9 of 67 pages indexed, and 49 URLs marked "discovered, currently not indexed" whose last crawl date read January 1, 1970, meaning never. The money pages for implants, aesthetics and prosthetics simply did not exist for Google.

Around thirty manual indexing requests over six months had changed nothing. A wave of twelve new articles published in April fell into the same void.

The diagnosis

Not a penalty. Starvation.

We eliminated the usual suspects one by one, with evidence: robots.txt, noindex, canonicals (every page canonicalized correctly), Cloudflare blocking, soft 404s, duplicate content, thin content, manual actions. All negative.

The crawl stats told the real story: Google allocated about 4 requests a day to the domain, wasted 44% of them on redirects and 404s inherited from the domain's previous life, and spent only 4.4% of its crawl on discovering new URLs. The site was not penalized. It was starved.

Two facts that killed the easy explanations

The one page that ranked was 1,700 words long. The pages Google ignored ran 2,300 to 4,600 words. It was not a content-quality problem.
One page had 179 internal links pointing at it and had still never been crawled. It was not an internal-linking problem either.
The domain had a prior history: it had hosted another practice for over a decade, then sat parked. Google's trust in it had to be rebuilt, not assumed.
The approach

Four moves, dated July 15-16, 2026

01

Stop wasting the crawl Google was willing to give

Dead URLs removed, seven precise 301 redirects, a clean sitemap, and internal navigation that exposes the service hubs instead of hiding them.

02

Rebuild the implant cluster as one machine

27 pages published in two days: the pillar rewritten from 4 sections to 9 sections and 31 subsections at 2,518 words, six sub-pages, ten converted articles and ten new pages on low-competition queries.

03

Make every page machine-readable

Structured data went from 1 page to 27: practice entity, the practitioner as author and reviewer, breadcrumbs, and medical page plus FAQ markup tied to the visible content.

04

Measure it like an experiment

Same grid points, same queries, before and after. And one control variable: the review count did not move during the window, so the growth below is search work, isolated from reputation effects.

The results

Six weeks after the rebuild, measured

Sources: Search Console API extraction of August 28, 2026, and Local Falcon 25-point grid scans on identical points and queries. Nothing estimated by hand.

MetricBeforeAfterChange
Clicks (GSC)72 in the prior two months173 from Jun 22 to Aug 252.4x
Impressions (GSC)5,91014,0292.4x
Weekly impressionsabout 7002,400 to 2,8003.5x
Pages receiving impressions15 in June27 in August+12
Map rank at the address, "dentiste"#4 on Jun 19#1 on Jul 13, still #1 on Aug 28#1 held 6 weeks
Grid points in top 20, "cabinet dentaire"1 of 2513 of 2513x
Search Console weekly impressions curve showing the inflection at the July 15 2026 rebuild
Search Console, weekly view. The inflection lands on the July 15 rebuild, to the week.
Pages receiving impressions on Google, from 15 in June to 27 in August 2026
Pages Google actually shows: 15 in June, 27 in August.
Local visibility, shown not told

The map grid on "cabinet dentaire", June 19 vs August 28

Each point is a real ranking measurement around the practice. In June, 1 point of 25 was in the top 20. In August, 13 of 25.

Before, June 19, 2026
Local ranking grid on cabinet dentaire, June 19 2026, one point of 25 in the top 20
June 19. One grid point in the top 20.
After, August 28, 2026
Local ranking grid on cabinet dentaire, August 28 2026, thirteen points of 25 in the top 20
August 28. Thirteen grid points in the top 20, #2 at the address.

The control variable: zero new reviews

Between June and August the practice's review count stayed exactly where it was. Everything above happened without a single additional review, which is what lets us attribute it to the technical and content work rather than to reputation. It also tells us the next lever: the review gap with local competitors is now the limiting factor, and we said so to the client instead of selling more content.

The paid side

While SEO compounded, ads bought the short term

Implant campaign, June 27 to August 10, 2026: 629 clicks at a 7.87% click-through rate on 609 EUR of spend, 16 tracked calls, and about 44 EUR per identified patient contact. Paused on August 10 once the organic engine was producing.

Why you can trust these numbers

No client pays Forge to be featured

Verifiable at source

Every figure comes from the Search Console API, the Google Ads console or a dated grid scan. We keep the raw extractions and will screen-share them with the client's permission.

The ugly baseline is on the page

Nine indexed pages out of 67 and thirty ignored indexing requests is not a flattering starting point. It is the real one.

Named, not anonymous

A real practitioner, a real practice in Neuilly-sur-Seine, a real website you can search for right now.

Questions practitioners ask

About this case

Why was Google only indexing 9 of 67 pages?

Crawl starvation. The domain received about 4 crawl requests a day, wasted 44% of them on redirects and 404s inherited from its previous history, and spent 4.4% on discovery. Robots.txt, noindex, canonicals, duplicate content and penalties were all ruled out with evidence first.

How fast did results come after the fix?

The rebuild shipped July 15-16, 2026. The weekly impressions curve inflects that same week, and over the following six weeks clicks ran at 2.4 times the prior two months, with pages receiving impressions going from 15 to 27.

What did the local map work produce?

On identical 25-point grid scans, the practice went from #4 to #1 at its address on "dentiste" between June 19 and July 13, 2026, and held #1 through August 28. On "cabinet dentaire", top-20 grid points went from 1 of 25 to 13 of 25.

Is this repeatable for another practice with indexing problems?

The diagnostic method transfers: rule out the ten usual suspects with evidence, read the crawl stats, then stop wasting crawl and give Google a dense, structured cluster worth crawling. The exact numbers depend on the domain's history and market.

Your practice next

Find out what Google is ignoring on your site

On the call we pull your Search Console live, read the crawl stats the way we did here, and show you exactly which pages Google has never seen.

Book a call and walk the dashboards live
Last updated August 28, 2026. Figures from the Search Console API, Local Falcon grid scans and the Google Ads console.