Зв'язатись
  • 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 Mono Acquiring Telegram-сповіщення і Viber/SMS покупцям Потрібно більше — усі 144 модулі в All Access за 4 990 ₴.
2 490 ₴ / рік замість 4 160 ₴ поштучно
Купити набір →

Повний опис модуля

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. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль