Case Redirects

No Comments
Case redirects
TL;DR: A case redirect fires when a mixed-case URL like /Blog/My-Post is 301'd to its lowercase form /blog/my-post. Having the rule is correct, because URL paths are case sensitive and you do not want both versions live. The real fix is to stop generating mixed-case links in the first place so the redirect rarely has to run.
Check ID
RE-023
Type
Redirect
Severity
Low
Canonical
Lowercase
Fix effort
Low

What a case redirect is

The path portion of a URL is case sensitive by spec. To a strict server, /Products/Shoes and /products/shoes are two different addresses, the same way two files with different capitalization are different files on a Linux disk. To avoid serving the same content at multiple casings, most sites add a rule that normalizes the path to lowercase with a 301. Request the mixed-case version, get redirected to the lowercase one, land on the real page. That redirect is the "case redirect" this check reports.

Only the path is affected. The scheme and host are case insensitive, so HTTPS://Example.com and https://example.com are already equivalent and do not need normalizing. Query string values may or may not be case sensitive depending on your app, so leave those alone unless you know better. The whole issue lives in the slug and folder names after the domain.

Why it matters, and why the rule is still right

Without normalization, capitalization variants become duplicate content. If /Blog/Guide and /blog/guide both return 200, Google can index both, split your link signals across them, and pick the wrong one as canonical. Internal analytics fragments, because the two paths log as separate pages. So you absolutely want a canonical casing, and lowercase is the sane default because it is predictable and it is what people type.

The catch is that the redirect is a patch, not a cure. Every time a visitor or a crawler hits a mixed-case link, they pay for an extra hop before the page loads. If your own site keeps emitting mixed-case internal links, or your sitemap lists them, you are routing your own traffic and Googlebot's crawl budget through that redirect on every request. The rule quietly does its job while the underlying sloppiness costs you a little speed on every affected click. Fix the source and the redirect goes back to being a rarely-used safety net, which is exactly what it should be.

Patch versus cure

Patch: rule cleans up after bad links Link on page: /Blog/My-Post 301 to lowercase 200 /blog/my-post 2 round trips

Cure: emit lowercase links Link on page: /blog/my-post 200 /blog/my-post 1 round trip

How to detect it

  • Screaming Frog: crawl, open Response Codes, filter to Redirection (3xx), and scan the Address and Redirect URL columns for pairs that differ only in casing. Frog also has a "URL" tab filter for "Uppercase" to list any internal links with capitals, which is how you find the source.
  • curl: curl -sI https://example.com/Some/Path and check for a 301 whose Location is the lowercase equivalent. Quick spot check for a specific URL.
  • Search Console: the Pages report and URL Inspection show mixed-case URLs bucketed under "Page with redirect," which tells you Google discovered the capitalized form somewhere.
  • Sitebulb: flags uppercase characters in URLs as a hint and separates internal links from the redirect rule, so you can prioritize the source fix.
  • Server logs: grep the access log for 301s on paths containing uppercase letters to see how often the rule actually fires and from where.

Where the mixed-case URLs come from

SourceExampleFix at source
CMS slug generationTitle case kept in the slugForce lowercase on slug save
Hand-coded internal linksEditor types /About-UsLowercase links in templates and content
Campaign and email URLsMarketing shares /Summer-SalePublish lowercase canonical URLs
Sitemap generatorSitemap lists capitalized pathsEmit final lowercase URLs only
Legacy migrated URLsOld system used CamelCase pathsUpdate internal references to lowercase

How to fix it, step by step

  1. Confirm a lowercase-normalization redirect exists and works. If it does not, add one, so any stray capitalized URL 301's to lowercase and you never serve duplicates. In Apache this is a RewriteMap lowercase rule; in nginx you handle it in the location block or app; in a CMS a plugin or middleware can enforce it.
  2. Pick lowercase as your one canonical casing and apply it everywhere, including the rel=canonical tag on every page.
  3. Now attack the source. Set your CMS to lowercase slugs on save so new content cannot introduce the problem.
  4. Sweep existing internal links. Use the Frog uppercase filter to list mixed-case internal links and correct them in templates, navigation, and body content.
  5. Regenerate the XML sitemap so it lists only final lowercase URLs, and fix any capitalized paths in canonical tags and hreflang.
  6. Re-crawl and confirm your internal links resolve to 200 directly, with the case redirect firing only for external or old inbound links. That is the healthy end state.

Do and do not

DO

  • Keep a lowercase-normalization 301 as a safety net.
  • Force lowercase slugs at creation in the CMS.
  • Emit lowercase internal links everywhere.
  • List only final lowercase URLs in your sitemap.
  • Point rel=canonical at the lowercase form.
DON'T

  • Serve the same page at multiple casings with 200s.
  • Rely on the redirect while shipping mixed-case links.
  • Leave capitalized URLs sitting in your sitemap.
  • Point canonical tags at a mixed-case URL.
  • Chain a case redirect on top of another redirect.

What good looks like

Every internal link, sitemap entry, and canonical tag uses lowercase paths, so your own pages and Googlebot reach content in a single hop. The case-normalization rule still exists, but the logs show it firing only for the occasional external link or old bookmark. No capitalization duplicate is indexable, and no page returns 200 at two different casings. This is a low-severity item, but it is genuinely free to get right, and a clean URL set makes every other audit easier to read.

FAQ

Should URLs be lowercase or uppercase?
Lowercase. It is the convention users expect, it is easy to enforce, and it avoids the ambiguity of mixed casing. Whichever you pick, the important part is that you pick one and normalize everything else to it.
Are all URLs really case sensitive?
The scheme and host are not, but the path usually is on Linux servers. Windows and IIS often treat paths as case insensitive, which hides the problem locally and then surprises you after a move to a case-sensitive host. Normalize regardless so it is not a surprise.
Does a case redirect hurt SEO?
The redirect itself is mildly helpful because it collapses duplicates. The harm is when your own links force it to run on every click, adding a hop. Fix the source links and the redirect stops costing you anything.
Can I just delete the case redirect once links are lowercase?
Keep it. External sites and old bookmarks may still use capitalized versions, and without the rule those would 404 or serve a duplicate. It costs nothing to leave in place as a fallback.
How do I lowercase URLs in Apache?
Define an internal lowercase RewriteMap, for example RewriteMap lc int:tolower in the server config, then rewrite the path through it and 301 to the result when it differs from the request. Test carefully so you do not loop, and only redirect when the lowercased path is actually different.
Mixed-case URLs bleeding crawl budget?
An advanced SEO audit maps your case redirects, finds the internal links triggering them, and gives you a lowercase-clean URL set.

Get an Advanced SEO Audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog