mobile-friendly test checklist showing viewport, touch targets, and font size requirements
Web Diagnostics

Mobile-Friendly Website Test — What Google Checks and How to Fix Failures

Sunny Pal Singh · · 7 min read

Google completed its mobile-first indexing rollout in 2021 — meaning Google now uses the mobile version of your site as the primary version for ranking. Not a secondary signal, the primary one. A site that works perfectly on desktop but fails on mobile is ranked on what the mobile crawler sees. This guide covers exactly what that mobile crawler checks, the most common failures, and how to test and fix them.

The shift to mobile-first indexing changed what "SEO" means at a fundamental level. Before 2017, Google crawled the desktop version of your site and ranked based on that. Today it crawls the mobile version first, and desktop rankings are derived from what Googlebot Smartphone sees. That means every desktop SEO win is contingent on passing a mobile readiness check first.

The practical consequences are significant: a beautiful desktop site that has a broken mobile layout, too-small fonts, or a missing viewport tag can rank substantially below what its content quality should produce. The ranking gap isn't from any penalty — it's from Google ranking what it actually sees, which is a degraded experience.

Key Takeaways

  • Mobile-first indexing is complete — Google ranks based on what Googlebot Smartphone sees, not the desktop version
  • A missing <meta name="viewport"> tag is the single most damaging mobile SEO mistake
  • Touch targets smaller than 48dp are flagged by Lighthouse and by Google's mobile usability report in GSC
  • Google's standalone Mobile-Friendly Test tool was deprecated in late 2023 — use PageSpeed Insights or GSC instead
  • Mobile page speed correlates directly with bounce rate — a 1-second delay in mobile load time increases bounce rate by ~32%

What Mobile-First Indexing Actually Means

When Googlebot Smartphone visits your site, it renders your page using a mobile viewport (360px wide by default), processes any JavaScript, loads CSS, and evaluates the result. That rendered experience is what gets indexed and scored.

If your desktop site shows 10 paragraphs of content but your mobile site hides 4 of them behind a "Read more" expansion that requires a click, Google indexes the collapsed version — the shorter content. If your desktop has rich navigation and your mobile has a stripped-down hamburger menu with fewer links, the mobile version's internal link structure is what Google follows.

The implication: mobile and desktop must deliver equivalent content, not just equivalent design. "Mobile-friendly" isn't just about layout — it's about content parity.

The Viewport Meta Tag — The Foundation

Without a viewport tag, mobile browsers render pages at desktop width (960–1024px) and then scale them down to fit the screen. Text becomes unreadably small; users have to pinch-to-zoom. Googlebot sees this as a fundamental mobile usability failure.

<meta name="viewport" content="width=device-width, initial-scale=1.0">

This tag must be in the <head> of every page. It tells the browser: "render this page at the device's actual width, at 1:1 scale." Without it, your responsive CSS is irrelevant — the browser doesn't know to apply it at the right breakpoint.

Check for the viewport tag by viewing page source and searching for viewport. Absence is immediate confirmation of a mobile usability problem. The ByteWaveNetwork SEO Analyzer flags VIEWPORT_MISSING as an info-level issue on every page that lacks it.

Common Mobile-Friendliness Failures

IssueWhat failsHow to fix
Missing viewport tag Page renders at desktop width, text unreadable Add <meta name="viewport" content="width=device-width, initial-scale=1.0">
Touch targets too small Buttons and links under 48×48dp — hard to tap accurately Set minimum tap target size in CSS: min-height: 48px; min-width: 48px
Text too small Body text under 16px requires pinching to read Set base font size to 16px; use rem units for scaling
Horizontal scroll Content wider than viewport forces side-scrolling Avoid fixed pixel widths; use max-width: 100% on images and containers
Intrusive interstitials Full-screen popups before content loads; penalised by Google since 2017 Use banners instead of full-screen overlays; show after first scroll, not on load
Render-blocking resources CSS/JS blocking first paint — worse on slow mobile connections Defer non-critical JS; preload critical CSS; use async/defer on scripts
Unoptimised images Desktop-sized images on mobile connections waste bandwidth and slow LCP Use srcset for responsive images; serve WebP; add loading="lazy" below fold

Core Web Vitals on Mobile

