Как пропустить краулер Shoply AI через ваш брандмауэр

A brick firewall opens one gate so Shoply's crawler can carry website pages to the chat assistant

Shoply AI поддерживает точность своих ответов, регулярно читая ваш сайт. Если ваш сайт использует Cloudflare или другой брандмауэр либо сервис защиты от ботов, этот сервис может блокировать краулер Shoply. Когда это происходит, чат-бот продолжает отвечать на основе старой копии вашего сайта.

Обычно решение — одно правило: разрешить запросы, у которых User-Agent содержит ShoplyAIBot. В этом руководстве объясняется, зачем нужен краулер, как его распознать и как разрешить его в Cloudflare и других брандмауэрах.

Кому нужно это сделать?

  • Владельцам сайтов с SiteChat. SiteChat — это чат и поиск от Shoply для любого сайта, который не является магазином Shopify, включая магазины Magento.
  • Агентствам и разработчикам, которые управляют хостингом, CDN (сетью доставки контента) или настройками безопасности для таких сайтов.

Продавцам, использующим приложение Shopify, обычно ничего менять не нужно. Shoply получает данные о товарах Shopify через API Shopify, а не сканируя вашу витрину. Однако если вы добавили страницы с сайта не на Shopify в качестве источников знаний, например центр помощи или блог, размещённые в другом месте, брандмауэр этого сайта всё равно может блокировать Shoply. См. как научить Shoply информации о вашем магазине, чтобы узнать, где перечислены эти страницы.

Зачем Shoply нужно читать мой сайт?

Shoply читает страницы, которые вы указали в настройках сканирования, чтобы ответы чат-бота, цены и ссылки соответствовали вашему действующему сайту.

Для магазинов Magento Shoply также читает ваш публичный каталог товаров через GraphQL endpoint вашего магазина (/graphql). Он отправляет запросы только на чтение для получения таких данных, как названия, SKU, цены, варианты и URL товаров.

Краулер никогда не входит в систему, никогда не размещает заказы и никогда не отправляет формы. Чтобы узнать, что Shoply делает с этим контентом, прочитайте какую информацию Shoply использует для ответов на вопросы клиентов.

Что происходит, если краулер заблокирован?

  • Сканирование завершается с ошибкой. Shoply не может получить ваши страницы или данные о товарах.
  • ИИ продолжает отвечать по последнему успешному сканированию. Покупатели могут видеть старые цены, товары, которые вы уже удалили, а также устаревшие или неверные ссылки. В одном реальном случае магазин переехал с сайта разработки на рабочий домен, но его брандмауэр блокировал краулер, поэтому чат-бот продолжал отправлять покупателей на старый сайт разработки.
  • Поле “Last updated … ago” перестаёт обновляться в вашей панели администратора Shoply.

Частые признаки заблокированного краулера

В админке Shoply время сканирования отстаёт. На панели управления время “Last updated at: … ago” в разделе Content crawled by Shoply AI продолжает увеличиваться вместо того, чтобы сбрасываться каждые несколько часов, например до значения “770 hours ago” (около месяца). Оно остаётся устаревшим даже после нажатия Recrawl Now, потому что заблокированное сканирование никогда не завершается.

Если вы проверите логи брандмауэра, обычный симптом — Cloudflare возвращает HTTP 403 на запросы Shoply в одной из следующих форм:

  • Error 1010, что означает, что владелец сайта запретил запрос на основе его browser signature. Собственное решение Cloudflare для этой ошибки указывает на Browser Integrity Check.
  • Страница проверки “Just a moment…”, которую краулер не может пройти.

Как распознать краулер Shoply?

Каждый запрос от краулера Shoply использует следующий User-Agent:

