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) не знают, куда им можно, куда нельзя. Файл решает четыре задачи:

  1. Явно разрешить AI-ботам индексировать публичный контент
  2. Запретить индексацию чувствительных путей (/admin/, /api/private/)
  3. Указать на sitemap через директиву Sitemap:
  4. Добавить 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 и последовательно проверяет:

  1. HTTP 200 — файл существует и доступен
  2. Content-Type: text/plain — отдаётся как текст, не HTML
  3. Непустое содержимое — файл не пустой
  4. Наличие директив User-agent: — минимум один блок (RFC 9309)
  5. Валидность формата — нет структурных ошибок

Градиент результата: 1.0 если есть Sitemap: или хотя бы один не-wildcard User-agent блок; 0.5 если только User-agent: * без Sitemap. Статус fail — при HTTP не-200, пустом файле или отсутствии директив.

Файл кешируется и передаётся в зависимые проверки: AI bot rules, Content Signals, Sitemap.

Источники и спецификации