Google's Core Web Vitals — LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift), and INP (Interaction to Next Paint) — are measured separately for mobile and desktop. Mobile scores are consistently worse due to slower connections and lower CPU performance. A site scoring green on desktop can score red on mobile for the same URLs.

LCP on mobile is most commonly hurt by: hero images without fetchpriority="high", render-blocking scripts before the image, and uncompressed images over 150KB loading over 4G connections. The threshold is 2.5 seconds — achievable on desktop easily, harder on mobile.

CLS on mobile is hit by the same causes as desktop (images without dimensions, late-injected banners) but also by web fonts — font loading causes text to reflow as the custom font replaces the fallback. Use font-display: swap paired with a close fallback font metrics match to minimise CLS from fonts.

INP on mobile (response to user interaction) is degraded by heavy JavaScript on low-power devices. Main thread blocking that's imperceptible on a laptop becomes sluggish on a mid-range Android phone. Keep main thread tasks under 50ms; defer non-critical JS execution.

How to Test Mobile-Friendliness

Google Search Console — Mobile Usability report. Under "Experience → Mobile Usability," GSC lists every page with detected mobile usability issues. Issues include clickable elements too close together, content wider than screen, text too small to read, and viewport not set. This is the most authoritative report because it uses real Googlebot Smartphone crawl data, not a simulation.

PageSpeed Insights. Run any URL through PageSpeed Insights for field data (from real Chrome users via CrUX) and lab data (Lighthouse simulation). The mobile tab shows Core Web Vitals scores specifically for mobile. The Opportunities and Diagnostics sections list specific items to fix.

Chrome DevTools Device Simulation. Open DevTools, toggle Device Toolbar (Ctrl+Shift+M), and simulate specific devices. This shows what the page looks like at mobile dimensions and helps spot layout overflow, tap target issues, and font size problems. Pair with the Lighthouse tab for automated audit results in the simulated context.

ByteWaveNetwork Page Speed Inspector. Tests TTFB, DNS/TCP/TLS timing, compression, render-blocking resources, and image optimisation against the actual server response. While not a full mobile simulation, the performance signals it surfaces — render-blocking scripts, missing lazy loading, uncompressed responses — directly correlate with slow mobile Core Web Vitals. TTFB over 600ms, for example, is worse on mobile because the TCP handshake takes longer over cellular connections.

Desktop vs Mobile: Where Rankings Diverge

FactorDesktop impactMobile impact
Viewport tag missing None Severe — page renders at wrong width
LCP > 2.5s Moderate score penalty Higher penalty — Google weights mobile CWV more heavily for mobile queries
Render-blocking CSS/JS Notable but recoverable Compounded by slower connections — double the time-to-paint penalty
Content hidden behind JS Low impact on desktop crawl Mobile-first indexing crawls mobile version — hidden content not indexed
Intrusive popup on load No direct penalty Google mobile interstitial penalty since January 2017 — ranking demotion

A Practical Mobile Audit Checklist

Foundation checks (must-pass):

  • Viewport meta tag present on every page
  • Body text at 16px minimum (CSS font-size on body element)
  • No horizontal scroll (test by narrowing browser to 360px)
  • Touch targets ≥ 48dp with ≥ 8dp spacing between adjacent targets
  • No full-screen interstitials blocking content on page load

Performance checks (directly affect Core Web Vitals):

  • LCP image has fetchpriority="high" and no loading="lazy"
  • Images below fold have loading="lazy"
  • All images have explicit width and height attributes to prevent CLS
  • Render-blocking scripts deferred or moved to body
  • TTFB under 600ms for mobile connections
  • Responses gzip/brotli compressed

Test Your Page Speed and Render-Blocking Resources

Free, no signup. The Page Speed Inspector checks TTFB, compression, render-blocking resources, image lazy loading, and more — the performance signals that drive mobile Core Web Vitals.

Try the Page Speed Inspector Free →
SP

Sunny Pal Singh

Fellow · Technical Director — AI Infrastructure, Cloud Orchestration & Network Automation

Sunny is a Fellow and Technical Director specialising in AI infrastructure, cloud orchestration, and network automation. With hands-on depth across AWS, Azure, GCP, Red Hat OpenStack, and OpenShift, he leads high-performing teams of architects and engineers building transformative solutions at scale. He built ByteWaveNetwork to bring the same engineering rigour to everyday web tooling.

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.

Choose design