~ / insights / reports

Report · September 2026

What It Costs To Track 2,000 Keywords.

Four rank trackers priced against a raw SERP API for the same 2,000-keyword, two-device, weekly scope, using prices read from the vendors' own pricing pages on 1 September 2026.

Amit TiwariReport13 min readPDF, 13 pages
Download the PDF

Rank tracking is sold by the keyword, and the SERP data underneath it is sold by the page. Those two units do not convert cleanly into each other, which is why every time I have tried to compare a tracker subscription with “just pull the SERPs ourselves” the conversation has drifted into opinion. This time I fixed a scope, fetched the prices on one day, and did the arithmetic in the open so that anyone can rerun it when the prices move.

The scope

2,000 keywords, 1 country, 2 17,333 SERP pulls a month, weekly $10.40 API standard queue, weekly $129 cheapest SaaS plan covering 1 Sep 2026 pricing pages fetched
Figure 1. The scope and the two numbers that frame the comparison.

The job is 2,000 keywords, one country (India), Google only, desktop and mobile, checked once a week. Two domains are watched, my own and one competitor, but that does not change the count of SERPs, because both domains are read off the same result page. So one keyword produces two SERP pulls per check, one per device, and one check of the whole set is 4,000 pulls.

A month is taken as 4.33 weeks. Weekly checking is therefore 4.33 × 4,000 = 17,333 pulls a month. I also show daily, which at 30.42 days a month is 121,667 pulls, because three of the four SaaS tools only sell daily updates and that is the frequency their price is really buying.

Method

On 1 September 2026 I fetched these pages and read the figures from the page text, nothing else. No sales calls, no review sites, no cached copies.

Vendor Page fetched What it lists
Semrush semrush.com/prices/ and semrush.com/pricing/ Four plans named SEO, Starter, Pro+ and Advanced, with a keyword count “to track daily” on each
Ahrefs ahrefs.com/pricing Lite, Standard, Advanced, Enterprise with “tracked keywords” and “Update frequency: Weekly”
SE Ranking seranking.com/pricing.html Core, Growth, Enterprise with keywords “to track daily”
AccuRanker accuranker.com/pricing/ Professional and Expert with keyword selectors and “daily, reliable keyword updates”
DataForSEO dataforseo.com/pricing/google-serp/google-organic-serp-api Price per SERP and per 1,000 SERPs for Standard queue, Priority queue and Live mode

Every figure is in the data file at data/r1-rank-tracking/pricing.json, one row per plan, with the URL and the fetch date, and the script beside it recomputes every derived number in this piece. Where a page did not state something I have written null in the file and a bracketed [VERIFY] here rather than filling the gap from memory.

The figures counted are the monthly list price in US dollars, keywords included, stated update frequency, and the API’s per-SERP price at a depth of 10 results, which is the depth the page prices on and the depth a position tracker needs for page one.

The figures excluded are taxes, including the 18 percent GST that applies to most of these when billed to an Indian entity. Annual discounts, which I record in the data file but do not use in the tables, so that everything is a monthly commitment. The engineering time to build a tracker on top of an API, which I return to below because it is the real cost on that side. Extra users, API access add-ons on the SaaS plans, and every other feature of the suites, because the scope is rank tracking and nothing else.

On rupees, nothing in this piece was converted at a fetched rate. I have used a flat 88 rupees to the dollar [VERIFY: USD/INR rate on 1 September 2026] and every rupee figure should be read as an approximation at that assumption.

One caveat on the assignment itself. I set out to price Semrush’s Pro, Guru and Business plans, and those names are not on the page any more. The page on 1 September lists SEO at $139, Starter at $199, Pro+ at $299 and Advanced at $549, and I have recorded what the page says rather than what I expected to find.

What the pages say

