Discoverability
robots.txt
Файл-инструкция для поисковых и AI-ботов: что разрешено или запрещено индексировать (RFC 9309).
Что такое robots.txt?
robots.txt — текстовый файл по адресу /robots.txt с директивами для поисковых ботов и AI-краулеров: какие страницы разрешено или запрещено посещать.
Стандарт формализован в RFC 9309 (2022). Существует с 1994 года и поддерживается всеми поисковиками и большинством AI-ботов.
Зачем сайту robots.txt?
Без robots.txt AI-боты (GPTBot, ClaudeBot, PerplexityBot) не знают, куда им можно, куда нельзя. Файл решает четыре задачи:
- Явно разрешить AI-ботам индексировать публичный контент
- Запретить индексацию чувствительных путей (
/admin/,/api/private/) - Указать на sitemap через директиву
Sitemap: - Добавить Content-Signal для декларации согласия на AI-использование
Пример корректного robots.txt для GEO:
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/private/
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
Sitemap: https://example.com/sitemap.xml
Content-Signal: ai-train=yes, search=yes, ai-input=yes
Как настроить robots.txt?
Создайте файл public/robots.txt (для статических сайтов) или endpoint /robots.txt (для динамических).
WordPress: плагины Yoast SEO или Rank Math генерируют robots.txt автоматически. Вручную добавьте секции для AI-ботов через редактор файлов.
Next.js: создайте app/robots.ts или public/robots.txt:
// app/robots.ts
import type { MetadataRoute } from 'next';
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{ userAgent: '*', allow: '/' },
{ userAgent: 'GPTBot', allow: '/' },
{ userAgent: 'ClaudeBot', allow: '/' },
],
sitemap: 'https://example.com/sitemap.xml',
};
}
Astro: разместите public/robots.txt — отдаётся как статический файл.
Как мы проверяем robots.txt?
Сканер делает GET /robots.txt и последовательно проверяет:
- HTTP 200 — файл существует и доступен
- Content-Type: text/plain — отдаётся как текст, не HTML
- Непустое содержимое — файл не пустой
- Наличие директив
User-agent:— минимум один блок (RFC 9309) - Валидность формата — нет структурных ошибок
Градиент результата: 1.0 если есть Sitemap: или хотя бы один не-wildcard User-agent блок; 0.5 если только User-agent: * без Sitemap. Статус fail — при HTTP не-200, пустом файле или отсутствии директив.
Файл кешируется и передаётся в зависимые проверки: AI bot rules, Content Signals, Sitemap.