Skip to content

Proxito: noindex projects from organizations on trial - #13248

Open
ericholscher wants to merge 2 commits into
mainfrom
claude/business-trial-search-indexing-wvcfvg
Open

Proxito: noindex projects from organizations on trial#13248
ericholscher wants to merge 2 commits into
mainfrom
claude/business-trial-search-indexing-wvcfvg

Conversation

@ericholscher

@ericholscher ericholscher commented Aug 19, 2026

Copy link
Copy Markdown
Member

Spammers sign up for a Business trial and get their content hosted — and then indexed by Google, which is what makes the spam valuable. This removes that incentive by serving X-Robots-Tag: noindex on all documentation from projects owned by organizations still on the trial plan, extending the existing middleware hook that already does this for pull request previews.

An organization counts as "on trial" when its subscription is on the default trial plan price and still in trialing status, exposed as Organization.objects.on_trial(). An organization trialing a paid plan (e.g. upgraded through the billing portal while inside the trial window) is deliberately treated as not-on-trial, since they've shown payment intent. Once a customer subscribes to a paid plan, the header disappears as cached responses roll over.

Things a reviewer should double-check:

  • I used the noindex header instead of a disallow-all robots.txt (as delisted/spam projects get) because crawlers must be able to fetch a page to see noindex — blocking crawling can leave spam URLs indexed as bare links. Happy to add the robots.txt treatment as well if you'd rather have both.
  • The check adds one EXISTS query per uncached response on .com (guarded by RTD_ALLOW_ORGANIZATIONS, so Community is unaffected). If the commercial repo has proxito query-count tests that run with organizations enabled, they'll need a +1.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FeX9CebgzZy9eSesobePfm

Add the X-Robots-Tag: noindex header to documentation served for
projects owned by organizations still on the trial plan, so search
engines don't index them (to fight spam).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FeX9CebgzZy9eSesobePfm
@ericholscher
ericholscher marked this pull request as ready for review August 19, 2026 19:01
@ericholscher
ericholscher requested a review from a team as a code owner August 19, 2026 19:01
@ericholscher
ericholscher requested a review from agjohnson August 19, 2026 19:01
@humitos

humitos commented Aug 19, 2026

Copy link
Copy Markdown
Member

I haven't reviewed it yet, but it's a great idea 👍

@ericholscher
ericholscher requested a review from a team as a code owner August 19, 2026 19:05
@read-the-docs-community

Copy link
Copy Markdown

Documentation build overview

📚 docs | 🛠️ Build #34142835 | 📁 Comparing 5310c99 against latest (72fba47)

  🔍 Preview build  

6 files changed · ± 6 modified

± Modified

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants