For years, developers optimised page speed with desktop users in mind — fast broadband, powerful CPUs, large screens. Mobile was a secondary concern. That calculation inverted in 2023 when Google completed its rollout of mobile-first indexing across all sites. Today, it is the mobile version of your page that Google crawls, evaluates, and uses to determine rankings. If mobile is slow, your rankings are slow.
The compounding factor: mobile networks are inherently less reliable than fixed broadband. A page that loads in 1 second on a wired desktop connection may take 3 seconds on a mid-range phone over 4G. Core Web Vitals data from the Chrome UX Report — the real-user data Google uses to assess page experience — reflects that slower, noisier mobile experience. Desktop lab scores don't tell the real story.
Key Takeaways
- Google indexes the mobile version of pages first (mobile-first indexing) — desktop speed is irrelevant if mobile is slow
- Mobile networks are slower and less reliable than broadband — a page that loads in 1s on desktop may take 3s on a 4G connection
- Core Web Vitals scores differ between mobile and desktop in GSC — Google reports them separately; the mobile scores are what matter for ranking
- Oversized images are the biggest mobile speed problem — desktop-sized images served to mobile devices waste bandwidth on connections that can least afford it
- The viewport meta tag (
<meta name="viewport" content="width=device-width, initial-scale=1">) is required for Google to classify a page as mobile-friendly
Mobile-First Indexing — What It Means
Google switched to mobile-first indexing in 2023 for all sites. This means:
- Googlebot uses a smartphone user-agent to crawl pages
- The mobile version of a page is the one Google indexes and uses for ranking
- If you serve different content on mobile vs desktop (dynamic serving or separate URLs), the mobile content is what ranks
- If your site has no mobile-optimised version, Google still crawls it with a mobile agent — but it will likely score poorly on mobile usability signals
The practical implication: if your mobile page hides content behind "read more" toggles, renders fewer words than the desktop version, or loads a stripped-down layout that omits key headings and structured data, Google's index sees the stripped version. Any content that exists only on the desktop layout is effectively invisible for ranking purposes.
Separate mobile subdomains (m.example.com) are still supported, but require correct rel="canonical" / rel="alternate" pairing. If that pairing breaks, Google may not correctly associate the mobile and desktop versions — leading to indexing anomalies. Responsive design (one URL, one HTML response, CSS-only layout changes) avoids this complexity entirely and is Google's recommended approach.
Mobile Core Web Vitals
Google Search Console reports Core Web Vitals separately for mobile and desktop. The mobile report reflects what real mobile users experience — collected from Chrome browsers on Android devices — and it is the mobile report that feeds into the page experience ranking signal.
The thresholds are the same for mobile and desktop, but they are significantly harder to achieve on mobile due to slower networks and less powerful CPUs:
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5s | 2.5s – 4s | > 4s |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1 – 0.25 | > 0.25 |
| INP (Interaction to Next Paint) | < 200ms | 200ms – 500ms | > 500ms |
Mobile LCP is consistently higher than desktop LCP for the same page. A page that scores Good on desktop LCP (<2.5s) may score Needs Improvement on mobile (>2.5s) simply due to network latency and slower image decode on a mobile CPU. The solutions are the same — optimise the LCP image, reduce render-blocking resources, improve TTFB — but the urgency is higher because mobile performance is what Google measures.
INP replaced FID (First Input Delay) as the interactivity metric in March 2024. INP measures the latency of all interactions throughout the page session, not just the first one. On mobile, INP problems are disproportionately caused by heavy JavaScript execution on a single-threaded CPU — long tasks that block the main thread and make the UI feel unresponsive to taps.
Viewport Meta Tag
Every page must include:
<meta name="viewport" content="width=device-width, initial-scale=1">
Without this tag, Google classifies the page as not mobile-friendly. Mobile browsers render the page at a fixed 980px desktop width, then scale it down to fit the screen — which means tiny text, tiny buttons, and mandatory horizontal scrolling. Google's mobile usability report in Search Console will flag this as "Viewport not set."
The initial-scale=1 prevents browsers from zooming in or out on initial load. Some developers add maximum-scale=1, user-scalable=no — this prevents users from pinching to zoom, which is an accessibility violation and also flagged by Google's mobile usability checker. Do not add those constraints.
Image Optimisation for Mobile
Images are the largest contributor to page weight on mobile and the highest-impact area for speed improvements. There are three distinct problems to address:
Oversized images. A 2400px wide hero image served to a 375px mobile screen transfers roughly 40x more data than necessary. The browser downloads the full image before displaying anything — that is wasted bandwidth on a connection that can least afford it. Use srcset and sizes to serve appropriately sized variants:
<img srcset="hero-375.jpg 375w, hero-750.jpg 750w, hero-1200.jpg 1200w"
sizes="(max-width: 600px) 375px, (max-width: 900px) 750px, 1200px"
src="hero-1200.jpg" alt="Hero image">
Legacy formats. WebP files are 25–35% smaller than JPEG at equivalent quality. AVIF is smaller still — typically 40–50% smaller than JPEG. Both formats are supported by all modern mobile browsers. Serve modern formats with a JPEG/PNG fallback using the <picture> element, or configure your CDN to serve WebP automatically via content negotiation.
No lazy loading on below-fold images. Mobile connections cannot afford to download images the user has not yet scrolled to. Add loading="lazy" to all below-fold images — it is a native HTML attribute, no JavaScript required. Never add it to the hero image or any above-fold image: those are LCP candidates and must start loading immediately.
Render-Blocking Resources on Mobile
Render-blocking scripts and stylesheets delay First Contentful Paint and LCP. The browser cannot display anything until it has parsed all render-blocking resources in the <head>. On a mobile CPU with a slower network connection, that delay is significantly longer than on desktop.
The key fixes:
- Add
deferto non-critical scripts — they download in parallel and execute after the HTML is parsed without blocking rendering - Inline critical CSS (above-the-fold styles needed for the initial viewport); load the full stylesheet asynchronously
- Preload the LCP image:
<link rel="preload" as="image" href="/hero.jpg">— tells the browser to fetch it at high priority before it discovers it in the HTML - Preconnect to third-party domains the page depends on:
<link rel="preconnect" href="https://fonts.googleapis.com">— eliminates DNS + TCP + TLS handshake time when the browser first requests a resource from that domain
Touch Targets and Mobile Usability
Mobile usability is a distinct signal from page speed, but both feed into the same page experience ranking factor. Google's mobile usability report in Search Console flags three categories of problems:
Touch targets too small. Buttons and links with a tap area smaller than 48×48px are difficult to tap accurately on a touchscreen. Users frequently mis-tap small targets and hit adjacent elements instead — this is measurable as a poor INP event. Pad links and buttons to at least 44×44 CSS pixels.
Content wider than screen. Elements with fixed widths (e.g. width: 800px) that exceed the viewport cause horizontal scrolling — a clear usability failure that Google flags. Use max-width instead of width for content blocks, and avoid fixed-width CSS on any element that could be wider than a mobile viewport.
Text too small to read. Text below 16px on mobile forces pinch-to-zoom, which is another usability signal. Set a base font size of at least 16px and use relative units (rem, em) rather than fixed px values for body text.
CLS on Mobile
Cumulative Layout Shift — unexpected movement of page elements during load — is a more visible problem on mobile than desktop. Smaller screens mean less space around elements, so a shift of even a few pixels causes a proportionally larger shift score. The most common causes:
- Images without explicit dimensions — add
widthandheightattributes to every<img>so the browser reserves the correct space before the image loads - Late-loading ads — ad slots injected after page load push content down; reserve space for ad slots with a min-height container
- Custom fonts causing FOUT — the flash of unstyled text as a web font loads can cause a layout shift if the fallback font has different line heights; use
font-display: swapand match fallback font metrics - Dynamic content injected above existing content — banners, cookie notices, and "back to top" bars added after initial render push content down; load them from the server or reserve space in the initial HTML
Testing Mobile Speed
Page Speed Inspector — measures TTFB, identifies the LCP candidate image, flags render-blocking resources, checks image dimensions, and reports compression. Run it on your homepage and your highest-traffic content pages. It gives you server-side timing data (DNS, TCP, TLS, TTFB) plus HTML analysis in a single pass.
Google Search Console — the Core Web Vitals report shows real-user data from the Chrome UX Report (CrUX), segmented by mobile and desktop. This is field data from actual Chrome users — more representative than any lab measurement. Check the mobile tab specifically; a good desktop score with a poor mobile score means your mobile visitors — and Google's crawler — are getting a slower experience.
What to prioritise. If your CrUX mobile data shows Poor LCP, start with the LCP image: is it preloaded, correctly sized for mobile, and in a modern format? If it shows Poor INP, profile your JavaScript for long tasks. If it shows Poor CLS, check for images missing dimensions and late-injected content. Fix the metric with the lowest field score first — that is where Google sees the most users having a poor experience.
Measure Your Page's Mobile Speed Signals
Free, no signup. The Page Speed Inspector measures TTFB, LCP image, render-blocking resources, and missing lazy loading — the specific signals that matter most for mobile Core Web Vitals.
Try the Page Speed Inspector Free →Affiliate disclosure: Some links on this page may be affiliate links. We only mention tools we've personally used and have an honest opinion about. Affiliate revenue helps keep ByteWaveNetwork's tools free and maintained. We are not paid by any of the tools compared in this article for favorable coverage.