Reddit i cloaking robots.txt – analiza i testy
Minęło już 2 lata jak sprawdzałem plik robots.txt serwisu Reddit i wykryłem, że robi cloaking, a przy tym blokując wszystkich innych dyrektywą Disallow: /. Postanowiłem wrócić do tematu i sprawdzić, co zmieniło się od tamtej pory. Zapraszam, bo wychodzi na to, że jest minimum 4 różne wersje robots.txt 🙂

Przypomnienie: co znalazłem w 2024 roku
Pierwszy raz natknąłem się na cloaking pliku robots.txt serwisu Reddit w sierpniu 2024 roku, gdzie standardowe zapytanie do reddit.com/robots.txt zwracało:
User-agent: *
Disallow: /Narzędzie Google Rich Results Test z tego samego okresu pokazywało plik pozwalający na indeksację, z dziesiątkami szczegółowych reguł dla poszczególnych sekcji serwisu.
Plik robots.txt dla Google w 2026 roku (kliknij żeby rozwinąć)
# Our robots.txt is for search engines
# 80legs
User-agent: 008
Disallow: /
# 80legs' new crawler
User-agent: voltron
Disallow: /
User-Agent: bender
Disallow: /my_shiny_metal_ass
User-Agent: Gort
Disallow: /earth
User-agent: MJ12bot
Disallow: /
User-agent: PiplBot
Disallow: /
User-Agent: *
Disallow: /*.json
Disallow: /*.json-compact
Disallow: /*.json-html
Disallow: /*.xml
Disallow: /*.rss
Allow: /discover.rss
Allow: /r/*.rss
Disallow: /r/*/search.rss
Disallow: /r/*/comments/*.rss
Disallow: /r/*/config/*.rss
Disallow: /r/*/wiki/*.rss
Disallow: /*.i
Disallow: /*.embed
Disallow: /*/comments/*?*sort=
Disallow: */comment/*
Allow: /r/*/comments/*/*/de/*
Allow: /r/*/comments/*/*/es/*
Allow: /r/*/comments/*/*/fr/*
Allow: /r/*/comments/*/*/pt/*
Allow: /r/*/comments/*/*/it/*
Allow: /r/*/comments/*/*/video/*
Disallow: /r/*/comments/*/*/*/*
Disallow: /r/*/submit$
Disallow: /r/*/submit/$
Disallow: /message/compose*
Disallow: /api
Disallow: /post
Disallow: /submit
Disallow: /goto
Disallow: /*before=
Disallow: /user/*after=
Disallow: /u/*after=
Disallow: /domain/*t=
Allow: /login
Disallow: /remove_email/t2_*
Disallow: /r/*/user/
Disallow: /gold?
Disallow: /search*
Disallow: /*/search?
Disallow: /*/search/?
Disallow: /*/search$
Disallow: /*/search/$
Disallow: /search.compact$
Disallow: /*/search.compact$
Allow: /r/*/comments/*/search/$
Allow: /r/*/comments/*/search$
Disallow: /static/button/button1.js
Disallow: /static/button/button1.html
Disallow: /static/button/button2.html
Disallow: /static/button/button3.html
Disallow: /subreddits/*
Disallow: /buttonlite.js
Disallow: /timings/perf
Disallow: /counters/client-screenview
Disallow: /*?*feed=
Disallow: /svc/shreddit/*
Disallow: /svc/sh/*
Disallow: /svc/web/*
Disallow: /svc/events/preload-header
Disallow: /graphql
Disallow: /errors$
Disallow: /live/*
Disallow: /mediaembed/*
Disallow: /media
Disallow: /gallery/*
Disallow: /poll/*
Allow: /
Allow: /sitemaps/*.xml
Allow: /posts/*
Disallow: /answers/*
Allow: /answers$
Allow: /answers/$
User-agent: AdsBot-Google
Disallow: /search*
Disallow: /*/search?
Disallow: /*/search/?
Disallow: /*/search$
Disallow: /*/search/$
Disallow: /search.compact$
Disallow: /*/search.compact$Plik robots.txt serwisu Reddit różni się minimalnie od wersji z 2024 roku.
Jak się okazuje zniknęło:
disallow: /login
disallow: /search
disallow: /search$
disallow: /search?q=
disallow: /search?title=Doszły też nowe dyrektywy
User-agent: AdsBot-Google
Disallow: /search*
Disallow: /*/search?
Disallow: /*/search/?
Disallow: /*/search$
Disallow: /*/search/$
Disallow: /search.compact$
Disallow: /*/search.compact$W 2024 roku mówiłem, że Reddit stosuje cloaking. Po 2 latach okazuje się, że to wielowarstwowy mechanizm.
4 wersje 1 pliku
Sprawdziłem bezpośrednio przez curl, jak wygląda robots.txt w zależności od nagłówka User-Agent.
- Blokada wszystkich, czyli domyślny robots.txt
- Dedykowany robots.txt dla archive.org umożliwiając archiwizowanie TYLKO strony głównej Reddit’a dzięki dyrektywie
Allow: /$ - Social media umożliwiają podgląd udostepnianego linku
- Biała lista podmiotów z pełnym dostępem do serwisu Reddit
Wariant domyślny – blokada wszystkich:
curl -A "Claudebot" https://www.reddit.com/robots.txt
curl -A "Seekio.pl" https://www.reddit.com/robots.txtObie komendy zwracają identyczny plik, co potwierdziłem również bezpośrednio w przeglądarce:
# Welcome to Reddit's robots.txt
# Reddit believes in an open internet, but not the misuse of public content.
# See https://support.reddithelp.com/hc/en-us/articles/26410290525844-Public-Content-Policy
# See https://www.reddit.com/r/reddit4researchers/ for details on how Reddit continues to support research and non-commercial use.
User-agent: *
Disallow: /To wersja, którą widzi każdy losowy bot i każdy losowy skrypt, czyli zero dostępu do czegokolwiek ale…
Wariant dla Internet Archive – tylko strona główna:
curl -A "archive.org_bot" https://www.reddit.com/robots.txtPokazuje już coś innego
# Allowed for archiving
# =====================
User-Agent: *
Allow: /$
Disallow: /To istotna zmiana w czasie. W aktualizacji do poprzedniego artykułu pisałem, że od grudnia 2024 roku Reddit całkowicie zablokował archive.org. Sprawdzajac wersje archiwalne na początku 2025 roku pokazują samo Disallow: / bez żadnego wyjątku. Obecna, częściowa wersja z dostępem do samej strony głównej (Allow: /$ – dokładne dopasowanie root URL i nic poza tym) to osobna późniejsza zmiana.
Wayback Machine Internet Archive nie respektuje robots.txt od 2017 roku
Internet Archive już w kwietniu 2017 roku opub1likowało wpis, w którym napisali, że odchodzi od respektowania plików robots.txt przy podejmowaniu decyzji o archiwizacji. Zaczęli od domen rządowych i wojskowych USA, ale zapowiedzieli, że będą to rozszerzać.
Co ciekawe dla social media serwowany jest inny robots.txt
Wariant dla crawlerów podglądu linków (Meta, X):
curl -A "facebookexternalhit" https://www.reddit.com/robots.txt
curl -A "Twitterbot" https://www.reddit.com/robots.txtTest curl dla User-agentów Meta oraz X.com pokazuje wystarczająco dużo, by wygenerować podgląd linku przy udostępnianiu posta ale wciąż daleko od pełnego dostępu.
# Allowed for social sharing
# ==========================
User-Agent: *
Disallow: /
Allow: /r/*
Allow: /oembed*
Allow: /avatar/*
Allow: /user/*
Allow: /u/*
Allow: /tldr/*
Allow: /best/*
Allow: /register/
Allow: /login/
Allow: /media
Allow: /c/*
Allow: /$No i klasyka, czyli biała lista z pełnym dostępem
Wariant pełny (biała lista) – dostępny dla Google i OpenAI
Ten sam plik, który w 2024 roku widziała tylko pamięć podręczna Google, dziś mogę odtworzyć na 2 niezależne sposoby
- Google Rich Results Test
- bezpośrednie zapytanie w ChatGPT promptem
„podaj zawartość pliku robots strony reddit.com„
Test z ChatGPT powtórzyłem na koncie będąc zalogowanym oraz w trybie incognito jako niezalogowany. Wynik identyczny w obu przypadkach!
Obie metody zwracają identyczny, w pełni rozbudowany plik. Oznacza to, że wersja z białą listą jest aktywnie utrzymywana i rozwijana i widoczna tylko dla wybranych podmiotów. Przypomnę tylko, że przychody z licencjonowania danych na platformie Reddit w Q2 2026 wzrosły o 24% do 43 mln dolarów, a na czele listy kupujących plasuje się OpenAI i Google2
2 warstwy cloakingu
Tu dochodzę do najważniejszego odkrycia tej analizy. Próbowałem podszyć się pod user-agent i dostałem ciekawe info:
curl -A "Googlebot" https://www.reddit.com/robots.txt
curl -A "GPTBot" https://www.reddit.com/robots.txt
curl -A "bingbot" https://www.reddit.com/robots.txtWszystkie 3 zapytania zwróciły identyczną stronę blokady:
<h1>whoa there, pardner!</h1>
<p>Your request has been blocked due to a network policy.</p>Co ciekawe, strony blokady różniły się jednym szczegółem – kodem ticketu na dole strony:
| User-Agent | Kod ticketu |
|---|---|
| Googlebot | (puste pole) |
| GPTBot | 01a0230d-d445-7048-bb4a-4118c75de615 |
| bingbot | 01a02388-1b13-7974-83b5-99a031e78014 |
Ta różnica sugeruje, że zapytania nie są odrzucane w jednym, wspólnym miejscu. Możliwe, że fałszywy Googlebot jest blokowany wcześniej – na poziomie brzegowym CDN, jeszcze zanim trafi do warstwy aplikacji generującej ticket – podczas gdy GPTBot i bingbot przechodzą nieco dalej i dopiero tam są odrzucane.
Z tych testów wynika, że Reddit stosuje 2 niezależne warstwy cloakingu:
- Warstwa sieciowa (WAF) – dla najbardziej „atrakcyjnych” do podszywania się identyfikatorów (Googlebot, GPTBot, bingbot) sam nagłówek User-Agent nie wystarczy. System weryfikuje prawdopodobnie jeszcze IP lub rDNS.
- Warstwa treści pliku (klasyczny cloaking) – dla pozostałych identyfikatorów (Claude, archive.org, facebookexternalhit, Twitterbot, każdy losowy string) wystarczy sam nagłówek User-Agent, żeby dostać 1 z opisanych wcześniej wersji pliku. Tu nie ma żadnej weryfikacji sieciowej.
Reddit nie ufa samej deklaracji User-Agent w przypadku botów, które są dla niego najcenniejsze i jednocześnie najbardziej opłacalne do podrobienia ale dla całej reszty standardowy cloaking na poziomie treści pliku w zupełności wystarcza. Odkrycie jest ciekawe moim zdaniem.
Bing – blokada potwierdzona niezależną metodą i zmierzona w danych
W 2024 roku pisałem, że narzędzie mobile-friendly test Binga pokazuje błąd przy próbie analizy Reddita. Sprawdziłem to ponownie:
curl -A "bingbot" https://www.reddit.com/robots.txtPróbowałem wielokrotnie uzyskać informacje z narzędzie mobile-friendly test Binga ale jedyne co dostałem, to krótkie info:
Nie można pobrać informacji o tej stronie. Sprawdź adres strony i spróbuj ponownie.Dla porównania to samo narzędzie bez żadnego problemu analizuje inne strony. Problem wychodzi jedynie przy próbie robots.txt Reddit’a.
Operator site: na pomoc!
Tę blokadę można zmierzyć liczbowo, porównując wyniki operatora site:reddit.com w Google i Bing.
| Wyszukiwarka | Sierpień 2024 | 2026 | Zmiana |
|---|---|---|---|
| ~355 000 000 | ~636 000 000 | +79% | |
| Bing | ~1 960 000 | ~1 970 000 | +0,5% |
Podczas gdy indeks Google urósł o prawie 80%, to indeks Bing praktycznie stoi w miejscu. To dokładnie to, czego można się spodziewać gdy 1 crawler ma pełny i nieprzerwany dostęp, a drugi jest blokowany.
Common Crawl – konsekwentna blokada, miesiąc po miesiącu
Sprawdziłem też jak się ma Common Crawl, który jest otwartym projektem crawlującym internet, a którego dane są jednym z podstawowych źródeł treningowych dla wielu LLM’ów. Okazuje się, że Reddit skutecznie blokuje cały czas CCbot bez żadnych wyjątków.
Ciekawostką jest to, że mimo pełnej blokady w danych Common Crawl wciąż skanuje niewielka liczbę stron na reddit.com. W zależności od miesiąca wychodzi to od 306 do 871. Nie są to jednak strony faktycznie pobrane wbrew blokadzie, a raczej same adresy URL odkryte przez crawler dzięki linkom z innych, niezablokowanych stron i bez faktycznego pobrania treści spod tych adresów.
To spójne z resztą obrazu: dostęp do treningowych zbiorów danych Reddita jest towarem, a Common Crawl jako darmowy, ogólnodostępny zasób nie jest stroną żadnej umowy licencyjnej.
Perplexity – częściowy dostęp do metadanych, a nie do treści
Osobno przetestowałem Perplexity tym samym promptem o zawartość robots.txt:
podaj zawartość pliku robots strony https://reddit.com/robots.txt
Perplexity zwróciło mi informację, że nie było w stanie pobrać pliku, bo serwer Reddita odrzucił żądanie. Logiczne, w koncu jest „disallow” ale… poprosiłem więc streszczenie konkretnego, świeżego wątku sprzed kilkunastu godzin:
znajdź na reddit.com temat „Popular high-end outdoor clothing company has horrible AI copy” i podaj streszczenie.
Odpowiedź była częściowo trafna: Perplexity poprawnie wskazało subreddit (r/SEO), flair posta oraz nazwę użytkownika autora. Jednocześnie przyznał wprost, że nie ma dostępu do konkretnych cytatów ani do nazwy marki, o której mowa w poście mimo że nazwa pojawia się wprost w treści wątku, a nie tylko w tytule.
Perplexity miało dostęp do metadanych posta jak: tytuł, autor, subreddit i znacznik czasu ale nie do pełnej treści czy komentarzy.
Sprawdziłem ten sam wątek Reddit w Google i Bing:
- Google – zaindeksowany
- Bing – niezaindeksowany
Więc jedyne wytłumaczenie mam takie, że Perplexity wykorzystało to, co znalazło w SERP Google. Tym bardziej, ze w procesie myślowym widać wprost użycie operatora site
"Popular high-end outdoor clothing company has horrible AI copy" site:reddit.comPodsumowanie: cloaking jako narzędzie segmentacji komercyjnej
Zestawienie wszystkich testów daje spójny obraz:
| Podmiot | Wersja robots.txt | Mechanizm blokady |
|---|---|---|
| pełny dostęp | brak – zweryfikowany na poziomie sieci | |
| OpenAI (ChatGPT) | pełny dostęp | brak – zweryfikowany na poziomie sieci, potwierdzone niezależnie od stanu logowania |
| Bing | brak dostępu | WAF, potwierdzone niezależnym narzędziem Microsoftu, spójne z zerowym wzrostem indeksu |
| Anthropic (Claude) | Disallow: / | cloaking na poziomie treści pliku |
| Common Crawl | Disallow: / | deklaracja w robots.txt, potwierdzona w 12 kolejnych miesiącach bez wyjątku |
| Internet Archive | tylko strona główna | cloaking na poziomie treści pliku, zmieniony w czasie (pełna blokada → dostęp częściowy) |
| Meta / X (podgląd linków) | dostęp ograniczony | cloaking na poziomie treści pliku |
| Perplexity | brak dostępu do robots.txt, częściowy dostęp do metadanych treści | niejasny, prawdopodobnie inny kanał niż standardowy crawling |
| Losowy bot / użytkownik | Disallow: / | domyślna, najbardziej restrykcyjna wersja |
To co w 2024 roku wyglądało na jeden plik dla Google, a drugi dla reszty świata – to po 2 latach okazuje się, że Reddit serwuje różne robots.txt w zależności od tego, kto po drugiej stronie łącza faktycznie płaci lub ma podpisaną umowę licencyjną.
- Archive.org ignoruje robots.txt od 2017 roku – https://blog.archive.org/2017/04/17/robots-txt-meant-for-search-engines-dont-work-well-for-web-archives/ ↩︎
- Przychody Reddit wzrosły o 24% do 43 mln dolarów, a na czele jest OpenAI i Google – https://investor.redditinc.com/news-events/news-releases/news-details/2026/Reddit-Reports-Second-Quarter-2026-Results/default.aspx ↩︎
