Slack-ImgProxy

What is Slack-ImgProxy?

Slack-ImgProxy is a specialized web crawler developed and operated by Slack Technologies to handle image processing within the Slack messaging platform. It functions as an image proxy service that retrieves, caches, and optimizes images shared in Slack channels. When users share image links in Slack, this agent fetches those images from their original locations and processes them before displaying them in the Slack interface. You can find more information about Slack's robots at https://api.slack.com/robots.

In server logs, Slack-ImgProxy identifies itself with a user agent string like Slack-ImgProxy 0.19 (+https://api.slack.com/robots), with the version number potentially varying. Requests from this agent originate from IP addresses within Amazon Web Services (AWS) infrastructure, reflecting Slack's cloud-based architecture.

Unlike standard web crawlers, Slack-ImgProxy notably disregards robots.txt directives, considering image proxying an essential function rather than optional web indexing. It focuses exclusively on images explicitly shared in Slack conversations and doesn't crawl websites recursively or index textual content.

Why is Slack-ImgProxy crawling my site?

If you're seeing Slack-ImgProxy in your logs, it means someone has shared an image from your website in a Slack conversation. The bot is retrieving that specific image to display it within Slack's interface. It doesn't randomly crawl your site—it only accesses images that Slack users have explicitly shared.

The frequency of visits depends entirely on how often your images are shared in Slack conversations. Popular images shared across multiple channels or workspaces may generate multiple requests as the cache refreshes. Each request is triggered by a user action within Slack, such as opening a channel where an image link was previously shared.

This crawling activity is considered authorized under standard web practices, as your images are being accessed for legitimate display purposes after a user has shared your content.

What is the purpose of Slack-ImgProxy?

Slack-ImgProxy serves three primary functions that enhance the Slack user experience:

First, it provides security by ensuring all images are served over HTTPS, even if the original source uses HTTP. This prevents mixed content warnings and maintains Slack's security standards.

Second, it offers privacy protection by obfuscating referrer data. Without this proxy, external servers would receive HTTP referrer headers that might reveal sensitive information about Slack workspace names, channel names, or conversation contexts.

Third, it improves performance by resizing and reformatting images to reduce bandwidth consumption and improve load times within the Slack client. This optimization makes the platform more responsive, especially on mobile devices or slower connections.

For website owners, this means your images reach a wider audience through Slack's platform, though you won't receive direct referrer information from individual Slack users viewing your content.

How do I block Slack-ImgProxy?

Since Slack-ImgProxy intentionally disregards robots.txt directives, standard crawl control methods won't work. As Slack's documentation explicitly states, the agent does not honor Disallow directives in robots.txt files because image proxying is considered essential functionality for workspace security.

If you need to block Slack-ImgProxy, you'll need to implement HTTP header controls or server-level blocking. One effective approach is to use HTTP caching headers to control how frequently the agent re-fetches images. For example, implementing Cache-Control: public, max-age=604800 instructs the proxy to cache images for seven days, reducing server load.

For complete blocking, you can implement web application firewall rules that target the Slack-ImgProxy user agent string. For Apache servers, this can be configured with:

SetEnvIf User-Agent "Slack-ImgProxy" deny_ua
Order allow,deny
Allow from all
Deny from env=deny_ua

Similar configurations exist for Nginx and other web servers. However, blocking Slack-ImgProxy will prevent Slack users from viewing images from your site within the Slack interface, potentially reducing visibility of your content among Slack's user base. Consider whether the benefits of blocking outweigh this potential reduction in content distribution.

Something incorrect or have feedback?
Share feedback
Slack-ImgProxy logo

Operated by

Data fetcher

Documentation

Go to docs

AI model training

Not used to train AI or LLMs

Acts on behalf of user

Yes, behavior is triggered by a real user action

Obeys directives

No, does not obey robots.txt rules

User Agent

Slack-ImgProxy 0.19 (+https://api.slack.com/robots)