Skip to main content
OnPageIQ Documentation

Duplicate Content

Find pages that say the same thing, see exactly what overlaps, and record how you fixed it.

User goal

Consolidate duplicate URLs and manage intentional duplicates.

Tier
Pro+ with duplicate-content flag
Nav label
Duplicates
Route
/projects/{project}/seo/duplicates
Gates
duplicate-content

Prerequisites

  • seo-audit and duplicate-content flags
  • Crawl with content hashes

QA focus

  • Both flags required on routes
  • Group detail scoped
  • Whitelist patterns apply

Overview

Duplicate Content groups pages that say the same thing, so you can consolidate URLs and whitelist the overlaps you meant to publish.

What you get

  • A duplicates dashboard of groups, each with a priority, a similarity score, and a recommended action
  • Group detail with a members table — click any row to open a side-by-side comparison against the primary page
  • A recommended action that states its trade-off, plus alternatives you can pick instead
  • Whitelist patterns to exclude URL patterns from detection
  • A printable duplicate report

How the similarity score works

  • Similarity is the Jaccard overlap of 5-word phrases shared by two pages. 0% means they share no phrasing; 90%+ means they are effectively the same page.
  • Shared template is removed before comparison. A phrase appearing on 60%+ of sampled pages is treated as site furniture (banner, nav, footer boilerplate) and excluded, so two genuinely different pages are not reported as duplicates just for sharing a header.
  • A safety net protects sites that legitimately republish one article everywhere: if stripping template would remove more than 75% of a page, the page is compared whole instead.
  • Boilerplate detection needs at least 10 crawled pages. Below that, pages are compared whole.
  • A page the audit could not re-read is left unmeasured rather than being scored 0%.

How it works

  • Requires both SEO Audit and Duplicate Content features, plus a crawl with content hashes
  • Open Duplicates from SEO Audit, drill into a group, and save whitelist patterns as needed
  • Flag-off access returns a refusal rather than an empty page

Common issues & false alarms

  • Flag off → 403 not empty Livewire 404
  • Fewer than 10 crawled pages → template is not stripped, so scores read higher
  • A page that failed to re-fetch shows as unmeasured, not 0%

Interactive guide

Step of

All steps (reference)

  1. Step 1. Duplicates dashboard

    Groups of pages that share wording, ordered by priority. Each card shows the similarity score, the recommended action, and why the group matters.

    What to do: projects.seo-audit.duplicates

    Where: projects.seo-audit.duplicates

    Duplicates dashboard

    Expected (pass)

    • Groups listed with similarity score
    • Priority and status badges render

    Negative cases (must fail safely)

    • Only seo-audit on → 403
  2. Step 2. Group detail and comparison

    The members table lists every page in the group. Click a row to open the comparison panel and see, line by line, which passages match the primary page.

    What to do: projects.seo-audit.duplicate-detail

    Where: projects.seo-audit.duplicate-detail

    Group detail and comparison

    Expected (pass)

    • All URLs in group same org project
    • Clicking a member row opens the comparison panel
    • Recommended action states its trade-off and offers alternatives

    Negative cases (must fail safely)

    • Foreign group id → 404
  3. Step 3. The members table

    Every page in the group with its similarity to the primary page and how many internal links point at it — the two numbers that decide which URL to keep.

    What to do: projects.seo-audit.duplicate-detail

    Where: projects.seo-audit.duplicate-detail

    The members table

    Expected (pass)

    • Column headers for page, similarity and internal links
    • Primary page marked and not clickable
  4. Step 4. Whitelist patterns

    Exclude URL patterns from duplicate detection — pagination, filter parameters, and other overlaps you publish on purpose.

    What to do: projects.seo-audit.duplicate-whitelist

    Where: projects.seo-audit.duplicate-whitelist

    Whitelist patterns

    Expected (pass)

    • Pattern saved
    • Excluded URLs absent from new groups
  5. Step 5. Duplicate report

    A printable summary of the audit: totals, the priority split, and every group with its members. Printing hides the app chrome and prints the full table.

    What to do: projects.seo-audit.duplicate-report

    Where: projects.seo-audit.duplicate-report

    Duplicate report

    Expected (pass)

    • Report renders counts and top groups
    • Print output excludes sidebar and top bar

Related guides