An SEO-friendly URL is short, readable and describes the page using words your audience would search for. Use lowercase letters, separate words with hyphens rather than underscores, avoid long ID numbers and unnecessary parameters, and keep folders logical. Google recommends readable words over IDs and hyphens over underscores, but URLs are only a light ranking factor.
The rest of this guide sets out the rules with examples, how to structure folders, and whether you should change URLs you already have.
Key takeaways
- Use short, lowercase URLs with readable words separated by hyphens, and avoid long IDs, underscores and unnecessary parameters.
- URLs are only a light ranking factor, so treat consistent, crawlable URLs as basic hygiene rather than a ranking trick.
- Leave dates out of evergreen URLs and keep folder nesting shallow, with two or three levels being plenty for most small sites.
- Only change existing URLs if they are seriously flawed, and give every changed URL a one-to-one permanent 301 redirect.
How to check if a URL is SEO friendly
Use this quick checklist on any address. If it passes every line, the URL is in good shape; the detailed checks further down cover canonicals, sitemaps and Search Console.
- Readable: a person can guess the topic from the URL alone.
- Lowercase: no capital letters anywhere in the path.
- Hyphens: words are separated by
-, not_, spaces or%20. - Short: only the words that describe the page, with filler words removed.
- No clutter: no session IDs, tracking codes or parameters that do not change the content.
- Timeless: no year or date on an evergreen page.
- Shallow: two or three folder levels at most, with no repeated keywords.
- One version: http, https, www and non-www all end on the same address after a single 301 redirect.
To turn a page title into a clean slug, paste it into the free slug generator. To test the last point, run the address through the redirect checker and confirm there is one hop to the final URL, not a chain.
SEO-friendly URL examples: good vs bad
| Page | Bad URL | Good URL | What is wrong with the bad one |
|---|---|---|---|
| Service page | /index.php?page_id=274 |
/services/boiler-repair/ |
Only an ID; tells users nothing |
| Product | /Products/Oak_Dining_Table |
/products/oak-dining-table/ |
Capitals and underscores |
| Blog post | /blog/2026/10/the-ultimate-complete-guide-to-choosing-a-boiler/ |
/blog/choosing-a-boiler/ |
Date in an evergreen URL; too long |
| Category filter | /shoes?sessionid=8f3a2&sort=new&utm_source=mail |
/shoes/black/ or /shoes?colour=black |
Session and tracking parameters |
| Location page | /plumbing/plumbing-services/plumbing-leeds/ |
/areas/leeds/ |
Keyword repeated at every level |
| App view | /#/pricing |
/pricing/ |
Fragment URLs are not indexed as separate pages |
Do URLs affect SEO?
A little, and mostly indirectly. Google's SEO Starter Guide suggests you "try to include words in the URL that may be useful for users" and notes that "a URL that only contains random identifiers is less helpful for users." Words in a URL can help people understand where a link goes when they see it shared or in a search result, which can affect whether they click.
What matters more is that URLs are consistent and crawlable. Messy URL systems create duplicates and endless parameter combinations that waste Google's time. So treat good URLs as basic hygiene rather than a ranking trick.
What makes a URL SEO-friendly?
1. Use readable words, not IDs
Google's URL structure guidance prefers /wiki/Aviation over index.php?topic=42&area=3a5ebc.
| Bad | Good |
|---|---|
/index.php?id=1873&cat=4 |
/services/boiler-repair/ |
/p/88231 |
/oak-dining-table/ |
/blog/2026/10/14/post-1 |
/blog/how-to-bleed-a-radiator/ |
2. Separate words with hyphens
Google says to use "hyphens (-) instead of underscores (_)", because underscores are conventionally used to join words in code. Words run together, such as greendress, are also not recommended.
- Good:
/garden-landscaping-bristol/ - Avoid:
/garden_landscaping_bristol/or/gardenlandscapingbristol/
3. Use lowercase
Google treats URL paths as case-sensitive, so /Services/ and /services/ are different URLs. Mixed case invites duplicates and broken links when people type them. Standardise on lowercase and, if your server treats cases the same, redirect uppercase variants.
4. Keep it short and focused
Include the words that describe the page and drop the rest. Stop words such as "and", "the" and "of" can usually go if the URL still reads naturally.
- Long:
/blog/the-complete-and-ultimate-guide-to-everything-about-choosing-a-new-boiler-in-2026/ - Better:
/blog/choosing-a-new-boiler/
5. Leave dates out of evergreen URLs
A year in the URL (/best-crm-2025/) makes an article look stale the moment the year changes, and updating it means changing the URL. Put the year in the title and keep the URL timeless. Date folders do make sense for genuine news.
6. Minimise parameters
Google recommends removing parameters that do not change the content. If you must use them, use the standard format: = between key and value, & between parameters.
https://www.example.com/shoes?colour=black&size=9
Avoid session IDs in URLs (use cookies instead), and keep tracking parameters such as utm_source off internal links.
7. Do not use fragments to change content
Google generally does not support URL fragments (#) for loading different content, so example.com/#/products will not be indexed as a separate page. Single-page apps should use the History API to give each view a real URL.
8. Encode special characters
Spaces and characters such as £, é or emoji must be percent-encoded in links. Simpler still, stick to a-z, 0-9 and hyphens in English-language slugs.
How should I structure folders?
Folders should mirror how your site is organised and help users understand where they are:
https://www.example.com/services/
https://www.example.com/services/boiler-repair/
https://www.example.com/services/boiler-installation/
https://www.example.com/areas/leeds/
https://www.example.com/blog/how-to-bleed-a-radiator/
Guidelines:
- Keep nesting shallow. Two or three levels is plenty for most small sites.
- Every folder level should ideally work as a page in its own right (
/services/should list services rather than return a 404). - Do not repeat keywords at every level (
/plumbing/plumbing-services/plumbing-leeds/). - Pick one convention for trailing slashes and apply it everywhere, with redirects for the other version.
For international sites, Google suggests a country-specific domain (example.de) or subdirectory (example.com/de/).
How do I set URLs in WordPress and other platforms?
- WordPress: go to Settings > Permalinks and choose Post name (
/%postname%/). Edit each post's slug in the editor's URL field before publishing. - Shopify: URLs include fixed prefixes such as
/products/and/collections/; edit the handle in the "Search engine listing" section. - Wix and Squarespace: edit the page URL or slug in the page's SEO settings.
Decide the slug before you publish. It is much easier than changing it later. If you also want to keep admin or search URLs out of crawlers' way, the free robots.txt generator from MakeItFlow builds a clean file.
How do I audit my URLs in more depth?
Run through each URL with the same rules as above. A URL passes if a person can guess what the page is about from the address alone.
- Read it aloud. It should be short, lowercase, use hyphens between words and contain no session IDs, tracking codes or long strings of numbers.
- Check it matches the page. The words in the URL should describe the page's main topic, the same topic as its title and H1.
- Check there is only one version. Open the page with and without
www, withhttp://and with and without a trailing slash. All of them should end on one address with a single 301 redirect. Our free redirect checker tests the http, https, www and non-www versions in one go. - Check the canonical tag. The page should point to itself as canonical (a self-referencing canonical tag), using the clean URL. The free meta tag checker shows the canonical next to the title and description.
- Check the URLs in your sitemap. They should be the clean, final addresses, not redirects. The sitemap checker lists them and tests a sample.
- Check how Google sees it. In Google Search Console, use URL Inspection on the address to see whether it is indexed and which canonical Google chose.
Fix new pages first. For pages that already rank, only change the URL if the benefit is clear, and always add a 301 redirect from the old address, as explained in the next section.
Should I change my existing URLs to make them SEO-friendly?
Usually not, unless they are genuinely bad (IDs only, duplicates, broken structure) or you are already doing a migration. Changing URLs means:
- Google has to recrawl and re-process every page, and rankings can fluctuate while it does.
- Every changed URL needs a permanent 301 redirect from the old address.
- Internal links, sitemaps, canonical tags and ads all need updating.
If you do go ahead:
- Map every old URL to its new equivalent in a spreadsheet.
- Set up one-to-one 301 redirects (never redirect everything to the homepage).
- Update internal links and the XML sitemap to the new URLs.
- Keep the redirects in place long term.
- Monitor Search Console's Page indexing report for 404s.
# .htaccess: one-to-one redirect after changing a slug
Redirect 301 /p/88231 https://www.example.com/oak-dining-table/
Our guide to broken links and redirect chains explains how to avoid creating chains when URLs change more than once, and the website launch checklist covers redirects for a full relaunch.
MakeItFlow samples broken links and checks canonical tags when you run a free website audit, so it is a quick way to confirm nothing broke after a URL change. Paid plans add a whole-site crawl to catch broken internal links across every page.
What to do next
Set your CMS to use readable slugs and agree simple rules for your team: lowercase, hyphens, short, no dates on evergreen pages. Apply them to every new page from today. Only change existing URLs if they are seriously flawed, and if you do, redirect each one properly and update your internal links.
Frequently asked questions
Should I put my keyword in the URL?
Yes, where it describes the page naturally, because it helps users see what the page is about. Do not stuff several variations in; one clear phrase is enough, and the URL is a minor signal compared with the page content.
Is there a maximum URL length?
Google does not set a strict limit for ranking. Very long URLs are harder to share and are often truncated in search results, so keep them as short as is practical while staying descriptive.
Should URLs end with .html or a trailing slash?
Either works for SEO. What matters is consistency: choose one format, use it in all internal links and sitemaps, and redirect the alternatives to it.
Do subdomains or subfolders rank better?
Google can handle both. Subfolders keep everything under one host, which is simpler to manage and measure, so they are usually the easier choice for a blog or shop on a small business site.
Do URLs with location names help local SEO?
A location in the URL, such as /areas/leeds/, helps users and keeps your structure clear. It will not make a thin page rank on its own; the page still needs genuinely local, useful content.
Sources
Written by the MakeItFlow team
We build the website audit these guides are based on. Every fact is checked against the primary sources listed above and this guide was last reviewed on 31 October 2026 . How we research and check
Check your own site in 30 seconds
Run a free audit covering speed, SEO, DNS, email authentication and security headers — and get a prioritised fix list.