<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged robots-txt</title>
<link>https://coderlegion.com/tag/robots-txt</link>
<description>Powered by Question2Answer</description>
<item>
<title>noindex vs robots.txt: Which to Use and the Mistake to Avoid</title>
<link>https://coderlegion.com/32141/noindex-vs-robots-txt-which-to-use-and-the-mistake-to-avoid</link>
<description>&lt;p&gt;noindex is for keeping a page out of results; a robots.txt Disallow is for stopping crawlers from requesting URLs. The two aren't interchangeable. A disallowed URL can still appear in Google without a description, and a noindex tag on a disallowed page is never seen, so using both keeps pages in Google. That combination is the most common indexing mistake I see on small-business sites.&lt;/p&gt;
&lt;p&gt;The guide explains the difference between discovery, crawling and indexing, and what each control does at which step, based on Google's documentation and the RFC 9309 standard. If you want something private, neither is right; it belongs behind a login or HTTP authentication.&lt;/p&gt;
&lt;p&gt;I walk through fixing the double-blocked page (remove the Disallow, keep the noindex, let it be recrawled), the difference between the meta robots tag and the X-Robots-Tag header for PDFs and other files, and two things that don't work long term: a Noindex line in robots.txt (ignored since September 2019) and the Removals tool (temporary).&lt;/p&gt;
&lt;p&gt;For AI, robots.txt is the main documented control for AI crawlers, while Google's own AI features follow the same noindex and snippet rules as Search, and Google-Extended controls Gemini use without affecting Search. I finish with common cases like staging sites and a decision table matching each goal to the right control.&lt;/p&gt;
&lt;h4 id=&quot;key-takeaways&quot;&gt;Key takeaways&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;robots.txt controls crawling; noindex controls indexing&lt;/li&gt;
&lt;li&gt;A noindex on a disallowed page is never seen&lt;/li&gt;
&lt;li&gt;Use X-Robots-Tag for PDFs and non-HTML files&lt;/li&gt;
&lt;li&gt;Protect staging sites with authentication, not robots.txt&lt;/li&gt;
&lt;li&gt;Noindex in robots.txt has been ignored since 2019&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Related on BuiltToWinWeb: &lt;a rel=&quot;nofollow&quot; href=&quot;https://built2winweb.com/blog/canonical-tags-duplicate-content/&quot;&gt;canonical tags explained&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read the full guide on BuiltToWinWeb:&lt;/strong&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://built2winweb.com/blog/noindex-vs-robots-txt/&quot;&gt;&lt;strong&gt;Noindex vs robots.txt, and when to use each&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A summary by Jacob Campbell of an article first published on built2winweb.com on October 7, 2026.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/32141/noindex-vs-robots-txt-which-to-use-and-the-mistake-to-avoid</guid>
<pubDate>Fri, 23 Oct 2026 04:00:51 +0000</pubDate>
</item>
<item>
<title>Content Signals and RSL: Stating How AI May Use Your Content</title>
<link>https://coderlegion.com/31419/content-signals-and-rsl-stating-how-ai-may-use-your-content</link>
<description>&lt;p&gt;robots.txt only decides whether a crawler may fetch a path. It's silent on what happens next: whether the content appears in a search result, gets quoted in an AI answer or is used to train a model. Two newer mechanisms address that, and this guide explains both and is straight about their limits.&lt;/p&gt;
&lt;p&gt;Content Signals, introduced by Cloudflare in September 2025, adds a Content-Signal line to robots.txt with three settings: search, ai-input (using content in a real-time AI answer) and ai-train. Each is yes or no, and a missing key means no stated preference. The split matters because search and AI answers send visitors and citations, while training only helps you indirectly, and robots.txt alone can't express &quot;answer questions with my content but don't train on it&quot; when one crawler serves several purposes. On this site I publish yes to all three.&lt;/p&gt;
&lt;p&gt;RSL (Really Simple Licensing), also announced in September 2025, defines a machine-readable licence stating what AI systems may do with content and on what terms, from free with attribution to pay per crawl. We publish one here as an experiment.&lt;/p&gt;
&lt;p&gt;The limits are important. Neither is enforcement, neither reaches content already collected, and real enforcement lives in CDN bot management and verified-bot programmes. I finish with a short list of what to publish and how to keep it consistent with your user-agent rules.&lt;/p&gt;
&lt;h4 id=&quot;key-takeaways-1&quot;&gt;Key takeaways&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;robots.txt controls fetching, not later use&lt;/li&gt;
&lt;li&gt;Content Signals covers search, ai-input and ai-train&lt;/li&gt;
&lt;li&gt;RSL publishes machine-readable licence terms&lt;/li&gt;
&lt;li&gt;Both state preferences; neither enforces them&lt;/li&gt;
&lt;li&gt;Make sure your CDN isn't overwriting your signals&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Related on BuiltToWinWeb: &lt;a rel=&quot;nofollow&quot; href=&quot;https://built2winweb.com/blog/cloudflare-ai-crawl-control/&quot;&gt;Cloudflare's AI crawl controls&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read the full guide on BuiltToWinWeb: &lt;a rel=&quot;nofollow&quot; href=&quot;https://built2winweb.com/blog/content-signals-and-rsl/&quot;&gt;Content Signals and RSL explained&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A summary by Jacob Campbell of an article first published on built2winweb.com on October 5, 2026.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/31419/content-signals-and-rsl-stating-how-ai-may-use-your-content</guid>
<pubDate>Sun, 18 Oct 2026 07:09:29 +0000</pubDate>
</item>
<item>
<title>Most sites that blocked AI blocked the wrong thing</title>
<link>https://coderlegion.com/23902/most-sites-that-blocked-ai-blocked-the-wrong-thing</link>
<description>&lt;p&gt;Sometime in the last two years you probably added a rule to &lt;code&gt;robots.txt&lt;/code&gt; to keep AI crawlers out. A lot of us did. The intent was reasonable: don't train on my content without asking.&lt;/p&gt;
&lt;p&gt;Go look at what you actually wrote. There is a good chance it reads something like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;User-agent: *
Disallow: /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or it is a wildcard rule inherited from a config written for Google in 2019, which predates every agent this is supposed to be about.&lt;/p&gt;
&lt;p&gt;Either way, the result is not what you intended.&lt;/p&gt;
&lt;h3 id=&quot;openai-runs-several-agents-and-they-do-different-jobs&quot;&gt;OpenAI runs several agents and they do different jobs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPTBot&lt;/code&gt; — crawls for model training&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OAI-SearchBot&lt;/code&gt; — crawls to build the index behind ChatGPT search&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ChatGPT-User&lt;/code&gt; — fetches a page when a user's prompt triggers it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They are separate on purpose. Blocking all of them opts you out of training &lt;em&gt;and&lt;/em&gt; removes you from ChatGPT's search index. The first was the goal. The second was collateral, and it means your content can no longer be cited when someone asks a question your site answers.&lt;/p&gt;
&lt;p&gt;If what you wanted was &quot;don't train on me, but do cite me&quot;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is a defensible position. So is blocking everything. So is allowing everything. The problem is that most robots.txt files I look at are not expressing any of those positions — they are expressing a misunderstanding.&lt;/p&gt;
&lt;h3 id=&quot;the-part-that-surprises-people&quot;&gt;The part that surprises people&lt;/h3&gt;
&lt;p&gt;Fixing this does not put your products in ChatGPT's feed-driven shopping results, because that surface is not crawled.&lt;/p&gt;
&lt;p&gt;Product data for it reaches ChatGPT through a feed the merchant pushes to OpenAI. In March 2026 OpenAI moved away from Instant Checkout and put its weight behind discovery instead — get the catalog data right, let the purchase complete on the merchant's own site.&lt;/p&gt;
&lt;p&gt;But there is a third route that most write-ups miss, and it is the one that makes the robots.txt question matter more, not less. ChatGPT also runs &lt;strong&gt;Shopping Research&lt;/strong&gt;, an agentic mode that browses in real time. OpenAI says its results are organic and based on publicly available retail sites — reading product pages directly and citing sources. Merchants who want to be eligible go through a separate allowlist.&lt;/p&gt;
&lt;p&gt;So there are three pipelines, and people routinely collapse them into one:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;crawlers → citations&lt;/strong&gt; in conversational answers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;feeds → placement&lt;/strong&gt; in feed-driven shopping results&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;live browsing → inclusion&lt;/strong&gt; in Shopping Research, which reads your actual pages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Blocking crawlers costs you the first and the third. Google is closer to the simple version: AI Mode draws on a Shopping Graph built mainly from Merchant Center feeds, with your site markup contributing rather than deciding.&lt;/p&gt;
&lt;p&gt;Perplexity is the odd one out. &lt;code&gt;PerplexityBot&lt;/code&gt; indexes your actual HTML, so page quality still translates into visibility there with no feed and no application. Worth knowing, though: Perplexity's own docs say &lt;code&gt;Perplexity-User&lt;/code&gt; — the live fetch triggered by a prompt — generally does not honour robots.txt. Whether that is defensible is a separate argument, and Cloudflare and Perplexity have been having it publicly since August 2025.&lt;/p&gt;
&lt;h3 id=&quot;check-your-logs-not-your-config&quot;&gt;Check your logs, not your config&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;grep -Eo &quot;GPTBot|OAI-SearchBot|ChatGPT-User|PerplexityBot|Googlebot&quot; \
  /var/log/nginx/access.log | sort | uniq -c | sort -rn
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This matters more than reading your own &lt;code&gt;robots.txt&lt;/code&gt;, because firewall-level blocking is invisible there. Your rules can be perfectly permissive while Cloudflare or your host rejects the request before anything is served. The log is the only ground truth about what is actually reaching you.&lt;/p&gt;
&lt;h3 id=&quot;where-i-land-and-where-i-might-be-wrong&quot;&gt;Where I land, and where I might be wrong&lt;/h3&gt;
&lt;p&gt;I think the crawler distinction is worth getting right regardless of your position on AI training, because &quot;I opted out of citations by accident&quot; is nobody's actual position.&lt;/p&gt;
&lt;p&gt;What I am less sure about: whether being cited by ChatGPT is worth much. Citation rarely converts to a click — the answer usually satisfies the user in place. There is a real argument that being indexed by an engine that answers on your behalf is a bad trade, and that the accidental block was the right call arrived at by the wrong route.&lt;/p&gt;
&lt;p&gt;I do not think that argument is obviously wrong. I just think it should be a decision rather than a typo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So: did you block AI crawlers deliberately, and did you check what you actually blocked?&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;I build open-source AEO modules for Magento, so I have a stake in people caring about this. Treat it as a claim to verify rather than accept — the log command above is the verification.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Longer version covering all three engines: &lt;a rel=&quot;nofollow&quot; href=&quot;https://angeo.dev/perplexity-vs-chatgpt-vs-gemini-how-each-ai-discovers-your-products/&quot;&gt;angeo.dev&lt;/a&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/23902/most-sites-that-blocked-ai-blocked-the-wrong-thing</guid>
<pubDate>Fri, 31 Jul 2026 19:40:00 +0000</pubDate>
</item>
</channel>
</rss>