How to fix duplicate content in WordPress
To fix duplicate content in WordPress, first find where the duplicates come from, then use the right tool for each: a 301 redirect when a duplicate URL should not exist, a canonical tag when both versions must stay reachable, and noindex for thin archive pages. Most WordPress duplication is technical, from host variants, archives and URL parameters, rather than copied text.
Duplicate content is not a penalty. The cost is that Google splits signals between the versions and picks which one to show, which may not be the one you want. Pages that compete for the same query are a related but different problem, covered in fix keyword cannibalization.
Step by step
1. Find the duplicates
Two places show them. In Search Console's Pages report, look for Duplicate without user-selected canonical and Duplicate, Google chose different canonical than user. On Hydrogen SEO → Dashboard, the site audit lists pages sharing the same SEO title or meta description, which often points to cloned posts or templates that output the same text. For the Search Console statuses, see fix duplicate without user-selected canonical.
2. Settle on one host and protocol
Your site should answer on exactly one of https://example.com and https://www.example.com. Check that Settings → General uses that address for both WordPress Address and Site Address, then confirm the other variants redirect in one hop:
curl -sI http://example.com/ | grep -i location
curl -sI https://www.example.com/ | grep -i location
If a variant loads a page instead of redirecting, set the redirect at your host or CDN.
3. Rely on self-referencing canonicals
Tracking parameters such as ?utm_source=newsletter, and comment reply links such as ?replytocom=, create copies of the same page. Hydrogen SEO prints a canonical tag on every page pointing at its clean permalink, so these variants declare the clean URL as the main one. View the source of a page with a parameter added and check rel="canonical" shows the clean address. If you see two canonical tags, two SEO plugins are active; see fix duplicate meta output.
4. Merge posts that say the same thing
Older blogs often have several posts on one topic. Pick the strongest, move anything useful from the others into it, and 301 the weaker URLs to it in Hydrogen SEO → Redirections. Do not keep both live with a canonical between them; if a page has no reason to exist for visitors, a redirect is cleaner.
5. Noindex thin archives
Tag archives, and sometimes date archives, list the same posts as categories. Noindex the taxonomies that add nothing under Hydrogen SEO → Robots, as described in noindex tag and category archives. Author archives and search results are already noindexed by Hydrogen SEO.
6. Deal with attachment pages
On older sites every upload has its own attachment page, a thin near-copy of the post it came from. Turn them off or redirect them with redirect attachment pages.
7. Set a custom canonical for syndicated copies
If you republish a post on another site, or publish something that first appeared elsewhere, the copy should credit the original. Open the copy's SEO Settings sheet, enter the original's full URL in Canonical URL, and update. Canonicals to another domain are the standard way to handle syndication. For true duplicates you control, the canonical must point at a live, indexable page that returns 200.
Which tool for which duplicate
| Situation | Fix |
|---|---|
http, non-www or old domain variants | 301 at the server or CDN |
| Two posts covering one topic | Merge and 301 |
| Parameter variants of one page | Self-referencing canonical (automatic) |
| Republished article | Canonical to the original |
| Thin tag and date archives | Noindex |
| Two SEO plugins printing tags | Keep one plugin |
Common mistakes
- Blocking duplicates in robots.txt. Google cannot see the canonical on a page it cannot fetch, so the duplicate can stay indexed.
- Canonicalizing to a URL that redirects or 404s. Google ignores canonicals that point at pages it cannot index.
- Pointing every page's canonical at the homepage. A canonical says "this page is a copy of that one". Distinct articles are not copies.
- Noindex and canonical on the same page. They give opposite instructions. Pick one.
Common questions
Does Google penalize duplicate content?
Not for ordinary technical duplication. It picks one version to show and folds the others into it. Only content copied to manipulate rankings is treated as spam.
Should I use a canonical or a redirect?
Redirect when the duplicate URL has no reason to exist for visitors. Use a canonical when both versions must stay reachable, such as a syndicated copy on another site.
Why did Google choose a different canonical than mine?
The canonical tag is a strong hint, not a command. Google may choose differently when internal links, redirects or sitemaps point at another version, so make them all agree.