Why Did My WordPress Blog Posts Disappear featured image with tutorial badge

Why Did My WordPress Blog Posts Disappear? (And How to Fix It)

Your blog page is empty. The posts you wrote last week are gone. It really looks like someone deleted everything.

Take a breath. Your posts are almost certainly still there.

I’ve watched this happen to 4 different bloggers in the last year, and not once was anything actually missing. The posts were sitting in Posts > All Posts, right where they always were. The problem was a setting that told WordPress to stop displaying them publicly. In the most common case, this is a 2-click fix.

Here’s the checklist I walk through when WordPress blog posts are not showing up on the front end.

Why aren’t my WordPress blog posts showing up?

The short answer: WordPress stopped knowing where to put them.

When you install WordPress, your homepage shows your latest posts automatically. But the moment you set a static homepage, WordPress assumes you’ll tell it where the blog should go. Forget that second step and your posts vanish from the front end – even though they’re still in the database.

Log into your dashboard and click Posts > All Posts. If your articles are listed there with “Published” next to them, nothing is lost. You just need to show WordPress where to display them again.

Here are the 5 things I check when posts disappear, in the order I check them:

  1. A static homepage is set, but no posts page is assigned in Settings > Reading
  2. Posts are saved as Draft or Private instead of Published
  3. The permalinks structure broke and the blog page returns a 404
  4. The blog page exists but isn’t linked in the menu anywhere
  5. A block theme (like Twenty Twenty-Four) is using a template that doesn’t pull posts

The first one fixes about 70% of the cases I’ve seen. So let’s start there.

How do I set a specific page to show my blog posts?

This is the fix that catches most people. It takes 3 clicks.

Go to Settings > Reading. You’ll see “Your homepage displays” at the top with 2 radio buttons: “Your latest posts” and “A static page.”

If you picked “A static page” at some point (or your theme’s starter template picked it for you), you’ll see 2 dropdowns underneath: Homepage and Posts page. The Homepage dropdown is probably set to your welcome page. The Posts page dropdown is probably set to “- Select -” and that’s the problem.

WordPress Settings Reading page with static page option selected, Homepage set, and Posts page dropdown empty, the common cause of blog posts not showing up

Here’s what to do:

  1. Create a blank page called “Blog” (or “News” or “Articles”) under Pages > Add New. Don’t add any content. Just publish the empty page.
  2. Go back to Settings > Reading.
  3. In the Posts page dropdown, select the “Blog” page you just created.
  4. Click Save Changes at the bottom.

That’s it. Visit yoursite.com/blog and your posts will be back.

One warning: don’t add content to that page. WordPress ignores anything you put inside the page you assigned as your Posts page and overrides it with the post archive automatically.

I’ve seen people spend an hour typing their blog intro in there and wondering why it never shows up. Leave it empty.

What if my posts are saved as drafts instead of published?

This one catches me embarrassingly often. I write a post, hit Preview to check it, close the tab, and forget to actually click Publish.

Go to Posts > All Posts. Above the posts list, you’ll see tabs: All | Mine | Published | Scheduled | Draft | Trash. Click Draft and see what’s waiting there.

WordPress Posts All Posts screen filtered to the Drafts tab, showing unpublished blog posts that are not showing up on the site

If you see posts in Draft, they’re not public yet. Hover over the title, click Quick Edit, change the Status dropdown from “Draft” to “Published,” and click Update. Or open the post in the editor and click the big blue Publish button in the top right.

Also check the Scheduled tab. A scheduled post has a future publish date, which means WordPress is holding it back until that date arrives. If you set the date wrong (say, 2027 instead of 2026), the post won’t show up for a very long time. Change the date and click Update.

One more sneaky one: the Private status. If a post is set to Private, only logged-in admins can see it. When I’m logged in, the post looks fine to me, but readers get nothing.

To check, click into the post and look at the Visibility setting in the right sidebar. It should say “Public,” not “Private.” Once your posts are back on the page, you might notice the layout feels cramped – my guide on changing the blog post container width covers how to give them room to breathe.

How do I check if permalinks broke my blog page?

Sometimes your Blog page loads but clicking any post shows a 404. Or the /blog/ URL returns 404 even though the page exists. This is almost always a permalinks issue.

Permalinks are the URL structure WordPress uses for your posts (like yoursite.com/my-post-title/). The rules that make these URLs work live in a file called .htaccess. When that file gets out of sync after a migration or a security plugin edit, WordPress forgets how to find your posts.

The fix is weirdly simple. Go to Settings > Permalinks. Don’t change anything. Just click Save Changes at the bottom.

WordPress Settings Permalinks page with Post name structure selected and Save Changes button highlighted, used to flush rewrite rules when blog posts are not showing up

