# Yungle — https://yungle.co # # Two things about the format that this file got wrong once each, so they are # written down here rather than rediscovered: # # 1. A BLANK LINE TERMINATES A RECORD. Comments may sit between directives, but # an empty line ends the group belonging to a `User-agent`. An earlier version # had explanatory paragraphs separated by blank lines between `User-agent: *` # and its rules, which orphaned every Disallow — the file parsed cleanly and # disallowed nothing at all. Keep the directives below contiguous. # # 2. NO BLANKET `Allow: /`. It is redundant (anything not disallowed is allowed) # and parsers disagree about precedence: RFC 9309 and Google use longest-match, # where it is harmless, but first-match-wins parsers take it as "crawl # everything" before reaching any Disallow. # # Both were found by running a real robots parser against the file, not by # reading it. Do that again after editing. # # Also deliberate: /t/, /c/ and /r/ are NOT disallowed. Those are # capability URLs and each page sets `robots: { index: false }` itself, which is # the correct mechanism — a crawler told not to fetch a page can never see the # noindex on it, so disallowing them would make indexing more likely, not less. # They are absent from the sitemap by construction. User-agent: * # The signed-in app: not content, and every route needs a session anyway. Disallow: /dashboard # API endpoints are not content either — but the OpenAPI document IS. It is the # machine-readable contract and the most useful thing an agent can find here. # The exception must precede the rule for first-match parsers, and wins on # longest-match too, so it is correct under both. Allow: /api/v1/openapi.json Disallow: /api/ Sitemap: https://yungle.co/sitemap.xml