Настройка robots.txt и фасетных фильтров: Управление Crawl Budget
Фасетные фильтры (фильтры по цене, цвету, размеру, сортировке) — это ключевой элемент UX в любом интернет-магазине или каталоге. Однако с точки зрения SEO-продвижения и технической оптимизации, они являются главной угрозой для Crawl Budget и самым частым источником дублирования контента. Неконтролируемая генерация URL-адресов с параметрами может привести к тому, что Google будет тратить большую часть времени на сканирование мусорных страниц, игнорируя действительно важный контент.
Задача эксперта — добиться хирургической точности: проиндексировать только те комбинации фильтров, которые имеют поисковый спрос (коммерческие страницы), и закрыть от сканирования все технические и сортировочные URL.
Этап 1: Диагностика и выявление мусорных URL
Прежде чем настраивать блокировку, нужно понять, какие параметры генерируют ненужные URL и как они выглядят.
1.1. Анализ Google Search Console (GSC)
Сначала проверьте отчет “Страницы” в GSC. Посмотрите на URL, которые попали в индекс. Если вы видите там тысячи адресов с такими символами, как ?, &, sort=, session=, phpsessid, это означает, что у вас серьезная проблема с Crawl Budget и дублированием.
1.2. Классификация параметров
Все параметры URL делятся на две категории:
- Технические/Сортировочные: Не меняют контент, но меняют его порядок (
?sort=price,?view=grid,?sessionid=). Их нужно полностью блокировать. - Фасетные/Фильтрующие: Меняют контент и могут иметь поисковый спрос (
?color=blue&size=m). Их нужно контролировать через канонизацию.
Этап 2: Базовое блокирование через robots.txt (Первая линия защиты)
robots.txt — это первый файл, который видит поисковый робот. Его основная задача — экономить Crawl Budget, запрещая роботу сканировать заведомо мусорные URL.
2.1. Полное блокирование всех URL с параметрами
Если на вашем сайте фильтры не имеют поискового спроса, или их слишком много, можно применить агрессивную блокировку.
User-agent: *
# Блокируем все URL, содержащие символ "?" (параметры)
Disallow: /*?
Объяснение: Директива Disallow: /*? запрещает роботу сканировать любой URL, в котором присутствует знак вопроса. Это эффективно отсекает все технические страницы, сессии и сортировки.
2.2. Блокирование конкретных параметров
Если вы хотите закрыть только определенные типы параметров (например, ID сессий, не меняющих контент), используйте точечное блокирование.
User-agent: *
# Закрываем параметры сортировки и сессий
Disallow: /*?sort=*
Disallow: /*&sort=*
Disallow: /*phpsessid=*
Объяснение: Использование звездочки (*) как вайлдкарда позволяет заблокировать все, что начинается или содержит указанный параметр. Например, Disallow: /*?sort=* заблокирует site.com/page/?sort=price и site.com/page/?type=shoes&sort=new.
2.3. Использование Clean-param (Для Яндекса)
Для Яндекса (и частично для устаревших Google-ботов) существует специальная директива, которая указывает, какие параметры являются техническими.
Host: mysite.ru
Clean-param: phpsessid&sessionid&sort /catalog/
Объяснение: Эта директива говорит Яндексу, что параметры phpsessid, sessionid и sort на страницах, начинающихся с /catalog/, являются неважными и их следует игнорировать.
Этап 3: Канонизация (Canonical Tag) — современный стандарт
Блокирование через robots.txt экономит Crawl Budget, но не решает проблему дублирования контента, поскольку Google может проиндексировать страницы, найденные по ссылкам с других сайтов. Canonical Tag — это директива, которая прямо указывает Google, какую страницу считать оригиналом (каноном).
3.1. Использование Canonical для фильтров
Правило: Все технические и неважные страницы с фильтрами должны ссылаться на страницу без фильтров.
Пример HTML-кода для фильтрованной страницы: Если пользователь применил фильтр “Сортировка по цене” (/catalog/shoes?sort=price), эта страница должна указывать на базовую страницу категории.
<!-- На странице /catalog/shoes?sort=price -->
<link rel="canonical" href="[https://www.myshop.com/catalog/shoes/](https://www.myshop.com/catalog/shoes/)">
Объяснение: Мы сообщаем Google: “Не сканируй эту страницу полностью, а весь ее ссылочный вес передай каноническому URL /catalog/shoes/“. Это не только устраняет дубли, но и консолидирует Ссылочный вес (PageRank).
3.2. Канонизация комбинированных фильтров
Что делать, если комбинация фильтров имеет поисковый спрос (например, “Купить синие кожаные кроссовки”)?
Стратегия: Проиндексировать только одну, самую сильную, комбинацию:
- Базовая страница:
/catalog/shoes/ - Целевая комбинация:
/catalog/shoes/blue-leather/(ЧПУ) ← Канон - Фильтрованная версия:
/catalog/shoes/?color=blue&material=leather← Редиректит или канонизирует на п.2
Экспертный подход: Используйте ЧПУ (Человекопонятные URL) для индексации важных комбинаций фильтров. Все остальные технические URL с параметрами должны канонизироваться на этот ЧПУ-адрес.
Этап 4: Управление параметрами в GSC (Исторический инструмент)
Ранее в Google Search Console существовал инструмент “Параметры URL”. Хотя Google объявил о его постепенном прекращении (в основном полагаясь на Canonical), он все еще может быть полезен в старых проектах для тонкого управления сканированием.
Принцип: В GSC вы вручную указывали, как Google должен обрабатывать конкретный параметр.
- «Изменяет»: Параметр меняет контент (например,
?color=). - «Не влияет»: Параметр технический (
?sessionid=).
Важно: Не используйте этот инструмент для современных сайтов. Полностью полагайтесь на Canonical Tag и robots.txt.
Этап 5: Современное решение: AJAX и History API
Лучший способ решить проблему с фильтрами — это избежать генерации новых URL при их использовании.
Техническое решение: Используйте AJAX (JavaScript) для подгрузки контента и History API для изменения URL без полной перезагрузки страницы.
// Пример изменения URL без перезагрузки страницы
function applyFilter(filterName, filterValue) {
// 1. Подгружаем новый контент через AJAX
loadNewContent(filterName, filterValue)
// 2. Обновляем URL в адресной строке
const newUrl = window.location.pathname + `?${filterName}=${filterValue}`;
window.history.pushState({ path: newUrl }, '', newUrl);
// 3. Главное: Добавляем Canonical Tag, указывающий на базовый URL
// Это должно быть сделано на стороне сервера или при инициализации страницы.
}
Объяснение: Когда пользователь применяет фильтр, скрипт обновляет контент и URL (с помощью window.history.pushState), но Googlebot видит исходный HTML-код страницы без этого фильтра. Это гарантирует, что в индекс попадет только базовый, канонический URL, а UX остается быстрым.
Заключение
Профессиональная SEO-настройка фильтров требует многоуровневого подхода. Robots.txt используется для грубого отсева (экономия Crawl Budget), Canonical Tag — для тонкого управления индексацией (устранение дублирования), а AJAX/History API — для создания чистого и быстрого UX. Эффективно управляя параметрами, вы освобождаете Crawl Budget для действительно важных страниц, что является прямым путем к росту трафика и позиций.