Domain SEO Analyzer — Keywords, Traffic & Gap avatar

Domain SEO Analyzer — Keywords, Traffic & Gap

Pricing

Pay per event + usage

Go to Apify Store
Domain SEO Analyzer — Keywords, Traffic & Gap

Domain SEO Analyzer — Keywords, Traffic & Gap

Get organic traffic, ranked keywords, competitors, top pages, subdomains, keyword gap, rank history and bulk traffic for any domain. No login.

Pricing

Pay per event + usage

Rating

0.0

(0)

Developer

CheapAPI

CheapAPI

Maintained by Community

Actor stats

2

Bookmarked

8

Total users

8

Monthly active users

20 days ago

Last modified

Share

See how much Google traffic any website gets, which keywords it ranks for, who its competitors are and which keywords you are missing — 9 SEO reports in one Actor, from $2 per 1,000 rows, no SEO tool subscription and no login.

Why this Actor

  • $2 per 1,000 rows ($0.002 per row) plus $0.015 per report. 1,000 ranked keywords of a domain cost $2.015; a domain overview costs $0.017. SEO suites that show this kind of data usually cost $100+ per month.

  • 9 report types in one place: Domain overview, Ranked keywords, Competitors, Top pages, Subdomains, Keyword gap, SERP competitors, Rank history (monthly, back to October 2020) and Bulk traffic (up to 1,000 domains per report at $0.0009 per domain).

  • Rich rows: 30+ fields per ranked keyword (position, previous position, URL, search volume, 12-month search history, CPC, competition, difficulty 0–100, intent, estimated traffic, SERP features) and 22 metrics per domain overview (keywords per position range, traffic, traffic value, new/improved/declined/lost keywords, ads).

  • 249 countries (plus "All countries" for 4 reports), any search language, up to 10,000 rows per domain, and filters that run before rows are counted, so you only pay for rows you want.

  • Stable id on every row — the same keyword, competitor, page or month gets the same id in every run, so you can deduplicate, upsert into a database or diff weekly runs. Not included (so you know before you run it):

  • Full backlink profiles (referring domains, anchors, new/lost links, domain authority) — use Backlink Checker. This Actor only adds per-page backlink and referring-domain counts to Ranked keywords rows.

  • On-page / technical site audit (broken links, titles, meta tags, page speed) — use SEO Site Audit.

  • Visibility in ChatGPT, Gemini, Perplexity and other AI assistants — use AI Search Visibility Tracker. This Actor only reports Google AI Overview citations (resultType = ai_overview_reference).

  • Keyword ideas for a seed keyword (not tied to a domain) — use Keyword Research Tool; live SERP pages for a keyword — use Google SERP Scraper.

  • Engagement metrics (bounce rate, pages per visit, visit duration, traffic sources) — not offered: traffic here is estimated from Google rankings, not measured from visits.

  • Bing, Yandex or other search engines — Google only.

Compared with alternatives

Typical runs, priced from each Actor's pay-per-event list (Apify Free plan price, then Bronze–Gold price where the Actor has tiers; Platinum and Diamond pay the Gold price for all of them). The other Actors' prices are their listed fees. For this Actor, Apify platform usage is billed separately by Apify on top of the event fees (at the default 256 MB a small run typically uses about $0.001–$0.005), shown as "+ usage" in our row:

Actor1 domain overviewTraffic of 100 domains1,000 ranked keywords of 1 domainBacklink / authority dataSame price on every plan
All-in-one SEO toolkit Actor (~2,100 users; one flat fee per result row; its Store page says it does not run on the Apify Free plan)not on Free (paid plans $0.004–0.005)not on Free (paid plans $0.40–0.50)top-keywords summary only (its Store page)✓✗
Most-used website-traffic Actor (~4,100 users)$0.014 ($0.013 per result + $0.001 start)$1.30not offered✗✓
Low-cost website-traffic Actor (~3,000 users)$0.004 (paid plans $0.0011)$0.30 (paid plans $0.10)not offered✗✗
Website-traffic Actor (~1,500 users)$0.005 (paid plans $0.0015–0.002)$0.50 (paid plans $0.15–0.20)not offered✗✗
Per-keyword competitor-keywords Actor (~270 users)not offerednot offered$2.00 (+ $0.00005 start fee)✗✓
Domain SEO Analyzer$0.017 + usage$0.105 + usage (Bulk traffic)$2.015 + usagepage-level counts only✓

