Ben Senescu eec998a762
feat(rank-tracking): raise scheduler throughput 5x with rate-limit-derived sizing (#465)
* feat(rank-tracking): raise scheduler budget to 2000 units/tick

The 200-unit budget used ~2-6% of DataForSEO's 2,000 req/min account
cap and would take days to drain the post-#462 backlog. Scheduled checks
run through the task queue (1 task_post per 100 units + free task_get
polls), so a full 2,000-unit tick peaks around 1,200 req/min — still
leaving headroom for the other DataForSEO products on the account.

Also raise the due-config fetch limit to 500 so skip-heavy stretches
(free orgs, keywordless configs) drain more than 200 rows per tick.

* fix(rank-tracking): retune budget to 1000 with accurate sizing and a tick deadline

Review corrections to the 10x bump: task_get polling is one call per unit
per round and rounds wake synchronized per tick, with up to three ~15-min
poll windows overlapping the */5 cron — 2000 units/tick could saturate
DataForSEO's 2000 req/min cap, silently aging throttled polls into the
~3x-cost live fallback billed to customers. 1000/tick keeps real headroom
and is still ~45x steady-state demand.

Add a 3-minute wall-clock deadline to the per-config loop (stoppedByDeadline
in the tick summary): a skip-heavy 500-candidate tick pays serial Autumn
round-trips per distinct org and could otherwise run into the 15-minute cron
kill. Name the fetch limit (DUE_CONFIGS_PER_TICK) and correct its comment.

Test fixtures now derive from MAX_KEYWORDS_PER_CONFIG instead of asserting
an unreachable 1500-keyword config.

* fix(cron): run the audit watchdog before the rank loop

reconcileStaleAudits ran after runScheduledRankChecks in the same
invocation, so a slow rank tick would delay the watchdog and a wall-clock
kill would skip it entirely.

* fix(cron): preserve watchdog failure signal; codex review polish

Rethrow a caught reconcileStaleAudits error after the rank loop so the
invocation still reports failed (matching pre-reorder semantics), use an
inclusive deadline comparison, and note overlapping-tick poll residue in
the sizing comment.
2026-08-07 16:44:16 -04:00
2026-02-27 14:09:33 -05:00
2026-04-08 14:09:01 -04:00
2026-07-30 00:23:36 -04:00
2026-07-29 23:10:01 -04:00
2026-02-27 14:09:33 -05:00
2026-02-27 14:14:23 -05:00

OpenSEO

Open source alternative to Semrush and Ahrefs

OpenSEO is an SEO tool for the people. If tools like Semrush or Ahrefs are too expensive or bloated, OpenSEO is a pay-as-you-go alternative that you actually control.

All-in-one SEO tool for you and your AI agent.

Connect with any agent like Claude Code, OpenClaw or Hermes. We have pre-built skills, but you can build your own to tailor OpenSEO to your needs.

Image

Hosted Version

Try OpenSEO for free on our website. If you want to support the project, a hosted subscription is $10/month.

openseo.so

Why use OpenSEO?

  • Best in class MCP and AI Skills.
  • Modern, simple UI.
    • Focused workflows instead of a bloated, complex SEO suite.
  • No subscriptions.
    • Bring your own DataForSEO API key and pay only for what you use.
  • Fork and vibe code your own custom tool.

Main SEO Workflows

  • Keyword research
  • Rank tracking
  • Competitor Insights
  • Backlinks
  • Site Audits
  • AI Visibility

OpenSEO MCP & Agent Skills

OpenSEO exposes an MCP server so AI agents like Claude Code, OpenClaw, and Hermes can use your SEO data directly. Agent Skills are reusable workflows that guide your agent through SEO tasks using the MCP.

Self-Hosting

OpenSEO supports two self-hosting paths:

Either way, you need a DataForSEO API key to get SEO data. See docs/DATAFORSEO_API_KEY.md.

Costs

OpenSEO needs a DataForSEO API key so that you can get SEO data. You pay them directly when self hosting.

See openseo.so/pricing

When you self host, your costs will be slightly lower than the estimates on our website. The way the hosted service makes money is by charging 28% extra for every request we make to DataForSEO.

Local Development

See docs/LOCAL_DEVELOPMENT.md.

Contributing

Contributions are very welcome. See docs/CONTRIBUTING.md.

Community

Join Discord to chat: Discord

Follow along for updates:

Description
No description provided
Readme MIT 24 MiB
Languages
TypeScript 95.9%
MDX 2.4%
CSS 0.8%
JavaScript 0.5%
HTML 0.2%
Other 0.2%