Vanishing Headers and Ghost Footers: A UK Hosting Debug Log for Elementor Pro Theme Builder
Photo: Drew McLellan, CC BY-SA 2.0, via Wikimedia Commons
Few things ruin a Friday afternoon like a client email saying the header has gone walkabout. You open the site, everything is present. You log out, refresh, and the top of the page is a blank strip. If that sounds familiar, you are probably dealing with an Elementor Pro Theme Builder template that is being undermined by your UK host rather than by your layout skills.
In 2026, the usual suspects are still object caching, PHP worker ceilings, mod_security rules and the messy handover from staging to live. The good news is that you can usually diagnose it in under an hour without rebuilding the header. Here is the debug flow I use on client sites from Bristol to Glasgow.
Start with the boring checks
Before you blame the host, confirm the template is actually meant to show. Go to Templates > Theme Builder and open the header and footer templates. Check that each one is published, not sitting in draft, and that its display conditions include Entire Site or the specific pages you expect. A surprisingly common cause is a page-specific condition that excludes the homepage, or a footer set to appear only on singular posts.
Next, test in a private window. If the header appears when you are logged in but disappears for logged-out visitors, you have narrowed it down to caching, security rules or a role-based difference. That is the point where host settings matter.
Step 1: Clear caches in the correct order
Do not just hit the browser refresh. Work from the inside out:
- Elementor > Tools > Regenerate CSS & Data.
- Your page cache plugin, if you use one.
- The host's cache. On Kinsta, use the MyKinsta cache purge; on WP Engine, purge EverCache; on 34SP and Fasthosts, clear the cache from the control panel or any managed WordPress caching toggle.
- Your CDN, such as Cloudflare.
- Object cache, if the host provides Redis or Memcached.
Object caching is the one people miss. Elementor stores template-related data and CSS, and a persistent object cache can keep an old version alive after you publish a new header. Kinsta and WP Engine both give you object cache controls; 34SP and Fasthosts vary by plan, so ask support if the option is not obvious. If you are not sure, flush the object cache and regenerate Elementor CSS again.
Step 2: Check PHP workers and memory
A header that vanishes only on uncached requests can be a PHP worker problem. Theme Builder templates are rendered server-side. If the site is hitting its PHP worker limit, the host may serve a partial page or a cached page with the header missing. Kinsta lets you adjust PHP workers per site; WP Engine has its own limits; 34SP and Fasthosts shared plans are stricter.
Look at your host's error log for max_children or memory exhaustion. Raise the WordPress memory limit to at least 256M if you can, and test again with caching disabled. If the header returns, you need more workers or fewer heavy plugins on that template.
Step 3: Inspect for mod_security and WAF blocks
If the header is missing only for logged-out visitors, open the browser console and network tab. A 403 on admin-ajax.php or a REST API request is a clue. Some UK hosts run mod_security rules that block Elementor's AJAX calls, especially when a template uses a form, menu or dynamic content. Fasthosts and 34SP are the ones I see most often, but any host with a WAF can do it.
Ask support to whitelist the Elementor endpoints rather than switching off the whole firewall. If you have access, check the mod_security audit log for the request ID. The fix is usually a targeted rule exclusion, not a site rebuild.
Step 4: Treat staging-to-live as a migration
Staging pushes are where headers go to die. A common pattern is that the staging site has the correct header, but the live site still has an old object cache or stale Elementor CSS. Kinsta and WP Engine have push tools that copy the database; 34SP and Fasthosts often mean a manual migration.
After any push, run a URL search-replace, regenerate Elementor CSS, clear the object cache and purge the host cache. Check that the Theme Builder conditions survived the move. If the header template references an image or menu ID from staging, re-save the template on live.
Real client example: the logged-out header
A Manchester ecommerce client on WP Engine called me because their header had disappeared for shoppers but stayed visible for admins. The site had just been pushed from staging. Logged-in users bypassed the full-page cache, which is why the team could not reproduce it.
The staging push had copied an older header template, and the live object cache was still holding the old template CSS. Purging EverCache alone did not fix it. We cleared the object cache, regenerated Elementor CSS, re-saved the header template and purged the CDN. The header returned for logged-out visitors within minutes.
The lesson: if the header is missing only when you are logged out, test like a visitor and clear every cache layer, including the object cache. Then check the security log before you touch the template.
A quick triage list
- Logged-in only? Check display conditions first.
- Logged-out only? Check page cache, object cache and WAF.
- Missing on some pages? Check Theme Builder conditions and template status.
- Missing after a migration? Run search-replace and regenerate CSS.
- Missing under load? Check PHP workers and memory.
None of this is glamorous, but it beats rebuilding a header that was fine all along.