Missing site header
Twenty Twenty-Five Header Not Showing: Deleted Parts, Swapped Parts and Headerless Templates
In Twenty Twenty-Five, the header is not a setting. It is a block in each template that points at a template part by name. Delete that part, swap it, hide it or build a template without it, and WordPress prints nothing at all, usually without a word of warning.
October 17, 2026 · 8 min read
The short answer
A Twenty Twenty-Five header usually vanishes because the page's template no longer contains the Header template part, the part it names was deleted or replaced in the Site Editor, the block was hidden, or the page uses a custom template built from a full-page pattern with no header. Check the page's template first, then its List View.
On this page
- Map the gap before you touch anything
- How Twenty Twenty-Five stitches a header onto each page
- Six ways the header drops out, in the order we find them
- Bringing the header back without rebuilding the site
- A landing page without a header, done on purpose
- Keep the next editor from losing it again
- Five storage places for one strip of pixels
Map the gap before you touch anything
Where the header is missing tells you which record to open. A header gone on one page points at that page's template. A header gone on every page points at the template part itself, or at every template having been edited the same way. A header gone only on phones points at a visibility rule. Spend two minutes on this map and the fix usually takes five.
- One page, everything else fine: the page was assigned a custom template, or its template was edited for that page alone.
- All pages, posts still fine: the Pages template lost its header; posts use the Single Posts template.
- Everywhere at once: the header template part was deleted, emptied or hidden, or the site switched themes.
- Only on phones or only on desktop: a viewport visibility rule from WordPress 7.0 or later.
- Header there, but blank: the parts are present and printing nothing visible.
This page covers Twenty Twenty-Five's mechanism specifically. For builders, classic themes and header plugins, start with the general guide to a missing WordPress header.
How Twenty Twenty-Five stitches a header onto each page
Every one of the theme's eight templates (404, archive, home, index, page, page-no-title, search and single) begins with a Template Part block naming the slug header. That part, parts/header.html, contains one instruction: insert the twentytwentyfive/header pattern, which is the Site Title block beside a Navigation block. There is no logo block in the default header, so a site with an empty Site Title in Settings, General shows a header with nothing on its left.
Two more header-area parts ship with the theme: vertical-header, used by the vertical-header blog designs, and header-large-title. Extra header patterns, centered, columns and large title among them, can be swapped into the header part from the Design tab of its inspector. Once you edit any of this in the Site Editor, WordPress saves your version in the database, and that copy beats the theme's file from then on.
Six ways the header drops out, in the order we find them
1. A custom template built from a full-page pattern
Twenty Twenty-Five's full-page patterns are generous: Business homepage, Coming soon, Portfolio homepage, Shop homepage and landing pages for a book, an event and a podcast. Each is registered for templates as well as pages, and none contains a header. Start a new template from one, assign it to a page, and that page has no header by construction. Check: open the page, look under Summary at the Template name, then open that template and search List View for a Header part.
2. The header block was deleted from a shared template
An owner wants a clean landing page, opens the template, deletes the Header block and saves. The template was Pages, so every page loses its header. Check: in Appearance, Editor, Templates, any template showing as customized is a candidate. Open Pages first.
3. A header part that someone created, then deleted
Theme-supplied parts cannot be deleted from the editor, only reset. Parts you create can. If a template was pointed at a custom part, say Header with phone number, and that part was later deleted, the template still names it and prints nothing. Check: turn on WP_DEBUG and WP_DEBUG_DISPLAY on a staging copy and look for the deleted-or-unavailable message with the slug.
4. Replaced with a different part or design
Switching a template to a vertical-header design moves the header to the side of the page and collapses its menu behind an icon. Choosing a pattern in the Design tab replaces the header's contents. Neither deletes anything, but either can look like a missing header to a visitor expecting the old one. Check: List View names the part each template uses.
5. Hidden, not removed
Since WordPress 6.9, a block's Options menu offers Hide, which keeps the block out of the published page entirely. WordPress 7.0 added hiding per viewport, which keeps the markup but hides it with CSS on mobile, tablet or desktop. List View marks hidden blocks with an icon. Check: look for that icon beside the Header part and its Group.
6. A theme switch, child theme included
Site Editor templates and parts are saved against the active theme. Activate a child theme and those records stay behind: templates and parts fall back to the theme files, and everything built in the editor, custom header parts included, seems to vanish. Check: Appearance, Themes; did the active theme change recently?
Bringing the header back without rebuilding the site
- 1
Back up the database
Templates, parts and their history live there. Take a backup before resetting anything, so a wrong click costs nothing.
- 2
Find the template the page uses
Edit the page and read the Template name under Summary. Open it with Edit template, then open List View.
- 3
Restore a stock template if it was edited
In Appearance, Editor, Templates, open the template's three-dot menu and choose Reset. This clears your changes to that template and restores the theme file's version, header included.
- 4
Or add the header back by hand
If the template holds work you want to keep, insert a Template Part block at the top, click Choose, and pick Header. Set its HTML element to header under Advanced.
- 5
Repoint templates at a part that exists
Where a deleted custom part was named, select the empty Template Part block and choose an existing header part instead, or delete the block and insert a fresh one.
- 6
Clear Hide rules
Select the header part and its wrapper Group, then use Show in the block toolbar for any viewport where it was hidden.
- 7
Purge caches and test logged out
Page cache, host cache, CDN. Then check one page, one post and the home page on a phone and a laptop.
If the header returns but its menu misbehaves, carry on with Twenty Twenty-Five mobile menu not working. If the header returns looking unstyled, Twenty Twenty-Five CSS not updating explains where block theme styles are stored.
A landing page without a header, done on purpose
Sometimes the header should be missing: a paid ad landing page, a coming-soon screen, a link-in-bio page. The safe way is a dedicated template. Create a custom template named for its job, such as Landing, no header, build it from one of the full-page patterns, and assign it only to the pages that need it. Never edit Pages or Single Posts for a one-off.
Name it plainly, because the name is the only clue the next editor gets. And remember the trade: a headerless page has no menu, so give it its own way back to the site, or accept that it is a dead end by design. The Twenty Twenty-Five review lists the patterns worth starting from, and the speed guide explains why a landing page built from those patterns needs its hero image sized before launch.
In a block theme, a header is a promise each template makes. Break it in one template and only that template's pages notice.
Keep the next editor from losing it again
- Keep a short log of every template and template part edited in the Site Editor, with the date and the reason.
- Create one-off templates for one-off pages, and leave the shared templates alone.
- Do not delete a custom header part until List View confirms no template still uses it.
- Before activating a child theme, move your Site Editor work into theme files; the WordPress.org Create Block Theme plugin has a Create Child Theme option that carries customizations across.
- After any theme switch, open three page types, logged out, before calling the job done.
When an update, not an edit, came just before the loss, see fixing a theme that broke after an update. Owners who would rather not hold all of this in their heads can hand it to our hosting and maintenance plans, which check templates after every change.
Five storage places for one strip of pixels
Count the places that decide whether this header appears: the template file, the template's database copy, the part's file, the part's database copy, and the block's visibility metadata, with the active theme deciding which copies count. Each is reasonable. Together they make a header that can disappear without any error, which is the honest cost of letting anyone with an admin login redesign the site in the browser.
For a blog or a club site, that flexibility is worth it. For a business that depends on its header to carry a phone number and a booking button, a single layout component in code is calmer. On Next.js, removing the header from any page means changing code, and code changes go through review and a test build first. See the trade-offs in Twenty Twenty-Five vs Next.js and the path in moving Twenty Twenty-Five to Next.js. More fixes live in the WordPress troubleshooting hub; for hands-on help, our theme troubleshooting team or theme repair service can restore the templates for you.
Questions people ask before they call
That page almost certainly uses a different template. Edit the page and read the Template name under Summary. If it is a custom template, open it and check List View for a Header part. Templates built from the theme's full-page patterns start without one, so add a Template Part block and choose Header.
A template names a template part by its slug, and WordPress cannot find a part with that slug for the active theme. Visitors see nothing in its place; the message appears only when WP_DEBUG and WP_DEBUG_DISPLAY are both on. Point the block at an existing header part, or reset the template.
Not the theme's own. The editor lets you reset a theme-supplied part to its file version, but not delete it. Parts you created yourself can be deleted, and any template still naming one will then print nothing where it was. Check List View in each template before deleting a custom part.
No. Reset clears your changes to the template layout and restores the theme's version, but page and post content lives separately and is untouched. You will lose layout changes made in that template, so screenshot or copy anything you want to keep before resetting it.
Some of Twenty Twenty-Five's blog designs use the vertical-header template part instead of the standard header. It sits down the side of the page and shows the menu as an icon at every width. Switch the template's design back, or edit that part to suit.
Keep reading
- Default theme, phone menuTwenty Twenty-Five Mobile Menu Not Working: One Setting, Then Four SuspectsTwenty Twenty-Five mobile menu not working? Check the Navigation block's overlay setting, the menu it points to, script delays and overlay colors, in order.
- The default, defendedTwenty Twenty-Five Speed: What the Default Theme Gets Right, and How Plugins Undo ItTwenty Twenty-Five inlines its stylesheet and hosts its fonts locally. See how plugins quietly reverse both, and the steps that keep the theme quick.
- Theme reviewTwenty Twenty-Five Theme Review (2026): The Free Default, Judged Like a PurchaseTwenty Twenty-Five theme review: who maintains it, Site Editor setup, speed, SEO, WooCommerce limits, the mobile menu quirk, and who should skip it.
- The default, tested fairlyTwenty Twenty-Five vs Next.js: Plain WordPress Against a Custom BuildTwenty Twenty-Five vs Next.js across 22 rows: the free default block theme against a custom build, and the sites where the free theme wins.
- Block theme migrationTwenty Twenty-Five to Next.js: Moving a Block Theme Site, Block by BlockMove a Twenty Twenty-Five site to Next.js: block markup, Site Editor changes saved in the database, Font Library fonts, patterns, and every URL kept.
- Install, activate, renderWordPress Theme Not Loading: Why It Won't Install, Activate or AppearWordPress theme not loading, installing or activating? Decode the exact core error, from a missing stylesheet to a missing parent theme, and fix it safely.
- Everything in WordPress TroubleshootingSee the section
Get the Twenty Twenty-Five header back on every page that needs it
List the pages without a header and anything edited lately. We trace the template, the part and the theme records, then explain the cause and what restoring it takes.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.