Grammarly знают почти все как расширение для проверки грамматики в браузере — но токен grammarly в access.log относится не к этому расширению, а к отдельному, официально задокументированному краулеру компании. В каталоге TrafficVeil он отмечен как легитимный в категории «Прочие краулеры и сервисы», и здесь, в отличие от многих соседей по категории, оператор известен совершенно точно.
Что такое GrammarlyBot
За токеном grammarly стоит GrammarlyBot — краулер компании Grammarly Inc., впервые замеченный в открытых каталогах ботов ещё в январе 2018 года и официально описанный на странице grammarly.com/bot. Официальная строка UA выглядит так: Mozilla/5.0 (compatible; GrammarlyBot/1.0; +https://www.grammarly.com/bot). По назначению бот собирает общедоступный контент, чтобы улучшать понимание языковых паттернов, стиля и контекста — то есть данные, на которых строятся грамматические и стилистические подсказки самого сервиса Grammarly для его пользователей.
| Параметр | Значение |
| Название | GrammarlyBot |
| User-Agent / паттерн | grammarly (официальная строка: Mozilla/5.0 (compatible; GrammarlyBot/1.0; +https://www.grammarly.com/bot)) |
| Оператор | Grammarly Inc. |
| Роль | Сбор общедоступного веб-контента для улучшения языковых моделей и понимания стиля/контекста, на которых строятся подсказки сервиса |
| Документация / ориентир | Официальная страница grammarly.com/bot |
| Список IP | ❌ Отдельного публичного списка IP не обнаружено; проверяйте ASN и не доверяйте только строке UA |
| robots.txt | Официально задокументированный токен — стандартное правило User-agent: GrammarlyBot / Disallow: / признаётся оператором |
| Пометка TrafficVeil | Легитимный / Прочие краулеры и сервисы |
Зачем GrammarlyBot приходит на сайт
В отличие от многих соседей по категории «Прочие краулеры и сервисы», у GrammarlyBot нет скрытого назначения — компания открыто описывает его как инструмент для расширения понимания письменной речи в разных доменах и индустриях. Практически это означает системный, а не разовый обход: бот проходит по текстовым разделам сайта, собирая материал для последующего анализа языковых паттернов, а не проверяет доступность или метаданные аккаунта.
Какие зоны сайта такой обход чаще всего затрагивает: /blog/, /product/, /category/, /news/, открытый /api/, страницы пагинации каталога — везде, где есть содержательный текст. Типичный сигнал в диагностике: CDN-трафик подрастает, origin CPU занят вычиткой HTML, а фильтр по grammarly показывает систематический, а не единичный проход по перечисленным разделам.
Нагрузка и риски именно для GrammarlyBot
Отдельной строки в публичной сводке топ-ботов TrafficVeil у grammarly может не быть, но по функции это полноценный контентный краулер, а не лёгкий сервисный агент — значит, потенциальная нагрузка выше, чем у ботов с узкой технической задачей. Смотрите не только на абсолютный RPS, но и на:
- глубину обхода — систематический проход по текстовым разделам, а не 2-3 фиксированных URL;
- повторы одних и тех же адресов без видимой причины;
- отсутствие cookie и признаков сессии;
- концентрацию именно на текстоёмких страницах.
Как найти GrammarlyBot в логах
Ищите конкретный токен grammarly, а не общее слово «bot» — рядом сразу смотрите семейство похожих AI-инструментов письма, если работаете с несколькими одновременно.
# Базовый поиск
grep -i "grammarly" /var/log/nginx/access.log
# Топ URL, которые вычитывает бот
grep -i "grammarly" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head
# Топ IP за этим UA
grep -i "grammarly" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head
# Суточная активность
grep -i "grammarly" /var/log/nginx/access.log | awk '{print $4}' | cut -d: -f1 | sort | uniq -c
Официальная строка UA GrammarlyBot известна и легко проверяется — если заголовок в логах существенно отличается от неё, это повод присмотреться внимательнее. Тем не менее подделать любую строку может скрипт, поэтому для окончательного решения смотрите связку UA + ASN/IP + частота + набор URL, а не один заголовок:
IP="1.2.3.4" whois -h whois.cymru.com " -v $IP" dig +short -x "$IP"
robots.txt для GrammarlyBot
# Жёсткий запрет User-agent: grammarly Disallow: / # Разрешить всё User-agent: grammarly Allow: / # Компромисс: закрыть деньги/кабинет, оставить публичную часть User-agent: grammarly Disallow: /admin/ Disallow: /cart/ Disallow: /checkout/ Disallow: /account/ Disallow: /api/ Allow: /
Поскольку это официально задокументированный оператор с открытой страницей про свой краулер, вероятность, что GrammarlyBot полностью проигнорирует robots.txt, ниже, чем у анонимных агентов. Тем не менее для крупной сети сайтов имеет смысл проверить это по факту, а не полагаться только на репутацию оператора.
Блокировка вручную и через TrafficVeil
Nginx
if ($http_user_agent ~* "grammarly") {
return 403;
}
limit_req_zone $binary_remote_addr zone=grammarly:10m rate=10r/m;
location / {
if ($http_user_agent ~* "grammarly") {
limit_req zone=grammarly burst=20 nodelay;
}
}
Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} grammarly [NC]
RewriteRule ^ - [F,L]
TrafficVeil
- найдите grammarly / GrammarlyBot в ботах домена или в
/system/bots; - для нежелательного сценария — категория «запретить»; для мягкого — rate-limit;
- allow оставляйте осознанно — например, если присутствие контента в базах, на которых учится AI-инструмент письма, вам не мешает;
- после изменения сверьте логи: хиты GrammarlyBot должны уйти в блок/лимит, а нужные поисковики остаться нетронутыми.
С кем не путать GrammarlyBot
| Бот / сосед | Кластер | UA | Комментарий |
| 2ip Bot | Прочие краулеры и сервисы | 2ip bot | легитимный |
| AccessStatus | Прочие краулеры и сервисы | accessstatus | легитимный |
| AddThis.com | Прочие краулеры и сервисы | addthis.com | легитимный |
| Agent | Прочие краулеры и сервисы | agent | легитимный |
| AgentReadinessScanner | Прочие краулеры и сервисы | agentreadinessscanner | легитимный |
Стратегия allow/deny для GrammarlyBot
| Ситуация | Действие |
| Присутствие контента в базах AI-инструмента письма не критично | Allow + закрыть /admin /cart /api |
| Использование контента для стороннего AI-продукта нежелательно | Disallow + запрет в TrafficVeil |
| Обход в целом приемлем, но нагрузка избыточна | Rate-limit на nginx/TrafficVeil |
| Нежелательный по базе TrafficVeil | Deny по умолчанию, исключения — точечно |
| UA в логах заметно отличается от официальной строки GrammarlyBot | Не доверять заголовку; смотреть IP/ASN и поведение — вероятен спуфинг |
Главный вывод по GrammarlyBot: несмотря на открытость оператора и наличие официальной документации, по функции это полноценный контентный краулер для AI-продукта, а не безобидный сервисный агент. Решение allow/deny здесь разумнее принимать так же, как для любого другого бота, который забирает контент сайта для развития стороннего AI-сервиса, — сознательно взвешивая пользу и расход ресурсов origin.