The viewport tag
Most mobile problems start here. Without this line in the page head, phones render the page at desktop width and shrink it:
<meta name="viewport" content="width=device-width, initial-scale=1">
Avoid user-scalable=no or maximum-scale=1, which stop people zooming and hurt accessibility.
Mobile-first indexing: what to check
Since Google reads the mobile version, make sure it isn't missing anything the desktop version has:
- Same main content. Text hidden on mobile may count for less, and text removed on mobile doesn't count at all.
- Same structured data and meta tags (title, description, robots, canonical).
- Same images with the same alt text.
- Links still present. Collapsed menus are fine; deleted links are not.
- No blocked resources. CSS and JavaScript must be crawlable so Google can render the layout.
How to check mobile-friendliness now
- This free checker: enter a page to check the viewport, font sizes, tap targets, page weight and other mobile basics in one go.
- Lighthouse in Chrome: open DevTools, choose Lighthouse, select Mobile and run a report.
- Chrome device mode: in DevTools, toggle the device toolbar to preview the page at phone sizes.
- Search Console Core Web Vitals report: shows real-user speed data for mobile.
- A real phone. Nothing beats tapping through your own checkout or form.
Common mobile problems and fixes
| Problem | Fix |
|---|
| No viewport tag | Add the viewport meta tag shown above |
| Text too small | Base font size of 16px or more |
| Content wider than screen | Use max-width: 100% on images and tables, avoid fixed widths |
| Tap targets too close | At least 48×48px buttons with space between |
| Intrusive interstitials | Use small banners instead of full-screen pop-ups |
| Slow on mobile data | Compress images, defer non-essential scripts |
Speed is part of mobile-friendliness
Mobile visitors are often on slower connections. Core Web Vitals (loading speed, responsiveness and visual stability) are measured separately for mobile, and they're part of Google's page experience signals. Large images and heavy scripts are the usual culprits.