SEO-54Avoid
Near-identical pages made to catch searches
Many pages or sites made to rank for similar searches that all send visitors to the same place. The common form is one page per city with only the place name changed.
How to do it
Google's spam policies call this doorway abuse. Its examples are near-identical domains or home pages made for one query, and city or region pages that funnel visitors to one page. Pages that exist only to lead into the useful part of a site count too. A page with facts specific to its town is fine, as Give a place its own page only with local content says.
Examples
JavaScript example
const shingles = text => new Set(text.toLowerCase().split(/\s+/).map((word, i, words) => words.slice(i, i + 3).join(' ')));
const overlap = (a, b) => [...a].filter(shingle => b.has(shingle)).length / Math.min(a.size, b.size);
for (const [first, second] of pairsFromSameTemplate) assert.ok(overlap(shingles(first.text), shingles(second.text)) <= 0.8, `${first.path} and ${second.path} are near copies`);
Python example
def shingles(text):
words = text.lower().split()
return {" ".join(words[i:i + 3]) for i in range(len(words))}
for first, second in pairs_from_same_template:
a, b = shingles(first.text), shingles(second.text)
assert len(a & b) / min(len(a), len(b)) <= 0.8, f"{first.path} and {second.path} are near copies"
How to check
A build test compares the main text of every pair of pages made from the same template. No pair shares more than 80% of its three-word sequences.
Sources
Related rules
- SEO-64 Give a place its own page only with local content in SEO
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/seo/search-spam-and-penalties/doorway-pages">Agent Wranglers SEO playbook</a>. In code you write, add a comment next to it with the same link.