본문으로 건너뛰기
cccskills
무료GitHub에 공개

seo-domain-analyzer

Pull real SEO metrics for any domain using Apify scrapers for Semrush and Ahrefs data. Gets domain authority, organic traffic estimates, keyword rankings, backlink profiles, top performing pages, and auto-discovers competitors from keyword overlap. No Semrush/Ahrefs subscription needed — uses Apify actors that scrape public pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(3)

  • SKILL.md8.6 KB
  • scripts/analyze_domain.py20.9 KB
  • skill.meta.json281 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

SEO Domain Analyzer

Pull real SEO performance data for any domain — no Semrush or Ahrefs subscription needed. Uses Apify actors that scrape Semrush/Ahrefs public pages to get authority scores, traffic estimates, keyword rankings, backlink profiles, and competitor discovery.

Quick Start

# Basic domain analysis
python3 scripts/analyze_domain.py --domain "example.com"

# With competitor comparison
python3 scripts/analyze_domain.py \
  --domain "example.com" \
  --competitors "competitor1.com,competitor2.com,competitor3.com"

# Check specific keywords
python3 scripts/analyze_domain.py \
  --domain "example.com" \
  --keywords "cloud cost optimization,reduce aws bill,finops tools"

# Save output
python3 scripts/analyze_domain.py \
  --domain "example.com" --output seo-profile.json

Inputs

ParameterRequiredDefaultDescription
domainYes—Domain to analyze (e.g., "example.com")
competitorsNoauto-discoveredComma-separated competitor domains
keywordsNoauto-inferredSpecific keywords to check rankings for
outputNostdoutPath to save JSON output
skip-backlinksNofalseSkip Ahrefs backlink analysis (saves ~$0.10)

Cost

Data SourceApify ActorEst. Cost
Domain overview (Semrush)devnaz/semrush-scraper~$0.10/domain
Backlink profile (Ahrefs)radeance/ahrefs-scraper~$0.10/domain
Keyword rank checksapify/google-search-scraper~$0.002/keyword
Typical full run~$0.50-1.00
With 3 competitors~$1.50-3.00

Process

Phase 1: Domain Overview (Semrush Data)

Use Apify actor devnaz/semrush-scraper to get:

# Actor: devnaz/semrush-scraper
# Input: domain URL
{
    "urls": ["https://example.com"]
}