Tool and plan Monthly (USD) Keywords included Update frequency Extra keywords
Semrush SEO $139 500 Daily [VERIFY: not on page]
Semrush Pro+ $299 1,500 Daily [VERIFY: not on page]
Semrush Advanced $549 5,000 Daily [VERIFY: not on page]
Ahrefs Lite $129 750 Weekly [VERIFY: not on page]
Ahrefs Standard $249 2,000 Weekly [VERIFY: not on page]
Ahrefs Advanced $449 5,000 Weekly [VERIFY: not on page]
SE Ranking Core $129 2,000 Daily “from $22.40” [VERIFY: unit]
SE Ranking Growth $279 5,000 Daily “from $32” [VERIFY: unit]
AccuRanker Professional $224 2,000 (selector also offers 3,000 and 5,000) Daily [VERIFY: price at 3,000 and 5,000]
AccuRanker Expert $764 10,000 (selector to 25,000) Daily [VERIFY: price at higher counts]
DataForSEO Standard queue $0.60 per 1,000 SERPs n/a Any, about 5 minutes turnaround n/a
DataForSEO Priority queue $1.20 per 1,000 SERPs n/a Any, about 1 minute turnaround n/a
DataForSEO Live mode $2.00 per 1,000 SERPs n/a Any, about 6 seconds turnaround n/a

Three things to hold in mind while reading it. Ahrefs is the only one of the four that states a weekly update cycle on its pricing page, which happens to be exactly my scope, whereas the other three sell daily and cannot be dialled down to a cheaper weekly rate on the pricing page as fetched. I went to the SE Ranking page expecting a frequency selector, daily or every three days or weekly, that changed the price, and the page I fetched does not show one, so if such an option exists it is behind the sign-up and I could not price it [VERIFY: whether SE Ranking sells reduced check frequencies at a lower price]. And the AccuRanker page shows one price against a selector with three keyword counts, so the $224 I have used is the figure displayed at 2,000, and the 3,000 and 5,000 prices need someone to click through.

The question of whether a keyword tracked on desktop and on mobile counts as one keyword or two is not answered on any of the four pricing pages. I have priced every plan at face value, 2,000 keywords means my 2,000 keywords, and flagged it, because if a tool counts device separately the plan I need doubles in size [VERIFY: per-device counting on each tool’s help pages]. This is the single largest source of error in the tables and I come back to it at the end.

Monthly cost for the scope

Interactive: price your own keyword, location, device and frequency scope. Needs JavaScript.

Monthly cost for the scope, USD API standard queue, weekly 10.4 API live mode, weekly 34.67 API standard queue, daily 73 SE Ranking Core, daily 129 AccuRanker Professional, daily 224 API live mode, daily 243.33 Ahrefs Standard, weekly 249 Semrush Advanced, daily 549 API rows are pulls only; the scheduler, storage and the person who owns them are not in the bar. SaaS rows are list price, monthly billing, 1 September 2026.
Figure 2. Same scope, eight routes. Grey bars are subscriptions; green and blue are API pulls at the two frequencies.

The API cost is linear in pulls. At the Standard queue, 17,333 pulls a month costs $10.40. At Live it costs $34.67. Daily checking at the Standard queue is $73.00 and at Live it is $243.33.

Route Weekly, USD Weekly, INR at 88 Daily, USD Daily, INR at 88
DataForSEO Standard queue $10.40 Rs 915 $73.00 Rs 6,424
DataForSEO Priority queue $20.80 Rs 1,830 $146.00 Rs 12,848
DataForSEO Live mode $34.67 Rs 3,051 $243.33 Rs 21,413
SE Ranking Core (daily only) n/a n/a $129 Rs 11,352
AccuRanker Professional (daily only) n/a n/a $224 Rs 19,712
Ahrefs Standard (weekly only) $249 Rs 21,912 n/a n/a
Semrush Advanced (daily only) n/a n/a $549 Rs 48,312
Two of the SaaS rows need a note. Semrush Pro+ at $299 tracks 1,500 keywords, 500 short of the scope, so the cheapest Semrush plan that covers 2,000 keywords on the page is Advanced at $549, and that plan carries 3,000 keywords I would not use. Ahrefs Standard fits the scope exactly, 2,000 keywords and weekly, and is also the most expensive per SERP delivered, because weekly is all it delivers.

Read per thousand SERPs at the frequency each plan actually runs, SE Ranking Core works out at $1.06, AccuRanker Professional at $1.84, Semrush Advanced at $4.51 and Ahrefs Standard at $14.37, against $0.60 for the Standard queue and $2.00 for Live. That framing flatters the daily tools, since it credits them with pulls I did not ask for, but it is the honest way to compare a flat fee with a metered one.

