The last thing printed
WordPress Footer Not Showing: Why the Bottom of Your Page Goes Missing
Your phone number, your address, your privacy link and half your internal links live in the footer. WordPress prints it last, which makes it the first casualty of anything that goes wrong on the way down the page. Usually something else broke, and the footer is just where you noticed.
October 13, 2026 · 8 min read
The short answer
A WordPress footer usually goes missing because a PHP error stopped the page before the footer printed, footer widgets moved to Inactive widgets after a theme change, a builder footer template no longer matches its conditions, the footer builder rows are empty, or a custom template never calls get_footer(). View the page source and see whether it ends with a closing html tag.
On this page
- A missing footer rarely goes missing alone
- Printed last, lost first
- Footer widgets that moved to the inactive pile
- Builder footers, conditions and empty rows
- Custom templates that never say goodbye
- In the page source, missing from the screen
- Getting the footer back, from cheapest check to costliest
- Keeping the bottom of every page intact
A missing footer rarely goes missing alone
Look at what else is wrong before you look at footer settings. The footer area carries more than a copyright line. On most WordPress sites, the end of the page is also where scripts load: menu toggles, form validation, sliders, analytics and cookie banners. When the footer disappears together with those, the page did not finish. When the footer disappears and everything else works, a setting or template is the likely cause.
- Footer gone and the mobile menu, forms or sliders dead too: the page stopped early, or the template skipped the footer hooks.
- Footer gone on long or busy pages only: a PHP error or memory limit is hit partway down those pages.
- Footer present but the widget columns empty: widgets were moved or the widget area was switched off.
- Old theme footer showing instead of your designed one: a builder footer template is not being applied.
- Footer gone on one page: that page uses a layout that leaves it out.
Printed last, lost first
PHP builds a classic WordPress page from top to bottom: header, content, sidebar, footer. If a fatal error happens in the content, a widget or a shortcode, PHP stops right there. Everything below the error, footer included, never reaches the browser. On a live site with errors hidden, the page just ends, sometimes with "There has been a critical error on this website" printed partway down.
The check is quick. Open View Source and scroll to the bottom. A healthy page ends with a closing html tag. A page that stops mid-paragraph, inside a product grid or inside a widget was cut off. Turn on WP_DEBUG_LOG on a staging copy, load the same page, and read wp-content/debug.log for the file and line. Common culprits are a shortcode or widget from a plugin that just updated, code written for an older PHP, a heavy page that runs out of memory, and a WooCommerce template override that no longer matches WooCommerce. Flatsome's documentation, for example, explains its warning about outdated copies of WooCommerce template files. Related guides: theme PHP errors, memory exhausted errors and a site that broke after a PHP update.
Footer widgets that moved to the inactive pile
Footer widget areas belong to the theme that registered them. Switch themes and WordPress tries to map old areas to new ones by name. Widgets it cannot place land under Inactive widgets on the Widgets screen, still saved and no longer shown. The new theme's footer prints empty, or not at all. The block-based widget editor that arrived in WordPress 5.8 changed how footer widgets are added and edited; the Classic Widgets plugin restores the old screen if a theme or your team needs it.
Check Appearance > Widgets for an Inactive widgets area and drag what you need back into the footer areas. Then check the theme's footer layout setting. Several themes let you choose how many footer widget columns to print, and a setting of zero hides the areas even when they hold widgets. Block themes have no widget areas at all; their footer is a template part edited in the Site Editor.
Builder footers, conditions and empty rows
When a page builder or a theme's footer builder owns the footer, its absence is usually a matter of assignment rather than damage. Elementor Pro footers appear only where their display conditions apply and only once published; Elementor's Canvas layout leaves the footer out by design. Hello Elementor can disable the theme footer so Elementor Pro can provide one, and Hello Biz lets code suppress its default footer through a filter. Divi's Theme Builder and GeneratePress Elements assign footers by rule, and the GeneratePress exclusion bug that blanks a rule when a listed page is deleted applies to footer elements as well.
Themes with a drag-and-drop header and footer builder, such as Neve and Sydney, keep footer rows that can be emptied by accident, and a row with nothing in it prints nothing. On block themes, a deleted footer template part renders nothing; with WP_DEBUG and WP_DEBUG_DISPLAY both on, WordPress prints "Template part has been deleted or is unavailable: footer" where it should be. Hello Elementor owners will find the specifics in Hello Elementor header and footer not showing, and Divi owners in Theme Builder templates not showing.
Custom templates that never say goodbye
A classic page template ends by calling get_footer(), which loads footer.php, which in turn calls wp_footer(). That last hook is where WordPress prints footer scripts and some late styles. A custom template written for a landing page, or copied from an old tutorial, sometimes skips both. The visible footer disappears, and so does every script queued for the footer, which is why a missing footer and a mobile menu that will not open often arrive together.
Check the template file named in the page's Template setting, usually in your child theme. If it lacks get_footer() near the end, add it back, or switch the page to the theme's default template. Never edit the parent theme's files for this. The next update will undo it, which is the story told in theme broke after an update.
In the page source, missing from the screen
If View Source shows the footer markup, the footer printed and something is hiding it. Inspect the area where it should be. Typical findings: a wrapper set to the full screen height with overflow hidden, which clips everything below it; a fixed cookie bar or chat widget covering the bottom of the page; text the same color as its background; or a footer stylesheet that never loaded. Hello Elementor, for one, keeps its header and footer styling in its own header-footer.css file, so one failed file can leave the footer broken while the rest of the page looks fine. When styles are missing across the page, follow theme CSS not loading.
Getting the footer back, from cheapest check to costliest
- 1
Read the end of the source
View Source on an affected page. A missing closing html tag means the page was cut off. Footer markup present means it is hidden.
- 2
Read the log if it was cut off
On staging, enable WP_DEBUG_LOG, load the page, and fix or remove whatever debug.log names at the point the page stopped.
- 3
Recover inactive widgets
In Appearance > Widgets, move widgets from Inactive widgets back into the footer areas, then confirm the theme's footer widget count is above zero.
- 4
Check builder assignment
Open the footer template, confirm it is published, and set its conditions to the entire site. Turn the theme footer back on if no builder footer applies.
- 5
Check the template file
Confirm the page template calls get_footer(), or switch the page to the default template.
- 6
Purge and test widely
Rebuild builder CSS, purge every cache and check a post, a page and a product on a phone and a laptop, logged out.
Keeping the bottom of every page intact
Add the footer to your update checklist, alongside the checkout and the contact form. After any theme switch, check the Widgets screen for an Inactive widgets area before you call the switch done. Keep custom templates in a child theme, built from the theme's own default template so they inherit get_footer(). And when one page loses its footer after a plugin update, treat it as a PHP error until the log says otherwise.
The underlying issue is ownership. A footer can come from the theme, its footer builder, a page builder or a block template part, and its scripts depend on a hook any custom template can forget. In a Next.js build the footer is one shared layout component, and a statically generated page either renders completely at build time or the build fails, so a half-printed page is caught before release. It costs more to build and needs a developer for layout changes. Weigh it in WordPress vs Next.js and Next.js with Athena CMS, where Argus watches for failing forms and broken links, and see what a move to Next.js involves. Footer scripts also weigh on speed, covered in the performance guides. To keep WordPress, our theme troubleshooting service finds what cut the page short, and theme repair puts it right. More symptoms are in the troubleshooting section, including the missing header, and theme repair hubs are under WordPress repair.
Questions people ask before they call
Widget areas belong to the theme that registered them. When the new theme's areas have different names, WordPress cannot place every widget and moves the rest to Inactive widgets on the Widgets screen. They are still saved. Drag them into the new theme's footer areas, then check the theme's footer column setting.
Either those pages use a layout that omits the footer, such as a canvas or blank template, or they stop early because of a PHP error in something only they contain: a shortcode, a widget, a product grid. View the source of an affected page. If it ends abruptly, read the debug log; if not, check the page's template setting.
Yes. WordPress prints footer scripts at the end of the page, so a page that stops early or a template that skips the footer hooks also loses menu toggles, form scripts, sliders and analytics. If your contact form stopped sending at the same time, fix the footer first and test the form again.
Block theme footers are template parts. If the footer part was deleted, renamed or created under a different theme, WordPress prints nothing in its place. Open the Site Editor, check the template your page uses, and reinsert or reset the Footer template part. Site Editor changes made under another theme do not carry over.
Keep reading
- Missing at the topWordPress Header Not Showing: Find Out Who Was Supposed to Print ItWordPress header not showing on one page, every page or only on phones? Check page layouts, builder display conditions, template parts and theme switches.
- Errors with a return addressWordPress Theme PHP Errors: From the Recovery Email to a Clean LogFix WordPress theme PHP errors: use the recovery mode email, turn on WP_DEBUG_LOG safely, update old themes for PHP 8 and repair child theme functions.php.
- Missing header and footerHello Elementor Header and Footer Not Showing: Find the Layer That Dropped ThemHello Elementor header or footer missing? Check the Disable theme header & footer toggle, Theme Builder conditions, Canvas layouts and your Pro license.
- 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.
- Styles gone missingWordPress Theme CSS Not Loading: Why Your Page Shows Up UnstyledWordPress theme CSS not loading and the page looks like plain text? Trace the failed stylesheet to an optimizer bundle, generated CSS file, CDN or HTTPS.
- Three lines, no menuWordPress Mobile Menu Not Working: Why the Hamburger Does NothingWordPress mobile menu not working? Trace the dead hamburger to combined or delayed scripts, a breakpoint gap, an empty menu location or a z-index trap.
- Everything in WordPress TroubleshootingSee the section
Get the bottom of your pages back
Tell us which pages lost their footer and what changed recently. We will trace it on a copy of your site and quote the fix before we make it.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.