How to Configure WordPress Permalink Settings

The default WordPress permalink settings control the URL format for all posts, pages, categories, and tags

These settings apply globally, which means the same structure is used for all posts, one for all categories, and one for all tag archives.

For small or simple websites, this is usually enough, but it does not handle custom post types and taxonomies well. Their permalinks cannot be fully customized using only the built-in options.

If you need more flexibility, custom permalink plugins allow you to set individual URLs or create structures that WordPress does not support natively.

All WordPress sites are built around post types and taxonomies. If you do not set the " public " parameter to false when registering them, WordPress generates a unique public URL for each post and term.

In WordPress, these URLs are called permalinks, which is short for permanent links. While all permalinks are URLs, not all URLs are permalinks.

A permalink is a special type of URL assigned to a post, page, or category and always points to the same content. Once set, it should not change so users and search engines can access your content without encountering 404 errors.

Sample URL
You can find the web address of a website (URL) right in your browse's interface.

In WordPress, you can select your permalink structure in the admin under "Settings > Permalinks". While this page gives you several options under "Common Settings", these apply exclusively to the default "Post" type (blog posts).

The "Common Settings" section (where you choose the permalink mode) applies exclusively to the default "Post" type (blog posts). Custom post types, such as Products, Portfolio, or Events, use their own permalink formats and are not affected by those settings.

Changing permalink in admin dashboard

By default, WordPress uses "Plain" permalinks. These URLs rely on query strings and numeric IDs that do not provide much context to your visitors or search engines.

Using the default "Plain" mode for permalinks is generally not recommended. Most WordPress users prefer "Post Name" because it keeps URLs descriptive and straightforward, making links easier for visitors to read and for search engines to understand.

Plain

This structure uses a query-based URL that includes the post ID. This format is hard to read for visitors and not suitable for SEO.

Example: https://example.com/?p=123

Day and name

This structure includes the full date and the post title. It can be useful for news or time-based content, but the URL can become long.

Example: https://example.com/2026/01/02/sample-post/

Month and name

This format shows the month and year, followed by the post title. It keeps some date context while staying shorter than the above format.

Example: https://example.com/2026/01/sample-post/

Numeric

This structure places a numeric ID in the URL instead of the post title. It offers no context to users or search engines and is rarely recommended.

Example: https://example.com/archives/123

Post name

This structure uses only the post slug. It is the most common option because it is short, readable, and easy to understand.

Example: https://example.com/sample-post/

Read Before Saving
Choosing the right setting now prevents 'broken links' later. If your site is already live and has visitors, changing these settings will break your old links. Only change these if your site is new, or if you are prepared to set up 301 redirects.

Permalink Settings for Custom Post Types

While the built-in WordPress permalink panel allows you to define a global structure for standard posts and pages, it offers very little control over custom post types (CPTs) and taxonomies. If you need to change or implement custom permalinks for them, the easiest solution is to use a plugin like Permalink Manager.

It allows full customization of permalink structures and gives the option to change permalinks individually. The plugin includes enhanced canonical redirect functionality to prevent broken links whenever URLs are changed.

Permalink settings for custom post types and taxonomies

URI Editor opend on "Edit post" page

You can change a permalink in WordPress directly while editing a post or page. The steps are the same whether you use the Block editor (Gutenberg) or the Classic editor. The only difference is where the permalink option appears in the editor interface.

via Classic Editor

The permalink field becomes visible as soon as you open the editing panel in Classic Editor. Under the title field, find the "Edit" button displayed next to the permalink.

Edit button

Permalink editor

via Block (Gutenberg) Editor

The steps are the same when using the Block editor. In the right sidebar, find the "Summary" section. Inside it, you will find the "URL" field. Clicking the displayed link opens a popup where you can change the slug.

Gutenberg URL

How WordPress Stores Permalinks?

By default, WordPress does not store full URLs in the database. Instead, it generates links dynamically, allowing your site to rebuild permalinks automatically whenever the URL structure changes.

The permalink settings are kept in the wp_options table under "permalink_structure" row, while each slug is stored separately. WordPress separates slugs from the global permalink settings because slug is the part of the URL that identifies a post, page, or taxonomy item.

The "permalink_structure" row only defines the general format for URLs and the slugs are created from titles and appear at the end of the URL. For example, a post titled "WordPress Permalink" will use the slug "wordpress-permalink" unless you change it manually.

Permalink and slug
The slug, which appears at the end of the permalink, is created by shortening the title into a more condensed, URL-friendly text.

In WordPress, slugs are stored in different database tables depending on the content type:

  • For posts, pages, and custom post types, the slug is saved in the "post_name" column of the wp_posts table.
  • Categories, tags, and other taxonomy terms store their slugs in the "slug" column of the wp_terms table.

Troubleshooting & FAQ

If your site only works with the default plain permalink structure, it usually points to a server or configuration issue. Common causes include:

  1. Server configuration
    Pretty permalinks rely on the server’s rewrite rules.

    Apache:

    WordPress needs to write to the .htaccess file. If permissions are restricted, WordPress cannot update this file with the necessary rules. Ensure your .htaccess is writable (644 permissions). Even with correct permissions, a malformed or misconfigured .htaccess file can still cause issues.

    NGINX:

    Use recommended configuration files or ensure that a try_files directive is added with the ?$args part included. Otherwise, non-default permalinks may break when query strings are used.
  2. Missing mod_rewrite module
    On Apache, the mod_rewrite module handles URL rewrite rules that WordPress uses for pretty permalinks. Without it, only plain URLs work and "pretty permalinks" return 404 errors.
  3. Caching issues
    Old caches from plugins, CDNs, or browser can serve outdated URLs. Clearing caches often fixes the issue.
  4. Conflicts with plugins or custom structures
    Custom post types, taxonomies, can create overlapping URL formats. If the rewrite rules conflict, and two or more of them match the same URL structure, WordPress cannot determine which content item to display showing "404" error page instead.

If you change permalink settings after content is published, existing URLs may stop working. This can lead to 404 errors for visitors and search engines. To prevent this, you should configure permalinks early and avoid modifying them later. If changes are necessary, old URLs should be redirected to the new ones.

Yes. When you update permalink settings, WordPress applies the new structure to existing posts and pages. If previous URLs are already indexed by search engines or linked from external websites, you should use redirects to avoid broken links.

No. WordPress permalink settings control the global URL structure only, but individual URLs are limited to slug editing. If you want full control over individual URLs, you need a custom permalink plugin, like Permalink Manager.

Last updated by Maciej Bis on: February 10, 2026.


Maciej BisFounder of Permalink Manager & WordPress Developer

The developer behind Permalink Manager, a plugin for managing permalinks, has been working with WordPress, creating custom plugins and themes, for more than a decade.

Go up