Связаться
  • WordPress
  • SEO
  • v1.0.0

Crawler Shield для WooCommerce — защита каталога от ИИ-краулеров, meta-externalagent и перебора фильтров

Плагин для WooCommerce, который не даёт краулерам перебирать бесконечные комбинации фильтров каталога и класть магазин. Группы ботов со своими правилами (поисковики, превью рекламы Meta, ИИ-краулеры, SEO-сервисы, скрипты), лимиты на бота и на адрес посетителя, отказ ещё до того, как WooCommerce начнёт строить страницу, robots.txt, noindex для фильтров, llms.txt и отчёт. Базовая версия бесплатна; Pro — проверка подлинности Googlebot и ИИ-ботов, сети дата-центров, проверка браузера, сохранённые копии для ботов, правила nginx/Apache.

Скачать Free
Pro · лицензия на год Чем больше сайтов, тем дешевле каждый
Совместимость
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
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Группы ботов: поисковые системы, превью ссылок (реклама Facebook и Instagram, Telegram, Viber), ИИ-краулеры, SEO-сервисы, скрипты и headless-браузеры, другие боты ✔ ✔
Правило для каждой группы: разрешить, ограничить частоту, «страницы — да, URL фильтров — нет», блокировать ✔ ✔
Распознавание URL фильтров: фильтры и сортировка WooCommerce, цена, рейтинг, add-to-cart, HUSKY (WOOF), YITH, BeRocket, WBW, CatCode Smart Filter + ваши параметры и пути ✔ ✔
Лимит на бота — все его адреса вместе, отдельно для URL фильтров; 429 с Retry-After ✔ ✔
Лимит URL фильтров в минуту с одного адреса посетителя; залогиненных не ограничивает никогда ✔ ✔
Отказ URL с неправдоподобным количеством значений фильтра ✔ ✔
Отказ ещё до того, как WooCommerce и тема строят страницу: несколько байт вместо страницы каталога ✔ ✔
Превью рекламы Meta (facebookexternalhit) только притормаживается и никогда не отрезается ✔ ✔
Правильный адрес посетителя за локальным прокси и за Cloudflare, или заголовок на ваш выбор ✔ ✔
Счётчики в Redis / Memcached, APCu или в одной небольшой таблице ✔ ✔
robots.txt: Disallow для параметров фильтров и Disallow: / для заблокированных групп ✔ ✔
noindex, follow на страницах фильтров (выключается одним переключателем) ✔ ✔
/llms.txt — короткая карта магазина для ИИ-ассистентов ✔ ✔
Режим «Наблюдение»: считает, что произошло бы, ничего не отказывая ✔ ✔
Списки «никогда не ограничивать» и «всегда отказывать» для IP, сетей и User-Agent ✔ ✔
Проверка запроса в админке и в WP-CLI: что сделал бы щит и почему ✔ ✔
История отчёта 7 дней до 90 дней
Проверка Googlebot, Bing, Apple, OpenAI, Anthropic, Perplexity по официальным спискам адресов — поддельные идут в отдельную группу — ✔
Сети дата-центров с браузерным User-Agent (готовый список Alibaba Cloud) — ✔
Лимит на сеть /24 (/48 для IPv6) против парсеров с сотен адресов — ✔
Проверка браузера перед URL фильтров: автоматически во время волны или всегда, свой лимит для каждого проверенного браузера — ✔
Сохранённые копии страниц для ботов: повторные запросы с новыми fbclid/utm — с диска — ✔
Правила для nginx и Apache из ваших настроек — отказ ещё до запуска PHP — ✔
Подробный отчёт: топ сетей, адресов и URL за 24 часа — ✔
Письмо о волне краулеров — ✔
Популярные товары с ценой в llms.txt — ✔

Как это выглядит

Витрина WooCommerce с фильтром по цвету — для покупателя ничего не меняется
Покупатель видит обычный магазин: фильтр по цвету, сортировка, корзина. Тестовый магазин Storefront на 2 000 товаров; товары без фото, поэтому вместо снимков — заглушка WooCommerce.
Вкладка «Правила» Crawler Shield: режим щита и правило для каждой группы ботов
Вкладка «Правила» (админка на украинском): режим щита и правило для каждой группы — поисковики разрешены, превью ссылок только ограничиваются, ИИ-краулерам и SEO-сервисам «страницы — да, URL фильтров — нет». Две нижние строки — группы Pro.
Отчёт Crawler Shield за 24 часа: сколько запросов каждого бота отдано, приторможено и отклонено
Отчёт за 24 часа из тестового прогона: meta-externalagent получил 3 622 отказа на URL фильтров, а поисковые боты — свои страницы. Колонки «Сохранённая копия» и «Проверка браузера» — из 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) отдельно не проверяли — начинайте с режима «Наблюдение».

История версий

v1.0.0 Текущая сентябрь 2026

Первый публичный релиз: группы ботов с правилами «разрешить / ограничить / страницы да, фильтры нет / блокировать», распознавание URL фильтров WooCommerce и популярных плагинов фильтров,…

Вместе с Crawler Shield для WooCommerce покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Crawler Shield Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 590 ₴ / год вместо 5 960 ₴ поштучно
Купить набор →

Полное описание модуля

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.

Как это работает — шаг за шагом

  1. Запрос приходит на сайт. Щит срабатывает на самом раннем хуке WordPress, ещё до инициализации WooCommerce и темы.
  2. Определяется клиент: группа бота по User-Agent (в Pro — ещё и проверка адреса по официальным спискам) или посетитель. Адрес берётся правильно за локальным прокси и Cloudflare.
  3. Определяется тип страницы: URL фильтра (параметры WooCommerce и популярных плагинов фильтров, ваши параметры и пути) или обычная страница.
  4. Применяются правило группы и лимиты. Счётчик — в объектном кеше, APCu или одной таблице, один запрос.
  5. Отказ — 403 или 429 с Retry-After, no-store и noindex, несколько байт. Всё остальное — страница как обычно.
  6. Решение попадает в отчёт: кто, сколько, что отдано, что отклонено.

Что под капотом

  • Раннее решение. Щит срабатывает на 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 возвращаются к стандартным.

Как установить

  1. Скачайте бесплатную версию catcode-crawler-shield-for-woocommerce-free-1.0.0.zip кнопкой вверху страницы (или Pro-архив из кабинета после оплаты): Плагины → Добавить новый → Загрузить плагин → Установить → Активировать.
  2. WooCommerce → Crawler Shield → «Правила». Не уверены в правилах — выберите режим «Наблюдение» на сутки и посмотрите «Отчёт».
  3. Сайт за Cloudflare — ничего не делайте. За другим прокси или CDN — выберите заголовок в «Сервер» → «Адрес посетителя».
  4. Фильтры с ЧПУ-адресами — допишите их путь в «Пути фильтров». Продвигаете страницы фильтров в поиске — выключите noindex и Disallow на вкладке «robots.txt и llms.txt».
  5. Для Pro: вставьте лицензионный ключ из письма после оплаты или нажмите «Попробовать Pro 7 дней» в разделе «Pro-лицензия».

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Это не навредит позициям в 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-функции навсегда, а срок покрывает обновления и поддержку.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль