# https://www.robotstxt.org/robotstxt.html
# Allow all crawlers — including AI / answer-engine bots such as GPTBot,
# OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended.
User-agent: *
Allow: /
# 🔴 The private / authenticated areas are DELIBERATELY crawlable.
#
# They used to be listed here as `Disallow`, and Google indexed /dashboard and
# /settings anyway — Search Console reported them under "Indexed, though blocked
# by robots.txt". That is not a contradiction: robots.txt controls CRAWLING, not
# INDEXING. Google can index a URL it has never fetched (from links or
# references alone), and because it was forbidden from fetching the page it
# could never see a `noindex` telling it not to.
#
# Disallowing them was therefore the thing PREVENTING their removal. Each of
# these pages now emits `` at
# runtime via (see src/pages/{Dashboard,Settings,Profile,Feedback}Page.tsx),
# and they must stay crawlable for Google to read it and drop them.
#
# Do not re-add a Disallow for these routes. They are auth-gated, so a crawler
# sees only the signed-out shell, and the noindex tag is what keeps them out of
# the index.
# /dashboard /settings /profile /feedback
# Individual family pages. The trailing slash matters: it disallows
# /family/, /family/new and /family/mine while leaving the public /family
# marketing page crawlable. Each family page also emits a runtime noindex —
# NOINDEX_ROUTES in scripts/seo-routes.mjs feeds only the prerender validator
# and emits no tag, so it would not have covered this on its own.
#
# ⚠️ These are left disallowed ON PURPOSE, unlike the four routes above: a
# family page URL contains a user-chosen id and may be shared privately, so
# keeping crawlers out entirely is worth more than being able to deindex one
# that somehow got referenced. Revisit only if GSC starts reporting them as
# "Indexed, though blocked by robots.txt" too.
Disallow: /family/
# Sitemap
Sitemap: https://jagannathahora.com/sitemap.xml
Sitemap: https://jagannathahora.com/sitemap-astrologers.xml