text
ShoplyAIBot/1.0 (https://shoplyai.ai; support@shoplyai.ai; For sites installed Shoply AI Search & Chatbot)

Пишите правила так, чтобы они совпадали с более коротким текстом ShoplyAIBot (например, “User-Agent contains ShoplyAIBot”). Тогда ваше правило продолжит работать, даже если номер версии изменится.

Разрешайте по user agent, а не по IP-адресу. Краулер Shoply не использует фиксированные IP-адреса, поэтому список разрешённых IP не будет работать надёжно.

Как ведёт себя краулер

  • Он сканирует только сайты, которые вы настроили в Shoply.
  • Он соблюдает robots.txt при чтении страниц. Если ваш robots.txt блокирует страницу, Shoply её пропустит, поэтому проверьте, что он не блокирует страницы, из которых ИИ должен получать информацию.
  • Он бережно относится к вашему серверу: максимум 2 запроса одновременно с задержкой 2 секунды между запросами.
  • Количество страниц ограничено вашим тарифом Shoply.

Когда запускается краулер

  • Автоматически по расписанию. Частота зависит от вашего тарифа.
  • Когда вы нажимаете “Recrawl Now” в админке Shoply.
  • Каждые 2 дня, пока сканирование продолжает завершаться с ошибкой. Shoply автоматически повторяет попытки, поэтому как только вы добавите правило разрешения, следующий повтор или ручное повторное сканирование подхватит ваш сайт.

Как разрешить Shoply в Cloudflare?

В Cloudflare создайте custom rule с действием Skip. Правило skip позволяет совпавшим запросам обходить проверки безопасности, которые иначе блокировали бы их или показывали бы им challenge.

Шаг 1: Создайте правило skip

  1. В панели Cloudflare откройте ваш сайт (zone) и перейдите в Security rules.

  2. Выберите Create rule > Custom rules.

  3. В поле Rule name введите понятное название, например Allow Shoply AI crawler.

  4. В разделе When incoming requests match задайте:

    • Field: User Agent
    • Operator: contains
    • Value: ShoplyAIBot

    Если вы предпочитаете редактор выражений, используйте:

    text
    (http.user_agent contains "ShoplyAIBot")
  5. В разделе Then take action > Choose action выберите Skip.

  6. Выберите, что именно пропускать (см. таблицу ниже).

  7. Оставьте Log matching requests включённым. Тогда запросы Shoply будут появляться в Security Events Cloudflare, что помогает при диагностике.

  8. Выберите Deploy.

Шаг 2: Выберите, что пропускать

Опция Skip в CloudflareПропускать?Почему
Browser Integrity CheckДаВызывает ошибку 1010 для краулеров
Security LevelДаНе даёт проверкам Security Level показывать challenge краулеру
All Super Bot Fight Mode rulesДа, на тарифах Pro и вышеSuper Bot Fight Mode может показывать challenge или блокировать краулеры
User Agent BlockingЕсли вы его используетеИмеет значение только если вы создали правила блокировки по user-agent
All rate limiting rulesТолько если Security Events показывает, что правило rate limiting блокирует ShoplyЧастота запросов у Shoply низкая, но строгий лимит всё равно может его зацепить
All managed rulesТолько если Security Events показывает, что managed rule блокирует ShoplyСохраняет правила Cloudflare по шаблонам атак активными для всех остальных
All remaining custom rulesЕсли у вас есть другие custom rules, которые блокируют ботовНе даёт вашим последующим custom rules блокировать Shoply

Начните со строк с ответом “Да”. Если в Security Events Cloudflare всё ещё видно, что запросы Shoply блокируются или получают challenge, событие подскажет, какая именно функция сработала. Добавьте эту функцию в правило skip.

Шаг 3: Поставьте правило первым

Cloudflare проверяет custom rules по порядку, сверху вниз. Если правило выше вашего блокирует запрос или показывает challenge, ваше правило skip никогда не сработает. Переместите правило Shoply в самый верх списка ваших custom rules.

Если вы используете Bot Fight Mode (бесплатный тариф Cloudflare)

Bot Fight Mode нельзя обойти с помощью правила skip. Cloudflare запускает его отдельно от custom rules, поэтому правила skip и allow на него не влияют. У вас есть два варианта:

  • Выключить Bot Fight Mode: перейдите в Security > Settings, отфильтруйте по Bot traffic и выключите Bot fight mode.
  • Перейти на тариф Pro или выше и использовать Super Bot Fight Mode, который поддерживает правила skip.

Если включён Under Attack mode

Режим Under Attack показывает страницу challenge каждому посетителю, и краулеры не могут её пройти. Cloudflare рекомендует использовать его только во время активной атаки. Shoply не сможет читать ваш сайт, пока этот режим не будет отключён.

Безопасно ли разрешать user agent?

Любой клиент может заявить, что он ShoplyAIBot, поэтому это правило отключает часть проверок ботов для любого, кто отправляет такой User-Agent. Чтобы снизить риск, пропускайте только те функции, которые блокируют краулер, и сохраняйте защиту входа, checkout и админки. Shoply никогда не нужен доступ к этим областям.

Как разрешить Shoply в других брандмауэрах?

Принцип везде одинаков: разрешить запросы, у которых User-Agent содержит ShoplyAIBot. Точные меню зависят от продукта, поэтому следуйте документации вашего поставщика для создания правила разрешения или исключения. На что обычно стоит обратить внимание:

  • Облачные web application firewall (WAF), такие как Sucuri, AWS WAF и Akamai: добавьте правило allow или exception, которое совпадает с заголовком User-Agent.
  • Плагины безопасности WordPress, такие как Wordfence: ищите настройки блокировки ботов, rate limiting или блокировки по user-agent.
  • Фильтры на уровне сервера, такие как правила ModSecurity, и блокировщики ботов, предоставляемые вашим хостинг-провайдером: добавьте user agent в белый список или попросите хостинг сделать это.

Магазины Magento: убедитесь, что правило также распространяется на POST-запросы к /graphql. Некоторые брандмауэры обрабатывают API-запросы отдельно от просмотров страниц. Если страницы разрешены, но /graphql заблокирован, ваш каталог товаров не будет обновляться.

Не полагайтесь на список разрешённых IP. Краулер Shoply не использует фиксированные IP-адреса.

Как проверить, что это сработало?

  1. В админке Shoply нажмите Recrawl Now.
  2. Дождитесь завершения сканирования, затем проверьте, что “Last updated” на вашей панели управления сбросилось до недавнего времени.
  3. Спросите чат-бота о товаре или странице, которые вы недавно изменили, и убедитесь, что ответ и ссылка соответствуют вашему действующему сайту.

Вы также можете выполнить быструю проверку со своего компьютера. Замените https://your-site.com/ на адрес вашего сайта:

bash
curl -I -A "ShoplyAIBot/1.0 (https://shoplyai.ai; support@shoplyai.ai; For sites installed Shoply AI Search & Chatbot)" https://your-site.com/

Ответ HTTP/2 200 (или HTTP/1.1 200 OK) означает, что ваше правило пропускает этот user agent. Ответ 403 означает, что что-то всё ещё его блокирует.

Этот тест выполняется с IP-адреса вашего компьютера, а не с серверов Shoply. Некоторые брандмауэры по-разному обрабатывают трафик в зависимости от того, откуда он приходит, поэтому повторное сканирование в админке Shoply — это окончательная проверка.

Нужна помощь?

Напишите на support@shoplyai.ai, указав адрес вашего сайта, используемый брандмауэр или хостинг-провайдера, а также приложив скриншот любого заблокированного запроса из логов вашего брандмауэра. Пожалуйста, не отправляйте пароли или API-ключи.