A missing menu and an unclickable mobile toggle are different failures. WordPress may render the wrong menu location, the theme may output valid links hidden by CSS, or JavaScript may fail before the toggle attaches.
Inspect the rendered HTML and first browser error before rebuilding the menu.
Define the failure
Record page, viewport/device, logged-in state, language and whether the menu is absent, wrong, visually hidden or does not open.
Compare desktop and mobile markup. Test keyboard activation as well as touch/click.
Capture:
menu location/name
toggle element/ARIA state
first Console error
loaded theme navigation script
overlay/stacking context
cache status
Avoid screenshots containing private menu items.
Check WordPress menu assignment
In Appearance > Menus or Site Editor, confirm the intended menu/navigation block is assigned to the theme location for each language.
A theme update can rename locations; switching themes can leave the old assignment orphaned. Do not delete the menu merely because its location is unassigned.
Export/screenshot structure before changing complex menus.
Inspect rendered markup
View source/Elements. If links are absent, investigate WordPress location/template/block data. If present, inspect CSS and JavaScript.
Check duplicate IDs, missing button target and whether the toggle controls the correct menu container:
<button aria-controls="site-navigation" aria-expanded="false">Menu</button>
<nav id="site-navigation">...</nav>
Labels and focus behaviour must remain accessible.
Read the first JavaScript error
Open Console, reload and activate once. An earlier error from optimisation, consent, slider or theme code can stop menu initialisation.
Verify the navigation script returns 200 and correct content type. A cached old script may expect markup from the previous theme version.
Do not add a second click handler until the original event path is understood; double handlers can immediately open and close the menu.
Check overlays and CSS
Cookie banners, chat widgets, sticky headers and transparent elements can intercept taps. Use the element picker and computed z-index, pointer-events, overflow and positioning.
Test with keyboard focus. Avoid arbitrary maximum z-index values or disabling pointer events on consent controls.
Check media-query breakpoints and browser zoom; a menu can be hidden at intermediate widths.
Review block-theme navigation
Navigation blocks store menu/entity data differently from classic menus. Confirm the header template part contains the intended navigation and that changes were saved/published.
Compare customised database template with the updated theme file. Export before resetting.
Reusable patterns/synced blocks may update several pages; test scope before editing.
Check multilingual menu relationships
English, Spanish and Catalan pages may use separate menu entities or translated navigation blocks. Confirm each language header/template resolves the intended menu and every translated link targets a published page.
Do not duplicate the base menu without reviewing language switchers, custom links and hierarchy. Test fallback behaviour when a translation is absent and avoid sending visitors silently to an unrelated language/homepage.
Provide a usable no-script baseline
Critical navigation should remain understandable if JavaScript fails. Links can be visible by default and enhanced into a collapsible menu, with CSS/HTML that does not permanently hide them before initialisation.
If design requires a script-only drawer, provide an accessible fallback link/sitemap and monitor initialisation. Do not solve a broken toggle by exposing two overlapping menus to screen readers.
Check cache and generated assets
Purge only relevant page/asset caches and use versioned CSS/JS. Test after CDN/page cache is warm.
HTML and script from different releases cause intermittent behaviour. Ensure deployment changes both atomically.
Do not publicly cache role-specific/private menu output.
Verify navigation completely
Test nested items, current-page state, Escape/outside click, focus return, scroll lock, orientation and representative browsers. Follow every critical link/language.
Monitor front-end JavaScript errors after release. Recurring care should include an automated mobile-menu interaction test; a visible hamburger icon is not proof navigation is usable.