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
  1. A missing footer rarely goes missing alone
  2. Printed last, lost first
  3. Footer widgets that moved to the inactive pile
  4. Builder footers, conditions and empty rows
  5. Custom templates that never say goodbye
  6. In the page source, missing from the screen
  7. Getting the footer back, from cheapest check to costliest
  8. Keeping the bottom of every page intact

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 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.

  1. 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. 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. 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. 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. 5

    Check the template file

    Confirm the page template calls get_footer(), or switch the page to the default template.

  6. 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

Free · No obligation

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.

CallGet a quote