The Challenge
A dental sleep medicine practice treating sleep apnea with oral appliances: a specialty people ask AI about by name (“sleep apnea treatment without a CPAP near me”). The site had a bare Organization schema with only a name, no Service markup on four treatment pages, reviews that lived inside a script widget, two competing FAQPage blocks on the home page, an llms.txt that returned 404, three phone numbers in the HTML including the fax and a printed call-tracking line, and hours on the site that disagreed with the Google profile. Baseline: 60 out of 100, Developing.
The Work
A small custom plugin, tested locally before deployment, that emits one MedicalBusiness and LocalBusiness entity sitewide, the practice’s real 5.0-star Google rating from 11 reviews as Review nodes with aggregateRating, a Service node on each of the four treatment pages, and exactly one FAQPage per page read from the page’s own accordion while stripping the duplicate blocks. A robots.txt allow-list for the search agents, a physical llms.txt, a fixed terms-of-service slug with a redirect, a corrected FAQ answer, and the tracking-number line removed from the footer. Hours were aligned to the practice’s confirmed schedule a week later.
The Result
95 out of 100 on the first live rescan two days after baseline, 97 after the footer and slug fixes the same evening, and 97 again on the re-check five days later. The only remaining warning is the fax number, which the practice publishes on purpose. Every fix is a line item on our 20-point checklist, and the same engine graded before and after.