Description
Google uses Core Web Vitals in its ranking systems and recommends good scores for success in Search. This plugin measures all three metrics on your real visitors and shows Core Web Vitals right in your WordPress admin. You’ll see whether your site passes the way Google judges it and fix a slow or jumpy page before it costs you visitors from Google.
Google’s own data comes from the Chrome UX Report behind PageSpeed Insights and Search Console. It covers the last 28 days and only shows up once your site has enough Chrome traffic.
This plugin starts counting with your first visitor, so you’ll know this week whether a new theme, plugin or cache setting made your site faster or slower.
It measures Loading (Largest Contentful Paint), Responsiveness (Interaction to Next Paint) and Visual stability (Cumulative Layout Shift) on every real visit and shows pass or fail the way Google judges it: 75% of visits must meet each target. You also get traffic statistics on your visitors, a free weekly report and an email alert when your site gets slower.
What you get
- Loading (Largest Contentful Paint): how fast the biggest image or headline appears. Pass: under 2.5 seconds.
- Responsiveness (Interaction to Next Paint): how fast the page reacts to a tap or a click. Pass: under 200 milliseconds.
- Visual stability (Cumulative Layout Shift): how much the page jumps while it loads. Pass: under 0.1.
- Pass or fail for each one, with the share of good visits behind the verdict.
- A daily speed chart that shows the exact day your site got slower.
- Server response time (Time to First Byte): how fast your server starts sending each page, day by day on the same chart.
- Elements that make your pages jump: the parts of the page that moved most on the visits that lost a Good Visual stability score, such as Related products or a cookie banner, and what to do about the first one.
- Traffic statistics: page views, unique visitors, devices, browsers and operating systems, all counted without cookies.
- Your scores on the WordPress dashboard every time you sign in.
- A free weekly report and a slowdown alert by email.
Free and CartHacker Premium
The free CartHacker account measures up to 1,000 page views a day and keeps 7 days of speed and traffic history. The weekly report and the slowdown alert are included.
CartHacker Premium ($7.99 a month or $79 a year, USD) keeps 180 days of history, measures up to 50,000 page views a day, splits speed by page type, shows real-visitor speed for each of your busiest pages and runs automatic speed reports on your 50 most visited pages at least once a week. You’ll see it in this plugin and in the full Core Web Vitals Monitoring report on carthacker.com. The same membership also gives you all 50 trust badges in 30 languages, unlimited PDF tools, 200 tracked QR codes, no ads on CartHacker, new guides 2 weeks earlier and new CartHacker tools as they launch.
How it works
Once you connect, the plugin adds a small measuring script to your public pages. The script is served from your own site and loads deferred, so it never holds up your page. It sends one short report per page view to carthacker.com.
The script sets no cookies and stores nothing on the visitor’s device. You don’t need to add anything to your cookie consent banner.
The plugin doesn’t count visits from logged-in administrators, editors and authors. That way your own clicks around the site don’t change your scores. To count them too, turn on Measure logged-in editors in Site settings on the plugin page.
Fonts
The plugin screens use two open-source fonts, bundled in assets/fonts: Inter by Rasmus Andersson and JetBrains Mono by JetBrains. Both are free under the SIL Open Font License 1.1.
Source code
Every file in this plugin is readable source code with no build step. The script that measures your visits is assets/js/ch-monitor.js.
External services
This plugin uses the CartHacker service (https://carthacker.com), run by CARTHACKER LLC, to collect the measurements and show the results. It connects to carthacker.com only after an administrator clicks Start free monitoring on the plugin page and confirms the connection on carthacker.com.
- Connecting. The button opens https://carthacker.com/connect/ in your browser and sends this site’s address, the address of the plugin page, which CartHacker plugin is connecting, whether WooCommerce is active and one-time security values (an OAuth state and a PKCE challenge). After you confirm, your site sends the one-time code, the PKCE verifier, the site address and the plugin version to https://carthacker.com/wp-json/carthacker/v1/connect/token. It receives an access token and stores it in your site’s database.
- Measuring. While connected, every public page loads the plugin’s measuring script. Once per page view, the browser sends one request to https://carthacker.com/ch-monitor/hit. It goes out when the visitor leaves the page or switches tabs, or after five minutes on the page. The request contains the site key and the page path. On a site whose addresses name the page with a query parameter, such as ?product=linen-shirt or ?route=product/product, that parameter is included too. The rest of the query string and anything after a # is removed. The request also contains the platform and kind of page, the network type the browser reports, the width of the browser window and the timings: Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift, Time to First Byte, First Contentful Paint and the total load time. If the page moved while it loaded, the request also says which element moved the most (its tag, id and class names, never its text), when it moved and whether the page had finished loading at that moment. From the request, CartHacker works out the browser and operating system family, the device class and the country. It counts unique visitors with a daily code: a one-way hash of the visitor’s IP address, browser string and the date, so the code changes every day. The IP address itself is not stored.
- Reading your results. When you open the plugin page or the WordPress Dashboard, your site’s server calls https://carthacker.com/wp-json/carthacker/v1/plugin/status and https://carthacker.com/wp-json/carthacker/v1/plugin/stats with the access token and the plugin version. It reuses each answer for 15 minutes unless you click Refresh report. Once a day, your site also calls /plugin/status on its own to read the plan and the site key.
- Disconnecting. Clicking Disconnect now, or deleting the plugin, sends one request with the access token to https://carthacker.com/wp-json/carthacker/v1/plugin/disconnect.
CartHacker Terms of Service: https://carthacker.com/terms/
CartHacker Privacy Policy: https://carthacker.com/privacy/
Screenshots







Installation
- Install and activate the plugin from Plugins > Add Plugin.
- Open CartHacker > Core Web Vitals and press Start free monitoring.
- Sign in to CartHacker or create a free account, then confirm this site.
- Open your site in a private window to record the first visit, then press Refresh report.
Already using the CartHacker monitoring snippet in your theme or in WPCode? Remove it after connecting. The script counts each page once even if both are there.
FAQ
-
Do Core Web Vitals affect my Google rankings?
-
Yes. Google says Core Web Vitals are used by its ranking systems and recommends good scores for success in Search. Relevance still comes first, so a fast page won’t outrank one that answers the search better, but once all three pass, your speed stops working against you. This plugin shows you the day you get there.
-
Will it slow my site down?
-
No. The script loads deferred from your own site, runs after the page is read and sends one small report per page view.
-
Why are my numbers different from PageSpeed Insights?
-
PageSpeed Insights tests one page on a simulated phone. This plugin shows what your real visitors got on their own devices, so a site visited on fast laptops often looks better here and one visited on older phones looks worse. Responsiveness only exists in real visits.
-
Will I get an email when my site gets slower?
-
Yes, on the free plan. The alert compares the last 7 days with the 7 days before, needs at least 50 page views in each, and fires when a Core Web Vital gets a worse verdict or gets at least 25% slower by a clear margin (300 ms, 50 ms or 0.02). You get at most one alert a week, plus the weekly report.
-
Does it replace WP Rocket or LiteSpeed Cache?
-
No, it works alongside them. They change how your pages load, and this plugin shows whether the change actually helped your visitors.
-
No cookies are set and nothing is stored on the visitor’s device, so there’s nothing for a cookie banner to ask about. If your privacy policy lists the services you use, Settings > Privacy > Policy Guide has a ready-made paragraph that says exactly what the script sends.
-
Does it work without WooCommerce?
-
Yes, on any WordPress site. On a WooCommerce store it also recognizes product, category and cart pages, so Premium can split speed by page type.
-
Can I connect more than one site to one account?
-
One CartHacker account monitors one site. Connecting a second site replaces the first and deletes its history, and the connection screen warns you before you confirm. Use a separate account for each site.
-
What happens when I disconnect or delete the plugin?
-
The access token is removed, carthacker.com forgets the connection and the measuring script stops. Pages in a page cache keep the script until you clear that cache. Your history stays in your CartHacker dashboard for your plan’s window (7 days free, 180 on Premium) until you remove the site there.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“CartHacker Core Web Vitals Monitoring” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “CartHacker Core Web Vitals Monitoring” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.0
- New: see which elements make your pages jump. A new section under Speed over time lists up to five elements that moved the most on visits with a Visual stability score below Good, such as related products, the footer or a cookie banner. It shows how often each one moved and when, and how to fix the first one. If nothing moved, it tells you your pages hold still.
- The measuring script now records which element moved. It sends only the element’s tag, id and class names, never its text.
- Visual stability is now more accurate. Visits where nothing moved used to be left out. They now count with a score of 0, so the result covers every page view.
- Product pages with plain addresses, such as ?product=123 or ?page_id=45, now show as separate pages in the report. Before, they were all counted as the home page.
- The Install now and Activate buttons for other CartHacker plugins are now green, like the plugin’s other free actions.
1.0.0
- First release: Core Web Vitals from real visitors, a daily speed chart, traffic statistics, a widget on the WordPress dashboard and, with CartHacker Premium, speed by page type.
