Performance problems are often cumulative. One oversized hero image, several unused libraries and render-blocking scripts may each seem harmless until they are combined on a mobile connection.
Resize images close to the dimensions in which they are displayed and use modern formats where practical. Do not send a 4000-pixel photograph to a phone when the rendered image is a fraction of that size.
Hero images deserve special attention because they can affect Largest Contentful Paint. The primary visible hero should normally not be lazy-loaded.
Look at the Network panel or a Lighthouse report and sort files by transferred size. Fix the largest avoidable downloads before obsessing over tiny files.
Shared stylesheets are easier to cache and maintain than repeated inline rules. Remove old libraries that are no longer used, especially after a redesign.
JavaScript should add behaviour that HTML and CSS cannot provide cleanly. A navigation menu may need a small script on mobile; a simple content page usually does not need a large framework.
Smaller code is not only faster. It reduces the number of dependencies that can break or become security liabilities later.
A site can feel instant on a developer's computer and still perform poorly on a mid-range phone. Test responsive layouts, image loading, menu behaviour and layout shifts under mobile conditions.
Core Web Vitals are useful diagnostics, but the human experience matters too. A page that scores well but hides navigation or renders unreadable text has not succeeded.
Check performance after major image changes, new third-party scripts, tracking additions and design-library upgrades. These are common points where a previously fast site becomes heavier.
Browser caching, compression and server response time matter once the page itself is reasonably efficient. Do not use hosting configuration to compensate for unnecessarily huge assets.
When changing server rules, keep a known-good configuration available. A performance tweak is not an improvement if it causes redirect loops or a 500 error.