User-agent: * Allow: / Allow: /bookings Allow: /events Allow: /conservation Allow: /local Allow: /store Allow: /campers Allow: /faq Allow: /contact Allow: /guide Allow: /vendor-guide # SEO-4 facts page. Requested as /llms.txt and rewritten to /api/discovery/facts, # so the "Disallow: /api/" rule below does not reach it — robots.txt matches the # REQUESTED path. Stated explicitly because that reasoning is exactly the kind # that quietly stops being true after a routing change. Allow: /llms.txt # Block all admin and staff pages from indexing Disallow: /bookings-admin Disallow: /admin Disallow: /admin/runbook Disallow: /admin/help Disallow: /land-admin Disallow: /dashboard Disallow: /staff-login Disallow: /staff-admin Disallow: /day-of Disallow: /api/ Disallow: /my-booking/ Disallow: /guidebook/ Disallow: /pre-checkin/ Disallow: /arrival/ Disallow: /store-admin Disallow: /volunteers-admin Disallow: /explore-admin Disallow: /gallery-admin Disallow: /hr-admin Disallow: /facilitator Disallow: /clock Disallow: /clean/ Disallow: /group/ Disallow: /reviews/ Disallow: /activity/ Disallow: /vendor/ Disallow: /event-flyer/ Disallow: /my-account Disallow: /admin-v2 Disallow: /staff-guide Disallow: /staff/ # ── AI crawlers (IP-1) ────────────────────────────────────────────── # Retrieval/answer agents that CITE are intentionally NOT listed here: # naming an agent gives it its own group, which would release it from the # admin Disallow rules above. They fall through to `User-agent: *`. # Reasons per entry: src/lib/seo/crawlerPolicy.js # This is expressed intent, not a wall. robots.txt is honour-system. User-agent: GPTBot Disallow: / User-agent: ClaudeBot Disallow: / User-agent: anthropic-ai Disallow: / User-agent: CCBot Disallow: / User-agent: Bytespider Disallow: / User-agent: Applebot-Extended Disallow: / User-agent: meta-externalagent Disallow: / User-agent: Diffbot Disallow: / User-agent: ImagesiftBot Disallow: / User-agent: Google-Extended Disallow: / # Sitemap location Sitemap: https://newharmony-life.com/sitemap.xml