Slackbot-LinkExpanding — первая половина уже знакомой по этой серии пары ботов Slack (вторая — Slack-ImgProxy, который отдельно забирает и проксирует само изображение). Именно LinkExpanding первым обращается к странице, когда пользователь вставляет в сообщение ссылку, и разбирает её содержимое, чтобы построить то, что Slack официально называет «unfurl» — развёрнутую карточку предпросмотра прямо в чате.
Технические тонкости процесса unfurl, которые определяют поведение бота
По официальной документации Slack, разворачивание ссылки — не универсальный процесс для абсолютно любого URL: платформа сама решает, разворачивать ли конкретную ссылку, отталкиваясь от типа контента. «Медиа» — изображения, твиты, видео, аудио — обрабатывается иначе, чем обычные текстовые страницы. У процесса есть и практический лимит: Slack разворачивает не более пяти ссылок в одном сообщении, даже если их вставлено больше. Ещё одна нетривиальная деталь напрямую влияет на то, будет ли вообще вызван unfurl-бот: если текст ссылки в сообщении (label) совпадает с самим URL без протокола, разворачивание не произойдёт — а вот если пользователь дал ссылке содержательное имя, отличное от самого адреса, она развернётся. Именно эта логика определяет, зайдёт ли Slackbot-LinkExpanding на конкретную страницу вообще, а не только сам факт наличия ссылки в сообщении.
Параметры бота
| Параметр | Значение |
| User-Agent | содержит Slackbot-LinkExpanding; независимо задокументированный базовый вариант — Slackbot 1.0 (+https://api.slack.com/robots) |
| Оператор | Slack Technologies |
| Роль | Первый этап unfurl: HTTP GET-запрос к ссылке, разбор HTML и метатегов (Open Graph, Twitter Card, oEmbed) для построения карточки предпросмотра |
| Триггер запроса | Событие в конкретном канале — пользователь вставил URL с содержательным текстом ссылки, отличным от самого адреса; по умолчанию срабатывает для сообщений живых пользователей, для сообщений через API/вебхуки — только для медиаконтента, если явно не задан параметр unfurl_links |
| Лимит на сообщение | Не более 5 ссылок разворачивается в одном сообщении Slack |
| Расширенная функциональность (App Unfurls) | С 2020 года Slack рассылает событие link_shared подключённым приложениям для всех типов бесед независимо от членства бота в канале — сторонние приложения могут строить кастомные, в том числе «аутентифицированные» карточки предпросмотра (например, для внутренних CRM-ссылок) через отдельный метод chat.unfurl |
| Родственный бот | Slack-ImgProxy — отдельно запрашивает и проксирует само изображение из og:image, найденного LinkExpanding |
Почему это не «индексация сайта», а событийный, точечный процесс
Важно не путать эту механику с системным обходом сайта: Slackbot-LinkExpanding не сканирует произвольные страницы сайта самостоятельно — он реагирует исключительно на факт того, что кто-то в конкретном Slack-канале вставил конкретную ссылку, причём даже это не гарантирует запрос (см. правило про совпадение label с URL выше). Это тот же принципиальный класс поведения, что у redditbot, OdklBot и bitlybot из этой серии: точечный fetch по действию пользователя, а не фоновый краулинг.
Подключите домен и посмотрите живую ленту: кто пришёл, с какой сети, что запрашивал и по какому правилу был пропущен или заблокирован.
Сколько трафика он создаёт
По сводке TrafficVeil, паттерн запросов slackbot-linkexpanding на подключённых доменах составил порядка 200. Это ожидаемо небольшой объём, соответствующий узкому, событийному характеру запросов, которые срабатывают только при обсуждении конкретной ссылки в рабочих Slack-каналах.
Как найти бота в логах
grep -iE "Slackbot-LinkExpanding|Slackbot" /var/log/nginx/access.log
Стоит ли блокировать
- если сайт заинтересован в качественных превью при обсуждении ссылок в рабочих Slack-каналах (актуально для SaaS-продуктов, документации, инструментов для команд — именно там Slack особенно активно используется) — бота стоит разрешить и убедиться, что og-теги отдаются в исходном серверном HTML;
- если превью в Slack не имеют значения для сайта — блокировка не влияет на позиции в органической выдаче Google, Bing или Яндекса, поскольку unfurl не связан с классической поисковой индексацией;
- помнить, что этот бот работает в паре с Slack-ImgProxy: запрет одного при разрешённом другом даст неполное превью — например, заголовок и описание появятся, а картинка нет.
Как настроить доступ
Если превью в Slack нужны — явное разрешение, критично важно также убедиться, что og-теги присутствуют сразу в серверном HTML, а не подгружаются клиентским JavaScript:
User-agent: Slackbot-LinkExpanding
Allow: /
Если превью не нужны — запрет с дублированием на уровне сервера:
User-agent: Slackbot-LinkExpanding
Disallow: /
if ($http_user_agent ~* "Slackbot-LinkExpanding") {
return 403;
}Частые вопросы
Slackbot-LinkExpanding сканирует сайт целиком?
Правда ли, что бот может не зайти на страницу даже при наличии ссылки в сообщении?
Сколько ссылок разворачивает Slack в одном сообщении?
Чем этот бот отличается от Slack-ImgProxy?
Что такое App Unfurls, появившиеся в 2020 году?
Что нужно проверить, чтобы превью в Slack работало корректно?
Команда TrafficVeil разрабатывает инструменты защиты сайтов от ботов, DDoS и веб-атак. Разборы ботов пишем по логам подключённых доменов и открытым данным операторов.