Keyword Rank Tracker — AccuRanker Alternative
Pricing
from $8.00 / 1,000 rank movement report rows
Keyword Rank Tracker — AccuRanker Alternative
Track Google organic keyword ranks for a target domain. Export positions, matching URLs, SERP evidence, and search context; supply baseline ranks to calculate movement against an earlier snapshot.
Pricing
from $8.00 / 1,000 rank movement report rows
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Track Google organic keyword ranks for a target domain. Export positions, matching URLs, SERP evidence, and search context; supply baseline ranks to calculate movement against an earlier snapshot. For SEO reporting teams, each dataset row is one keyword observation with its current rank and any valid baseline comparison.
Workflow: put the results to work
Set the target domain, keyword list, country, language, and device. Supply baseline ranks when you need movement labels, then compare observations under the same settings. The Actor creates bounded snapshots; historical coverage depends on the observations you retain.
Best fit
Use this Actor when an SEO analyst, agency automation, or AI workflow needs a current, machine-readable Google rank snapshot that can be scheduled and exported through Apify. It is especially useful for a small-to-medium keyword list where explicit cost limits and raw SERP provenance matter.
Choose a full rank-tracking suite when you need retained historical dashboards, team permissions, recurring report design, Share of Voice, forecasting, or AI-search monitoring. For Google Maps grid or city-level rank analysis, use a dedicated local-rank workflow instead.
How this AccuRanker alternative workflow compares
This independent Actor is not affiliated with, associated with, or endorsed by AccuRanker. The comparison is limited to the bounded Google-rank snapshot workflow documented here.
| Decision area | This Actor | AccuRanker |
|---|---|---|
| Scope | Current Google rank rows with optional caller-supplied movement comparison | Broader hosted dashboard and reporting suite |
| Billing | Per persisted report row, plus Apify platform usage | Published monthly plan pricing |
| Effective efficiency | One bounded API or scheduled execution produces export-ready rows | Better suited to continuous dashboard operations |
| Input and output | Domain + keywords in, documented dataset rows out | Account-based hosted workflow and dashboards |
| Integrations | Apify API, datasets, and schedules | Hosted-suite integrations |
| Automation | Explicit Apify schedule and run inputs | Automatic refreshes inside the product |
| Freshness and provenance | Row-level timestamp, Google results URL, and provider run ID | Automatically refreshed hosted data |
This is not a claim that either product is universally better. Choose this Actor when the input/output workflow above is sufficient; choose AccuRanker when you need its retained history, collaboration, white-label reporting, Share of Voice, forecasts, or AI products.
How it works
- The Actor validates and deduplicates the provided keywords, then applies
maxKeywords. - It calls Apify's maintained Google Search Results Scraper once for the bounded batch, using your country, language, device, and depth settings.
- It finds the target domain in each returned organic result set. A domain absent within the requested depth is a valid row, not an error.
- When
baselineRanksis supplied, it classifies each row asIMPROVED,DECLINED,UNCHANGED,NEW,LOST, orNOT_RANKING. - It writes one complete, validated row per successful keyword plus
OUTPUTandRUN_SUMMARYterminal records.
Input
{"targetDomain": "apify.com","keywords": ["web scraping platform", "data extraction tools"],"countryCode": "us","languageCode": "en","device": "desktop","depth": 10,"maxKeywords": 25,"baselineRanks": [{"keyword": "web scraping platform","found": true,"targetRank": 6,"checkedAt": "prior-check-timestamp"}]}
Use the same country, language, device, and depth whenever you compare a trend line. baselineRanks is caller-supplied; the Actor deliberately does not claim to retain your ranking history.
Output
The rank_movement dataset view contains the report fields. serp_evidence retains the selected target result, compact top results, Google check URL, and provider run ID.
{"keyword": "web scraping platform","targetDomain": "apify.com","found": true,"targetRank": 3,"rankingUrl": "https://apify.com/","previousRank": 6,"rankChange": 3,"movement": "IMPROVED","countryCode": "us","languageCode": "en","device": "desktop","depth": 10,"checkUrl": "https://www.google.com/search?q=web+scraping+platform","checkedAt": "collection-timestamp","provider": "apify/google-search-scraper","providerRunId": "exampleRunId"}
Terminal outcomes
COMPLETE: every selected keyword produced a persisted row.PARTIAL: useful rows persisted but a provider or storage issue affected another keyword, or the execution spending cap stopped more rows.VALID_EMPTY: every completed SERP check lacked the target domain inside the selected depth.INVALID_INPUT: fix the supplied domain, keywords, locale, device, or depth; this ends successfully with guidance.UPSTREAM_FAILED: the provider could not return usable data and no rank row was persisted.CONFIG_ERROR: reserved for a required configuration fault with no useful output.
API and agent prompt
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~accuranker-alternative/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"targetDomain":"apify.com","keywords":["web scraping platform"],"countryCode":"us","languageCode":"en","device":"desktop","depth":10}'
Check
apify.comfor these keywords in US English desktop Google results at depth 10. Return the current rank, movement versus my supplied baseline, ranking URL, evidence URL, timestamp, and report anyOUTPUTwarnings. Do not use this Actor for persistent dashboard history, Share of Voice, or AI-visibility analysis.
For an AI agent or MCP workflow, read the dataset after the run and inspect OUTPUT. An INVALID_INPUT outcome means the request can be fixed without retrying the provider; PARTIAL means some rows are useful but a warning needs review; UPSTREAM_FAILED means no usable provider rows were persisted and a later retry is appropriate. The Actor does not paginate beyond the selected depth.
Limits and recovery
- Limit each run to one hundred selected keywords and a depth of 10 or 20. This bounds both cost and provider work.
- Google results can vary by country, language, device, timing, and SERP layout. Keep these controls fixed across a comparison.
- If
PARTIALoccurs, use the persisted rows and retry only the affected keyword set after reviewingRUN_SUMMARY. - If
UPSTREAM_FAILEDoccurs, wait briefly and retry the bounded run. Do not treat an empty provider run as proof that the domain does not rank.
Freshness and methodology
The primary provider contract and price calculation are recorded in PROVIDER_PRICING.json; use the current Google Search Results Scraper input and pricing surface before making a spending decision. Each result row carries a timestamp, Google result URL, and provider run ID so a surprising position can be reviewed at its source.
Builder's note
I designed this Actor around one durable unit of work: a validated, persisted rank row with enough source context to review a surprising movement. The current Google provider is intentionally used as a focused standalone workflow, keeping the Actor free of external credential setup while preserving an explicit input-to-evidence path.
Responsible use
Use this Actor only to collect data you are authorized to access and in accordance with applicable laws, Google’s terms of service, and your organization’s policies. Rank rows are measurement evidence, not legal, traffic, revenue, or ranking guarantees.
Responsible interpretation
Every row is an observed Google SERP snapshot, not a promise of future rank, traffic, or conversion. A found: false row means the domain was absent within the selected returned depth and context. Keep the same country, language, device, and depth across comparisons. Review checkUrl, checkedAt, and providerRunId before acting on an unexpected movement.
Pricing and run costs
This Actor uses Pay per event plus Apify platform usage. The Pricing tab lists the current event rates and billing terms.
| Event | Billing unit | When it applies |
|---|---|---|
apify-actor-start | Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
rank-movement-report | Rank movement report row | One complete persisted Google rank and movement report row. |
Run cost combines the charged events and Apify platform usage. Review the run charge limit and requested result count before starting.
Connect an AI agent
Use the Apify MCP configurator to choose an available client connection. Inspect this Actor’s current input schema and required credentials before running it.