Get a Free Quote

How to Improve Website Speed and Core Web Vitals

Learning how to improve website speed is one of the highest return things you can do for a site, because a faster page keeps more visitors, converts more of them into customers, and helps you rank better in search. Slow pages quietly cost you business every day, and most owners never see it happening.

This guide covers the whole picture in plain language, from the Core Web Vitals that Google measures to the specific fixes that move them: images, hosting, caching, scripts, fonts, and mobile performance. You do not need to be a developer to make real progress. Many of the biggest wins take an afternoon.

By the end you will have a clear, ordered checklist you can follow yourself, plus a sense of where professional help is worth it.

Why Website Speed Matters

Website speed is one of those things people ignore until it costs them money. A page that loads in one second feels effortless. The same page loading in six seconds feels broken, and visitors do not wait around to find out why. They hit the back button and go to a competitor whose site opened before they lost patience.

If you want to know how to improve website speed, start by accepting the plain truth behind it. Speed is not a vanity metric. It affects how many people stay, how many buy, and how well you rank in search. Google has said for years that page experience is part of how it ranks results, and the loading behaviour of your pages sits right at the centre of that.

Think about your own habits. When a shopping page stalls with a spinner, you assume the store is amateur. When a form takes ages to appear, you doubt the whole company. Speed is trust. People read it in the first two seconds and rarely change their minds.

There is a business case here that is easy to understand. Slow pages lose sales. Faster pages keep more of the people who arrive, which means every dollar you spend on ads or content works harder. You are not just chasing a green score in a testing tool. You are keeping the customers you already paid to attract.

Bounce rate against load time (illustrative) % 1s 9% 2s 17% 3s 32% 4s 45% 5s 58% 6s 66%
Illustrative pattern only. As load time climbs, the share of visitors who leave before the page is usable tends to rise sharply. The exact numbers vary by site and audience.

The chart above is illustrative, not a measurement of your site, but the shape of it holds up in study after study. Every extra second of delay pushes more people out the door, and the damage grows faster the longer the wait. Getting from four seconds to two is worth far more than getting from two seconds to one, though both help.

There is a search angle too. Google uses real user speed data from Chrome to judge how your pages perform in the wild. Two sites with similar content can rank differently when one loads quickly for real visitors and the other crawls. Speed will not save weak content, but it can decide close contests, and most of your competitive contests are close.

Thinking about building a website?Get a free consultation and a fixed-scope quote. A senior engineer replies within 24 hours. No obligation.
Get a Free Quote

Core Web Vitals Explained

Core Web Vitals are the three measurements Google uses to describe how a page feels to a real person. They are not the only signals that matter, but they are the ones Google chose to put front and centre, so they are worth learning by name. Each one captures a different frustration a visitor might feel.

Largest Contentful Paint (LCP)

LCP measures how long it takes for the biggest visible thing on the screen to load. Usually that is a hero image, a heading, or a large block of text. It answers a simple question the visitor is asking without words: has the main content shown up yet? A good LCP is 2.5 seconds or faster, measured at the point where most of your real visitors sit.

Interaction to Next Paint (INP)

INP measures responsiveness. When someone taps a button or opens a menu, how long before the page reacts? A slow response makes a site feel stuck, like tapping a lift button that does nothing. INP replaced the older First Input Delay measurement because it looks at every interaction across the whole visit, not just the first one. A good INP is 200 milliseconds or less.

Cumulative Layout Shift (CLS)

CLS measures visual stability. You have felt bad CLS when you go to tap a link and an ad loads above it, shoving the page down so you tap the wrong thing. That jump is layout shift, and it is maddening. A good CLS score is 0.1 or less, which in plain terms means the page settles quickly and stays put.

Core Web Vitals thresholds LCP 2.5s or less up to 4s over 4s INP 200ms or less up to 500ms over 500ms CLS 0.1 or less up to 0.25 over 0.25 Good Needs work Poor
The thresholds Google uses to sort each Core Web Vital into good, needs improvement, or poor. Aim to keep all three in the good band for most of your real visitors.

Here is the part people miss. Google grades you on these numbers as experienced by real visitors, not on a single test from your fast office laptop. It collects that data from Chrome users and reports it as field data. So the goal is not a perfect score in one lab test. The goal is fast, stable, responsive pages for the phones and connections your actual audience uses.

