1. Let the AI search bots in
robots.txt is a plain file at the root of your domain, defined by RFC 9309. A bot follows the most specific group that names it, or the * group if none does. A common mistake is a security plugin that adds Disallow: / for every bot it does not recognise.
To test, open https://yourclinic.com/robots.txt and look for groups naming OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot or Perplexity-User. Then check the server does not block them by user agent, which robots.txt cannot show:
curl -s -o /dev/null -w "%{http_code}\n" -A "OAI-SearchBot" https://yourclinic.com/
curl -s -o /dev/null -w "%{http_code}\n" -A "PerplexityBot" https://yourclinic.com/Both should print 200. A 403 means a firewall or CDN rule is blocking the bot, whatever robots.txt says.
2. Put the words in the HTML
Google renders JavaScript, but it does so in a second pass, and many AI crawlers do not run it at all. If services, providers and hours only appear after scripts load, those crawlers see an empty page.
To test, fetch the page without a browser and count what is there:
curl -s https://yourclinic.com/ | sed -e "s/<[^>]*>/ /g" | wc -w
A few hundred words is healthy. Under 50 usually means a client-rendered site builder or a single-page app. The fix is server-side rendering or static pages, which most modern frameworks and site builders offer as a setting.
3. Publish an llms.txt
llms.txt is a proposal from September 2024 for a Markdown file at /llms.txt that gives AI tools a short, clean map of a site. It is not a standard yet and no major assistant has said it relies on it, so treat it as cheap insurance. The format is an H1 with the name, a one-paragraph summary in a blockquote, then sections of links.
# Riverside Family Medicine > Family medicine clinic at 120 Main Street, Springfield, IL 62701. > Phone (217) 555-0100. Open Monday to Friday 8:00 to 17:00. > Accepting new patients. In network with Aetna, Blue Cross Blue Shield of Illinois and Medicare. ## Care - [Services](https://riverside.example/services): annual physicals, chronic care, vaccines - [Providers](https://riverside.example/providers): 3 physicians and 2 nurse practitioners ## Patients - [Book online](https://riverside.example/book) - [Insurance and prices](https://riverside.example/insurance)
The example uses a placeholder clinic. Write yours from facts on your own pages, and update it when they change.
4. Write facts an assistant can repeat
Assistants quote sentences. A sentence such as "We accept Aetna, Cigna and Medicare" can be repeated; a carousel of insurer logos cannot. Check that these are written out as text on the homepage or one click away:
- Street address and phone number.
- Services, in the words patients use ("knee pain", not only "orthopaedic services").
- Insurance plans accepted, or self-pay prices.
- Providers with credentials, and whether you are accepting new patients.
Mirror the same facts in MedicalClinic structured data. It does not replace the visible text, but it removes doubt about which number or address is the right one.