On-Page SEO · Beginner · 8 min read

URL structure best practice. Short, readable, and stable for ten years.

Your URLs are read by Google, copied into emails, shared on Slack, printed on business cards. A good URL costs nothing extra and pays dividends for the life of the page. Here is the practical rule set, plus how to fix the bad ones already live.

What URL structure means

The URL of a page is its address on the web. Every URL has the same anatomy:

https://theseocompany.com.au/learn/on-page-seo/url-structure/
   |       |                |                  |
 protocol  domain           path               slug

URL structure refers to everything to the right of the domain: the folders (path) and the page identifier (slug). Together they tell Google and humans where this page sits inside the site, and what the page is about.

You will hear "URL slug" used to mean the last segment of the path: url-structure in the example above. You will also hear "URL path" to mean all of the segments: /learn/on-page-seo/url-structure/. Both terms are useful, and getting them right matters because they show up in the SERP, in browser tabs, in shared links and in Search Console.

Why URLs matter for SEO and humans

Three reasons URL quality moves the needle.

1. Google reads URLs as a topic signal. Google has confirmed that words in the URL are a (small) ranking factor. A page at /emergency-electrician-perth/ has a clear topical signal baked into the address. A page at /page-id-2384/ has none. The signal is small but consistent and stacks with every other on-page element.

2. Humans read URLs in the SERP. Google displays the URL (or a breadcrumb derived from it) under the title in search results. A readable URL helps click-through. A long string of numbers and parameters reduces it. Eye-tracking studies on SERP behaviour consistently show that searchers glance at the URL after the title and before the meta description.

3. Stable URLs accumulate authority. Every backlink, every social share, every email mention points to a specific URL. If that URL stays the same for five years, all those links compound. If you change the URL without a 301 redirect, the backlinks point at a dead page and the authority resets to zero. URL stability is one of the cheapest ways to protect years of SEO work.

The rules: nine things that make a good URL

  1. Short. Three to six words in the slug. /title-tags/ beats /how-to-write-a-good-title-tag-for-seo-in-2026/.
  2. Lowercase. URLs are case-sensitive on most servers. /Page and /page can be treated as different URLs and cause duplicate content. Use lowercase only.
  3. Hyphens, not underscores. Google reads hyphens as word separators. Underscores get treated as part of a single token. Use emergency-electrician-perth, never emergency_electrician_perth.
  4. Descriptive. The slug should tell you what the page is about without context. /contact/ works. /page-42/ does not.
  5. Keyword-aligned but not stuffed. Include the primary keyword once. /emergency-electrician-perth/. Not /emergency-electrician-perth-best-cheapest-fast-24-7/.
  6. No stopwords if you can avoid them. Words like "a", "the", "of", "for" usually add nothing. /how-to-write-title-tags/ reads as well as /how-to-write-a-title-tag-for-seo/ and is shorter.
  7. Shallow. Two or three folder levels deep is the practical limit. /learn/on-page-seo/title-tags/ is three levels and clear. /blog/categories/seo/on-page/tactics/title-tags/article-2384/ is too many.
  8. Consistent trailing slash. Pick one form (with or without trailing slash), make every URL match, and 301 the other form to it. Most modern static hosts use trailing slashes.
  9. Stable. Once published, the URL does not change. If you must change it, set up a 301 redirect from the old URL to the new one before going live.

Patterns by page type

Service page

Pattern: /services/[service-name]/ or /[service-name]/

Examples:

  • /services/seo/
  • /emergency-electrician-perth/
  • /services/website-audits/

Location page

Pattern: /[service]-[suburb]/ or /locations/[suburb]/

Examples:

  • /seo-fremantle/
  • /seo-joondalup/
  • /locations/perth-cbd/

Blog post / cluster

Pattern: /[topic]/[slug]/ or /blog/[slug]/

Examples:

  • /learn/on-page-seo/title-tags/
  • /blog/how-search-engines-work/
  • /learn/local-seo/google-business-profile/

Product page

Pattern: /products/[product-name]/

Avoid product IDs and SKUs in the URL. They add nothing for humans or SEO. Use the product name slug instead.

Category page

Pattern: /[category]/ or /shop/[category]/

Category URLs should be short and descriptive: /solar-inverters/, not /category/electronics/renewable-energy/inverters-and-batteries/.

How to fix the bad URLs already live

Most Perth sites we audit have at least a handful of URLs that need rewriting. A messy slug, a deep folder, an inconsistent trailing slash, or a duplicate accessible at both /page and /page/. Here is the safe sequence:

  1. Audit first, change second. Run Screaming Frog. Sort by URL length, look for the worst offenders. Sort by depth, find anything four or more folders deep. Make a list before you touch anything.
  2. Prioritise by traffic. Use Search Console Performance to see which URLs actually get traffic. Fix the high-traffic ugly ones first. Low-traffic ugly URLs can be left until next quarter.
  3. Plan the new URL before you change it. Write the new slug. Check it does not clash with an existing URL. Confirm the rest of the site can be updated to link to the new URL.
  4. Set up the 301 redirect. The 301 must be in place before the new URL goes live. Test it works in incognito.
  5. Update internal links to point at the new URL. Use Screaming Frog to find every page that linked to the old URL. Update the links to point at the new URL directly. Avoid chains of redirects.
  6. Update XML sitemap and resubmit in Search Console. The sitemap should now show the new URL.
  7. Monitor for four to six weeks. Watch Search Console for crawl errors and rank changes. Some loss is normal during the transition. If a previously ranking page loses more than 30 percent of its impressions, dig in.