All three vitals connect back to the same techniques you will read below. Big images hurt LCP. Heavy JavaScript hurts INP. Missing image dimensions and injected content hurt CLS. Improve the underlying causes and all three numbers move together, which is why a focused speed project pays off across the board. If you are building a new site and want speed baked in from the start, our guide on how to make a website covers the foundations that make later tuning easier.

How to Measure Your Speed

You cannot fix what you cannot see. Before changing anything, measure your current speed so you have a starting line and can prove your work later. Guessing leads to hours spent on the wrong problem. A few minutes with the right tools points you at what actually matters.

Free tools worth using

  • PageSpeed Insights: paste a URL and it gives you both lab data and real world field data, plus a prioritised list of fixes. It is the single best free starting point.
  • Lighthouse: built into Chrome DevTools, it runs a full audit on demand and is great for testing changes before they go live.
  • Chrome DevTools Performance panel: records exactly what happens as a page loads, so you can see which files block rendering and which scripts eat the main thread.
  • WebPageTest: lets you test from different locations, devices, and connection speeds, which matters because your visitors are not all on fast fibre.

Learn the difference between lab data and field data because it saves a lot of confusion. Lab data comes from a controlled test on demand, useful for debugging. Field data comes from real visitors over the past month, which is what Google actually ranks on. A page can score well in the lab and still fail in the field if your real audience uses older phones on patchy mobile networks.

What to record before you start

Write down your LCP, INP, and CLS for your most important pages, usually the home page, a key landing page, and a product or service page. Note the total page weight in kilobytes and the number of requests. These few numbers become your before picture. When you finish the work, you rerun the same tests and see the after picture, which makes the value of the project obvious to you and anyone paying for it.

Not sure where your site stands?We will run a full speed and Core Web Vitals audit and show you exactly what is holding your pages back. It is free and there is no pressure.
Get my free speed audit

What Actually Slows a Site Down

Most slow websites share the same handful of causes. Once you know them, a confusing performance report turns into a clear to do list. The trick is to spend your effort where the weight actually sits, not on tiny tweaks that shave off milliseconds while a two megabyte image sits untouched at the top of the page.

Typical page weight by resource type (illustrative) Images 46% JavaScript 23% Fonts 12% CSS 9% Other 10%
Illustrative breakdown of what fills up a typical page. Images and JavaScript usually dominate, which is why they are the first two places to look when a site is slow.

The chart shows the usual suspects. Images and JavaScript together often make up two thirds or more of what a browser has to download and process. That is good news, because it means a small number of fixes to those two areas can produce most of the improvement. You do not have to fix everything at once. You have to fix the heavy things first.

The common causes in plain terms

  • Huge images: photos exported straight from a camera or a design tool, uploaded at full size, then squeezed into a small space by the browser.
  • Too much JavaScript: heavy frameworks, sliders, chat widgets, and analytics stacked on top of each other, each one adding work for the browser.
  • Slow hosting: a cheap shared server that takes a long time to send the first byte of the page.
  • No caching: the server rebuilds every page from scratch for every visitor instead of serving a ready made copy.
  • Render blocking files: styles and scripts in the head that the browser must fully download before it can show anything.
  • Third party bloat: tracking pixels, ad tags, embedded videos, and social widgets that call out to other servers you do not control.

Work through this list in order of weight and you will see gains quickly. The next sections take each cause and turn it into concrete steps you can follow or hand to a developer.

Ready to bring your web project to life?Get a free consultation and a fixed-scope quote. A senior engineer replies within 24 hours. No obligation.
Get a Free Quote

Optimize Images and Video

Images are almost always the biggest opportunity, so start here. A single unoptimised hero image can weigh more than the rest of the page combined. Fix your images and you often cut load time in half without touching a line of code. This is the highest return work in the whole project.

Compress every image

Compression removes data the eye cannot see. A photo saved at full quality and the same photo at a sensible compression level look identical on screen, but one is a fraction of the size. Run your images through a compression tool before uploading, or use a platform that compresses automatically. Aim to get most photos well under 200 kilobytes, and hero images under 300, without visible loss.

Use modern formats

