Completions

Get-found swarm · Local-Content Agent · Local-cannibalization-defense skill · Build pillar · Published June 7, 2026

How to build cross-location cannibalization detection across 200+ franchise location pages

This guide explains how to architect the local-cannibalization-defense skill on the local-content agent end-to-end at multi-location franchise + multi-store scale: per-portfolio per-canonical-per-location-pair-keyword-overlap-detection + per-content-similarity-detection + per-URL-pattern-overlap + per-internal-link-overlap + per-canonical-tag-conflict + per-self-canonicalization-detection + per-Google-Search-Console-impression-overlap + per-cannibalization-severity-tiering + per-resolution-rule + per-remediation-plan + per-portfolio audit-trail.

What you will build

  • Per-portfolio per-canonical-per-location-pair-keyword-overlap-detection — per-location-page target keyword extraction (title-tag + H1 + meta-description + on-page headings + internal anchor text + target-keyword spec) + cross-location Jaccard similarity + cosine similarity (TF-IDF + BM25 + Sentence-Transformer + OpenAI text-embedding-3-small + Cohere embed-v3) + Google Search Console impression overlap + shared-keyword Top-50 list.
  • Per-canonical-per-location-pair-content-similarity-detection — per-page main-content extraction (boilerplate-strip + template-strip) + MinHash Locality-Sensitive-Hashing (shingle size 3/5/10 + permutation 128/256) + SimHash + Levenshtein distance + Sentence-Transformer cosine similarity + content-similarity-percentile-ranking.
  • Per-canonical-per-location-pair-URL-pattern-overlap — per-URL-template extraction + URL-segment tokenization + URL-parameter extraction + cross-location URL-template overlap + URL-pattern collision (multiple locations same URL pattern + multiple locations same slug base).
  • Per-canonical-per-location-pair-internal-link-overlap — per-page internal-link graph + cross-location shared-anchor-text + shared-link-destination + shared-link-source + cross-location internal-PageRank distribution.
  • Per-canonical-per-location-pair-canonical-tag-conflict + per-self-canonicalization-detection — per-page canonical-tag extraction + cross-location cross-reference (A canonicalizes to B + A canonicalizes to corporate root + A canonicalizes to self) + template self-canonicalization detection.
  • Per-canonical-Google-Search-Console-impression-overlap — per-location GSC Property + impression-by-keyword + click-by-keyword + CTR-by-keyword + cross-location shared-impression keyword detection + shared-impression-percentage overlap + shared-click cannibalization + rank-volatility correlation.
  • Per-canonical-cannibalization-severity-tiering + per-resolution-rule + per-remediation-plan — Tier-1 Critical (head-keyword overlap + content-similarity over 80%) + Tier-2 High (mid-tail + 50-80%) + Tier-3 Medium (long-tail + 30-50%) + Tier-4 Low (keyword overlap only) + per-Tier severity routing + per-Tier default resolution strategy (content-differentiation rewrite + canonical-tag redirect + 301 redirect + noindex + internal-link restructure + target-keyword respec) + per-FDD-compliance check + per-remediation ticket + per-stakeholder assignment + per-deadline + per-impact tracking + per-post-remediation monitoring.

Why per-vendor-Ahrefs-Cannibalization-Detection-single-domain breaks at multi-location-franchise scale

Per-vendor-Ahrefs-canonical-Cannibalization-Detection ships per-account per-domain per-keyword-overlap primitive. Per-vendor-Semrush-Keyword-Cannibalization + Moz-Keyword-Explorer + Sitebulb + Screaming Frog + Botify + Lumar + Oncrawl + JetOctopus + ContentKing-canonical-single-account ship per-vendor per-native cannibalization primitives.

