Repository navigation
SERP Providers and A Parser
Rank tracking, clustering, outlines, content analysis, plagiarism checks, site: estimates and geo-grid scans all need search results. You choose where they come from in Settings → SERP & scraping.
| Provider | What it's good for | Pricing |
|---|---|---|
| Serper.dev | Cheap, simple Google SERPs with geolocation. Best place to start | ~$0.30–1 per 1,000 |
| DataForSEO | Google + Bing SERPs; the same credential unlocks Demand, AI Overviews, LLM Mentions, brand citations and backlinks. Paste the Base64 token or login:password
|
pay-as-you-go |
| ScrapingRobot | Rank tracking and SERP analysis | free tier 5,000 scrapes/month |
| GoAnyAPI | Credits for domain traffic, cached SERPs with DR/traffic per result, KD, backlinks | pay-as-you-go |
| A-Parser | Your own self-hosted scraper: no per-request cost, you pay for proxies | license + proxies |
| XMLRiver | Google SERP API used by the index checker and the backlinks indexed-status check | per check |
| Firecrawl | Not a SERP: a scraping fallback that gets past anti-bot pages and returns clean Markdown, used when a direct fetch of a competitor page fails | per page |
On the same tab, choose:
- the active SERP provider for content tools (clustering, outlines, analysis);
- the Rank Tracker provider, which can differ (e.g. something cheap for daily checks, something richer for occasional research). Empty means "use the active one";
- the Rank Tracker fallback provider for checks the first one couldn't answer (captcha, 503, "try again later").
Link-purchase tokens for Magic links are on this tab too.
A-Parser is a commercial scraper you run on your own machine. Connected to OpenGSC it becomes a SERP provider, a rank-tracker backend, the source for SERP Monitor, an AI Overviews source and a GEO Audit engine. Requests cost nothing per call; result quality depends on your proxy pool.
- In A-Parser: Settings → API: enable the API server and copy the password. Note the host:port it listens on (default
9091). - In OpenGSC: Settings → SERP & scraping → A-Parser: base URL (e.g.
http://127.0.0.1:9091when A-Parser runs on the same server; keep the external port closed) and the API password. Optionally a thread config name (empty =default). Press Test. - Or set it on the server, where it takes precedence over the UI:
An env-configured instance never fetches a URL typed into a browser, which is the safer deployment.
OPENGSC_APARSER_BASE_URL=http://127.0.0.1:9091 OPENGSC_APARSER_PASSWORD=...
- Docker:
127.0.0.1inside the container is the container. Use the host's LAN IP orhost.docker.internal.
Once connected, Research → A-Parser appears in the top menu: a console showing whether the instance is up, what it's running, which parsers this build has, whether proxies are behind it, and a test query.
If you change the API password in A-Parser, update it in OpenGSC too (or in
.env), otherwise every A-Parser feature reports it as unconfigured or failing.
Uses SE::Google::Position, which stops at the results page where your site appears. A keyword in the top 10 costs one page, position 35 costs four, and only "not in the top 100" costs all ten.
- Connect A-Parser (above). The instance needs
SE::Google::Positionand proxies Google accepts. - Optional sanity check on the server:
If an option reads
cd /root/opengsc npx tsx scripts/aparser-position-probe.ts your-site.com "a keyword you rank for" gr el
NOT in preset, or the Position and fullSE::Googlenumbers differ, don't switch yet. - Settings → SERP & scraping → Rank Tracker provider → A-Parser; optionally set a fallback.
Details worth knowing:
- Your site is matched as exact domains (
site.grandwww.site.gr). A tracked apex ranking onblog.site.grreads as "not found": a miss, never a false hit. - Captcha solving is inherited from your
SE::Googlepresets automatically. - "Not found" is only stored if the parse went through all ten pages. A short parse is an error (
aparser_partial_serp), so a dead proxy can't fake a rank drop. - Local (city) keywords run as a normal
SE::Googlescan becausePositiondoesn't accept geo.
Runs GEO Audit stage 1 through FreeAI::ChatGPT on your instance instead of a paid API. Geolocation follows the proxy's exit IP, and citations come typed with snippets.
- Make sure
FreeAI::ChatGPTis in your build (the A-Parser console lists parsers). - SEO Tools → GEO Audit → engine: A-Parser.
Web search is forced on for every request. The report names the model the free session actually served. Stage 2 (analysis) still runs on your Utility AI task. Without it, the audit ships with the deterministic half only. Driving a free consumer service through automation is your call to make against that service's terms.
-
AI Overviews in AI Visibility uses DataForSEO when present, otherwise your A-Parser (
SE::Google). - SERP Monitor v1 runs only on A-Parser. See SERP Monitor.
Deep reference: RANK-TRACKER-APARSER.md, GEO-APARSER.md.
OpenGSC · opengsc.org · Repository · Issues · Changelog · MIT licence
Get started
Install and run
Analytics
- Dashboard
- Site Page
- Portfolio Analytics
- Rank Tracker
- AI Visibility (AEO)
- Indexing
- Audit, Health, Uptime
- Backlinks
Providers
Tools
Delivery
Help