That single click tells WordPress to rewrite the .htaccess rules from scratch. Your posts and pages should reappear. If you want the full walkthrough on this, I wrote a dedicated guide on fixing WordPress 404 errors on every page that goes deeper into what’s happening under the hood.

If you’re on an Nginx host (common with managed WordPress hosting like WP Engine or Kinsta), the .htaccess trick won’t help – Nginx uses its own rewrite rules. In that case, open a support ticket with your host and ask them to “flush the rewrite rules.” They know what that means. While you’re rebuilding the blog page, you might also want the featured images to stretch full width so posts feel more polished.

What if the blog page isn’t linked in my menu?

Here’s a silly cause that’s easy to miss. Your posts are published and your settings are correct, but there’s no way for visitors to find the blog page from your homepage.

Go to Appearance > Menus (or Appearance > Editor > Navigation on a block theme). Look at your primary menu. If “Blog” isn’t listed, add it. My guide on how to add items to your WordPress menu covers both the classic and block editor paths.

While you’re there, check your homepage content too. Most starter themes include a Latest Posts block that pulls in your articles automatically. If your homepage was built from scratch or switched to a page builder, that block might be gone. Drop one in so visitors see fresh content without hunting.

What if I’m using a block theme with templates?

Block themes (any theme that uses the Site Editor at Appearance > Editor) handle posts differently from classic themes. Themes like Twenty Twenty-Four, Twenty Twenty-Five, and Ollie fall into this category.

With a block theme, the layout for your blog page comes from a template called “Blog” or “Home” inside the Site Editor. If you (or a theme update) replaced that template with a custom layout that doesn’t include a Query Loop block, your posts won’t render.

Go to Appearance > Editor > Templates and find the template called “Blog,” “Home,” or “Index.” Click to edit it. Look for a block called Query Loop – this is the block that actually fetches and displays your posts. If it’s missing, you can add it back.

WordPress Site Editor Templates list with the Blog template highlighted in a block theme, where missing Query Loop blocks cause WordPress blog posts not showing up

Click the + button, search for “Query Loop,” and insert it into the template. Pick a layout pattern when prompted (I usually go with the simple list view). Save the template. Your posts should appear.

If you accidentally broke the template and can’t figure out what changed, you can usually reset it. In the Site Editor, click the 3-dot menu next to the template name and look for “Clear customizations” or “Reset to default.” This rolls the template back to whatever the theme shipped with. I have a separate guide on fixing global template changes that ruined your site if this happened across more than one template. And if you miss the old writing experience entirely, my comparison of Classic Editor vs Gutenberg in 2026 walks through when to switch back.

Should I restore from a backup?

Only as a last resort. Before restoring anything, confirm your posts are actually missing from the database – not just missing from public view.

Go to Posts > All Posts and check the count at the top. If you see “25 items” and your titles are listed, the posts exist. Restoring a backup would be overkill and you’d lose any changes made since that backup ran.

Restoring only makes sense if Posts > All Posts shows an empty list or a much lower count than expected. That points to something (a bad migration, database corruption, or an actual hack) removing data from the wp_posts table. In that case, restore the database only from your backup plugin. If you don’t have a backup yet, that’s the first thing to fix – my guide on backing up your WordPress site before changes takes 5 minutes.

Frequently Asked Questions

Why are my WordPress blog posts not showing up?

In my experience, this usually happens because of a mix-up in your reading settings or a permalink issue. Sometimes, WordPress gets confused about which page is supposed to display your content.

How do I set a specific page as my blog page?

I always head straight to Settings > Reading in my WordPress dashboard. From there, I change the “Posts page” dropdown to my dedicated blog page and hit save. It takes about 15 seconds to fix.

Why did my published posts disappear from my site?

If they vanished suddenly, I’d bet your site’s permalink structure got corrupted after a plugin update. Going to Settings > Permalinks and clicking “Save Changes” usually brings all 50 of your missing posts right back.

How do I check if permalinks broke my blog page?

I like to test this by trying to view a single post directly from the dashboard. If the post loads but the main blog page gives a 404 error, I know the permalinks need to be flushed.

You didn’t lose your posts

Here’s what I want you to take away from this. When blog posts vanish in WordPress, it’s almost always a configuration issue, not a data loss issue. Your words are still there. You just need to tell WordPress where to put them.

Start with Settings > Reading. If that doesn’t solve it, check draft status, permalinks, your menu, and your block theme templates in that order. One of those 5 checks will bring your posts back.

And once they’re back, install a backup plugin so you never have to second-guess yourself next time. A 5-minute setup now saves you an hour of panic later.

Similar Posts