# Apify Baidu Rank Tracker

> Track where a brand, domain, or competitor ranks on Baidu with the Apify Baidu Search Scraper Actor (johnvc/Baidu-Search-Scraper), built for China SEO. Run your keywords on a schedule, read each SERP page's nested organic_results (position, title, link), match your domain, and build a Baidu tracking history for rank checks, brand monitoring, and competitor watch in the Chinese market. Filters by device, Simplified or Traditional Chinese, and time period. Use when the user wants baidu tracking or baidu monitoring, a Baidu rank tracker or rank checker, to check keyword rankings on Baidu, to monitor a brand or competitor on the Chinese web, or China SEO reporting for a site. Pay-per-page billing, MCP-ready for Claude and other AI agents.

- Skill: `johnisanerd/apify-baidu-rank-tracker` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add johnisanerd/apify-baidu-rank-tracker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnisanerd/apify-baidu-rank-tracker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- License: MIT
- Author: johnisanerd (https://skillmd.com/u/johnisanerd)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/johnisanerd/apify-baidu-rank-tracker

---


# Baidu Rank Tracker: China SEO Keyword Monitoring

Turn Baidu searches into a rank tracker for the Chinese market. Run a keyword, read the organic positions, match your domain, and repeat on a schedule to build a Baidu tracking history: where you rank, where competitors rank, and how that moves over time.

## When to use this skill

- The user wants Baidu tracking or Baidu monitoring for keywords, a brand, or a domain.
- They want to check where a site ranks on Baidu for a set of keywords.
- They want recurring China SEO reporting: positions per keyword over time.
- They want competitor watch on the Chinese web: who holds the top spots for their terms.

Not for: one-off Baidu SERP exports (use the apify-baidu-search-api skill), Google or Yandex rank tracking, or Baidu paid-ads reporting.

## What each check returns (one dataset item per SERP page)

Each dataset item is one page of results. The ranking signal lives in the nested `organic_results` array: every row has `position`, `title`, and `link`, with `displayed_link`, `rich_snippet`, and `sitelinks` on rows where Baidu shows them. Match your domain against `link` (often a Baidu redirect URL) and `displayed_link` when present. The item also carries `related_searches` (`query`, `link`) and `people_also_search_for` (`text`, `link`) for keyword expansion, `top_searches` trending data, and run metadata: `query`, `device`, `localization`, `page`, `search_timestamp` (the tracking timestamp), `total_results_found`, `pages_processed`, and `pagination_info`.

## Prerequisites

- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=skillrepo).
- Authentication via `apify login`, or an `APIFY_TOKEN` environment variable (Apify Console, Settings, Integrations).

## The Actor

- Store page: https://apify.com/johnvc/Baidu-Search-Scraper?fpr=9n7kx3&fp_sid=skillrepo
- Actor ID: `johnvc/Baidu-Search-Scraper`
- Pricing: a small per-run start fee plus a per-page fee (see `references/gotchas.md`).

## Run it with the Apify CLI

One rank check, top 10 only (one page):

```bash
apify actors call "johnvc/Baidu-Search-Scraper" -i '{"query":"项目管理软件","localization":2,"max_pagination":1}' \
  --json \
  --user-agent apify-awesome-skills/apify-baidu-rank-tracker \
  2>/dev/null
```

A deeper check across the top 30 (three pages):

```bash
apify actors call "johnvc/Baidu-Search-Scraper" -i '{"query":"crm 软件","localization":2,"num_results":10,"max_pagination":3}' \
  --json \
  --user-agent apify-awesome-skills/apify-baidu-rank-tracker \
  2>/dev/null
```

Read a finished run's items later, for example from a scheduled run:

```bash
apify datasets get-items <DATASET_ID> --format json --user-agent apify-awesome-skills/apify-baidu-rank-tracker 2>/dev/null
```

Every call carries the three flags this repo expects: `--json` (or `--format json`), `--user-agent apify-awesome-skills/apify-baidu-rank-tracker`, and `2>/dev/null`.