Formats like WebP and AVIF pack the same image into far fewer bytes than the older JPEG and PNG formats. Modern browsers all support WebP, and most support AVIF. Switching your images over is one of the easiest large wins available. Many content platforms will serve these formats for you once you turn the feature on.

Serve the right size

Never send a 3000 pixel wide image to a phone that shows it 400 pixels wide. Use responsive images so the browser picks a size that suits the screen. In HTML that means the srcset attribute, which lists several versions and lets the browser choose. Most builders and content systems handle this automatically once you upload a large original, but it is worth checking that they do.

Load time before and after image work (illustrative) seconds Before 5.4s Compressed 2.7s + WebP 1.8s
Illustrative example of the gains from image work. Compressing large images and switching to a modern format often removes the single biggest chunk of load time on a page.

Lazy load below the fold

Images far down the page do not need to load until the visitor scrolls near them. Native lazy loading with the loading attribute set to lazy tells the browser to wait, so the first screen appears faster. One caution: do not lazy load your main hero image, because that is your LCP element and you want it to load as early as possible.

Do not forget video

An autoplaying background video can wreck performance on mobile. If you must use video, host it on a proper video service rather than loading a raw file, avoid autoplay on phones, and use a lightweight preview image that only loads the real video when someone clicks. Better still, ask whether the video earns its weight at all. For image heavy stores, our notes on ecommerce website development go deeper on handling large product catalogues without slowing the site to a crawl.

Improve Server Response Time

Before a browser can render anything, it has to receive the first byte of the page from your server. That delay is called Time to First Byte, and if it is slow, nothing else you do can make the page feel fast. You are optimising a race that starts late. This is where hosting quality shows up, and it is often the invisible reason a well built site still feels sluggish.

Pick hosting that fits your site

The cheapest shared hosting puts hundreds of sites on one server, and when a neighbour gets busy, your site slows down. As traffic grows, moving to better hosting, a managed platform, or a virtual private server pays for itself in speed and reliability. You are not buying bragging rights, you are buying a server that answers quickly under load.

Cache pages on the server

Many sites, especially those on content systems, rebuild each page from a database every single time someone visits. Page caching stores a ready made copy and hands it out instantly, skipping the rebuild. This one change can turn a sluggish first byte into a near instant one. Most platforms offer caching through a setting or a plugin, and turning it on is often the fastest win available on the server side.

Keep the database and code lean

On dynamic sites, a bloated database and inefficient code drag down every request. Regular cleanup of old data, removing plugins you no longer use, and keeping software updated all help the server respond faster. If your site is genuinely slow at the server level despite good hosting, this is where a developer earns their keep by finding the queries and scripts that hold everything up.

Server side leverWhat it fixesEffort
Page cachingSlow first byte on dynamic pagesLow
Better hosting planSlow server under loadMedium
Database cleanupSlow queries on large sitesMedium
Content delivery networkSlow delivery to distant visitorsLow
Server level compressionLarge text file transfersLow

Notice how many of the high value fixes are low effort. Page caching, a content delivery network, and compression can usually be switched on in an afternoon and produce results you can measure the same day. Save the medium effort work for after you have collected those quick wins.

Fix Render Blocking CSS and JavaScript

When a browser meets a stylesheet or script in the head of your page, it often stops and waits for that file before it draws anything. Those are render blocking resources, and they are a common reason a page sits blank for a beat before it appears. Clearing this blockage is one of the more technical parts of speed work, but the ideas behind it are simple.

Trim and combine your CSS

Most sites ship far more CSS than any single page uses, because the stylesheet covers the whole site. Removing unused CSS and keeping files small means the browser downloads less before it can paint. A useful technique is to inline the small amount of CSS needed for the first screen, so the top of the page renders immediately while the rest of the styles load behind it.

Defer JavaScript that is not urgent

Very little JavaScript needs to run before the page appears. Add the defer or async attribute to scripts so the browser can keep drawing the page instead of stopping to fetch and run code. Analytics, chat widgets, and animation libraries almost never need to block rendering, yet they often do because they were pasted into the head without a second thought.

Ship less JavaScript overall

The best optimisation is deletion. Every widget, slider, and tracking script you remove is code the browser no longer downloads, parses, and runs. Audit what is actually on your pages. You will often find scripts left over from an old campaign, two analytics tools doing the same job, or a heavy library used for one small effect that plain CSS could handle. Heavy JavaScript is the usual reason INP is poor, because the browser is too busy running code to respond when someone taps.

