1. Measure before touching
Sixteen months of Search Console and Analytics pulled by script, the speed of five key pages, and the list of pages that must never break, frozen before any work. The same command measures before, during and after.
Migration · SEO audit, topic clusters and Astro
A digital agency of about twenty people wanted to leave an end-of-life Drupal 7 without losing the traffic that brings in its clients. We measured the existing site, redrew its topic clusters, migrated every page to Astro, reworked the content and switched the site over with a rollback ready.

A digital agency of about twenty people, kept anonymous because it sells SEO and web design itself
0.9 MB
per page instead of 2.9 MB
Median of 5 pages, Lighthouse measurement
15
requests per page instead of 83
Fewer third-party scripts to load
144
pages reworked then reviewed
Articles and service pages
1,080
internal links added in the text
And 84 dead or misleading links removed
Operational figures taken from the project's own tools. We publish no sales or traffic figures without their owner's consent.
The company preferred to stay anonymous: it offers SEO and web design services to its own clients.
Its site ran on Drupal 7, whose official support has ended, and brought in most of its enquiries through search. Sixteen months of Search Console showed two things: traffic was slowly declining, and fifty pages made almost all the clicks. Breaking them during the migration meant losing clients.
The site was not slow, it was heavy: nearly 3 MB and more than 80 requests per page, internal links set by the menu rather than by the text, and service pages that hardly any article recommended.
Sixteen months of Search Console and Analytics pulled by script, the speed of five key pages, and the list of pages that must never break, frozen before any work. The same command measures before, during and after.
A graph of every page and its written links showed starved service pages, star-shaped glossaries and a menu that flattened the hierarchy. It produced a list of 89 links to add.
Every page rebuilt as a static site on the same URLs. A test bench replays each old URL in its four forms, and 54 historical URLs redirect in a single hop.
A plan per page sets its cluster, its query and the service it supports, with no two pages targeting the same query. Agents work in parallel with a log per page, followed by a coordination review.
41,240 internal links verified, no figure added without a source, no unexplained loss of text. Each check is first tested with a deliberate error, because a check that never finds anything can lie.
The client approves page by page in an online review tool, then gives a written go. The switch takes one command, so does the rollback, and the old site stays available behind a password.
The performance figures compare the live site and the new version on staging, on the same day with the same tools. Staging was served without compression, which puts it at a disadvantage: the real gap is at least this one. Traffic and rankings are measured again four weeks after the switch.
Lighthouse on mobile, median of five key pages, measured on 4 September 2026.
| Measure | Before | After |
|---|---|---|
| Mobile score, good connection | 98 | 100 |
| Mobile score, slow network and small phone | 57 | 76 |
| Main content displayed, slow network | 11.1 s | 4.9 s |
| Desktop score, home page | 84 | 98 |
| Weight transferred per page | 2.9 MB | 0.9 MB |
| Requests per page | 83 | 15 |
Ten tracked pages, measured on 4 September 2026.
| Measure | Before | After |
|---|---|---|
| Pages with several H1 headings | 2 of 10 | 0 of 10 |
| Pages with a sharing image | 1 of 10 | 9 of 10 |
| Structured data blocks | 2 | 16 |
| Images without declared dimensions | 41 | 9 |
Links written in the page text, menu and footer excluded, measured on 28 August and 17 September 2026.
| Measure | Before | After |
|---|---|---|
| Editorial links received, whole site | 1,635 | 2,175 |
| Links from articles to service pages | 185 | 314 |
| Links from articles to case studies | 28 | 75 |
| Articles with no link to a service | 33 | 2 |
| Pages that answer in their first lines | 50 | 134 |
| Articles with a FAQ | 5 | 97 |
Measured again four weeks after the switch of 16 October 2026, with the same tools as the baseline.
| Measure | Before | After |
|---|---|---|
| Search Console clicks and rankings | 16 months recorded | Coming |
| Speed experienced by visitors (Core Web Vitals) | Recorded | Coming |
| PageSpeed Insights scores of the live site | Recorded | Coming |



The first three images are our working tools, as the client saw them: anything that could identify them is blurred. The last one shows our own site.
Late August 2026
Audit, baseline, pages to protect, cluster map
Early September
Astro foundation and side-by-side measurement
Mid-September
Content reworked and internal links rebuilt
October
Client review, forms, test from abroad
16 October 2026
Switch, URL checks, sitemap submitted
Mid-November
Traffic and rankings measured again
Real estate · Portal, CRM and automations
Read the case study
E-commerce · Takeover and turnaround
Read the case study
App · Web, iOS and Android
Read the case study
Media · Automated content production
Read the case study
We start by checking together that it is the right workstream, and what it would change for you.