This site cover

This site

My own site was already fast. I fixed how it is addressed, headed, pictured, and read, and the speed score did not go backwards.

Role
My own site.
Timeline
2026
Stack
Next.js, next/image
Status
Shipped

01 / The problem

This is my own site, and it was already fast. I still would not have handed a client the version from before this pass. The same pages could be opened on two hosts. Some pages had two top headings. The header text failed a contrast check. I wanted those fixed without giving the speed back.

02 / Decisions

  1. One address

    The apex host redirects to www, and each page names that www URL as the one to index. Shared links then point at one copy. The redirect in the app is permanent. On the live domain a Vercel redirect still runs first, so that setting has to match or it wins.

  2. Sitemap and robots on the same host

    The sitemap and the robots file both use the www origin. A crawler gets one list of pages, on the same address the pages already name.

  3. Pictures that fit the screen

    Covers and playground art go through next/image, which can send AVIF and a size that matches the screen. The hero on a case study is preloaded so it starts fetching immediately. The grain texture moved off a PNG onto AVIF, with WebP as the fallback. That PNG was 17KB for a 112px tile.

  4. One h1

    The page title is the only h1. If the article repeats that title, the repeat is dropped. Any other h1 in the body becomes an h2, so a screen reader and a search engine get one name for the page.

  5. Header text you can read

    The header was white text using difference blending. On the paper background that measured 1.17:1. At rest it is now solid ink on paper, and paper on the dark sections. The blend comes back only while the hero mask crosses the bar.

  6. Structured data that validates

    The Person JSON-LD validates with 0 errors. Its URL is the www site, the same address the pages already name.

03 / Results

  • Home, mobile Lighthouse: performance 98 to 99, accessibility 97 to 100, best practices 96 to 96, SEO 100 to 100.
  • The site was already fast. These are small moves, not a rescue from a slow score.
  • Best practices stays at 96 because Lighthouse flags third-party cookies on the Microsoft Learn badge images. Those images still load from learn.microsoft.com.
  • The Noola Impact page stayed at performance 96, accessibility 100, best practices 96, and SEO 100.