What is the category base?
The category base is the word WordPress inserts in front of category archive addresses. By default it is category, giving URLs like example.com/category/news/. It exists to keep category addresses apart from pages and posts, which could otherwise claim the same path. Tags have an equivalent, the tag base, which defaults to tag.
You can rename it in a core setting. Removing it altogether takes a plugin or custom code.
Where the setting is
Go to Settings → Permalinks and scroll to Optional. There are two fields, Category base and Tag base. Type a word without slashes and save:
| Category base field | Resulting category URL |
|---|---|
| (empty) | example.com/category/news/ |
topics | example.com/topics/news/ |
guides | example.com/guides/news/ |
Child categories nest under their parent: example.com/category/news/local/.
One detail catches people out. If your post permalink structure starts with a fixed word, say /blog/%postname%/, the default category URL also gets that prefix: example.com/blog/category/news/. Setting a custom category base drops the prefix, so topics gives example.com/topics/news/.
Does the base matter for SEO?
The word itself has no ranking weight. A category archive at /category/news/ is not at a disadvantage against one at /news/. The reasons people change it are about users and structure:
- Shorter, cleaner addresses in results and when shared.
- A URL that mirrors the site hierarchy, especially when posts use
/%category%/%postname%/. Then/news/is the archive and/news/budget-vote/a post inside it, which reads naturally. - A more meaningful word. A recipe site may prefer
/cuisine/italian/.
Against that stands the cost of change: every category URL moves, and each old address needs a redirect.
Removing it entirely
WordPress core offers no way to leave the base out. Plugins do it by rewriting the rules so that /news/ resolves to the category. Hydrogen SEO has a Strip Category Base switch under Hydrogen SEO → General → Permalinks. With it on, category links everywhere use the short form, including menus, the XML sitemap, canonical URLs and breadcrumbs, and requests for the old /category/news/ address get a 301 redirect to /news/; see general settings.
The risk to check first is a name clash. Without the base, a category with the slug news and a page with the slug news want the same address, and only one can have it. List your category slugs against your page slugs before switching, and rename where they collide. Our guide to removing the category base from URLs goes through it.
Changing it on a live site
- Record the current category URLs, from the sitemap or a crawl.
- Change the base, or switch stripping on.
- Request an old URL and confirm it answers
301to the new one. Core does not redirect a renamed base by itself, so add a rule if your plugin does not:
RedirectMatch 301 ^/category/(.+)$ https://example.com/topics/$1
- Update internal links and menus that were typed by hand.
- Resubmit the sitemap and watch the Page indexing report for 404s over the next weeks.
If posts use %category% in their permalinks, post URLs do not include the base, so they stay as they are. The steps for wider changes are in change permalinks without losing SEO.
When to leave it alone
On an established site with category pages that earn traffic and links, the default base is fine. A redirect preserves most signals, but the change brings a recrawl, a period of fluctuation and a chance of mistakes, in exchange for a cosmetic gain. Choose your structure on a new site, and after that change it only for a concrete reason.
Common questions
Is /category/ in the URL bad for SEO?
No. It has no negative effect on rankings. Removing it gives shorter URLs, which is a matter of preference and site structure.
How do I change the category base in WordPress?
Open Settings, then Permalinks, and enter a new word in the Category base field under Optional. Save, then make sure old category URLs redirect to the new ones.
Can I remove the category base without a plugin?
Not through a WordPress setting. It needs custom rewrite code or a plugin, and either way you must check that no page or post shares a slug with a category.