Ranki.io SEO/AEO consultant
официальныйБесплатный SEO и AEO MCP-сервер, который превращает ваш Claude / Cursor / ChatGPT Desktop в старшего SEO + AEO консультанта. Анализирует любой URL, генерирует sitemap.xml / llms.txt / robots.txt, находит пробелы в ключевых словах и точно указывает вашему ИИ, что исправить — всё за счёт ваших собственных AI-кредитов, а не наших.
Что можно делать с Ranki Io SEO AEO Consultant MCP?
- Аудит SEO на странице — Запустите
audit_seoдля любого URL, чтобы получить оценку от 0 до 100, охватывающую заголовки, мета-описания, канонические ссылки, охват альт-текста изображений и наличие JSON-LD с рекомендациями по исправлению каждой ошибки. - Аудит оптимизации для ответов ИИ — Используйте
audit_aeo, чтобы проверить схему FAQPage, вводные определения,llms.txt, разрешения для ИИ-ботов и заголовки в стиле ответов, чтобы ваш сайт цитировался ChatGPT и Claude. - Измерение Core Web Vitals и скорости — Вызовите
audit_speedилиaudit_core_web_vitals, чтобы получить реальные оценки Lighthouse и метрики LCP/CLS/INP, а затем точные команды для оптимизации изображений с помощьюoptimize_images. - Генерация основных SEO-файлов — Создайте готовые к развертыванию
robots.txt,sitemap.xml,llms.txtи JSON-LD схему за один шаг с помощьюseo_starter_kitили отдельных инструментовgenerate_*. - Поиск контентных возможностей — Попросите
find_topic_ideasсоставить структурированный бриф из 15 тем статей по интенту или используйтеfind_keyword_gap, чтобы найти ключевые слова, по которым ранжируются конкуренты, а вы — нет. - Классификация скрытых страниц — Запустите
audit_hidden_pagesпо домену, чтобы выявить административные маршруты, черновики и страницы с noindex, а затем получите готовый к вставке блокrobots.txt.
Документация
Ranki MCP — Бесплатный MCP для SEO, AEO, скорости и оптимизации изображений для Cursor, Claude Code, Windsurf и ChatGPT
MCP, который не просто сообщает — ваш агент исправляет. Аудирует любой URL на SEO и оптимизацию для ответных систем, измеряет реальные Core Web Vitals через Google PageSpeed Insights и дает агенту инструкции по конвертации изображений в AVIF и WebP, переписыванию тегов
<img>в адаптивные<picture>сsrcsetиalt, вставке 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. Повторный запуск npx @ranki.io/cli update позже обновит навык; 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. Нативная альтернатива на Node для разработчиков, предпочитающих инструментарий JavaScript, устанавливается черезnpx -y @ranki.io/seo-aeo-mcp(stdio) илиnpx @ranki.io/seo-aeo-mcp --serve(HTTP).
Обе предоставляют одни и те же 22 инструмента с одинаковым JSON-выводом, защитой от SSRF, семантикой ограничения скорости и уровнем безопасности. Реализация на TS запускает 15 бесплатных инструментов нативно в Node, а 7 платных мостовых инструментов проксирует к тому же REST API на app.ranki.io, который использует PHP-сервер. Ни одна из них никогда не открывает базу данных — платные инструменты проходят через промежуточное ПО Laravel ApiKeyAuth и ограничены данными вызывающего пользователя.
Что он на самом деле делает — 22 инструмента
MCP-сервер предоставляет 22 инструмента. Ваш агент вызывает их, как любой другой инструмент MCP; они возвращают отчеты в Markdown, которые ваш агент отображает встроенно, а затем действует — конвертирует файлы, переписывает HTML, генерирует новые, фиксирует результат.
Аудит
audit_seo(url)— карта оценки on-page SEO из 10 проверок: длина title, meta description, уникальность H1, canonical, viewport, HTTPS, полнота OpenGraph, покрытие alt у изображений, количество внутренних ссылок, наличие JSON-LD. Возвращает оценку 0–100 с рецептами исправления для каждой ошибки.audit_aeo(url)— карта оценки оптимизации для ответных систем из 8 проверок: JSON-LD FAQPage / Article, вступительное определение менее 80 слов, авторская подпись, наличиеllms.txt,robots.txtразрешает GPTBot / ClaudeBot / PerplexityBot, заголовки H2/H3 в стиле ответов, сравнительные таблицы.audit_hidden_pages(urls, domain)— классифицирует каждый путь какrobots-disallow,noindex,keepилиunsureс обоснованием. Выявляет маршруты администратора, конечные точки API, черновики, страницы входа, панели управления аккаунтом, страницы благодарности, артефакты сборки и URL результатов поиска. Возвращает готовый к вставке блокrobots.txt.
Скорость и изображения — это то, чего больше никто не делает
audit_speed(url, strategy)— реальные оценки Lighthouse (Производительность, Доступность, SEO, Лучшие практики) и Core Web Vitals (LCP, CLS, INP, FCP, TTFB) через Google PageSpeed Insights. Возвращает возможности по изображениям с экономией байтов на файл, блокирующий рендеринг JS / CSS и неудачные аудиты on-page SEO. Стратегия по умолчанию —mobile(Google ранжирует с приоритетом мобильных).audit_core_web_vitals(url)— один абзац на метрику с буквальным рецептом исправления. "Элемент LCP — hero.png размером 2,4 МБ, конвертация в WebP экономит 1,8 МБ → -1,1 с LCP." Извлекает URL элемента LCP из Lighthouse, чтобы агент точно знал, какой файл оптимизировать.optimize_images(images, max_width)— для каждого изображения: целевой формат (AVIF + WebP), адаптивная ширина 1×/2×, предложение alt-текста, буквальные командыsharp-cli/cwebp/avifencи готовый к вставке блок<picture>сsrcset. Ваш агент запускает конвертацию локально в репозитории и переписывает теги<img>.
Генерация
generate_sitemap_xml(urls)— создает готовый к развертываниюsitemap.xmlиз списка URL с актуальными временными метками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)— извлекает фактический title, h1 и первый абзац с каждого URL (или принимает текстовое описание для неразвернутых страниц), затем возвращает таблицу Markdown с 5 кандидатами title и meta description на страницу в 5 ракурсах (описательный, с выгодой, в формате вопроса, с конкретным числом, с ключевым словом в начале). Каждый кандидат помечен на соответствие длине.explain_seo_terms(category)— справочный глоссарий из 40+ терминов SEO и AEO: SEO, AEO, GEO, JSON-LD, FAQPage, canonical,llms.txt, Core Web Vitals, E-E-A-T, обновление полезного контента, дорвейные страницы и многое другое. Фильтрация по категориям: основы, AEO, техническое, аналитика, санкции.
Установка
install_skill(agent)— возвращает команды установки для навыка ranki-seo-skills в Claude Code, Claude Desktop, Cursor, Windsurf, веб-проектах Claude.ai и универсальных агентахAGENTS.md.
Ваш аккаунт Ranki.io — реальные данные о ранжировании внутри вашей IDE (платный API-ключ)
get_account()— whoami для вашего API-ключа: имя, email, план, дневные и месячные лимиты, текущее использование.list_projects()— список проектов в вашем аккаунте Ranki.io.list_articles(project_id)— постраничный индекс статей в проекте: nano_id, title, status, language, focus_keyword[], структура TOC, количество слов, оценка SEO. Опциональный фильтр по статусу.get_article(article_id)— получает одну статью по ееnano_id: title, HTML, фокусные ключевые слова, содержание, URL встроенных изображений, оценка 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 Overview на момент захвата.
Как выглядит типичная сессия
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.
Файл навыка (в ranki-seo-skills) сообщает вашему агенту, когда какой инструмент вызывать, в каком порядке и где в вашем репозитории применить каждое исправление.
Ограничения скорости
| Уровень | Дневной лимит | Область действия | Доступные инструменты |
|---|---|---|---|
| Без ключа | 5 вызовов | на IP | 15 бесплатных инструментов (аудиты, генераторы, скорость, оптимизация изображений, контент-стратегия, установка) |
| API-ключ Ranki.io | 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-кодеров)
Добавьте в ~/.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 получает один автоматически созданный. Бесплатные инструменты-советники работают без ключа (5 вызовов/IP/день); для мостовых инструментов list_projects и get_article он требуется.
Как это используют vibe-кодеры
Сценарий 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-клиентов) — установите npm-пакет
@ranki.io/mcp, который представляет собой 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 (Search Engine Optimization) — это обеспечение ранжирования вашего сайта в классических 10 синих ссылках Google. Сигналы: title tags, meta descriptions, H1, canonicals, sitemap, внутренние ссылки, скорость страницы, mobile-friendly, HTTPS. Такие инструменты, как Ahrefs / SEMrush / SurferSEO, оценивают их.
AEO (Answer Engine Optimization) — это обеспечение цитирования вашего сайта, когда 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?»).
- Сравнительные таблицы — HTML-элемент с самым высоким уровнем цитирования в AI Overviews.
audit_aeo проверяет все эти 8 пунктов и точно указывает вашему AI, что исправить. По состоянию на 2026 год AEO-трафик является самым быстрорастущим SEO-каналом, и большинство сайтов имеют нулевое покрытие.
llms.txt — формирующийся стандарт AI-поиска
Вдохновлен robots.txt, но для LLM. Файл Markdown по адресу /llms.txt сообщает 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/ за виртуальный хост Nginx, обслуживающий public/index.php, и готово.
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).
Философия инструментов: возвращайте данные + инструкции для вызывающего ИИ, никогда не вызывайте LLM самостоятельно.
Часто задаваемые вопросы
Это платно?
Инструменты-советники (все, кроме list_projects / get_article) бесплатны — 5 вызовов с одного IP в сутки по UTC. Чтобы снять это ограничение, получите бесплатный API-ключ на app.ranki.io/developer. Инструменты-мосты требуют ключ, потому что они извлекают ваши приватные данные Ranki.io.
Использует ли Ranki MCP мои кредиты Claude?
Да — и только ваши. Мы никогда не делаем вызовы LLM. MCP-сервер возвращает структурированные рекомендации; ваш Claude / Cursor оценивает их и действует на их основе, используя ваши собственные кредиты.
Как передаются данные?
- Инструменты-советники (
audit_*,generate_*,seo_starter_kit,find_*) запрашивают переданный вами URL (никаких других сетевых вызовов). - Инструменты-мосты (
list_projects,get_article) обращаются кapp.ranki.io/api/v1/...по HTTPS с вашимX-API-Key. - Мы не логируем тела запросов. Мы логируем IP + название инструмента + статус ответа для ограничения частоты запросов и отладки.
Это открытый исходный код?
Да — лицензия MIT, полный исходный код в этом репозитории.
Могу ли я запустить это внутри VPC моей компании?
Да — server/ это простой PHP, без зависимостей от внешних сервисов, кроме app.ranki.io для инструментов-мостов (которые можно отключить, удалив файлы этих инструментов).
Чем это отличается от конкурентов, таких как Surfer / Frase / Outrank?
Это SaaS-панели, которые аудируют один URL за раз и рекомендуют изменения. Ranki MCP — это протокольный уровень, который позволяет вашему ИИ использовать эти аудиты прямо во время написания кода в вашей IDE. Другая форма, другая цена (бесплатно), другая аудитория (vibe-кодеры, а не SEO-специалисты).
Я vibe-кодер и понятия не имею, что означает AEO.
Это буквально для вас и создано. Начните с seo_starter_kit("yourdomain.com") — ваш Claude проведет вас через все.
Будете ли вы обучать ИИ на моих данных?
Мы не обучаем модели. У нас нет моделей. Мы — тонкий слой-советник на основе детерминированных проверок.
Лицензия
MIT. См. LICENSE.
Создано с заботой командой Ranki.io — AI SEO + AEO автоматизация для основателей, агентств и создателей.