At 1-domain-1-content-team scale per-account per-domain per-keyword-overlap primitive is enough. At 200-location-200-franchisee scale per-location-pair-keyword-overlap-not-domain-level + per-location-pair-content-similarity-MinHash-LSH + per-location-pair-URL-pattern-overlap-template + per-location-pair-internal-link-overlap + per-location-pair-canonical-tag-conflict + per-location-pair-self-canonicalization + per-cannibalization-severity-tiering + per-cannibalization-resolution-rule + per-cannibalization-remediation-plan + per-FDD-franchise-disclosure-trademark-compliance.

Per-cross-vendor-cannibalization-fragmentation + per-location-pair-content-similarity-blind + per-canonical-tag-conflict-blind + per-self-canonicalization-blind + per-cannibalization-severity-tiering-blind + per-resolution-rule-blind + per-remediation-plan-blind.

The operator-side architecture above per-vendor-cannibalization-detection primitive is canonical-per-location-pair-keyword-overlap + per-content-similarity + per-URL-pattern-overlap + per-internal-link-overlap + per-canonical-tag-conflict + per-self-canonicalization + per-GSC-impression-overlap + per-severity-tiering + per-resolution-rule + per-remediation-plan + per-portfolio-audit-trail.

What is in market today

Per-platform per-cannibalization-detection-vendor

Ahrefs Site Explorer + Ahrefs Site Audit, Semrush Keyword Cannibalization Tool + Semrush Site Audit, Moz Pro Keyword Explorer, Sistrix, SE Ranking, Mangools KWFinder. Per-account per-domain per-keyword-overlap. Per-canonical-per-location-pair-canonical-content-similarity-canonical-MinHash-LSH-canonical-canonical-tag-conflict is not the primitive.

Per-platform per-site-crawler

Sitebulb, Screaming Frog SEO Spider, Botify, Lumar (formerly DeepCrawl), Oncrawl, JetOctopus, ContentKing (Conductor), ContentGecko, Audisto, SEOptimer, Netpeak Spider. Per-account per-crawl primitive. Per-canonical-cross-location-pair-canonical-content-similarity-canonical-internal-link-overlap-canonical-canonical-tag-conflict is not the primitive.

Per-platform per-content-similarity-platform

Copyscape, Plagspotter, Plagscan, Originality.ai, Quetext, Grammarly Plagiarism, Turnitin, iThenticate. Per-account per-document primitive. Per-canonical-MinHash-LSH-canonical-SimHash-canonical-Sentence-Transformer-canonical-content-similarity-percentile-ranking is not the primitive.

Per-platform per-GSC-aggregation

Google Search Console, Ahrefs GSC connector, Semrush GSC connector, SEOmonitor, AccuRanker, Wincher, BrightEdge, Conductor. Per-account per-property per-keyword-impression. Per-canonical-cross-location-GSC-shared-impression-keyword-canonical-shared-impression-percentage-overlap-canonical-shared-click-cannibalization-canonical-rank-volatility-correlation is not the primitive.

