Performance
Build for the slow network first.
Fast 5G does not rescue an unnecessarily heavy page. A strong product should remain understandable and usable when bandwidth and latency are bad.
HTML before JavaScript
Render meaningful content on the server whenever possible. Do not make the customer download a large client bundle before seeing the product, article, documentation or checkout shell. Use JavaScript for interaction, not as a requirement for basic reading.
Give every image a budget
Use AVIF or WebP when supported, responsive srcset/sizes, correct dimensions and lazy loading below the fold. A decorative image should never cost more than the information it communicates. Product thumbnails should be generated at the size they are actually displayed.
Keep fonts disciplined
Use one well-chosen UI family or a system font stack where possible. Avoid loading many families and unused weights. Preload only the font files needed above the fold and use font-display so text never waits invisibly.
Cache static assets aggressively
Versioned CSS, JavaScript, icons and optimized images can use long browser-cache lifetimes. HTML and authenticated responses need more careful rules. Enable Brotli or gzip at the web server/CDN for compressible text assets.
Protect database work
Index frequently queried columns, eager-load relationships to avoid N+1 queries, cache expensive public catalogue queries and avoid synchronous database writes merely because a bot opened a page.
Load third parties after the page
Analytics, chat widgets, ads and embeds should not block the main content. Delay non-critical scripts until load/idle and remove tools that do not provide measurable value.
Release test
Throttle before you call it fast.
✓Test a cold first visit with browser cache disabled.
✓Use a mobile viewport and a throttled slow network profile.
✓Check LCP, INP and CLS, not only a single speed score.
✓Inspect transferred bytes and identify the largest blocking resources.
✓Test cPanel/shared-hosting TTFB separately from frontend transfer time.
✓Repeat after enabling production caching/compression.