Home / Blog / URL Structure SEO: Best Practices and Examples

URL Structure SEO: Best Practices and Examples

URL structure SEO is the practice of designing web addresses that Google can crawl efficiently and people can read at a glance: descriptive words, hyphens between them, one consistent letter case, logical folders and as few parameters as possible. Here’s the part most guides skip.…

URL Structure SEO: Best Practices and Examples

URL structure SEO is the practice of designing web addresses that Google can crawl efficiently and people can read at a glance: descriptive words, hyphens between them, one consistent letter case, logical folders and as few parameters as possible. Here’s the part most guides skip. Google says keywords in a URL path have hardly any ranking effect on their own, so a good URL earns its keep through cleaner crawling, a clearer search result and, above all, stability.

This is a topic you have to see, not just read about. So every section below is built around example URLs you can compare line by line, and the text points at them directly.

How to Read a URL: The Anatomy, Part by Part

Take one product address from a made-up shoe store and split it into pieces:

https://www.example.com/shoes/running/pegasus-41?color=blue#reviews
PartIn the exampleWhat it doesWhat to watch
Protocolhttps://Secure connectionEvery page should resolve to HTTPS only
Subdomainwww.Optional host prefixPick www or non-www and redirect the other
Domainexample.comYour site’s nameKeywords here barely matter for ranking
Folders/shoes/running/Groups related pagesUseful on big sites, optional on small ones
Slugpegasus-41Names this one pageShort, readable, hyphenated
Parameter?color=blueChanges or filters the viewThe main source of duplicate URLs
Fragment#reviewsJumps to a spot on the pageGoogle doesn’t support it for changing content

Read the table top to bottom and you’ll notice something. Only two rows, the folders and the slug, are pure writing decisions. The protocol, subdomain and domain are set once, and the parameter and fragment rows are where most real problems start, because code creates them, not people.

When I audit a site, the parameter row gets my attention first. A slug with an extra word is cosmetic. A filter parameter that multiplies one category into thousands of crawlable variations is a crawling problem.

What Does Google Actually Say About URL Structure?

Google keeps a dedicated page on URL structure best practices, last updated in December 2025. It splits the advice into hard requirements and softer recommendations, and the difference matters.

The requirements are technical. URLs must follow the IETF STD 66 standard, with reserved characters percent encoded. Parameters should use an equals sign between key and value and an ampersand between pairs. And fragments shouldn’t be used to change page content, since Google generally doesn’t support them; JavaScript sites should use the History API instead.

The recommendations are the ones most people quote: readable words instead of long ID numbers, words in your audience’s language, hyphens instead of underscores, as few parameters as possible, and awareness that URLs are case sensitive. Google’s reason for hyphens is practical. Underscores are already used to join words that belong together, like format_date in programming.

Then there’s the line from Google’s SEO Starter Guide that changes how I prioritize all of this: “the keywords in the name of the domain (or URL path) alone have hardly any effect beyond appearing in breadcrumbs.” So readable URLs help users decide to click. They don’t make a page rank by themselves. Useful, not magic.

URL Structure SEO Examples: Good vs Bad, Side by Side

Here’s the kind of comparison I walk clients through, with each weak URL next to a better version:

#Weak URLBetter URLWhat changed
1/index.php?id=4471&cat=3/guides/fix-leaking-faucet/Readable words replace IDs
2/blog/Fix_Leaking_Faucet/blog/fix-leaking-faucet/Lowercase, hyphens instead of underscores
3/blog/2021/03/14/how-to-fix-a-leaking-faucet-in-your-kitchen-quickly//blog/fix-leaking-faucet/Dropped the date and filler words
4/plumbing/plumbing-services/plumbing-repair//services/plumbing-repair/Removed repeated words and one folder
5/products/sku-88213/products/pegasus-41-running-shoe/Product name instead of a bare SKU
6/shop?sessionid=6EE2BF1A&sort=price/shop/Session ID and sort moved out of the indexable URL
7/#/pricing/pricing/Real path instead of a fragment route

