Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

WordPress categories are taxonomy archives, not ordinary pages. When a category appears broken, the cause is usually one of five layers: the post is unpublished or assigned elsewhere, rewrite rules send the URL to a 404, a cache serves an old response, a plugin or theme changes the query or template, or the editor cannot reach the REST API. Work through those layers in that order, starting with reversible checks before editing files or disabling production components.

First, identify what “not working” means

A category link normally opens an archive generated by WordPress. WordPress selects a category-specific template when one exists and falls back to a broader archive template when it does not. The archive query then selects posts that are published and assigned to that category. A failure at any point can look like the same problem in the browser, so match the symptom before changing settings.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
What you see Most likely layer Safest first check
The category is missing from a menu, widget, or block Navigation target or category data Confirm the menu item points to the real category archive and that the category has a published post
The category URL returns 404 Permalinks, rewrite rules, or a slug conflict Save Settings > Permalinks without changing the structure
The archive loads but says there are no posts Publication status, assignment, cache, or a filtered query Edit one affected post and verify it is published and assigned to the intended category
Posts from another category appear Theme, page-builder, or plugin query modification Test with plugins disabled one at a time and a default theme
The category editor or controls fail REST API, security, or browser-side error Inspect the browser Network and Console panels while keeping the REST API enabled
New posts keep showing as Uncategorized Default-category setting, editor save failure, or conflict Check the selected category and Settings > Writing

Use a safe fix sequence

Back up first. Use your host’s backup facility or a backup tool you have verified can restore the site. Deactivating a plugin, switching themes, or editing server files is reversible only if you can recover the original state.

  1. Confirm the taxonomy. Open Posts > Categories and record the category name, slug, parent, and displayed post count. A similarly named child category or a changed slug can send you to the wrong archive.
  2. Verify one post. Edit a known affected post, make sure its status is Published, select the intended category, click Update, and reload the archive in a private window.
  3. Purge caches. Clear the browser cache, page cache, object cache, and CDN cache used by the site. Test again without relying on a previously cached response.
  4. Flush rewrite rules. Go to Settings > Permalinks and click Save Changes without changing the permalink structure. This asks WordPress to write its current rewrite rules again.
  5. Test the permalink layer. If the archive still returns 404, temporarily test the default permalink structure. If the default works, the problem is in the chosen structure or the server’s rewrite handling rather than in the category record.
  6. Isolate extensions. Deactivate plugins one at a time, testing the category after each change. Then switch temporarily to a current default theme. Re-enable each component individually after identifying the conflict.
  7. Inspect the server only when needed. Check the site’s .htaccess and Apache mod_rewrite setup, or the equivalent Nginx configuration. Ask the host to verify rewrite support if you do not control the server.
  8. Capture a critical error. If the site reports a critical error, enable WordPress debug logging, review wp-content/debug.log, and disable debugging output on the live site after collecting the error.

When the category link is missing

Check the navigation object

A navigation menu item, widget, or block can point to a static page, an old slug, or a custom URL instead of the taxonomy archive. Edit the navigation in the site editor or menu screen and choose the category from the category picker rather than pasting a remembered URL. For a manually entered link, compare its slug and parent path with the values shown in Posts > Categories.

Confirm that the archive has visible content

Some navigation controls hide empty categories. A category with no published posts may be omitted even when it exists. Assign and publish one test post, clear caches, and reload the navigation. If the category count remains zero, continue with the assignment checks below rather than rebuilding the menu.

When a category URL returns 404

Flush WordPress rewrite rules

Permalinks are the permanent URLs of posts, pages, categories, and other archive pages. Saving Settings > Permalinks refreshes the rewrite rules without requiring a structure change. Open the category in a private window after saving so a browser or page cache does not conceal the result.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Look for a slug collision

Two objects cannot reliably share the same path. Check for a page, post, custom-post-type archive, or parent category using the category’s slug. Rename the conflicting object or give the category a distinct slug, then save permalinks again. Also check whether the category is nested: a child category may use a path that includes its parent, depending on the site’s permalink settings.

Check Apache or Nginx rewrites

