glimanaDocs Open Glimana →

Issue guide · Indexability

Same page served at URLs that differ only in letter case

SeverityMedium
CategoryIndexability
ScopeWhole site
EffortSmall
Verified byRe-crawl after you mark the task done
Rule keyurl_case_duplicate

Short answer

Two or more crawled URLs differ only in upper/lower case and return the same content with status 200. Google treats these as separate URLs with the same content: signals are split between the two forms and either one may be shown. Google treats /Page and /page as different URLs. Pick one form (usually lowercase), redirect the other with a 301 and use that form in internal links, the sitemap and canonical tags.

Why it matters

URL paths are case-sensitive by specification, and Google honours that. A site that answers both forms produces duplicates every time someone links with a capital letter, and the crawler wastes budget on both. Case duplicates are common on Windows/IIS hosting and on sites that generate links from user-entered data.

How Glimana detects it

Glimana groups all 200 pages by the lowercased URL and fires when a group contains two or more URLs with identical content hashes (so the pages really are the same, not merely similar). Each URL in the group is listed with its case variants.

How to fix it

  1. Find the affected pages in Glimana. Open Issues › Same page served at URLs that differ only in letter case. This is a site-level check, so the single row carries the full evidence: the URLs, values or days involved. The task under Tasks shows the same list and the expected gain.
  2. Apply the fix on your platform.

    1. Choose lowercase as the canonical form.
    2. Redirect any URL containing uppercase letters to its lowercase form with a 301, at the server.
    3. Fix the source. Find where mixed-case links are generated (menus, CMS slugs, product codes) and lowercase them.
    4. Sitemap and canonical should contain the lowercase form only.

    WordPress slugs are lowercase by default; mixed case comes from custom permalinks or manually edited links. Add a lowercase redirect in .htaccess:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} [A-Z]
    RewriteRule ^(.*)$ /${lc:$1} [R=301,L]
    

    (lc requires RewriteMap lc int:tolower in the server config; on hosts that do not allow it, use the Redirection plugin's regex rules.)

    Shopify handles lowercase automatically; this rule only fires when a proxy or app serves both forms.

    Nginx: if ($request_uri ~ [A-Z]) { return 301 $scheme://$host$uri_lowercase; } using a map with lower; or lowercase in the router middleware and redirect when the incoming path differs.

  3. Publish and clear caches. Apply the server or CDN change (reload Nginx/Apache, save the Cloudflare rule), purge the cache, then check the live response with curl -sI https://your-domain/page — the status line and headers you see there are exactly what Glimana and Googlebot get.

  4. Verify in Glimana. Open the task under Tasks and click Mark as done. The affected pages are queued for a verification crawl within a few hours, and the task closes when one form redirects to the other. If the check still fails, the task returns to New with a note; when it passes, the task is listed under Resolved technical issues on Impact reports. To check sooner, use Re-crawl affected pages on the issue.

How the fix is verified

Re-crawl; the task closes when one form redirects to the other.

Sources