Robots.txt и sitemap

Назначение и структура robots.txt

Файл robots.txt используется для управления доступом поисковых роботов к страницам веб-сайта. Он размещается в корневой директории сайта и сообщает поисковым системам, какие разделы сайта можно индексировать, а какие — нет. Стандартная структура файла проста и включает в себя блоки User-agent и Disallow или Allow:

User-agent: [имя робота]
Disallow: [путь к запрещенной директории или странице]
Allow: [путь к разрешенной директории или странице]
  • User-agent указывает конкретного поискового робота (например, Googlebot, Bingbot) или * для всех роботов.
  • Disallow запрещает доступ к указанному пути.
  • Allow позволяет доступ к указанному пути, даже если выше есть общий запрет.

Дополнительно можно использовать директиву Sitemap, указывающую путь к карте сайта:

Sitemap: https://example.com/sitemap.xml

Это помогает роботам находить страницы сайта, оптимизируя процесс индексации.

Рекомендации по созданию robots.txt

  1. Минимизация запретов: Не следует запрещать доступ к CSS, JavaScript и другим ресурсам, необходимым для корректного отображения сайта.
  2. Проверка синтаксиса: Использование ошибок в файле robots.txt может привести к полной блокировке сайта для поисковых систем.
  3. Использование wildcard: Символ * позволяет задавать шаблоны URL, а $ — конец строки. Пример:
Disallow: /private/*
Disallow: /*.pdf$

Sitemap: концепция и форматы

Карта сайта (sitemap.xml) представляет собой XML-файл, содержащий список всех страниц веб-сайта, которые следует индексировать. Структура базового элемента выглядит следующим образом:

<url>
  <loc>https://example.com/page1</loc>
  <lastmod>2026-03-23</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.8</priority>
</url>
  • loc — URL страницы.
  • lastmod — дата последнего изменения страницы.
  • changefreq — частота обновления страницы (daily, weekly, monthly).
  • priority — относительный приоритет страницы (от 0.0 до 1.0).

Генерация sitemap с помощью JavaScript и Lighthouse

Библиотека Lighthouse позволяет анализировать сайт и собирать метаданные, необходимые для генерации карты сайта. Процесс включает:

  1. Сканирование сайта: Lighthouse собирает все доступные страницы и ресурсы.
  2. Фильтрация URL: Исключаются страницы, запрещённые в robots.txt.
  3. Формирование XML: На основе собранных данных создается файл sitemap.xml.

Пример использования Node.js для генерации sitemap на основе анализа Lighthouse:

const fs = require('fs');
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

async function generateSitemap(urls) {
  const sitemapHeader = '<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n';
  const sitemapFooter = '</urlset>';
  let sitemapBody = '';

  for (const url of urls) {
    const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
    const { lhr } = await lighthouse(url, { port: chrome.port });
    await chrome.kill();

    sitemapBody += `
<url>
  <loc>${url}</loc>
  <lastmod>${new Date().toISOString().split('T')[0]}</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.8</priority>
</url>`;
  }

  const sitemapContent = sitemapHeader + sitemapBody + '\n' + sitemapFooter;
  fs.writeFileSync('sitemap.xml', sitemapContent);
}

generateSitemap(['https://example.com', 'https://example.com/about']);

Интеграция robots.txt и sitemap

  • В robots.txt необходимо явно указывать путь к sitemap для ускорения индексации.
  • Sitemap помогает поисковым системам обходить сайты, даже если структура страниц сложная или глубокая.
  • При изменении структуры сайта или добавлении новых страниц следует обновлять оба файла синхронно.

Практические рекомендации

  1. Использовать абсолютные URL в sitemap для корректной работы с поисковыми системами.
  2. Автоматизация генерации с помощью Lighthouse и Node.js позволяет поддерживать актуальность карты сайта без ручного вмешательства.
  3. Проверка доступности через инструменты для веб-мастеров (Google Search Console, Bing Webmaster Tools) помогает выявлять ошибки индексации и проблемы с robots.txt.

robots.txt и sitemap работают как связка: первый управляет доступом, второй оптимизирует индексацию. Правильное использование этих инструментов улучшает видимость сайта в поисковых системах и ускоряет обработку новых страниц.