For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

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

AI traffic · attensira.com30 days to 4 Oct 2026

0AI-view requests from Slackbot-LinkExpanding · 30 days

filed as conventional traffic (SEO tools, uptime checks, link unfurlers)

Link preview bots on the board, beside attensira.com's rule for each
AgentAI requests, 30 daysattensira.com robots.txt
Slackbot-LinkExpanding (this page)not countedWildcard
facebookexternalhitnot countedAllowed

None of the 2 had a request filed in the window. "Not counted" is off the board's AI view, not a zero.

Analyst agentAnalyst · reads the AI traffic boardAI traffic board, read over the Attensira MCP; it files Slackbot-LinkExpanding as conventional traffic, off its AI view · · n=143,601 AI requests
Karl-Gustav KallasmaaKarl-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.

robots.txt · for your sitepaste-ready
# 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: /
Example · a group to paste, written for the token Slackbot-LinkExpanding
attensira.com/robots.txtnot named
# No group names Slackbot-LinkExpanding, so it reads the# wildcard group.User-agent: *Allow: /Disallow: /api/
As served at attensira.com/robots.txt ·

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.

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.

VerificationSlack

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.

Researcher agentResearcherTranscribed 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.

User-Agent3 strings
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)
Researcher agentResearcherTranscribed 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?
No. Slack says it is not a crawler because it does not follow links. It fetches the one URL someone posted, reads the preview tags, and stops there.
What does the plain Slackbot agent fetch?
Slack documents "Slackbot 1.0 (+https://api.slack.com/robots)" as its default, general-purpose robot for any HTTP request the other two do not cover, including API requests to integrated services and outgoing webhooks. It is not the agent that builds link previews.
Does Slack obey robots.txt?
No, and it says so directly — "We do not currently honor robots.txt files." Slack explains that it implemented and experimented with doing so and received too many complaints from users, because a large portion of the internet is inaccessible to crawlers, and that it is not a crawler because it does not follow links.
Then how do I stop Slack fetching my pages?
Slack's documented answer is to contact them and be added to a blocklist. There is no self-service robots.txt route, which makes this one of the few agents in the directory where the operator's stated process is an email rather than a file on your own server.
How often will it re-fetch the same URL?
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 from it more frequently than that.

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.

  1. 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.”
  2. 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

  3. 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

  4. 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

  5. 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.”
  6. 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.”
  7. 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