A URL is the address of a page, and it shows up in many places: the browser bar, shared links, analytics, sometimes search results. People do not need beautiful URLs, but they do benefit from ones that make sense at a glance. Search engines also benefit when each page has one clear, stable address instead of a dozen variations.
This guide explains what SEO-friendly URLs actually are, using Google's published URL guidance. It is for site owners, editors and developers who are planning a new site, choosing a pattern for a blog or shop, or cleaning up one that has messy addresses. You will end with a simple URL standard for your site, a way to apply it, and a safe approach for the hard part: changing URLs that already exist.
Be realistic about the payoff. Google's SEO starter guide says that keywords in the URL path have hardly any effect on ranking beyond what they show as breadcrumbs. A friendly URL is mainly good housekeeping: easier crawling, fewer duplicates and clearer links for people. It is not a ranking lever.
Before you begin
You need a list of your current URL patterns (for example /blog/post-name, /product?id=123), access to your CMS permalink settings or routing code, and a way to set server redirects. If you are changing URLs on a live site, take a full backup and export a list of every existing URL first, because each changed address will need a redirect.
Decide up front whether you are working on a new site (easy: choose a pattern now) or an existing one (careful: change only what is causing real problems). Reorganizing is not urgent for most sites. Google says search engines will likely understand your pages as they are, regardless of how your site is organized.
What Google says a good URL looks like
Google's URL structure documentation gives these recommendations:
- Use readable words instead of long ID numbers.
/wiki/Aviationis better than a long query string with an opaque identifier. - Use words your audience actually searches in. For non-English sites, that includes the local language.
- Percent-encode non-ASCII characters. For example
gem%C3%BCserather than a rawüin the address. - Separate words with hyphens, not underscores. Google recommends hyphens. Running words together (
greendress) is not recommended. - Remove parameters that do not change the content. Extra parameters create extra URLs.
- Keep case consistent. Google treats
/APPLEand/appleas different URLs. If your server treats them the same, convert text to one case. - Do not use fragments to change page content. Google generally does not support URL fragments (the part after
#) for this. If JavaScript changes the content, use the History API to give each view a real path. - Use
=and&for parameters. Colons, brackets and double commas are not recommended in parameters.
It also warns about patterns that create huge numbers of near-duplicate addresses: combinable filters, irrelevant parameters such as referral tags, sort orders and session IDs (prefer cookies over session IDs in URLs), and infinite calendars. Parent-relative links can create endless URL spaces, so use root-relative links instead.
Step-by-step instructions
Step 1: Write your URL standard
Why: consistency beats cleverness. Put these rules in one page of notes that editors and developers can follow.
A sensible standard for most sites:
- Lowercase letters, digits and hyphens only.
- A short path made of real words:
/guides/image-seo-alt-text-filenames, not/index.php?p=4471. - One trailing-slash convention (always or never) and one host (with or without
www). - HTTPS only.
- No dates in the path unless the date is part of the content's identity.
- Parameters only for things that genuinely change the content, such as page number or filters you intend to be crawled.
How to confirm: the standard fits on one page, and you can classify any existing URL as pass or fail against it.
Step 2: Audit your existing URLs
Why: you need to know how bad it is. Export URLs from your sitemap, your CMS or a crawl. Group them by pattern. Flag these:
- URLs with long numeric IDs or session IDs.
- Mixed-case duplicates of the same page.
- URLs with tracking parameters that are indexed.
- Several URLs that show the same content.
Compare the list with what you want indexed. If duplicates exist, the right fix is usually one preferred URL plus a canonical tag or a redirect. See Fix Duplicate URLs and Incorrect Canonical Tags.
How to confirm: you have a table of patterns, counts and which ones break your standard.
Step 3: Fix the pattern in the CMS or router, not page by page
Why: a template change fixes thousands of pages and keeps new ones clean. In WordPress-style systems this is the permalink setting. In a framework it is the route definition. Choose the post-name style, generate slugs from titles in lowercase with hyphens, and cut stop words only if the result is still readable.
For slugs, short and specific works well: heading-structure-for-seo, not the-complete-guide-to-using-headings-on-your-pages-in-2026. There is no length rule in Google's documentation, so use judgment: a person should be able to read it without it wrapping across three lines.
How to confirm: publishing a test page produces a URL that follows your standard automatically.
Step 4: Redirect old URLs to new ones before you switch
Why: any URL you retire has links, bookmarks and indexed copies. Google says permanent server-side redirects (301 or 308) tell it a page has permanently moved, and it treats the target as the canonical URL. Server-side redirects are the most reliably interpreted method. Meta refresh and JavaScript redirects are fallbacks only, and JavaScript redirects are a last resort because rendering can fail.
Make a mapping file with one old URL and one new URL per row. Redirect each old URL straight to its final address, not through a chain. A redirect from /p?id=12 to /guides/seo-friendly-urls is correct; sending everything to the home page is not. Server examples for Apache and NGINX are in Nginx and Apache Redirect Rules That Are Correct and Fast, and chains are covered in Redirect Chains, Loops, and Incorrect HTTP Status Codes.
# NGINX: permanent redirect for one retired path
location = /old-widget-page { return 301 /products/blue-widget; }
How to confirm: requesting each old URL returns a 301 (or 308) straight to a page that returns 200.
Step 5: Update internal links, canonicals and sitemaps
Why: redirects are a safety net, not a plan. Update navigation, in-content links, canonical tags and the XML sitemap so they all point to the new address. Mixed signals (a sitemap that lists the old URL and a canonical that names the new one) slow everything down. Your sitemap should list only the preferred URLs; see How to Create a Valid XML Sitemap for Your Website.
How to confirm: crawling the site finds no internal links to the old URLs, and every canonical points to a URL that returns 200.
Step 6: Control parameters and filters
Why: faceted navigation and tracking tags can multiply URLs. Remove parameters that do not change content, keep their order consistent for the ones that do, and avoid putting session IDs in addresses. If crawlers are already finding endless combinations, Google suggests blocking dynamic URLs such as search results, calendars and filter functions in robots.txt. A fuller treatment is planned in Faceted Navigation SEO: Stop Filters and Parameters Creating Endless URLs.
How to confirm: a crawl of the site shows a bounded number of URLs per page type, with no explosion from filters.
Step 7: Monitor after the change
Why: a URL change can briefly confuse search. Google notes that old URLs may keep appearing for a while after a move and fade without extra action. Watch the Page Indexing report and your server logs for 404s, and fix missed redirects. Do not expect the change itself to lift rankings.
How to confirm: 404 counts for old patterns trend to zero, and the new URLs are being crawled.
Final verification checklist
- A written URL standard exists: lowercase, hyphens, real words, one host, HTTPS.
- New content gets compliant URLs automatically.
- No indexable page is reachable at several URLs without a canonical or redirect.
- Old URLs return 301 or 308 directly to the right new page.
- Internal links, canonicals and the sitemap use the new URLs.
- Session IDs and irrelevant parameters are not in indexable URLs.
- Non-ASCII characters are percent-encoded in links.
- Case variants of the same path do not both return 200.
Common mistakes to avoid
- Changing URLs for tiny gains. Google says keyword-in-path effect is minimal. Change only when it fixes duplicates, IDs or confusion.
- Redirecting everything to the home page. Map each old URL to its closest new equivalent.
- Using underscores or run-together words. Use hyphens between words.
- Using fragments for content.
#changes are not treated as separate pages; use real paths with the History API. - Letting case variants coexist. Pick lowercase and redirect or canonicalize the rest.
- Putting session IDs and tracking tags in indexable URLs. Use cookies and strip tracking parameters.
- Updating URLs without updating the sitemap and internal links. Make all signals agree.
Frequently asked questions
Do keywords in the URL help rankings?
Google's SEO starter guide says keywords in the URL path have hardly any effect on ranking beyond appearing in breadcrumbs. Use words because they make the address understandable.
Should I use hyphens or underscores?
Hyphens. Google recommends them for separating words.
How long can a URL be?
We found no maximum length in Google's URL structure guidance, so there is no official number to quote. Keep URLs short enough to read and share. Very long strings of parameters are a sign something should be simplified.
Should I put dates in blog URLs?
Only if the date is part of the content's identity. Dates in the path make URLs look stale and make later updates awkward.
Is a trailing slash better than none?
Neither is better. Pick one, redirect the other, and use it consistently in links, canonicals and the sitemap.
Will changing URLs lose my search visibility?
A change with correct 301 redirects and updated signals is a normal site move, but visibility can fluctuate for a while. That is why you should only change URLs when there is a clear benefit.
Related guides
- Fix Duplicate URLs and Incorrect Canonical Tags
- Redirect Chains, Loops, and Incorrect HTTP Status Codes
- How to Create a Valid XML Sitemap for Your Website
- 301 vs 302 Redirects for SEO: Which Redirect to Use and When
Official references
- https://developers.google.com/search/docs/crawling-indexing/url-structure
- https://developers.google.com/search/docs/fundamentals/seo-starter-guide
- https://developers.google.com/search/docs/crawling-indexing/301-redirects
Next step: See how Crawvix checks a website and capture a baseline once scanning opens. This guide provides technical information, not a guarantee of rankings, traffic or index inclusion.
Crawvix Editorial Team
· Published October 29, 2026 · Last updated October 29, 2026 · 8 min read