Skip to main content

Dev.to developer shares duplicate content check flaws

A free calculator site operator details how their custom content duplication gate failed on day one, missing overlapping keywords and blocking valid pages.

AI-written
Inewgen
02 Nov 2026Source: Dev.to3 min read (0 views)
Share
Dev.to developer shares duplicate content check flaws

Stock photo for illustration only, not from the actual event

Font size
  • A site creator built an automated gate to prevent content cannibalization among calculator pages.
  • Version one of the script suffered failures in both directions by over-blocking and missing overlaps.
  • Fixes included restricting subset checks to one direction and scanning full page text contents.
  • Synonym gaps continue to be managed using weekly reports pulled from Google Search Console.

Managing a network of free calculator tools often comes with the challenge of multiple pages competing for the same search queries. To combat this, a site developer created a custom research script designed to compare target keywords against every existing page before building a new one. If an overlap is detected, the script fails the build, forcing the creator to either expand the existing page or clarify the different search intents, noting that Google Search Console previously revealed 63 queries over 28 days where two separate URLs from the same site appeared.

The initial version of the gate was straightforward: lowercase the text, strip stop words and the word calculator, then compare the remaining word sets. However, on its very first day of operation, the script failed in both directions. The first test query, "quebec paycheck calculator," was blocked due

software developer office desk workspace

Stock photo for illustration only, not from the actual event

to a strong word overlap with existing generic payroll pages. Because the existing pages were broad, their word sets were subsets of the keyword, causing the script to flag a match even though the addition of a specific location fundamentally changed the search intent.

63Queries with multiple internal URLs in Search Console
6,600Monthly searches for Canada tax keyword data

The subsequent fix required limiting the subset check to a single direction, meaning an existing page only covers a keyword if it already contains every single word of that keyword. Despite this adjustment, a later plan to build a "bc income tax calculator" with 6,600 monthly searches slipped past the gate because the tool only inspected titles and URL slugs, completely missing the fact that a newly published BC paycheck calculator already contained the relevant phrases multiple times within its body text and meta descriptions.

Never miss the latest news?

Subscribe to get news summaries by email - not often enough to be annoying.

โฆษณา

"Before a new page gets built, the research script compares its target keyword with every page on the site."

Smhd21

Keyword cannibalization remains a critical SEO hurdle for content-heavy sites where multiple URLs target matching terms, diluting ranking potential. Implementing internal validation scripts represents a proactive technical strategy, though catching semantic variations and near-synonyms often requires pairing automated tools with direct search engine analytics data for comprehensive coverage.

To address this oversight, the gate was upgraded to read the full text of generated pages, scanning for text windows where all keyword tokens appear in any order. Another minor bug involving trailing characters—where removing an 's' from keywords turned "vs" into "v" while leaving page text untouched—was resolved by applying identical normalization rules to both sides of the comparison.

Nonetheless, word overlap logic remains blind to near-synonyms, such as "pay" versus "overtime pay." For those remaining gaps, the developer relies on weekly Google Search Console exports every Monday, tracking the count of overlapping URLs to guide ongoing decisions on whether to merge or separate specific pages.

Source: Dev.to

Comments

Leave a Comment
0/2000

Found something wrong in this article? Report an issue with this article