
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 — Нова Пошта для WooCommerce

Mono Acquiring — оплата карткою monobank для WooCommerce

Telegram-сповіщення і Viber/SMS покупцям для WooCommerce
Повний опис модуля
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. Розкажіть про задачу — підготуємо оцінку.
Замовити кастомний модуль
Купівля модуля
—