WordPress automatically strips out certain characters from URLs to keep them clean and uniform. It is designed this way since each browser interprets non-standard (non-ASCII) characters in URLs differently.
Originally, this was done to ensure older browsers like Netscape and Internet Explorer could handle URLs properly.
Those browsers are hardly used anymore, but WordPress has not changed how it handles URLs. While limiting URLs to Latin characters does make them more standardized, it can also be restrictive if you want to include special symbols, or accented letters in your permalinks.
Why Latin Characters Are the Standard for URLs?
Looking at URLs, you will see they are formed using characters from something called ASCII. This includes the English alphabet, numbers, and some symbols. Latin letters, which are widely used in many European languages, are part of ASCII and make up most of the characters in URLs.
The reason for this is simple: in the early days of the internet, almost all of the content was in English, so ASCII became the standard to keep things uniform. It was easy to use, widely supported, and worked well with the technology of that time.

As the internet expanded to include more languages, non-ASCII characters were added. To keep everything working smoothly, these characters are converted into a special format using percent signs and hexadecimal numbers.
How WordPress Strips Non-Alphanumeric Characters from Slugs?
In WordPress, special characters and non-alphanumeric characters are automatically removed and sanitized from slugs in order to create clean and consistent URLs. This process is known as slug sanitization. By default, WP removes the following characters from slugs:
- Spaces:
Replaced with a hyphen (-) - Non-alphanumeric characters:
Removed completely - Diacritics (accented characters):
Replaced with the corresponding non-accented character
For instance, if your post title is "My Special Post!", the system will generate the slug as "my-special-post". This automatic process helps keep URLs clear and simple, making them easier for people to read and understand, as we mentioned earlier.

As already mentioned, the non-standard characters are encoded with the "percent-encoding" method and substituted with the hexadecimal equivalent of their ASCII value.
WordPress goes even farther by limiting you to ASCII letters, digits, and dashes. It is important to point out that in addition to the aforementioned, all capital characters are changed to their lowercase counterparts automatically.
By default it sanitizes the slugs (post names) with
sanitize_title()
function. The dots, accents and other non-standard character are automatically removed from native slugs, when the post is saved or updated.
The Risks of Using Special Characters in URLs
Though older browsers may have issues with URLs that contain non-Latin characters, Google can still read and display them correctly. This is not a common issue, but encoded URLs are typically longer than usual. If the URLs get too long, it might affect how they appear in search results.
URLs containing special characters can sometimes break when shared. Some email clients and messaging apps may not process them correctly, which could result in broken links or formatting issues.
By now, you should see that the reason for using basic characters in URLs is not just an unnecessary restriction. It is about making sure your WordPress links are standardized and work everywhere they are shared.
Considering this, ask yourself whether using special characters is really essential for your URLs. If you do want to include them, it might be a bit tricky, but there are ways to bypass WordPress's default system for cleaning up slugs if you prefer an easier method.
How to Keep Special Characters in WordPress Slugs?
It is possible to bypass WordPress’s default slug formatting and create permalinks that include non-Latin characters and special symbols. While this can be useful for localization, always double-check that your URLs remain valid and accessible to avoid SEO or usability problems.
Special characters are removed from built-in permalinks, but custom permalinks can keep them as they overwrite the default ones. To make this work, go to the Permalink Manager settings, open the "Advanced settings" tab, and switch on the "Strip special characters" option:
If you want special characters to be copied automatically from the title to the custom permalink, set your "Slugs mode" to "Use actual titles as slugs" instead of default "Use native slugs".
You can add dots or underscores to custom permalinks manually, no matter the "Slugs mode" you select, as long as "Strip special characters from slugs" is off.
How to Preserve Accents in the URLs?
By default, accented characters and other special symbols are converted into their standard Latin versions (for example, Å becomes A, Æ becomes AE, Ø is replaced with O, and Ć turns into C).
If you would rather keep the accents inside the custom permalinks, you can disable the remove_accents() function through the Permalink Manager settings: