Ranki.io SEO/AEO consultant
官方免費的SEO與AEO MCP伺服器,能將你的Claude、Cursor或ChatGPT桌面版轉變為資深SEO與AEO顧問。可審核任何網址、生成sitemap.xml、llms.txt、robots.txt,找出關鍵字缺口,並明確指示你的AI需要修正哪些項目——全程使用你自己的AI額度,絕不消耗我們的資源。
你可以用 Ranki Io SEO AEO Consultant MCP 做什麼?
- 審核頁面SEO — 對任何網址執行
audit_seo,即可獲得 0–100 分的評分卡,涵蓋標題、中繼描述、標準網址、圖片替代文字覆蓋率及 JSON-LD 存在情況,並附上各項失敗的修正建議。 - 審核答案引擎優化 — 使用
audit_aeo檢查 FAQPage 結構化資料、定義性引言、llms.txt、AI 機器人權限及問答式標題,讓您的網站能被 ChatGPT 和 Claude 引用。 - 衡量 Core Web Vitals 與速度 — 呼叫
audit_speed或audit_core_web_vitals取得實際 Lighthouse 分數及 LCP/CLS/INP 指標,再透過optimize_images獲得精確的圖片最佳化指令。 - 產生必要的 SEO 檔案 — 使用
seo_starter_kit或個別的generate_*工具,一次產出可直接部署的robots.txt、sitemap.xml、llms.txt及 JSON-LD 結構化資料。 - 尋找內容機會 — 向
find_topic_ideas索取一份按意圖分類的 15 個文章主題結構化簡報,或使用find_keyword_gap發掘競爭對手有排名而您沒有的關鍵字。 - 分類隱藏頁面 — 在網域上執行
audit_hidden_pages,識別管理員路由、草稿及 noindex 頁面,然後獲得一段可直接貼上的robots.txt區塊。
文件
Ranki MCP — 適用於 Cursor、Claude Code、Windsurf 和 ChatGPT 的免費 SEO、AEO、速度與圖片最佳化 MCP
不只是產出報告的 MCP — 你的代理程式會直接修復。稽核任何網址的 SEO 和答案引擎最佳化,透過 Google PageSpeed Insights 測量真實的 Core Web Vitals,並指示你的代理程式將圖片轉換為 AVIF 和 WebP、將
<img>標籤改寫為帶有srcset和alt的回應式<picture>、加入 JSON-LD 結構化資料、產生sitemap.xml/llms.txt/robots.txt、分類隱藏頁面 — 然後重新執行稽核以證明分數有所提升。全部在 Claude Code、Claude Desktop、Cursor、Windsurf 和 ChatGPT Desktop 中完成。
一行指令安裝
npx @ranki.io/cli install
CLI 會自動偵測你已安裝的 AI 編輯器(Claude Code、Claude Desktop、Cursor、Windsurf、ChatGPT Desktop),在正確的位置寫入正確的 MCP 設定,並從 ranki-seo-skills 儲存庫 下載配套的 Skill 檔案。之後重新執行 npx @ranki.io/cli update 來更新 Skill;npx @ranki.io/cli check 則會驗證設定。
偏好手動 JSON 片段?每個編輯器的範例都在下方的安裝章節中。
兩種實作,相同的工具
此儲存庫以兩種同等實作提供 MCP,讓你可以選擇最適合你技術堆疊的版本:
server/— PHP 8.4 參考實作,為驅動mcp.ranki.io的正式部署版本。託管、強化、零依賴,在 Cloudflare 後方運作。這是mcp.ranki.io的建構基礎。ts-server/— Node / TypeScript 參考實作,以@ranki.io/seo-aeo-mcp的名稱發佈在 npm 上。為偏好 JavaScript 工具鏈的開發者提供的原生 Node 替代方案,可透過npx -y @ranki.io/seo-aeo-mcp(stdio) 或npx @ranki.io/seo-aeo-mcp --serve(HTTP) 安裝。
兩者都提供相同的 22 個工具,具有相同的 JSON 輸出、SSRF 防護、速率限制語意和安全態勢。TS 實作在 Node 中原生執行 15 個免費工具,並將 7 個付費橋接工具代理到與 PHP 伺服器使用的相同 REST API app.ranki.io。兩者都不會開啟資料庫 — 付費工具會經過 Laravel 的 ApiKeyAuth 中介層,並限定在呼叫使用者的資料範圍內。
它實際能做什麼 — 22 個工具
MCP 伺服器提供 22 個工具。你的代理程式會像呼叫任何其他 MCP 工具一樣呼叫它們;它們會回傳 Markdown 報告,你的代理程式會內嵌呈現,然後據此採取行動 — 轉換檔案、改寫 HTML、產生新檔案、提交結果。
稽核
audit_seo(url)— 10 項檢查的頁面 SEO 評分卡:標題長度、meta 描述、H1 唯一性、canonical、viewport、HTTPS、OpenGraph 完整性、圖片 alt 覆蓋率、內部連結數量、JSON-LD 存在與否。回傳 0–100 的分數,並附帶每項失敗的修復方法。audit_aeo(url)— 8 項檢查的答案引擎最佳化評分卡:FAQPage / Article JSON-LD、80 字以內的定義性引言、作者署名、llms.txt存在與否、robots.txt允許 GPTBot / ClaudeBot / PerplexityBot、答案形式的 H2/H3 標題、比較表格。audit_hidden_pages(urls, domain)— 將每個路徑分類為robots-disallow、noindex、keep或unsure,並附帶推理。能捕捉管理員路由、API 端點、草稿、登入頁面、帳戶儀表板、感謝頁面、建置產物和搜尋結果網址。回傳一個可直接貼上的robots.txt區塊。
速度與圖片 — 這是其他工具做不到的部分
audit_speed(url, strategy)— 透過 Google PageSpeed Insights 取得真實的 Lighthouse 分數(效能、無障礙、SEO、最佳做法)和 Core Web Vitals(LCP、CLS、INP、FCP、TTFB)。回傳圖片優化機會,包含每個檔案節省的位元組數、阻擋渲染的 JS / CSS,以及失敗的頁面 SEO 稽核。預設策略為mobile(Google 以行動版優先進行排名)。audit_core_web_vitals(url)— 每個指標一段文字,附帶具體的修復方法。「LCP 元素是 hero.png,大小為 2.4 MB,轉換為 WebP 可節省 1.8 MB → LCP 減少 1.1 秒。」 從 Lighthouse 中挑出 LCP 元素的網址,讓代理程式確切知道要最佳化哪個檔案。optimize_images(images, max_width)— 針對每張圖片:目標格式(AVIF + WebP)、回應式 1×/2× 寬度、alt 文字建議、實際的sharp-cli/cwebp/avifenc指令,以及一個帶有srcset且可直接貼上的<picture>區塊。你的代理程式會在儲存庫中本機執行轉換,並改寫<img>標籤。
產生
generate_sitemap_xml(urls)— 從網址清單建立一個可立即部署的sitemap.xml,並帶有當前的lastmod時間戳記。generate_llms_txt(site_name, summary, key_pages)— 產生llms.txt,這是一種新興標準,用於告訴 AI 爬蟲你的網站內容以及應引用哪些頁面。generate_robots_txt(sitemap_url, allow_ai, disallow_paths)— 建立一個robots.txt,明確允許或拒絕 GPTBot、ChatGPT-User、ClaudeBot、anthropic-ai、PerplexityBot 和 Google-Extended。
內容與策略
seo_starter_kit(domain)— 回傳大多數 vibe-coding 網站缺少的四個基準檔案(robots.txt、sitemap.xml、llms.txt、JSON-LD),可直接貼到你的儲存庫中。find_topic_ideas(url)— 讀取你的首頁,推斷你的利基市場,並回傳一份結構化簡報,用於產生 15 個涵蓋資訊性、商業性和交易性意圖的文章主題,並附帶優先排序標準。find_keyword_gap(url, competitors)— 回傳一個逐步方法,用於尋找競爭對手有排名但你沒有的關鍵字。如果未提供競爭對手,會指示你的編輯器先詢問。propose_titles_metas(urls, focus_keyword)— 從每個網址提取實際的標題、h1 和第一段(或接受未部署頁面的自由文字描述),然後回傳一個 Markdown 表格,為每個頁面提供 5 個標題和 meta 描述候選,涵蓋 5 個角度(描述性、利益導向、問題格式、具體數字、關鍵字優先)。每個候選都會標記是否符合長度規範。explain_seo_terms(category)— 40 多個 SEO 和 AEO 術語的參考詞彙表:SEO、AEO、GEO、JSON-LD、FAQPage、canonical、llms.txt、Core Web Vitals、E-E-A-T、有用內容更新、 doorway pages 等。可按類別篩選:基礎、AEO、技術、分析、懲罰。
安裝
install_skill(agent)— 回傳在 Claude Code、Claude Desktop、Cursor、Windsurf、Claude.ai 網頁專案和通用AGENTS.md代理程式中安裝 ranki-seo-skills Skill 的指令。
你的 Ranki.io 帳戶 — IDE 中的真實排名資料(付費 API 金鑰)
get_account()— 你的 API 金鑰的 whoami:名稱、電子郵件、方案、每日和每月限制、當前使用量。list_projects()— 列出你 Ranki.io 帳戶中的專案。list_articles(project_id)— 專案中文章的分頁索引:nano_id、標題、狀態、語言、focus_keyword[]、目錄大綱、字數、SEO 分數。可選的狀態篩選器。get_article(article_id)— 透過其nano_id擷取單一文章:標題、HTML、焦點關鍵字、目錄、內嵌圖片網址、SEO 分數。list_rank_tracking(project_id)— 專案的 Google Search Console 摘要:28 天總計、按點擊數排名的前 20 個關鍵字、前 20 個機會關鍵字(排名 > 10 且有曝光 — 容易取勝的目標)。list_gsc_keywords(project_id)— 完整的分頁 GSC 關鍵字列表,可按點擊數 / 曝光 / 排名 / CTR 排序。ai_visibility(project_id)— 記錄的 AI 引用快照:在擷取時,你追蹤的主題中有哪些出現在 ChatGPT、Claude、Perplexity 和 Google AI Overviews 的 SERP 中。
典型工作階段範例
You: audit my site speed and fix the slow images
Claude: → Calling ranki.audit_speed(url="https://myapp.dev")
← Lighthouse: 42 perf · LCP 4.8s · 3 images blocking the paint.
→ Calling ranki.optimize_images([hero.png, banner.jpg, card.png])…
← 3 files, recipes returned.
→ Running sharp-cli to convert hero.png → hero.avif + hero.webp + hero@2x.avif…
→ Editing app/page.tsx — rewriting <img> as <picture srcset>, adding alt text…
→ Calling ranki.audit_speed again to verify…
← Lighthouse: 96 perf · LCP 1.4s.
You: now find pages that shouldn't be in Google
Claude: → Calling ranki.audit_hidden_pages(domain="https://myapp.dev")
← 8 robots-disallow, 12 noindex, 118 keep, 4 unsure.
→ Editing public/robots.txt to disallow /admin /dashboard /checkout /account…
→ Adding <meta name="robots" content="noindex"> to app/search/page.tsx…
Done. Submit URL-removal requests in Search Console for the 8 admin pages.
Skill 檔案(位於 ranki-seo-skills)會告訴你的代理程式何時呼叫哪個工具、以什麼順序,以及在儲存庫的哪個位置套用每項修復。
速率限制
| 層級 | 每日上限 | 範圍 | 可用工具 |
|---|---|---|---|
| 無金鑰 | 5 次呼叫 | 每個 IP | 15 個免費工具(稽核、產生器、速度、圖片最佳化、內容策略、安裝) |
| Ranki.io API 金鑰 | 500 次呼叫 | 每個金鑰 | 全部 22 個工具,包含 7 個橋接工具,可讀取你真實的 GSC 關鍵字、排名追蹤、AI 引用、專案列表和來自你 Ranki.io 帳戶的文章庫 |
在 app.ranki.io/developer 取得金鑰。每個回應都會回傳 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset。調度器的錯誤訊息包含重設倒數計時和升級路徑。
安裝
Claude Desktop / Claude Code(推薦給大多數 vibe-coder)
新增到 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"ranki": {
"command": "npx",
"args": ["-y", "@ranki.io/mcp"],
"env": { "RANKI_API_KEY": "rk_live_..." }
}
}
}
重新啟動 Claude Desktop。MCP 指示器應顯示 ranki 並帶有 22 個工具。
Cursor(HTTP 傳輸,無需 npx)
在你的專案中 .cursor/mcp.json:
{
"mcpServers": {
"ranki": {
"url": "https://mcp.ranki.io",
"headers": { "X-API-Key": "rk_live_..." }
}
}
}
ChatGPT Desktop、Continue.dev、Zed,任何支援 MCP 的客戶端
如果客戶端支援 stdio MCP,請使用 Claude Desktop 片段。如果支援 HTTP MCP,請使用 Cursor 片段。
取得你的免費 API 金鑰
前往 app.ranki.io/developer 並點擊 Reveal。你的金鑰已存在 — 每個 Ranki.io 帳戶都會自動建立一個。免費顧問工具無需金鑰即可運作(每個 IP 每日 5 次呼叫);list_projects 和 get_article 橋接工具則需要金鑰。
Vibe-coder 如何使用它
情境 1:「我剛發佈了一個網站,該做什麼?」
You: I just shipped my Next.js app at https://myapp.com. What SEO do I need?
Claude (via Ranki MCP):
→ Calling seo_starter_kit(domain="myapp.com")
← [Returns robots.txt + sitemap.xml + llms.txt + JSON-LD templates]
→ Writing public/robots.txt
→ Writing public/sitemap.xml (enumerating pages from app/ directory…)
→ Writing public/llms.txt
→ Adding JSON-LD <script> to app/layout.tsx
→ Calling audit_seo to verify…
← Score: 92/100. 🎉
情境 2:「為什麼 ChatGPT 沒有引用我的文件?」
You: Why doesn't ChatGPT cite my docs site?
Claude (via Ranki MCP):
→ Calling audit_aeo(url="https://docs.myproduct.com")
← Score 38/100. Failing: no FAQPage schema, no llms.txt, robots.txt blocks ClaudeBot.
→ Fixing each failure in your repo…
← Score 88/100. Re-deploy and ChatGPT should pick it up within 7-14 days.
情境 3:「我不知道該寫什麼部落格文章」
You: I have a Stripe alternative landing page but the blog is empty. Help.
Claude (via Ranki MCP):
→ Calling find_topic_ideas(url="https://mystripe-alt.com")
← [Returns brief with topic generation methodology + 15-topic structure]
→ [Generates 15 topics organized by intent, picks top 3]
← Recommended first 3 articles:
1. "How to switch payment processors without losing customers" (transactional)
2. "Stripe vs us: side-by-side fee comparison for $10K/mo MRR" (commercial)
3. "What is interchange-plus pricing and why most SaaSes overpay" (informational)
情境 4:「我缺少了哪些差距關鍵字?」
You: My competitors are stripe.com and lemonsqueezy.com. What am I missing?
Claude (via Ranki MCP):
→ Calling find_keyword_gap(url="https://mystripe-alt.com",
competitors=["stripe.com","lemonsqueezy.com"])
← [Returns methodology + per-competitor analysis steps]
→ Crawling /blog on both competitors…
→ Cross-referencing against your sitemap…
← 5 high-value gaps found:
- "PCI compliance for small SaaS" (covered by Stripe, not you)
- "How to handle subscription dunning" (covered by both, not you)
- … 3 more
架構
┌────────────────────────┐ ┌──────────────────────────┐
│ Claude / Cursor / etc │ │ mcp.ranki.io (PHP) │
│ │ │ │
│ 1. Sees 22 tools │ JSON-RPC│ - 22 tool definitions │
│ 2. Decides to use one ├────────►│ - HTTP + stdio (npx) │
│ 3. Receives advice │ │ - 5/IP or 500/key per │
│ 4. Acts on the repo │ │ UTC day rate limit │
│ │ │ - REST API bridge │
└────────────────────────┘ └────────────┬─────────────┘
│ (only for keyed tools)
▼
┌──────────────────────────┐
│ app.ranki.io REST API │
│ /api/v1/projects │
│ /api/v1/articles/... │
└──────────────────────────┘
兩種傳輸方式
- stdio(Claude Desktop、Claude Code、大多數 MCP 客戶端)— 安裝
@ranki.io/mcpnpm 套件,它是一個 50 行的 Node.js 填充層,將 stdio JSON-RPC 代理到https://mcp.ranki.io。 - HTTP(Cursor、自訂客戶端)— 直接指向
https://mcp.ranki.io。無需安裝 Node。
儲存庫佈局
ranki-mcp/
├── server/ # PHP MCP server (deployed to mcp.ranki.io)
│ ├── public/index.php # GET → marketing landing page (HTML)
│ ├── index.php # POST → JSON-RPC 2.0 dispatcher
│ ├── lib/
│ │ ├── jsonrpc.php # JSON-RPC reply helpers
│ │ ├── registry.php # Tool registry + REST API bridge
│ │ └── ratelimit.php # Per-IP rate limit (5/day for free tier)
│ └── tools/
│ ├── seo_starter_kit.php
│ ├── find_topic_ideas.php
│ ├── find_keyword_gap.php
│ ├── audit_aeo.php
│ ├── audit_seo.php
│ ├── generate_sitemap_xml.php
│ ├── generate_llms_txt.php
│ ├── generate_robots_txt.php
│ ├── list_projects.php
│ └── get_article.php
└── npx/ # Node.js stdio shim (published as @ranki.io/mcp)
├── package.json
├── index.js # ~50 lines: stdin→POST→stdout
└── README.md
SEO 與 AEO — 有什麼不同?
SEO(搜尋引擎最佳化) 是讓你的網站在 Google 的傳統 10 個藍色連結中排名。訊號包括:標題標籤、meta 描述、H1、canonical、sitemap、內部連結、頁面速度、行動裝置友善、HTTPS。Ahrefs / SEMrush / SurferSEO 等工具會對這些進行評分。
AEO(答案引擎最佳化) 是讓你的網站在 ChatGPT、Claude、Perplexity 或 Google AI Overviews 回答使用者問題時被引用。訊號不同:
- FAQPage JSON-LD — 最大的單一引用訊號。
- 定義性引言 — 第一段是簡潔的「X 是…」答案。
- 作者署名 + E-E-A-T — LLM 偏好具有具名作者的引用來源。
llms.txt— 明確邀請 LLM 使用你的內容。robots.txt允許 AI 機器人 — GPTBot / ClaudeBot / PerplexityBot 絕不能被阻擋。- 答案形式的標題 — 以問題形式表述的 H2/H3(「什麼是 X?」、「X 如何運作?」)。
- 比較表格 — AI Overviews 中引用率最高的 HTML 元素。
audit_aeo 會檢查全部這 8 項,並確切告訴你的 AI 該修復什麼。截至 2026 年,AEO 流量是成長最快的 SEO 管道,而大多數網站的覆蓋率為零。
llms.txt — 新興的 AI 搜尋標準
靈感來自 robots.txt,但專為 LLM 設計。位於 /llms.txt 的 Markdown 檔案會告訴 AI 爬蟲:
- 你的網站內容(用淺顯的英文,而非中繼資料)。
- 哪些頁面最重要。
- 如何引用你。
# Acme Corp
> Acme makes the SDK for shipping React Native apps faster.
## Key pages
- [Homepage](https://acme.dev/)
- [Documentation](https://acme.dev/docs)
- [Pricing](https://acme.dev/pricing)
- [Blog](https://acme.dev/blog)
## About
- Founded 2024, based in Berlin.
- Used by 12,000+ teams including Linear and Notion.
- Open source SDK on github.com/acme/sdk.
使用 generate_llms_txt 在 5 秒內建立一個。
自託管
MCP 伺服器是純 PHP 8.4 — 無框架、無資料庫、無 Composer 依賴。將 server/ 目錄放在一個提供 public/index.php 服務的 Nginx 虛擬主機後方即可完成。
server {
server_name mcp.yourdomain.com;
root /var/www/ranki-mcp/server/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
lib/ratelimit.php 使用 /tmp/ 中的檔案進行 IP 速率限制 — 開箱即用。若要在規模化環境中使用 Redis 支援的速率限制,請替換實作。
貢獻
歡迎針對新的顧問工具提交 PR。若要新增工具:
- 建立
server/tools/your_tool.php,回傳一個可呼叫的function (array $args, string $apiKey): array。 - 回傳
rk_mcp_text_content("...your structured advice...")。 - 在
server/lib/registry.php的rk_mcp_tool_definitions()下方註冊該工具。
工具命名:<verb>_<noun> snake_case(例如 audit_aeo、find_topic_ideas)。
工具理念:回傳資料 + 給呼叫端 AI 的指示,絕不自行呼叫 LLM。
常見問題
這需要花錢嗎?
顧問工具(除了 list_projects / get_article 之外的所有工具)皆為免費 — 每個 IP 每個 UTC 日可呼叫 5 次。若要移除該限制,請至 app.ranki.io/developer 取得免費 API 金鑰。橋接工具需要金鑰,因為它們會提取您的私人 Ranki.io 資料。
Ranki MCP 會使用我的 Claude 點數嗎?
會 — 而且只會使用您的點數。 我們絕不進行 LLM 呼叫。MCP 伺服器回傳結構化建議;您的 Claude / Cursor 會使用您自己的點數來評估並執行。
資料流向何處?
- 顧問工具(
audit_*、generate_*、seo_starter_kit、find_*)會擷取您傳入的 URL(無其他網路呼叫)。 - 橋接工具(
list_projects、get_article)會透過 HTTPS 使用您的X-API-Key呼叫app.ranki.io/api/v1/...。 - 我們不會記錄請求主體。我們會記錄 IP + 工具名稱 + 回應狀態,用於速率限制與除錯。
它是開源的嗎?
是的 — MIT 授權,完整原始碼就在此儲存庫中。
我可以在公司內部的 VPC 中執行它嗎?
可以 — server/ 是純 PHP,除了橋接工具所需的 app.ranki.io 之外,沒有其他外部服務依賴(您可以透過移除那些工具檔案來停用橋接工具)。
這與 Surfer / Frase / Outrank 等競爭對手有何不同?
那些是 SaaS 儀表板,一次稽核一個 URL 並建議變更。Ranki MCP 是一個協定層,讓您的 AI 在 IDE 中編寫程式碼時,能內嵌使用那些稽核結果。不同的形式、不同的價格點(免費)、不同的受眾(氛圍編碼者,而非 SEO 專業人士)。
我是氛圍編碼者,完全不知道 AEO 是什麼意思。
這正是為您設計的。從 seo_starter_kit("yourdomain.com") 開始 — 您的 Claude 會引導您完成一切。
你們會使用我的資料來訓練 AI 嗎?
我們不訓練模型。我們沒有模型。我們只是一個基於確定性檢查的精簡顧問層。
授權
MIT。詳見 LICENSE。
由 Ranki.io 用心打造 — 為創辦人、代理商與創作者提供的 AI SEO + AEO 自動化服務。