WordPress Site Not Displaying Correctly on Mobile
Horizontal scrolling, tiny text and a broken menu each have a specific cause. Reproduce the problem in a device emulator, find the element that overflows, and fix the rule.
Reproduce it first. Open DevTools, switch to device emulation, and set the viewport to 375 × 812. Most mobile layout problems appear immediately at that width, and having the inspector open is what makes them fixable.
Symptom 1: the page scrolls sideways
One element is wider than the screen. Find it rather than guessing:
/* Temporarily outline everything to spot the overflow. */
* { outline: 1px solid red; }
Or in the console:
document.querySelectorAll('*').forEach(el => {
if (el.offsetWidth > document.documentElement.clientWidth) console.log(el);
});
Common culprits and their fixes:
| Culprit | Fix |
|---|---|
| An image with a fixed width | max-width: 100%; height: auto; |
| A wide table | Wrap in a container with overflow-x: auto |
| A long URL or code string | overflow-wrap: anywhere |
| A full-width section with negative margins | Constrain with max-width: 100vw and remove the margin at small widths |
| An embedded iframe | width: 100% and an aspect-ratio container |
| A fixed-width container in a builder | Change the width unit from px to % at the mobile breakpoint |
Do not fix this with overflow-x: hidden on the body. It hides the symptom, breaks sticky positioning in some browsers, and leaves the offending element there.
Symptom 2: text is tiny, and the whole page is zoomed out
The viewport meta tag is missing. It should be in the head:
<meta name="viewport" content="width=device-width, initial-scale=1">
Without it, mobile browsers render at a virtual desktop width and scale down. If it is missing, the theme is not outputting it — check that wp_head() is present in header.php, since a missing call removes this along with stylesheets and scripts, as CSS not loading describes.
Never add user-scalable=no or a maximum scale. Preventing zoom is an accessibility failure.
Symptom 3: the mobile menu does not open
Three moving parts: the hidden list, the toggle button, and the script joining them.
- Check the console for a JavaScript error — one error anywhere stops the theme's navigation script.
- Disable JavaScript combination and deferral in the performance plugin, then purge and retest. This is the most frequent cause.
- Confirm the theme has a menu assigned to any mobile-specific location it registers.
- Check
z-index— the menu may be opening behind a sticky header.
The full sequence is in WordPress menu not showing.
Symptom 4: it looks right for you and wrong for visitors
Caching, in one of two forms:
- A separate mobile cache. Some hosts and plugins cache desktop and mobile variants separately; purging one leaves the other stale. Purge everything, per how to clear the WordPress cache.
- Your own browser cache. Test in a private window on the actual phone, not the browser you have been working in.
Symptom 5: only one section is broken
Almost always a page builder breakpoint. Builders keep per-device values, and a setting changed in desktop view does not apply to the mobile view when that value has been overridden there.
Check every breakpoint in the builder's responsive switcher — padding, font size, column width and alignment are all stored separately. For Elementor specifically, see Elementor changes not showing.
Symptom 6: tap targets are too small or too close
Buttons and links need enough size and spacing to hit reliably:
.button, nav a {
min-height: 44px;
padding: 0.75rem 1rem;
}
Adjacent links in a row of icons are the usual offenders. Search Console reports this under mobile usability, and it is worth fixing for real users rather than for the report.
Symptom 7: forms are awkward on a phone
- Use the right input types —
email,tel,number— so the correct keyboard appears. - Keep labels visible rather than relying on placeholders.
- Make sure the submit button is reachable without the keyboard covering it.
- Test an actual submission on a phone, including any captcha, per how to add reCAPTCHA to a form.
Test properly before calling it fixed
- Emulate 375 px, 390 px and 414 px widths.
- Test in landscape as well as portrait.
- Check on a real iOS device and a real Android device — rendering genuinely differs.
- Load over mobile data rather than office Wi-Fi.
- Walk through a real task: find a page, read it, submit a form or complete a purchase.
The design principles behind getting this right the first time are in the responsive web design checklist.
Frequently asked
- One element is wider than the viewport — usually a fixed-width image, a table, a long unbroken string, or negative margins on a full-width section.
- Emulators approximate. Real devices differ in font rendering, safe areas, browser chrome and cached assets, so always confirm on hardware.
- No. Responsive CSS in one theme is the standard approach; separate mobile themes and m-dot sites create duplicate content and maintenance overhead.