URL Structure
How to structure URLs for SEO — anatomy, hyphens vs. underscores, keywords, case sensitivity, parameters, and why changing URLs almost never helps.
1 evidence signal on this page
- Related live toolCanonicalization Checker
URL structure is how the parts of a web address — scheme, domain, path, query string, fragment — are organized. It mostly matters for crawling, usability, and comprehension, not rankings: keywords in URLs are a 'very light weight' signal at best. Use hyphens (Google treats underscores as word-joiners, hyphens as separators — Bing doesn't differentiate), keep casing consistent (paths are case-sensitive), minimize parameters, and change existing URLs 'very, very rarely.'
Evidence for this claim Google recommends simple, descriptive, human-readable URLs, hyphens between words, and minimizing unnecessary parameters. Scope: Current Google URL structure guidance. Confidence: high · Verified: Google Search Central: URL structure best practices Evidence for this claim A URI is composed of standardized scheme, authority, path, query, and fragment components; semantics depend on the scheme and server. Scope: Generic URI syntax, distinct from search-engine recommendations. Confidence: high · Verified: IETF RFC 3986: URI Generic SyntaxTL;DR — A URL is the address of a page. Good URLs are readable, lowercase, use hyphens between words, and describe what the page is about. But don’t expect URLs to move your rankings much — they’re mostly for crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and for humans. The biggest mistake is changing URLs you don’t need to change.
What a URL is
A URL — Uniform Resource Locator — is the full address of a page on the web. Break one apart and you get a handful of pieces:
https://www.example.com/blog/url-structure/?ref=newsletter#anatomy
└─┬─┘ └┬┘ └────┬────┘└───────┬──────────┘└──────┬──────┘└──┬───┘
scheme sub domain path query string fragment- Scheme —
https://. Use HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'; it’s the secure version and the expected default. - Subdomain —
www.(orblog.,shop., etc.). Optional. - Domain —
example.com. Your site’s name. - Path —
/blog/url-structure/. The folders and the page “slug.” This is the part you usually control. - Query stringThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. —
?ref=newsletter. Extra parameters, often for tracking or filtering. - Fragment —
#anatomy. Jumps to a spot on the page. Search engines mostly ignore it.
What makes a good URL
Keep it simple:
- Use words, not numbers.
/blog/url-structure/beats/p?id=4321. - Use hyphens between words.
red-shoes, notred_shoesorredshoes. - Lowercase everything.
Pageandpagecan be treated as two different URLs. - Keep it reasonably short and readable — short enough that a human can guess what’s on the page.
- Match your site structureWebsite structure (site architecture) is a site's visible hierarchy, navigation, breadcrumbs, and URL organization — how pages relate and how people and search engines move between them. Internal linking is the primary signal Google reads to understand that structure, not URL folders.. The folders should reflect how your site is organized.
The thing most people get wrong
URLs are a very small ranking factor. Google has said for years that keywords in a URL “have hardly any effect.” So don’t agonize over stuffing keywords into URLs, and — more importantly — don’t go renaming a bunch of existing URLs hoping it’ll boost rankings. It almost never does, and changing URLs carries real risk (broken links, lost equity if redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. are botched). If your URLs already work, leave them alone.
Want hyphens-vs-underscores in Google’s own words, the case-sensitivity gotchas, and how parameters waste crawl budgetThe number of URLs an engine will crawl in a timeframe.? Switch to the Advanced tab.
Evidence for this claim Google recommends simple, descriptive, human-readable URLs, hyphens between words, and minimizing unnecessary parameters. Scope: Current Google URL structure guidance. Confidence: high · Verified: Google Search Central: URL structure best practices Evidence for this claim A URI is composed of standardized scheme, authority, path, query, and fragment components; semantics depend on the scheme and server. Scope: Generic URI syntax, distinct from search-engine recommendations. Confidence: high · Verified: IETF RFC 3986: URI Generic SyntaxTL;DR — URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. is mostly a crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and comprehension concern, not a ranking lever. Keywords in URLs are a “very light weight” signal that fades once a page is indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Use hyphens (Google joins on underscores, separates on hyphens). Path casing can identify distinct URLs depending on server behavior, so mixed casing can create duplicate crawl paths. Parameters are the real crawl-efficiency risk. And changing existing URLs helps “very, very rarely” — so don’t, unless they’re genuinely broken.
Anatomy of a URL
Every URL decomposes into the same parts, and each has its own SEO implications:
| Part | Example | Notes |
|---|---|---|
| Scheme | https:// | Use HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'. HTTP vs HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' is a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal. |
| Subdomain | www. | Google may treat subdomains more like separate sites than subfolders do. |
| Domain | example.com | Hostname is not case-sensitive. |
| Path / slug | /blog/url-structure/ | The part you control; is case-sensitive. |
| Query stringThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. | ?ref=newsletter | Parameters — the biggest source of duplicate/low-value URLs. |
| Fragment | #anatomy | Google “generally doesn’t support URL fragments” to change content. |
Reserved characters must be percent-encoded per the standard; use non-ASCII text in your users’ language (transliterated where it helps) rather than gibberish IDs.
Do URLs affect rankings? Barely.
This is the question everyone actually wants answered. The honest answer: minimally.
- Keywords in the URL are, per Google’s own Starter Guide, a factor where “the keywords in the name of the domain (or URL path) alone have hardly any effect beyond appearing in breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results..” John Mueller has called it “a very small ranking factor” and “a very light weight factor… less so after [the page is] indexed.” So a keyword in the URL might help Google during initial discovery, before it has crawled the content — but once the page is indexed, the content does the talking.
- What matters more than URL wording is click depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. — how many clicks from the
homepage a page sits. Logical directory structure helps GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. estimate crawl
frequency (a
/policies/folder rarely changes;/promotions/changes often), but that’s about crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., not ranking.
Bottom line: don’t restructure URLs purely to inject keywords. The juice isn’t worth the squeeze.
Hyphens vs. underscores
This is the one genuinely settled technical rule, and it’s Google-specific.
Google treats a hyphen as a word separator and an underscore as a word
joiner. So red_shoes is parsed as the single token redshoes, while
red-shoes is parsed as red and shoes. Gary Illyes’ reasoning: “many things
on the internet have an underscore in them, [Google] can’t easily segment at
underscore.” Matt Cutts said the same back in 2007 (“we still join on the
underscore and separate on the dash”), and Google’s current docs still recommend
hyphens.
There’s a wrinkle worth knowing: Mueller once said in 2016 the difference “doesn’t matter,” which muddied things — but the live documentation still says use hyphens, and that’s the safe call.
Bing is different. A Bing spokesperson confirmed: “We do not differentiate between dash and underscore in our URL ranking features.” So underscores don’t hurt you in Bing. But since you’re optimizing for both, use hyphens — it’s correct for Google and neutral for Bing.
URL length and the canonicalization myth
You’ll hear “shorter URLs rank better.” That’s a misreading.
URL length has no direct ranking impact. What’s true is narrower: when Google is choosing a canonical among duplicate or near-duplicate URLs, it may prefer the shorter, cleaner one — specifically a clean URL over the same URL with tracking parameters tacked on. As I put it in my canonicalization research: “This has been misconstrued over the years by SEOs to say that all your URLs should be shorter. But that’s not what was meant.” The preference is for a clean, parameter-free version over a parameter-heavy duplicate — not a universal “shorter wins” law. URL length is just one of roughly 40 canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signals Google uses, alongside HTTPS preference, www vs non-www, trailing slashA trailing slash is the forward slash (/) at the end of a URL — example.com/page/ versus example.com/page. Except at the bare root domain, the two versions are different URLs to search engines, so you pick one format and enforce it., and casing.
Case sensitivity is a real risk
URL paths, filenames, and query parameters are case-sensitive; the hostname is
not. So example.com/Apple and example.com/apple are two different URLs (but
Example.com and example.com are the same host).
Google can usually tell when two casings serve identical content and will
canonicalize them — but you shouldn’t make it do that work. If both versions are
reachable and not consolidated, you get duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling.. And there’s a sharp
edge most people miss: robots.txt is also case-sensitive. A Disallow
entry for /Private/ does not block /private/. Standardize on lowercase and
you sidestep all of it.
Exactly which casings resolve, redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., or 404 depends on your server and
application config — it’s not a universal rule. Test the actual responses
(curl -I or a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.) rather than assuming.
Trailing slashes
A trailing slash matters everywhere except the root:
- Root domain:
example.comandexample.com/are treated identically — no difference. - Everything else:
example.com/pageandexample.com/page/are different URLs. If both are reachable and neither consolidates to the other, that’s duplicate content.
Note that adding a trailing slash to an actual file (page.html/) won’t load the
file. As I wrote in my trailing slash guide:
“There’s always a risk with changes, so unless your setup is causing issues I
wouldn’t try to force a change to your URLs.” Pick one format, enforce it with
redirects and canonicals, and keep internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. consistent. As with casing, the
actual non-root behavior is server- and application-dependent — verify what your
setup actually returns rather than assuming.
URL parameters: the real crawl problem
Query parameters are where URL structure does the most SEO damage at scale. I split them two ways in my URL parameters guide:
- Active parameters change page content — filtering, sorting, paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does., language, on-site search.
- Passive parameters don’t change content — affiliate IDs, UTM tags, session IDs.
Both cause trouble. Passive parameters on internal links create duplicate URLs and waste crawl budgetThe number of URLs an engine will crawl in a timeframe.; active parameters (especially faceted filtering) can generate near-infinite URL combinations — a classic spider trapA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content.. Google’s own ecommerce guidance warns about exactly this: content getting missed, the same content crawled repeatedly, and the crawler thinking your site has infinite pages because a URL contains a continually changing value like a timestamp.
How to control them:
rel=canonicalis the primary lever now — point variants at the clean URL. For optional variant parameters, Google recommends using “the URL with the query parameter omitted as the canonical URL.”noindexwhere a parameter page genuinely shouldn’t be in the index.robots.txtto keep bots out of clearly junk parameter spaces (but remember it controls crawling, not indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.).- And for tracking specifically: use analytics event tracking instead of URL parameters where you can — most analytics systems can record the data without bloating your URLs.
One historical note: Google’s old URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. was deprecated and removed in 2022. Canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. are the replacement.
What a clean URL looks like
Pulling it together, the target format:
- Descriptive words, not numeric IDs
- Lowercase
- Hyphens between words
- HTTPS
- No unnecessary parameters
- Reflects your site’s directory structure
- Stable and permanent (URLs you won’t need to change)
Should you change your URLs? Almost never.
This is the most important practical takeaway. John Mueller, asked whether changing URLs for SEO helps: “Will it help the site? Very, very rarely… Will a change negatively affect the site for a while until it’s reprocessed? Probably.”
Justified reasons to change URLs are narrow: genuinely cryptic/unreadable URLs
(example.com/p?=123), outdated references baked into the URL, or fixing a
findability problem — not a cosmetic preference for shorter, cleaner, or more
keyword-rich paths on URLs that already work. If a concrete defect does justify a
change, do it as a real migration, not a spot fix: build a complete
old-to-new URL mapping covering every affected path, put direct, permanent
(301) redirects on each one (avoid redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. through an intermediate old
URL), update internal links and canonical tags to point straight at the new
URLs, update your XML sitemapsAn XML sitemap is a UTF-8 file listing the canonical URLs on your site (with optional lastmod) so search engines can discover and prioritize them. It's a discovery and diagnostic aid, not a guarantee of indexing — and Google ignores its priority and changefreq tags., and use the change-of-address tooling
where it applies. Then monitor both the old and new URLs afterward — crawl
stats, Search Console coverage, and server logs — rather than assuming the
redirect map is complete because a few sample URLs worked. Solid redirect
management reduces the risk of losing equity, but neither Google nor anyone else
guarantees a recovery timeline or that rankings carry over unchanged. The
permanence angle matters more than ever now that AI assistants cite URLs:
broken-on-change links become broken citations.
A spot-check can expose chains, loops, broken destinations, and query-string changes. For a full migration, test the complete old-URL inventory rather than assuming one successful example proves the map.
Trace representative old URLs with my free Redirect Checker Free
- Sample old URLs across templates, folders, parameters, and traffic tiers.
- Confirm each reaches the intended final HTTPS and preferred-host URL without an intermediate hop.
- Fix the redirect map, rerun failures, and update internal links and sitemaps to the final URLs.
Where this sits
URL structure overlaps with several neighbors in the website-structure and crawling worlds: canonicalization (the ~40 signals that pick a representative URL), URL parameters (the deep dive on active vs passive), trailing slash handling, site architectureSite architecture is how a website's pages are organized, categorized, and interlinked. It controls how crawlers discover pages, how link equity flows, and how clearly search engines understand each page's topical context. Silo structure, hub and spoke, and topic clusters are the three common models. and crawl depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. (where click depth, not URL wording, does the real ranking work), and redirects (how you move URLs without losing equity). Each is its own deep dive.
AI summary
A condensed take on the Advanced version:
- A URL has six parts: scheme (
https://), subdomain, domain, path/slug, query stringThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. (?key=value), and fragment (#section). Hostname isn’t case-sensitive; the path is. - URLs barely affect rankings. Keywords in the URL are, per Google, a signal with “hardly any effect beyond appearing in breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results.” — “very light weight” and fading once indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Click depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops. matters more than URL wording.
- Hyphens vs underscores (Google-specific): Google separates on hyphens
and joins on underscores, so
red_shoes=redshoes. Use hyphens. Bing doesn’t differentiate between the two. - URL length isn’t a ranking factor. The “shorter wins” idea is a misreading of canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.: Google may prefer a clean URL over the same URL with parameters — not “shorter is better” universally.
- Case sensitivity is a duplicate-content risk. Paths/filenames are
case-sensitive (
/Apple≠/apple); so isrobots.txt. Standardize on lowercase. - Trailing slashA trailing slash is the forward slash (/) at the end of a URL — example.com/page/ versus example.com/page. Except at the bare root domain, the two versions are different URLs to search engines, so you pick one format and enforce it.: identical only on the root domain; everywhere else
/page≠/page/. - Parameters are the real crawl problem — passive (UTM, session, affiliate)
and active (filter/sort/paginate) parameters create duplicates and crawl waste.
Control with
rel=canonical(primary),noindex,robots.txt; the GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL Parameters tool was removed in 2022. - Changing URLs helps “very, very rarely” (Mueller) — only for truly broken/ cryptic URLs or a concrete defect, never for cosmetic preference. When justified, treat it as a full migration: complete old-to-new URL mapping, direct 301s, updated internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them./canonicals/sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and monitoring of both old and new URLs afterward — with no guaranteed recovery timeline.
Official documentation
Primary-source documentation from the search engines.
- URL structure best practices — hyphens over underscores, descriptive paths, case consistency, minimal parameters, percent-encoding.
- SEO Starter Guide — URLs as breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results. in results; keywords in the URL path “have hardly any effect.”
- Canonicalization — selecting the representative URL; the common duplicate-URL scenarios (HTTP/HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', www, trailing slashA trailing slash is the forward slash (/) at the end of a URL — example.com/page/ versus example.com/page. Except at the bare root domain, the two versions are different URLs to search engines, so you pick one format and enforce it., casing, parameters).
- Designing a URL structure for ecommerce sites — missed content, duplicate crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., infinite crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.; descriptive paths over numeric IDs; omit-parameter canonicals.
Bing / Microsoft
- Bing Webmaster Guidelines — keep URLs short and keyword-rich; avoid session variables and docIDs.
- Better than canonical — URL Normalization — Bing’s preferred way to collapse parameter variations.
Quotes from the source
On-the-record statements from Google and Bing. Each link deep-links to the quoted passage where the source page supports it.
Hyphens vs. underscores
- “We recommend using hyphens (-) instead of underscores (_) to separate words.” — Google Search Central, URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. docs. Jump to quote
- Gary Illyes (Google), on why: Google recommends dashes because “many things on the internet have an underscore in them, they can’t easily segment at underscore.” Coverage
- Matt Cutts (Google), 2007: “We still join on the underscore and separate on the dash.” Coverage
- Bing spokesperson: “We do not differentiate between dash and underscore in our URL ranking features.” Coverage
Keywords in URLs
- Google SEO Starter Guide: “the keywords in the name of the domain (or URL path) alone have hardly any effect beyond appearing in breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results..” Jump to quote
- John Mueller (Google): keywords in URLs are “a very light weight factor” — and matter even less once a page is indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Coverage
- John Mueller (Google): URLs “provide minimal additional signals for search engines.” Coverage
URL length / canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.
- Google: when deduplicating, it tends to pick the shorter, cleaner URL as canonical — not a universal “shorter ranks better” rule. Coverage
Case sensitivity
- John Mueller (Google): URL path, filename, and query parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. are
case-sensitive; the hostname is not — and
robots.txtis case-sensitive too, so be consistent. Coverage
Changing URLs
- John Mueller (Google): “Will it help the site? Very, very rarely… Will a change negatively affect the site for a while until it’s reprocessed? Probably.” Coverage
#:~:text= anchor may not resolve, the surrounding doc still contains the
quoted language. Confirm against the live page before treating as final. URL audit checklist
A pass to catch the URL problems that actually cause trouble:
- HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' everywhere — no HTTP URLs reachable without redirecting to HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.'.
- One canonical host — www vs non-wwwWWW vs. non-WWW is the choice between serving a site from www.example.com (the www subdomain) or example.com (the bare/apex/root domain). Both point to the same content, so it's a canonicalization and consistency decision, not a ranking factor. consolidated to a single version.
- Lowercase consistently — no mixed-case paths creating duplicates; check
that
robots.txtrules match the casing actually used. - Hyphens, not underscores or run-on words, separating words in slugs.
- Trailing slashA trailing slash is the forward slash (/) at the end of a URL — example.com/page/ versus example.com/page. Except at the bare root domain, the two versions are different URLs to search engines, so you pick one format and enforce it. decided and enforced — one format site-wide (root domain excepted), with redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. + canonicals backing it.
- Descriptive slugs, not numeric IDs (
/url-structure/not/p?id=4321). - Parameters under control — passive tracking params (UTM, session, affiliate) aren’t on internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.; active params (filter/sort) have canonicals pointing to the clean URL.
- No spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. — faceted nav, calendars, or timestamped URLs aren’t generating near-infinite URL spaces.
- Fragments aren’t used to differentiate content (Google ignores them).
- Reserved/non-ASCII characters percent-encoded correctly.
- Both URL versions aren’t both indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. — check GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. for split reporting across casing, slash, or parameter variants.
- No needless URL changes planned — if URLs work, leave them; if a concrete defect justifies a change, a complete old-to-new URL mapping, direct 301s, updated internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them./canonicals/sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and post-change monitoring of both old and new URLs are queued (not just a redirect and a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. ping).
The mental models
1. URLs are for crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and humans, not ranking. Before optimizing a URL, ask what you’re actually trying to improve. Keywords in the URL are “very light weight.” Readability and crawl efficiency are the real payoffs — so optimize for those, not for an imagined ranking bump.
2. Consistency beats optimization. The damage from URLs comes from inconsistency — mixed casing, both slash versions live, the same page reachable with and without parameters. Pick one clean format and enforce it. A consistent “imperfect” scheme beats an “optimal” scheme applied unevenly.
3. The duplicate-URL quadrants. Most URL SEO problems are one page reachable as many URLs: HTTP/HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', www/non-www, slash/no-slash, casing, and parameters. Each is a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. decision. Map which variants exist, then consolidate with redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. (for hard cases) or canonicals (for soft ones).
4. Parameters: active vs passive. Passive params (tracking) should never change content and ideally never hit an internal linkAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. — push that data to analytics events. Active params (filter/sort/ paginate) change content and need deliberate canonical/indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. handling so they don’t explode into a spider trapA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content..
5. The change-a-URL decision rule. Default to no. Only change a URL if it’s genuinely cryptic, broken, or unfindable — and never for a marginal keyword gain. When you do, 301 + sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. + change-of-address, every time. Mueller’s “very, very rarely” is the prior.
URL best practices — cheat sheet
| Do | Don’t | Why |
|---|---|---|
Use https:// | Leave HTTP URLs reachable | HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' is the expected default and a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal |
Separate words with hyphens (red-shoes) | Use underscores (red_shoes) or run words together | Google joins on _, separates on -; Bing doesn’t care, so hyphens are safe for both |
| Keep everything lowercase | Mix cases (/Apple and /apple) | Paths and robots.txt are case-sensitive → duplicate URLs / missed disallow rules |
| Use descriptive words | Use numeric IDs (/p?id=4321) | Readable URLs help users and breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results.; IDs help no one |
| Pick one trailing-slash format and enforce it | Let /page and /page/ both resolve | They’re different URLs everywhere except the root domain → duplicates |
| Minimize query parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. | Put UTM/session/affiliate params on internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. | Passive params waste crawl budgetThe number of URLs an engine will crawl in a timeframe. and split signals; use analytics events instead |
| Canonical variant params to the clean URL | Rely on the removed GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool | That tool was deprecated in 2022; rel=canonical is the lever now |
| Keep URLs stable | Rename URLs chasing keywords | Changing URLs helps “very, very rarely” and risks broken links/lost equity |
| Reflect site structureWebsite structure (site architecture) is a site's visible hierarchy, navigation, breadcrumbs, and URL organization — how pages relate and how people and search engines move between them. Internal linking is the primary signal Google reads to understand that structure, not URL folders. in the path | Bury pages deep or orphan them | Logical structure aids crawl-frequency estimation and discovery |
| Percent-encode reserved/non-ASCII chars | Leave raw spaces/reserved chars in URLs | Required by the URL standard; avoids broken/ambiguous URLs |
Patrick's relevant free tools
- robots.txt Tester — Test pages against bots with a matcher ported from Google's open-source robots.txt parser — a blocked/allowed matrix with the exact winning rule per cell, file lint, sitemap-conflict detection, a diff mode for proposed changes, and a separate live robots.txt fetch for each entered origin.
- XML Sitemap Validator — Paste, upload, or fetch a sitemap by URL — errors, warnings, and a health score with line numbers. Pasted and uploaded sitemaps are validated entirely in your browser.
- XML Sitemap Generator — Generate an XML sitemap from a capped, robots-respecting same-site crawl. Noindex, off-canonical, failed, and uncertain URLs remain visibly separate; lastmod dates are emitted only when the page provides evidence.
Tools for auditing URL structure
- Canonicalization Checker — test whether a parameter, case, or format variant sends consistent canonical and indexability signals.
- Redirect Chain Mapper — inspect every hop before a URL reaches its preferred HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', hostname, path, and slash format.
- Redirect Checker — run fast spot checks when a small set of renamed or normalized URLs ships.
- A full-site crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — inventory paths, parameters, canonicals, status codes, and internal-link destinations at scale; group variants before deciding whether they are duplicates.
- Server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. and Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — confirm which URL forms bots actually request and which ones Google records, rather than judging structure only from a template.
URL tools can show inconsistency, but they cannot justify a migration on their own. Changing stable URLs still requires a business reason, a complete redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. map, and proof that the expected benefit outweighs the transition risk.
Test yourself: URL Structure
Five quick questions on how URLs are built and what actually matters for SEO. Pick an answer for each, then check.
Resources worth your time
My related writing
- Trailing Slash: To Use or Not to Use? — when the slash matters (and the root-domain exception).
- URL Parameters: A Complete Guide for SEOs — active vs passive parameters and how to control them.
- Google Uses ~40 Canonicalization Signals — including HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', www, slash, casing, and the shorter-URL preference explained.
- Redirects for SEO: A Simple (But Complete) Guide — moving URLs without losing equity.
- The Beginner’s Guide to Technical SEO — where URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. fits the bigger picture.
My speaking
- A Crash Course in Technical SEO (SlideShare, Beer & SEO Meetup) — includes URL structure.
- Troubleshooting Technical SEO Problems (SlideShare, Raleigh SEO Meetup) — URL issues in context.
From around the industry
- URL structure best practices (Google Search Central) — the canonical do/don’t list.
- Google & Bing (Still) Handle Underscores & Dashes Differently (Search Engine Land) — the hyphen/underscore split, with the Bing quote.
- Changing URLs for SEO reasons: When is it OK? (Search Engine Land) — the “very, very rarely” Mueller guidance.
- Google Says Words In A URL Are A Very Light Weight Factor (Search Engine Roundtable).
- Reminder: Google On Case Sensitivity For URLs (Search Engine Roundtable).
- Google: We Pick Shorter URLs For Canonicalization (Search Engine Roundtable) — the source of the misread “shorter wins” idea.
- Better than canonical — URL Normalization (Bing WebmasterMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. Blog) — Bing’s parameter-collapsing approach.
URL Structure
URL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly.
Related: Canonicalization, URL Parameters
URL Structure
A URL (Uniform Resource Locator) is the full address used to identify a resource on the web. URL structure is how its components are organized and formatted: the scheme (https://), an optional subdomain (www.), the domain (example.com), the path (/folder/page/), an optional query stringThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. (?key=value), and an optional fragment (#section).
Most of what URL structure does is for crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., usability, and comprehension — not ranking. Google describes keywords in the URL path as having “hardly any effect beyond appearing in breadcrumbsBreadcrumbs are a secondary navigation trail (Home > Category > Page) that shows where a page sits in a site's hierarchy. They create internal links that pass PageRank, and when marked up with BreadcrumbList structured data they can drive the path Google shows in desktop search results.,” so URLs are a very light-weight signal at best. Where structure genuinely matters is the technical side: hyphens vs. underscores (Google treats - as a word separator and _ as a word joiner; Bing makes no distinction), case sensitivity (paths and filenames are case-sensitive, so mixed casing can spawn duplicate URLs), trailing slashesA trailing slash is the forward slash (/) at the end of a URL — example.com/page/ versus example.com/page. Except at the bare root domain, the two versions are different URLs to search engines, so you pick one format and enforce it., and query parameters that multiply duplicate or low-value URLs.
The practical rule is consistency over optimization. Pick one clean format — lowercase, hyphen-separated, descriptive words, minimal parameters — and stick to it. Changing existing URLs almost never helps SEO and carries real risk, so reach for 301 redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. only when URLs are genuinely broken or unreadable.
Related: Canonicalization, URL Parameters
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Strengthened the URL-migration guidance and added a server/app-dependent caveat to case and trailing-slash behavior.
Change details
-
Should-you-change-your-URLs guidance now requires a complete old-to-new URL mapping, direct 301s (no chains), updated internal links and canonicals (not just sitemaps), and post-change monitoring of both old and new URLs — with no guaranteed recovery timeline, replacing the softer 'so you don't lose equity' framing.
-
Added a caveat to the case-sensitivity and trailing-slash sections that actual resolve/redirect/404 behavior depends on the server and application, and should be tested rather than assumed.
Full comparison unavailable — no prior snapshot was archived for this revision.