On Apache, WordPress depends on the mod_rewrite extension to rewrite friendly URLs. WordPress describes it as “an extension module for Apache that allows for the rewriting of URLs on-the-fly.” A missing module, an incorrect document-root rule, or a non-writable .htaccess file can leave ordinary posts working while archives return 404. On Nginx, the equivalent try_files and location rules must pass unknown paths to the WordPress front controller. If you cannot inspect those files, provide the host with the exact failing category URL and ask it to verify rewrite handling.

Distinguish a site-wide failure from one category

Open a known post, a page, and a different category. If every pretty URL fails, treat the issue as a server or permalink configuration problem. If only one category fails, concentrate on its slug, parent, or a conflicting object. On multisite, confirm that you are editing the correct site and that the network’s domain or path mapping has not changed.

When the archive loads but shows no posts

Verify publication and assignment before changing code

Open a post that should appear and check all three conditions: its status is Published, its publication date is not in the future, and the intended category checkbox is selected. Drafts, scheduled posts, private posts, and posts assigned only to another category will not appear in a normal public archive. Click Update and test in a private window.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Understand what deleting a category does

Deleting a category does not delete its posts. WordPress moves those posts to the site’s default category, commonly Uncategorized. If an old category was removed and recreated with a similar name, its new record may have a different ID or slug; reassign the posts explicitly instead of assuming the archive will reconnect automatically.

Check cache layers

An empty response can be cached just as easily as a populated one. Purge page and object caches, invalidate the CDN version, and test with a logged-out private window. If the archive works for an administrator but not for visitors, a cache or visibility rule is especially likely.

Use the REST API to verify the category record

WordPress exposes category records through the REST API. In a browser or an authenticated API client, request:

/wp-json/wp/v2/categories?slug=your-slug

The response should identify the category, including its ID and the count of posts assigned to it. You can narrow the check with parameters such as parent, post, and hide_empty. Once you have the category ID, query posts by that ID to determine whether WordPress sees eligible posts even when the rendered archive does not. A nonzero API count with an empty front end points toward caching, a theme query, or a plugin filter; a zero count points back to assignment or publication status.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When the wrong posts appear

Check the archive query and filters

A category archive should query posts assigned to the requested term. Plugins that alter the main query, exclude categories, impose membership rules, or replace the loop can change that result. Page builders may render a custom listing rather than the native archive query. Review the archive template’s query settings and any category-exclusion controls before editing PHP.

Use controlled isolation

After taking a backup, deactivate one plugin and reload the archive. Record the result, re-enable it if the behavior is unchanged, and continue until the responsible component is found. Then switch temporarily to a default WordPress theme. If the posts are correct under the default theme, inspect the original theme’s category or archive template and its query arguments. Re-enable components one at a time so you know which change restores the failure.

Separate data problems from layout problems

If the REST API returns the expected posts but the page shows different ones, the data is intact and the rendering layer is overriding it. If the API itself returns unexpected posts, inspect category assignments, parent relationships, and plugin filters first. A template can change headings, pagination, and presentation, but it should not be used to repair an incorrect taxonomy record.

When the category archive uses the wrong layout

WordPress chooses the most specific available category template and falls back to broader archive templates. A theme may therefore show a generic archive layout when it has no category-specific template. Block themes can define archive behavior in the Site Editor, while classic themes may use PHP templates. Page builders can replace either with their own archive design.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Confirm which layer owns the page

  • Check the Site Editor’s template list in a block theme for the category or archive template currently assigned.
  • In a classic theme, inspect the category/archive template hierarchy and whether a custom template is being loaded.
  • In a page builder, verify that the archive condition targets the intended category and is not applied globally.

Switching briefly to a default theme is the quickest way to tell whether the layout issue is theme-specific. Do not edit a parent theme directly on a production site; preserve any required changes in a child theme or the theme’s supported customization system after the cause is confirmed.

When posts keep reverting to Uncategorized

Set the intended category on the post

In the post editor, select the desired category and click Update. Reopen the post to confirm the selection persisted. An editor that appears to save but loses the checkbox can be failing to complete its REST request or another plugin may be changing the taxonomy during save.

