# robots.txt for calculator.free # Served as a plain-text TemplateView (no Django i18n `g` context), same as # /ads.txt. Crawling is open; only private / non-content surfaces and the # crawl-trap query strings are disallowed. Language alternates (?lang=xx) are # intentionally NOT disallowed — they are the hreflang targets in the sitemap. User-agent: * Allow: / # Admin, APIs and payment webhooks — never content. The /api/ DOCS page # (ApiDocsPage) is deliberately crawlable — it's the paid-API sales surface, # internally linked from nav/pricing and listed in the sitemap; only the # JSON endpoints and beacons below are blocked. Disallow: /admin/ Disallow: /api/v1/ Disallow: /api/accounts/ Disallow: /api/track/ Disallow: /api/rate-page/ Disallow: /ipns/ # Account / auth / billing flows — private, no SEO value. Disallow: /account/ Disallow: /checkout/ Disallow: /login/ Disallow: /logout/ Disallow: /signup/ Disallow: /verify/ Disallow: /onboarding/ Disallow: /lost-password/ Disallow: /restore-password/ Disallow: /success/ Disallow: /cancel/ Disallow: /delete-account/ # Crawl-trap query strings (fleet rule): return/next redirect targets, raw # search (?q=) and pure re-orders (?sort=), in both ?- and &-position (the # param can appear after ?lang=xx). ?lang= stays crawlable on purpose — it is # the hreflang target set, and since the 2026-07 sitemap port the page-level # hreflang tags in base.html are the ONLY hreflang channel. Disallow: /*?return= Disallow: /*&return= Disallow: /*?next= Disallow: /*&next= Disallow: /*?q= Disallow: /*&q= Disallow: /*?sort= Disallow: /*&sort= # First-party Clicky beacon proxy (anti-adblock) — same-origin 200s that eat # Googlebot crawl budget if left crawlable (fleet rule; free.ai measured ~49% # of re-crawls burning on these). Disallow: /*?site_id= Disallow: /*&site_id= Sitemap: https://calculator.free/sitemap.xml