Bots
Slackbot-LinkExpanding: Slack previews
Slackbot-LinkExpanding is the Slack agent that fetches a page when someone posts its link in Slack, reading oEmbed, Open Graph and Twitter Card tags to build the preview. Slack says it does not honour robots.txt and fetches the same URL at most every 30 minutes. Allow it: blocking only breaks your previews. It cannot be verified.
7 days free · card required
0AI-view requests from Slackbot-LinkExpanding · 30 days
filed as conventional traffic (SEO tools, uptime checks, link unfurlers)
| Agent | AI requests, 30 days | attensira.com robots.txt |
|---|---|---|
| Slackbot-LinkExpanding (this page) | not counted | Wildcard |
| facebookexternalhit | not counted | Allowed |
None of the 2 had a request filed in the window. "Not counted" is off the board's AI view, not a zero.
Karl-Gustav Kallasmaa, Founder & CEOLast updated How do I allow or block Slackbot-LinkExpanding in robots.txt?
Paste this into the robots.txt at the root of your domain. The operator says the agent may not read robots.txt, so the group records your preference; enforce anything sensitive on the server. Beside it, the group attensira.com serves Slackbot-LinkExpanding today.
# Allow both Slack agents so link previews build. Slack# states it does not honour robots.txt: a Disallow records# a preference and does not stop the fetch.User-agent: Slackbot-LinkExpandingAllow: / User-agent: Slack-ImgProxyAllow: /# No group names Slackbot-LinkExpanding, so it reads the# wildcard group.User-agent: *Allow: /Disallow: /api/We do not name Slackbot-LinkExpanding. It falls through to the wildcard group, which allows everything except /api/. Its operator states robots.txt may not apply to it, so this group is a preference at most.
Read the whole file, or write yours with the robots.txt generator.
Who runs Slackbot-LinkExpanding, and what is it for?
Slack runs it, and we file it under user-triggered fetch. Fetches a page because someone posted its link in Slack, to build the preview card people see. It feeds no search or AI answer engine.
From Slack’s documentation, read . Why a training fetch and a search fetch are different decisions: the AI crawler guide.
Why is my Slack link preview empty?
Slack fetches as little of the page as it can, using HTTP Range headers, and looks for oEmbed, Open Graph and Twitter Card tags.1 If those tags sit behind a large inlined stylesheet, or your server ignores Range and streams a slow full response, the unfurler may stop before it reaches them. The fix is the one that fixes Facebook cards for facebookexternalhit: put the Open Graph block near the top of the <head>.
The 30-minute cache is your debugging clock.6 A fix will not show in a message that already unfurled, so test with a URL Slack has not fetched recently.
Which Slack agent matters for my preview?
Slackbot-LinkExpanding reads the tags. Slack-ImgProxy fetches, caches and proxies images.3 If a preview shows a title but no image, check that the image URL your tags name is reachable from outside your network. Slackbot is the general robot for API calls and webhooks and has nothing to do with previews.4
In log filters, match Slackbot as a whole word. As a bare substring it also matches Slackbot-LinkExpanding, and the unfurler gets counted twice.
How do I verify that a visit really came from Slack?
You cannot. Slack's robots page offers the three user-agent strings and nothing else: no IP ranges and no reverse DNS suffix.7 The header is free text, and unfurler tokens are commonly trusted at CDNs, so do not write a rule that lets Slackbot skip a bot challenge. The general methods are in verifying a crawler.
Slack publishes no reverse-DNS suffix and no IP range file for Slackbot-LinkExpanding, so a visit can be matched only by its user agent.
ResearcherTranscribed from Slack documentation · What user-agent string does Slackbot-LinkExpanding send?
Match the token, never the version. A rule pinned to a version stops matching silently the next time the operator ships.
The version in this string changes; check Slack’s page before relying on the exact text.
What does allowing Slackbot-LinkExpanding cost?
Allowing it costs at most one fetch per URL every 30 minutes and gives your links a preview card in Slack. Blocking it only breaks those previews, and Slack says it does not honour robots.txt, so a robots.txt rule would not stop it anyway.
Slackbot-LinkExpanding 1.0 (+https:/ / api.slack.com/ robots)Slack-ImgProxy 0.19 (+https:/ / api.slack.com/ robots)Slackbot 1.0 (+https:/ / api.slack.com/ robots)
ResearcherTranscribed from Slack documentation · Should I allow Slackbot-LinkExpanding in my situation?
Concrete cases, and what each one implies for this agent.
A link to your page in Slack unfurls with no title or image.
Check your oEmbed, Open Graph and Twitter Card tags, and whether the Range request returns them.
Slack states that it fetches as little of the page as it can using HTTP Range headers, looking for oEmbed and Twitter Card or Open Graph tags. If your meta tags sit behind a large head section, or your server ignores Range and streams slowly, the unfurler may never reach them.
You disallowed Slack in robots.txt and it kept fetching.
Stop treating it as non-compliance and use Slack's documented route.
Slack states that it does not currently honor robots.txt files, having implemented it and then withdrawn support. It directs site owners who want to be excluded to contact them to be added to a blocklist. The robots.txt rule was never going to have an effect.
A single popular link is generating repeated fetches and you suspect a loop.
Compare the interval against Slack's documented 30-minute cache before investigating further.
Slack states that responses are cached globally across the service for around 30 minutes and that you should not see more than one request for the same URL more often than that. Requests arriving faster than that are either not Slack, or a different URL than you think.
What else do people ask?
Does Slack follow the links on my page?
What does the plain Slackbot agent fetch?
Does Slack obey robots.txt?
Then how do I stop Slack fetching my pages?
How often will it re-fetch the same URL?
Where do these facts come from?
7 claims on this page, each with the page it was read from; last checked . The numbers in the text point here.
Slack documents Slackbot-LinkExpanding as the robot that responds to links Slack users post into their channels, fetching as little of the page as it can using HTTP Range headers to extract oEmbed and Twitter Card or Open Graph meta tags.
api.slack.com · retrieved
“This robot responds to links that Slack users post into their channels.”
Slack documents the unfurler's user agent as "Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)".
api.slack.com · retrieved · changes often, check the source
Slack documents "Slack-ImgProxy 0.19 (+https://api.slack.com/robots)" as the robot used to fetch, cache and proxy images.
api.slack.com · retrieved · changes often, check the source
Slack documents "Slackbot 1.0 (+https://api.slack.com/robots)" as its default, general-purpose robot used for any HTTP request not covered by the other two, including API requests to integrated services and outgoing webhooks.
api.slack.com · retrieved · changes often, check the source
Slack states that it does not currently honor robots.txt files, explaining that it implemented and experimented with doing so, received too many complaints because a great portion of the internet is inaccessible to crawlers, and that it is not a crawler because it does not follow links; it directs site owners to contact it to be added to a blocklist.
api.slack.com · retrieved
“We do not currently honor robots.txt files.”
Slack states that unfurl responses are cached globally across the service for around 30 minutes and that a site should not see more than one request for the same URL more frequently than that.
api.slack.com · retrieved
“Responses to these requests are cached globally across the service for around 30 minutes.”
Slack's robots documentation publishes no IP ranges and no reverse DNS suffix for its agents, offering only the user-agent strings as identification.
api.slack.com · retrieved
Want whatever it takes to win the answer?
7 days free · card required