Case study · a patient site
A rare-disease site, written by a patient
Five plain-language guides to ultra-rare conditions, marked up so a search engine or an AI assistant can tell what each page is, who wrote it, and when it was last reviewed.
What I would have wanted to find
I have Hajdu-Cheney syndrome (HCS), a rare connective-tissue disorder.
Bare Your Rare is a patient-led site for ultra-rare conditions, built because most people searching for one of them find almost nothing. It now carries five guides written for patients rather than clinicians — Hajdu-Cheney syndrome, Erdheim-Chester disease, Fechtner syndrome, POEMS syndrome and stiff person syndrome — each one a long read assembled from the literature and put into plain language.
“I built it from a patient(me)’s point of view. I asked myself what would be helpful to me to come across on the internet? What can explain the nuances of HCS? And then I thought I may as well expand this to more rare disorders so I researched several others. I also wanted to work on my web design and building skills.”
In March 2026 I started moving the site out of the page builders it had been built with and into a theme written for it.
“I wanted freedom to do things I couldn’t or that were a pain in the butt because of the extra weight handling the themes and plugins. Why pay for a plugin when I can ask [an AI] to make it my way for my content?”
Cited, dated, and readable before any script runs
Each guide links to the medical literature and patient organisations it was written from, and says when it was last reviewed. The words are in the page the server sends, so nothing has to run before a reader, a search engine or an AI assistant can read them.crawl audit, §2 & §5
The machine-readable copy says the same things. Each guide tells software what it is (a medical web page, written for patients), which condition it covers, who wrote it, and when it was last reviewed. That date comes from the same function as the date printed on the page, so the two can’t disagree.handoff-012, O-11
{
"@type": "MedicalWebPage",
…
"medicalAudience": {
"@type": "Patient"
},
"about": {
"@type": "MedicalCondition",
"name": "Hajdu-Cheney Syndrome",
…
},
"author": {
"@type": "Person",
"name": "Thomas Cheesman",
…
},
…
"lastReviewed": "2026-04"
}
/hcs-guide/ serves, verbatim, trimmed to the fields named above. “…” marks what was left out.bareyourrare.org/hcs-guideA charity that didn’t exist, and an audit that overreached
-
A charity that didn’t exist
A site analysis invented a registered charity for the site, “Bare Your Rare Foundation”, and drafted its structured data and its summary for AI tools around it, with made-up social-media links to go with it. Bare Your Rare is one person’s project. Part of that framing shipped: from April, every page told software the site was a non-governmental organisation, and went on saying so until September.
Kind of miss: plausible but invented · drift across sessions · receipts-001, R-140, R-141 -
Two problems that weren’t there
A crawl audit of the site said a poetry category collided with the POEMS syndrome guide. The category was empty. It said the header image had no text alternative on nearly every page. The image had carried an empty one since April, which is how a decorative image is marked.
Kind of miss: plausible but invented · not seen, so called missing · receipts-001, R-147, R-149 -
A fix recorded as done
The same audit’s most serious finding was that the host refused automated fetchers. That matters here: when a patient asks an AI assistant about their condition, the assistant fetches the page on their behalf. The site was moved behind Cloudflare, and the notes recorded the problem as fixed. Five days later, pages the host had not cached were still being refused to some AI agents, by the host itself.
Kind of miss: looked right but was not measured · receipts-001, R-150
Read it before fixing it, test it before believing it
-
A read-through, then a live check
A later read-through took the invented foundation out, while the privacy page was rewritten in plain first person. The structured data kept the old framing for five more months. A check of what the live pages actually serve, made before this page was written, found it, and it was fixed that day.
Falls under: never invent a date, a figure or an organisation; unknown means ask me · receipts-001, R-140, R-141 -
Reading the real thing before changing it
The session that made the audit’s fixes read the code and the live page first. The category held one unpublished post, so the fix became keeping any empty category out of search results. The image’s empty text alternative was already there, so nothing needed doing.
Falls under: say what you read, not what exists · receipts-001, R-147, R-149 -
Testing from outside, before this page said “fixed”
A script fetched the site every six seconds, as a browser and as five AI agents, once with pages forced past the host’s cache and once without. Everything cached came back. Past the cache, one agent was refused every time and two others some of the time. The refusals came from the host’s own server, behind Cloudflare.
Falls under: “done”, “verified” and “deployed” are claims; prove them from outside · receipts-001, R-150
| The correction | The standing rule | Enforced in |
|---|---|---|
| An analysis invented a charity for the site, and its schema outlived the correction | Never invent a date, a figure or an organisation. Unknown means ask me | CLAUDE.md · rule 11 |
| An audit reported two problems that weren’t there | Say what you read, not what exists | CLAUDE.md · rule 6 |
| A host fix was recorded as done without a re-test | “Done”, “verified” and “deployed” are claims. Prove them from outside | CLAUDE.md · rule 2 |
Readable by people and by software, with one gap left
Every guide now tells software who wrote it and when it was last reviewed. It gives one
breadcrumb trail instead of two. An empty category no longer appears in search results. The
plain-language summary for AI tools, llms.txt, is linked from every page and from
robots.txt. And the site no longer describes itself to software as a
non-governmental organisation.handoff-012
The honest limits
Checked in September 2026: the host still refuses some AI agents when a page isn’t in its cache, and emptying the cache after an update reopens that gap. The filter is the host’s, it sits behind Cloudflare, and it isn’t fixed yet. The pages are also heavy for a phone on a rural connection, and that hasn’t been worked on.bot check, 2026-09-25
The files behind every claim above
-
Why I built it, in my words
reviews/copy-review-004.md, Q-BYR1 and Q-BYR2 ·
-
The crawl audit: what it found, and what was already right
-
The move behind Cloudflare, and the note that called the block fixed
-
The audit’s fixes, and the two findings that fell
-
The re-check that found the host still refusing some agents, with its raw logs
Claude outputs/byr-bot-check-2026-09-25.md · scripts/byr_bot_check.py ·
-
Every miss above in the receipts inventory, with its sources
-
The rules the corrections fall under
-
The site itself