Generate Report →
Case Study — Verified

Rebuilding a Dental Clinic's Organic Traffic After a Two-Year Decline

A Romanian dental clinic lost 43% of its organic traffic across 2024–2025. Eight months later it had doubled. Here is what was measured, what was changed, and what the data does not prove.

Every figure below was pulled from the Google Search Console and Google Analytics 4 APIs on 31 August 2026. The exact queries are stated beside each table.

Most SEO case studies show a line going up and leave out the two years before it. This one starts with the decline, because the decline is what makes the recovery legible.

dentalclinica.ro is a dental practice in Romania competing on local and treatment-specific searches. It runs on a Hugo static site. During the period below it spent nothing on search advertising, so every number here is organic.

The starting position: two years of decline

The site did not begin from zero. It began from a slide.

YearOrganic sessionsChange
202431,369
202517,783−43.3%

By December 2025 the site was down to 725 organic sessions in a month — its worst on record, and roughly a fifth of its January 2024 volume. That month is the floor the recovery is measured from.

What changed, at the level of numbers

Two independent sources agree, which matters: Search Console measures what Google served, Analytics measures what arrived.

Google Search Console — 1 May to 30 Aug, year over year

Query: search_analytics on https://dentalclinica.ro/, dimensions=["device"]. Device is used because the three rows sum to the exact period total rather than a truncated top-N list.

Metric20252026Change
Clicks8,12218,747+130.8%
Impressions483,9691,047,189+116.4%
Average position (mobile)23.88.6−15.2 places
Average position (desktop)43.525.6−17.9 places

The position shift is the part that explains the rest. Mobile moved from the bottom of page two to the middle of page one. Impressions roughly doubled because the pages became eligible for more queries; clicks slightly outpaced impressions because ranking higher on the same query earns a better click-through rate.

Google Analytics 4 — 1 Jan to 30 Aug, year over year

Query: run_report on property 374275954, dimensions=["yearMonth"], metrics=["sessions"], filtered to sessionDefaultChannelGroup == "Organic Search".

Metric20252026Change
Organic sessions (Jan–Aug)13,81729,384+112.7%

Month by month, so the shape is visible rather than averaged away:

Month20252026
January2,5522,103
February2,2992,076
March2,2822,592
April1,4762,613
May1,6673,517
June1,2923,906
July1,2546,483
August9956,094

Note that 2026 starts below 2025. The lines cross in March. Nothing improved in the first eight weeks — which is the normal shape of this work, and the reason a four-week engagement would have been judged a failure.

Conversions — direct contact actions

Traffic that does not produce contact is a vanity metric, so the conversion events were measured separately.

Event20252026Change
Phone tap (mobile)272528+94.1%
Email click153329+115.0%
Landline click78278+256.4%
Total direct contact actions5031,135+125.6%

Conversions grew at roughly the same rate as sessions (+125.6% against +112.7%). That proportionality is the honest result. It means the additional traffic was about as qualified as the existing traffic — not that the pages became dramatically better at converting.

What was actually done

The four-layer method the audits are built on came out of this engagement, in this order.

Layer 1 — Technical and front-matter. Title tags rewritten against the queries Search Console showed the pages already ranking for, rather than the queries someone hoped they ranked for. Meta descriptions rewritten to earn the click. FAQ structured data added to pages that were already surfacing question-shaped queries.

Layer 2 — Search intent and heading structure. H2s rewritten to match the phrasing of real queries, because those are the strings Google lifts into featured snippets. Pages competing against each other for the same query were consolidated. This is the layer that moved position, and position is what moved everything else. The method is written up in matching H2 and H3 headings to search intent.

Layer 3 — Content depth. Specific treatment timelines, price ranges, and aftercare detail added where the pages had previously generalised. In a medical vertical Google treats this as a YMYL judgment, and vagueness is expensive. See E-E-A-T signals for clinical content.

Layer 4 — Internal linking. Hub-and-spoke structure so that treatment overview pages routed authority to the specific procedure pages that earned contact actions.

The measurement infrastructure mattered as much as the content. GA4 was under-reporting conversions because of a consent and event-timing bug; until that was fixed, the data said the work was not converting. That fix is documented in diagnosing GA4 consent and event timing problems.

What this case study does not prove

The honest limits, because a case study that claims too much is worth less than one that draws its own boundaries.

  • It is one site, in one vertical, in one country. Local dental search in Romania is not a competitive proxy for English-language SaaS or e-commerce.
  • No control group exists. The recovery overlaps with the work, but the site also had two years of decline behind it, and some regression toward its earlier baseline may have happened regardless. The 2024 level was ~31,000 sessions a year; 2026 is tracking near that, so part of what is labelled “recovery” is a return to a prior normal rather than net-new ground.
  • Google shipped core updates during the period. Their contribution cannot be separated from the content work with the data available.
  • August 2026 is a partial month (through the 30th) and is presented as such.
  • The contact_us event is deliberately excluded. It rose from 849 to 6,791 — far faster than sessions — which indicates a tracking implementation change rather than real behaviour. Citing it would have produced a much larger conversion headline and a false one.

Reproducing these numbers

Every figure on this page is recorded in the repository’s verified-facts register with the API call that produced it. If you have read access to the properties, the same queries return the same numbers. If a figure ever appears on this site without a query behind it, it is a bug and worth reporting.

That standard exists because it is the product. An audit that reports what someone hopes is true is not an audit.

Want the same analysis run on your site?

A MarketLens audit connects to your own Search Console and Analytics and reports what is actually there — quoted verbatim, with the query that produced every number.

Request an audit →