Skip to content
Issue docs

URL path containing repeated slashes

Standardurl_multiple_slashesIssue 118

What is this issue?

This check looks at the path of the page's address and reports it when two or more slashes appear next to each other.

Only the path is examined. The // that follows https: is part of every absolute URL and is never a finding.

For a URL to pass this check:

  • Its path uses a single slash between segments.

Example: https://example.com/blog/post passes. https://example.com/blog//post does not -- and, on most servers, both addresses return the identical page, which is the actual problem.

Why it matters

A repeated slash is almost never deliberate. It comes from a template that joined a base path and a segment when both already carried a slash, and it matters because of what the server does next: most web servers happily serve the same page at /blog/post and /blog//post.

  • Duplicate content: the page now exists at two addresses that nobody intended to publish, and no canonical tag was written with the doubled form in mind.
  • Split signals: if anything links to the doubled form -- and templates that generate it usually generate links to it too -- the link equity is divided between two URLs.
  • Crawl waste: a crawler that finds both will fetch both.
  • Analytics: the same page reports as two rows.

It is graded standard because the page itself is fine and the fix is usually one line in a template or one rewrite rule. Resolving it removes a duplicate URL the rest of your indexability work would otherwise have to account for.

How to fix it

  1. Find the join. A doubled slash is produced where a base path and a segment are concatenated. Normalise there, so the pattern stops being generated at all.

  2. Add a normalising redirect. Configure the server or CDN to collapse repeated slashes and 301-redirect to the single-slash form. This catches the addresses already in the wild.

  3. Correct the internal links. Anything that links to the doubled form is telling crawlers the duplicate is real. Fix the links as well as the redirect.

  4. Check the sitemap. Only the canonical single-slash form belongs in it.

  5. Confirm the canonical tag. Pages served at the doubled address should carry a canonical pointing at the clean one, so any that are already indexed consolidate.

Examples

Example 1: A normal path

Scenario: An ordinary article URL.

Passes because: single slashes throughout, and the // after the scheme is not part of the path.

https://example.com/blog/post

Example 2: A template that joined two slashes

Scenario: A base path of /blog/ concatenated with a slug of /post.

Fails because: the path contains //.

https://example.com/blog//post

Corrected version:

https://example.com/blog/post

Example 3: A doubled slash that is only in the query string

Scenario: A redirect endpoint carrying a full URL as a parameter.

Passes because: the path is /go; the // belongs to the URL inside the parameter and is not this page's path.

https://example.com/go?next=https://partner.example/a//b

How PixyScan detects this

  1. Parses the page's final address. After redirects, PixyScan separates the URL into its parts.

  2. Reads the path only. The scheme's own // is excluded by construction, and so is anything in the query string or the fragment -- a // inside a ?next= value is part of another URL, not part of this one's path.

  3. Looks for two or more consecutive slashes anywhere in that path: at the start, in the middle, or at the end.

  4. Reports the path and the corrected form. The finding shows the path as served alongside the same path with the slashes collapsed, so the difference is visible without reading the URL character by character.

A root path of / is never a finding.

What we store

Storage Level

Page Level


Database Table / Prisma Model

audit_issues.details


Stored Fields

Field Type Description
url String The page URL that was measured
path String The path containing the repeated slash
actual String The path as served
expected String The same path with the slashes collapsed

Detection Dependencies

  • HTTP Response
  • The page URL as the crawler fetched it

Note

The evidence is kept on the finding rather than in a per-page table: the address itself is already stored on the Urls row, and there is nothing to record for a path that is correct.

Further reading