CartHacker Core Web Vitals Monitoring
CartHacker Core Web Vitals Monitoring
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, so you can fix a slow page, or a page that moves while it loads, before you lose 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 appears 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 delays 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 is sent 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 and confirming, 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/
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.
Screenshots

Pass or fail for each Core Web Vital, from your real visitors, with your page views, today's count against the free 1,000 and the share of good visits behind each verdict.

The daily speed chart shows the exact day your site got slower, against Google's 2.5 second mark.

Elements that make your pages jump: the parts of the page that moved most on the visits that lost a Good Visual stability score, and what to do about the first one.

Traffic: page views and unique visitors per day, and your visitors' devices, browsers and operating systems.

CartHacker Premium splits speed by page type and lists your busiest pages, so you can see which template is slow.

Your three Core Web Vitals on the WordPress dashboard every time you sign in.

Before you connect, the plugin shows an example of the report it builds for your site.
Faq
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, slow speed is no longer a reason for Google to rank you lower. This plugin shows you the day all three pass.
No. The script loads deferred from your own site, runs only after the page’s HTML has loaded and sends one small report per page view.
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.
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 is sent when a Core Web Vital gets a worse verdict, or gets at least 25% slower and also slower by at least 300 ms for Loading, 50 ms for Responsiveness or 0.02 for Visual stability. You get at most one alert a week, plus the weekly report.
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.
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.
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.
The access token is removed, carthacker.com deletes the connection and the measuring script stops loading. Pages in a page cache keep the script until you clear that cache. Your history stays in your CartHacker dashboard for as long as your plan keeps history (7 days free, 180 on Premium), until you remove the site there.
Reviews
Changelog
1.1.1
- Plainer wording on the plugin page and in this readme, for example in the Disconnect window, which now says exactly what happens to the measuring script and to your data.
- The Other plugins page under CartHacker now stays in the menu while another CartHacker plugin is installed but not active, so you can activate it there. Before, the menu item disappeared as soon as the plugin was installed.
- When you install a plugin from the Other plugins page and close its details window, the page reloads, so the plugin card shows Activate instead of Install now.
- The Other plugins menu item no longer disappears for one page load when its list of CartHacker plugins is refreshed.
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 says so.
- 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 were not counted before. 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.