Competitor Analysis

Discover content gaps by analyzing competitor sitemaps — free, no API key.

How it works

Every site has a sitemap — a public XML file listing all its pages. ZensInk fetches and parses competitor sitemaps to reveal their content structure: what topics they cover, how many pages per topic, what languages they target.

No API key, no login, no cost. Sitemaps are public by design.

Single competitor

Analyze one competitor’s content structure:

python3 -m zens_ink.competitor_gap --url https://tarotap.com/sitemap.xml

You’ll see total page count, language distribution, and the most common URL patterns (which reveal content categories).

Filter by language

If a competitor has multilingual content, filter to one language:

python3 -m zens_ink.competitor_gap --url https://tarotap.com/sitemap.xml --lang en

Compare multiple competitors

Find shared topics and unique gaps across several sites:

python3 -m zens_ink.competitor_gap --compare \
  https://tarotap.com/sitemap.xml \
  https://fatemaster.ai/sitemap.xml \
  https://tarotread.ai/sitemap.xml

The comparison shows:

  • Shared topics — all competitors cover these (table stakes)
  • Unique to each site — content gaps you could fill

Output format

============================================================
  tarotap.com
============================================================
  Total pages: 441
  Languages: {'en': 280, 'es': 40, 'fr': 35, ...}

  Content patterns [ALL] (87 unique):
     40x  yes-or-no-tarot
     28x  tarot-spread
     22x  love-tarot
     ...

Finding sitemaps. Most sites expose their sitemap at /sitemap.xml or /sitemap-index.xml. Check robots.txt — it usually declares the sitemap URL.

Tips

  • URL patterns reveal strategy. If a competitor has 40 pages matching /yes-or-no-tarot-*, that’s a deliberate content cluster — not an accident.
  • Language counts show market focus. A site with 16 language versions is playing the scale game. A site with only English is focused on depth.
  • Big sitemaps take time. Sitemaps with 5000+ pages may take 10–20 seconds to fetch and parse.