Main thread busy time (illustrative) ms busy Heavy JS 1400 Trimmed JS 520
Illustrative view of main thread work. Cutting and deferring scripts frees the browser to respond to taps and clicks, which is what the INP measurement rewards.

If this section feels over your head, that is normal. Render blocking and main thread work are where do it yourself speed tuning usually hits its limit, and where a developer makes quick progress. There is no shame in handing off the technical layer once you have picked the low effort wins yourself.

Want a clear plan and price for your website?Get a free consultation and a fixed-scope quote. A senior engineer replies within 24 hours. No obligation.
Get a Free Quote

Use Caching and a CDN

Caching means keeping a ready made copy of something so you do not have to make it again. It happens in several places, and using all of them together is one of the most reliable ways to make a site feel instant, especially for repeat visitors and people far from your server.

Browser caching

When someone visits your site, their browser can store your logo, stylesheets, and scripts locally. On the next page or the next visit, those files load from their device instead of the network, which is close to instant. You control this with cache headers that tell the browser how long to keep each file. Set long lifetimes for things that rarely change, like your logo and fonts.

Page caching

As covered above, page caching stores the finished HTML so the server does not rebuild it every time. For most content sites this is the single biggest server side win, turning a slow dynamic page into one that serves as fast as a plain file.

A content delivery network

A content delivery network, or CDN, copies your files to servers around the world. A visitor in another country then loads your site from a server near them instead of waiting for data to cross an ocean. A CDN also absorbs traffic spikes and adds a layer of security. Many are inexpensive or free at small scale, and turning one on is usually a matter of changing a setting or updating your domain records.

Put these three together and the effect compounds. The first visit is faster thanks to the CDN and page cache, and every visit after that is faster still thanks to browser caching. This is exactly the kind of setup we put in place as part of our web development services, so the speed holds up as traffic grows rather than degrading under load.

Want your site to load fast everywhere?We set up caching, a CDN, and modern image delivery so your pages feel instant for every visitor. Tell us about your site and we will send a plan.
Get my free quote

Tame Fonts and Third Party Scripts

Two quiet culprits slow down sites that otherwise look well built: web fonts and third party scripts. Neither is obviously heavy, so they get overlooked, yet together they can add seconds and cause the annoying flashes and jumps that make a site feel cheap.

Load fonts the smart way

Custom fonts make a brand look polished, but each weight and style you load is another file to download, and fonts often block text from appearing. A few habits keep them in check. Load only the weights you actually use, rather than the full family. Use the font-display swap setting so text shows in a fallback font immediately and switches when your font arrives, instead of leaving a blank space. Host fonts on your own domain or a fast CDN. Where a good system font will do, consider skipping custom fonts entirely for body text.

Audit third party scripts ruthlessly

Every chat widget, analytics tag, ad script, heat map tool, and social embed loads code from someone else's server. You do not control how fast that server responds or how heavy their script is, and a single slow third party can hold up your whole page. Make a list of every third party tag on your site and ask a hard question of each one: does the value it provides justify the speed cost? Many sites carry three tools doing the job of one, plus a few left over from campaigns that ended long ago.

Third party typeSpeed riskWhat to do
AnalyticsLow to mediumKeep one tool, load it deferred
Chat widgetMedium to highLoad after the page, or on click
Social embedsMediumReplace with a linked image
Ad and tracking tagsHighAudit and remove the unused ones
Video embedsHighUse a click to load preview

The pattern in that table is clear. Anything that can wait should wait, and anything you do not truly need should go. Loading a chat widget only when someone clicks the chat button, rather than on every page load, is a good example of a change nobody notices except your speed scores.

Lazy Loading and Code Splitting

The fastest file is the one you never load. Lazy loading and code splitting both follow that idea by delaying work until it is actually needed, so the first view of the page stays light and quick.

Lazy loading in practice

You have already met lazy loading for images. The same thinking applies to anything below the first screen: comment sections, maps, embedded videos, and long lists can all wait until the visitor scrolls toward them. This keeps the initial load focused on what the visitor sees first, which is what the LCP measurement cares about.

Code splitting for larger sites