Look at rows 1 and 7 first. Those two are the only ones where the weak version can stop Google from understanding the page at all: row 1 hides meaning behind IDs, and row 7 hides a whole page behind a fragment Google generally won’t treat as separate content.

Rows 2 through 5 are readability fixes. They make the address easier to scan in a search result and easier to trust when someone shares it. Row 6 is the sneaky one, because a single page can spawn thousands of URLs once session IDs and sort orders get appended to every link.

How Should You Write a Slug?

The slug is the part after the last folder, and it’s the one you control on every page. My rules for it are short:

  • Describe the page in roughly 3 to 6 words, using the words your searchers use.
  • Use lowercase letters and hyphens only.
  • Drop filler words like “a”, “the” and “your” when the slug still reads naturally without them.
  • Leave dates out of evergreen content, so a refreshed post doesn’t look stale.
  • Don’t repeat a word the folder already says (row 4 above).

The slug should echo the page’s primary keyword loosely, not word for word. If you’ve done your keyword mapping first, every page already has one owner keyword, and the slug practically writes itself.

Product URLs deserve their own note, because people often ask how to name them. I’d use the product name plus the detail that tells two products apart, like a model number (row 5). Colors and sizes are usually better as variants on one product page than as separate URLs. My guide to product page SEO covers the rest of that page.

Do Folders Help, or Should You Keep URLs Flat?

Folders are useful when they reflect real sections. Google’s Starter Guide gives a neat example: if your /policies/ pages rarely change and your /promotions/ pages change often, Google can learn that difference and crawl the two folders at different frequencies.

My take is to nest only as deep as your navigation goes. A small blog does fine with posts sitting at the root, which is exactly how this site works: skyranko.com/do-backlinks-still-work/ has no folder at all. A store with hundreds of products benefits from folders like /collections/ and /products/, because they separate page types cleanly, and whether those URLs should mirror the category tree is a question I answer in how to organise a store’s structure.

Where folders go wrong is ecommerce products placed inside category paths. If one shoe sits in three categories, you can end up with three URLs for one product. Shopify, for example, gives each product one main address under /products/, even when shoppers reach it through a collection, and I cover the tag, filter and page URLs those collections add in Shopify collection page SEO. Category pages themselves are a bigger subject, covered in my post on category page SEO, and the wider question of site architecture deserves its own guide.

Parameters, Filters and Fragments: Where Crawl Budget Leaks

Parameters are fine when they genuinely change the content, like a search query. They turn into a problem when they multiply views of the same content. That’s the leak. Google’s URL page lists the usual suspects: filters that combine (hotels on the beach, plus a gym, plus free parking), referral and sorting parameters, session IDs and endless calendar pages.

Here’s what I actually do about each one:

  1. Session IDs: move them into cookies, as Google recommends. They should never appear in a link.
  2. Sort and referral parameters: keep them off internal links wherever possible, and point the variants at the clean URL with a canonical tag (a separate topic I’ll only mention here). Search Console will then list those variants as Alternate page with proper canonical tag, which is fine.
  3. Infinite calendars: add nofollow to links for dynamically created future dates.
  4. Internal search results and pure crawl traps: block them in robots.txt.

A minimal robots.txt for the last point looks like this. Only block URLs you never want crawled, because Google can’t see anything on a blocked page, including its canonical tag.