Prices from public Apify Store listings, checked September 2026.

Where others are cheaper, honestly:

  • A single domain summary on a paid Apify plan: the all-in-one Actor charges $0.004–0.005 per result vs our $0.017 (about 3–4× cheaper), and its summary also includes domain rating and backlink counts. If you only need a quick authority + traffic snapshot of a few domains on a paid plan, it is the cheaper choice.
  • Traffic checks on a paid plan: the low-cost website-traffic Actor (~3,000 users) charges $0.001 per domain plus a $0.0001 start fee on Bronze and above, so 100 domains cost about $0.10 there vs $0.105 (+ usage) with our Bulk traffic — about equal. On paid plans it stays cheaper up to about 150 domains per run (our $0.015 report fee is spread over more domains above that, e.g. 1,000 domains: $1.00 there vs $0.915 here). At 100 domains our Bulk traffic is cheaper than it only on the Apify Free plan ($0.30 there). The ~1,500-user website-traffic Actor charges $0.0015–0.002 per domain on paid plans, so against it we become cheaper from about 14–25 domains per run; the most-used ~4,100-user traffic Actor ($0.013 per domain + $0.001 start) is slightly cheaper for a single domain ($0.014 vs our $0.0159 Bulk traffic) and costs more from 2 domains per run.
  • Full ranked-keyword lists: the per-keyword Actor is about $0.015 cheaper per 1,000 keywords (no per-report fee), plus our platform usage on top.

What you get here in exchange: traffic checks for 100 domains at $0.105, the full ranked-keyword list (up to 10,000 rows per domain), keyword gap, SERP competitors, top pages, subdomains and monthly rank history back to October 2020 in the same Actor and output format, a small monthly allowance on the Apify Free plan, a stable id for comparing scheduled runs, and filters that run before rows are charged.

What data you get

ReportOne row perMain fields
Domain overview (default)domain (or market with "All countries")organic keywords, estimated monthly organic traffic, traffic value (USD), keywords at position 1, 2–3, 4–10 … 91–100, new / improved / declined / lost keywords, paid keywords & traffic
Ranked keywordskeywordkeyword, position, previous position, change (new/up/down/same), ranking URL, title, search volume, 12-month history, CPC, competition, difficulty, intent, estimated traffic, SERP features
Competitorscompetitor domainshared keywords, average position, competitor's total keywords & traffic, your vs their traffic on the shared keywords
Top pagespage URLkeywords and traffic per page, position distribution, paid data
Subdomainssubdomainkeywords and traffic per subdomain
Keyword gapkeywordkeywords a competitor ranks for and you don't (or shared / only yours), both positions and URLs, volume, CPC, difficulty, intent
SERP competitorsdomainwho ranks for YOUR keyword list: average & median position, visibility, estimated traffic, positions per keyword
Rank historymonthkeywords, traffic and position distribution month by month
Bulk trafficdomain or URLorganic, paid, featured snippet and local pack traffic and keyword counts

Main output fields:

FieldTypeExample
idstring"01a59e3bf8e1a0dcbc47" — stable hash of report + domain + row key (keyword, competitor, page, month …) + country + language
reportstring"rankedKeywords"
domainstring"apify.com"
keywordstring"1000 keywords"
position / previousPositioninteger1 / 1
positionChangestring"down" (new, up, down, same)
url / titlestring"https://example.com/free-seo-stats/top-1000-keywords"
searchVolumeinteger40
monthlySearchesarray[{ "year": 2026, "month": 8, "searchVolume": 10 }]
cpcnumber (USD) or null30.87
competition / competitionLevelnumber / string0.1 / "LOW"
keywordDifficultyinteger 0–10015
searchIntentstring"informational"
estimatedTraffic / trafficValueUsdnumber12.16
serpFeaturesarray["ai_overview", "organic", "people_also_ask"]
competitorDomainstring"dentaly.org"
sharedKeywords / avgPositioninteger / number152 / 57.43
gapTypestring"competitorOnly", "shared" or "yoursOnly"
yourPosition / competitorPositioninteger9 / 44
pageUrl / subdomainstring"https://apify.com/store"
periodstring"2026-09" (Rank history)
organicKeywords / organicTraffic / organicTrafficValueUsdnumber11625 / 32394.41 / 197346.88
organicPos1 … organicPos91to100integer42
organicNewKeywords / organicLostKeywordsinteger9698 / 1948
paidKeywords / paidTrafficnumber0
country / languagestring"US" / "en"
scrapedAtstring (ISO time)"2026-09-29T05:05:42.761Z"

