Programmatic SEO Opportunity Mapper avatar

Programmatic SEO Opportunity Mapper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Programmatic SEO Opportunity Mapper

Programmatic SEO Opportunity Mapper

Turn competitor sitemaps into a scored, prioritized programmatic-SEO opportunity matrix — deterministic title/meta/slug suggestions, schema type, and optional AI-citability scoring. No API key required.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Monty

Monty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Turn competitor sitemaps into a scored, prioritized programmatic-SEO opportunity matrix — with deterministic title, meta description, slug, schema type, and optional AI-citability scoring. No API key required.

What it does

  1. Crawls your target domain's sitemap to build your current coverage set.
  2. Crawls each competitor's sitemap, filters obvious ecommerce product/SKU URLs by default, and clusters their SEO/editorial page families using Jaccard similarity (same engine as the Competitor Sitemap Content Gap Analyzer).
  3. Computes the coverage gap: competitor families you don't yet cover.
  4. Scores and ranks each opportunity with a deterministic heuristic score (priority_heuristic) and action (auto / review / skip).
  5. Generates a starter title, meta description, URL slug, and Schema.org type for each opportunity — deterministically, no LLM.
  6. Optionally fetches the top competitor URL for each row and attaches an AI-citability score (0–100) and grade (A–D) using the same adapter as the GEO Readiness Auditor.

Use after apify/google-search-scraper

Wave-2 MVP: sitemap-only. SERP enrichment (real volume / difficulty / competitor URLs from apify/google-search-scraper) back-fills in Wave 3.

Inputs

FieldTypeDefaultNotes
targetDomainstringRequired. Your domain.
competitorDomainsarrayRequired. 1–10 competitor domains.
maxRowsinteger500Hard cap on output rows.
maxUrlsPerDomaininteger1000Hard cap on sitemap URLs read per domain before filtering.
urlFocusstringcontentcontent filters obvious product/category/SKU pages for ecommerce SEO/editorial opportunities. Use all only when you intentionally want product/assortment URL gaps.
crawlPagesbooleanfalseFetch pages for richer topics (slower).
similarityThresholdnumber0.6Jaccard threshold to merge families.
includeAIGeoReadinessbooleanfalseAttach citability score/grade per row.

Output (one row per opportunity)

{
"topic": "best running shoes for men",
"keyword": "best running shoes for men",
"modifier": "best",
"page_type": "comparison",
"search_intent": "commercial",
"competitor_urls": ["https://competitor-a.com/best-running-shoes-for-men"],
"source_urls": ["competitor-a.com"],
"missing_from_target": true,
"priority_heuristic": 230.0,
"priority_action": "auto",
"est_effort_hours": 3,
"pseo_template_suggestion": "comparison-guide",
"title": "Best Running Shoes for Men - example.com",
"meta_description": "Compare best running shoes for men with expert analysis...",
"recommended_slug": "best-running-shoes-for-men",
"internal_link_targets": ["...sibling families..."],
"schema_type": "Article",
"member_topics": ["best running shoes for men", "best running shoes for women"],
"topic_count": 2,
"provenance": {"source_url": "...", "extractor_method": "sitemap_xml", "status": "ok", "caveats": ["..."]},
"status": "ok"
}

Rows with status != ok (blocked / not_found / timeout) are reconcilable failures, not run crashes.

Promises

  • A ranked, deduped opportunity matrix derived from your and competitor sitemaps.
  • Ecommerce-safe default focus: product/category/SKU pages are filtered unless urlFocus=all.
  • Starter title / meta description / slug / schema type for every row.
  • Provenance on every row — you can trace every recommendation to a source URL.
  • No-key run path: runs completely without any external API.
  • Robots honored before any third-party fetch; per-domain delay ≥ 1 s.

Non-promises

  • priority_heuristic is a deterministic keyword heuristic — not a search-volume or difficulty ranking. No P1–P4 tiers are shown without real volume data.
  • This actor does not scrape Google. Bring a apify/google-search-scraper dataset for SERP enrichment (Wave 3).
  • Difficulty without provider data is omitted, labeled as such.