User-agent: *
Disallow: /search
Disallow: /*sessionid=

Fragments are the odd one out. A #reviews jump link is harmless, but a single-page app that swaps its whole content behind #/pricing (row 7 again) gives Google nothing to index as a separate page.

Which URL Variants Does Google Count as Different Pages?

This detail trips up more sites than anything else here. To Google, every one of these can be a separate URL, even when your server shows identical content:

http://example.com/Pricing
https://example.com/Pricing
https://example.com/pricing
https://www.example.com/pricing
https://www.example.com/pricing/
https://www.example.com/pricing?ref=newsletter

Case is the one people doubt, so here’s Google’s own example: /APPLE and /apple are distinct URLs with their own content. Trailing slashes work the same way, which Google explained back in a 2010 post: a URL with a slash and one without are treated separately, and the fix is to serve one and redirect the other.

The rule is simple. Pick one version of every page (HTTPS, one host, one letter case, one slash style) and make every other variant redirect to it with a single hop.

Should You Change a URL You Already Have?

Usually not. Honestly, most “bad” URLs I see aren’t bad enough to justify the risk, because a changed URL has to be rediscovered and its signals moved over. One of our own posts lives at /keyword-clustering-vs-semantic-clusteringng/, typo included. It already shows up in Search Console for queries like “semantic keyword grouping”, so when I refreshed it this month, the slug stayed exactly as it is.

Change a URL when the current one is genuinely broken (IDs, fragments, session parameters), when you’re merging two pages into one, or when you’re moving platforms anyway. Then follow Google’s guidance on site moves with URL changes:

  1. List every old URL next to its new URL before touching anything.
  2. Set up server-side permanent redirects, 301 or 308, from each old URL straight to its new one.
  3. Update your internal links to point at the new URLs, so you aren’t relying on redirects.
  4. Give each new page a self-referencing canonical tag.
  5. Submit the updated sitemap in Search Console.
  6. Keep the redirects for as long as possible; Google’s guidance says generally at least 1 year.
  7. Watch the Performance and Pages reports over the next 8 weeks for errors or lost queries.

Platforms can help or hurt here. On Shopify, editing a product’s URL handle comes with a pre-selected “Create a URL redirect” option, so leave it ticked. On WordPress, switching the permalink setting from something like “Day and name” to “Post name” rewrites every post URL at once, which is a site-wide change that needs a redirect plan first. The 301 vs 302 choice matters too, but it deserves a post of its own.

What the Examples Add Up To

Go back through the tables and a pattern shows up. The anatomy table showed that parameters and fragments cause most real damage. The side-by-side table showed that readability fixes are nice, while IDs and fragment routes are actual blockers. The variants list showed why consistency beats cleverness.

If I had to rank the work for an existing site: fix duplicates and parameter sprawl first, keep URLs stable second, and polish slugs last, only on new pages. That’s the order I’ve worked in for 8 years, and I haven’t found a good reason to flip it. If you’d like a second pair of eyes on your structure, our SEO service covers it, and a free SEO audit is a good first step. For the wider technical picture, my technical SEO checklist picks up where this post stops.

Frequently Asked Questions

Do Keywords in a URL Still Help Rankings?

Barely. Google’s own Starter Guide says keywords in a domain or URL path alone have hardly any effect beyond appearing in breadcrumbs. I still put a readable keyword in every slug, because it helps searchers judge the result before they click. Just don’t rename working URLs to squeeze one in.

Is There a Maximum URL Length for SEO?

Google’s URL guidance doesn’t set a character limit. It asks you to trim parameters that don’t change the content. My own audit flags any URL over 75 characters, but that’s a readability rule I use, not a Google threshold, and I only apply it to new pages.

Should Blog URLs Include the Date?

Only for content that’s genuinely tied to a date, like news. For evergreen guides, a date in the URL makes a freshly updated post look old and forces a URL change if you ever want to remove it. WordPress offers a “Post name” permalink option that leaves dates out entirely.

Are Uppercase Letters in URLs Bad for SEO?

They aren’t a penalty, but they create duplicates. Google treats /Pricing and /pricing as separate URLs, so if your server serves both, you’ve split one page into two. Use lowercase everywhere and redirect any uppercase variant to it.

Last updated: September 2026 by Mizanur Rahman

Put this guide to work.

Want help applying it? Start with a free audit of your site. We’ll show you what to fix first.

Get a free SEO audit