How to Fix Duplicate Content Issues
Duplicate content rarely means someone stole your work. Most of the time, it means your own site is competing with itself.
"Duplicate content" gets treated as a scary, vague SEO term, and a lot of business owners assume it means someone copied their website. In practice, the far more common version is internal: your own site publishing the same or nearly the same content at more than one URL, usually by accident, usually as a side effect of how the site is built rather than anything anyone deliberately did wrong.
What duplicate content actually is (and isn't)
Duplicate content is any block of substantively identical or near-identical content that's accessible at more than one URL. It isn't automatically a penalty trigger — Google's systems are built to handle the fact that duplication happens constantly across the web, often for legitimate technical reasons. What it does cause is dilution: when two URLs both qualify to rank for the same thing, Google has to choose one, and any links, clicks, or engagement pointing at the "losing" URL don't count toward the version that actually shows up in search.
The real cost isn't a penalty
The most common causes on a service-business site
- Both www and non-www, or http and https, resolving without a redirect — four technically different URLs all serving the same homepage, none of them consolidated into one.
- URL parameters — tracking parameters, sort orders, or session IDs appended to a URL (
?utm_source=...,?sort=price) that create a technically new URL serving identical or near-identical content. - Near-identical location or service pages — a city-page template where only the city name changes, with the rest of the copy pasted unchanged across every location.
- Printer-friendly or "view as" page versions — an alternate rendering of the same content at a separate URL.
- Staging or development environments left indexable — a copy of the live site on a subdomain (
staging.yoursite.com) that never had crawling blocked. - Content syndication without attribution — a blog post republished on another platform (Medium, an industry directory) without a canonical pointing back to the original.
How to find it
- Google Search Console's Pages report — look specifically for "Duplicate without user-selected canonical" and "Duplicate, Google chose different canonical than user" — these flag exactly the URLs Google has identified as duplicates and tell you which version it picked.
- A site crawl — crawling your own site with a tool like Screaming Frog surfaces pages with identical or near-identical title tags, meta descriptions, and body content — a fast way to spot templated pages that never got genuinely differentiated.
- A manual
site:yourdomain.com "distinctive phrase"search in Google, pulling an exact sentence from a page, to see how many indexed URLs contain it.
Canonical tag vs. 301 redirect: how to decide
These solve the same underlying problem — telling Google which version matters — but they're not interchangeable, and picking the wrong one creates its own mess.
Use a 301 redirect when
One version genuinely doesn't need to exist anymore — an old URL from a past site structure, a duplicate created by a platform migration, a printer-friendly page nobody actually uses. A redirect sends both users and search engines to the surviving URL and consolidates all existing signal into it permanently.
Use a canonical tag when
Both versions have a legitimate reason to keep existing — a URL with tracking parameters that's still a valid page for someone clicking a link, or a filtered view of a page that's useful to a visitor but shouldn't compete with the main version in search. The canonical tag lives on the duplicate and points to the version you want indexed, without removing the duplicate itself. See the canonical tags guide for the full mechanics, and the robots.txt vs. noindex vs. canonical guide if you're unsure which of the three tools fits your specific situation.
Fixing near-duplicate location and service pages
Templated pages are the trickiest version of this problem, because the fix isn't a redirect or a canonical — the pages need to stay separate and indexed, they just need to stop being near-identical. That means genuinely different content per page: local landmarks or service-area specifics that actually apply to that city, project photos or testimonials specific to that location if you have them, and distinct service details where they legitimately differ by market. See the multi-location SEO guide for the fuller approach to building out location pages that don't collapse into duplicates of each other.
Preventing it going forward
- Pick one canonical version of your domain (https, with or without www) and make sure every other variant 301-redirects into it — a one-time fix that prevents an entire category of duplication.
- Set canonical tags as a default on every page template, pointing each page at itself unless there's a specific reason to point elsewhere.
- Block crawling of staging and development environments outright — don't rely on remembering to noindex them later.
- Build a content checklist for new location or service pages that requires genuinely unique sections before a page goes live, not just a template with the city name swapped.
Frequently asked questions
Put this into practice
More guides
Want this handled for you?
We build the SEO foundation and handle the ongoing work — no long-term contract, no guaranteed-rankings sales pitch.