Review the default post category

Go to Settings > Writing and inspect Default Post Category. This setting applies when a new post is saved without another category. Changing it affects future saves; it does not automatically recategorize existing posts.

Remember the Pages distinction

Pages are not ordinary posts and are assigned the default category behavior differently. WordPress Pages default to Uncategorized in installations where category support is exposed, so seeing that label on a Page does not prove that post categorization is broken. Check the content type before troubleshooting the post editor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Investigate autosave and conflicts

If the category disappears after autosave, open the browser Network and Console panels and look for failed requests when clicking Update. Test with plugins disabled one at a time and with a default theme. A security or performance plugin that blocks editor requests can leave the interface showing an old state.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When the category editor or block controls fail

Keep the REST API enabled

The category editor and block editor use REST API requests to read and save data. WordPress Developer Resources warns: “You should not disable the REST API; doing so will break WordPress Admin functionality that depends on the API being active.” Do not install a blanket REST-disabling rule as a troubleshooting shortcut.

Inspect the failing request

  1. Open the affected editor.
  2. Press the browser’s developer-tools shortcut and select Network and Console.
  3. Reload the editor and reproduce the failure.
  4. Look for requests to /wp-json/wp/v2/categories or post endpoints that return an error status, a login page, or a security challenge.
  5. Record the status code and response message, then test with security, firewall, optimization, and caching plugins disabled one at a time.

A permission error may indicate the logged-in user lacks the required capability. A blocked or timed-out request often indicates a firewall, rate limit, or performance plugin. A JavaScript exception in the Console can identify a conflicting editor extension. Restore each component after testing and keep the one that caused the failure isolated until its settings are corrected.

Debugging a critical error safely

For a PHP fatal error or a white screen, enable WordPress debug logging rather than displaying errors to visitors. Set debugging so errors are written to wp-content/debug.log while on a maintenance window, reproduce the category problem, and inspect the newest entries for a plugin, theme, or custom-code filename. Never publish the log or leave on-screen debug output enabled on a live site because it can reveal paths, credentials, and internal data. After capturing the cause, disable debugging output and remove sensitive log data according to your site’s security policy.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choosing the remedy by symptom and environment

Symptom Layer to test Reversible remedy Escalate when
404 on one or all category URLs Permalink and server rewrite Save permalinks; test the default structure; check slug conflicts Rewrites still fail or the server uses rules you cannot edit
Empty archive with a published post Assignment, cache, query Reassign and update the post; purge caches; compare the REST count The API and front end disagree after isolation
Wrong posts or pagination Plugin, theme, or builder query Deactivate one plugin at a time; test a default theme A custom integration changes the main query
Wrong visual layout Archive template Inspect Site Editor, theme hierarchy, or builder conditions Template ownership remains unclear after a default-theme test
Editor cannot load or save categories REST API and browser requests Inspect Network/Console errors; remove API-blocking rules Requests are rejected by a host firewall or authentication layer
Posts return to Uncategorized Default category and save process Set the category, review Settings > Writing, and test for conflicts Autosave or update requests fail consistently

Prevent category problems from returning

  • Use stable, unique slugs and document parent-child relationships before changing them.
  • After a planned slug change, save permalinks and test representative post, page, and category URLs.
  • Keep a current, restorable backup before plugin, theme, or server changes.
  • Test cache purges and logged-out views after publishing or changing category assignments.
  • Keep the REST API available for WordPress administration, and monitor security rules for false positives on /wp-json/.
  • When adding a custom archive template or page-builder condition, test a category with posts, an empty category, and a child category.
  • Record plugin and theme changes so a later regression can be tied to one component.

Bottom line

Start with the post’s published status and category assignment, then clear caches and save the permalink settings. If the URL is still a 404, investigate slug collisions and Apache or Nginx rewrites. If the data is correct but the page is empty, wrong, or styled unexpectedly, isolate plugins, themes, and archive templates. Keep the REST API enabled while diagnosing editor failures, and use debug logging only long enough to identify a critical error.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.