Break-even by check frequency

Cost by check frequency: the API is a line, a subscription is a shelf 0 300 USD / month API standard API live SE Ranking $129 AccuRanker $224 Ahrefs $249 0 15 30 (daily) 45 60 checks a month Standard queue crosses SE Ranking at 54 checks a month, above any frequency the plan sells. Live mode crosses it at 16, so daily checks on Live are the one case where SaaS is cheaper per pull.
Figure 3. Where the lines cross is the break-even. On the standard queue, no plan reaches it at a frequency it actually offers.

A flat subscription only beats a metered API when you use enough of it. For each plan, the break-even is the number of checks per month at which the plan’s price divided by pulls equals the API’s price per pull. Above that frequency the subscription is cheaper per SERP, below it the API is.

Plan Break-even vs Standard queue Break-even vs Priority queue Break-even vs Live mode Frequency the plan actually offers
SE Ranking Core, $129 53.8 checks a month (1.8 a day) 26.9 a month (0.9 a day) 16.1 a month (about every 2 days) Daily, 30.4 a month
AccuRanker Professional, $224 93.3 a month (3.1 a day) 46.7 a month (1.5 a day) 28.0 a month (0.9 a day) Daily, 30.4 a month
Ahrefs Standard, $249 103.8 a month (3.4 a day) 51.9 a month (1.7 a day) 31.1 a month (1.0 a day) Weekly, 4.3 a month
Semrush Advanced, $549 228.8 a month (7.5 a day) 114.4 a month (3.8 a day) 68.6 a month (2.3 a day) Daily, 30.4 a month
The table says something plainer than I expected. Against the Standard queue, none of the four plans reaches break-even at any frequency it offers, because the cheapest plan needs 1.8 checks a day to match $0.60 per thousand and none of them sells more than one a day. Against Live mode, SE Ranking Core and AccuRanker Professional do cross over at daily, SE Ranking by a comfortable margin ($129 against $243) and AccuRanker by $19. Ahrefs Standard, being weekly, sits at $249 against a Live cost of $34.67 for the same schedule and never catches up. Semrush Advanced would need 2.3 checks a day to match Live pricing.

For my actual scope, weekly, the comparison is $10.40 against $129 at the cheapest, a ratio of about twelve to one, and against Ahrefs, the one plan that matches the frequency, it is $10.40 against $249. That gap is the budget available for building and running a tracker on top of the API, and the rest of this piece is about whether the gap is worth spending.

Where the subscription wins

The API price buys a JSON document per pull. Everything else that a rank tracker does, I would be building or going without.

History

Every tool above keeps position history by keyword and shows it as a chart with a date range. On the API route history exists only if my scheduler ran every week without a gap and my storage kept it, and a missed cron job is a permanent hole in the series.

Interface

Filters by tag, by URL, by SERP feature, by position bucket, and share-of-voice against the competitor domain, all of which is a few weeks of front-end work to reproduce even crudely, and which a marketing head will expect to open on a phone.

Sharing and reporting

Scheduled PDF reports, client logins, white-label dashboards. On the API route this is a Looker Studio or Sheets connector that someone has to build and maintain.

Alerts

A drop of five positions on a money keyword, emailed the morning it happens. Trivial in a SaaS tool, another script on my side.

No engineering

Nobody has to own the scheduler, rotate the API key, handle the day the provider changes a field name, watch for the postback that never arrived, or migrate the database when it outgrows the free tier. On a two-person team that person is me, and a weekend of my time costs more than a year of the price difference at weekly frequency.

The subscription also usually includes other search engines and several countries within the same keyword count, and at least one of the four tracks answer-engine prompts on the same plan. If any of that is in scope, the API route needs a second scope and a second cost line.

Where the API wins beyond price

What each route buys beyond the price SUBSCRIPTION GIVES YOU API ROUTE GIVES YOU Position history kept for you, charted Raw SERP HTML, every feature, any depth A login, sharing, PDF on Monday Data you own, in your schema Alerts without engineering Any frequency, any location, no plan tier No scheduler, no key, no migration Pull cost a rounding error at weekly
Figure 4. Price settles nothing on its own. The right-hand column is why I still pay for a subscription on client work.

