Why Your Website Is Slow (And How Core Web Vitals Can Help You Fix It)

Kiko in British ColumbiaKiko Gelabert Apr 20, 2025
Core Web Vitals report

On this page

You pull up your website on your phone to show a potential customer. The page loads. And loads. The logo appears, but nothing else. Text finally shows up, images are still loading. You try to tap the menu and it doesn’t respond right away.

If that sounds familiar, you’re not alone. Website performance is one of those things that’s easy to ignore until you actually experience how frustrating a slow site feels.

Google measures website speed using something called Core Web Vitals. These metrics tell you exactly where your site is struggling and, more importantly, what you can fix. Let me show you how to check your scores and understand what they mean.

What Core Web Vitals Actually Measure

Core Web Vitals are three specific performance metrics that Google uses to judge website quality. They’re not arbitrary numbers, they measure real user experience problems.

Loading Speed (Largest Contentful Paint)

What it measures: How long until your main content appears on screen.

Good score: Under 2.5 seconds
Needs improvement: 2.5 to 4 seconds
Poor: Over 4 seconds

This measures when your biggest visible element loads. Usually that’s your hero image, main heading, or primary content block. If this number is high, people are sitting there waiting to see what you actually offer.

Responsiveness (Interaction to Next Paint)

What it measures: How quickly your site reacts when someone clicks or taps something.

Good score: Under 200 milliseconds
Needs improvement: 200 to 500 milliseconds
Poor: Over 500 milliseconds

When someone taps your menu button or clicks a link, this measures the delay before something happens. A slow response makes your site feel broken or unresponsive.

Visual Stability (Cumulative Layout Shift)

What it measures: Whether elements jump around while your page loads.

Good score: Under 0.1
Needs improvement: 0.1 to 0.25
Poor: Over 0.25

You’ve experienced this: you’re about to tap something, an image loads, and everything shifts down. You tap the wrong thing. That’s layout shift, and this metric measures how much it happens.

How to Check Your Website’s Core Web Vitals

The easiest way to see your actual scores is Google’s free PageSpeed Insights tool. It tests your site and gives you the exact measurements Google uses for rankings.

The Testing Process

  1. Go to https://pagespeed.web.dev/
  2. Enter your website address
  3. Click “Analyze”
  4. Wait about 30 seconds while it runs tests
  5. Review your results

This is how the report looks like: Core Web Vitals report.

Understanding Your Results

The tool shows you three colored scores:

Green: You’re performing well
Orange: There’s room for improvement
Red: This needs attention

You’ll see separate scores for mobile and desktop. Focus on mobile first, that’s where most of your traffic comes from and where performance problems are usually worse.

PageSpeed Insights also provides specific recommendations for what’s slowing you down. Things like “Reduce unused JavaScript” or “Properly size images.” The challenge is understanding what those recommendations actually mean and how to implement them.

What’s Actually Slowing Your Website Down

Most performance problems come from a handful of common issues. Here’s what usually causes poor Core Web Vitals scores:

Large Unoptimized Images

Images are typically the heaviest files on your website. A single uncompressed photo straight from a camera can be 3-5MB. On a mobile connection, that’s 20-30 seconds of loading time just for one image.

Background images are particularly problematic. A 2000px wide stock photo loading on a 400px phone screen is wasteful. The same image resized to 500px and compressed might be 50KB instead of 2MB.

Platform Architecture

If your website runs on WordPress or similar content management systems, the platform loads its entire framework on every page. WordPress typically loads 20-30 files before showing any content: the theme framework, plugin files, scripts, stylesheets.

Each file is another request to the server, another delay. This sequential loading creates a waterfall of delays that’s difficult to eliminate without changing the underlying architecture.

Too Many Scripts Running

Third-party scripts add up quickly. Analytics, chat widgets, social media feeds, advertising, tracking pixels. Each one adds JavaScript that needs to download and execute before your page can finish loading.

Old frameworks like jQuery add significant overhead. Modern JavaScript can handle everything jQuery does, but many sites still load jQuery out of habit or because old code depends on it.

Poor Server Response Time

Budget hosting means your website shares server resources with dozens or hundreds of other sites. When those sites get traffic spikes, everyone slows down. The server itself becomes the bottleneck, adding seconds to every page load.

Missing Image Dimensions

When you don’t specify height and width attributes in your image tags, the browser doesn’t know how much space to reserve. It displays the text, then when images load, everything shifts to accommodate them. That’s what causes layout shift.

Practical Steps to Improve Your Scores

Here’s what you can do to address these common problems:

Image Optimization

Compress your images. Tools like TinyPNG or Compressor.io can reduce file sizes by 70-80% without noticeable quality loss. This should be your first step.

Resize for the display size. Don’t upload images larger than they’ll ever be displayed. A 400px wide image in your layout doesn’t need to be 2000px wide in the file.

Add dimensions to every image. Always include height and width attributes in your image tags. This tells the browser how much space to reserve before the image loads.

Implement lazy loading. Add loading="lazy" to image tags for images that aren’t immediately visible when the page loads. This delays loading them until they’re actually needed. Just don’t lazy load images that appear on first view, that creates the opposite problem.

Use responsive images. The srcset attribute lets you serve different sized images to different screen sizes. Mobile users get smaller files, desktop users get full resolution.

Script Optimization

Remove unused features. Go through your website and delete any plugins, tracking codes, or widgets you’re not actually using. Every script you remove is code that doesn’t need to load.

Load fonts locally. Instead of linking to Google Fonts, download the font files and serve them from your own server. This eliminates an external connection and speeds up font loading.

Defer non-critical JavaScript. Add the defer attribute to script tags so they load after your page content is displayed instead of blocking the initial render.

Consider removing jQuery. If your site uses jQuery, evaluate whether you actually need it. Modern JavaScript can handle everything jQuery does without the framework overhead.

Hosting and Configuration

Upgrade your hosting. If you’re on budget shared hosting, better hosting can make a significant difference in server response times.

Enable caching. Caching stores a pre-built version of your pages so they don’t need to be generated fresh every time. If you’re on WordPress, a caching plugin like WP Rocket can help.

Use a CDN if appropriate. Content delivery networks serve your files from servers closer to your visitors, reducing latency.

Why Some Sites Are Easier to Optimize Than Others

Not all websites have the same optimization potential. The platform your site is built on determines how much improvement is realistically possible.

Platform Limitations

Content management systems like WordPress prioritize ease of use and flexibility over performance. They load entire frameworks and multiple files even when you only need a fraction of that functionality.

You can optimize these platforms to a point. Compress images, remove unused plugins, enable caching, upgrade hosting. But there’s often a performance ceiling you can’t break through because of how the platform itself is built.

Architecture Advantages

Sites built from scratch with just HTML, CSS, and JavaScript have fewer inherent limitations. There’s no framework loading, no plugin ecosystem, no theme overhead. Every file serves a specific purpose.

Static HTML sites are particularly fast because there’s no server-side processing required. The server simply sends pre-built files directly to the browser. This approach routinely achieves sub-2-second load times even on modest hosting.

The difference isn’t just optimization technique, it’s fundamental architecture. A site built for performance from the start has advantages that retrofitted optimization can’t replicate.

When Optimization Isn’t Enough

You can implement every optimization technique available and sometimes your scores improve significantly. Other times, they barely move because you’re fighting against platform limitations.

Recognizing Structural Problems

If you’ve compressed images, removed unused scripts, upgraded hosting, enabled caching, and implemented lazy loading, but your scores are still red or orange, you’re probably dealing with architectural issues rather than configuration problems.

Some signs that optimization has hit its limits:

  • Scores improve slightly but stay in the red or orange range
  • Each fix only improves scores by 1-2 points
  • New updates or plugins break previous optimizations
  • The site requires constant maintenance just to maintain “okay” performance

The Rebuild Question

At some point, continuing to optimize a fundamentally slow site becomes less effective than rebuilding with performance as a primary consideration from the start.

Whether that makes sense depends on several factors: how far your current scores are from passing thresholds, whether your platform can realistically achieve good scores, the ongoing maintenance burden, and what poor performance is actually costing you.

Web developers who specialize in performance can assess whether your current platform can get you where you need to be, or whether starting fresh makes more sense.

What to Do Next

Start by running the PageSpeed Insights test and seeing where you stand. The results will tell you exactly what’s causing problems.

If your scores are mostly green, you’re in good shape. If they’re orange, try the optimization techniques above and retest. If they’re red after optimization attempts, you need to evaluate whether your current platform can realistically achieve acceptable scores.

Core Web Vitals matter because they measure real user experience issues. Slow sites frustrate visitors and perform worse in search results. The question is just whether your current site can be fixed with optimization, or whether the architecture itself is the limitation.

Check your scores, implement the fixes you can, and go from there. At least you’ll know exactly where things stand and what’s actually possible with your current setup.