GeneratePress troubleshooting
GeneratePress Header Not Showing: Rules, Hooks and Hidden Switches
On Friday someone tidied up the site and deleted an old promotion page. On Monday the header your designer built is gone from every page, and the plain logo-and-menu header from the theme's first install is back. Nobody touched the header. On GeneratePress, nobody had to.
October 14, 2026 · 8 min read
The short answer
When a GeneratePress header disappears, check four things: an Element whose Exclude rule went blank after an excluded page was deleted or unpublished, a Disable Elements setting on the page or in a Layout Element, a Site Header Block Element or generate_header Hook Element replacing the header, and a merged transparent header that is present but invisible. Then purge caches.
On this page
- Gone everywhere, gone on one page, or just invisible
- Where the GeneratePress header comes from
- The exclusion rule that turns into everything
- Disable Elements, the switch that hides headers on purpose
- Present but invisible, or missing only on phones
- Putting the GeneratePress header back
- Guarding the header against the next cleanup
- When the header depends on one rule too many
Gone everywhere, gone on one page, or just invisible
A missing header is one complaint with several shapes, and the shape tells you where to look. Before changing anything, open three pages logged out in a private window, one on a phone, and note exactly what you see.
- Your custom header is gone sitewide and the theme's default header is back. An Element's display rules changed, often without anyone editing the Element.
- No header at all on one page or one post type. Something on that page, or a rule covering it, is switching the header off.
- The header is missing only on phones. GP Premium's Mobile Header is on and hidden on that page, or the desktop header is merged differently on mobile.
- The header is there in the code but you cannot see it. A transparent, merged header is sitting over a background the same color as its text.
- The header vanished along with the whole layout. That is a different problem; start with theme broke after update.
Where the GeneratePress header comes from
The free theme's header.php does very little itself. It fires three hooks in order: generate_before_header, generate_header and generate_after_header. The theme attaches one function, generate_construct_header, to generate_header, and that function prints the header element with your logo, site title and header widget area. With Navigation Location on Float Right, the default, the primary navigation is printed inside that header too.
That design makes the header easy to replace, which is the point, and easy to lose, which is the problem. Anything that removes that one function from that one hook removes the header. GP Premium's Disable Elements module can do it per page. A Layout Element can do it across hundreds of pages. A Site Header Block Element replaces the whole header wherever its display rules apply, and a Hook Element on generate_header with Disable Site Header ticked does the same with your own HTML. Child theme code can unhook the function or, because it is pluggable, redefine it. And page builder templates such as Elementor Canvas skip the theme's header entirely.
The general WordPress header not showing guide covers header problems across themes. Here the useful fact is narrower: on GeneratePress, a missing header is almost always a setting doing what it was told.
The exclusion rule that turns into everything
Elements in GP Premium use display rules: a Location, an optional Exclude list and a Users condition. A user on the wordpress.org forums has reported a bug in the Exclude list. When a page or post named in an exclusion is deleted or unpublished, the exclusion field goes blank, and the blank rule excludes the Element from every page. There is no warning. The reporter says it has been open for years, and the thread was closed because premium products cannot be discussed on wordpress.org.
For headers the result is the Monday morning above. A Site Header Block Element set to Entire Site, excluding a landing page, stops applying anywhere the moment that landing page is trashed, so the theme's own header returns. If a separate Layout Element is still hiding the theme header, the page ends up with no header at all.
Deleting an old page should not be a design change. With this bug, it can be.
The check takes a minute. Open Appearance > Elements, open each header-related Element, and look at its Exclude rows for an empty field. Remove it, update the Element, and purge caches. For Elements that misbehave for other reasons, such as Users conditions, hook choice or priority, see GeneratePress Elements not displaying.
Disable Elements, the switch that hides headers on purpose
GP Premium's Disable Elements module adds a tab to the Layout meta box in the post editor with checkboxes for Top Bar, Header, Mobile Header, Primary Navigation, Secondary Navigation, Featured Image, Content Title and Footer. It is meant for landing pages. It is also easy to tick on a page that gets duplicated, and the copy inherits a missing header nobody remembers choosing.
In the block editor the Layout meta box can be hidden. The vendor's docs say to switch it on in the editor's Preferences, under General and Advanced. The meta box only works on single pages and posts; archives and the blog page take their layout from the Customizer or a Layout Element. A Layout Element has the same Disable Elements tab, applied by display rules, so a rule aimed at one post type can quietly cover another.
Present but invisible, or missing only on phones
A Header Element's Site Header tab can merge the header with a page hero. Merge with Content offers No Merge, Merge and Merge on Desktop Only, and the usual recipe sets the header background to transparent with light text over a dark image. If the hero image fails to load, or the Element is applied to a page whose featured image is missing, white text sits on a white page. Inspect the page: if the header element is in the HTML, this is a color problem, not a missing header.
Phones have their own header. GP Premium's Mobile Header replaces the regular header below the Mobile Menu Breakpoint, 768 pixels by default, and Disable Elements has a separate Mobile Header checkbox, so a page can lose it on phones only. A Header Element's Mobile Header Logo only shows when the Mobile Header is switched on in the Customizer. When the menu button disappeared along with the header, GeneratePress mobile menu not working covers the menu side.
Putting the GeneratePress header back
- 1
Check the HTML first
View the page source or inspect it and search for site-header. If it is there, treat it as a visibility problem; if not, something removed it.
- 2
Audit header Elements
In Appearance > Elements, open every Site Header Block Element, Header Element, Hook Element on generate_header and Layout Element. Look for blank Exclude rows, rules that cover the page, and a Disable Site Header tick.
- 3
Check the page itself
Open the page's Layout meta box, switching it on in the editor's preferences if needed, and clear any Disable Elements ticks for Header, Mobile Header or Primary Navigation.
- 4
Check the page template
If a builder template such as Elementor Canvas is selected in the page settings, the theme header will never print. Switch to the default template or a builder header.
- 5
Search the child theme
Look in functions.php and any snippets plugin for generate_construct_header or remove_action calls on generate_header, and comment them out on a staging copy.
- 6
Purge and retest
Clear the page cache, host cache and CDN, then check the same three pages logged out, on desktop and phone.
Guarding the header against the next cleanup
Most GeneratePress header problems start with a sensible change somewhere else: a page deleted, a page duplicated, a new Element added for a campaign. The defense is boring and effective.
- Prefer narrow Locations over Entire Site with a growing Exclude list; fewer exclusions means fewer chances for the blank-rule bug.
- Before deleting or unpublishing a page, search Appearance > Elements for rules that mention it.
- Use each Element's Internal Notes to record what it replaces and why.
- Keep a staging copy and test header changes there before they meet visitors.
Header Elements also interact with caching; GeneratePress CSS not updating explains the purge order. Our hosting and maintenance plans include tested updates and a check of key templates after changes, and the GeneratePress repair hub lists the theme's other recurring faults.
When the header depends on one rule too many
GeneratePress is a light, well-made theme, and the GeneratePress review gives it full credit. Its header system is flexible because it is assembled at runtime from hooks, modules and rules stored in the database. The same flexibility means a header can disappear when a page it never displayed on is deleted. The GeneratePress speed guide shows how little the theme weighs; the risk is in the rules, not the bytes.
In a Next.js build the header is a component in the codebase. Pages cannot switch it off by accident, and a deleted page cannot rewrite its rules. That costs more up front and needs a developer to change layouts. GeneratePress vs Next.js compares both fairly, and GeneratePress to Next.js explains the move. If you only need the header back today, our theme repair team can do that, and the troubleshooting section covers related faults.
Questions people ask before they call
A reported GP Premium bug: when a page named in an Element's Exclude rule is deleted or unpublished, the exclusion goes blank and excludes the Element from every page. Your Site Header Element stops applying and the theme's default header returns. Open the Element in Appearance > Elements, remove the empty Exclude row, update it and purge caches.
Usually the page's Layout meta box has Header ticked under Disable Elements, a GP Premium feature, or a Layout Element's display rules include that page. Duplicated landing pages often carry the setting over. A builder template such as Elementor Canvas also skips the theme header. Our GeneratePress and Elementor guide covers how the two share the page.
GP Premium's Mobile Header replaces the regular header below the Mobile Menu Breakpoint, 768 pixels by default. If Mobile Header is ticked under Disable Elements on that page, phones get no header. A Header Element set to Merge on Desktop Only can also make the two views look very different. Check both settings, then purge caches.
Yes, with a few lines of PHP in a child theme that remove generate_construct_header from the generate_header hook when a condition such as a page ID matches. GP Premium's Disable Elements tab does the same with a checkbox. Either way, write down what you hid; a forgotten rule is how most missing headers start.
It removes the logo, the main navigation on floated layouts and often the phone number, which costs calls and clicks before it costs rankings. Search engines can still crawl the page, but visitors lose their way around the site. Fix it quickly, and check the GeneratePress theme comparisons if you would rather have a visual header builder.
Keep reading
- GeneratePress troubleshootingGeneratePress Fonts Not Loading: Added, Assigned, Delivered?GeneratePress fonts not loading? Check the Font Manager and Typography Manager, Google Fonts blockers, missing variants and self-hosted @font-face paths.
- The last thing printedWordPress Footer Not Showing: Why the Bottom of Your Page Goes MissingWordPress footer not showing? See why a page stops before its footer, where footer widgets go after a theme switch, and how builder footers come unassigned.
- GeneratePress troubleshootingGeneratePress Mobile Menu Not Working: Find the Layer That BrokeGeneratePress mobile menu not working? Check script optimizers, the off-canvas panel, the Menu Plus mobile header and the 768px breakpoint, in that order.
- GeneratePress, fasterGeneratePress Speed: Tuning a Theme That Starts SmallGeneratePress speed, honestly: dynamic CSS caching, the print method, fonts, the 768px menu and the plugins that outweigh a sub-10kb theme, fixed in order.
- GeneratePress, reviewedGeneratePress Review (2026): A Theme That Wins by Doing LessGeneratePress review, checked October 2026: free vs GP Premium, the 768px menu, WooCommerce, the coming template engine and who should skip it.
- WordPress at its leanestGeneratePress vs Next.js: The Fairest Fight WordPress Can OfferGeneratePress vs Next.js, argued fairly: a sub-10kb theme, a $59 license for 500 sites, the coming template engine, and where a custom build still wins.
- Everything in WordPress TroubleshootingSee the section
Get your GeneratePress header back where it belongs
Tell us which pages lost the header and when it started. We will find the rule, hook or setting responsible, fix it, and show you how to keep it from happening again.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.