What makes a good URL slug
A slug is the readable part of a URL after your domain. Search engines and people both read it, so short and descriptive beats long and complete. /best-ai-writing-tools/ tells you more at a glance than /10-best-ai-writing-tools-for-bloggers-2026-guide/, and it does not truncate awkwardly when shared.
A few rules worth following: use hyphens rather than underscores, since Google treats hyphens as word separators and underscores as joiners. Keep it lowercase, because some servers treat /Page/ and /page/ as different URLs. Drop filler words. And leave the year out unless the page really is year-specific, or you will be stuck rewriting the URL every January.
One caution: if a page is already published and ranking, changing its slug changes its URL. Set up a redirect from the old one, or you will lose whatever it had earned.
How long should a URL slug be?
Three to five words is the range worth aiming for. Long enough to say what the page is, short enough to read in a search result without truncating. Google does not have a slug length limit, but people scanning a results page do have an attention limit, and a slug that runs past the edge of the box tells them nothing.
The useful test is whether someone could guess the page content from the URL alone. /robots-txt-guide/ passes. /post-4471/ does not. Neither does /the-complete-and-definitive-guide-to-writing-a-robots-txt-file-for-wordpress-in-2026/, which says everything and communicates nothing.
Hyphens, underscores or nothing at all
Use hyphens. Google has said for years that it treats a hyphen as a word separator and an underscore as a word joiner, so free-online-tools reads as three words and free_online_tools reads as one. Running words together is worse again — freeonlinetools is a single unfamiliar string to a parser and to a human.
This is also why kebab-case is the convention for URLs while camelCase and snake_case belong in code. If you need those, the case converter handles all three.
What to do about accents and non-English characters
A URL can technically carry them, but they get percent-encoded the moment they are shared, and /café-guide/ becomes /caf%C3%A9-guide/ in someone’s address bar. That is ugly, harder to type and easier to break. This tool transliterates instead: é becomes e, ü becomes u, ß becomes ss. The slug stays readable everywhere.
If you want to see what percent-encoding actually does to a string, the URL encoder shows it directly.
Changing a slug on a page that already ranks
This is the one that costs people traffic. A slug is part of the URL, so editing it on a published page creates a new address and leaves the old one returning a 404 — along with every link and every ranking that pointed at it.
If you have to change it, set up a 301 redirect from the old slug to the new one before or immediately after publishing. In WordPress, Rank Math and Yoast both include a redirect manager, and Rank Math offers to create the redirect automatically when you edit a slug. Take it up.
The safer habit is to get the slug right at draft stage. It costs nothing to change before anything links to it.
Stop words: remove them or not?
Words like a, the, and, for and of carry almost no ranking weight, and stripping them shortens a slug usefully. But strip them blindly and meaning goes with them: /how-to-make-money-online/ becomes /make-money-online/, which is fine, while /war-of-the-worlds-review/ becomes /war-worlds-review/, which is not.
Read the result before you use it. That is the whole rule.