How the architecture is built

  1. Per-portfolio per-canonical-per-location-page-target-keyword-extraction-substrate. Per-title-tag + per-H1 + per-meta-description + per-on-page-headings + per-internal-anchor-text + per-target-keyword-spec canonical-target-keyword.
  2. Per-portfolio per-canonical-cross-location-keyword-overlap-detection. Per-Jaccard-similarity + per-cosine-similarity-TF-IDF-BM25-Sentence-Transformer-OpenAI-Cohere + per-GSC-impression-overlap canonical-keyword-overlap.
  3. Per-portfolio per-canonical-per-location-page-content-extraction. Per-main-content-block + per-boilerplate-strip + per-template-strip canonical-content-extraction.
  4. Per-portfolio per-canonical-content-similarity-detection. Per-MinHash-Locality-Sensitive-Hashing + per-shingle-3-5-10 + per-permutation-128-256 + per-SimHash + per-Levenshtein-distance + per-Sentence-Transformer-cosine canonical-content-similarity.
  5. Per-portfolio per-canonical-per-location-URL-template-extraction. Per-URL-pattern + per-URL-segment-tokenization + per-URL-parameter-extraction canonical-URL-template.
  6. Per-portfolio per-canonical-cross-location-URL-pattern-collision. Per-multiple-locations-same-URL-pattern + per-multiple-locations-same-slug-base canonical-URL-collision.
  7. Per-portfolio per-canonical-per-location-page-internal-link-graph. Per-shared-anchor-text + per-shared-link-destination + per-shared-link-source + per-internal-PageRank canonical-internal-link.
  8. Per-portfolio per-canonical-per-location-page-canonical-tag-extraction. Per-A-canonicalizes-to-B + per-A-canonicalizes-to-corporate-root + per-A-canonicalizes-to-self + per-template-self-canonicalization canonical-canonical-tag.
  9. Per-portfolio per-canonical-Google-Search-Console-impression-overlap. Per-GSC-impression-by-keyword + per-GSC-click-by-keyword + per-GSC-CTR-by-keyword + per-cross-location-shared-impression + per-shared-click-cannibalization + per-rank-volatility-correlation canonical-GSC-overlap.
  10. Per-portfolio per-canonical-cannibalization-severity-tiering. Per-Tier-1-Critical + per-Tier-2-High + per-Tier-3-Medium + per-Tier-4-Low canonical-severity.
  11. Per-portfolio per-canonical-severity-routing. Per-Tier-1-to-VP-Marketing + per-Tier-2-to-SEO-Director + per-Tier-3-to-content-team + per-Tier-4-to-quarterly-review canonical-severity-routing.
  12. Per-portfolio per-canonical-resolution-strategy. Per-content-differentiation-rewrite + per-canonical-tag-redirect + per-301-redirect + per-noindex + per-internal-link-restructure + per-target-keyword-respec + per-FDD-compliance-check canonical-resolution.
  13. Per-portfolio per-canonical-cannibalization-remediation-plan + per-portfolio-audit-trail. Per-remediation-ticket + per-stakeholder-assignment + per-deadline + per-impact-tracking + per-post-remediation-monitoring + per-CSV-export + per-SOC2-export + per-FDD-export + per-immutable-storage canonical-remediation.

Frequently asked questions

What is cross-location cannibalization detection across 200+ franchise location pages?

Cross-location cannibalization detection runs per-portfolio per-canonical-per-location-pair-keyword-overlap-detection + per-canonical-per-location-pair-content-similarity-detection + per-canonical-per-location-pair-URL-pattern-overlap + per-canonical-per-location-pair-internal-link-overlap + per-canonical-per-location-pair-canonical-tag-conflict + per-canonical-per-location-pair-self-canonicalization-detection + per-canonical-per-location-pair-Google-Search-Console-impression-overlap + per-canonical-cannibalization-severity-tiering + per-canonical-cannibalization-resolution-rule + per-canonical-cannibalization-remediation-plan + per-portfolio audit-trail. Per-canonical-per-location-pair-keyword-overlap-detection runs per-portfolio per-canonical-per-location-page-target-keyword-extraction + per-canonical-cross-location-target-keyword-overlap-Jaccard-similarity + per-canonical-cross-location-target-keyword-overlap-cosine-similarity + per-canonical-cross-location-Google-Search-Console-impression-overlap + per-canonical-cross-location-shared-keyword-list. The per-platform cannibalization-detection vendor category includes Ahrefs Site Explorer, Ahrefs Site Audit, Semrush Keyword Cannibalization Tool, Semrush Site Audit, Moz Pro Keyword Explorer, Sitebulb, Screaming Frog, Botify, Lumar (DeepCrawl), Oncrawl, JetOctopus, ContentKing (Conductor), ContentGecko.

Why does per-vendor-Ahrefs-canonical-Cannibalization-Detection-canonical-single-domain break down at multi-location-franchise scale?

