Loading tutorials…
Loading tutorials…
GSC's Page Experience reports tell you what's broken on mobile in Google's eyes — but the language is technical and the impact is unclear. Here's the actual triage order and the fixes that move the needle.
Who this is forSite owners with mobile traffic and any of: Core Web Vitals failures, mobile usability errors, or Page Experience warnings. Mobile-first indexing means these issues affect desktop rankings too.
What you'll need
Step 1
GSC → Experience → Page Experience. Get the high-level view before diving into individual reports.
In GSC → Experience section, click Page Experience.
You'll see a summary: Good URLs / URLs needing improvement / Poor URLs across mobile and desktop.
Click into Core Web Vitals (Mobile) first — mobile-first indexing makes this the priority.
Note: Page Experience report uses 28-day field data (CrUX). Recent changes won't appear immediately.
If your site has under 1,000 mobile visitors in 28 days, you may see "insufficient data" — switch to PageSpeed Insights with your top URLs to get lab data.
Step 2
Three metrics. Each has a specific cause and fix.
LCP (Largest Contentful Paint): how long until the biggest visible element loads. Target: under 2.5s. Bad: over 4s.
Common LCP causes: huge unoptimized hero images, render-blocking JavaScript, slow server response, no CDN.
INP (Interaction to Next Paint): replaced FID in March 2024. How long the page takes to respond to a user tap/click. Target: under 200ms.
Common INP causes: heavy JavaScript on main thread, long tasks blocking input handlers, oversized third-party scripts (chat widgets, heatmaps).
CLS (Cumulative Layout Shift): how much the page jumps around as it loads. Target: under 0.1.
Common CLS causes: images without width/height attributes, web fonts that swap mid-load without font-display, dynamically injected ads/banners.
Step 3
Hero images are the #1 LCP killer. Compress, resize, preload.
Identify the LCP element using PageSpeed Insights. It's usually the hero image or the largest text block.
Compress images: target under 200KB for hero images. Use WebP or AVIF format (smaller than JPEG/PNG at same quality).
Resize images to the actual display dimensions. Serving a 4000x3000 image to a 1200x800 hero spot wastes bandwidth.
Add fetchpriority="high" to the LCP image. Browsers prioritize its download.
Add a preload tag in the head: <link rel="preload" as="image" href="hero.webp" fetchpriority="high">.
Remove render-blocking scripts above the fold. Move analytics, chat widgets, and non-critical scripts to defer or async loading.
Test in PageSpeed Insights after deploy. Field data takes 28 days to fully update in GSC.
Step 4
INP is the hardest CWV to pass. Most fixes involve cutting or deferring third-party scripts.
In PageSpeed Insights, expand "Reduce JavaScript execution time" and "Avoid long main-thread tasks."
Identify top JS contributors. Usually: chat widgets (Intercom, Drift), analytics (GTM, multiple Pixels), heatmap tools (Hotjar, FullStory), A/B test scripts (Optimizely).
For each: ask whether it's necessary on every page. Defer or remove anything that's not.
Use code splitting if you control the JS. Load page-specific JS only on pages that need it.
Use partytown.js or similar to move third-party scripts off the main thread.
After fixes: test on a slow 3G profile in Chrome DevTools to confirm INP under 200ms.
Step 5
Every image, ad, embed, and dynamically-loaded element needs reserved space at initial render.
Add width and height attributes to every <img> tag. Browsers reserve the calculated space, eliminating image-induced shifts.
For responsive images, use aspect-ratio CSS or wrap in a fixed-ratio container.
Use font-display: swap with a fallback font that matches the metrics of your web font (use Adobe's font-face matcher).
For ads and embeds, reserve fixed-height containers. Don't let them inject and shift content.
For dynamically loaded content (chat widgets, cookie banners), use position: fixed or absolute so they don't shift document flow.
Test with the Lighthouse CLS visualization in Chrome DevTools.
Step 6
Tap targets too small, text too small, viewport not configured, content wider than screen. Usually theme-level fixes.
GSC → Experience → Mobile Usability lists affected URLs and the specific issue.
"Tap targets too close together": buttons and links need 48x48 px minimum touch target. Add padding to small buttons.
"Text too small to read": minimum 16px body text, 14px for de-emphasized text. Audit your CSS for px values below these thresholds.
"Content wider than screen": overflowing tables, images, or fixed-width elements. Use overflow-x: auto for tables. Set max-width: 100% on images.
"Viewport not set": add <meta name="viewport" content="width=device-width, initial-scale=1"> in the <head>. Most modern themes have this; older ones may not.
After fixes, request validation in the GSC report. Google re-tests over 14-28 days.
Step 7
PageSpeed Insights lab scores update immediately. CrUX field data — what GSC uses — takes 28 days.
Lab data (PageSpeed Insights synthetic test): updates within minutes. Useful for confirming changes shipped.
Field data (CrUX, what GSC uses): rolling 28-day window of real-user data. Takes 14-28 days for changes to fully reflect.
Don't panic if GSC still shows red after a week — it's averaging the last 28 days of data, including 21 days before your fix.
Set calendar reminder for 30 days post-fix to re-check GSC.
If field data hasn't moved at all after 30 days, the fix didn't actually ship to production or didn't affect real users — investigate.
Common mistakes
Optimizing only lab scores, ignoring field data
What goes wrong: You get a PageSpeed score of 95 in lab tests but GSC still shows Poor CWV. Lab tests don't reflect real-user conditions (slower networks, older devices). You think you fixed it; Google disagrees.
How to avoid: Always check both. Field data (CrUX) is what affects rankings. Lab data is useful for diagnosis but isn't the success metric.
Treating INP like FID
What goes wrong: FID measured only the first interaction. INP measures every interaction. A site that passed FID often fails INP because slow interactions later in the session count. You think you're fine, you're not.
How to avoid: Test INP specifically. Use real-user monitoring (Cloudflare Web Analytics, web-vitals library, or PageSpeed Insights) to capture INP data from actual interactions.
Adding too many "performance plugins"
What goes wrong: You install WP Rocket, Autoptimize, WP-Optimize, and a CDN plugin simultaneously. They conflict. Some functions are double-applied (double minification breaks JS). Site gets slower instead of faster.
How to avoid: Pick ONE caching/optimization plugin. WP Rocket or Cloudflare APO are the most reliable for WordPress. Add a CDN at the DNS layer (Cloudflare). Stop there.
Not reserving space for late-loading elements
What goes wrong: Cookie banner appears after 800ms and pushes all content down. CLS spikes to 0.3+ (failing). User experience suffers, ranking drops.
How to avoid: Reserve fixed-height space for any element that loads after initial paint. Cookie banners should overlay (position: fixed), not push content.
Ignoring mobile usability errors because "the site looks fine on my phone"
What goes wrong: Your phone is new and your fingers are accurate. Older phones, larger fingers, and accessibility users all struggle. Google measures across the population, not your phone.
How to avoid: Use Chrome DevTools mobile emulation with throttled CPU and slow network. Test tap targets with the device toolbar. Trust GSC's data over your personal experience.
Recap
Done — what's next
How to fix Google Search Console coverage / indexing errors
Read the next tutorial
Hand it off
Core Web Vitals is the rare SEO area where the fix is front-end engineering, not content. Most SEO specialists pair with a perf developer for this work — and the engagement typically costs $600-1,200 for a one-time CWV remediation at $14-16/hr. After remediation, ongoing monitoring runs $200-400/mo.
See specialist rates
Google has confirmed CWV is a ranking signal, but it's a tiebreaker — content quality and relevance matter much more. CWV becomes more impactful when you're competing for the same keyword as multiple equally-relevant pages. Worth fixing, but not at the cost of content work.
Lab tests use a single synthetic environment (4G connection, Moto G4 phone). Field data aggregates real users on real devices and connections. Field is more representative — and is what Google uses for ranking signals.
Almost always JavaScript. Specifically: chat widgets, analytics scripts, A/B test scripts, or heavy framework runtime (React, Vue) on interaction. Audit your third-party scripts with PageSpeed Insights — that's where 80% of INP issues originate.
Sometimes. If CWV was the actual ranking factor causing the loss, yes — recovery in 30-60 days. If lost traffic came from content quality, algorithm updates, or backlink loss, fixing CWV won't recover it.
It helps LCP (by serving assets faster) but rarely fixes INP or CLS. Those require code-level changes. CDN is necessary but not sufficient.
Google Search Console
GSC's Indexing report shows you what's broken — in language that often hides what to actually do about it. This is the field-tested decoder: every error type, what causes it, and the specific fix that works.
Google Search Console
Page is ranking, impressions are climbing, clicks are flat. This is the most common painful pattern in SEO — your SEO is working until the last 50ms of the user journey. Here's the diagnostic order specialists run.
Google Search Console
URL Inspection is the most-misused tool in GSC. People use it on the wrong URLs, hit the daily quota, and wonder why nothing gets indexed. Here's the correct workflow — and when to use it vs trust the sitemap.
Google Search Console
DIY SEO works longer than DIY ads — you can run on momentum for 12+ months. But there's a point where you're losing more in opportunity than you'd pay a specialist. Here's how to tell which side you're on.