A URL is a small thing people read more often than you'd think: in search results, when a link is shared, when they hover before clicking. A clean one like yourdomain.com/blog/url-structure previews the page before anyone opens it. A messy one like yourdomain.com/p?id=4821&cat=12 tells nobody anything and looks faintly untrustworthy. The difference costs nothing to get right when you create the page, and it's a pain to change later, so it's worth a moment of thought up front.
Our URL quality check looks at three things: length, readability, and the presence of underscores and other unfriendly patterns.
What makes a good URL
- Short. Cover the topic in as few words as needed. Long URLs get truncated in results and are harder to read, share, and remember. (This is exactly why we dropped stopwords from these very URLs:
url-structure, notwhat-is-an-seo-friendly-url-structure.) - Real words, not IDs.
/pricingbeats/page?id=42. Words tell users and engines what the page is; numeric IDs tell them nothing. - Hyphens, not underscores. Search engines treat hyphens as word separators and underscores as joiners, so
my_great_pagereads as one wordmygreatpage, whilemy-great-pagereads as three. Always hyphens. - Lowercase. Mixed-case URLs can create duplicate-URL headaches on case-sensitive servers. Keep them lowercase.
- Stable. A URL is a promise. Once people link to it and engines index it, changing it breaks those links unless you redirect. Choose well so you don't have to.
What to avoid
- Underscores as word separators (
/blog_post_title). - Stopword soup:
/the-best-way-to-do-the-thing-for-your-business. Trim to the keywords. - Parameters where a path would do:
/?p=42instead of/pricing. Some parameters are unavoidable (filters, tracking), but your core pages should have clean paths. - Dates you'll regret:
/2021/03/our-guidemakes evergreen content look stale and forces a messy redirect when you update it. Skip dates unless the URL is genuinely time-bound (like news). - Deep nesting:
/category/subcategory/sub-subcategory/page. A flatter structure is easier to read and maintain. - Special characters and spaces. They get percent-encoded into ugliness (
%20).
A quick before-and-after
Before:
yourdomain.com/index.php?page_id=88&ref=nav_top
After:
yourdomain.com/about
Same page. The second one is readable, memorable, shareable, and tells a search engine what it is before it's even crawled. Nobody ever wished their URLs were longer and more cryptic.
The catch: don't rename URLs casually
Here's the tension. Clean URLs are good, but changing an existing URL is disruptive: every inbound link, bookmark, and indexed entry points at the old one. So:
- For new pages, get the URL right from the start. It's free then.
- For existing pages, only change a URL if there's a real benefit, and always add a 301 redirect from the old URL to the new one so nothing breaks. (See broken links for why orphaned URLs hurt.)
This is also why URL structure connects to canonical URLs: when the same content is reachable at multiple paths, a clean canonical keeps engines focused on the one you want.
Setting it up in practice
Most CMSs let you control the URL "slug" per page and set a global pattern (the part after your domain). Configure the pattern once (usually /post-title or /category/post-title) so new content gets clean URLs automatically, and edit individual slugs to trim stopwords. The goal is that a new page is born with a good URL instead of needing one retrofitted.
Common mistakes
- Underscores instead of hyphens.
- ID-based URLs for pages that could have word-based paths.
- Overlong, stopword-heavy slugs.
- Dates baked into evergreen URLs.
- Changing URLs without redirects, breaking every existing link.
FAQ
Do URLs affect rankings?
Mildly and indirectly. Clean, descriptive URLs help users and give engines a small extra signal, and they improve click-through from search. They're not a major ranking lever, but they're cheap to get right.
Hyphens or underscores?
Hyphens. Search engines read hyphens as spaces between words and underscores as joiners, so word-two is two words and word_two can be read as one.
Should I put the date in my URLs?
Only for genuinely time-bound content like news. For evergreen pages, a date makes the content look old and complicates updates.
I have ugly URLs already, should I change them all?
Not reflexively. Fix new pages going forward, and only rewrite old URLs when the benefit is real, always with a 301 redirect so existing links survive.
Key Takeaways
- A good URL is short, made of real words instead of numeric IDs, lowercase, and stable over time, like
/pricingrather than/page?id=42. - Use hyphens, not underscores: search engines read hyphens as word separators, while
my_great_pagecan be read as the single wordmygreatpage. - Avoid dates in evergreen URLs, deep nesting, stopword-heavy slugs, and special characters, which get percent-encoded into strings like
%20. - URLs are a minor, indirect ranking signal, but clean ones improve click-through and are cheap to get right when a page is created.
- For existing pages, only rename a URL when the benefit is real, and always add a 301 redirect from the old URL so inbound links and indexed entries survive.
Want to spot URLs that are too long, use underscores, or rely on IDs? Run a free audit. URL quality is one of our checks. More in the SEO explainers.



