Skip to main content
11 min read

Core Web Vitals Monitoring: Automate Your Performance Tracking in 2025

"How do you monitor your Core Web Vitals?" is one of the most common questions on r/SEO. Here's how to set up automated monitoring that catches issues before they hurt rankings.

Chris Drinkard

Written by

14 years in hospitality management

5 years helping independent hotels grow their online presence. Passionate about AI, search, and digital strategy.

Why Monitoring Matters

A single bad code deployment can tank your Core Web Vitals. Without monitoring, you might not notice for weeks—until rankings drop. Automated alerts let you catch and fix issues immediately.

The Core Web Vitals You Need to Monitor

As of 2025, Google evaluates three Core Web Vitals:

LCP (Loading)

Largest Contentful Paint

≤ 2.5s

Good threshold

INP (Interactivity)

Interaction to Next Paint

≤ 200ms

Good threshold

CLS (Stability)

Cumulative Layout Shift

≤ 0.1

Good threshold

Note: INP replaced FID (First Input Delay) in March 2024. If your tools still reference FID, update them.

What Reddit SEOs Are Asking

"How do you monitor your Core Web Vitals? The answer is to check Google Search Console every single day, but I'm wondering whether or not it can be automated."
"I'd like to have a great AI report that gives me all my core web vitals on a URL level and suggestions to fix it too."

The desire is clear: automated, URL-level monitoring with actionable recommendations. Let's set that up.

Free Monitoring Options

1. Google Search Console (Essential)

GSC's Core Web Vitals report shows field data from real users. It's the data Google actually uses for rankings.

  • Check: Weekly at minimum
  • Location: Experience → Core Web Vitals
  • Shows: URLs grouped by status (Good, Needs Improvement, Poor)
  • Limitation: No automated alerts, delayed data (28-day rolling average)

2. PageSpeed Insights API

Free API that returns both lab and field data. You can automate it:

# Basic API call (free, no key required for limited use)
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&strategy=mobile"

# With API key for higher limits
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&key=YOUR_API_KEY"

Set up a daily cron job to test key pages and log results. Alert if scores drop below thresholds.

3. web-vitals JavaScript Library

Google's official library to collect real user metrics from your site:

import {onCLS, onINP, onLCP} from 'web-vitals';

function sendToAnalytics(metric) {
  // Send to your analytics or monitoring service
  console.log(metric.name, metric.value);
}

onCLS(sendToAnalytics);
onINP(sendToAnalytics);
onLCP(sendToAnalytics);

Send this data to Google Analytics 4, a custom dashboard, or a monitoring service for real-time tracking.

4. CrUX Dashboard (Google Data Studio)

Free dashboard using Chrome User Experience Report data:

  1. Go to CrUX Dashboard
  2. Enter your origin (domain)
  3. Get automatic monthly reports

Limitation: Monthly data, origin-level only (not URL-level).

Paid Monitoring Solutions

1. SpeedCurve

  • Synthetic and real user monitoring
  • Automated alerts on performance regressions
  • Performance budgets
  • Competitor benchmarking

Best for: Teams serious about performance with budget for dedicated tooling

2. Calibre

  • Continuous synthetic monitoring
  • Slack/email alerts
  • Performance budgets with CI/CD integration
  • Third-party impact analysis

Best for: Development teams wanting CI/CD integration

3. DebugBear

  • Lab and field data monitoring
  • Automated recommendations
  • Slack/email/webhook alerts
  • Competitor tracking

Best for: SEOs wanting actionable recommendations

4. Sentry Performance

  • Real user monitoring integrated with error tracking
  • Web Vitals dashboard
  • Alert rules for thresholds
  • Transaction tracing for debugging

Best for: Teams already using Sentry for error monitoring

Setting Up a DIY Monitoring System

For budget-conscious teams, here's a free monitoring stack:

Step 1: Collect Real User Data

Add the web-vitals library to your site and send data to Google Analytics 4:

import {onCLS, onINP, onLCP} from 'web-vitals';

function sendToGA4({name, value, id}) {
  gtag('event', name, {
    event_category: 'Web Vitals',
    event_label: id,
    value: Math.round(name === 'CLS' ? value * 1000 : value),
    non_interaction: true,
  });
}

onCLS(sendToGA4);
onINP(sendToGA4);
onLCP(sendToGA4);

Step 2: Set Up Synthetic Testing

Create a script that runs PageSpeed Insights API on your key URLs daily:

#!/bin/bash
# Save as monitor-cwv.sh and run via cron

URLS=("https://yoursite.com" "https://yoursite.com/key-page")
API_KEY="your-api-key"

for url in "${URLS[@]}"; do
  result=$(curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=$url&strategy=mobile&key=$API_KEY")
  
  lcp=$(echo $result | jq '.lighthouseResult.audits["largest-contentful-paint"].numericValue')
  cls=$(echo $result | jq '.lighthouseResult.audits["cumulative-layout-shift"].numericValue')
  
  # Log to file
  echo "$(date),$url,$lcp,$cls" >> cwv-log.csv
  
  # Alert if thresholds exceeded
  if (( $(echo "$lcp > 2500" | bc -l) )); then
    echo "LCP ALERT: $url has LCP of $lcp" | mail -s "CWV Alert" [email protected]
  fi
done

Step 3: Create Alerts in GA4

  1. Go to GA4 → Admin → Custom Insights
  2. Create insight for "Web Vitals" events
  3. Set condition: LCP value > 2500
  4. Enable email notifications

Step 4: Weekly GSC Check

Add a calendar reminder to check GSC Core Web Vitals report every Monday. Note any URLs that moved from "Good" to "Needs Improvement."

What to Do When Core Web Vitals Regress

When monitoring catches a problem, here's your response playbook. If the regression has already reached Search Console and your Core Web Vitals assessment failed, work through that diagnosis first — the 28-day rolling window means you are seeing a problem that started weeks ago.

1. Identify When It Started

Check your deployment logs. What changed around the time metrics dropped? Common culprits:

  • New JavaScript bundles or dependencies
  • Added third-party scripts (analytics, chat, ads)
  • Image changes (larger files, different formats)
  • CSS changes affecting layout
  • Server configuration changes

2. Isolate the Issue

Use Chrome DevTools Performance tab to identify:

  • LCP issues: What's the LCP element? Is it loading slowly?
  • INP issues: What interactions are slow? Check Long Tasks
  • CLS issues: What elements are shifting? Check Layout Shift regions

3. Fix and Verify

After fixing, verify with lab tools immediately. Then monitor field data over the next 28 days to confirm real-user improvement.

URL-Level vs. Origin-Level Monitoring

GSC reports origin-level data (entire domain), but issues are often URL-specific. For URL-level insights:

  • PageSpeed Insights: Test individual URLs
  • CrUX API: Query specific URLs (if they have enough traffic)
  • Real User Monitoring: Track per-page metrics with web-vitals library

Many SEO tools now offer URL-level CWV tracking. This is particularly valuable for large sites where different templates may have different performance characteristics.

Performance Budgets: Proactive Monitoring

Instead of just catching regressions, set performance budgets that prevent them:

Example Performance Budget

  • LCP: Max 2.0s (gives buffer below 2.5s threshold)
  • INP: Max 150ms (gives buffer below 200ms threshold)
  • CLS: Max 0.05 (gives buffer below 0.1 threshold)
  • Total JavaScript: Max 300KB compressed
  • Total page weight: Max 2MB

Integrate budget checks into your CI/CD pipeline. Block deployments that exceed budgets.

Monitor Your Core Web Vitals Automatically

Rankture tracks Core Web Vitals for every page in your audit—both mobile and desktop. Get URL-level diagnostics with prioritized recommendations.

Check Your Core Web Vitals

Frequently Asked Questions

What are the Core Web Vitals metrics in 2025?

The three Core Web Vitals are: LCP (Largest Contentful Paint) measures loading performance—should be under 2.5 seconds. INP (Interaction to Next Paint) replaced FID in March 2024 and measures interactivity—should be under 200ms. CLS (Cumulative Layout Shift) measures visual stability—should be under 0.1. These metrics are measured from real user data (field data) and impact your search rankings.

How often should I check Core Web Vitals?

Check Google Search Console's Core Web Vitals report weekly for trends. Set up automated monitoring for real-time alerts on regressions. After any site changes (new code, plugins, design updates), test immediately with PageSpeed Insights. The key is catching issues before they affect enough users to impact your field data scores.

Why do my lab and field Core Web Vitals scores differ?

Lab data (PageSpeed Insights, Lighthouse) tests in controlled conditions. Field data (CrUX) comes from real users with varying devices, connections, and behaviors. Field data often shows worse scores because it includes users on slow devices and networks. Google uses field data for rankings, so focus on improving real-user experience, not just lab scores.

How long does it take for Core Web Vitals improvements to affect rankings?

Core Web Vitals field data is collected over a 28-day rolling window. After making improvements, it typically takes 28 days for the CrUX data to fully reflect changes, then additional time for Google to recrawl and reassess. Plan for 1-3 months between making fixes and seeing ranking impact. Lab scores update immediately but don't directly affect rankings.

What causes Core Web Vitals to suddenly get worse?

Common causes: 1) New code deployments adding JavaScript or changing layouts, 2) Third-party scripts (ads, analytics, chat widgets) loading differently, 3) Hosting issues affecting server response time, 4) Image/video changes affecting LCP elements, 5) CMS or plugin updates, 6) Increased traffic causing server strain. Automated monitoring helps pinpoint when regressions started.

Can I fail Core Web Vitals and still rank well?

Yes, Core Web Vitals are one of many ranking factors, not the only one. Sites with poor CWV can rank if they have strong content, backlinks, and relevance. However, when competing against similar-quality sites, better CWV can provide a ranking edge. For user experience and conversion rates, fixing CWV is still valuable even if ranking impact is modest.

Related Resources