Per-vendor-Ahrefs-canonical-Cannibalization-Detection ships per-account per-domain per-keyword-overlap primitive. Per-vendor-Semrush-Keyword-Cannibalization + per-Moz-Pro-Keyword-Explorer + per-Sitebulb + per-Screaming-Frog + per-Botify + per-Lumar + per-Oncrawl + per-JetOctopus + per-ContentKing-canonical-single-account ship per-vendor per-native cannibalization primitives. At 1-domain-1-content-team scale per-account per-domain per-keyword-overlap primitive is enough. At 200-location-200-franchisee scale per-canonical-per-location-pair-keyword-overlap-canonical-not-domain-level + per-canonical-per-location-pair-content-similarity-canonical-MinHash-LSH + per-canonical-per-location-pair-URL-pattern-overlap-canonical-template + per-canonical-per-location-pair-internal-link-overlap + per-canonical-per-location-pair-canonical-tag-conflict + per-canonical-per-location-pair-self-canonicalization + per-canonical-cannibalization-severity-tiering + per-canonical-cannibalization-resolution-rule + per-canonical-cannibalization-remediation-plan + per-canonical-FDD-franchise-disclosure-document-canonical-trademark-canonical-compliance.

How does per-portfolio per-canonical-per-location-pair-keyword-overlap + per-content-similarity-detection work?

Per-portfolio per-canonical-per-location-pair-keyword-overlap runs per-portfolio per-canonical-per-location-page-target-keyword-extraction (per-title-tag + per-H1 + per-meta-description + per-on-page-headings + per-internal-anchor-text + per-target-keyword-spec per-canonical-target-keyword) + per-canonical-cross-location-Jaccard-similarity (per-set-intersection-over-set-union per-canonical-Jaccard) + per-canonical-cross-location-cosine-similarity (per-TF-IDF-vector + per-BM25-vector + per-Sentence-Transformer-vector + per-OpenAI-text-embedding-3-small + per-Cohere-embed-v3 per-canonical-cosine) + per-canonical-cross-location-Google-Search-Console-impression-overlap (per-shared-impression-keyword-list + per-shared-impression-percentage-overlap per-canonical-GSC-overlap) + per-canonical-cross-location-shared-keyword-Top-50-list. Per-canonical-per-location-pair-content-similarity-detection runs per-canonical-per-location-page-content-extraction (per-main-content-block + per-boilerplate-strip + per-template-strip per-canonical-content-extraction) + per-canonical-MinHash-Locality-Sensitive-Hashing (per-shingle-size-3 + per-shingle-size-5 + per-shingle-size-10 + per-permutation-128 + per-permutation-256 per-canonical-MinHash) + per-canonical-SimHash + per-canonical-Levenshtein-distance + per-canonical-Sentence-Transformer-cosine-similarity + per-canonical-content-similarity-percentile-ranking.

What does per-portfolio per-canonical-per-location-pair-URL-pattern-overlap + per-internal-link-overlap + per-canonical-tag-conflict do?

Per-portfolio per-canonical-per-location-pair-URL-pattern-overlap runs per-portfolio per-canonical-per-location-URL-template-extraction (per-URL-pattern + per-URL-segment-tokenization + per-URL-parameter-extraction per-canonical-URL-template) + per-canonical-cross-location-URL-template-overlap-detection + per-canonical-cross-location-URL-pattern-collision (per-multiple-locations-same-URL-pattern + per-multiple-locations-same-slug-base per-canonical-URL-collision). Per-canonical-per-location-pair-internal-link-overlap runs per-portfolio per-canonical-per-location-page-internal-link-graph + per-canonical-cross-location-internal-link-overlap-detection (per-shared-internal-anchor-text + per-shared-internal-link-destination + per-shared-internal-link-source per-canonical-internal-link-overlap) + per-canonical-cross-location-internal-PageRank-distribution. Per-canonical-per-location-pair-canonical-tag-conflict runs per-portfolio per-canonical-per-location-page-canonical-tag-extraction + per-canonical-cross-location-canonical-tag-cross-reference-detection (per-location-A-canonicalizes-to-location-B + per-location-A-canonicalizes-to-corporate-root + per-location-A-canonicalizes-to-self per-canonical-canonical-tag) + per-canonical-self-canonicalization-detection (per-location-pages-canonicalize-to-self + per-template-canonicalizes-to-template-prototype per-canonical-self-canonical).

