WordPress's documentation is not particularly clear on something as simple as slugs. This is why it felt like a good idea to explain them in a separate article.
This article looks into slugs, which are an important aspect of WordPress's native permalink system. It will provide insights into the slug creation process and recommendations on how to change them. The second part of the article contains instructions for using Permalink Manager to better manage the slugs.
It may be pointless to describe all of the nuances of WordPress slugs to a casual user, therefore we will focus on the definition and the most important information. Slugs are, without a doubt, the most crucial aspect of a permalink since they allow WordPress to recognize each item of content on your site.
What Is a WordPress Slug in a Nutshell?
Simply described, a WordPress slug is a text-based identifier that is saved in the database and assigned to individual posts, pages and terms much like a numeric ID.
The primary use of the them is to identify what post, page, category or term should be loaded. This is not the only place where they show up, since WordPress also makes use of them in its URLs. In general, they are located at the end of them.
The URL with the slug may appear above the title on search engine results pages. You should be aware that long URLs are truncated in search results, and their end part containing the slug may be hidden. Either way, simple and comprehensive URL addresses will attract more clicks and visitors to your website.
Permalinks vs. Slugs
There is a significant difference between the slug and the permalink. The phrase "permalink" refers to the entire URL, including the domain name, that visitors use to access your content. The slug is only one component of the URL. However, URLs are not required to have slugs. Some URLs, such as those used for static media files like images, do not have them.
In case you are still unsure, the following table should make things clear. It illustrates how the slugs are derived from the titles and then simplified for usage in canonical URLs.
Title | Slug | Permalink |
---|---|---|
WordPress Tutorials | wordpress-tutorials | https://example.com/wordpress-tutorials |
Cotton T-Shirt | cotton-t-shirt | https://example.com/products/cotton-t-shirt |
Tutorials | shoes | https://example.com/category/tutorials |
Why is the WordPress Slug Important?
The slugs is very important for a number of different reasons. For starters, it helps search engines in determining the topic of your article or page. Search engines crawlers can simply understand the topic of your article and rank it if you include keywords in your slug.
A descriptive URL increases the likelihood that a visitor will click on the link. Furthermore, if the permalink structure is straightforward, visitors will find it easier to explore your website and locate the information they need. This can lead to increased engagement and a decreased bounce rate, which can benefit your SEO indirectly.
How Does WordPress Create Slugs?
Now that we have covered what a WordPress slug is, let me explain how they work.The slug is based on the initial title you give your post or category when you first publish it. Once it's published, WordPress automatically generates a slug from the title for the URL. Even if you decide to change the title later, the slug will stay the same. Here comes a problem, because to change the slug, you will need to do it manually.
When the slug is generated, WordPress will sanitize the title, removing non-standard characters and leaving just Latin letters and digits. If it contains more than one word separated by spaces, each one will be automatically replaced with a hyphen (–). Furthermore, for better consistency, all capital characters will be transformed to lowercase.
There is not much room for customization. If that was not bad enough, WordPress does not let you use random slashes in your slugs. To include them in custom permalinks, you will need to install a 3rd party plugin like Permalink Manager.
Given that WordPress generates the slug based on the current title when publishing the post, it is important to ensure that it is optimized for potential visitors who may find your site in Google results.
What Is the Problem With the Native WordPress Slugs?
For the most part, the inbuilt permalink system based on native slugs is pretty limited. It does not provide any user-friendly solution to customize the URL addresses. This could be a real problem if you need a tailored permalink structure or simply want to quickly change URLs individually. It is really annoying that you can not just reuse the same slug again. In other words, even if the rest of the permalink is unique and the URL is unique, you can only use them only once.
This may be a big issue from an SEO standpoint, however WordPress happily allows developers to fill in the missing functionality. This is exactly why Permalink Manager was created: to provide you more flexibility by extending the built-in permalink system. Before we get into some examples of how you may utilize it to your advantage, we will go through one of the most common issues with in-built WordPress slugs.
Permalink Manager, unlike the built-in permalink system, allows you to use the same slug multiple times. The plugin detects URLs using its own algorithm, which is more advanced than the built-in permalink system. It makes no difference whether or not your new custom permalinks include the slugs or not. This allows you to completely customize and update your URL addresses whatever you like.
Why WordPress Adds “-2” to the Slugs?
The inability to reuse the same slug for multiple posts or pages is probably the most annoying aspect of WordPress. If you have discovered that your permalinks are not quite right, and that WordPress has appended "-2" to the slugs, you are probably asking why.
Simply put, if the slugs had not been unique, WordPress would have been unable to determine which content type needs to be loaded. Technically, you cannot use the same slug for more than one post or term. It means that WordPress will automatically append the numeric index (eg. "-2") to the end of slug, if you have previously used it for another post or term.
Post title | Post slug | The original permalink |
---|---|---|
Hello World | hello-world | http://example.com/2019/11/20/hello-world |
Hello World (Duplicate) | hello-world-2 | http://example.com/2020/11/15/hello-world-2 |
As you can see above, WordPress appended "-2" to the slugs of posts/terms with duplicated title. It does not matter if the rest of permalink is different and URL is unique as a whole. You can add as many homonymous (posts/pages/term with the same title) title, but the native slug will always be unique.
How to Edit Slugs From WordPress Admin Dashboard?
For the sake of thoroughness, we should also add that the following instructions also apply to WooCommerce slugs. Although the screenshots below illustrate a post, a custom post type item, and a category, the instructions may be applied to products, product categories, and product tags as well.
Depending on whether you wish to change the slug for a page or a category, the field to do so may be located elsewhere. When using the Classic Editor, this field is not immediately displayed for posts or pages. Simply clicking on the "Edit" button should give you instant access to this useful feature. After that, you should see an input field where you may make the adjustment.
WordPress provides an additional convenient way for editing slugs. To utilize it, simply open the "Quick Edit" panel on the administrative page where the list of posts is displayed.
Gutenberg Editor
In the new Gutenberg editor, changing the slug is a much simpler. To do so, just locate the input field in the sidebar's "Permalink" section.
Custom Taxonomy and Category Slugs
The situation is different when it comes to modifying WordPress slugs for categories, tags, and other taxonomy terms. This field will be presented directly in this instance, and you should have no problem finding it.
Via Permalink Manager
Because URLs created using Permalink Manager may be totally personalized, they do not have to include native slugs. However, if required, they may be edited straight using the URI Editor.
By default, the native editor is not shown in the admin interface. If you need to change the native slugs for whatever reason, you can utilize the URI Editor's slug editor. To do this, turn on the 'Show "Native slug" field' option in Permalink Manager settings, as shown below.
Permalink Manager will display an extra field within the URI Editor if the "Show native slug field" option is checked, as illustrated below.
How to Duplicate the Slugs?
By default, it is not possible to use the same slug using inbuilt WordPress permalinks. If you try to use it more than once, WordPress will append numeric indexes to the end of permalink. It is really frustrating especially if you would like to use the same title for multiple subcategories or child pages assigned to different parents.
This issue is also mentioned in the official documentation on WordPress.com. Using Permalink Manager, however, this flaw may be readily addressed. To cut a long story short, the plugin allows you to reuse the same slug across multiple nonhierarchical post types and taxonomies since it uses a unique algorithm to detect permalinks and hence does not require any of the native slugs to be included.
Keep in mind that the native slugs are also included by default in the permalinks generated by Permalink Manager. You may, however, freely edit them and overwrite the default permalinks with your own. There are two basic ways to remove the numerals appended (eg. “duplicate-slug-2“) to the permalinks:
- You can manually remove the numerals appended to the individual permalinks.
- You can make Permalink Manager use the actual titles instead of native slugs in the custom permalinks.
How to Adjust Them Manually?
The easiest method to reuse the same slug is to use "Current URI" field in URI Editor:
How to Use Actual Titles Instead of Them?
The manual adjustments of individual custom permalinks could be time-consuming. The alternative solution to allow slug duplicates is to select “Use actual titles as slugs (Force custom slugs)” mode in "Slugs mode" in the plugin settings.
When enabled, Permalink Manager will always use the actual title (eg. “Shoes“) instead of the native slug (eg. “shoes-2“) in the custom permalink. Please keep in mind that the adjustments will only be applied to new posts and terms. Therefore, to apply them to existing items, you should use the "Regenerate/reset" tool.
Permalink Duplicates
Permalink Manager can detect permalinks with duplicated slugs because it uses a custom algorithm to detect the URLs. Shortly, it checks the full URL address instead of the native slug (part of URL). Hence, the slugs can be reused, but still you need to make sure that the full URL address is unique.
Concurrently, you can always check if any of custom permalinks is duplicated in "Permalink Duplicates" section. To display it, please go to “Tools -> Permalink Manager -> Tools -> Permalink Duplicates” admin page.