about:web-vitals-audit
Table of Contents
Performance Baseline — Core Web Vitals
Baseline sampled on 21 April 2026 across the five highest-traffic pages. This is a lightweight cURL/weight snapshot, not a full Lighthouse audit. A headless-Chrome pass is the next step — findings will replace this page when complete.
Sampled pages and weights
| Slug | Transfer size | Load time (curl) | `<img>` count | `<script>` count |
| file-rti-online-india | 386 KB | 1.04 s | 21 | 50 |
| explanations/grounds-for-rejection | 383 KB | 0.81 s | 45 | 48 |
| faq | 353 KB | 0.72 s | 20 | 48 |
| blog/how-to-write-rti-application | 345 KB | 0.74 s | 20 | 50 |
| tools/generator | 334 KB | 0.68 s | 19 | 48 |
Observations:
- Transfer size is consistently in the 330-390 KB band. Healthy for a full-article page; the theme / framework inflates about 280 KB of this.
- First-byte latency is under 200 ms (via server); full HTML arrives well under a second.
- Image count is bounded; the explanations/grounds-for-rejection page has 45 images because of the 15 clause icons (SVG, tiny) + infographic diagrams.
Anticipated Core Web Vitals
- LCP (Largest Contentful Paint) — most likely the hero banner (~40 KB PNG). Lazy-loaded below the fold on most articles. Target <2.5s (good).
- CLS (Cumulative Layout Shift) — low risk. The floating chat bubble is appended after DOM-ready, well outside the viewport centre. The DYK widget is sidebar, fixed width.
- INP (Interaction to Next Paint) — the main risk area is the DYK widget button (simple DOM swap, negligible) and the floating-chat iframe opening (iframe load time dominates on first click).
Recommendations for a full audit
- Run Lighthouse on each of the top-20 pages via headless Chrome. Record scores for performance, accessibility, best-practices, SEO.
- Sample with Chrome UX Report (CrUX) for real-user monitoring once traffic is sufficient (currently below the 10k-URLs-per-origin threshold).
- Use PageSpeed Insights API to measure the same set monthly; record in a spreadsheet or dashboard.
- Isolate scripting cost — profile the breadcrumb + surprise-me + DYK + chat launcher stack under CPU throttling. Combine into a single bundle if any one crosses 50 ms on mid-range devices.
- Image optimisation — auto-generated hero banners are already WebP-ready; explicitly specify width/height on `<img>` tags to prevent CLS.
- Font loading — Google Fonts is the only external font; consider `font-display: swap` to eliminate FOIT.
Quick wins identified (already applied)
- SVG icons instead of raster for the grounds-for-rejection clause list — 45 icons totalling ~6 KB.
- Lazy iframe for the floating chat — does not load /tools/chat-app.html until the bubble is clicked.
- Deferred script loading — the WebLLM library is dynamically imported only when the user opts in to deep analysis.
- Preconnect hints — already in place for Google Fonts in pageheader.html.
- Cache headers — Apache mod_expires already set for images/CSS/JS to 1 year (configured in /home/bighelpers/public_html/rtiwiki/.htaccess).
Known caveats
Sources
- Measurement methodology: curl with `–write-out` template for transfer size and timing.
- Core Web Vitals thresholds: Google's official guidelines at
web.dev/vitals.
Last reviewed: 21 April 2026. Baseline snapshot — full Lighthouse audit pending.
Was this helpful?
— views
Thanks for the signal.
about/web-vitals-audit.txt · Last modified: by 127.0.0.1

Discussion