
Crawler Shield для WooCommerce — защита каталога от ИИ-краулеров, meta-externalagent и перебора фильтров
Плагин для WooCommerce, который не даёт краулерам перебирать бесконечные комбинации фильтров каталога и класть магазин. Группы ботов со своими правилами (поисковики, превью рекламы Meta, ИИ-краулеры, SEO-сервисы, скрипты), лимиты на бота и на адрес посетителя, отказ ещё до того, как WooCommerce начнёт строить страницу, robots.txt, noindex для фильтров, llms.txt и отчёт. Базовая версия бесплатна; Pro — проверка подлинности Googlebot и ИИ-ботов, сети дата-центров, проверка браузера, сохранённые копии для ботов, правила nginx/Apache.
- Совместимость
- WordPress 6.2+ · WooCommerce 7.0+ (проверено на WordPress 7.1 и WooCommerce 11.1) · PHP 7.4+ · nginx + PHP-FPM и nginx → Apache (как HestiaCP) · Redis, APCu или таблица БД для счётчиков
- Лицензия
- один сайт, годовая
- Триал
- 7 дней, без карты, один на сайт
- Обновлено
- сентябрь 2026
Что есть во Free,
а что даёт Pro
Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.
Как это выглядит
Главное о модуле
Как это выглядит для покупателя
Никак. Покупатель кликает фильтры, сортирует, кладёт в корзину и оформляет заказ — в нашем тесте 25 быстрых переходов по фильтрам подряд, классический и блочный чекаут прошли без единого отказа и без страниц проверки.
Что получает админ
Настройки — в WooCommerce → Crawler Shield, пять вкладок: «Отчёт», «Правила», «robots.txt и llms.txt», «Проверить запрос» и «Серверные правила» (Pro).
Pro: когда боты притворяются
Часть краулеров называет себя Googlebot, а часть — Chrome.

Триал стартует, когда вы попросите
Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт
Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.
Технические требования
WordPress 6.2+ и WooCommerce 7.0+. Сквозной прогон — на WordPress 7.1 и WooCommerce 11.1.
PHP 7.4+. Сквозной прогон — на PHP 8.3 (nginx + PHP-FPM) и PHP 8.2 (Apache), синтаксис — ещё и на 7.4.
Сервер. nginx + PHP-FPM, Apache, nginx перед Apache (HestiaCP, VestaCP). За Cloudflare адрес определяется сам; за другим CDN выберите заголовок в «Сервер» → «Адрес посетителя».
Счётчики. Redis или Memcached как объектный кеш, APCu или одна таблица базы — модуль берёт самое быстрое из доступного. Redis и APCu проверены, Memcached — нет.
robots.txt. Строки дописываются в виртуальный robots.txt WordPress. Если в корне сайта физический файл robots.txt — скопируйте строки с вкладки вручную.
Плагины фильтров. Названия параметров HUSKY, YITH, BeRocket, WBW сверены с их кодом; совместную работу с установленными плагинами и кешем страниц (WP Super Cache, LiteSpeed) отдельно не проверяли — начинайте с режима «Наблюдение».
История версий
Первый публичный релиз: группы ботов с правилами «разрешить / ограничить / страницы да, фильтры нет / блокировать», распознавание URL фильтров WooCommerce и популярных плагинов фильтров,…
Вместе с Crawler Shield для WooCommerce покупают
4 модуля одним заказом — на 40% дешевле, чем по отдельности


Nova Poshta Premium — модуль Новая Почта для OpenCart 2.3, 3.x и 4.x

LiqPay — оплата картой для OpenCart 2.3, 3.x и 4.x

