The header is there. The menu works, the footer sits where it always has, and the browser tab shows the right page title. But the part in the middle, the bit you actually wrote, is gone. Sometimes it is a big white gap. Sometimes there is a stray line of text like [vc_row][vc_column]. Sometimes the page looks fine to you and empty to everyone else.
This is a different problem from a site that will not load at all. When the whole screen is white, PHP has usually stopped completely, and our post on why WordPress sites keep breaking covers that case. Here, WordPress is working. It has built the page frame and then, for some reason, the content area came out empty or invisible. That narrows the search a lot.
What you are actually looking at
A WordPress page is assembled from two sources. The theme supplies the layout: header, sidebar, footer and a template for the content area. The page itself supplies what goes inside that area, either from the block editor, the classic editor, or a page builder such as Elementor, Divi or WPBakery. When the frame appears but the inside does not, one of four things is usually happening:
- the content is there in the database but is not being turned into HTML,
- the HTML is being produced but is hidden from view by CSS or JavaScript,
- the theme template is not asking for the content at all,
- or the content really is empty, because it was saved over, moved or restricted.
The quickest way to tell which group you are in is to view the page source. In most browsers, right-click the page and choose View Page Source, then search (Ctrl+F or Cmd+F) for a sentence you know is on that page. If you find it, the content exists and something is hiding it. If you do not, WordPress never printed it, and the cause is on the server side.
Likely causes, most common first
1. The page builder plugin is switched off or broken
This is the most common one by some distance. Page builders store a page in their own format. WPBakery and Divi save their layouts as shortcodes inside the page content, so if the builder plugin is deactivated, expired or failed to load, WordPress has nothing to translate those shortcodes and prints them as raw text, or prints nothing useful at all. That is where lines like [vc_row] or [et_pb_section] come from.
Elementor works differently. It keeps the real layout in its own data attached to the page, so with Elementor inactive you tend to see a stripped-down, unstyled version of the text, or very little. Either way, the fix starts in Plugins: is the builder active, is it up to date with the theme it was bought with, and did it show any notice about a licence or a required add-on?
2. Content that is present but invisible
If View Page Source shows your text, the page is being built correctly and something in the browser is hiding it. A frequent culprit is entrance animations. Many builders and themes set elements to invisible first and rely on a script to fade them in as you scroll. If that script fails, often because a caching or optimisation plugin delayed, combined or deferred JavaScript, the elements simply stay invisible. The content is on the page with zero opacity.
Other versions of the same thing: a lazy-loading script that never fires, a slider that fails to start and leaves a blank box, or a stylesheet that did not load so a section collapsed to nothing. When the whole design falls apart rather than one block, that is the territory of fixing a broken desktop layout. Pressing F12 to open developer tools and looking at the Console tab will often show a red JavaScript error that explains it.
3. The page is set as the Posts page
Go to Settings > Reading. If “Your homepage displays” is set to a static page, there is a second dropdown for the Posts page. Whatever page you choose there stops showing its own content. WordPress uses it as the address for your blog list instead. Owners sometimes pick their “News” or “About” page by mistake, write lovely text on it, and then wonder why the text never shows. Choose a different page there, or leave it empty if you have no blog.
4. The template does not output content
In the page editor’s sidebar you can usually choose a template. Some themes ship templates meant for specific jobs, a blank canvas for a builder, a contact layout, a blog list, and a few of them do not print the page’s own text. A custom theme written by a previous developer may also have a template file that was edited and lost the line that outputs content. Switch the page to the theme’s default template and preview it. If the text comes back, the template was the cause.
5. A PHP error part-way through the page
If the page stops abruptly, header fine, content half drawn, footer missing, that usually means PHP hit a fatal error while building it and stopped. A shortcode from one plugin, a widget, or a theme function is the usual suspect. These leave a trace in the error log, and our guide to finding and reading the WordPress error log shows where to look and what the lines mean.
6. Caching is serving an old empty copy
If the page was empty for a short time, during an update, a builder glitch or a failed save, a cache may have stored that empty version and kept handing it out. This is the case where you see the page fine while logged in (most caching setups skip the cache for anyone signed in) and visitors see nothing. The causes and the order to clear things in are covered in our guide to updates that refuse to show up.
7. The content really is empty or restricted
Less exciting but worth ruling out. Open the page in the editor and check the Revisions link in the sidebar. If a recent revision is much shorter than the one before, someone saved over it, and you can restore the earlier version from that screen. Also check visibility: a page that is password protected shows a password form instead of its text, and a membership or restriction plugin may be hiding it from logged-out visitors on purpose.
A safe order to work through it
None of the first steps below change anything on the live site, so start there. Before you deactivate plugins, switch templates or restore revisions, make a fresh copy of the files and database, or at least confirm your host has a backup from today that you know how to restore.
- Load the page in an incognito tab. This shows you what a logged-out visitor sees, without your cookies. If it is empty there and fine while logged in, think caching or restriction first.
- View Page Source and search for your text. Present means hidden by the browser. Absent means not printed by WordPress.
- Check the Console in developer tools. Red errors mentioning a script file usually point at an optimisation plugin or a broken builder asset.
- Look at Settings > Reading and confirm the page is not chosen as the Posts page.
- Check the builder plugin is active, updated and licensed, and that any add-on it relies on is also active.
- Clear every cache you have, starting with the plugin cache, then any host cache, then the CDN if you use one.
- Temporarily turn off JavaScript optimisation in your caching plugin (delay, defer, combine) and reload. If the content appears, add the builder’s scripts to that plugin’s exclusion list rather than leaving optimisation off for good.
- Switch the page template to the default and preview it.
- Look at revisions and restore an earlier one if the text was overwritten.
- Check the error log if the page stops part-way, and try switching plugins off one by one on a test copy of the site, if you have one.
If you use Elementor
Elementor builds CSS files for each page. When those files are stale or missing, sections can come out invisible or unstyled. In recent versions you will find a Regenerate CSS & Data button under Elementor’s Tools screen. Clear your cache after pressing it. If the editor itself will not open to let you check the page, that is a separate issue covered in when Elementor’s preview could not be loaded.
If you see raw shortcodes
Raw shortcodes are good news in one way: your content still exists, in full, inside those brackets. Do not delete them and do not switch editors to “clean it up”. Reactivate or reinstall the plugin that owns them and the page usually returns as it was. If the plugin is gone for good, for example a builder licence you no longer have, the content can be rebuilt from those shortcodes, but that is careful manual work rather than a quick fix.
Things that make it worse
A few reactions we see often, and why to avoid them:
- Pressing Update on the empty page. If the editor loaded without your content, saving it can make the empty version the newest revision. Look before you save.
- Switching from the builder to the block editor to “see what is there”. Converting builder content can scramble it. Leave the editor choice alone until you know the cause.
- Turning off every plugin on a live shop or booking site. It does find conflicts, but it also takes forms, payments and logins down while you test. A staging copy is the better place for that.
- Clearing caches over and over. If one full clear did not help, the cause is not the cache. Move on to the next step.
Keeping it from coming back
Pages go blank mostly when the pieces that build them get out of step with each other: a builder updated but its add-on was not, a theme updated and dropped support for a template, an optimisation plugin got a new setting that changed how scripts load. A few habits help:
- Update the builder, its add-ons and the theme together, and check two or three key pages straight afterwards, logged out.
- When you change caching or optimisation settings, look at a page with animations and a page with a slider before you walk away.
- Keep one builder. Two builders on one site, each loading its own scripts, is a common source of hidden content.
- Keep revisions switched on. They are what lets you recover a page someone saved over.
- Keep track of builder licences, so a renewal lapse does not quietly stop updates or add-ons.
If you want the bigger picture of how this fits with other errors, our guide to common WordPress errors sorts them by symptom and points to the right fix for each.
When to hand it over
If the source shows nothing, the builder is active and the template is default, you are usually past the point where guessing is cheap. That is also true when the content only exists as raw shortcodes from a builder you can no longer use, or when the empty page is a checkout, booking or landing page that is costing you enquiries while it is down.
If that is where you are, our page builder repair work is the closest fit. A WhatsApp message (or a note via the contact form) with the page link and a screenshot is enough to begin. We copy the site first, find the real cause, and explain it plainly before any work starts.
Next in this series: WordPress Icons Showing as Squares or Fonts Missing