# TerraNova — allow crawling of public content (SEO), block the data API and # paid/expensive endpoints. Honest crawlers obey this; edge/rate-limit rules # handle the rest. User-agent: * Allow: / Disallow: /api/ Disallow: /dossier/download Disallow: /dossier/checkout Disallow: /report/download Disallow: /listing/download Disallow: /listing/checkout # The listing report itself is generated from one visitor's pasted price and pin. # Nothing to index, and a crawler walking the parameters would be pure load. Disallow: /listing/report # /reports itself is indexable and wants to be — it is the page that explains the # paid documents. Only the sample generator is blocked: each hit renders a full PDF # through dompdf, which is the most expensive thing this app does. Disallow: /reports/sample/ Disallow: /go/ # Stripe's webhook receiver. Nothing to index, and a crawler hitting it just # generates rejected-signature noise in the logs. Disallow: /stripe/ # Honeypot — see routes/web.php. Nothing here is real; requesting it flags the # caller as a bot that ignores this file. Disallow: /data/ # /sitemap.xml is a sitemap INDEX (51k+ municipality URLs is past Google's # 50k-per-file limit) — it points at /sitemap-pages.xml and the # /sitemap-communes-N.xml chunks, which need no line of their own here. # # ⚠ This directive is IGNORED unless the URL is fully qualified, and this file is # static (nginx serves it directly, so it cannot be rendered from APP_URL). Replace # the line below with the real host at deploy time — it is on the go-live checklist # in docs/DEPLOYMENT.md §13.2. Submitting the sitemap in Search Console covers Google # regardless; this line is what everyone else discovers it by. Sitemap: /sitemap.xml