Sydney troubleshooting
Sydney Mobile Menu Not Working: First Find Out Which Header You Have
Sydney has drawn its phone menu three different ways since 2015, and a site that has been updated for years may still be running the oldest one. Most repair advice online assumes the newest. That mismatch is why so many Sydney hamburgers stay broken after the owner has followed every tutorial.
October 16, 2026 · 9 min read
The short answer
A Sydney mobile menu usually fails because the Tablet/Mobile tab of the Header Builder lacks a Menu Toggle or Off-Canvas Menu, the site still runs the legacy header and its separate script, an optimization plugin delays or combines Sydney's functions.min.js, or another plugin's script, Max Mega Menu or an Elementor add-on, takes over the tap.
On this page
- Find your Sydney header generation before touching a setting
- Dead icon, blank drawer, doubled arrows: what each one points to
- Sydney's usual menu breakers, ranked
- The 1,024-pixel line, and the slider that moves half of it
- Restoring the Sydney drawer, one change at a time
- A short rulebook for the next Sydney release
- If the hamburger is the third thing to break this year
Find your Sydney header generation before touching a setting
Sydney's 2.71 code still carries three header systems. The oldest, which aThemes support calls the legacy or version 1 header, prints a logo, a small toggle button and the primary menu, and a script turns that menu into a dropdown on narrow screens. A later modern header split desktop and mobile layouts and added a Mobile header section. The current Header & Footer Builder, which support calls version 3, replaced both on new installs. Each one stores its phone settings in a different place, so a fix written for one does nothing for the others.
| How to recognize it | Where the phone settings live | What draws the hamburger | |
|---|---|---|---|
| Legacy (v1) header | No Header panel in the Customizer; a Menu layout section sits under Hero area | Menu layout section: sticky menu, menu style, container | A toggle with the class btn-menu beside nav#mainnav |
| Modern header, no builder | Header panel with separate Main header and Mobile header sections | Header > Mobile header: layout, off-canvas mode, menu icon | A menu-toggle link that opens the off-canvas panel |
| Header & Footer Builder | Header panel opens a drag-and-drop Header Builder with Desktop and Tablet/Mobile tabs | Tablet/Mobile tab, plus the Mobile Offcanvas area | The Menu Toggle component, placed in a mobile row |
If the Customizer leaves you unsure, view the page source on your phone or a desktop browser. A body class of has-shfb-builder means the builder is in charge. A div with the class btn-menu means the legacy header. Write the answer down, because every step below depends on it, and so does the advice in our Sydney header not showing guide.
Dead icon, blank drawer, doubled arrows: what each one points to
Test on a real phone, logged out, in a private tab, then match what you see. A logged-in desktop browser shrunk to phone width skips the page cache and usually skips script delay too, so it passes while customers fail. The general version of this diagnosis is in WordPress mobile menu not working; the Sydney version is narrower.
- No hamburger at all: the Menu Toggle is missing from the Tablet/Mobile rows, or the navigation behind it holds no menu list. Sydney's script hides the toggle on purpose in that case.
- The icon is there, the tap does nothing: the script never ran or ran late. Optimizers and script errors from other plugins come first.
- The drawer slides in, empty: the Off-Canvas Menu component is not in the Mobile Offcanvas area.
- The drawer shows the wrong links: a forgotten menu sits in the Mobile menu (optional) location, which overrides Primary.
- Two or three arrows beside parent items (legacy header): the old menu script has run more than once on the same page, explained below.
- It opens, then snaps shut: a second script is handling the same tap.
Sydney's usual menu breakers, ranked
The Tablet/Mobile tab was never filled in
aThemes' builder documentation is plain about this: the mobile header does not inherit the components you placed on the desktop. A site rebuilt in the builder on a laptop can ship with an empty phone header. Open Customizer, Header, Header Builder, switch to the Tablet/Mobile tab and confirm a Menu Toggle sits in a row. Then open the Mobile Offcanvas area and confirm the Off-Canvas Menu component is inside it. The drawer prints the Mobile menu (optional) location when something is assigned there, and Primary otherwise.
An optimizer got to functions.min.js
Sydney's menu code lives in js/functions.min.js, loaded in the footer with no jQuery dependency, and it starts as soon as the page is parsed. Delay-until-interaction features hold it back, so the visitor's first tap is the interaction that wakes the script and the tap itself is lost. Combining it into a bundle means an error in any earlier code in that file stops it. Exclude /themes/sydney/js/functions.min.js from delay and combine, purge every cache and retest. If you also ticked Disable jQuery Migrate under General, Performance, untick it while testing: an older plugin that relied on Migrate can throw an error that halts a combined file.
Max Mega Menu, an Elementor add-on or an old child theme
In the 2.71 builder code, if Max Mega Menu is enabled for the Primary location and nothing is assigned to Mobile menu (optional), Sydney skips its own Menu Toggle and prints the mega menu instead, so phone behavior follows Max Mega Menu's settings, not Sydney's. In one Sydney forum thread a hamburger that opened and closed at once was traced to an Elementor add-on pack; switching it off fixed it. The same thread found a child theme involved. A child theme carrying a header.php copied from an old Sydney release prints old markup that today's script does not expect.
Legacy header: the script that runs twice
Reading the 2.71 script, the legacy mobile menu repeats its setup on every window resize below 1,024 pixels. Each run adds another arrow and another tap listener to each parent item. Phones fire resize events when rotated, and some browsers fire them as the toolbar shrinks. The result is doubled arrows and sub-menus that toggle twice per tap, which looks like nothing happening. Reloading clears it for a while. Moving to the builder clears it for good, with the caveats below.
The 1,024-pixel line, and the slider that moves half of it
Sydney switches to its phone header at 1,024 pixels and below, so a tablet held sideways at exactly 1,024 pixels gets the hamburger, not the desktop menu. The builder exposes the number as Mobile Breakpoint in the Header Builder section, and the generated CSS follows whatever you set. Several of the theme's scripts do not. The sticky header and header search code in functions.js still test for 1,024 pixels directly.
So if someone moved the slider to, say, 900, there is a band of widths where the stylesheet shows the desktop header while the scripts behave as if the phone header were in charge. Put it back to 1,024 unless you have tested every width in between on real devices. The fastest way to spot a band like this is to rotate a tablet slowly in front of the site and watch what changes. Our WordPress theme mobile speed guide explains why tablets deserve their own test pass.
Restoring the Sydney drawer, one change at a time
- 1
Copy the site to staging
Every change below happens on a copy first. Sydney updates have changed headers before, and a broken live menu costs real visitors.
- 2
Identify the header generation
Use the table above. Do not paste builder advice onto a legacy site, or legacy CSS onto a builder site.
- 3
Check the menu locations
In Appearance, Menus, Manage Locations, confirm Primary holds your menu and that Mobile menu (optional) is either empty or deliberately set.
- 4
Check the builder's mobile layout
Header Builder, Tablet/Mobile tab: a Menu Toggle in a row, the Off-Canvas Menu inside Mobile Offcanvas, Mobile Breakpoint at 1,024.
- 5
Take the optimizer out of the picture
Turn off delay, defer and combine for JavaScript, purge page, host and CDN caches, and test logged out on a phone. If the menu works, add exclusions for functions.min.js and jQuery and switch the rest back on.
- 6
Read the console
Use remote debugging from a desktop browser. The first red error names the file at fault; theme JavaScript errors explains how to read it.
- 7
Isolate plugins
Disable Max Mega Menu, Elementor add-on packs and any menu plugin one at a time. The method is in theme plugin conflicts.
- 8
Push, purge, retest
Deploy the fix, purge every cache once more and tap through parent items and sub-menus on two phones before calling it done.
A short rulebook for the next Sydney release
Most repeat failures on Sydney come from three habits: updating the live site directly, tuning an optimizer on the live site, and testing only on a laptop. The forum record backs the first. Version 2.69 changed one owner's sticky header colors on scroll until they rolled back to 2.68, and aThemes could not reproduce it. Nobody can promise the next release is clean, so make the copy take the risk.
- Update Sydney, Elementor and every add-on on staging, then tap the hamburger on a real phone before pushing.
- Keep a written list of the scripts excluded from delay and combine, so the next plugin update does not quietly undo them.
- Do not enable the Header & Footer Builder on a legacy site with a pasted snippet on the live server. Sydney's own retired upgrade notice warned that old header and footer customizations would be lost, and in a recent forum thread the switch left one owner's header uneditable and footer gone.
- Give the Mobile menu (optional) location a short menu of its own, or leave it empty on purpose, and note which you chose.
- If the work keeps slipping, our hosting and maintenance plans run tested updates on a copy first.
Elementor sites have a second layer to watch, because builder sections can cover or push the header on phones. Elementor mobile layout problems covers that side, and the wider Elementor repair hub covers the rest. The Sydney-specific background is in our Sydney review.
If the hamburger is the third thing to break this year
A phone menu should be the most boring part of a website. On a Sydney site it depends on which of three header systems your install happens to run, on a theme script, on Elementor and its add-ons, on an optimizer that rewrites script loading and on a page cache that remembers yesterday. Each vendor tests its own piece. Nobody tests your combination except your customers. When the menu is slow rather than broken, the Sydney speed guide shows what competes with it for the phone's attention, and INP on WordPress and Next.js explains how a sluggish tap is scored.
In a Next.js build the menu is one component in one codebase, tested before each deploy, with nothing rewriting its scripts afterward. That costs more up front and needs a developer for structural changes. Sydney vs Next.js weighs the trade fairly, and Sydney to Next.js explains the move. If you would rather keep Sydney and have someone else find the broken piece, our theme troubleshooting team works on staging and reports what it changed. More fixes live in the troubleshooting section.
Questions people ask before they call
Your site most likely still runs the legacy version 1 header, which has no builder section. aThemes support enables the builder with a PHP snippet that switches on the hf-builder module, but old header and footer customizations do not carry over, and one owner's header and footer broke after the switch. Do it on staging and rebuild the header there, or ask our theme repair team.
At 1,024 pixels and below by default. The Header Builder has a Mobile Breakpoint setting that changes where its stylesheet switches, but some of Sydney's scripts, such as the sticky header and header search, still check 1,024 pixels. Changing the number can leave a band of widths where the two disagree, so test every width you change.
Sydney registers a second menu location called Mobile menu (optional). When a menu is assigned there, the off-canvas drawer prints it instead of Primary. Check Appearance, Menus, Manage Locations. Either assign a short, current menu to that location or leave it empty so the drawer falls back to your primary menu.
That is the signature of a delay-JavaScript feature in a caching or optimization plugin. The menu script waits for the first interaction, so the first tap wakes the script and is lost. Exclude Sydney's js/functions.min.js from delay and combine, purge all caches and test again logged out on a phone.
Sydney has built-in support for it, but with a twist. If Max Mega Menu is enabled on the Primary location and nothing is assigned to Mobile menu (optional), Sydney's builder prints the mega menu in place of its own toggle. Mobile behavior then depends on Max Mega Menu's own settings, which is where to look first.
Keep reading
- Sydney troubleshootingSydney Header Not Showing: Hero Settings, Legacy Headers and PhonesSydney header or hero image missing? Check Hero type, the 1,024-pixel image swap on phones, legacy headers, transparent rows and Elementor templates.
- Sydney troubleshootingSydney CSS Not Updating: The Theme Cache, the Child Stylesheet and the RestSydney styles stuck after a Customizer change? Learn the 2.70 CSS cache, the frozen child stylesheet version, Performance toggles and the caches to purge.
- Sydney speed guideSydney Theme Speed: The Hero Slider, the Elementor Front Page and the Settings That HelpSydney theme speed in practice: what the hero slider, preloader and Elementor front pages cost, the Performance toggles worth setting, and the fixes in order.
- Theme review, 2026Sydney Theme Review (2026): Elementor-Friendly, Under a New OwnerSydney theme review for 2026: what aThemes' new owner means, Sydney Pro prices and renewals, speed claims checked against the code, and the header bugs.
- Sydney, eleven years inSydney Theme vs Next.js: An Elementor Business Theme Against a Custom BuildSydney theme vs Next.js for Elementor business sites: Sydney Pro costs, header builder bugs, the Awesome Motive sale, and when a rebuild pays off.
- Sydney migration guideSydney Theme to Next.js: Moving the Slider, the Elementor Pages and the RestMove a Sydney theme site to Next.js: Customizer hero slider, Elementor pages, Sydney Toolbox projects and team, Sydney Pro modules, Starter Sites leftovers.
- Everything in WordPress TroubleshootingSee the section
Get your Sydney menu working on every phone
Tell us what happens when you tap the menu and which header your site runs, if you know. We will find the broken piece on a staging copy and fix it before it touches your live site.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.