## Run it from Claude or another AI agent (MCP)

The Actor is MCP-ready. Add the hosted server URL:

`https://mcp.apify.com/?tools=actors,docs,johnvc/Baidu-Search-Scraper`

Then ask, for example: "Check where example.cn ranks on Baidu for 项目管理软件 and list the top 10 with positions." MCP setup docs: https://docs.apify.com/platform/integrations/mcp

## Workflow

1. Define the tracking set. One keyword per Actor call: the brand term, product names, and the competitor terms that matter. Chinese-language keywords track the market your users actually search in.
2. Fix the SERP variant. Set `localization` (2 for Simplified Chinese, 3 for Traditional) and `device` (`desktop` or `mobile`) once and keep them constant across checks, so position changes reflect the market and not the settings.
3. Bound the depth. `max_pagination` 1 tracks the top 10; 3 tracks roughly the top 30. Depth is the cost driver, so track only as deep as the report needs.
4. Estimate cost per check and per month, then confirm with the user. See `references/gotchas.md`.
5. Run the checks and score them. For each keyword, scan `organic_results` for rows whose `link` or `displayed_link` matches the tracked domain, and record `position` with the item's `search_timestamp`. No match across all pages means not ranked in the tracked depth: record it as such.
6. Persist and repeat. Append each check to your store (sheet, database, or JSON file) keyed by keyword, domain, and date. For recurring tracking, wrap the same input in an Apify Schedule or a cron job, and alert when a position drops below a threshold.

## Inputs

- `query` (string, required): the keyword to track
- `device` (enum: `desktop`, `mobile`, `tablet`; default `desktop`): keep constant across checks
- `localization` (integer: 1 all languages, 2 Simplified Chinese, 3 Traditional Chinese; default 1)
- `num_results` (integer, default 10, max 50): rows per page
- `max_pagination` (integer, default 3): tracked depth in pages, the cost driver
- `page` (integer, default 1): starting page
- `time_period` (string): `stf=START_UNIX,END_UNIX|stftype=1` date window, rarely needed for tracking

## Cost

Billing is a small one-time start fee per run plus a per-page fee, pre-charged from `max_pagination`. A one-page rank check costs a few cents; a daily one-page check on 10 keywords lands in the ballpark of $10 per month. Estimate with the live prices in `references/gotchas.md` before scheduling.

## Honest limits

- Positions reflect the SERP at crawl time; Baidu results fluctuate run to run, so trends across checks matter more than any single reading.
- Organic `link` values are often Baidu redirect URLs; when `displayed_link` is absent, match on your domain name inside `title` and resolve redirects client-side for certainty.
- This skill reads and scores the SERP per run; the position history lives in your store, not in the Actor.
- Tracking depth is bounded by `max_pagination`; a site outside that depth reads as unranked.

## Troubleshooting

- Domain never matches: check whether `link` is a Baidu redirect URL; resolve it or match on `displayed_link` and `title` instead.
- Positions jump between checks: keep `device` and `localization` constant, and compare same-time-of-day checks.
- Empty `organic_results`: the keyword has no results on Baidu; verify the query manually and try a Chinese phrasing.
- Run exits early with a budget warning: raise the run's budget limit or lower `max_pagination`.

See `references/gotchas.md` for cost guardrails and error recovery, and `references/actor-index.md` for the Actor routing table.

## Related international rank-tracking Actors

- Yandex Search Scraper (Russia and the CIS): https://apify.com/johnvc/Scrape-Yandex?fpr=9n7kx3&fp_sid=skillrepo
- Naver Search API (Korea): https://apify.com/johnvc/naver-search-api?fpr=9n7kx3&fp_sid=skillrepo
- DuckDuckGo Scraper (privacy-focused Western markets): https://apify.com/johnvc/DuckDuckGo-Scraper-for-serp-rankings?fpr=9n7kx3&fp_sid=skillrepo