Done correctly, you keep almost all the ranking authority and lose maybe a week or two of traffic during the crawl-and-recompute period. Done poorly (no redirects, broken internal links, sitemap not updated) you can lose 50 percent of organic traffic and never fully recover.

Mistakes to avoid

Habits that compound
  • Decide the URL slug before you write the page. Treat it as part of the brief.
  • Stick to lowercase, hyphenated, three-to-six-word slugs.
  • Set a global rule (trailing slash or not) and enforce it via 301 at the server level.
  • Audit the URL list once a quarter as part of the technical SEO sweep.
  • Use 301 redirects whenever a URL has to change.
Habits to drop
  • Date-stamped blog post URLs (/2024/03/article-name/). They date the content artificially.
  • Mixed-case URLs. They cause duplicate-content issues on case-sensitive servers.
  • Query strings as the main URL: /?page_id=42. Use rewriting to clean them up.
  • Session IDs in URLs: /page?sid=abc123. Strip them.
  • Five-folder-deep URLs that nobody could remember.
  • URLs that change every time the title changes. Slug stability is more important than slug perfection.
  • Special characters: spaces, ampersands, accented letters in slugs. Use plain ASCII hyphenated.

Tools and checklists

  1. Screaming Frog. The URL list, sorted by length, depth and duplicate-content risk. Free to 500 URLs.
  2. Google Search Console. URL Inspection tool shows the canonical URL Google picked for any page. Useful for spotting duplicate-URL problems.
  3. Server-side 301 redirect rules. In Cloudflare Pages this lives in _redirects. In Apache it's .htaccess. In Nginx it's the server block. Set rules at the server, never as client-side JavaScript.
  4. Our free SEO audit tool. Flags long URLs, mixed-case URLs, and duplicate-content risks from trailing-slash mismatches.

A URL checklist before you publish

  1. Slug is three to six words?
  2. All lowercase?
  3. Hyphens only, no underscores or spaces?
  4. Primary keyword included once?
  5. No stopwords if avoidable?
  6. Two to three folder levels max?
  7. Trailing slash matches the site standard?
  8. No date, session ID, or numeric ID?
  9. URL does not clash with an existing page?
  10. If replacing an old URL, 301 redirect is in place?

Perth and WA context

Trades with WordPress defaults. A common Perth pattern is a tradie WordPress site with the default permalink set to ?p=42 or /2024/04/page-title/. Switching to the /postname/ permalink and 301'ing the old URLs lifts the site noticeably because every URL suddenly has topical signal. We did this for a Joondalup electrical contractor and saw 18 percent more organic traffic over the next quarter. See SEO Joondalup and trades SEO.

Multi-suburb service businesses. A Perth plumbing business serving 18 suburbs needs a clean URL structure or the site becomes unmanageable. We use /plumber-[suburb]/ as the location-page pattern, every URL the same shape. Sitemap and internal linking become trivial. See SEO Fremantle, SEO Cockburn and SEO Mandurah for the pattern in action.

WooCommerce stores with category bloat. WooCommerce's default URL setup nests products four to six folders deep. We strip the /shop/category/ prefix and use flat /products/[slug]/ URLs. Smaller URL, faster crawl, cleaner sitemap. See e-commerce SEO for the full set-up.

Mining services with legacy IDs. Industrial sites often have legacy CMS systems generating URLs like /index.php?id=384. Migrating these to clean slugs while maintaining 301s preserves the existing rankings and lifts the new URLs. The mining SEO guide and Karratha SEO cover the regional patterns.

For the broader on-page picture, return to the On-Page SEO pillar. For the technical side of redirects, 301s and canonical tags, the technical SEO pillar is the next stop. And for the deeper context on how crawlers move through your URLs, see crawling, indexing and ranking explained.

Frequently asked

What makes a good SEO URL?
Short, descriptive, lowercase, hyphenated, stable. The URL should describe what the page is about in three to six words and never change once published. Stable URLs accumulate authority over time. Volatile URLs lose it.
Should URLs have dates in them?
Generally no for blog posts that aspire to be evergreen, because the date in the URL signals to readers and Google that the article is dated. For news and time-sensitive content where the date is part of the value, yes. For service pages, location pages and most informational content, leave the date out.
Are hyphens or underscores better for URLs?
Hyphens. Google treats hyphens as word separators and reads keyword-here as the two words "keyword" and "here". Underscores are treated as part of a single token, so keyword_here is read as the single string "keyword_here". Use hyphens, never underscores, in URL slugs.
Should I include the date or category in the URL path?
Categories in the path can help if they describe a real content hierarchy. Dates in the path generally hurt because they age the URL artificially. Keep paths short. Three levels deep (domain/category/slug) is usually the maximum before clarity drops.
Can I change a URL without losing SEO?
Yes, but you must set up a 301 redirect from the old URL to the new one. The 301 passes most of the page's accumulated ranking authority to the new URL. Without the redirect the old URL 404s, the new URL starts from scratch, and you lose the ranking you spent months earning.
Should URLs end with a trailing slash?
It depends on your server setup, but the most important rule is to pick one (with slash or without) and redirect the other to it. Having both versions accessible creates duplicate content and dilutes the page's ranking signals. Cloudflare Pages and most modern static hosts default to the trailing-slash form.
See how your site stacks up

Get a free SEO audit of your site.

30 seconds. Real Lighthouse scores, real keyword data, real backlink profile, AI-generated quick wins. Free, no sales pitch.

Get a Free SEO Audit

Or call 0435 462 205