Files
astro-website/openspec/changes/lighthouse-remediation/tasks.md
Santhosh Janardhanan 70710239c7
Some checks failed
ci / site (push) Has been cancelled
publish-image / publish (push) Has been cancelled
Theming done
2026-02-10 20:10:06 -05:00

2.6 KiB

1. Baseline And Repro

  • 1.1 Run Lighthouse from a clean Chrome profile (no extensions) for both Mobile and Desktop and save reports (JSON)
  • 1.2 Record current failing audits and their affected selectors/URLs (from the Lighthouse "details" tables)

2. Accessibility Contrast

  • 2.1 Adjust global CSS tokens/styles so .muted card metadata meets 4.5:1 contrast on cards
  • 2.2 Adjust pill/chip background + text colors to meet 4.5:1 contrast (e.g., .pill and source variants)
  • 2.3 Re-run Lighthouse accessibility category and confirm color-contrast passes
  • 3.1 Update site/public/robots.txt to use an absolute sitemap URL (e.g., Sitemap: https://santhoshj.com/sitemap-index.xml)
  • 3.2 Fix non-crawlable anchors in the media modal by ensuring anchors always have href in initial HTML or switching to buttons until navigable
  • 3.3 Re-run Lighthouse SEO category and confirm robots-txt and crawlable-anchors pass

4. CSP / Best Practices

  • 4.1 Identify the exact CSP-related DevTools Issue message (Chrome DevTools → Issues) and capture the text
  • 4.2 Implement a CSP baseline at the reverse proxy/origin that allows required resources (self + Umami + image/frame origins) and avoids permissive wildcards
  • 4.3 Reduce inline scripts that force unsafe-inline (move registration / modal scripts to external files or use nonce/hash approach)
  • 4.4 Re-run Lighthouse Best Practices and confirm inspector-issues passes

5. Performance: Fonts, CSS/JS, And Images

  • 5.1 Remove render-blocking third-party font stylesheet by self-hosting Manrope and loading via @font-face
  • 5.2 Ensure production CSS is minified (move global CSS into the build pipeline or add a build minification step)
  • 5.3 Reduce unused CSS on the homepage (prune unused selectors or split critical vs non-critical styles)
  • 5.4 Reduce unused JS on the homepage (remove unnecessary scripts; ensure analytics is async/defer; avoid extra inline code)
  • 5.5 Improve thumbnail image delivery (use responsive srcset / resized sources where feasible; avoid oversized podcast covers)
  • 5.6 Improve cache lifetimes for first-party static assets (fingerprint + immutable cache for build assets; revalidate non-fingerprinted)
  • 5.7 Re-run Lighthouse Performance (mobile + desktop) and confirm 100 score

6. Verification

  • 6.1 Run npm run build and ensure build succeeds
  • 6.2 Smoke test site locally (npm run preview) including modal, analytics script load, and service worker registration
  • 6.3 Deploy and confirm production Lighthouse scores are 100/100/100/100