How to use

  1. Open the Actor in Apify Console and go to the Input tab.
  2. Pick a Report (default: Domain overview).
  3. Enter one or more Domains (e.g. apify.com; https:// and www. are removed). For Keyword gap put your domain first, then competitors. For SERP competitors enter Keywords instead.
  4. Choose a Country (default: United States).
  5. Optional: open the Advanced sections to set max results, filters (search volume, position, difficulty, CPC …), sorting or rank history dates.
  6. Optional: set Maximum cost per run in the run options to cap spending.
  7. Click Start. When the run finishes, open the Output tab and use the Domain & traffic overview, Keywords, Competitors, Top pages, Rank history or Bulk traffic view, or export to CSV, Excel, JSON or HTML.

Ready-to-paste input (default):

{
"report": "domainOverview",
"domains": ["apify.com"],
"country": "US"
}

More inputs:

{ "report": "rankedKeywords", "domains": ["example.com"], "country": "GB", "maxResults": 500, "maxPosition": 10, "minSearchVolume": 100 }
{ "report": "keywordGap", "domains": ["my-shop.com", "competitor-a.com", "competitor-b.com"], "country": "DE", "maxKeywordDifficulty": 30 }
{ "report": "serpCompetitors", "keywords": ["crm software", "best crm for small business"], "country": "US" }
{ "report": "rankHistory", "domains": ["apify.com"], "country": "US", "historyFrom": "2025-10", "historyTo": "2026-09" }

API: curl

curl -X POST "https://api.apify.com/v2/acts/cheapapi~domain-seo-analyzer/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"report": "rankedKeywords", "domains": ["apify.com"], "country": "US", "maxResults": 100}'

API: JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_TOKEN>' });
const run = await client.actor('cheapapi/domain-seo-analyzer').call({
report: 'keywordGap',
domains: ['my-shop.com', 'competitor.com'],
country: 'US',
maxResults: 300,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]);

API: Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("cheapapi/domain-seo-analyzer").call(run_input={
"report": "domainOverview",
"domains": ["apify.com", "example.com"],
"country": "US",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["id"], item["domain"], item["organicTraffic"])

Use cases

  • Competitor research — find who competes with you in Google and how much traffic they get.
  • Keyword gap / content gap — list keywords competitors rank for and you don't, filtered to easy (low difficulty) keywords.
  • SEO monitoring — schedule a weekly Domain overview or Ranked keywords run and compare rows by id to spot new, lost and moved keywords.
  • Agency prospecting & reporting — check the traffic of hundreds of prospects at once with Bulk traffic, or add rank history charts to client reports.
  • Market sizing & due diligence — estimate the organic traffic of a list of companies and what it would cost as ads.
  • SERP landscape — see which domains dominate a keyword cluster with SERP competitors.

Advanced options

InputDefaultWhat it does
maxResults100Max rows per report (per domain, compared pair or keyword group), 1–10,000, paged automatically
startOffset0Skip the first N rows (continue a previous run)
languagemain language of the country2-letter search database language, e.g. en, de
includeOrganic / includePaidtrue / trueCount organic results / Google Ads
includeFeaturedSnippets / includeLocalPackfalse / falseAlso count featured snippet / local pack positions
includeAiOverviewsfalseRanked keywords: include keywords where the domain is cited in an AI Overview
rankingStatusliveRanked keywords, Top pages, Subdomains: live, lost or all rankings
includeAbsolutePositionsfalseRanked keywords: position counts on absolute positions
ignoreSynonymsfalseSkip near-duplicate keyword variants
includeAudienceInsightsfalseReal-user click traffic plus gender and age split (every event of the report is charged twice)
includeSerpDetailsfalseKeyword gap: add SERP features and total results
minSearchVolume / maxSearchVolumenoneMonthly search volume range (Ranked keywords, Keyword gap)
minPosition / maxPositionnonePosition range 1–100, e.g. 1–10 = page one
minKeywordDifficulty / maxKeywordDifficultynoneDifficulty range 0–100
minCpc / maxCpcnoneCPC range in USD (numbers, 0–1,000)
keywordIncludes / keywordExcludesnoneKeyword contains / does not contain text (e.g. exclude your brand)
urlIncludesnoneOnly rows whose URL / page / subdomain contains text, e.g. /blog/
searchIntentanyinformational, navigational, commercial or transactional
minTrafficnoneMinimum estimated monthly traffic per row
minKeywordsCountnoneCompetitors, Top pages, Subdomains: minimum ranking keywords
sortBy / sortOrderdefault / descSort by volume, position, traffic, traffic value, difficulty, CPC, keywords, shared keywords, avg. position, visibility or keyword
customFiltersnoneExpert: extra filters (max 8 filters in total), e.g. [["searchVolume", ">", 1000], ["keyword", "not_ilike", "%free%"]]
customSortnoneExpert: up to 3 rules, e.g. "keywordDifficulty,asc"
gapModemissingKeyword gap view: missing, shared, unique or all (3 reports per competitor)
excludeMajorPlatformsfalseCompetitors: leave out YouTube, Wikipedia, Amazon, Reddit …
excludeDomainsnoneCompetitors: domains to leave out (up to 1,000)
focusDomainsnoneCompetitors: up to 20 domains that sharpen the niche
maxCompetitorPosition100Competitors: only rankings up to this position count
includeSubdomainstrueSERP competitors: count subdomains as the main domain
historyFrom / historyTo12 months ago / this monthRank history range (YYYY-MM, earliest 2020-10)
alignWithCurrentDatatrueRank history: recalculate past months with the current keyword database

"All countries" works for Domain overview (one row per market), Top pages, Subdomains and Bulk traffic. If a minimum is above its maximum (e.g. min CPC 5, max CPC 1) the run stops with a clear message before anything is charged.

Output example

Domain overview (default input):

{
"id": "f0051652b615ac13472c",
"report": "domainOverview",
"domain": "apify.com",
"organicKeywords": 11625,
"organicTraffic": 32394.41,
"organicTrafficValueUsd": 197346.88,
"organicPos1": 42,
"organicPos2to3": 170,
"organicPos4to10": 1512,
"organicPos11to20": 2705,
"organicPos21to30": 2344,
"organicPos91to100": 34,
"organicNewKeywords": 9698,
"organicImprovedKeywords": 1117,
"organicDeclinedKeywords": 627,
"organicLostKeywords": 1948,
"paidKeywords": 0,
"paidTraffic": 0,
"paidTrafficCostUsd": 0,
"country": "US",
"language": "en",
"scrapedAt": "2026-09-29T05:05:42.761Z"
}

(organicPos31to40 … organicPos81to90 are left out here to keep the example short.)

Ranked keyword:

{
"id": "01a59e3bf8e1a0dcbc47",
"report": "rankedKeywords",
"domain": "example.com",
"keyword": "1000 keywords",
"searchVolume": 40,
"cpc": null,
"competition": 0.1,
"competitionLevel": "LOW",
"keywordDifficulty": 15,
"searchIntent": "informational",
"searchVolumeTrend": { "monthly": -91, "quarterly": -80, "yearly": -80 },
"monthlySearches": [{ "year": 2026, "month": 8, "searchVolume": 10 }, { "year": 2026, "month": 7, "searchVolume": 110 }],
"serpFeatures": ["ai_overview", "organic", "people_also_ask", "video"],
"totalResults": 132,
"position": 1,
"absolutePosition": 2,
"previousPosition": 1,
"positionChange": "down",
"resultType": "organic",
"url": "https://example.com/free-seo-stats/top-1000-keywords",
"title": "Top 1000 Keywords Searched on Google",
"estimatedTraffic": 12.16,
"isLost": false,
"pageReferringDomains": 4,
"pageBacklinks": 7,
"serpUpdatedAt": "2026-08-13 18:11:06 +00:00",
"country": "US",
"language": "en",
"scrapedAt": "2026-09-29T05:05:43.478Z"
}

Competitor:

{
"id": "d168fccc9f4fb860fa3c",
"report": "competitors",
"domain": "newmouth.com",
"competitorDomain": "dentaly.org",
"sharedKeywords": 152,
"avgPosition": 57.43,
"yourTrafficOnSharedKeywords": 246.98,
"competitorTrafficOnSharedKeywords": 256.08,
"competitorOrganicKeywords": 16962,
"competitorOrganicTraffic": 40251.66,
"competitorOrganicTrafficValueUsd": 272044.73,
"competitorOrganicPos4to10": 61,
"country": "US",
"language": "en",
"scrapedAt": "2026-09-29T05:10:00.000Z"
}

Keyword gap (shared view):

{
"id": "848c559cca284a628dd8",
"report": "keywordGap",
"domain": "seopanel.org",
"competitorDomain": "examplesite.com",
"gapType": "shared",
"keyword": "seo open source",
"searchVolume": 110,
"cpc": 30.87,
"keywordDifficulty": 17,
"searchIntent": "commercial",
"yourPosition": 9,
"yourUrl": "https://www.seopanel.org/",
"yourTraffic": 1.65,
"competitorPosition": 44,
"competitorUrl": "https://examplesite.com/",
"competitorTraffic": 0.23,
"country": "US",
"language": "en",
"scrapedAt": "2026-09-29T05:10:00.000Z"
}

SERP competitor rows have keywords, competitorDomain, avgPosition, medianPosition, visibility, visibilityRating, estimatedTraffic, keywordsCount and keywordPositions. Rank history rows have period, year, month plus the Domain overview metrics. Bulk traffic rows have domain, organicTraffic, organicKeywords, paidTraffic, paidKeywords, featuredSnippetTraffic, featuredSnippetKeywords, localPackTraffic and localPackKeywords. A RUN_SUMMARY record in the key-value store lists requests, rows delivered, domains without data and warnings.

Pricing

Typical cost: a domain overview is $0.017, 1,000 ranked keywords of one domain $2.015 (event fees; Apify platform usage billed separately).

Apify Free plan: Apify does not pay developers for usage on its Free plan, so on the Free plan this Actor can be used for up to $0.25 of results per calendar month — enough to try it on a small input. When the allowance is used up, the run ends with a clear message (not an error). Any paid Apify plan removes the limit; prices are the same.

Pay per event — no monthly fee, and the same price on every Apify plan. Apify platform usage is billed separately by Apify (at the default 256 MB a small run typically uses about $0.001–$0.005); the prices and examples below are event fees only. You are charged per report requested, even if nothing is found (every lookup is a paid request on our side); failed requests are free, except that a request that times out after being sent is still charged as if the full page was returned (report fee plus Report-without-results fees), because it may already have been processed.

Apify planFreeBronzeSilverGoldPlatinumDiamond
Prices belowsamesamesamesamesamesame
EventPriceWhen it is charged
Report$0.015Once per report requested, even if nothing is found: per domain, per keyword-gap competitor and view, per group of up to 200 keywords (SERP competitors) or up to 1,000 domains (Bulk traffic)
Result row$0.002Per row: keyword, competitor, page, subdomain, gap keyword, SERP competitor, domain overview, history month
Bulk traffic domain$0.0009Per domain in the Bulk traffic report (instead of Result row)
Rank history report$0.16Once per domain in Rank history, even if no history is found (plus $0.002 per month row)
Report without results$0.0004Only when a report finds no rows (no data for the domain, or your filters removed everything): added to the $0.015 Report fee. Never charged when rows are returned or for Rank history (except for a request that timed out after being sent, see above)

Worked examples:

  • 1,000 ranked keywords of one domain: $0.015 + 1,000 × $0.002 = $2.015.
  • Domain overview for 10 domains: 10 × ($0.015 + $0.002) = $0.17.
  • Keyword gap, you vs 1 competitor, 300 missing keywords: $0.015 + 300 × $0.002 = $0.615.
  • Bulk traffic for 1,000 domains: $0.015 + 1,000 × $0.0009 = $0.915.
  • Rank history, 12 months: $0.16 + 12 × $0.002 = $0.184.
  • Ranked keywords for a domain with no data (or filters that match nothing): $0.015 + $0.0004 = $0.0154; with Audience insights $0.0308.

With Audience insights enabled, every event of that report is charged twice. Set Maximum cost per run in the run options: the Actor limits rows up front and stops before the next report would exceed your budget (a report is only requested when the budget can pay for it even if it comes back empty; Rank history only when every month of the range fits).

Integrations

  • Schedules — run weekly or monthly from Apify Schedules; compare runs by id to track new, lost and moved keywords.
  • Webhooks — get a call when a run finishes and fetch the dataset automatically.
  • Make, Zapier, n8n — use the Apify app/node to start runs and send rows to Slack, email, a CRM or a database.
  • Google Sheets — export with the Google Sheets integration, or download CSV/Excel.
  • API & MCP — start runs and read datasets over the Apify API (examples above), or let AI agents call the Actor through the Apify MCP server.

FAQ

Is there a limit on the Apify Free plan, and is platform usage included? Up to $0.25 of this Actor's results per calendar month, enough to try it. Apify pays developers nothing for Free-plan usage while our data costs are real, so this keeps the Actor sustainable. Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit. Apify platform usage (compute) is not included: Apify bills it separately (about $0.001–$0.005 for a small run at the default 256 MB; shown per run in Apify Console).

Is it legal? The Actor returns aggregated SEO metrics (rankings, search volumes, traffic estimates) about public websites and public Google results. It does not log in anywhere and collects no personal data. You are responsible for how you use the results.

How fresh is the data? Search volumes are monthly averages with 12 months of history. Rankings are rechecked continuously, popular keywords more often than long-tail ones. Each Ranked keywords row has serpUpdatedAt showing when the result page was last checked, and every row has scrapedAt.

How accurate is the traffic? Traffic is an estimate: position × search volume × typical click-through rate, summed over all keywords. It is great for comparing domains and spotting trends; it will not match your own analytics exactly.

Why did I get fewer results than maxResults? The domain ranks for fewer keywords in that country, your filters removed rows, or your maximum cost per run was reached (see the log and RUN_SUMMARY). Small or new sites may have no data at all.

Why was I charged $0.0154 for a report with no rows? Every report is a paid lookup on our side, even when the domain has no data or your filters remove every row. An empty report costs the $0.015 Report fee plus a $0.0004 "Report without results" fee (twice with Audience insights). Failed requests (errors) are free, but a request that times out after being sent is still charged as if the full page was returned, because it may already have been processed (unansweredRequests in RUN_SUMMARY). Check the domain spelling and loosen filters before running large lists.

How do I control my budget? Set Maximum cost per run in the run options, lower maxResults and use filters (they run before rows are counted). The Actor never charges past your limit.

Can I schedule and monitor domains? Yes. Create an Apify Schedule (e.g. weekly Domain overview or Ranked keywords) and compare runs by the stable id field. Rank history gives you monthly figures back to October 2020 in one run.

Which countries and languages are supported? Can I analyze a single page? 249 countries. Leave language empty to use the main language of the country, or set a 2-letter code (e.g. en for English results in Germany). Ranked keywords and Bulk traffic also accept full page URLs (e.g. https://example.com/blog/post).

Do you store the domains I analyze? No. Domains, keywords and results are kept only in your own run's dataset and key-value store in your Apify account, under your Apify data-retention settings. We do not keep a copy, share your target lists or use them for anything else.

Where do I get help? Open an issue on the Actor's Issues tab in Apify Console with your run link, and we will look into it.

Limitations

  • Traffic and traffic value are estimates based on rankings, search volumes and click-through rates.
  • Google only (no Bing/Yandex). Full backlink profiles (Backlink Checker) and on-page audits (SEO Site Audit) are not part of this Actor.
  • Rank history is monthly and starts in October 2020.
  • The keyword gap compares your domain with each competitor separately (one report per competitor and view).
  • "All countries" works only for Domain overview, Top pages, Subdomains and Bulk traffic.
  • Options that do not apply to the chosen report are ignored with a warning in the log.

Privacy

The output contains domain-level and keyword-level SEO metrics only — no names, emails or other personal data. Page titles and URLs come from public Google results.