October 18, 2026
Trailing Slashes, Uppercase and www: 404s Caused by URL Normalization
Small URL differences like a trailing slash, uppercase letters or encoded characters can cause 404s and duplicate URLs. Learn how to normalize them safely.
Two URLs that look identical to a person can be completely different to a server. /Products/Shoes/, /products/shoes and /products/shoes%20 may produce one working page and two 404s. These small differences are behind a surprising number of broken links.
The most common variations
Trailing slash. Some servers treat /blog/post and /blog/post/ as different resources. If your links mix both and only one version exists, half of them fail.
Uppercase letters. Linux-based servers are usually case-sensitive, so /About and /about are different paths. Windows/IIS servers are typically not. Problems often appear after moving from one to the other.
www vs. non-www and http vs. https. Every site should have one main host. If the other versions don't redirect correctly, old links and some crawlers hit errors or duplicates.
Encoded and special characters. Non-ASCII characters (such as ü, ş, ğ, é) are URL-encoded. A slug created with special characters may be encoded differently by different systems, producing mismatches.
Copy-paste leftovers. Shared links often pick up a trailing period, comma, closing parenthesis or quote: /pricing) or /guide.. These are classic 404s from social media and chat apps.
Double slashes. /blog//post usually comes from a template joining paths incorrectly.
Choose one canonical format
Decide on a single standard and apply it everywhere:
- one protocol and host, e.g.
https://www.example.com, - lowercase paths,
- either always or never a trailing slash,
- ASCII-only slugs where possible (convert ü → u, ş → s and so on).
Redirect variations in one hop
Every variation should 301 directly to the canonical version. Avoid chains like:
http://example.com/About → https://example.com/About → https://www.example.com/About → https://www.example.com/about
Combine the rules so the final URL is reached in one redirect. See How to Find and Fix Redirect Chains and Loops.
Server-level examples are in our Nginx and Apache .htaccess guides.
Be careful with case-insensitive rules
Forcing lowercase is helpful for pages, but can break things where case matters: file names on storage, API tokens, tracking IDs or query string values. Apply lowercase redirects to the path only, and test before enabling them site-wide.
Fix the source too
Redirects fix the symptom. Also:
- make internal links, sitemaps and canonical tags use the exact canonical format,
- configure your CMS to generate consistent slugs,
- set the canonical tag to the normalized URL.
Handle punctuation leftovers
For URLs with trailing ), ., , or quotes, a small set of rules that strip those characters and redirect to the clean URL can recover a lot of social traffic. Check your 404 logs to see which ones actually occur before adding rules.
Summary
Trailing slashes, case, host, protocol, encoding and copy-paste characters all create URL variations that end in 404 or duplicates. Choose one canonical format, redirect every variation in a single hop and keep internal links consistent. no404 groups these variations in your 404 log, so you can see the pattern and fix it with one rule.