Telegram-уведомления и Viber/SMS покупателям для OpenCart
Полное описание модуля
Crawler Shield для WooCommerce — плагин, который не даёт краулерам класть магазин на страницах фильтров. Каталог с фильтрами имеет миллионы адресов: каждая комбинация цвета, размера, бренда, цены и сортировки — отдельная страница, и каждая — тяжёлый запрос к базе. Люди открывают несколько из них. Краулеры — meta-externalagent, GPTBot, ClaudeBot, Bytespider, SEO-сервисы и парсеры — открывают все подряд, и магазин на обычном хостинге исчерпывает воркеры PHP: страницы грузятся десятки секунд, а хостер может приостановить сайт за «аномальную нагрузку».
Плагин решает, кто что получает, ещё до того, как WooCommerce и тема начнут строить страницу, и отвечает на отказ несколькими байтами вместо страницы каталога. Поисковые системы и превью вашей рекламы проходят, ИИ-краулеры и SEO-сервисы видят страницы, но не комбинации фильтров, скрипты ограничиваются по частоте. Есть и версия для OpenCart.
Как это выглядит для покупателя
Никак. Покупатель кликает фильтры, сортирует, кладёт в корзину и оформляет заказ — в нашем тесте 25 быстрых переходов по фильтрам подряд, классический и блочный чекаут прошли без единого отказа и без страниц проверки. Обычные страницы для обычных посетителей щит не считает вообще, а залогиненных покупателей не ограничивает никогда.
Лимит для людей только один: 40 URL фильтров в минуту с одного адреса — больше, чем успевает кликнуть человек. Если много покупателей делят один адрес (мобильный оператор, офис), поднимите его или добавьте адрес в «Никогда не ограничивать эти адреса». Pro во время волны ещё и показывает незнакомым посетителям страницу проверки браузера на секунду — настоящий браузер проходит сам и дальше имеет собственный лимит.
Что получает магазин
- Каталог, который не падает от ботов. В локальном нагрузочном тесте (php-fpm с 5 воркерами, 2 000 товаров) 600 запросов meta-externalagent на URL фильтров магазин отклонял со скоростью 477 запросов в секунду против 63 страниц в секунду без щита, а покупатель в это время получал страницу фильтра за 0,14–0,19 с.
- Правила для каждой группы ботов. Поисковики — разрешить, превью ссылок — ограничить, ИИ-краулеры и SEO-сервисы — «страницы — да, URL фильтров — нет», скрипты и другие боты — ограничить. Любую группу можно перевести в «Блокировать».
- Лимиты, подходящие магазину. Бот считается как бот, а не как адрес: facebookexternalhit со ста адресов — один клиент, 60 запросов в минуту, из них 10 URL фильтров. Дальше — 429 с Retry-After, а не сломанная страница.
- Реклама Meta работает. Превью ссылок никогда не отрезаются по умолчанию — ими Meta проверяет посадочную страницу рекламы.
- Меньше мусора в индексе. Строки Disallow для параметров фильтров и noindex, follow на страницах фильтров — категории и товары остаются открытыми.
Что получает админ
Настройки — в WooCommerce → Crawler Shield, пять вкладок: «Отчёт», «Правила», «robots.txt и llms.txt», «Проверить запрос» и «Серверные правила» (Pro). На вкладке «Правила» — режим щита, правило для каждой группы и лимиты. Стандартные значения подходят большинству магазинов; не уверены — выберите режим «Наблюдение» на сутки: щит только считает, что сделал бы, и ничего не отказывает.
Ниже там же — распознанные параметры фильтров и поля для ваших: параметров (color, pa_*) и путей, если фильтр строит ЧПУ-адреса вроде /filter/. Без этого ЧПУ-фильтры для щита — обычные страницы. Там же — списки «никогда не ограничивать» и «всегда отказывать» для адресов, сетей и User-Agent, и блок «Сервер»: откуда брать адрес посетителя (автоматически, CF-Connecting-IP, X-Forwarded-For или X-Real-IP) и где хранить счётчики.
«Отчёт» показывает каждого бота за 24 часа и по дням: сколько запросов отдано, приторможено (429) и отклонено (403). Именно здесь видно, кто на самом деле нагружает магазин.
На вкладке «robots.txt и llms.txt» — переключатели строк Disallow для фильтров, закрытие сайта для групп в режиме «Блокировать» и noindex, follow на страницах фильтров. noindex и Disallow включены по умолчанию: если вы сознательно продвигаете страницы фильтров с параметрами в адресе, снимите здесь обе галочки. Там же — /llms.txt: текст «О магазине» и дополнительные страницы.
«Проверить запрос» принимает URL, User-Agent и адрес и показывает, что сделал бы щит и почему, ничего не считая. То же из консоли: wp catcode-crsh test "/shop/?filter_color=red" --ua="meta-externalagent/1.1".
Pro: когда боты притворяются
Часть краулеров называет себя Googlebot, а часть — Chrome. Pro раз в сутки загружает официальные списки адресов Google, Bing, Apple, OpenAI, Anthropic и Perplexity: настоящий Googlebot из сети Google проходит, «Googlebot» с чужого адреса попадает в группу «Поддельные боты» и получает отказ. Сети дата-центров (готовый список Alibaba Cloud — оттуда в сентябре 2026 парсеры с браузерным User-Agent перебирали фильтры нашего демо-магазина) получают «страницы — да, URL фильтров — нет». Лимит на сеть /24 ловит парсер, раскиданный по сотням адресов.
Когда незнакомые посетители вместе открывают больше 300 URL фильтров в минуту, Pro включает на 10 минут проверку браузера: настоящий браузер проходит за секунду, скрипт — нет. Превью рекламы с новыми fbclid и utm отдаются из сохранённых копий, а не строятся каждый раз (копия живёт до 6 часов — настраивается; ботам цена может быть до этого срока давности). Вкладка «Серверные правила» генерирует блоки для nginx и Apache, чтобы самые тяжёлые отказы делал веб-сервер ещё до PHP.
Как это работает — шаг за шагом
- Запрос приходит на сайт. Щит срабатывает на самом раннем хуке WordPress, ещё до инициализации WooCommerce и темы.
- Определяется клиент: группа бота по User-Agent (в Pro — ещё и проверка адреса по официальным спискам) или посетитель. Адрес берётся правильно за локальным прокси и Cloudflare.
- Определяется тип страницы: URL фильтра (параметры WooCommerce и популярных плагинов фильтров, ваши параметры и пути) или обычная страница.
- Применяются правило группы и лимиты. Счётчик — в объектном кеше, APCu или одной таблице, один запрос.
- Отказ — 403 или 429 с Retry-After, no-store и noindex, несколько байт. Всё остальное — страница как обычно.
- Решение попадает в отчёт: кто, сколько, что отдано, что отклонено.
Что под капотом
- Раннее решение. Щит срабатывает на
plugins_loadedс приоритетом -10000: ядро WordPress уже загружено, но WooCommerce, тема и запросы каталога — ещё нет. Отказ дешёвый, но не бесплатный; полный эффект — в серверных правилах Pro. - Счётчики. Объектный кеш → APCu → таблица с одним
INSERT … ON DUPLICATE KEY UPDATEна запрос. Статистика — ещё один маленький upsert. - Адрес посетителя. CF-Connecting-IP принимается только из сетей Cloudflare, за локальным прокси — X-Real-IP или последний X-Forwarded-For. Поддельный заголовок из интернета не изменит адрес.
- robots.txt — формат из документации Google о фасетной навигации (
Disallow: /*?*параметр=), дописывается после правил WordPress и WooCommerce. robots.txt всегда доступен и заблокированным ботам — чтобы они прочитали Disallow. - Pro-списки адресов — официальные JSON Google, Bing, Apple, OpenAI, Anthropic и Perplexity, обновление раз в сутки. Журнал отказов Pro с IP-адресами хранится 7 дней.
- Удаление убирает таблицы, настройки, кроны и папку сохранённых копий — robots.txt и /llms.txt возвращаются к стандартным.
Как установить
- Скачайте бесплатную версию
catcode-crawler-shield-for-woocommerce-free-1.0.0.zipкнопкой вверху страницы (или Pro-архив из кабинета после оплаты): Плагины → Добавить новый → Загрузить плагин → Установить → Активировать. - WooCommerce → Crawler Shield → «Правила». Не уверены в правилах — выберите режим «Наблюдение» на сутки и посмотрите «Отчёт».
- Сайт за Cloudflare — ничего не делайте. За другим прокси или CDN — выберите заголовок в «Сервер» → «Адрес посетителя».
- Фильтры с ЧПУ-адресами — допишите их путь в «Пути фильтров». Продвигаете страницы фильтров в поиске — выключите noindex и Disallow на вкладке «robots.txt и llms.txt».
- Для Pro: вставьте лицензионный ключ из письма после оплаты или нажмите «Попробовать Pro 7 дней» в разделе «Pro-лицензия».
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Это не навредит позициям в Google?
Поисковые системы по умолчанию пропускаются. Параметры фильтров закрываются в robots.txt строками вроде «Disallow: /*?*min_price=» — так, как советует документация Google о фасетной навигации, — а страницы фильтров получают noindex, follow. Категории и товары остаются открытыми. Если вы сознательно продвигаете страницы фильтров с параметрами в адресе, выключите оба переключателя на вкладке «robots.txt и llms.txt».
Реклама в Facebook и Instagram продолжит работать?
Да. Превью ссылок (facebookexternalhit) по умолчанию никогда не блокируется — только ограничивается на URL фильтров: 10 в минуту, дальше 429 с Retry-After. Посадочная страница рекламы, в том числе с fbclid и utm, отдаётся как обычно. Реакцию рекламного кабинета Meta на лимит мы вживую не наблюдали — если ваша реклама ведёт именно на URL фильтров, поднимите лимит или переведите группу в «Разрешить».
Сайт за Cloudflare. Что настроить?
Ничего: запросы из сетей Cloudflare модуль распознаёт сам и берёт адрес из CF-Connecting-IP. За другим CDN или прокси, которого модуль не знает, выберите заголовок в «Правила» → «Сервер» → «Адрес посетителя», иначе все посетители получат адрес прокси и будут делить один лимит. Настоящий Cloudflare мы имитировали, а не подключали.
Могут ли попасть под лимит настоящие покупатели?
Могут, если много людей делят один адрес: мобильный оператор (CGNAT) или офисная сеть. Лимит — 40 URL фильтров в минуту с одного адреса; обычные страницы и залогиненные покупатели не считаются. AJAX-фильтры (HUSKY, YITH, WBW) могут делать несколько запросов на клик — тогда поднимите лимит. В Pro проверка браузера даёт каждому браузеру собственный лимит.
Это заменяет файрвол?
Нет, и 100% защиты он не обещает. Модуль решает одну задачу, которую общие файрволы не решают: боты, перебирающие бесконечные комбинации фильтров каталога. Скрейпер, назвавшийся Chrome, для Free — обычный посетитель с лимитом на адрес; сети дата-центров, лимит на /24 и проверку браузера добавляет Pro.
У меня физический файл robots.txt.
Тогда WordPress не строит robots.txt и модуль не может дописать свои строки. Вкладка «robots.txt и llms.txt» показывает их для копирования в ваш файл.
Модуль куда-то отправляет данные?
Free — никуда, всё считается на вашем сервере. Pro раз в сутки загружает официальные списки адресов Google, Bing, Apple, OpenAI, Anthropic и Perplexity и проверяет лицензию на catcode.com.ua. Журнал Pro с IP-адресами отклонённых запросов хранится на вашем сервере 7 дней — по GDPR это персональные данные, упомяните это в политике конфиденциальности.
Совместим с кешем страниц?
Да. Страницы из полного кеша не доходят до WordPress — они и так ничего не стоят, модуль их не видит. Всё, что доходит до WordPress, проходит через щит. Сохранённые копии Pro для ботов — отдельно от вашего кеша. Совместную работу с WP Super Cache и LiteSpeed Cache мы отдельно не проверяли.
Сколько стоит?
Базовая версия бесплатна. Pro — 990 грн в год, более долгий срок дешевле: 2 года — 1 880 грн, 5 лет — 3 710 грн. Автосписаний нет. Купленная лицензия оставляет Pro-функции навсегда, а срок покрывает обновления и поддержку.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—