What does per-portfolio per-canonical-cannibalization-severity-tiering + per-resolution-rule + per-remediation-plan do?

Per-portfolio per-canonical-cannibalization-severity-tiering runs per-portfolio per-canonical-per-cannibalization-instance-severity-spec (per-Tier-1-Critical-head-keyword-cross-location-overlap-plus-content-similarity-over-80-percent + per-Tier-2-High-mid-tail-keyword-cross-location-overlap-plus-content-similarity-50-to-80-percent + per-Tier-3-Medium-long-tail-keyword-overlap-plus-content-similarity-30-to-50-percent + per-Tier-4-Low-keyword-overlap-only-no-content-similarity per-canonical-severity-tier) + per-canonical-severity-routing (per-Tier-1-routes-to-VP-Marketing-immediate + per-Tier-2-routes-to-SEO-Director-next-sprint + per-Tier-3-routes-to-content-team-backlog + per-Tier-4-routes-to-quarterly-review per-canonical-severity-routing). Per-canonical-cannibalization-resolution-rule runs per-portfolio per-canonical-resolution-strategy-spec (per-content-differentiation-rewrite + per-canonical-tag-redirect + per-301-redirect + per-noindex-tag + per-internal-link-restructure + per-target-keyword-respec per-canonical-resolution-strategy) + per-canonical-resolution-strategy-per-Tier-default (per-Tier-1-default-content-differentiation-rewrite + per-Tier-2-default-internal-link-restructure + per-Tier-3-default-target-keyword-respec + per-Tier-4-default-monitor-only per-canonical-resolution-per-Tier) + per-canonical-resolution-FDD-franchise-disclosure-document-compliance-check. Per-canonical-cannibalization-remediation-plan runs per-portfolio per-canonical-per-cannibalization-instance-remediation-ticket + per-canonical-remediation-ticket-stakeholder-assignment + per-canonical-remediation-ticket-deadline + per-canonical-remediation-ticket-impact-tracking + per-canonical-remediation-ticket-post-remediation-monitoring.

What does per-portfolio per-canonical-Google-Search-Console-impression-overlap + per-local-content-agent-canonical-bundle do?

Per-portfolio per-canonical-Google-Search-Console-impression-overlap runs per-portfolio per-canonical-per-location-Google-Search-Console-Property + per-canonical-per-location-GSC-impression-by-keyword + per-canonical-per-location-GSC-click-by-keyword + per-canonical-per-location-GSC-CTR-by-keyword + per-canonical-cross-location-GSC-shared-impression-keyword-detection + per-canonical-cross-location-GSC-shared-impression-percentage-overlap + per-canonical-cross-location-GSC-shared-click-cannibalization + per-canonical-cross-location-GSC-rank-volatility-correlation. Per-local-content-agent-canonical-bundle integrates the local-cannibalization-defense skill with sibling skills on the same agent: per-canonical-location-page-authoring (sibling, upstream producer of per-location pages cannibalization detects against) + per-canonical-per-location-page-content-cannibalization (sibling, parent commercial pillar at /per-location-page-content-cannibalization) + per-canonical-location-page-seo (sibling, downstream consumer of cannibalization resolution for SEO optimization) + per-canonical-multi-location-orphan-page-detection (sibling, companion skill for orphan-page detection downstream of cannibalization resolution).

Engage the local-content agent

Per-portfolio per-canonical-per-location-pair-keyword-overlap-detection + per-content-similarity + per-URL-pattern-overlap + per-internal-link-overlap + per-canonical-tag-conflict + per-self-canonicalization + per-GSC-impression-overlap + per-cannibalization-severity-tiering + per-resolution-rule + per-remediation-plan + per-portfolio audit-trail shipped as the orchestration layer above your existing per-cannibalization-detection-vendor + per-site-crawler + per-content-similarity-platform + per-GSC-aggregation primitive.