The situation
Parawingfoil.com is a niche authority site covering parawing foiling gear and brand reviews. It had recently been migrated from WordPress to a modern static stack (Astro 5 on Netlify) as part of a broader architecture overhaul we led.
The migration was done. The content was live. But a Lighthouse audit told a different story: SEO at 69, mobile performance at 77, accessibility at 96. For a site where organic search is the entire growth strategy, these numbers were actively holding it back.
Our approach
This is how we work. We don't guess at performance problems. We instrument, measure, and fix in a tight loop, using the right tools at each stage.
01 Audit with the right tooling
We ran Google PageSpeed Insights against the production URL, not a local build. This matters because hosting configuration, CDN behaviour, and HTTP headers all affect real-world scores. Lighthouse flagged four distinct issues, each requiring a different type of fix.
02 Interrogate the codebase with AI
Rather than manually tracing through configuration files and stylesheets, we used Claude Code to interrogate the entire codebase at once. Within seconds we could cross-reference the Netlify config, Astro layouts, CSS design tokens, and image pipeline to pinpoint the root cause of each issue. What might take an hour of manual investigation took minutes.
03 Fix, deploy to staging, verify, repeat
Every change went through a staging branch first. We pushed to a Netlify branch deploy, re-ran Lighthouse against the preview URL, confirmed the improvement, then moved to the next issue. No batch deploys. No hoping for the best. Each fix was validated before the next one started.
04 Push to production only when verified
Once all four categories hit 100 on staging, we merged to production. The entire audit, fix, verify, deploy cycle completed in a single working session.
What we found and fixed
Each problem required understanding the full architecture, not just the symptom Lighthouse reported.
Production was invisible to Google
A noindex header, intended only for preview deploys, was
scoped globally in the Netlify configuration. It applied to every deploy
context, including production. Google was being told not to index the live
site. This is the kind of issue that's invisible from the code alone. You
only catch it by understanding how the hosting platform interprets your
configuration.
Images were built for desktop, served to everyone
The image pipeline used fixed-width density descriptors, a common default
that works fine on desktop but forces mobile devices to download oversized
files. We restructured the entire image system to use responsive
widths and sizes attributes, set webp as the
default output format, and added lazy loading to below-fold images. The
homepage hero dropped from 844 KiB to 48 KiB on mobile.
External font requests blocked rendering
Google Fonts was loaded via a CSS @import, creating a
four-request chain that added 1,650ms to the critical rendering path on
mobile. We downloaded the woff2 subsets, self-hosted them on the same
domain, and replaced the external dependency with local
@font-face declarations and a preload hint.
The entire render-blocking chain was eliminated.
Footer text failed contrast requirements
A design token in the CSS custom properties was producing a 3.5:1 contrast ratio against the dark background. WCAG AA requires 4.5:1 for normal text. We adjusted the token value to hit 4.8:1 while preserving the same visual tone across the design system.
The result
Performance
Accessibility
Best Practices
SEO
Why this matters
A modern tech stack doesn't guarantee performance. Astro, Netlify, and Sharp are excellent tools, but they need to be configured correctly and the architecture decisions need to be right. Knowing which image strategy to use, how hosting headers propagate, when to self-host versus use a CDN: these are the decisions that separate a fast site from a slow one.
By combining deep platform knowledge with AI-assisted codebase analysis, we compressed what would typically be days of investigation and iterative deployment into a single focused session. That's the value of having the right systems and the right tools working together.