Руководство CrawlGuard
Подключение и настройка
От первого домена до работающей защиты. Инструкции, настройки и ответы на вопросы.
Впервые подключаете такую защиту? Начните со списка требований для вашего варианта хостинга.
Перед регистрацией: проверьте, что сможете подключить сайт
Сайт остаётся на прежнем хостинге. CrawlGuard принимает посетителей перед ним, поэтому понадобится настроить домен и сервер. Если сайтом занимается разработчик, передайте ему эту страницу.
- Доступ к DNS домена. Панель регистратора или DNS-провайдера, где можно добавить TXT-запись и изменить записи сайта.
- Публичный адрес сервера. IP или отдельное имя хостинга, которое продолжит вести на ваш сервер после смены DNS.
- Доступ к настройкам веб-сервера или поддержке хостинга. Нужно будет ограничить прямые обращения к сайту, чтобы боты не обходили защиту.
- Список важных интеграций. Платёжные уведомления, API, мобильные приложения и мониторинг могут требовать исключений.
Для WordPress, Битрикс и других CMS совместимость зависит прежде всего от хостинга и доступов. Для конструкторов вроде Tilda возможность подключения нужно проверить отдельно: одной смены DNS может быть недостаточно.
Новый аккаунт получает Free без ограничения срока. Для подключения подготовьте доступы к DNS и хостингу; карта не нужна. Если не уверены, напишите адрес сайта и название хостинга в поддержку.
Что такое адрес сервера (origin) и где его найти
Это адрес, по которому CrawlGuard будет получать страницы вашего сайта после проверки посетителей.
- Откройте панель хостинга, выберите сайт и найдите «IP-адрес сайта» или «IP сервера». Можно уточнить его у поддержки хостинга.
- В поле адреса сервера укажите
https://и этот публичный IP. Например,https://203.0.113.10— IP здесь условный, замените его своим. Если сервер принимает только HTTP, укажитеhttp://. - Вместо IP можно использовать отдельное имя сервера с действующим HTTPS-сертификатом, если это имя всегда ведёт напрямую на хостинг и не будет переключаться на CrawlGuard.
Не указывайте здесь сам подключаемый домен. После смены DNS он станет вести на CrawlGuard,
и запросы пойдут по кругу. Адреса localhost, 127.0.0.1 и внутренние IP не подходят.
Если сайт сейчас за CDN или другой защитой, IP в DNS может принадлежать посреднику. Узнайте фактический адрес сервера в панели хостинга. Для HTTPS по IP сертификат проверяется по домену вашего сайта — подробнее о сертификате.
Подключение в кабинете: 5 шагов
Зарегистрируйтесь, подтвердите почту и добавьте сайт: можно вставить полный URL, а в поле сервера укажите публичный адрес хостинга. Free действует без ограничения по времени: 1 сайт и 1 млн допущенных запросов в месяц, карта не нужна. Добавление сайта не меняет его DNS. Дальше кабинет покажет инструкцию именно для вашего домена.
- Подтвердите владение: добавьте TXT-запись из инструкции в DNS домена. Имя и значение копируются отдельно. Нажмите «Проверить TXT-запись» в кабинете и дождитесь подтверждения. Добавление TXT не переключает трафик сайта.
- Проверьте сервер сайта. Нажмите «Проверить подключение» в шаге 2. CrawlGuard проверит ответ по указанному адресу с именем вашего домена. Если адрес ошибочен, его можно исправить здесь же, сохранив сайт и статистику. До успешного ответа сервера DNS не переключайте.
- Направьте домен на edge: для поддомена (например,
www) — одна CNAME-запись наedge.crawlguard.ru; для корневого домена — запись ALIAS/ANAME на тот же адрес, а если ваша DNS-панель их не поддерживает — A-записи на IP из инструкции. CNAME/ALIAS надёжнее: адреса edge мы обновляем сами — при замене или добавлении узла вам ничего делать не нужно. Точные записи для вашего домена показывает дашборд. TLS-сертификат выпустится автоматически при первом запросе. Сначала сохраните прежние A/AAAA/CNAME-записи и их TTL. При переключении уберите конфликтующие записи именно сайта; AAAA на старый сервер оставит обход по IPv6. Почтовые MX и посторонние TXT-записи не удаляйте. Если MX указывает на переключаемый домен, сначала согласуйте отдельный адрес почты с хостингом. Обновление DNS зависит от TTL и кэшей. После сохранения запустите проверку подключения в кабинете. - Проверьте сайт в браузере. Откройте HTTPS-версию, основные страницы, вход, корзину, форму заказа без оплаты и интеграции. Проверьте и второе имя, если подключили его. Сертификаты и последние запросы видны отдельно; статистика появляется с задержкой после посещения.
- Закройте прямой доступ. Разрешите на своём сервере/файрволе трафик только
с нашим заголовком
X-Crawlguard-Origin-Lock(значение — в дашборде) или только с IP-адресов наших узлов. Иначе боты смогут обойти защиту, обращаясь к серверу напрямую. Ограничение вводите после проверки нового маршрута, учитывая кэши старых DNS-записей. Для фильтра по IP попросите поддержку подтвердить настройку; для заголовка повторно нажмите «Проверить подключение».
Кабинет сохраняет результат с датой и показывает следующий шаг. Проверки DNS и сервера запускаются кнопкой после подтверждения домена. Сохранённый результат не является постоянным мониторингом; после изменения настроек проверьте подключение заново.
Как именно закрыть origin
Достаточно одного из способов. «Origin» здесь — ваш сервер, куда мы проксируем трафик.
- По нашим IP (проще всего). На файрволе разрешите к origin входящие
только с IP-адресов CrawlGuard (показаны в дашборде), остальное закройте. Например,
ufw:ufw allow from <IP1> to any port 443,ufw allow from <IP2> to any port 443, затем запретить прочее. - По секретному заголовку (nginx). Пропускать только запросы с нашим
заголовком:
if ($http_x_crawlguard_origin_lock != "<значение из дашборда>") { return 403; }вserver{}. Заголовок неугадываем и уникален для вашего домена. - Apache: аналогично через
mod_headers/RewriteCond %{HTTP:X-Crawlguard-Origin-Lock}. Панель хостинга: правило файрвола «разрешить только IP-адреса CrawlGuard». Сайт за Cloudflare: снимите проксирование (серый значок) — CrawlGuard должен стоять первым в пути трафика.
Пока origin открыт напрямую, бот может обойти проверку, обратившись к серверу в обход нас. В шаге 5 появится результат проверки ограничения прямого доступа.
Если ваш сервер сам держит HTTPS-сертификат
Многие серверы (Traefik, nginx или Apache с certbot, Caddy, панели хостинга) сами
выпускают и автоматически продлевают бесплатный сертификат Let's Encrypt.
После подключения к CrawlGuard домен указывает на нас — поэтому проверка Let's Encrypt при
продлении приходит к нам, а не на ваш сервер. Чтобы это не ломало автопродление, мы
прозрачно пропускаем ACME-проверку на ваш origin: запросы вида
/.well-known/acme-challenge/… идут насквозь к вашему серверу.
- Проверка HTTP-01. Убедитесь, что origin принимает её на порту 80
и выдаёт файл по
/.well-known/acme-challenge/…. Это может быть Traefik сhttpChallenge, certbot с--webrootили другой настроенный HTTP-01 обработчик. После подключения проверьте пробное продление средствами вашего сервера. - Проверка TLS-ALPN-01 — переключите на HTTP-01 или DNS-01. Она идёт
по 443-му порту, который теперь терминируем мы, поэтому до вашего сервера не доходит.
В Traefik замените в резолвере
tlsChallengeнаhttpChallenge: { entryPoint: web }— одна правка. - Проверка DNS-01 — работает как раньше, она вообще не зависит от веб-трафика.
ACME-запросы идут с IP CrawlGuard и с заголовком origin-lock. Разрешите этот маршрут в правилах вашего сервера; проверьте, что редиректы, авторизация или файрвол не закрыли доступ к файлу проверки. Порядок правил зависит от конфигурации origin.
Если сервер принимает только HTTP, его можно указать с http://: публичный HTTPS
по-прежнему завершится на CrawlGuard. Но участок от edge до вашего сервера в этом случае не зашифрован;
ограничение прямого доступа не заменяет шифрование. Для защищённого соединения до сервера используйте HTTPS.
Исключения для интеграций (allowlist)
В карточке сайта откройте «Доступ без проверки». Выберите подходящий способ для каждой интеграции:
- IP-диапазоны (CIDR) — офисные сети, партнёрские интеграции, мониторинг;
- Пути — входящие вебхуки (
/api/webhooks/), статика, health-чеки; - API-ключи — ваши доверенные клиенты передают ключ в заголовке
X-Api-Key.
Путь открывает доступ всем запросам к нему, поэтому указывайте самый узкий подходящий путь,
а не весь /api/. Проверку подписи платёжного уведомления или авторизацию API
продолжает выполнять ваш сервер. Допущенные запросы расходуют квоту.
Ключ исключения действует на защищаемом сайте. Ключ управления аккаунтом — другой: он даёт доступ к API CrawlGuard и не нужен посетителям сайта.
SPA, API и мобильные клиенты
HTML-проверка показывается только на навигацию браузера (GET с
Accept: text/html). Fetch/XHR/POST-запросы без cookie получают чистый ответ:
HTTP/1.1 401 Unauthorized
X-Guard-Challenge: required
При таком ответе предложите пользователю открыть обычную HTML-страницу сайта для проверки. После допуска приложение может повторить безопасный запрос с cookie. Не повторяйте автоматически оплату, заказ или другой изменяющий данные POST: сохраните введённые данные и предусмотрите защиту от повторного выполнения на своей стороне. API-клиенты и мобильные приложения, которые не проходят браузерную проверку, подключаются через исключения.
Поисковые боты и SEO
Поддерживается проверка роботов Яндекса, Google, Bing, Mail.ru, Apple и DuckDuckGo.
Подтверждённые роботы получают контент без проверки браузера. Их адреса сверяются через
forward-confirmed reverse-DNS (IP → PTR → IP), а для DuckDuckGo — по списку IP провайдера.
Одного User-Agent недостаточно. Страница проверки содержит noindex.
После подключения проверьте доступность страниц в инструментах вебмастера;
позиции в поиске зависят и от других факторов.
Как читать статистику и расход квоты
В карточке сайта выберите период над графиком. Статистика показывает запросы, а не людей: одна открытая страница может загрузить HTML, изображения, CSS, JavaScript и шрифты — каждый запрос через CrawlGuard учитывается отдельно.
| Решение | Что произошло | Расходует квоту |
|---|---|---|
| Пропущено | Запрос передан серверу после проверки или по исключению, в том числе от разрешённого поискового робота. | Да |
| Без фильтрации | Запрос передан серверу при отключённой защите, исчерпанной квоте или в режиме аварийного пропуска. | Да |
| Проверка / блокировка | Посетитель получил ответ защиты вместо содержимого сервера. | Нет |
| Проверка пройдена / не пройдена | Результат решения браузерной задачи. Это отдельное событие, а не ещё один посетитель. | Нет |
Поэтому число проверок нельзя считать числом пойманных ботов: новый покупатель тоже может увидеть проверку, а один бот — сделать много попыток. Бот, который прошёл проверку, попадёт в пропущенные запросы.
Тариф и оплата показывают общий расход аккаунта за календарный месяц (UTC), включая запросы уже удалённых сайтов. Период графика и месяц квоты могут отличаться. Свежие события появляются с задержкой на сбор статистики.
Free: один сайт и 1 млн пропущенных запросов в месяц, без ограничения срока. При исчерпании квоты сайт продолжает открываться без фильтрации. Подключите подходящий платный тариф или дождитесь нового месяца, чтобы защита возобновилась. Приостановка защиты не останавливает проксирование и расход квоты: для полного отключения следуйте инструкции возврата DNS.
API управления сайтами
Для автоматизации сайтов и выгрузки статистики выпустите ключ в разделе
API-ключи. Он передаётся в заголовке Authorization: Bearer <key>
или X-Api-Key: <key>.
curl -s https://app.crawlguard.ru/v1/sites \
-H "Authorization: Bearer $CRAWLGUARD_KEY"
| Метод и путь | Что делает |
|---|---|
POST /v1/sites | добавить домен: {"domain": "...", "origin_url": "..."} |
GET /v1/sites | список доменов аккаунта |
GET /v1/sites/{домен} | карточка домена |
PATCH /v1/sites/{домен} | настройки: difficulty, TTL, allowlist |
DELETE /v1/sites/{домен} | удалить домен |
POST /v1/sites/{домен}/verification | получить TXT-токен подтверждения владения |
POST /v1/sites/{домен}/verify | проверить владение и продвинуть статус |
GET /v1/sites/{домен}/status | статусы онбординга с живой проверкой origin |
GET /v1/sites/{домен}/events | агрегаты решений для графиков |
POST /v1/sites/{домен}/rotate-secret | ротация секрета подписи cookie |
POST /v1/sites/{домен}/allow-keys | выпустить allowlist-ключ для X-Api-Key (показывается один раз) |
DELETE /v1/sites/{домен}/allow-keys | отозвать все allowlist-ключи домена |
Изменения настроек edge подхватывает без перезапусков — за секунды.
Если что-то не работает
Начните с карточки сайта: на каком из пяти шагов подключение остановилось? После исправления DNS или адреса сервера нажмите кнопку проверки ещё раз — прошлый результат сам по себе не подтверждает текущую настройку.
TXT добавлен, но владение доменом не подтверждается
Сверьте имя и значение записи с карточкой сайта. Некоторые DNS-панели сами добавляют домен к имени: дважды указанный домен создаст запись не по тому адресу. Меняйте записи у провайдера, на чьи NS делегирован домен.
Дождитесь обновления DNS с учётом TTL и повторите подтверждение. Не удаляйте остальные TXT-записи: они могут отвечать за почту и другие сервисы.
DNS всё ещё ведёт мимо защиты
Проверьте отдельно основной домен и www. Старая AAAA-запись может направлять посетителей по IPv6 прямо на хостинг,
даже если A или CNAME уже изменены. Текущие значения для подключения берите из карточки сайта.
Если DNS-провайдер также проксирует сайт, отключите его проксирование для подключаемой записи. Смена DNS распространяется не мгновенно — учитывайте старый TTL. Проверить шаг смены DNS.
Сайт отвечает ошибкой 502 или сервер недоступен
Проверьте адрес сервера: он должен вести на хостинг, а не обратно на подключённый домен. Убедитесь, что выбранный порт доступен с обеих edge-нод, а сайт принимает нужный Host.
Для HTTPS проверьте срок и имя сертификата вашего сервера. Если включали origin-lock, сверьте значение заголовка с кабинетом и правила доступа. Сбой самого сервера нельзя исправить пропуском проверки браузера.
HTTPS не появился или сертификат перестал продлеваться
Сначала завершите подтверждение владения и смену DNS: выпуск сертификата для посетителей зависит от доступности домена через edge. Не считайте успешную DNS-проверку доказательством готовности HTTPS — откройте сайт отдельной проверкой.
Сертификат на вашем сервере продлевается отдельно. Убедитесь, что его ACME-проверка проходит после смены DNS и ограничения доступа. Способы продления сертификата сервера.
Проверка браузера повторяется или не заканчивается
Убедитесь, что в браузере доступны JavaScript и cookies для этого сайта. Попробуйте актуальный браузер без расширений, которые блокируют запросы проверки. На слабом устройстве или при усиленной проверке задача может занимать больше времени.
Для диагностики сохраните время, домен, браузер и текст ошибки. Если проблема затрагивает покупателей, владелец может временно поставить защиту на паузу в кабинете и обратиться в поддержку.
Не проходят платёжные уведомления, API или мониторинг
Такие клиенты часто не выполняют JavaScript. Настройте узкое исключение по IP, пути или ключу в разделе «Доступ без проверки» и повторите тест интеграции. Сохраните проверку подписи или авторизацию на своём сервере.
Для SPA отдельно обработайте истечение cookie. Не повторяйте автоматически оплату или создание заказа после проверки. Поведение SPA и мобильных клиентов.
В статистике нет запросов или неожиданно растёт квота
Проверьте домен, выбранный период и задержку сбора. При нулевом трафике убедитесь, что DNS действительно ведёт через CrawlGuard, затем откройте сайт в новом окне браузера. Статические файлы, разрешённые роботы и запросы на паузе тоже расходуют квоту.
Если не помогло, напишите в поддержку: домен, время с часовым поясом, шаг подключения, текст ошибки и что уже проверили. Пароль, API-ключ и значение origin-lock присылать не нужно.
Как приостановить защиту или вернуть прежнее подключение
Если сайт открывается, но проверка мешает посетителям: поставьте защиту на паузу на странице сайта в кабинете. Трафик продолжит идти через CrawlGuard без фильтрации. Такие запросы продолжают расходовать квоту. Пауза не переключает DNS и не позволяет обойти недоступный узел.
Чтобы вернуть прямой маршрут:
- Восстановите доступ к сайту на вашем сервере: снимите ограничение по заголовку или IP CrawlGuard для публичного веб-трафика.
- Верните сохранённые A/AAAA/CNAME-записи сайта и прежний TTL в панели DNS.
- Дождитесь обновления DNS-кэшей и проверьте HTTPS и основные функции сайта через прежний маршрут.
- Удаляйте домен из CrawlGuard только после завершения переключения: пока часть посетителей приходит на наши узлы, запись сайта нужна для обслуживания.
Fail-open: ваш сайт важнее нашей защиты
- При сбое выдачи проверок или хранилища работающий узел защиты пропускает трафик без проверки. Это не прямой маршрут к вашему серверу: недоступность самих узлов или сети может нарушить доступ к сайту. Для возврата прямого маршрута используйте инструкцию отката.
- Превышен лимит тарифа или не прошла оплата — защита переходит в passthrough (трафик насквозь), а не в блокировку. Мы никогда не выключаем ваш сайт из-за денег.
FAQ
- Не заблокируете ли вы моих реальных клиентов?
- Новый посетитель видит короткий экран проверки, которая выполняется автоматически, без CAPTCHA и кликов. Подтверждённые поисковики проходят без неё; свои интеграции (API, мобильные приложения) добавьте в исключения. Проверка браузера и детект автоматизации включены с первого дня. Если возникают затруднения, можно поставить защиту на паузу и обратиться в поддержку: оператор может изменить чувствительность или перевести детект автоматизации в режим наблюдения.
- Вы терминируете мой HTTPS — что с данными посетителей?
- Да, мы снимаем TLS — иначе нельзя проверять браузер и прятать ваш сервер. Но мы не храним тела запросов и ответов: в аналитику идут только обезличенные поминутные агрегаты решений, а IP усечён до подсети. Инфраструктура и данные — в России, по 152-ФЗ. Подробнее — в политике конфиденциальности.
- Что будет, если ваш сервис станет недоступен?
- При сбоях выдачи проверок работающие узлы пропускают трафик без фильтрации. Это не гарантия доступности при отказе узлов или сети. Если нужно вернуть прямое подключение, следуйте инструкции возврата DNS.
- Пройдут ли мобильные и старые браузеры?
- Современные — да, включая мобильные: проверка использует стандартный Web Crypto, он есть во всех браузерах последних лет. Совсем старые браузеры без Web Crypto (например, Internet Explorer) увидят сообщение о неподдерживаемом браузере, а посетитель с выключенным JavaScript — просьбу его включить.
- Как устроена оплата и как её прекратить?
- На Free подписки нет. На платном плане продление списывается с баланса аккаунта, автоматических списаний с карты нет. Чтобы прекратить платное продление, выберите Free в разделе оплаты: переход произойдёт после оплаченного периода. Проверьте лимит Free — один сайт. Пока переход не назначен, оставшийся баланс может расходоваться на продление. По возвратам остатка напишите в поддержку; условия — в оферте.
- Замедлится ли сайт?
- Проверка действующей cookie выполняется локально. Полная задержка зависит также от сети и вашего сервера. Первое посещение требует браузерной задачи; время зависит от устройства и сложности. Подробнее о скорости.
- Что увидят пользователи?
- Новый посетитель видит экран «проверяем браузер», без картинок и кликов. После успешной проверки открывается ваш сайт. На медленном устройстве или при усиленной проверке ожидание может быть дольше.
- Совместимо ли с CDN?
- CrawlGuard сам терминирует TLS и должен стоять первым в пути трафика. CDN перед CrawlGuard не поддерживается; статику можно отдавать с отдельного домена-CDN либо добавить её пути в allowlist.
- Как быстро выключить защиту?
- Используйте паузу в кабинете или верните прежние DNS-записи по инструкции. Удалять домен до завершения переключения DNS нельзя: посетители ещё могут приходить через CrawlGuard.
Как работает защита
Посетитель без cookie доверия получает лёгкую страницу проверки. Браузер решает криптографическую задачу (proof-of-work), отправляет решение — сервер проверяет его, гасит одноразовый seed (повторно использовать решение нельзя) и ставит подписанную HttpOnly-cookie на вашем домене. Пока она действительна, повторная задача не нужна: подпись проверяется локально, без обращений к базе. Время первой проверки зависит от устройства, сети и настроенной сложности; это не гарантированная задержка в одну секунду.
Посмотреть вживую на демо-сайте: curl -I https://demo.crawlguard.ru/ вернёт 401,
а браузер пройдёт проверку и увидит содержимое.
- Сложность (difficulty) задаётся для каждого домена: выше — дороже для ботов, дольше для слабых устройств. Эти настройки меняет поддержка; в кабинете клиента доступны пауза защиты и исключения.
- Срок cookie (TTL) — тоже для каждого домена; по истечении посетитель проходит проверку заново. Изменение срока можно обсудить с поддержкой.
- Решение «пустить или показать проверку» всегда принимает сервер. JavaScript на странице только решает задачу — отключить защиту из браузера нельзя.
Производительность
Отдельно оценивайте первую проверку, повторный визит и передачу данных до вашего хостинга:
- Возвращающиеся посетители: проверка cookie добавляет доли миллисекунды к ответу — в раннем нагрузочном тесте 99% запросов укладывались в 8 мс вместе с проксированием. Это результат конкретного стенда, не SLA и не прогноз времени загрузки вашего сайта.
- Новые посетители: полная проверка (страница + задача + выдача cookie) — ~1 секунда в типичном случае; на слабых устройствах и при усилении проверки — дольше. Задачу вычисляет браузер, но соединения, выдача проверок и проксирование используют ресурсы edge.
- На каждый запрос защита не обращается ни к базе данных, ни к внешним сервисам — действующая cookie проверяется локально. У отказов инфраструктуры есть ограничения — см. поведение при сбоях.