Originally published at thatdevpro.com. This framework reference is part of the 14-tier Engine Optimization stack from ThatDevPro, an SDVOSB-certified veteran-owned web + AI engineering studio. You are reading the dev.to mirror; the source-of-truth canonical version with embedded validation tools lives at the link above.
The Canonical 2026 Reference for Systematic Competitive Intelligence Across SEO, AEO, AIO, and GEO Surfaces
A comprehensive installation and audit reference for the competitor audit performed at engagement onset and refreshed quarterly. The audit identifies who beats the client across the discoverability surfaces that matter in 2026: Google organic Top 10, AI Overviews, AI Mode, Perplexity, SearchGPT and ChatGPT Search, Gemini, Claude web search, Microsoft Copilot, Bing organic Top 10, and local pack when geography applies. It scopes attainable share of voice gain, ranks the competitive set by surface, and produces the 4 quadrant gap matrix that drives the next 90 days. Companion to framework-initialaudit.md. This framework specifies the competitive intelligence layer in isolation.
Cross stack implementation note: code samples are bash for crawl orchestration and Python for API integration. For React, Vue, Svelte, Next.js, Nuxt, SvelteKit, Astro, Hugo, 11ty, Remix, WordPress, Shopify, and Webflow equivalents, see framework-cross-stack-implementation.md.
1. Document Purpose
1.1 What This Document Is
The competitor audit identifies who beats the client across the surfaces that matter, scopes attainable share of voice gain, and produces the gap matrix that drives the next 90 days of work. The deliverable is a 4 quadrant gap matrix (Client Wins, Client Losses, Shared Wins, Shared Losses), a per surface competitive set ranking, and a prioritized opportunity backlog with traffic and effort estimates.
Section 2 collects client variables. Section 3 identifies the competitive set using the four list approach. Section 4 maps competitors per discoverability surface. Sections 5 through 11 perform per dimension analysis. Section 12 produces the gap matrix. Section 13 establishes audit cadence. Section 14 runs the toolchain on Bubbles.
1.2 Why Competitor Audits Matter More in 2026 Than in 2024
Through 2023 the competitive set was stable. Google organic Top 10 competitors substantially overlapped with the broader business competitive set, and a single competitor list served most analytical purposes. In 2026 the competitive set differs by surface. Yext's Q4 2025 analysis of 17.2 million AI citations across four engines found only 11 percent of cited domains appear across multiple AI engines. Ahrefs' February 2026 study of 730,000 AI response pairs found 13.7 percent overlap between Google AI Overviews and Google AI Mode despite both running on Gemini 3 Pro. The Profound August 2024 to June 2025 cross platform analysis found 11 percent of domains cited by both ChatGPT and Perplexity.
Operationally: the competitor on every priority Google Top 10 SERP may never appear in AI Overviews. The competitor cited 60 percent of the time in Perplexity may never appear on a Google SERP. The competitor cited heavily in ChatGPT may be a forum, a Reddit thread, or a Wikipedia article. A single competitor list compiled from Ahrefs' Top Competing Domains will miss 60 to 80 percent of the AI surface competitive set on most engagements. The audit must identify the competitive set per surface and analyze each against its surface specific success criteria.
1.3 The Initial Competitor Audit vs the Quarterly Refresh
The initial audit is performed once at engagement onset, takes 24 to 60 hours, and covers every dimension across the 5 to 15 competitor master list. Deliverable: 16 to 30 page document.
The quarterly refresh re measures delta against the initial baseline. It takes 8 to 16 hours. Focuses on new competitors entering the set, dropped competitors, citation share shifts, link velocity changes, and major competitor content publishing surges.
The monthly AI surface delta is the lightest cadence. 4 to 8 hours. Re runs the priority query citation sweep across the seven AI engines from Section 4 and compares against the prior baseline. Surfaces emerging competitors before the quarterly refresh captures them.
1.4 Three Operating Modes
Mode A, Light Audit, 8 to 16 hours. Lead qualification and discovery calls. Output: 3 to 5 page summary with top 5 competitors per surface and the headline gap. Skips backlink intersect and manual AI citation sweep.
Mode B, Standard Audit, 24 to 40 hours. Most paid Tier 2 and Tier 3 engagements. Output: the 16 to 24 page deliverable in Section 12. Every dimension at standard depth.
Mode C, Deep Audit, 60 to 120 hours. Enterprise engagements with large competitive sets, multi market exposures, or audit only engagements. Output: 40 to 80 page deliverable with per competitor profiles, per surface analysis, and full backlink intersect against every priority competitor.
This framework specifies the Standard Audit. Light is a subset. Deep extends per competitor depth.
1.5 Required Tools and Access
Ahrefs full account or Semrush equivalent. SimilarWeb. Local Falcon if local applies. Mention or Brand24 for brand mention monitoring. Sprout Social or Brandwatch for social share of voice. SerpAPI for automated SERP sampling. OpenAI, Anthropic, Perplexity APIs for prompt testing automation. GSC with 16 months of data. GBP API access if local. Wikipedia and Wikidata access for entity verification. Optional: BrightEdge AI Catalyst, Profound, Otterly, AthenaHQ, Semrush AI Toolkit.
Access provisioning takes 3 to 10 business days. Do not start the audit until every tool is verified working against the client domain and the candidate competitor set.
2. Client Variables Intake
The intake captures every dimension necessary to identify the competitive set, frame the analysis, and prioritize the gap output. Stored at /home/user/clients/[clientname]/competitors/intake.yaml. Locked at audit start; addenda noted in deliverable.
# COMPETITOR AUDIT FRAMEWORK CLIENT VARIABLES
# --- Business and Site Identity (REQUIRED) ---
business_name: ""
primary_domain: ""
industry: ""
sub_industry: ""
business_model: "" # b2b, b2c, marketplace, publisher, saas, local_service, agency, ecommerce
ymyl_classification: "" # full_ymyl, partial_ymyl, lite_ymyl, non_ymyl
geographic_focus: "" # local, regional, national, multi_national, global
service_areas: []
average_deal_size_usd: 0
sales_cycle_days_average: 0
# --- Competitive Context (REQUIRED) ---
client_stated_competitors: [] # list named during intake
client_stated_aspirational: [] # competitors client wants to grow into
prior_competitive_analysis: ""
new_entrants_last_12_months: []
# --- Discovery Surface Priority (REQUIRED) ---
google_organic_priority: "" # high, medium, low
google_aio_priority: ""
google_ai_mode_priority: ""
perplexity_priority: ""
chatgpt_search_priority: ""
gemini_priority: ""
claude_web_priority: ""
copilot_priority: ""
bing_organic_priority: ""
local_pack_priority: ""
# --- Priority Query Set (REQUIRED) ---
priority_commercial_queries: [] # 20 to 50 highest commercial intent
priority_informational_queries: [] # 20 to 50 highest awareness building
priority_local_queries: []
priority_brand_queries: []
# --- Current State Snapshot (REQUIRED) ---
referring_domains_total: 0
domain_rating: 0
organic_keywords_total: 0
estimated_monthly_organic_traffic: 0
branded_traffic_percent: 0
gbp_review_count: 0
ai_citation_gap_percent: 0 # from initial audit if available
# --- Budget and Cadence ---
audit_scope: "" # light, standard, deep
audit_budget_hours: 0
refresh_cadence: "" # monthly, quarterly, annual
monthly_ai_sweep_hours: 0
# --- Tooling Verification ---
ahrefs_account_verified: false
semrush_account_verified: false
similarweb_account_verified: false
serpapi_account_verified: false
openai_api_verified: false
anthropic_api_verified: false
perplexity_api_verified: false
mention_account_verified: false
local_falcon_verified: false # if local applies
The intake is collected over a kickoff call and a written questionnaire. The priority query set frequently expands during the audit as competitors reveal queries the client did not originally consider priorities.
3. Competitor Identification
The competitive set is identified using the four list approach. Each list captures a different competitive lens. The consolidated master list of 5 to 15 competitors combines all four with weighting toward the discovery surfaces the client prioritizes.
3.1 List 1: Client Stated Competitors
The client names competitors during intake. This captures the competitive set the client perceives. Necessary but rarely sufficient. Clients list who they pitch against, who they read coverage of, who sales team mentions. Typically captures 30 to 60 percent of the actual SERP and AI citation competitive set.
Validate each named competitor by verifying they rank in the Top 10 for at least 5 of the priority commercial queries from intake. Competitors that do not appear on any priority SERP are noted as "narrative competitors" rather than "discoverability competitors." Both matter, but only the discoverability set drives surface specific analysis.
3.2 List 2: Organic SERP Competitors via Ahrefs Top Competing Domains
Ahrefs' Top Competing Domains tool surfaces sites with the highest keyword overlap. Semrush's Competitors report is the equivalent. Pull the top 50 competing domains ranked by organic keyword overlap. Filter to remove obviously irrelevant entries: SaaS tools the client uses for unrelated purposes, news sites whose category landing pages happen to overlap, large directory sites with broad keyword footprints.
The filtered list captures the organic discoverability set. Top 5 to 10 typically represent 60 to 80 percent of organic share of voice the client could realistically take. Below position 10, returns decline. Final organic SERP competitor set is 5 to 10 names.
Cross verify with Semrush. Substantial divergence (more than 30 percent non overlapping competitors in the top 10) indicates either a niche where each tool's index has gaps or atypical client keyword distribution. Use the union.
3.3 List 3: AI Surface Competitors via Manual Prompt Testing
The AI surface competitive set is identified by querying the priority informational and commercial queries from intake across the seven major AI engines. For each query and engine, record cited sources. Aggregate to produce the citation frequency table. Sources cited on 3 or more priority queries are AI surface competitors regardless of organic SERP presence.
The AI surface set frequently surprises the client. Common patterns: Reddit threads cited heavily by ChatGPT and Perplexity, Wikipedia articles cited heavily by Gemini, YouTube videos cited heavily by Google AI Mode, industry association pages cited heavily by Perplexity, trade publications cited heavily by Claude. The set is recorded per engine because sets differ substantially. A competitor cited 8 of 10 priority queries in Perplexity may appear on 0 of 10 in AI Overviews.
3.4 List 4: Business Model Competitors via SimilarWeb Same Industry Filter
SimilarWeb's industry classifications surface competitors operating in the same business model and customer segment regardless of keyword overlap. Pull the top 20 same industry sites ranked by estimated traffic. Filter for relevant geographic and customer segment focus.
The business model list captures competitors not surfaced in Lists 1 through 3 because they operate at different scale or different traffic acquisition pattern. Common findings: a competitor running entirely on paid search with no organic footprint, a competitor brand mature with strong direct traffic, a competitor whose traffic is single referral driven.
Less directly actionable than Lists 1 through 3 but informs strategic context. A direct competitor with massive paid spend and no organic presence is the canonical paid to organic flip candidate.
3.5 Consolidating to the Master List
Combine the four lists. Score each candidate on three dimensions: SERP overlap with client priority queries (0 to 10), AI citation frequency across priority query set (0 to 10), strategic relevance (0 to 10, based on business model fit and client stated importance). Rank by sum.
Standard Mode master list is 5 to 10 competitors. Deep Mode is 10 to 15. Beyond 15, analysis quality degrades and the deliverable becomes inventory rather than insight. The master list is locked before Section 4 mapping. New competitors discovered during Sections 4 through 11 are addenda noted in the deliverable and prioritized for quarterly refresh.
3.6 The Top Competitor Heuristic
For each engagement, identify the single competitor who most directly contests the client across the priority surface set. This is the "Top Competitor" and receives the deepest analysis in the deliverable. Determined by combined score in 3.5, with priority surface ranking breaking ties.
Top Competitor analysis drives strategic recommendations. Winning through content velocity, the response is content production capacity. Through link acquisition, digital PR per framework-linkbuilding.md. Through schema and entity authority, schema deployment and Knowledge Graph work per framework-schema.md and framework-knowledgegraph.md.
4. Per Surface Competitor Mapping
The competitive set differs per surface. This section produces the per surface competitive set table that drives the rest of the audit.
4.1 Google Organic Top 10 Mapping
For each priority query, record the Top 10 organic positions. Use SerpAPI for automation, with manual verification of the top 5 on a sample. Set location to the client's primary target market. Incognito mode for manual verification.
Output: table of priority query by domain. Aggregate to produce organic competitive frequency. Domains appearing in 5 or more priority queries are the organic competitive set.
python3 /home/user/clients/[clientname]/competitors/scripts/serp-sweep.py \
--queries queries/priority.txt --location "[target market]" \
--output data/serp-sweep.json
4.2 Google AI Overview Citation Set Mapping
For each priority query, run in Google with AI Overviews enabled. Record whether AIO appears and the cited sources. Manual sampling because no automated tool covers AIO citation extraction comprehensively as of May 2026. SerpAPI captures the AIO box on most queries but citation extraction is incomplete on some query types.
The AIO citation set is frequently 30 to 60 percent different from the organic Top 10 on the same query. Per Ahrefs' February 2026 study, only 13.7 percent of citations overlap between AIO and AI Mode. Overlap between AIO and organic Top 10 is similar.
Aggregate citation frequency across the priority query set. Domains cited on 3 or more queries are the AIO competitive set. Compare against the organic set from 4.1. Divergence is the headline finding. Common patterns: competitors that win the organic Top 10 but never appear in AIO (sites without comprehensive schema or sameAs networks), competitors absent from organic Top 10 that appear consistently in AIO (sources Google KG identifies as authoritative regardless of classic ranking).
4.3 Google AI Mode Citation Set Mapping
Google AI Mode runs in a separate panel surface opened from the AIO citation set or via direct query. AI Mode includes more sources per response than AIO (higher fan out architecture). Per framework-aioverviews.md, AIO and AI Mode share 13.7 percent of domains. Repeat the mapping per priority query. Aggregate. Compare against AIO and organic Top 10.
4.4 Perplexity Citation Set Mapping
Perplexity is queried via default mode with sources displayed. Panel typically displays 4 to 8 sources per response. The Perplexity pattern over weights authoritative top of funnel sources (Wikipedia, industry associations, government data) and Reddit forum content compared to AIO. Perplexity Pro and Spaces produce different sets than default. For Spaces, see framework-perplexityspaces.md.
4.5 SearchGPT and ChatGPT Search Citation Set Mapping
ChatGPT Search and SearchGPT cite sources inline with link badges. Run each priority query in ChatGPT with Search mode. SearchGPT sampled separately if the target audience uses the standalone surface. Per the Profound August 2024 to June 2025 analysis, ChatGPT cites Reddit at substantially higher rates than Perplexity or AIO. ChatGPT also cites freshness sensitive sources (news, recent blog posts) more than Claude. Record cited sources and source typology (corporate, forum, news, Wikipedia, video, other).
4.6 Gemini Citation Set Mapping
Gemini cites sources inline. The set is heavily influenced by Google's Knowledge Graph and overlaps substantially with AIO. The Gemini set frequently includes the same Wikipedia and industry association sources as Perplexity but with corporate sites underrepresented compared to Perplexity.
4.7 Claude Web Search Citation Set Mapping
Claude's web search cites inline. Pattern leans on training data through January 2025 plus selective web fetches. Claude over cites long form editorial, academic and research sources, and authoritative industry publications. Claude under cites Reddit and forum content compared to ChatGPT and Perplexity.
4.8 Microsoft Copilot Citation Set Mapping
Microsoft Copilot is built on Bing's index plus a GPT class model. Copilot citations frequently include Bing organic Top 10 plus selective enrichment. Copilot under cites Reddit compared to ChatGPT despite both being GPT class, because of the Bing index foundation.
4.9 Bing Organic Top 10 Mapping
Bing's organic Top 10 frequently differs from Google's by 30 to 50 percent for the same query. Bing rewards different signals (older sites with consistent maintenance, strong Bing Webmaster Tools verification, comprehensive structured data). Bing organic Top 10 is the foundation for Copilot citation. A site dominant in Google but invisible in Bing is structurally disadvantaged on the Microsoft AI surface.
4.10 Local Pack Mapping (if applicable)
For local clients, map the local pack competitor set per priority local query. Local Falcon's 7x7 grid with 0.5 to 2 mile spacing. Record local pack positions 1 through 3 per grid point. The local competitive set is the union of all domains appearing in local pack positions 1 through 3 across the grid.
4.11 The Per Surface Competitor Matrix Output
The output of Section 4 is a single matrix with surfaces as columns and competitors as rows. Each cell records the competitor's frequency on that surface across the priority query set. The matrix surfaces three patterns: surface dominators (competitors strong across many surfaces), surface specialists (competitors strong on one or two surfaces), asymmetric gaps (surfaces where the client trails specific competitors).
The matrix is the load bearing artifact of the deliverable. Every subsequent section references it.
5. Organic Visibility Snapshot
For each competitor on the master list, capture the organic visibility snapshot. The snapshot is the headline competitive position summary.
5.1 Referring Domain Count
Refdomains is the headline authority metric. A single domain with 100 links counts once. Pull from Ahrefs Site Explorer. Cross verify against Semrush Backlink Analytics. Divergence above 25 percent indicates niche index gaps or active link campaign noise; use the larger count and note divergence. Pull all competitor exports within a 48 hour window for comparison parity.
5.2 Organic Keyword Count
Total organic keywords from Ahrefs Organic Keywords or Semrush Organic Research. Supplemental: Top 3, Top 10, Top 100 distribution. A competitor with 50,000 total but 200 Top 10 operates at low average position. A competitor with 20,000 total but 5,000 Top 10 operates at high average position. The ratio matters more than the headline.
5.3 Estimated Organic Traffic
Ahrefs and Semrush both produce estimated organic traffic numbers with different methodologies. Capture both and report the range, not the point estimate. SimilarWeb estimates total traffic broken down by channel. The SimilarWeb organic estimate frequently diverges. Triangulate: if all three roughly agree, the estimate is reliable. If one is wildly different, investigate before relying.
5.4 Branded vs Non Branded Traffic Split
Branded traffic is queries containing the brand name. Tool estimates are reasonable for distinctive brands and degrade for generic brands (Smith Plumbing, Acme Marketing). A competitor with 70 percent branded traffic has built awareness through channels beyond SEO. A competitor at 90 percent non branded is SEO dependent and vulnerable to algorithm shifts. Branded share is a competitive resilience indicator.
5.5 Organic Position Distribution
Distribution by position bucket: Top 3, 4 to 10, 11 to 20, 21 to 50, 51 to 100. Broad shallow (large Top 100, small Top 3) is low engagement. Narrow deep (small Top 100, dominant Top 3) is high engagement per ranking keyword. Against broad shallow, the response is content quality lift to push topics into Top 10. Against narrow deep, the response is content breadth in adjacent topical clusters.
5.6 Ahrefs and Semrush Data Parity Check
Capture both Ahrefs and Semrush estimates per metric. Divergence above 30 percent on the same metric is a finding. Deliverable notes divergence and methodology used.
5.7 Organic Visibility Output
Deliverable section: comparative table with client and competitors on one axis and metrics on the other. Headline summary: which competitor leads per metric and where the client ranks within the set.
6. Content Portfolio Analysis
The content portfolio analysis benchmarks each competitor's content strategy. Content strategy determines long term competitive position more than any other dimension.
6.1 URL Count and Indexable Page Count
URL count is the size of the indexable site. Pull from Ahrefs Total Pages and verify with site: operator sampling. A competitor with 200 pages is fundamentally different from 20,000 pages. Page count drives per page content quality bar: sites with few pages must achieve higher per page quality.
6.2 Average Content Length
Sample 30 pages stratified across competitor content templates. Capture word count. Compute mean and median. A 3,000 word average competes on depth. A 600 word average competes on breadth.
Length is not a ranking signal in isolation but frames per page topical depth. A competitor with 800 word posts where the client publishes 2,500 has lower per page authority on that topic. The competitive response depends on direction of the gap.
6.3 Content Velocity per Quarter
Velocity is the rate of new content publication. Sample competitor publish dates from the past 4 quarters and aggregate. A competitor at 30 pieces per quarter invests 4x to 10x the production capacity of one at 3 pieces.
Cross verify against Ahrefs Pages by First Seen. First seen count per month approximates new content publication. A competitor that has accelerated velocity (3 to 30 per quarter) within the last 12 months is making a deliberate competitive investment. Flag as strategic threat.
6.4 Content Depth Scoring
For 5 sampled competitor pages per priority topical cluster, score on the 12 signal HCS subset from framework-initialaudit.md Section 6.2 and the 12 dimension E-E-A-T subset from Section 6.3. Aggregate to per competitor depth score on 0 to 100. A competitor at depth 85 publishing 2,500 word averages at 30 pieces per quarter is a top tier content competitor. A competitor at depth 45 publishing 700 word averages at 5 pieces per quarter is low tier regardless of keyword count.
6.5 Multimedia Density
Count of images, video embeds, audio embeds, interactive elements, downloadable resources per page across the 30 page sample. A competitor with 4 images, 1 video, 2 interactive elements per page is investing in multimedia. A competitor at 1 image and no video is text only.
Multimedia density correlates with engagement, time on page, visual snippet eligibility, and AI surface citation (particularly Google AI Mode which favors video first synthesis on procedural queries).
6.6 Schema Coverage
Detailed in Section 8. Headline here: percentage of competitor pages with valid JSON LD per template. A competitor at 100 percent Article schema coverage vs a client at 40 percent is structurally advantaged in AIO citation.
6.7 Topic Cluster Maturity
For each priority cluster from intake, score competitor coverage: stub (1 to 3 pages), foundational (4 to 10 pages with interlinking), comprehensive (11 to 30 pages with hub and spoke), authoritative (30 plus pages with sub clusters). A client at foundational against a competitor at authoritative on the same cluster faces 12 to 24 months of content investment to catch up.
6.8 Refresh Cadence
Sample 20 competitor pages and pull visible publish and last modified dates. Compute average age and average days since last modification. A competitor refreshing every 6 months invests in freshness. A 24 month average since modification is content staleness risk per framework-contentaudit.md.
6.9 Content Portfolio Output
Deliverable content portfolio section: URL count, average length, velocity per quarter with 4 quarter trend line, depth score, multimedia density, schema coverage, cluster maturity per priority cluster, refresh cadence. Headline: which competitor invests most heavily in content production and which competes through velocity vs depth.
7. Backlink Profile Comparison
The backlink profile comparison is the historical authority graph competitive analysis. It surfaces where the client trails on link acquisition, who shares link sources with competitors, and which competitor link sources are realistic acquisition targets.
7.1 Referring Domain Count vs Client
Compare client refdomain count to each competitor. The gap is the headline. A client at 80 against a competitor at 800 has a one order of magnitude authority gap. Closing takes 24 to 60 months of sustained acquisition per framework-linkbuilding.md.
7.2 DR Distribution Histogram
Pull DR distribution from Ahrefs for each competitor. Bucket as in framework-initialaudit.md Section 8.2: 0 to 19, 20 to 39, 40 to 59, 60 to 79, 80 plus.
Distribution shape surfaces acquisition pattern. A balanced normal curve indicates diverse natural portfolio. High low DR mass with thin high DR tail indicates transactional or PBN acquisition and penalty risk. Thin low DR mass with heavy high DR tail indicates editorial PR earned profile.
7.3 Anchor Text Profile
Anchor distribution per competitor: branded, naked URL, generic, topical exact match, long tail descriptive, image alt. Healthy is 35 to 50 percent branded. Exact match topical anchor above 25 percent is a manual action signal. The deliverable notes this and the client's competitive opportunity (competitor is one algorithm update away from losing significant ranking).
7.4 Link Velocity
Monthly refdomain acquisition rate for each competitor over the past 24 months. Steady linear growth at 5 to 30 per month is healthy. Sudden spikes (300 in one month) followed by drought are paid campaign signatures. Sustained acceleration (10 to 80 per month) is aggressive PR or content investment requiring competitive response.
7.5 Top Linking Pages per Competitor
Sort competitor pages by refdomains pointing to that page. The top linking pages reveal what content has earned authority. Common patterns: a single ultimate guide carrying 30 percent of refdomains, a viral comparison piece, a free tool or calculator, a press release that hit several wire services.
For each competitor, identify top 5 linking pages and the content type or campaign that drove the links. Cross reference framework-linkbuilding.md. The client's link earning backlog includes "build a peer asset" entries for patterns competitors have exploited.
7.6 Recently Gained and Recently Lost Links per Competitor
Ahrefs New Backlinks for the past 90 days reveals current acquisition. Lost Backlinks reveals attrition. Compute net delta per competitor. A competitor gaining 100 net per quarter is a strategic threat. A competitor losing 50 net per quarter is in decline (monitor cause; if regulatory or product driven, the client's exposure may be similar).
7.7 Link Intersect Analysis
Ahrefs Link Intersect identifies sites linking to 2 or more competitors but not the client. Highest probability outreach targets: sites already endorsing the space.
Run with the client in the negative column and top 5 competitors in the positive columns. Filter to remove low DR or irrelevant domains. The filtered list is the priority backlink acquisition backlog. Feeds framework-linkbuilding.md. Typical output: 50 to 200 high probability targets.
7.8 Toxic Link Presence per Competitor
Toxic link signals per Section 8.4 of framework-initialaudit.md. A competitor with above 15 percent toxic refdomain profile is at penalty risk. The client's competitive position improves opportunistically if the competitor takes a manual action.
7.9 Backlink Profile Output
Deliverable backlink section: comparative refdomain count, DR histograms side by side, anchor profile, link velocity trend, top linking pages with linkable asset typology, recently gained and lost, link intersect backlog count, toxic risk flag per competitor.
8. Schema and Entity Comparison
The schema and entity comparison surfaces the structural infrastructure gap. Sites with comprehensive schema are systematically advantaged in AIO citation. Sites without are systematically excluded.
8.1 Schema Type Coverage Matrix
Pull schema type coverage via Screaming Frog crawl. Aggregate JSON LD @type values per page template. Output: matrix with competitors as rows, schema types as columns.
Expected core types: Organization, WebSite, WebPage, Person. Expected content type schemas vary: Article or BlogPosting, Product or Service, LocalBusiness for local, FAQPage and HowTo where applicable, BreadcrumbList, Review and AggregateRating. The matrix surfaces gaps. A competitor at 100 percent FAQPage on procedural content vs a client at 0 percent has structural advantage in AIO procedural query citation.
8.2 Wikidata Claim Status per Competitor
Wikidata is the lower bar entry to the Knowledge Graph. Search per competitor.
for c in $(cat master-list.txt); do
curl -A "Mozilla/5.0" -s "https://www.wikidata.org/w/api.php?action=wbsearchentities&search=${c}&language=en&format=json" > data/wikidata-${c}.json
done
A competitor with a QID has a Knowledge Graph anchor the client may lack. Deliverable flags as entity authority gap and references framework-knowledgegraph.md.
8.3 Knowledge Panel Presence per Google KG API
Query Google Knowledge Graph Search API for each competitor brand name. Non zero results indicate Knowledge Panel eligibility or active panel.
for c in $(cat master-list.txt); do
curl -A "Mozilla/5.0" -s "https://kgsearch.googleapis.com/v1/entities:search?query=${c}&key=[api-key]&limit=10" > data/kg-${c}.json
done
A competitor with active panel has reached the highest tier of entity reconciliation. The client's path to peer status is the digital PR plus sameAs plus Wikidata sequence in framework-knowledgegraph.md.
8.4 sameAs Network Completeness per Competitor
Pull competitor Organization schema sameAs from the rendered home page. Count references and verify each link resolves. A competitor with 8 to 12 sameAs references has comprehensive entity reconciliation. 2 to 4 is baseline. 0 has no external entity reconciliation and is structurally disadvantaged in AIO.
8.5 Speakable Specification Adoption
Speakable schema marks content for text to speech by voice assistants. Adoption is low but rising. Check rendered HTML for Speakable in the JSON LD per competitor. Competitors with Speakable compete for voice surface citation that text only competitors do not.
8.6 Schema and Entity Output
Deliverable schema section: type coverage matrix, Wikidata QID status, Knowledge Panel status, sameAs completeness, Speakable adoption flags. Headline: competitor with strongest structural infrastructure and the client's gap.
9. AI Surface Citation Analysis
The AI surface citation analysis quantifies the citation share of voice per surface and identifies AI lock out queries where the client never gets cited.
9.1 Citation Share of Voice Methodology
For each of the seven AI surfaces (AIO, AI Mode, ChatGPT, Perplexity, Gemini, Claude, Copilot) and each priority query, record the citation set per Section 4. Aggregate across the priority query set.
For each competitor (including the client), compute citation share of voice per surface:
Citation SOV per surface = (queries on which competitor is cited / total priority queries) * 100
The result is a matrix with surfaces as columns, competitors as rows. Each cell is a percentage. A row at 0 percent across all surfaces is "AI lock out" (invisible across the AI surface set). A row at 80 percent on Perplexity and 0 on AIO is a "single surface specialist." A row at 40 to 60 percent across all surfaces is a "balanced AI competitor."
The client's row is the audit's headline metric. A client at 0 percent across all surfaces is in deep AI lock out. A client at 20 to 30 percent on some and 0 on others has surface specific gaps to close.
9.2 Automated Prompt Testing via API
For repeatable measurement and quarterly delta tracking, automate prompt testing via API where available. OpenAI's API submits ChatGPT queries with web search enabled. Anthropic's API submits Claude queries with web search via the Claude tool use surface. Perplexity has a public API. Gemini's API supports web search via grounding. Google AIO is not currently API accessible at scale; manual sampling is required.
# /home/user/clients/[clientname]/competitors/scripts/ai-citation-sweep.py
import os, requests
from anthropic import Anthropic
from openai import OpenAI
queries = open('queries/priority.txt').read().split('\n')
results = {'chatgpt': {}, 'claude': {}, 'perplexity': {}, 'gemini': {}}
for q in queries:
r = OpenAI().chat.completions.create(model="gpt-4o-search-preview",
messages=[{"role": "user", "content": q}])
results['chatgpt'][q] = extract_citations(r)
r = Anthropic().messages.create(model="claude-opus-4-7", max_tokens=2048,
tools=[{"type": "web_search_20250305", "name": "web_search"}],
messages=[{"role": "user", "content": q}])
results['claude'][q] = extract_citations(r)
r = requests.post("https://api.perplexity.ai/chat/completions",
headers={"Authorization": f"Bearer {os.environ['PERPLEXITY_API_KEY']}"},
json={"model": "sonar-large", "messages": [{"role": "user", "content": q}]})
results['perplexity'][q] = r.json().get('citations', [])
r = requests.post(f"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.0-pro:generateContent?key={os.environ['GEMINI_API_KEY']}",
json={"contents": [{"parts": [{"text": q}]}], "tools": [{"google_search": {}}]})
results['gemini'][q] = extract_gemini_grounding(r.json())
API based sampling reduces manual labor per quarterly refresh from 16 to 24 hours to 2 to 4 hours. Manual sampling remains required for AIO, AI Mode, Copilot consumer surface, and Meta AI which have no public API as of May 2026.
9.3 AI Lock Out Query Identification
A query on which the client is cited by zero AI surfaces is an "AI lock out" query. For most engagements, the lock out set is 60 to 90 percent of priority queries at initial audit. The lock out set is the AI surface opportunity backlog.
For each lock out query, capture which competitors are cited. The competitor citation pattern reveals surface specific success criteria. If lock out query A shows competitor C cited on AIO, Perplexity, and ChatGPT, the path is to peer competitor C on the structural signals C has implemented (FAQPage schema, comprehensive Article schema, byline with reviewer credit, sameAs network).
9.4 Citation Drift Tracking
Quarterly re measure the citation SOV matrix. Compute delta per cell. Cell deltas above 10 percentage points are flagged for investigation. Positive deltas validate that work is producing measurable lift. Negative deltas surface either competitive displacement or algorithm shifts.
9.5 Citation Concentration Analysis
For each AI surface, compute concentration of the citation set among top sources. Per BrightEdge's weekly AI search insights across 2025 to 2026, citation share concentration in the top 10 most cited domains varies by engine: 18.5 percent for ChatGPT to 26.7 percent for Perplexity. A surface where the top 10 dominate 25 percent is harder to break into than one where they hold 15 percent.
Capture the client's competitive surface concentration. If Perplexity citation in the client's industry is dominated by 3 Wikipedia articles and 2 industry association pages, the path to citation is harder than in an industry where citation is distributed across 30 plus corporate sites.
9.6 AI Surface Citation Output
Deliverable AI surface section: citation SOV matrix, AI lock out query list with competitor breakdown, citation drift baseline (zero at initial; populated quarterly), citation concentration per surface, per surface remediation priority. Cross references framework-aicitations.md, framework-aioverviews.md, framework-searchgpt.md, framework-perplexityspaces.md, framework-multiengine-tradeoffs.md for per surface page pattern remediation.
10. Brand Mention Analysis
Beyond linked citations, AI engines and other content surfaces mention brands without linking. Brand mention volume independent of links is the entity recognition signal that drives the Knowledge Graph and the AI citation pattern.
10.1 Brand Mention Volume via Mention or Brand24
Mention and Brand24 monitor the open web for unstructured brand references. Configure tracking for each competitor and the client. Pull 90 days of volume.
Headline metric per competitor: mentions per month. A competitor at 5,000 per month operates at substantially different brand awareness scale than one at 50. Mention volume correlates with branded search traffic, which correlates with AI citation propensity.
10.2 Sentiment Distribution
Both tools classify by sentiment (positive, neutral, negative). A competitor above 25 percent negative sentiment has reputation drag the client can exploit. A competitor at 95 percent positive has a brand moat to respect.
10.3 Share of Voice Across Social
Sprout Social, Brandwatch, or equivalent track social mentions. Pull SOV across top 4 to 5 platforms relevant to the industry (LinkedIn for B2B, Instagram and Facebook for B2C local, X for trending news, TikTok for awareness driven consumer). Social SOV correlates with AI citation indirectly: engines train on social discussions and ChatGPT cites Reddit threads heavily. Substantial social SOV is a multiplier on AI citation.
10.4 Regulatory Mention Monitoring
For regulated industries (financial services, healthcare, legal, government contracting), monitor regulatory mentions per competitor across SEC EDGAR, FDA databases, state bar disciplinary records, federal contract award databases. A competitor with active enforcement is at acute reputational risk. The client's response is to be impeccable on regulatory dimensions while the competitor manages crisis.
10.5 Unlinked Brand Mention Reclamation Opportunity
Mentions of competitor brands in editorial content without links are "unlinked mentions." The competitor's outreach opportunity is to convert each to a link. The client's reverse: identify unlinked client mentions and convert them. Pattern also reveals competitive editorial relationships. If Industry Publication X cites Competitor A in 12 articles per year without linking, Competitor A has a reach asset the client can pursue (pitch the same publication for similar coverage).
10.6 Brand Mention Output
Deliverable brand mention section: monthly mention volume per competitor and client, sentiment distribution, social SOV per platform, regulatory mention summary, unlinked mention reclamation count. Headline: brand awareness gap relative to top competitors and entity recognition implications for AI surface citation.
11. Local Visibility Comparison (if applicable)
For local clients, the local visibility comparison surfaces local pack ranking position, GBP completeness, review profile, NAP consistency, and local content velocity per competitor.
11.1 Local Pack Ranking Grid via Local Falcon
Local Falcon's grid ranking tool surfaces position at each grid point across the service area. Run the grid for each priority local query per competitor. Output: per competitor heatmap showing position 1, 2, 3, or below 3 at each grid point.
Aggregate "grid coverage" per competitor: percentage of grid points where the competitor ranks in local pack (positions 1 through 3). A competitor at 85 percent grid coverage dominates the pack. At 40 percent has competitive holes.
11.2 GBP Completeness per Competitor
Pull GBP data per competitor via API or manual inspection. Score completeness as in framework-initialaudit.md Section 12.1: business name, categories, address, service area, phone, website, hours, photos, attributes, Q and A, service catalog. A competitor at 95 percent has invested in the local foundational layer. At 60 percent has competitive opportunity for the client.
11.3 Review Volume and Rating per Competitor
Pull review counts and rating from GBP, Yelp, Facebook, and industry specific platforms. Headline: total reviews, average rating, velocity (reviews per month over 12 months). A competitor with 800 reviews at 4.8 stars and 15 new per month is a review profile leader. At 50 reviews and 4.2 stars with 1 new per month is a laggard.
11.4 NAP Consistency Across Citations
Sample the top 50 citation sources per competitor as in framework-initialaudit.md Section 12.2. Score NAP consistency. A competitor at 95 percent consistent has strong local trust. At 60 percent has confused signals and the client's opportunity is to be impeccable on consistency.
11.5 Local Content Velocity per Competitor
For local clients, content velocity on local pages (city, neighborhood, location specific) matters more than general blog velocity. A competitor publishing 5 new city pages per quarter invests in local content scale. A competitor with 0 new local content in 12 months is at local staleness risk.
11.6 Local Visibility Output
Deliverable local section: per competitor grid coverage, GBP completeness, review profile, NAP consistency, local content velocity, per competitor local heatmap. Cross reference framework-localseo.md for local remediation page patterns.
12. Competitive Gap Output
The competitive gap output is the deliverable's load bearing artifact. It synthesizes Sections 4 through 11 into the 4 quadrant gap matrix and the prioritized opportunity backlog.
12.1 The 4 Quadrant Gap Matrix
Two axes: client performance (high or low) by competitor performance (high or low). The four quadrants:
Client Wins (client high, competitors low). Defensible territory. The strategic move is protection: ongoing content investment, link defense, schema maintenance. Common patterns: niche topics the competitor set under invests in, geographic markets with local advantage, customer segments where the client has product fit.
Client Losses (client low, competitors high). Priority opportunity gaps. The strategic move depends on the dimension. Content gaps drive content production. Link gaps drive digital PR. Schema gaps drive structural deployment. AI citation gaps drive the multi engine work in framework-multiengine-tradeoffs.md Section 13.
Shared Wins (both high). Competitive top tier. The strategic move is incremental refinement: better content, faster freshness, stronger schema, more comprehensive coverage. Returns per unit of effort are lower than Client Losses but absolute traffic stakes are highest.
Shared Losses (both low). Blue ocean opportunities. The strategic question is why the space is uncontested. Often low intent or low conversion potential. Sometimes nobody has tried. The Information Gain frameworks in framework-contentaudit.md help distinguish.
12.2 Per Gap Prioritization
Each gap in Client Losses and Shared Losses is scored on four dimensions.
Traffic opportunity. Estimated monthly organic sessions plus AI surface citation impressions if the gap closes. From Ahrefs Keywords Explorer and the citation SOV matrix.
Conversion opportunity. Estimated monthly revenue or pipeline impact based on client conversion rate and average deal size from intake. A gap with 1,000 monthly sessions at 0.5 percent conversion and 50,000 USD average deal is 250,000 USD pipeline. A gap with 10,000 sessions at 0.05 percent and 50 USD product is 250 USD revenue. Both score 250 nominally but strategic weight diverges.
Effort estimate. Hours required to close. Content gaps by required content count and depth. Link gaps by outreach hours per linkable asset. Schema gaps by deployment hours. AI surface gaps by page pattern hours from framework-aioverviews.md.
Strategic alignment. 0 to 10 score for fit with the client's stated strategic direction. A gap on a topic the client cannot deliver against is low alignment regardless of traffic.
Composite score: (traffic + conversion) / effort * alignment. Rank gaps by score. Top 10 are Phase 1. Next 20 are Phase 2 backlog. Beyond 30, the gap enters the long term opportunity register.
12.3 Strategic Synthesis
The gap matrix and prioritized backlog drive the strategic synthesis paragraph: three to five sentences capturing competitive positioning, top three strategic moves, and realistic SOV target across priority surfaces.
Common output: "Against the master set of 8 domains, the client trails the leader on referring domains (80 vs 1,200), schema coverage (40 percent vs 95 percent), and AI surface SOV (12 percent vs 58 percent). The 90 day priorities are FAQPage and Article schema deployment across 200 priority pages (closes 30 percent of AIO gap), digital PR outreach against the Section 7.7 link intersect backlog (closes 15 percent of refdomain gap over 24 months), and a 30 page content sprint against Section 4 lock out queries (closes 25 percent of Perplexity and ChatGPT gap)."
12.4 Gap Matrix Visualization and Output
The 4 quadrant matrix renders as a 2x2 grid with bullet entries per quadrant. Prioritized backlog is a separate table. Synthesis paragraph references both. Deliverable section: 4 quadrant matrix, backlog table, synthesis paragraph, realistic SOV targets at 90, 180, and 365 days per priority surface. Targets feed framework-initialaudit.md Section 13.7 KPI and Success Metrics when this audit is part of a broader initial audit.
13. Audit Cadence
The competitor audit is a recurring discipline. The initial audit establishes the baseline. The recurring cadence catches new competitors, citation drift, and major competitive moves before they consolidate.
13.1 Annual Deep Competitor Audit per Client
The annual deep audit re runs every section against current state. 24 to 60 hours per client. Deliverable: refreshed 16 to 24 page document with delta highlights against prior year baseline. The annual cadence aligns with the strategic planning cycle. Run 6 to 8 weeks before the client's annual planning conversation. The deliverable feeds the strategic conversation.
13.2 Quarterly Delta Tracking
The quarterly refresh re measures surface specific competitive sets and the citation SOV matrix. 8 to 16 hours. Output: 4 to 8 page delta report vs prior quarter and annual baseline. Surfaces three patterns: emerging competitors (new entrants to priority surface citation set), declining competitors (losing share or rankings), citation drift (changes in surface specific success criteria).
13.3 Monthly AI Surface Citation Tracking
The monthly AI sweep re runs the priority query citation sweep across the seven AI engines from Section 4 and updates the SOV matrix. 4 to 8 hours. Monthly is necessary because AI citation patterns change faster than classic SEO. A competitor that launched aggressive content investment 60 days ago may already reshape the matrix. The monthly sweep catches this before the quarterly refresh.
13.4 Alert System for Competitor Major Content Publish or Major Link Gain
Configure alerts via Ahrefs Alerts, Mention, and RSS monitoring: new page with substantial refdomain acquisition (Ahrefs Alerts), new page on priority topical cluster (competitor blog RSS), brand mention spike above 30 percent over rolling baseline, major news mention in tier 1 publication, sudden ranking shift on priority queries (Semrush Position Tracking).
Alerts trigger interrupt response: investigate, assess strategic implications, decide whether to respond now or queue for quarterly refresh.
13.5 Audit Cadence Output
Each cadence produces a versioned artifact at /home/user/clients/[clientname]/competitors/[year]/[cadence]-[date].md. Artifacts accumulate as chain of custody for the engagement's competitive intelligence history. Quarterly references prior quarter and annual baseline. Monthly AI sweep references prior month.
13.6 The Cadence Tradeoff
Annual only misses fast moving competitive shifts. Monthly consumes billable hours that may not produce proportional client value. Recommended cadence depends on industry velocity and engagement tier. Tier 1 receive annual only. Tier 2 annual plus quarterly. Tier 3 annual plus quarterly plus monthly AI sweep. Documented in engagement scope and reviewed at annual audit.
14. Bubbles Hosted Competitive Intelligence Toolchain
The competitive intelligence toolchain runs on the Bubbles self hosted server at IP 169.155.162.118. Intentionally self hosted with no third party CDN or proxy in the path. Competitive intelligence data is sensitive client information including positioning, gap analysis, and strategic recommendations. The infrastructure mirrors the principle of client trust the engagement is built on.
14.1 Bubbles Server Profile
Debian amd64, 16 GB RAM. LAN 192.168.1.132 / 192.168.1.173. Tailscale 100.90.97.104. Public 169.155.162.118. SSH from M2 via Tailscale (ssh user@bubbles). Python 3.13. PostgreSQL 15 at 127.0.0.1:5432.
Nginx hosting under /var/www/. Competitor working files under /home/user/clients/[clientname]/competitors/:
/home/user/clients/[clientname]/competitors/
intake.yaml master-list.txt
queries/ priority.txt commercial.txt informational.txt local.txt
data/ ahrefs/ semrush/ similarweb/ serp-sweep.json
ai-citations.json wikidata/ kg/ mention/ local-falcon/
scripts/ serp-sweep.py ai-citation-sweep.py backlink-intersect.py
schema-coverage.py brand-mention-aggregate.py
reports/ initial-audit.md initial-audit.pdf
2026-Q1-refresh.md 2026-04-monthly-ai-sweep.md
14.2 Ahrefs plus Semrush plus SimilarWeb API Ingestion to Postgres
API integrations populate PostgreSQL tables for cross competitor analysis. Per competitor, daily polling captures referring domains, organic keywords, traffic estimate, new backlinks.
# scripts/api-ingest.py
import psycopg2, requests, os
from datetime import datetime
conn = psycopg2.connect("dbname=competitive user=user")
cur = conn.cursor()
for c in open('master-list.txt').read().split('\n'):
a = requests.get("https://api.ahrefs.com/v3/site-explorer/overview",
headers={"Authorization": f"Bearer {os.environ['AHREFS_API_KEY']}"},
params={"target": c, "mode": "domain"}).json()
s = parse_semrush_csv(requests.get("https://api.semrush.com/analytics/v1/",
params={"key": os.environ['SEMRUSH_API_KEY'], "type": "domain_ranks",
"domain": c, "database": "us"}).text)
w = requests.get(f"https://api.similarweb.com/v1/website/{c}/total-traffic-and-engagement/visits",
params={"api_key": os.environ['SIMILARWEB_API_KEY']}).json()
cur.execute("INSERT INTO competitor_daily VALUES (%s, %s, %s, %s, %s, %s, %s)",
(c, datetime.now(), a['domain_rating'], a['refdomains'],
a['organic_keywords'], s['traffic'], w['visits']))
conn.commit()
Daily ingestion produces trend data for quarterly delta tracking and the monthly AI sweep. Schemas versioned in /home/user/clients/[clientname]/competitors/db/schema.sql.
14.3 AI Prompt Testing via OpenAI plus Anthropic plus Perplexity APIs
The Section 9.2 automated sweep runs daily for the priority query set. Results land in the ai_citation_daily table. Monthly cadence computes the SOV matrix delta vs prior month.
API sampling does not cover AIO, AI Mode, Copilot consumer surface, or Meta AI which lack public APIs. Manual sampling for these runs weekly with results entered via CSV import at scripts/manual-citation-import.py.
14.4 Mention and Brand24 Webhook Ingestion
Mention and Brand24 support webhook delivery of new mention events. Configure both to webhook to https://competitive.bubbles.local/webhook/[service] (internal only via Tailscale and LAN). Receiver runs at scripts/mention-webhook.py under systemd. Events insert into the brand_mention PostgreSQL table. Monthly aggregations produce the brand mention output for the deliverable.
14.5 Visualization via Metabase or Grafana
Metabase at https://competitive.bubbles.local/metabase (internal only) provides dashboards: per client landscape, quarterly delta tracking, AI surface citation SOV matrix with monthly delta, backlink intersect backlog, brand mention sentiment trend.
Grafana at https://competitive.bubbles.local/grafana (internal only) covers operational dashboards: ingestion pipeline health, API rate limit consumption, webhook delivery status, scheduled job log.
Both dashboards internal only via nginx upstream proxy with htpasswd basic auth on top of Tailscale and LAN restriction.
14.6 Deliverable Production via Pandoc
The deliverable is produced in Markdown and rendered to PDF via Pandoc per the framework-initialaudit.md Section 14.5 pattern. Template at /home/user/clients/competitor-audit-template.tex defines cover page, headers and footers, and section styles. Branded with TDG colors and SDVOSB designation.
14.7 Audit State Storage and Archive
Audit state in PostgreSQL with daily backup. Per client deliverables under /home/user/clients/[clientname]/competitors/reports/. Quarterly and annual deliverables archive to Bubbles external 4.5 TB at /mnt/storage/clients/[clientname]/competitors/. SMR storage is slow for random writes but well suited for archive. Reference project_bubbles_external_storage.md.
14.8 No Third Party CDN or Proxy Recommendations
The Bubbles toolchain operates without any third party CDN or proxy in the path. Data does not transit external infrastructure beyond necessary API calls. The data is strategic; routing dashboards through external infrastructure exposes data to additional parties. The Bubbles direct connection model is the architectural choice. API providers are the canonical source; aggregation, analysis, visualization layers are self hosted.
14.9 Toolchain Maintenance Cadence
Weekly: nginx access log rotation, PostgreSQL vacuum and analyze, webhook delivery audit.
Monthly: Python script updates against new framework versions, Metabase and Grafana updates, API rate limit review, Pandoc template review.
Quarterly: full toolchain test pass, cross reference validation, archive review, PostgreSQL schema review.
Annually: framework library review, script regression test, PostgreSQL migration if major versions warrant, pipeline integration test.
14.10 Cost Profile
Dominant cost is API subscriptions (Ahrefs, Semrush, SimilarWeb, SerpAPI, OpenAI, Anthropic, Perplexity, Gemini, Mention, Brand24, Local Falcon). Infrastructure cost is negligible: Bubbles is owned hardware on residential internet, no third-party CDN or proxy spend.
Per client incremental cost is API rate limit consumption. At standard cadence (annual deep, quarterly refresh, monthly AI sweep), API consumption is well within typical subscription tier limits. For a portfolio of 10 to 20 clients, rate limit windows force batching but no tier upgrades. The structural advantage of self hosting: a single subscription tier per API provider supports the full portfolio rather than scaling per client as SaaS competitive intelligence tools do.
End of Framework Document
Document version: 3.0
Last updated: 2026-05-14
Maintained by: ThatDeveloperGuy
The competitor audit framework specifies systematic competitive intelligence across the discoverability surfaces that matter in 2026. The four list approach captures the surface specific competitive sets single source lists miss. The per surface mapping in Section 4 produces the matrix that drives every subsequent analysis. The 4 quadrant gap matrix in Section 12 synthesizes the audit into the strategic deliverable. The Bubbles hosted toolchain in Section 14 supports the cadence at marginal cost without third party CDN or proxy dependencies.
Apply at engagement onset and refresh at the cadence in Section 13. The output drives strategic positioning and surface specific work performed across the framework library.
Companions
- framework-initialaudit.md, initial audit including competitive snapshot
- framework-ongoingaudit.md, recurring audit cadence
- framework-contentaudit.md, deep content audit and benchmarking
- framework-aicitations.md, AI citation across seven engines
- framework-aioverviews.md, AIO and AI Mode citation patterns
- framework-searchgpt.md, ChatGPT Search and SearchGPT
- framework-perplexityspaces.md, Perplexity and Spaces
- framework-multiengine-tradeoffs.md, cross engine decision matrix
- framework-linkbuilding.md, backlink gap exploitation
- framework-schema.md, schema and structured data
- framework-knowledgegraph.md, Knowledge Graph and Wikidata
- framework-brandvoice.md, brand voice and entity authority
- framework-localseo.md, local SEO and local pack analysis
- 14 tier Engine Optimization Stack
From the ThatDevPro Engine Optimization framework library. Studio: ThatDevPro (SDVOSB veteran-owned web + AI engineering). Sister property: ThatDeveloperGuy. Source: https://www.thatdevpro.com/insights/framework-competitoraudit/.
Top comments (0)