User-agent: * Allow: / Sitemap: https://tts.ai/sitemap.xml # Disallow admin and API endpoints Disallow: /admin/ Disallow: /api/accounts/ Disallow: /api/verify/ Disallow: /api/session-token/ Disallow: /ipns/ # Tracking + UI-state query params. Variants the canonical strip-list # and CanonicalRedirectMiddleware also handle, but blocking crawl # removes the wasted budget entirely and stops Google indexing them # as duplicates of the bare path. # # `?ref=` user-referral / signup attribution. # `?return=` language picker return-path. # `?lang=en` redundant (en is the default). # `?model=`, `?voice=`, `?agent=`: content-pre-select query params that # render the SAME page body with a filter applied. # /voices/?model= was a SpamBrain feeder for 44 URLs # until 2026-05-14 (removed from sitemap; blocked here so # pre-selected deep-links into the picker don't get indexed # as duplicates either). # `?language=`, `?gender=` — filter facets on /voices/. # `?sort=`, `?new=`, `?is_free=`, `?tool=`, `?from=`, `?next=` — generic # UI-state from across the fleet's playbook list. Disallow: /*?ref= Disallow: /*&ref= Disallow: /*?return= Disallow: /*&return= Disallow: /*?lang=en Disallow: /*&lang=en Disallow: /*?model= Disallow: /*&model= Disallow: /*?voice= Disallow: /*&voice= Disallow: /*?agent= Disallow: /*&agent= Disallow: /*?language= Disallow: /*&language= Disallow: /*?gender= Disallow: /*&gender= Disallow: /*?sort= Disallow: /*&sort= Disallow: /*?new= Disallow: /*&new= Disallow: /*?is_free= Disallow: /*&is_free= Disallow: /*?tool= Disallow: /*&tool= Disallow: /*?from= Disallow: /*&from= Disallow: /*?next= Disallow: /*&next=