By platform
WordPress mobile menu not working: trace the tap
The menu icon is there, a visitor taps it on a phone, and nothing opens. Mimiq sends simulated visitors through the same tap and shows the step where the menu stops responding.
Why is my WordPress mobile menu not working on phones?
On a phone the menu needs three things in order: the tap reaches the menu icon, a script opens the panel, and the panel with its links sits on screen where it can be tapped. A break at any one of those steps looks the same to a visitor, who sees a dead icon. A simulated test taps the icon the way a phone visitor would and reports which step stopped, with a screenshot of the header at that moment.
What this looks like in a report
“The three lines at the top right do nothing when I press them. A grey banner covers the top of the page, so I cannot tell whether I hit it. I cannot find the hours, so I will call instead.”
The fix. Stack the header and the cookie banner so the banner sits below the header's tap area, then exclude the theme's menu script from script combining and deferral in the caching plugin. Clear the cache and tap the icon at 390 pixels wide to confirm the panel opens.
An illustration. Run a test to see your own.See a real sample report
A cookie bar can take the tap meant for the menu icon
On a phone, a header menu is usually a small icon that only a script can open. Some themes size that icon in a way that looks right in a wide browser window, but leaves its tappable area smaller than the three lines the visitor sees. A sticky promotion bar, a cookie notice or a chat launcher can sit over the top of the header and take the tap before the icon does. Nothing reports an error in that case. The owner tests on a laptop, where the desktop navigation is always drawn, and never sees the phone path.
- Open the page at phone width and tap the menu icon. Note whether anything opens, even for a moment.
- Look at what sits over the icon. A cookie bar or sticky header on top means the tap never reaches it.
- Open the browser console and tap again. A script error at the tap means the menu handler did not load.
- Turn off caching and script optimization for one test. If the menu opens, the plugin is the cause.
- Tap a link inside the open panel. A panel that opens but cannot be tapped is a layering fault.
Where the tap goes on a phone
A phone menu is usually a small icon that a script opens. The theme draws that icon for small screens, and some themes size it so it looks fine in a wide browser window but leaves a tappable area smaller than the lines a visitor sees. Anything placed over the top of the header can take the tap first. A sticky promotion bar, a cookie banner, a chat launcher, or a desktop menu hidden with the wrong rule can all sit in that spot. The tap lands on that element, not on the icon, and the page shows no error.
A visitor cannot see this. They press the icon, see no change, press again, and then either scroll past the header or leave. The owner sees a working menu on a laptop, where the desktop navigation is always drawn and no banner sits in front of the header. The fastest check is to open the page at phone width and ask the browser which element sits at the icon's position. If that element is not the icon, you have a layering fault, and changing the script will not fix it.
The script that opens the panel
When the tap does reach the icon, a theme script has to change the menu's state. That script can fail in ways that only show on phones. A caching or optimization plugin may combine the theme's scripts into one file, delay them until after the first paint, or drop a file it wrongly thinks is unused. The menu is then left with an icon and no handler. The browser console shows a script error at the moment of the tap, or shows nothing because the handler was never attached. Watching the console while you tap is the only way to see this from outside the site.
The step and screenshot a dead tap leaves behind
A simulated visitor opens the page in a real browser at phone width, taps the icon the way a stranger would, and records each step. When the menu does not open, the report gives you the step, a screenshot of the header at that moment, and any script error recorded at the tap. The run does not read your theme files or your caching settings, so it cannot name the plugin. It shows that the fault is at the tap, which tells you where to look first. Run the same visitors again after a change to see whether the tap now opens the panel.
Mimiq is independent and not affiliated with the platforms it names. Names belong to their owners.
What you get with Mimiq
- 01
Run it by hand, or on every pull request
Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.
- 02
Bugs and usability problems in one report
The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.
- 03
Visitors that behave like your audience
Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.
- 04
A prompt to fix each problem
Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.
- 05
Follow every visitor
See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.
The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.
A theme or plugin update can bring the dead icon back
Menus break again after updates, because a new version of the theme or a caching plugin can rewrite how the header loads. A fix that worked on the last release can fail after the next one. After each update, run the same phone visitors from the homepage to the contact page and confirm the menu opens before you publish. Keep the screenshots, so you can see what the header looked like when it last worked.
Starter
Try it on one launch
About 4 tests of 5 visitors
- Visitors on your landing page, signup and checkout
- Where they left and why, with a fix to copy for each problem
- Run it in the app or on every pull request
- Ask any visitor a question, included
- Test accounts and protected previews
Builder
Test every build
About 20 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Pro
Test every release, as a team
About 60 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Scale
Test at scale, every day
About 240 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Priority support
- Cancel anytime
Questions
Does the menu work if I test it on my laptop?
Often it does, and that proves little. A laptop window shows the desktop navigation, so the icon and its script never run the way they do on a phone. Open the page in the browser's phone view or on a real phone and tap the icon there. A menu can work on a laptop and still fail for every phone visitor.
Can the test tell me how many phone visitors will use the menu?
No. It does not predict how many visitors will open the menu or leave because of it. It shows which step stopped a simulated visitor, with a screenshot and any script error from that tap. Real visitor numbers come from your analytics or from a live test.
Will a plugin update fix a broken menu?
Sometimes, and you cannot count on it. An update can repair the script, or it can rewrite the file the menu depends on. Treat every update as a change to check, then run the phone visitors again before you assume the menu works.
Does the test cover a menu that only members see?
Only if you give the visitors a way in. Visitors with no account see the public menu, which is what a standard run covers. A menu behind a login needs a test account, and that option is available with paid credits.
Why does the menu work after I clear the cache, then break again?
A cache keeps a stored copy of the page, and that copy can hold an old script order or an old icon. Clearing it removes the copy, but the next rebuild can store a broken one. Run the visitors with caching off, then with it on, to see whether the cache is the cause.
Keep reading
Send visitors and see what breaks first.
Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.