Pages Google sends traffic to that fail Core Web Vitals, a direct ranking penalty. Names the URL so the dev fixes it the same morning.
At a glance
A cross-channel alert table that joins Google Search Console page-level impressions and clicks against Website Performance Core Web Vitals (Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift) for the same URL. It fires the moment a page that Google actively ranks and sends impressions to is also measured as slow. Because page experience is a confirmed Google ranking signal, a slow landing page is not just a UX problem, it is an active drag on the organic position that earns the traffic in the first place. The card names the exact URL so a developer can fix it the same morning, rather than chasing an abstract “the site is slow” complaint.
| What it tracks | Every indexed URL where (a) Search Console reports it is receiving organic impressions, and (b) Website Performance measures its field or lab Core Web Vitals as failing. The two data sets are joined on the normalised URL. |
| Data source | Search Console Search Analytics API (page dimension: impressions, clicks, average position) joined to the Website Performance connector (CrUX field data plus PageSpeed Insights lab data: LCP, INP, CLS). See detail: “Pages Google sends traffic to that fail Core Web Vitals, a direct ranking penalty. Names the URL so the dev fixes it the same morning.” |
| Time window | 30D. Search Console impressions are summed over the trailing 30 days; Core Web Vitals use the rolling 28-day CrUX field window where available, falling back to a fresh PageSpeed Insights lab run. |
| Alert trigger | any landing with LCP >4s and impressions >1000/mo. A page must clear both gates: it must be slow (LCP above 4 seconds, the “poor” threshold) AND material (more than 1,000 impressions in the month). This keeps the table to URLs where a fix has real organic upside. |
| Why both gates matter | A slow page with no impressions is harmless (nobody sees it). A fast page with high impressions is already healthy. The intersection (high-traffic AND slow) is where ranking and revenue are actively leaking. |
| Units | LCP and INP in seconds/milliseconds, CLS as an unitless score, impressions and clicks as counts, average position as a decimal rank. |
| Card class | Hero, sensitivity, and cross-channel: it is a headline pulse, it is configurable per profile in the Sensitivity tab, and it draws on two connectors at once. |
| Roles | owner, marketing, developer |
Calculation
The card is built in three steps:- Pull the ranked pages. From the Search Console Search Analytics API, request the
pagedimension over the trailing 30 days and keep every URL with more than 1,000 impressions. These are the pages Google considers worth showing. - Pull the speed. For each of those URLs, read the Website Performance connector. Where Chrome User Experience Report (CrUX) field data exists, use the real-user 75th-percentile LCP, INP and CLS over the rolling 28-day window. Where a URL has too little field traffic to appear in CrUX, fall back to a PageSpeed Insights lab run for that exact URL.
- Join and filter. Inner-join on the normalised URL (trailing slash, protocol and
wwwreconciled), then keep only rows where LCP is above 4 seconds. Each surviving row is a page that Google ranks and that is measurably slow.
Worked example
A UK homeware retailer running on its own headless storefront, both the Google Search Console and Website Performance connectors live. On 14 Apr 26 the card fires with four URLs over the 30-day window.| URL | Impressions (30D) | Clicks (30D) | Avg position | LCP (field, p75) | INP | CLS | Verdict |
|---|---|---|---|---|---|---|---|
/collections/oak-dining-tables | 18,420 | 612 | 6.2 | 5.8s | 240ms | 0.04 | Poor LCP, high traffic, fix first |
/products/extending-walnut-table | 9,140 | 388 | 4.1 | 4.6s | 180ms | 0.02 | Poor LCP, strong rank at risk |
/blog/how-to-care-for-oak | 3,260 | 95 | 11.4 | 4.3s | 120ms | 0.18 | Poor LCP plus borderline CLS |
/collections/sale | 1,210 | 41 | 14.0 | 4.1s | 95ms | 0.01 | Just over both gates, lower priority |
- Triage by impressions, not by how slow.
/collections/oak-dining-tablesis the worst offender on both axes: 18,420 monthly impressions AND the slowest LCP at 5.8s. It earns a strong position 6.2 today, but page experience is dragging it. This is the same-morning fix: it has the most organic upside per engineering hour. - The “strong rank at risk” case is the urgent one.
/products/extending-walnut-tableranks 4.1 (page-one, near the top). A poor LCP here is the most dangerous, because the page is one position drop away from falling below the fold. Protecting an existing high rank is usually cheaper than clawing one back. - The cause was a shared hero-image component. All three collection and product pages used an uncompressed hero image loaded above the fold without
fetchpriority. The blog post’s CLS came from a late-loading author widget. The developer shipped two fixes that morning: compress and preload the hero image (LCP), and reserve space for the author widget (CLS). - What it looked like a fortnight later. On 28 Apr 26 the field LCP for the two collection pages had dropped under 2.5s (the “good” threshold), they cleared the table, and average position on
/collections/oak-dining-tableshad drifted from 6.2 to 5.4. The card had turned a vague “the site feels slow” into a named, fixed, measurable win.
Sibling cards merchants should reference together
| Card | Why pair it with Slow Indexed Pages |
|---|---|
| Organic-to-Revenue Divergence | The other cross-channel revenue-at-risk card. Slow pages are one reason ranked traffic does not convert; this card finds the rest. |
| Pages Losing Traffic | If a slow page is also losing clicks week over week, the page-experience drag may already be biting its ranking. |
| Position by Page | Confirms the current average position of each URL on the table, so you can prioritise pages that are high-ranked and slow. |
| Top Pages by Impressions | Tells you which URLs carry the most organic visibility, the same impressions axis this card filters on. |
| Mobile Usability Errors | The other page-experience signal Search Console reports; slow LCP and a mobile usability error on the same URL compound the penalty. |
| High Impressions / Low Clicks | A slow page can suppress click-through even when it ranks; cross-check pages that appear on both. |
| Performance by Page Type | If slow pages cluster in one template (all PDPs, all collection pages), a single component fix clears many rows at once. |
| CTR by Page | Page-level click-through; useful to quantify the conversion upside of fixing a slow, high-impression page. |
Reconciling against the source
This card joins two sources, so reconcile each side separately. The Search Console side (impressions, clicks, position): Rebuild the ranked-pages half in Google Search Console under Performance → Search results, switch to the Pages tab, set the date range to the last 30 days, and read impressions, clicks and average position per URL. Remember:- GSC data is typically 2 to 3 days delayed, so the last couple of days will read low or empty.
- Rare queries are anonymised, so a long-tail page’s totals can be marginally lower than the true figure.
- The Pages report caps at 1,000 rows in the UI; use the Search Analytics API if you need the full set.
- Search Console → Experience → Core Web Vitals report shows which URLs Google classes as “Poor”, “Needs improvement” or “Good”, grouped by similar pages, using CrUX field data. This is the report whose verdict directly informs ranking.
- PageSpeed Insights (run the exact URL) shows both the 28-day CrUX field assessment and a fresh lab run. The field LCP is what this card prefers; the lab run is the fallback for low-traffic URLs.
| Reason | Direction | What to do |
|---|---|---|
| GSC 2 to 3 day delay means our 30-day window ends ~3 days ago. | Impressions slightly lower than a same-day manual pull. | Match the date range and exclude the most recent 3 days. |
| Field (CrUX) vs lab (PageSpeed) LCP differ; field is real users, lab is a single throttled run. | Lab LCP is often higher (more pessimistic). | Trust field where it exists; treat lab as a flag for low-traffic URLs. |
| CrUX uses the rolling 28-day p75; a recent fix may not have aged into the window yet. | Page still shows as slow for up to 28 days after the fix. | Re-check after the window rolls; use a fresh PageSpeed lab run to confirm the fix landed. |
URL normalisation (trailing slash, www, parameters) can split or merge rows. | A page may appear once in our join but as two rows in raw GSC. | Confirm the canonical URL matches between connectors. |