Extracted metrics:

  • Authority Score (0-100)
  • Organic monthly traffic estimate
  • Organic keywords count (how many keywords the domain ranks for)
  • Paid traffic estimate (if any)
  • Backlinks count (Semrush's count)
  • Referring domains count
  • Top organic keywords (keyword, position, traffic share)
  • Top competitors (competing domains by keyword overlap)
  • Traffic trend (month-over-month direction)

Phase 2: Backlink Profile (Ahrefs Data)

Use Apify actor radeance/ahrefs-scraper to get:

# Actor: radeance/ahrefs-scraper
# Input: domain for backlink analysis
{
    "urls": ["https://example.com"],
    "mode": "domain-overview"
}

Extracted metrics:

  • Domain Rating (DR) (0-100)
  • URL Rating of homepage
  • Referring domains count and trend
  • Backlinks total count
  • Top referring domains (which sites link to them)
  • Anchor text distribution (branded vs keyword vs generic)
  • Dofollow vs nofollow ratio

Phase 3: Keyword Rank Verification

For specific keywords (user-provided or auto-inferred from Phase 1), verify actual rankings using Google search:

# Actor: apify/google-search-scraper
# Input: keyword queries
{
    "queries": "cloud cost optimization",
    "maxPagesPerQuery": 1,
    "resultsPerPage": 10,
    "countryCode": "us",
    "languageCode": "en"
}

For each keyword:

  • Does the target domain appear in top 10?
  • What position?
  • What specific URL ranks?
  • Who else ranks? (competitive landscape for that keyword)

Keyword sources (in priority order):

  1. User-provided keywords
  2. Top organic keywords from Semrush data (Phase 1)
  3. Auto-inferred from domain content (WebSearch site:[domain] to see page titles)

Phase 4: Top Pages Analysis

From the Semrush data, extract the highest-traffic pages:

  • URL
  • Estimated monthly traffic
  • Primary keyword(s) driving traffic
  • Number of ranking keywords

If Semrush doesn't provide per-page data, supplement with:

  • WebSearch: site:[domain] and note which pages appear first (proxy for importance)
  • WebSearch: site:[domain] blog for top blog content

Phase 5: Competitor Discovery

Competitors are identified from multiple sources:

  1. Semrush competitor data (Phase 1) — domains competing for same keywords
  2. User-provided competitors — always included
  3. Google SERP competitors — from Phase 3 keyword checks, note which domains consistently appear

For each competitor, run a lighter version of Phase 1 (domain overview only):

  • Authority score
  • Organic traffic estimate
  • Keyword count
  • Top keywords

Phase 6: Output

JSON Output

{
  "domain": "example.com",
  "analysis_date": "2026-02-25",
  "domain_metrics": {
    "semrush_authority_score": 45,
    "ahrefs_domain_rating": 52,
    "organic_monthly_traffic": 28500,
    "organic_keywords": 1240,
    "backlinks": 8930,
    "referring_domains": 412,
    "traffic_trend": "increasing"
  },
  "top_pages": [
    {
      "url": "https://example.com/blog/reduce-aws-costs",
      "estimated_traffic": 3200,
      "top_keyword": "reduce aws costs",
      "ranking_keywords": 45
    }
  ],
  "keyword_rankings": [
    {
      "keyword": "cloud cost optimization",
      "position": 4,
      "url": "https://example.com/blog/cloud-cost-optimization-guide",
      "serp_competitors": ["vantage.sh", "antimetal.com", "finout.io"]
    }
  ],
  "backlink_profile": {
    "domain_rating": 52,
    "total_backlinks": 8930,
    "referring_domains": 412,
    "dofollow_ratio": 0.78,
    "top_referring_domains": ["techcrunch.com", "producthunt.com", ...],
    "anchor_text_distribution": {
      "branded": 0.45,
      "keyword": 0.22,
      "generic": 0.18,
      "url": 0.15
    }
  },
  "competitors": [
    {
      "domain": "competitor1.com",
      "authority_score": 62,
      "organic_traffic": 45000,
      "organic_keywords": 2100,
      "keyword_overlap": 340
    }
  ]
}

Markdown Summary (also generated)

# SEO Domain Profile: example.com
**Date:** 2026-02-25

## Domain Metrics
| Metric | Value |
|--------|-------|
| Semrush Authority Score | 45/100 |
| Ahrefs Domain Rating | 52/100 |
| Monthly Organic Traffic | ~28,500 |
| Organic Keywords | 1,240 |
| Backlinks | 8,930 |
| Referring Domains | 412 |
| Traffic Trend | Increasing |

## Top Performing Pages
| # | URL | Est. Traffic | Top Keyword |
|---|-----|-------------|-------------|
| 1 | /blog/reduce-aws-costs | 3,200 | reduce aws costs |
| ... |

## Keyword Rankings
| Keyword | Position | URL | SERP Competitors |
|---------|----------|-----|-----------------|
| cloud cost optimization | #4 | /blog/cloud-cost... | vantage.sh, antimetal.com |
| ... |

## Backlink Profile
- Domain Rating: 52/100
- Referring Domains: 412
- Dofollow Ratio: 78%
- Top linking sites: TechCrunch, Product Hunt, ...

## Competitor Comparison
| Domain | Authority | Traffic | Keywords | Overlap |
|--------|-----------|---------|----------|---------|
| example.com | 45 | 28.5K | 1,240 | — |
| competitor1.com | 62 | 45K | 2,100 | 340 |
| ... |

Tips

  • Semrush scraper data quality varies. The Apify actors scrape public Semrush pages, which show limited data for non-subscribers. Traffic estimates and top keywords are available, but detailed per-page breakdowns may be partial.
  • Combine with site-content-catalog to get both the content inventory AND performance data — together they tell you what content exists AND which pieces actually drive traffic.
  • Keyword rank verification via Google is the most reliable data point. Semrush/Ahrefs estimates can be off, but checking actual SERPs gives ground truth.
  • Run competitors lighter. Full backlink analysis on 5 competitors gets expensive. Domain overview (Semrush only) is usually sufficient for comparison.
  • Apify actors may break. These scrape Semrush/Ahrefs public pages, which can change. If an actor fails, fall back to the free seo-traffic-analyzer skill which uses web search probes.

Fallback: Free Mode

If APIFY_API_TOKEN is not set or Apify actors fail, the script falls back to:

  1. WebSearch probes (like seo-traffic-analyzer skill)
  2. site:[domain] for indexed page count
  3. SimilarWeb free tier for traffic estimates
  4. Manual Google SERP checks for keyword rankings

This gives less precise data but still produces a useful report.

Dependencies

  • Python 3.8+
  • requests library
  • APIFY_API_TOKEN env var (for Apify mode; falls back to free probes without it)

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Research supported advertising promises from a specific buyer's context, current product facts, customer language and observed ads. Turn them into static, video or copy ideas; match video ideas to actual recipes and save a product-scoped angle bank for write-video-ad-script. Product-led discovery can use verified facts without reviews. Reference persistence and reach are observations, not proof of performance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 24일 업데이트

Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 24일 업데이트

For paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 24일 업데이트

The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's stable facts (ads/brand.md), the campaign brief, and a log of what was asked vs assumed. Use it when someone wants to run Meta ads and the brand's ad facts are not yet recorded.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 24일 업데이트

Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the copy, on-image or on-screen text, pictures and people. Rewrites what can be fixed honestly, adds the disclosures that are needed, and flags anything that needs a human or legal review, with one pass, fixed or flag line per ad and platform. Use alone when you already have the ad text or images and know where they will run; otherwise run the playbook for the job (e.g. make-static-ads, make-content, email-lifecycle).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 24일 업데이트

Analyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 24일 업데이트

gooseworks-ai의 스킬 모두 보기

이 스킬의 문제 신고