Website Speed Optimization: How to Reach a 90+ Google PageSpeed Score
Stuck with a red PageSpeed score on mobile? Learn what Google actually measures and a step-by-step plan for images, scripts, fonts, hosting and caching to push your website towards 90+.

You run your website through Google PageSpeed Insights, wait a few seconds, and see a red or orange number staring back at you. Maybe 38 on mobile. Maybe 54. Your desktop score looks respectable, but the mobile one feels like a report card you would rather not show anyone.
Here is the good news: a low score is rarely a mystery. In most business websites we audit, the same handful of issues cause the majority of slowness: oversized images, too many scripts, heavy themes and plugins, slow hosting and fonts loaded the wrong way. Fix those systematically and a 90+ mobile score becomes realistic for many sites, though not every site, and not always without trade-offs.
This guide explains what the PageSpeed score actually measures, why it matters for your business, and a practical, step-by-step approach to improving it, whether your site runs on WordPress, a custom PHP build or a modern JavaScript framework.
What Google PageSpeed Insights Actually Measures
PageSpeed Insights shows two kinds of information, and confusing them is the most common mistake business owners make.
Field data: what real users experience
If your site has enough traffic, the top section shows data from real Chrome users over the past 28 days, known as the Chrome User Experience Report. This is where your Core Web Vitals assessment comes from, and it is what Google uses as a ranking signal for page experience.
Lab data: a simulated test
The 0–100 performance score comes from Lighthouse, which loads your page in a simulated environment, typically a mid-range phone on a throttled mobile connection. It is a diagnostic tool. It tells you what to fix, but it can vary from run to run.
The key metrics explained
| Metric | What it means in plain language | Good target |
|---|---|---|
| Largest Contentful Paint (LCP) | How long until the main content, often the hero image or headline, appears | 2.5 seconds or less |
| Interaction to Next Paint (INP) | How quickly the page responds when someone taps or clicks | 200 milliseconds or less |
| Cumulative Layout Shift (CLS) | How much content jumps around while loading | 0.1 or less |
| First Contentful Paint (FCP) | When the first text or image appears | As fast as possible (lab metric) |
| Total Blocking Time (TBT) | How long heavy scripts block the page from responding | As low as possible (lab metric) |
LCP, INP and CLS are the Core Web Vitals. TBT is a lab stand-in for responsiveness and carries significant weight in the Lighthouse score, which is why heavy JavaScript hurts so much.
Why Website Speed Matters for Your Business
Speed is not a vanity metric. It affects people and revenue in very practical ways.
- Visitors leave slow sites. Many of your visitors are on mobile data, sometimes on patchy networks while travelling. If the page takes too long, they go back to Google and click a competitor.
- Ad spend is wasted. If you pay for clicks from Google or Meta ads and the landing page loads slowly, you pay for visitors who never see your offer.
- SEO is affected. Page experience, including Core Web Vitals, is one of many signals Google considers. Speed alone will not rank a weak page, but a slow site can hold back a strong one.
- Trust is affected. A fast, smooth site feels professional. A sluggish one feels outdated, even if the design looks good.
Step 1: Get a Proper Baseline
Before changing anything, measure properly. Test your homepage and your most important pages, such as service pages, product pages and landing pages used in ads, not just the homepage. Run each test three times and note the median score, because single runs fluctuate.
Record the mobile score, LCP element, TBT and CLS, plus the "Opportunities" and "Diagnostics" sections. These lists tell you where the time is going. Also check Google Search Console's Core Web Vitals report to see which groups of URLs are failing for real users.
Step 2: Fix Images, the Usual Biggest Culprit
On most business websites, images make up a large share of the page weight. A single uncompressed hero banner exported straight from a design tool can be several megabytes.
Resize and compress
Never upload images larger than they will be displayed. A hero image on mobile does not need to be 4000 pixels wide. Resize to sensible dimensions and compress.
Use modern formats
WebP and AVIF formats are usually much smaller than JPEG or PNG at similar visual quality. Most modern browsers support them, and many CMS platforms and plugins can convert automatically.
Serve responsive images
Use responsive image markup so phones receive smaller files than desktops. WordPress does much of this automatically if themes are built correctly.
Lazy-load below the fold, but not the hero
Images further down the page should load only when needed. However, never lazy-load the LCP image at the top. That delays the very element Google is timing. Instead, give it a high fetch priority so the browser loads it first.
Set width and height
Always specify image dimensions so the browser reserves space. This is one of the simplest ways to reduce layout shift.
Step 3: Tame JavaScript and CSS
Scripts are the main reason sites score well on desktop but poorly on mobile. Phones have less processing power, so heavy JavaScript blocks the page for longer.
- Audit third-party scripts. Chat widgets, multiple analytics tools, heatmaps, social feeds and old tracking pixels add up. Remove anything you no longer use.
- Defer non-critical scripts. Scripts that are not needed for the first view should load after the main content.
- Delay heavy widgets. Load chat widgets, video embeds and maps only when the user interacts or scrolls near them. A YouTube embed can be replaced with a lightweight thumbnail that loads the player on click.
- Remove unused CSS. Page builders and multipurpose themes often load styles for features you never use.
- Inline critical CSS. Delivering the small amount of CSS needed for the first screen directly in the HTML lets the page render sooner.
- Minify and combine carefully. Minification reduces file size. With modern HTTP/2 and HTTP/3, aggressive combining is less important than it used to be.
Step 4: Optimise Fonts
Custom fonts make brands look polished, but they can delay text from appearing and cause layout shifts.
- Limit the number of font families and weights. Each weight is a separate file.
- Host fonts locally where practical, or preconnect to the font provider.
- Use font-display: swap so text appears immediately in a fallback font.
- Preload the one or two font files used above the fold.
- Choose fallback fonts with similar proportions to reduce shifting when the custom font loads.
Step 5: Improve Server Response and Caching
If the server takes a long time to respond, every other optimisation starts late. This is measured as Time to First Byte (TTFB).
Choose appropriate hosting
Very cheap shared hosting, overloaded with thousands of sites, often produces slow and inconsistent response times. Quality hosting with modern PHP versions, adequate resources and servers located reasonably close to your audience makes a real difference for Indian visitors.
Use page caching
For WordPress and PHP sites, page caching serves pre-built HTML instead of generating each page on every visit. This often reduces server response dramatically.
Use a CDN
A content delivery network stores copies of your static files on servers in many locations, so visitors in Surat, Delhi or Dubai all get files from somewhere nearby.
Enable compression and browser caching
Gzip or Brotli compression reduces file sizes in transit, and proper cache headers mean returning visitors do not download the same files again.
Step 6: Platform-Specific Tips
WordPress sites
The most common WordPress problems are heavy multipurpose themes, too many plugins and page builders that generate bloated code. Audit plugins ruthlessly, keep PHP and WordPress updated, use a well-configured caching plugin and consider a lightweight theme for new builds. Also clean the database of old revisions and transient data periodically.
Custom PHP and static sites
Custom builds have an advantage: you control every line. Keep templates lean, load only the CSS and JS each page needs, cache database queries and serve static assets with long cache lifetimes.
JavaScript frameworks
Single-page apps can score poorly if all content is rendered in the browser. Server-side rendering or static generation, code splitting and careful hydration help significantly.
Speed is easiest to achieve when it is part of the build from day one. Our web development process treats performance as a requirement, not an afterthought.
A Quick Speed Optimisation Checklist
| Area | Check |
|---|---|
| Images | Resized, compressed, WebP/AVIF, dimensions set, hero not lazy-loaded |
| JavaScript | Unused scripts removed, non-critical deferred, widgets delayed |
| CSS | Unused CSS reduced, critical CSS inlined, files minified |
| Fonts | Few weights, font-display swap, key files preloaded |
| Server | Quality hosting, modern PHP, page caching, compression enabled |
| Delivery | CDN configured, browser caching headers set |
| Layout stability | Space reserved for images, ads and embeds |
| Monitoring | Search Console Core Web Vitals reviewed monthly |
Frequently Asked Questions
Is a 100 score necessary?
No. A score in the 90s is excellent, and chasing the last few points can mean removing features that genuinely help your business. Focus on passing Core Web Vitals for real users and keeping the experience fast.
Why does my score change every time I test?
Lab tests are affected by server load, network conditions and third-party scripts at the moment of testing. Run several tests and use the median, and rely on field data for the real picture.
Why is my desktop score high but mobile low?
The mobile test simulates a slower device and network, so heavy JavaScript and large images hurt much more. Mobile is the score to prioritise, since most visitors browse on phones.
Will a faster website automatically rank higher?
Not automatically. Content relevance and quality matter most. However, speed improves user experience, supports page experience signals and can improve conversions from the traffic you already get.
Can speed optimisation break my website?
Aggressive changes, especially script deferral and CSS removal, can break sliders, forms or menus. Always test on a staging copy, take a full backup and check key pages and forms after each change.
Speed Is a Habit, Not a One-Time Fix
Reaching a 90+ PageSpeed score is usually about disciplined basics: lighter images, fewer and smarter scripts, efficient fonts, good hosting and proper caching. Keeping it there means checking performance whenever you add new plugins, banners or tracking tools.
If your website feels slow or your scores are stuck in the red, our website support and maintenance team can audit, optimise and monitor it for you. Get in touch with Lionic Digital and let us help your site load as fast as your business moves.