Raw SERP

The API returns the whole result page as structured data, every organic result with its URL, title and snippet, and not only the row where one of my two domains appeared. That means I can answer, a year later, who was ranking third for a query in March, which no tracker I have used will tell me because they store the position of the tracked domain and discard the rest.

SERP features

People Also Ask questions with their text, featured snippet source, video carousels, local packs, AI overview presence, all as fields rather than as an icon in a column, and all queryable across 2,000 keywords with SQL.

Any depth

The page prices on 10 results, and additional depth multiplies the price per 10, so a top-50 pull at the Standard queue is $3.00 per thousand rather than $0.60, still below every SaaS figure in the tables.

Any frequency, any subset

I can check 200 money keywords daily and the remaining 1,800 monthly for the price of the pulls, which no plan above lets me do without paying for daily on all of them.

Ownership

The data sits in my database, under my retention rules, and does not vanish when I cancel or when the vendor shortens its history window. For a client engagement under DPDP that also makes the data-processor conversation shorter, since a SERP contains no personal data and the API vendor never sees the client’s name.

What I did

I chose the API route for this scope. [VERIFY: describe the actual build – what it runs on, what stores the history, how long it took – in one sentence, or cut this paragraph’s first person and keep it hypothetical.] At $10.40 a month the pull cost is a rounding error, and even a few days of build time pays back against the Ahrefs Standard price within months. Had the scope been daily checks for a client who wanted a login and a PDF on Monday morning, SE Ranking Core at $129 would have been the answer, because at daily frequency the API cost has risen to $73 and the engineering has not got any cheaper.

Where I could be wrong

Prices change, and these are the figures on 1 September 2026. Semrush had already renamed and repriced its whole plan structure between the time I wrote the scope and the time I fetched the page, and there is no reason to expect the other three to hold still. The data file and script exist so that the tables can be regenerated rather than trusted.

I may have misread a plan limit. The AccuRanker price is the one shown against a three-option keyword selector and I have assumed it is the 2,000 figure. SE Ranking’s “from $22.40” for extra keywords has no unit on the page. Ahrefs shows no annual per-plan figure and no add-on pricing for faster updates, which might exist inside the account. None of the four pricing pages states whether a keyword tracked on desktop and mobile counts once or twice, and if the answer is twice on a given tool, my scope needs a 4,000-keyword plan on that tool and every SaaS row for it roughly doubles.

The API route’s cost line is only the pulls. A scheduler, a database, a dashboard and the person who owns them are real costs that do not appear in the tables. Proxies are not needed, since the provider handles the fetching, but the scheduler is, and so is the discipline to notice when it fails. [VERIFY: your own build time.] One person’s build is three days and another’s is three weeks.

Finally, a SaaS “keyword” often buys more than one SERP. If a plan’s 2,000 keywords each cover several search engines, several locations or both devices at no extra charge, then the per-SERP comparison above is unfair to that tool by the same multiple, and the break-even frequencies should be divided accordingly.

Sources

  • Semrush pricing, fetched 1 September 2026: https://www.semrush.com/prices/ and https://www.semrush.com/pricing/
  • Ahrefs pricing, fetched 1 September 2026: https://ahrefs.com/pricing
  • SE Ranking pricing, fetched 1 September 2026: https://seranking.com/pricing.html
  • AccuRanker pricing, fetched 1 September 2026: https://www.accuranker.com/pricing/
  • DataForSEO pricing index, fetched 1 September 2026: https://dataforseo.com/pricing and https://dataforseo.com/pricing/serp
  • DataForSEO Google Organic SERP API pricing, fetched 1 September 2026: https://dataforseo.com/pricing/google-serp/google-organic-serp-api
  • Data file and recompute script: data/r1-rank-tracking/pricing.json and data/r1-rank-tracking/compute.py

How to cite this report

Amit Tiwari (2026). What It Costs To Track 2,000 Keywords. Report, September 2026. amittiwari.net. https://amittiwari.net/reports/what-it-costs-to-track-2000-keywords

Get the PDF

The full report as a PDF, with the method and the raw numbers. One email, no sequence.

So I can look before we talk.

Discuss in the community ↗