Overview
What this PR does
clinic-web — the staff-facing dashboard app (appointments, patients, invoices, insurance, inventory, everything clinic staff log into) — has been quietly showing up in search engines. This PR tells search engines to stop.
It does two things, both purely about how crawlers treat the app; nothing about how the app behaves for logged-in staff changes:
- Adds a
<meta name="robots" content="noindex, nofollow, noarchive">tag to
the single index.html that serves every route of the app.
- Rewrites
robots.txtso crawlers are explicitly allowed to fetch pages
(Allow: /) — which is what lets them read the new noindex tag in the first place — while a few document extensions (.pdf, .xlsx, .jpg) are blocked outright, because those files don't have an HTML <head> to carry a noindex tag.
Why it matters
clinic-web is a single-page app: every URL, from the login screen to a specific patient's chart, is served from the same index.html. There is no way to mark some of those routes as indexable and others not — it's all or nothing. None of it belongs in a search engine, so the fix is applied at the one place shared by every route: the page <head>.
Before this change, robots.txt had no Disallow and no Allow line at all — an empty policy that crawlers generally interpret as "you may fetch and index everything." Nothing was telling Google (or any other crawler) to leave clinic dashboards out of search results.
Scope
This PR touches exactly two files, both under packages/clinic-web/public/:
index.html— the SPA shell served for every clinic-web route.robots.txt— the crawler policy file served atclinic-web's domain root.
It does not touch packages/server (the API), packages/clinic-mobile, or any patient-facing surface — this repository does not contain a patient-web or clinic-web-canary app with its own index.html/robots.txt, so this change's blast radius is the clinic staff dashboard only. See Robots Meta Tag & robots.txt for the technical detail and Glossary for how noindex and robots.txt relate.
Who should read what
- Not sure where to start? Read Walkthrough for real
screenshots of the change in the sandbox.
- Need the exact mechanics and file:line references? Read
- Otherwise, jump to your team's page under By team.