On sites built with modern frameworks, all the JavaScript for every page can end up bundled into one giant file that loads on the first visit. Code splitting breaks that bundle into smaller pieces so each page only loads the code it needs. A visitor on the home page should not have to download the checkout code they may never reach. This is more technical work, usually part of how the site is built, but it makes a real difference on larger applications.

Prioritise what the visitor sees first

Everything in this section serves one principle: load what appears on screen first, and defer the rest. Browsers offer hints like preload for critical files and priority settings for images, which let you tell the browser what matters most. Used well, these get your main content on screen fast while the supporting pieces stream in behind it. If your site is due for a rebuild anyway, a website redesign is the natural moment to bake these patterns in from the start rather than bolting them on later.

Mobile Performance

Most visits now happen on phones, and phones are where speed problems bite hardest. A mid range phone on a mobile network has a slower processor and a less reliable connection than the laptop you probably test on. If your site is fast on your desk but slow in someone's hand on a bus, you are optimising for the wrong device.

Test on real conditions

Use the mobile view in your testing tools, and set them to simulate a mid range phone on a typical mobile connection rather than fast broadband. This shows you what a real visitor feels. It is common for a site that scores well on desktop to score poorly on mobile, and mobile is the score Google leans on most because it indexes the mobile version of your site first.

Lighten the load for phones

The techniques already covered matter even more on mobile. Smaller images, less JavaScript, and fewer third party scripts all lift the weight off a device that has less power to spare. Touch targets should be large enough to tap without zooming, and text should be readable without pinching. A fast mobile site is not a separate project. It is the same speed work aimed at the harder case. Our guide on how to make a website mobile friendly walks through the layout and usability side that pairs with these speed gains.

Desktop versus mobile load time (illustrative) Home Blog Product Checkout Desktop Mobile
Illustrative comparison of desktop and mobile load times across page types. Mobile is consistently slower, which is why it deserves the closer look and the harder test.

Stop Layout Shift

Layout shift is the jump you feel when content moves after the page has started to appear. It is not about raw speed, it is about stability, and it drives people up the wall because it makes them tap the wrong thing. Fixing it is often quick once you know the causes, and it directly improves your CLS score.

Always set image and video dimensions

The most common cause of layout shift is an image with no set width and height. The browser does not know how much space to reserve, so it draws the text first, then shoves everything down when the image arrives. Set width and height attributes, or use CSS that reserves the space, and the browser holds the spot from the start. This one habit removes a large share of layout shift on most sites.

Reserve space for ads and embeds

Ads, embedded posts, and anything injected after load will push content around unless you give them a fixed box to appear in. Style a container with a set size so the space is held whether the content shows up quickly, slowly, or not at all. The page stays calm and nothing jumps.

Handle fonts and dynamic content carefully

Fonts can cause a small shift when the fallback font is a different size from your real font and the text reflows on swap. Choosing a fallback that closely matches your web font keeps that shift tiny. For content that appears after load, such as cookie banners or notices, place them so they overlay rather than push, or reserve their space in advance. The goal is simple: once the page starts to show, it should not move.

Keep It Fast Over Time

Here is the uncomfortable truth about website speed. A site you optimise today will slow down again if you ignore it. Every new plugin, campaign tag, unoptimised image, and content update adds a little weight. Speed is not a one time project, it is a habit, and the sites that stay fast are the ones with a light routine to keep them that way.

Build speed into your workflow

  • Compress and size every image before it goes on the site, every time, with no exceptions.
  • Question every new script before you add it, and remove tags from campaigns that have ended.
  • Test key pages after any big content or design change, so regressions get caught early.
  • Keep your platform, plugins, and themes updated, since updates often bring performance fixes.

Monitor real user data

Check your Core Web Vitals report in Search Console every month or so. Because it uses real visitor data, it warns you when your live audience starts to feel a slowdown, even if your own tests look fine. Catching a regression early, while it affects a handful of pages, is far easier than untangling a site that has slowly become sluggish over a year of neglect. Ongoing care like this is exactly what our website maintenance services are built around, so speed does not quietly slip after launch.

Treat speed as part of quality

The teams with the fastest sites are not the ones with the most clever tricks. They are the ones who treat speed as part of doing the job well, the same way they treat working links and correct spelling. When fast is the default expectation for everyone who touches the site, it stays fast without heroics. For a wider view of keeping a site healthy after launch, our maintenance guide covers the full routine.

