# https://www.viraldrop.ai/robots.txt # # Served as-is only on www.viraldrop.ai and viraldrop.ai; serve-static.mjs answers # every other host with Disallow: /. # # The AI crawlers are named so the permission is explicit. They share this one group # because a crawler with a group of its own ignores `*`, and would then need every # Disallow below repeated for it. User-agent: * User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ClaudeBot User-agent: PerplexityBot User-agent: Google-Extended User-agent: CCBot Allow: / # `/tracker` is the public Competitor Watch page and is open for search; only the app below it # is closed. `$` ends the match, so neither line reaches `/tracker-landing` or `/tracker/…`. Allow: /tracker$ Allow: /*/tracker$ # Signed-in-only routes: no crawlable content. `/research` and `/tracker` are public pages, so only # the paths below them (per-user reports, legacy aliases) are listed. Listed twice because a robots.txt # Disallow is a path-prefix match, # so `/profile` does not cover the locale-prefixed `/es/profile`. Disallow: /profile Disallow: /history Disallow: /chat Disallow: /studio Disallow: /home Disallow: /checkout Disallow: /starter-deal Disallow: /giveaway Disallow: /welcome Disallow: /redeem # `/school` also covers `/schools/{code}`, a school's personal invite. Disallow: /school Disallow: /tracker/ Disallow: /research/ # `/creative` was registered `appOnly` when it shipped but never listed here, so the # constructor was crawlable. The prefix now also covers `/creative/{id}`, one URL per # generated creative — an owner's unreleased work, addressed by an id that must not # reach an index. Disallow: /creative Disallow: /create Disallow: /unsubscribe Disallow: /oauth Disallow: /admin Disallow: /*/profile Disallow: /*/history Disallow: /*/chat Disallow: /*/studio Disallow: /*/home Disallow: /*/checkout Disallow: /*/starter-deal Disallow: /*/giveaway Disallow: /*/welcome Disallow: /*/redeem Disallow: /*/school Disallow: /*/tracker/ Disallow: /*/research/ Disallow: /*/creative Disallow: /*/create Disallow: /*/unsubscribe Disallow: /*/oauth Disallow: /*/admin # The landing pages ported from the studio repo (2026-08-21) are CRAWLABLE from # 2026-08-24, when `/lp/trend` became a Google Ads destination: AdsBot obeys # robots.txt, and a blocked destination gets the campaign disapproved as # "Destination not crawlable" — the same reason the ad landings below are not # disallowed either. They still make the same pitch as `/` and `/trends`, so they # are kept out of the organic index the other way: a stamped # (landerNoindex in # src/seo/routes.json, written by scripts/gen-head.mjs), which AdsBot ignores for # ad-quality checks. Only the UNPREFIXED paths carry that shell, so the # locale-prefixed forms stay disallowed rather than serving the default head. Disallow: /*/lp # Analytics reverse proxies, not pages. Disallow: /ingest/ Disallow: /api/ # The ad landing pages (/promo, /deal, /ads, /social, /trends, /trend) are # deliberately NOT disallowed here. AdsBot obeys robots.txt, and a blocked # destination gets the Google Ads campaigns disapproved as "Destination not # crawlable". They are clones of the homepage, so they are kept out of the # organic index the other way instead: a static # stamped into their prerendered # shells by scripts/gen-head.mjs, which AdsBot ignores for ad-quality checks. Sitemap: https://www.viraldrop.ai/sitemap.xml