← Back to work

Project · Open source

Chinese-Geo

A China-first open-source SEO + GEO toolkit: one command audits your site’s AI visibility, so it gets crawled and cited by domestic AI engines — Doubao / DeepSeek / ERNIE / Tongyi / Yuanbao / Kimi — and the overseas majors too.

  • 2026
  • Solo project
  • Python · zero runtime deps
  • MIT
  • On PyPI

Quick start

Command line

Install it (needs Python 3.9+):

pip install Chinese-Geo

Run a visibility audit on any URL:

seogeo audit example.com

In a few seconds you get a report: a score across 7 dimensions plus a prioritized fix list to work through. Add --format json for CI.

For AI agents

It was built for agents — 6 Agent Skills + an MCP server (8 tools). One-click in Claude Code (skills + MCP together):

/plugin marketplace add qingqingpi/Chinese-Geo
/plugin install seogeo

Other agents (Codex / Cursor / Kimi …): run seogeo init --agent codex (or cursor / gemini …) in your project — it writes the instruction file + MCP config for you, without overwriting what's already there.

Chinese-Geo — a knowledge graph of domestic AI engines crawling and citing a site

Why I built it

Almost every SEO / GEO (generative engine optimization) tool out there is built for the overseas world — it only watches ChatGPT and Perplexity, and only knows Wikipedia and llms.txt. But China is a different game: each AI engine mostly feeds on its own ecosystem — Doubao ← Douyin / Toutiao, Yuanbao ← WeChat official accounts, ERNIE ← Baidu Baike / Baijiahao, Tongyi ← portal media, DeepSeek / Kimi ← Zhihu / CSDN. Crawler admission, off-site distribution, citation monitoring — all of it differs, and llms.txt is basically useless domestically: here GEO is won through live retrieval, not training data.

Nobody was filling that gap, so I did — cover the China side fully, without dropping the overseas majors. Two ecosystems, one tool.

What it does

I boiled the core down to one command: an AI-visibility audit for any site. I didn't want it to just say "go do some SEO" — so it hands you something concrete: a score across 7 dimensions plus a prioritized fix list — whether domestic / overseas crawlers are let in, whether your sitemap is findable, structured data, content citability, JS-render shells, technical baseline. Each item tells you where you're losing points and what fixing it is worth. A deterministic engine, happy to run in CI.

The best test is to turn it on yourself. I audited my own site with it — and, more to the point, actually fixed what it flagged:

From "good" to "excellent." The remaining "content citability" points I left on the table on purpose — the home page is a minimal landing; the citable depth lives in the blog, not here. Beyond the audit it also generates recommended robots.txt, JSON-LD and llms.txt scaffolds, monitors citation rate / SoV inside domestic engines, and lays out an off-site matrix for Zhihu / CSDN / WeChat.

Making it beautiful

I set myself one bar: it had to be something I'd be comfortable handing to someone else. So I didn't cut corners here:

  • Adding a new check takes me minutes. One rule = one @register file plus one import; the pipeline finds it on its own, no touching the core — so it keeps growing as each engine changes.
  • It's solid enough that I'd put it in production. Zero runtime dependencies (pure Python stdlib), 25 test files of real assertions, CI across Python 3.9–3.12, auto-publish to PyPI on tag, and I added SSRF protection in the fetch layer.
  • It genuinely understands China — the part I think is hardest to replace. I built a double-check for Bytespider's "robots-blocked ≠ really blocked", measured body length by Chinese character count (so "Chinese has no spaces" can't fool it), and verify crawler IPs by reverse DNS — things overseas tools generally lack.

How to use it

I shipped it in four shapes — use whichever fits your workflow:

  • CLI: pip install Chinese-Geo, then seogeo audit example.com.
  • 6 Agent Skills (vendor-neutral, run in Claude Code / Codex / Kimi…): audit → rewrite → off-site, end to end.
  • MCP server: 8 tools, plug into any MCP-capable agent.
  • Claude Code plugin: one-click install with slash commands.