When to Get Professional Help

You can do a lot yourself. Compressing images, switching on caching, deferring scripts, and setting image dimensions are within reach for most site owners, and they deliver the bulk of the gains. If you have read this far and applied even half of it, your site is probably faster than most of your competitors already.

There is a point, though, where the work gets technical and the returns get harder to reach alone. Reworking how JavaScript loads, splitting bundles, tuning a slow database, rebuilding a theme that fights against performance, or chasing a stubborn Core Web Vitals failure across real devices are all jobs where an experienced developer saves you days and gets a better result. If speed is costing you sales or rankings, that is money on the table, and expert help usually pays for itself quickly.

Our team does this work every week. We start with a full audit of your current speed and Core Web Vitals, show you exactly what is holding your pages back, and then fix it, from images and caching right down to the code. You keep ownership of everything, and you get a site that stays fast rather than one that looks good in a single test. You can read more about our web development services or jump straight to a conversation.

Ready to make your site fast?Tell us about your website and we will run a free Core Web Vitals audit, then send a clear plan to fix what is slowing you down. No pressure and no jargon.
Get my free speed audit

Whatever you decide, do not let a slow site keep costing you visitors quietly in the background. Speed is one of the few improvements that helps your rankings, your conversions, and your visitors' experience all at once. Start with your images today, measure the difference, and go from there. For the wider technical picture, Google's own Core Web Vitals learning path on web.dev and the page experience documentation on developers.google.com are reliable, and PageSpeed Insights will show you where you stand right now.

Hamza Hai

Hamza Hai writes about web development, performance, and growth for businesses.

FAQ

Frequently asked questions

Start with the heaviest items. Compress and correctly size your images, switch on page caching, and defer non essential JavaScript. Those three changes usually remove most of the load time and can often be done in a single afternoon. Then measure again with a free tool like PageSpeed Insights to see the difference and decide what to tackle next.

Aim for your largest visible content to load in 2.5 seconds or less for most of your real visitors, which is the good threshold for Largest Contentful Paint. Faster is always better, especially on mobile connections. Total load time depends on the page, but if your main content appears within a couple of seconds, most visitors will feel the site is fast.

Core Web Vitals are three measurements Google uses to describe how a page feels to real users. Largest Contentful Paint measures how fast the main content loads, Interaction to Next Paint measures how quickly the page responds to taps and clicks, and Cumulative Layout Shift measures how stable the layout is as it loads. Google uses these signals as part of how it ranks pages.

Yes, images are usually the single biggest cause of slow pages. A large unoptimised photo can weigh more than everything else on the page combined. Compressing images, using modern formats like WebP or AVIF, and serving sizes that suit the screen often cut load time dramatically, which is why images are the first place to look.

Yes. Google has confirmed that page experience, which includes Core Web Vitals, is a ranking signal. Speed will not outrank strong, relevant content on its own, but between two similar pages the faster one has an edge. Google measures speed using real visitor data from Chrome, so it reflects how your actual audience experiences the site.

Lab data comes from a controlled test you run on demand, which is useful for debugging a specific change. Field data comes from real visitors over the previous month and reflects the range of devices and connections your audience actually uses. Google ranks on field data, so a page can score well in the lab and still need work in the field.

In most cases, yes. Many slow sites improve a great deal through optimisation alone: better images, caching, a content delivery network, deferred scripts, and removing unused third party tags. A full rebuild is only needed when the underlying platform or theme fights against performance in ways that cannot be tuned. A quick audit will tell you which situation you are in.

Check your Core Web Vitals report in Search Console monthly, since it uses real visitor data and warns you when your live audience feels a slowdown. Also test key pages after any major content or design change, because new images, plugins, and scripts are the most common way a fast site quietly gets slow again over time.

Have a project?

Let's Build Something That Grows Your Business

Get a free consultation and quote. No obligations.

  • Free Consultation
  • No Hidden Costs
  • 100% Confidential

Request your free quote

Tell us what you are building. A senior engineer replies within 24 hours.

Please enter your name.

Please enter a valid email address.

Please tell us a little more about your project (10+ characters).

No obligation. Your details are only used to prepare your quote.

Click to call us +1 (365) 440-1786