How to Make a Website Mobile Friendly
A mobile friendly website loads with the correct viewport, reflows to a 360-pixel screen without sideways scrolling, keeps body text at 16px or larger, gives tap targets 48px, and delivers the main content within 2.5 seconds. Fix the theme and viewport first, then images, fonts and forms, and confirm with a mobile Lighthouse run.
For WordPress owners whose analytics show phone visitors bouncing off a layout built for desktop.
knowledge
- Read time
- 6 min
- Sections
- 8
- Updated
- 14 Nov 2026
- Written by
- WebJi® team
Last editorial update: 15 November 2026.
What does a mobile friendly website have to pass?
A mobile friendly site reflows to a 360-pixel screen with no sideways scrolling, keeps body text readable without zooming, and loads its main content within 2.5 seconds. Those three conditions cover what Google measures and what a phone visitor actually feels. Google indexes the mobile rendering of a page first, so anything hidden on small screens is also hidden from the index, and Core Web Vitals field data comes from real Android phones, not your laptop.
- No horizontal scroll: the page fits at 360 CSS pixels, the width of a common budget Android screen.
- Readable text: body copy at 16px or larger, line height near 1.5, headings from 24px up.
- Thumb-sized targets: buttons and menu links at least 48 by 48 pixels with 8px of space between them.
- Core Web Vitals: LCP under 2.5s, INP under 200ms and CLS under 0.1 at the 75th percentile of mobile field data.
The vitals thresholds are Google's published "good" cut-offs, and INP replaced FID as the responsiveness metric in March 2024. A page can pass one and fail another, so read all three numbers, not a single score.
What should you fix first on a site that breaks on phones?
Fix the viewport tag and the theme before anything else, because every other fix depends on them rendering correctly. On a normal WordPress site the whole sequence below takes an afternoon, and each step removes the cause of the next symptom.
- Open the site on a phone. At 360 pixels wide, note the first failure you see: sideways scroll, tiny text, a menu that will not open, or a slow hero image. That note is your work order.
- Confirm the viewport tag. The head must carry
<meta name="viewport" content="width=device-width, initial-scale=1">. WordPress themes print it automatically; if it is missing, change the theme instead of patching templates. - Switch to a responsive theme. Block themes such as Twenty Twenty-Five, or classic themes like Astra, GeneratePress and Kadence, ship responsive layouts. Preview a long post and a table, not just the home page — the theme installation guide walks through safe switching.
- Replace fixed pixel widths. In custom CSS, swap
width: 1200pxfor percentages ormax-width: 100%. One fixed container is what forces every phone into sideways scrolling. - Resize and recompress images. Export heroes at display width in WebP or AVIF, keep the hero eager and preloaded, and lazy-load everything below the fold — the WebP conversion guide covers the workflow.
- Fix form inputs. Set input font-size to 16px, cut required fields to the ones you read, and add
autocompleteattributes for name, email and phone. - Re-test on the phone. You are done when the page fits at 360 pixels, the menu opens with a thumb, and mobile LCP reads under 2.5 seconds.
Which layout problems do phones expose most often?
Five failures cover almost every broken mobile layout: a missing viewport tag, fixed pixel widths, wide tables, hover-only menus and intrusive pop-ups. Match the symptom to the fix, reload, and move on.
| Symptom on the phone | Usual cause | Fix |
|---|---|---|
| Page looks zoomed out, text tiny | No viewport meta tag | Add the tag, or move to a theme that prints it |
| Content runs off the right edge | Fixed pixel width on a container or image | width: 100%; max-width: 100%; height: auto |
| One wide table drags the whole page | No scroll container on a wide element | Wrap it in a div with overflow-x: auto |
| Menu will not open | Desktop-only hover navigation | Enable the theme's mobile toggle menu |
| Pop-up covers the screen on load | Timed pop-up plugin | Trigger after scroll or disable on mobile |
A wide table deserves a scroll wrapper rather than display: none. The wrapper keeps every row readable by swipe; hiding the table removes the data from phones and, with mobile-first indexing, from Google's copy of the page too.
How do you make text, buttons and forms comfortable for a thumb?
Give body text 16px or more, tap targets 48 by 48 pixels with 8px gaps, and single-column layouts below 768 pixels. A thumb is roughly a 48-pixel contact patch and far less precise than a mouse pointer, so cramped links produce mis-taps and bounces.
- One column on phones, two from 768px, the full desktop grid from 1024px.
- Form inputs at a 16px font — below that, iOS Safari zooms the page on focus and the visitor pinches back out.
- Correct keyboards via
inputmode="tel"andautocomplete="email", so the phone stops fighting the typist. - Left-aligned paragraphs; centred text only for short headlines.
- Short forms: name, email, message. Every extra required field costs completions.
How much does page weight matter on Indian mobile networks?
On 4G, mobile speed is a weight problem before it is a code problem, and the hero image is usually the largest item on the page. A 2MB hero is the typical reason a page misses the 2.5-second LCP target; resizing it to display width in WebP often fixes more than any CSS change.
- Hero image: resized, WebP or AVIF, loaded eagerly and preloaded — it is usually the LCP element.
- Below the fold:
loading="lazy"on every in-post image; the lazy-load guide shows plugin and code methods. - Fonts: at most two families,
font-display: swap, subset to the characters used. - JavaScript: deferred, with unused third-party widgets removed — the extra chat box, the second analytics tag.
- Hosting: cached HTML and compressed assets do more for a phone than any CSS tweak.
The full lever-by-lever breakdown, including caching configuration and measured results, is in the WordPress speed guide.
How do you test the result, and on what?
Test in Chrome DevTools first for layout, then PageSpeed Insights for field data, then on a real phone over mobile data for touch. Emulation catches a broken grid; it cannot tell you whether the menu opens with one thumb on a slow connection.
- Device toolbar: press F12 in Chrome, open the device toolbar, pick Pixel 7 or iPhone 14, reload, check for sideways scroll at 360-390px.
- Lighthouse mobile run: read LCP, INP and CLS individually rather than the single score.
- PageSpeed Insights: paste the live URL — the field section is real visitors; the lab section is one simulated run. The free WebJi® speed test gives the same picture without the developer tools.
- Real phone: open the URL over mobile data, then use the menu, a form and the checkout with one thumb.
Why does a mobile fix sometimes not show up?
When a layout still breaks after the edit, something is serving the old CSS — a cache layer, a plugin stylesheet or a page-builder section with saved fixed widths. Check these in order before touching the theme again.
- Clear the WordPress cache plugin, the host cache and the CDN, then reload in a private window.
- Deactivate plugins one at a time, or use Health Check to test with all of them inactive.
- Read Appearance → Customize → Additional CSS for a leftover fixed width.
- Check the child theme: an old override there beats the parent theme's fix.
- Reopen page-builder sections saved with fixed padding or column widths, which keep those widths on every screen size.
When does a mobile rebuild make more sense than patching?
If a site needs a new theme, image re-export and form rework together, a mobile-first rebuild in one pass usually costs less than patching page by page. WebJi® builds and repairs mobile-first WordPress sites, and its WordPress hosting starts at ₹400 a month before 18% GST, with caching and CDN configured for phone traffic. Where the problem is specifically Core Web Vitals, the WordPress speed optimization service works on LCP, INP and CLS directly. Work is scoped and quoted before payment; write to support@webji.services, answered in Hindi and English 24/7 with an average first reply under 60 minutes.
Frequently asked questions
How do I make my website mobile friendly without a full rebuild?
Most WordPress sites need a responsive theme, the viewport tag, one CSS width fix and recompressed images — not a rebuild. Switching from a fixed-width theme to Astra, GeneratePress or a block theme, then exporting heroes as WebP, removes the majority of mobile complaints in a single sitting.
Does hiding a section on mobile hurt its SEO?
Yes. Google indexes the mobile rendering first, so content hidden with display: none on small screens is treated as absent from the page Google reads. Keep the content and restyle it — collapse long sections behind an accordion, or wrap wide tables in a horizontal scroll container instead of hiding them.
Why does iOS Safari zoom in when I tap a form field?
Safari zooms any input whose font-size is below 16px, assuming you need a closer view to read it. Set input, select, textarea { font-size: 16px; } in your stylesheet and the auto-zoom stops, which also makes the field's own text readable without pinching.
Is a passing desktop PageSpeed score enough?
No. Core Web Vitals are assessed from mobile field data — real Android phones on real networks — and a page can score well on desktop fibre while failing LCP on 4G. Always run the mobile report and read LCP, INP and CLS separately; a single aggregate score hides which metric failed.
How long does a typical mobile-friendly fix take?
A theme-and-images pass on a normal WordPress site takes an afternoon: viewport check, responsive theme, CSS width fixes, image re-export and a Lighthouse re-run. Sites with page-builder layouts, custom themes or dozens of fixed-width sections take longer because each saved section keeps its own widths.
Last editorial update: 15 November 2026. Prices follow the dated sources on this page; checkout confirms current charges.
Ready to get started with WebJi®?
Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.