How to Write SEO-Friendly URLs
Clean URLs are short, readable, and keyword-focused. Here is how to structure them correctly, what to avoid, and how to change URLs without losing rankings.
16 May 2026 · 6 min read
A URL is one of the first things both search engines and users see when assessing a page. A well-structured URL communicates what a page is about before anyone reads a word of content. A poor one is a missed signal and, in the worst cases, a source of duplicate content and crawling problems.
SEO-friendly URLs are short, descriptive, readable by humans, and structured in a way that search engines can parse clearly.
What makes a URL SEO-friendly?
Use hyphens, not underscores
Google treats hyphens as word separators. Underscores are treated as word connectors: seo_friendly_urls is read as one word, seo-friendly-urls is read as three.
Good: /learn/how-to-write-seo-friendly-urls
Bad: /learn/how_to_write_seo_friendly_urls
Keep URLs short
Shorter URLs rank better on average and are easier to share, cite, and remember. Remove every word that does not add meaning. Articles (a, an, the), conjunctions (and, or, but), and prepositions (for, with, in) can usually be removed without losing clarity.
Good: /learn/redirect-chains
OK: /learn/how-to-fix-redirect-chains
Bad: /learn/a-complete-guide-to-finding-and-fixing-redirect-chains-on-your-website
Use lowercase only
URLs are case-sensitive on most servers. /Page and /page can return different content, creating duplicate content issues. Use all lowercase throughout.
Include the target keyword
The URL slug should reflect the primary keyword for the page. Google uses the URL as a relevance signal, and users scanning search results use the URL to confirm the page is what they are looking for.
Good: /tools/meta-description-checker
Good: /learn/what-is-crawl-budget
Bad: /page?id=4821
Bad: /tools/tool3
Use a logical folder structure
URL structure should reflect your site's information architecture. A clear hierarchy helps search engines understand how pages relate to each other.
/learn/ ← category index
/learn/what-is-technical-seo ← article within category
/tools/ ← tool category
/tools/redirect-checker ← specific tool
Keep the hierarchy shallow. Deep nesting (more than three or four levels) buries pages from the crawl perspective and creates longer URLs unnecessarily.
Avoid dynamic parameter-heavy URLs
URL parameters create a combinatorial explosion of URLs that may all return similar or identical content:
/products/?colour=blue&size=large&sort=price&page=3
Where possible, use static URL paths. When parameters are necessary (filtering, pagination, session IDs), configure canonical tags or use robots.txt to prevent search engines from crawling parameter variants.
What about stop words?
Stop words are common words like "a", "the", "is", "how", "to". The old advice was to remove all of them from URLs. The modern approach is more nuanced:
- Remove them when the URL still reads clearly without them
- Keep them when they are necessary for the URL to make sense or match search queries closely
/how-to-fix-redirect-chains includes stop words and is cleaner and more readable than /fix-redirect-chains. For this type of how-to content, keeping "how-to" matches user search intent and improves readability.
Changing existing URLs
Changing URLs on an established site is risky and should be done carefully. If a URL has backlinks or organic traffic, changing it without a 301 redirect loses that link equity and any rankings associated with the old URL.
If you do change URLs:
- Set up a 301 redirect from the old URL to the new one
- Update all internal links to point to the new URL (do not rely on the redirect permanently)
- Update any external links you control (social profiles, directory listings)
- Submit the new URL in your XML sitemap
- Use Google Search Console to request indexing of the new URL
For a site restructure involving many URL changes, see the site migration guide for a full checklist.
URL slugs for blog posts and articles
For articles, the slug should be the shortened, keyword-focused version of the title. The full title is for the H1 and title tag. The URL slug is a concise, permanent identifier.
| Title | URL slug |
|---|---|
| How to Find and Fix Redirect Chains on Your Website | /learn/how-to-fix-redirect-chains |
| What is Domain Authority and How is it Calculated? | /learn/what-is-domain-authority |
| The Best Free SEO Tools in 2026 | /learn/best-free-seo-tools |
Do not include the year in article URL slugs unless the content is genuinely time-sensitive and you plan to update the URL each year. Year-dated URLs require redirects when updated and are perceived as stale by users in future years.
How to generate clean URL slugs
Crawly's free URL slug generator converts any title or phrase into a properly formatted URL slug: lowercase, hyphenated, with stop words and special characters handled automatically. Paste your title and copy the result.
Common URL mistakes
Using default CMS patterns
WordPress defaults to /p=123 for posts. Drupal defaults to /node/456. These tell Google and users nothing about the content. Always configure a clean permalink structure.
Session IDs in URLs
URLs containing session identifiers (?session=abc123xyz) create unique URLs for every user and exponentially increase the number of URLs search engines must crawl. Strip session IDs from indexable URLs and use cookies instead.
Inconsistent trailing slashes
/page/ and /page are technically different URLs. Pick one convention and stick to it. Add canonical tags or redirects to enforce consistency across the site.
URL encoding of special characters
Spaces, accented characters, and punctuation in URLs are encoded (%20, %E9) and become unreadable. Stick to standard ASCII characters: letters, numbers, and hyphens.
Clean URLs are a small investment with lasting returns: easier to share, easier to read, and cleaner for search engines to crawl. Use Crawly's slug generator to format any title into a valid, SEO-friendly URL.