A read-only audit that measured every page, click and redirect.
Built for Carlos Ceramics Dental Lab before its website was rebuilt. Nothing on the live site was changed to make it.
Websites, at work.
- Built
- A set of scripts that crawl, photograph, press, measure and report on a website
- Stack
- PythonNode.jsHeadless ChromeLighthousePillow
- Timeline
- October 2 to 4, 2026
- Status
- Delivered. Reused to measure the rebuild
- Scale
- Every page of the site, plus 8 other labs
"Update the website" is not a brief.

The lab's owner wanted the website updated. Before anyone could say what to change, someone had to know what was there: how many pages, which old addresses still mattered, how heavy each page was on a phone, what every button did.
Guessing would have meant a redesign that looked better and broke things. So the first job was a measurement, done without touching the live site.
Fourteen small scripts in four stages.
Each script does one job and writes its results to a file. The report is built only from those files, so every number in it can be traced to a measurement.
Every address
The sitemap and the site's public content API list the pages. Then every address is requested to record what the server answers and where each redirect lands.
Every page, every width
Chrome loads each page at desktop, tablet, phone and 1100 px, scrolls it and stitches full-length pictures. Then it presses every menu, tab and pop-up, and loads again with JavaScript off and reduced motion on.
Weight, links, speed
Totals per page, every link checked, every picture's real size against the size it is shown at, and Google's Lighthouse test.
One report
The 13 menu pages are cut into sections with problems marked, and the HTML report and PDF are built from the measured files plus written notes.
What the audit will never do.
It behaves like a careful visitor, not a tester with a hammer.
| Never | Why |
|---|---|
| Type into a field | No test data lands in the business's inbox or database |
| Submit a form | No fake enquiries, no emails sent on the owner's behalf |
| Follow a link off the site | The audit stays on the site it was asked to measure |
| Change anything | The live site keeps working exactly as before |
| Keep a secret it finds | An exposed key is masked before any file is saved |
What the owner received.
An HTML document to explore, and a 37-page before-and-after PDF to read in one sitting.
- The verdict and the scores
- A map of the whole site
- Every page, full length, on a laptop and a phone
- Menus and clicks: what each one does
- Addresses and redirects
- Pictures and video: real size, shown size, weight
- Animation, proportions and layout
- Speed
- Credibility: what a visitor can verify
- Competitors: the same capture for 8 other labs
- The direction for the new site
- Every change, in one list
The baseline the rebuild had to beat.
| Measured | Old site | What it meant |
|---|---|---|
| Addresses in use | 88 | Every one needs a home on the new site, or links break |
| Home page weight | 8.1 MB | Slow on a phone, on any connection |
| Home page requests | 134 | Too many separate files for one page |
| Phone speed score | 19 of 100 | Google's own test, on a phone profile |
| Forms | Some asked for patient details | A lab website has no reason to hold them |
| A key in the page source | Exposed | Masked in the audit, flagged for the owner |
One command after the captures.

- Captures firstThe desktop and phone captures run, then one finishing script runs everything else in order: stitching, close-ups, phone clicks, scripts off, other widths, Lighthouse, totals, links, pictures and the report.
- Check the connectionA full pass downloads several hundred megabytes from the site, so it is not run on a phone hotspot.
- Notes kept apart from numbersWritten judgements live in their own files. Everything measured comes from the data folder, so a rerun updates the numbers without touching the opinions.
- Run again afterwardsThe same tools measured the rebuilt site, which is how the before-and-after figures were made.
A rebuild with a list, not a hunch.
The audit's 114 changes became the rebuild's checklist. By October 6, 71 were done. The redirect map came straight from its address list, and the new site measured with the same tools went from a phone speed score of 19 to 92. See the rebuild.

The same check-up works on any website.
Nothing in the scripts is about dental labs. Point them at a restaurant's site before a menu redesign, a law firm's before a move to a new platform, an online store's before a theme change, a nonprofit's before a donation drive. You get the same report, about your site.
What the audit led to

A WordPress rebuild that keeps all 88 old links
Carlos Ceramics Dental Lab, replacing a slow site dentists used every week
19 to 92phone speed score

A bilingual site where customers build their own print quote
Conception Design, a sign, print and apparel shop in North Miami Beach
EN / ESevery page, both languages

A CRM sync that wrote 3,244 fields and overwrote none
Carlos Ceramics Dental Lab, syncing its practice history into Go High Level
0existing values overwritten
Do you know what your site weighs on a phone?
Send us the address. On a free call we will tell you what a full measurement would cover.
