A person asked for the page; it does not crawl
The Recolor fetcher
Recolor/0.1.0 is the user agent of Recolor (recolor.page), a palette tool that shows a web page in new colors. It fetches a page, its stylesheets and its fonts only when a person loads that page into Recolor, from Cloudflare's network, and it never crawls or follows links by itself. To refuse it, block user agents that contain "Recolor/".
Last updated
src/worker/limits.ts and the Worker, checked October 8, 2026| Property | Value |
|---|---|
| User agent | Mozilla/5.0 (compatible; Recolor/0.1.0; +https://recolor.page/docs/fetcher/) |
| Sent from | Cloudflare's network, by a Cloudflare Worker |
| Fetches | A page's HTML, its stylesheets and their imports, its fonts and CSS masks |
| Does not fetch | Images, video, scripts, or any page nobody asked for |
| Size limits | 5 MB of HTML, 2 MB per stylesheet, 10 MB per font or mask |
| Time limits | 10 seconds per page, 8 seconds per stylesheet |
| Redirects | Up to 5, each address checked before it is requested |
| Repeat fetches | None for 60 seconds: a prepared page is cached |
| Rate | About 30 page loads a minute per user's address, counted by Recolor |
| Other headers | Accept, Accept-Language: en-US,en;q=0.9; no cookies, no referrer |
| robots.txt | Not read: every fetch is asked for by a person |
Why your site was fetched
Someone opened Recolor and loaded your page: they typed or pasted its address, opened a Recolor link that carries it, or clicked a link to it inside a page they were already previewing. Recolor shows the page to that person, in their browser, and repaints it in a color palette they are trying out. Nothing is published, nothing is indexed, and nobody else sees it. How the page is prepared is on How Recolor repaints a page.
What it fetches and what it leaves alone
The fetcher asks for the page's HTML with Accept: text/html,application/xhtml+xml;q=0.9,*/*;q=0.5, follows redirects, and then fetches the
stylesheets the page links, so it can put them inline where the preview can read their colors. Fonts and CSS masks
are fetched on the preview's behalf too, because a sandboxed preview cannot load them across sites (fonts from
Google Fonts and Bunny Fonts excepted, which allow that). That is all:
images, video and scripts are loaded by the person's own browser, with its own user agent and without a referrer.
A prepared page is cached for 60 seconds and fonts for an hour, so a reload does not reach your server again. The fetcher sends no cookies and passes on nothing from the person's browser, and it never fetches an address on a private network. What Recolor stores and fetches has the details, and Limits every size and time.
Why it does not read robots.txt
The Robots Exclusion Protocol is written for crawlers, programs that find pages by following links and fetch them on their own. The Recolor fetcher is not one: it fetches one page because one person asked for it, the way a browser or a link preview does, and it never follows a link by itself. Reading robots.txt would also not express what a site owner usually wants here; blocking the user agent does, and it takes effect at once.
How to refuse it
Match the user agent on Recolor/ rather than the full string, since the version number changes with releases,
and answer with 403. The person in Recolor then sees that your site refused the page, with the status you sent.
nginx, inside the server block:
if ($http_user_agent ~* "Recolor/") {
return 403;
}Apache, in .htaccess or the site configuration, with mod_rewrite:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Recolor/ [NC]
RewriteRule ^ - [F]Cloudflare, as a WAF custom rule with the action Block:
(http.user_agent contains "Recolor/")Blocking it touches nothing else: search engines, browsers and other tools keep their access. People can still save your page from their own browser and upload it to Recolor, as Loading a page shows, because that never contacts your server.
How to recognize it
Requests come from Cloudflare's IP ranges, since the fetcher runs as a Cloudflare Worker, with the user agent
above, Accept-Language: en-US,en;q=0.9 and no cookies. The address after the + in the user agent leads to this
page. A few seconds later the same person's browser may ask for your images, which is an ordinary visit. Which real
sites load in Recolor, and how they behave, is in Which sites load.
Common questions
Is the Recolor fetcher a crawler?
No. It fetches a page only when a person loads it into Recolor, and it never follows links or schedules fetches by itself.
Does Recolor store or republish my page?
No. The page is shown to the one person who loaded it; Recolor's copy sits in a cache for 60 seconds and is not indexed or shared.
Does the fetcher respect robots.txt?
No, because it is not a crawler: each fetch is requested by a person. To refuse it, block the user agent, which works at once.
Can I block the Recolor fetcher?
Yes. Answer requests whose user agent contains "Recolor/" with 403; Recolor then tells its user that your site refused.
Will blocking it affect search engines or browsers?
No. A rule on "Recolor/" matches only this fetcher.
Does the fetcher download images and scripts?
No. It fetches HTML, stylesheets, fonts and CSS masks; images, video and scripts come from the visitor's own browser.
Sources
- RFC 9309: Robots Exclusion Protocol rfc-editor.org
- User-Agent header, MDN developer.mozilla.org
- http.user_agent field, Cloudflare Rules language developers.cloudflare.com
- Module ngx_http_rewrite_module, nginx nginx.org
- Apache module mod_rewrite httpd.apache.org
- Cloudflare IP ranges cloudflare.com