The Cleanup Pass
A batch of small, unrelated-looking issues that were quietly capping every score that matters, cleared one category at a time.
A performance audit isn't one number. It's four separate categories - Performance, Accessibility, Best Practices, and SEO - and a page can look completely fine while quietly failing several of them at once. This is the pass that took this site's own scores from a mixed bag to 100 across the board on desktop and 94 Performance with 100 on the rest on mobile, not from one large fix, but from clearing a list of small, specific ones.
None of the individual issues were dramatic. That's exactly why they were worth writing down - the kind of thing that's easy to skip past during a normal review, and easy to miss entirely without checking each category on its own terms.
Nothing was broken in an obvious sense. Pages loaded, forms submitted, nothing was visibly on fire. But a handful of things had accumulated across different pages and different points in time: images stretching or squishing at certain widths, some pages missing a landmark region entirely, interactive elements with a real clickable area smaller than they looked, alt text that was either absent or generic enough to be nearly useless, and a third-party embed that behaved differently in production than it did anywhere it had actually been tested.
Each of those is a small deduction on its own. Together, they were enough to keep every category short of full marks.
<main> landmark
wrapping their primary content at all, leaving assistive
technology with no reliable way to jump past the header and footer
to the actual page.
None of these showed up as a single failing test. Each one lived in a different category, which is exactly why a page can look fine at a glance and still leave points on the table in four different places at once.
The individual fixes were small. Getting through all of them required treating each category as its own pass rather than one general "cleanup," since the causes and the fixes for each one had almost nothing in common.
The stretched and squished images all traced back to the same
handful of causes - a missing object-fit rule, an
inline size override with no matching dimension, or a grid column
that didn't actually shrink below its content's minimum width.
Rather than patch each affected page individually, the fix went
into the shared stylesheet once, so any page using that same
pattern was covered by the same change.
Adding a missing <main> region isn't just
wrapping the whole page - it means correctly excluding the header,
navigation, and footer, and not adding a second one where a page
already had it. Every page got checked individually against that
rule rather than applying one template blindly across all of them.
The undersized click targets weren't a font-size or color problem - they were a box-sizing problem. An inline link wrapping a taller image or icon doesn't automatically expand to contain it, so the visible content looked correct while the actual clickable area was only as tall as the surrounding text. The fix was sizing and spacing only - padding, margin, and display changes - never touching layout or color.
A first pass confirmed every image had an alt attribute present. That's not the same as confirming it was correct. Several images shared identical, generic alt text that described the brand rather than what was actually different about each image - which meant the presence check alone would have missed the real problem entirely.
A third-party embed worked fine in local testing because local testing didn't send the same content security policy production does. Once that difference was identified, the fix was to stop depending on the external script entirely and recreate the small amount of styling it provided directly, so the result no longer depended on a policy exception staying in place.
Desktop landed at 100 Performance, 100 Accessibility, 100 Best Practices, and 100 SEO. Mobile landed at 94 Performance, with Accessibility, Best Practices, and SEO all also at 100.
The mobile Performance score is the one that stayed short of full marks, which tracks - mobile carries real constraints around processing power and connection speed that a fixed desktop environment doesn't, and closing that last gap further would mean trading against those constraints rather than fixing another bug.
None of these fixes were individually complex. What took the time was treating four different categories as four different problems instead of one general pass, and re-checking each category on its own terms rather than assuming a fix for one issue had incidentally covered another.
The bigger takeaway wasn't the specific score. It was that a presence check and a correctness check are different questions - an image having alt text isn't the same as that alt text being useful, and a script loading in one environment isn't the same as it loading in every environment that matters.
No. An automated audit checks what can be checked automatically - things like contrast, landmarks, alt text presence, and target sizing. It can't evaluate whether alt text is actually accurate, or whether a page makes sense navigated entirely by keyboard or screen reader. A high score is a strong signal, not a guarantee.
Local and preview environments often don't send the same security headers a production environment does. A content security policy that restricts which external scripts are allowed to run is a common example - it's invisible until someone checks production's actual response headers against what loaded locally.
Both. The specific issues here are fixed and shouldn't reappear on their own, but new pages and new content introduce new chances for the same categories of mistakes - a missing landmark on a new page, an image added without matching dimensions. The value of documenting the pass is having a checklist for the next one.
A short conversation is usually enough to tell whether there's a quick answer or something deeper worth tracing.