# https://containermath.com/robots.txt User-agent: * Allow: / # Sign-in-gated app routes — not useful in search results. # (/docs is the gated in-app twin of the public /guide.) # NOTE: /carton is deliberately absent — as a prefix it would also block the # PUBLIC marketing page /carton-fit. The app's own /carton sits behind AuthGate # and has no inbound links, so it isn't discoverable anyway. Disallow: /saved Disallow: /vessels Disallow: /loading-chart Disallow: /billing/ Disallow: /docs Disallow: /admin Disallow: /organization Disallow: /export-docs Disallow: /developers Disallow: /optimizer Disallow: /items Disallow: /boxes Disallow: /units Disallow: /calendar Disallow: /ar-view # /embed (the widget iframe) and /embed/cbm must stay out of the index — they're # chrome-less frames meant to render inside someone else's page. They used to be # disallowed here, which does NOT achieve that: a Disallow stops the crawl, not # the listing. Google finds both URLs from the iframe `src` on every customer # page that embeds them, and a disallowed-but-linked URL can be listed URL-only # forever, because the crawler is never allowed to fetch the noindex that would # remove it. So both are now CRAWLABLE and nginx sends `X-Robots-Tag: noindex` # on them (@embed_shell in infra/nginx/containermath.conf) — the only # combination that actually deindexes a linked page. # # Everything ELSE under /embed/ has no such header (it falls through to the # generic SPA shell), so the prefix rule stays and /embed/cbm is allowed back # out of it. `Allow` wins over `Disallow` on the longer match. # # Note the historical trap: a bare `Disallow: /embed` is a PREFIX, so it also # blocked /embed-widget, the public marketing page that is in sitemap.xml — # advertised and disallowed at once. Same trap the /carton note above describes. # `/embed/` (with the slash) cannot match /embed-widget; do not shorten it. Disallow: /embed/ Allow: /embed/cbm # NOT disallowed, deliberately: /plan/share/ (shared load plans). Those carry # customer cargo data and must stay out of the index, but for the same reason as # /embed above, a Disallow here would prevent the noindex from ever being read. # nginx sends `X-Robots-Tag: noindex, nofollow` on them instead. Sitemap: https://containermath.com/sitemap.xml # Freight news stories, generated from the live feed on every deploy (they change # several times a day, so they are not in the committed sitemap.xml snapshot). Sitemap: https://containermath.com/news-sitemap.xml