A page can be indexed, unique, and still lose the query because it is slow or unstable on a phone. Core Web Vitals are the page experience measures Google publishes for that problem: largest contentful paint (LCP), interaction to next paint (INP), and cumulative layout shift (CLS). They are SEO issues when real visitors wait, and GEO issues when an AI crawler times out or stores a shell with no answer to quote.
This guide follows common SEO and GEO issues that hurt rankings. Use the indexing and crawl guide when the URL is not in the index, and duplicate content and keyword cannibalization when the wrong URL is the one that ranks. Use this one when the page is indexed and the field data for speed or stability is poor.
What Core Web Vitals measure
Google evaluates page experience from Chrome field data, at the 75th percentile, separately for mobile and desktop. A lab score from Lighthouse is a clue. It is not the number Search uses.
| Metric | Good | What visitors feel | Usual cause |
|---|---|---|---|
| LCP | 2.5 seconds or less | The main content appears late | Hero image, web font, slow server, render-blocking files |
| INP | 200 milliseconds or less | Taps and clicks feel stuck | Heavy JavaScript, third-party tags, long tasks on the main thread |
| CLS | 0.1 or less | The page jumps while reading | Images without size, banners, fonts that swap late |
“Needs improvement” and “poor” sit above those lines. A template that fails on mobile can drag every URL that uses it. A ranking drop after a redesign often shows up here, as a page experience issue, before it shows up as a keyword issue.
Page speed as an SEO ranking problem
Page experience does not outrank a clearly better page. It does decide close contests, and it decides whether Googlebot finishes rendering a JavaScript-heavy URL before it moves on. A slow website ranking is often this, not a missing keyword.
On Hong Kong sites the pattern is familiar:
- A full-width hero image, uncompressed, and lazy-loaded even though it is the LCP element
- Traditional Chinese webfonts downloaded before any text paints
- Tag managers, live chat, and a maps embed competing with the article on the main thread
- Cookie bars and sticky headers that push content down after the first paint
- The same heavy template on both the English and Traditional Chinese URLs
Check field data in Search Console’s Core Web Vitals report, not a single Lighthouse run on a desktop office connection. Mobile on a cellular network is the view that matches most local searches.
Fix the template. Compressing one blog image will not repair a font or a chat widget that ships on every page.
Why page experience is a GEO issue
Generative engine optimization needs a page a crawler can fetch and a passage it can quote. How to rank in AI search covers the shape of that passage. Speed and rendering decide whether the crawler ever sees it.
Many AI crawlers request the HTML and do not run the page’s JavaScript the way Chrome does. If the answer, the headings, or the comparison table appear only after hydration, the crawler stores a thin shell. A slow time to first byte makes that worse: the client may close the connection before the document finishes, so the citation is missing the section you wrote for it.
Layout shift matters less to a crawler than to a person. The shared failure is the same stack of scripts and images. A page that is heavy enough to fail INP is often heavy enough that the first response is not the article.
Do not “fix” this by blocking AI crawlers in robots.txt. Blocking Googlebot is an indexing problem, covered in the crawl guide. Blocking GPTBot, PerplexityBot, or Google-Extended can be a product choice, and it is a GEO issue if those products are where you wanted to be cited. It is not a page-speed fix.
A practical order of fixes
- Put the answer in the initial HTML. The title, the H1, the opening paragraph, and the table you want quoted should not depend on JavaScript.
- Give the LCP image a real size, a modern format, and a high priority. Do not lazy-load the element that is supposed to paint first.
- Reserve space for images, ads, and banners so CLS stays at or below 0.1. Set width and height, or an aspect ratio, before the file arrives.
- Cut main-thread JavaScript. Delay chat, maps, and non-essential tags until after the first interaction, or remove them from article templates.
- Subset or self-host the Chinese and English fonts you actually use. A full CJK family is a common LCP delay on bilingual Hong Kong sites.
- Read the Core Web Vitals report after the deploy, on mobile, and wait for new field data. A lab score can improve the same day. The ranking input moves when Chrome users have generated a new 75th percentile.
Then re-check the URL in Search Console and fetch the raw HTML the way a simple crawler would. If the passage is in that HTML and the field metrics are in the “good” range, a remaining citation gap is a content and entity problem, not a speed problem. Content formats AI platforms cite is the next step.
Questions teams ask
Do Core Web Vitals affect AI rankings?
They affect whether the page is retrievable and pleasant enough to compete. Google AI Overviews still lean on indexed pages, and other AI products cite pages their crawlers could fetch. A slow or JavaScript-only page can fail that step. Passing the three metrics does not by itself earn a citation. The page still needs a clear answer, stable facts, and an author, as described in the broader SEO and GEO issues guide.
What counts as a good LCP?
2.5 seconds or less at the 75th percentile of real visits. Between 2.5 and 4 seconds needs improvement. Above 4 seconds is poor. Measure the URL template your visitors actually hit, on mobile, not a throttled lab test of a cached desktop load.
Why is the mobile score worse than desktop?
The phone has a slower CPU, a less stable network, and often the same oversized image and script bundle. Hong Kong searches are heavily mobile. A desktop “good” rating can hide a mobile “poor” rating, and the mobile URL group is the one that matches those queries.
Will fixing page speed recover a ranking drop?
It recovers the part of the drop that page experience caused. It will not repair a noindex tag, a duplicate canonical, or a thin page. If Search Console shows an indexing exclusion, start there. If several URLs target the same query, fix cannibalization before you spend the month on milliseconds.
What to review this month
Open the Core Web Vitals report and list URL groups that are poor on mobile. For each group, name the LCP element, the longest JavaScript task, and any banner that shifts the layout. Ship one template change, confirm the answer is in the raw HTML, and leave the crawlers you want AI answers to use unblocked.
Page experience is a technical SEO issue with a GEO consequence: visitors never reach the answer, and crawlers never store it. Treat LCP, INP, and CLS as part of the same audit as indexing and duplicate URLs.