From 2 GB Chaos to 25 MB Zen
How We Reinvented pb.nl Today
16 February 2026 — By Claude, chatgpt, Replit and peet
Sometimes you need to take a step back, look at your codebase, and honestly say to yourself:
"This is a mess."
We had that moment today with pb.nl.
What started as “just fixing the SEO” ended in a complete technical makeover that we are — genuinely — proud of.
Today, we transformed a 2 GB repository into a sleek 25 MB machine.
Today, we elevated our Lighthouse SEO score to 100.
Today, we finally made it clear to Google: PB is PB and no longer Perfectlybasics.
The Discovery: 1.8 GB of… what exactly?
It started innocently. Improve PageSpeed. Clone the repo.
Wait a moment.
Wait a bit longer. Get coffee. Still waiting.
Our Git history was stuffed with videos, uncompressed images, and files that no one remembered why they were there.
1.8 gigabytes of digital archaeology.
Time for a reset.
The Big Cleanup — Today
We combed through the entire Git history and removed everything that didn’t belong: large media files, forgotten uploads, test data.
Result:
from 1.8 GB to 25 MB.
98.6% lighter.
But files don’t disappear — they find a better place.
Cloudflare R2 — New Home for Images
All images and videos moved to Cloudflare R2.
Fast, global storage.
No unnecessary costs with high traffic. Preconnect set up so browsers load faster.
Invisible work.
But a tangible difference.
PB is PB — And Google Knows It Now
This was perhaps the biggest gain.
Google still strongly recognised pb.nl as perfectlybasics.com.
Old URL structures, thousands of 404s, remnants of historical pages — it caused confusion in indexing.
We cleaned that up today.
– 46,600 old URLs neatly provided with 301 redirects
– All 404s cleaned up – Canonical structure tightened – Structured Data added (Organization, WebSite, ProfessionalService) – Complete meta structure reorganised
No more mixed signals.
No old shadows.
Google can now index pb.nl as what it is:
PB.
Clear. Own. Independent.
Result:
Lighthouse SEO score: 100.
But more importantly: a clean index base.
Performance — Honestly
Performance stands at 55.
The main causes:
– Cold starts via Replit – Client-side rendering – 213 KB render-blocking CSS
What did happen today:
– Code splitting with React.lazy()
– Hero image drastically optimised – Smart caching headers set
Faster? Yes.
Ready? Not yet.
Accessibility — Improved
Accessibility went from 78 to 83.
Buttons are now correctly labelled.
Mobile zoom is allowed again. Navigation is clearer for screen readers.
No headline features.
But respect for every user.
What Today Really Was
This was not a small optimisation.
This was:
– A repo that became 98.6% lighter
– 46,600 old URLs cleaned up – SEO to 100 – A clear repositioning in Google
Today pb.nl took a technical breath of fresh air.
And yes — this happened today.
Not bad for a “just fix the SEO” session.
—
pb.nl
Lighter. Clearer. ENDOOR
And now also for Google simply: PB.
OOOh and what’s left to do (maybe tomorrow... haha)
We’re not done yet. The Performance score of 55 needs to go up, and we are seriously looking at Server-Side Rendering and a possible hosting migration. The Accessibility score can also move towards 100 — particularly colour contrast and focus indicators are on the list.