Built for private-practice clinicians

SEO for Doctors and medical practices.

Mayo Clinic, Cleveland Clinic, NIH, and WebMD own every AI answer to "near me + procedure" queries. Audit your practice for the YMYL trust signals, the MedicalBusiness + Physician schema, the medical-review byline cadence, and the hyper-local content depth that gets a private practice cited next to the institutional incumbents.

Built for dermatology, dental, cardiology, orthopedic, OB-GYN, and concierge primary-care practices: the missing MedicalBusiness schema, the thin clinician entity graph, and the thin procedure pages that suppress private-practice citation rates.

The diagnosis

Why generic SEO advice fails medical practices.

Three failure modes we see on roughly nine out of ten medical practices we audit. Each is structural to the vertical, not random.

The generic playbook

What is actually true for this vertical

How our audit covers it

Generic playbook

Generic SEO tools ignore the medical-review byline that readers and quality raters look for on YMYL medical content.

Reality

A page that says "the most common cause of [symptom] is [condition]" without a clinician byline and a published last-reviewed date is treated by AI engines as low-trust YMYL content and demoted in favor of Mayo, Cleveland Clinic, and NIH (all of which carry an explicit medical-review byline and a review-date cadence on every clinical page).

Our coverage

Automated review checks on the audited page for clinician authorship and credentials, primary-source citations on clinical statements, guaranteed-outcome treatment claims, and a link to your Notice of Privacy Practices, each a first pass for your clinical and privacy reviewers rather than a compliance verdict. Author entity, content freshness, and the medical schema graph run on every audit too. A second-model YMYL cross-check reviews the high-severity findings for language that could read as medical advice.

Generic playbook

Horizontal audits treat all "Top 5" results as competition. On medical queries, AI engines cite institutional incumbents over independent practices roughly 8 to 1.

Reality

When ChatGPT, Claude, or Perplexity is asked "best dermatologist for [condition] near [city]" or "what to expect from [procedure]", the cited sources are dominated by Mayo, Cleveland Clinic, Healthline, WebMD, and NIH. Private-practice sites break in only with MedicalBusiness + Physician schema, a complete medical-review byline cadence, hyper-local condition + procedure content, and a credentialed Person sameAs entity graph.

Our coverage

Equal-weight AI Visibility pillar tracking citation share against the institutional incumbents (Mayo, Cleveland Clinic, NIH, WebMD, Healthline), per-engine citation rates for your 25 most important procedure + condition queries, and the schema + byline + entity-graph gaps suppressing your citation rate.

Generic playbook

Classic SEO tools do not check hyper-local "near me + procedure" content depth, which is the dominant private-practice SERP.

Reality

A dermatologist in Baltimore competes for separate SERPs: "dermatologist near me", "acne treatment Baltimore", "Mohs surgery Towson", "pediatric dermatologist Annapolis", "psoriasis specialist Maryland". Each is a unique SERP with a unique competitor set. Each needs a unique URL, unique MedicalBusiness + MedicalProcedure schema, unique condition + procedure content depth.

Our coverage

Topical authority map for medical: per-condition + per-procedure + per-city matrix with a recommended page-build queue. Service-area page coverage check across all metros within your practice radius. Internal-link graph analysis flagging orphan procedure pages.

The checks, vertical-tailored

What the audit checks for medical practices.

Every audit, on every plan, scores Foundational SEO, Technical SEO, Local SEO and AI Visibility at equal weight. Local SEO always applies here, because a missing address or Maps link is itself a finding. The check definitions are constant; the severity, the recommended fix, the competitor set, and the example code shift per vertical via the adapter.

Foundational pillar

Foundational

Keyword universe, content depth, on-page structure, internal link graph.

  • h1-presence

    Procedure landing pages should lead with a single H1 in the pattern "[Procedure] in [City] | [Practice Name]" (e.g., "Mohs Surgery in Baltimore | Chesapeake Dermatology"). The practice-name-as-H1 pattern surrenders the local-procedure intent click.

  • passage-extractability

    Every condition and procedure page should carry 134-167 word "What is [condition]?", "How is [procedure] performed?", "What is recovery from [procedure] like?" answer blocks co-located under question-shaped H2 so LLMs can lift the passage verbatim.

  • outbound-link-quality

    Cite the relevant NIH page on the condition, the relevant CDC page on prevention or epidemiology, and (where applicable) the relevant medical-society guideline. Outbound authority signals trust on YMYL medical pages and reduces the citation gap against Mayo and Cleveland Clinic.

Technical pillar

Technical

Crawl, render, schema validation, Core Web Vitals, render-parity diff.

  • schema-validation

    MedicalBusiness JSON-LD must include medicalSpecialty (set to your specialty: "Dermatology", "Cardiology", "Orthopedics"), areaServed, openingHoursSpecification, and a provider Person reference per practicing clinician with their medical-board verification sameAs.

  • js-render-parity

    Healthcare-vertical themes (especially older WordPress practice themes) frequently render the procedure menu via JS. AI crawlers see the empty version. The audit flags every page where the raw HTML is missing more than 30 percent of the rendered DOM content.

  • core-web-vitals

    Patient research is overwhelmingly mobile. LCP below 2.0s and INP below 200ms are required, especially for procedure pages where the conversion is appointment-scheduling and the bounce-back-to-SERP rate on slow pages is double the practice-average.

Local pillar

Local

On-site local signals: LocalBusiness schema, Maps link, phone and address, service-area pages.

  • local-business-schema

    The audit checks that a LocalBusiness-class type such as MedicalBusiness or Physician is declared in your JSON-LD. It does not validate the fields. We recommend geoCoordinates, openingHoursSpecification per day, acceptedInsurance where you disclose it, and a sameAs to each clinician's medical-board verification page.

  • nap-consistency

    The audit reads this page for a complete phone, street address, and ZIP code fingerprint. It does not compare your listings on Google, Healthgrades, Vitals, Zocdoc, Yelp, or your medical-society and insurance-network directories; check those by hand so they match your site exactly.

  • service-area-page-coverage

    The audit detects service-area pages from internal links that follow a /locations/ or /areas/ URL pattern. It does not grade how unique each page is, so write each metro page around local hospitals, local insurance networks, and local conditions rather than boilerplate.

AI Visibility pillar

AI Visibility

AI crawler readability, schema for AI, passage extractability, entity graph.

  • schema-completeness-for-ai

    The medical AI graph (MedicalBusiness + Physician + Organization + Person + FAQPage + BreadcrumbList + MedicalProcedure) is the densest of any vertical. AI engines triangulate "best [specialty] for [condition] near [city]" answers against this graph plus a medical-review byline.

  • entity-graph

    Per-clinician Person sameAs to LinkedIn, the medical-board verification page, the medical-society member directory, the residency program page (where applicable), and the Healthgrades / Vitals / Zocdoc profile. AI engines treat the second-degree clinician entity graph as a primary YMYL trust signal.

  • passage-headline-co-location

    A page that lists 8 conditions with a one-sentence summary and an H3 link out is unextractable for LLMs. Replace with question-shaped H2 + 134-167 word answer blocks per condition. The page length grows but citation rate roughly triples on YMYL medical queries.

Sample findings

What a Doctors and medical practices finding looks like.

Three illustrative findings in the format a Doctors and medical practices audit produces. Each carries a severity, a confidence flag, and a link to the methodology page that justifies the score.

highconf high

AI Visibility pillar

No clinician entity linked from the practice page

The page you audited publishes Organization JSON-LD with no Person entity for the clinicians and no sameAs links to their board-certification or hospital profiles. On YMYL medical content, a named, verifiable clinician is one of the clearest trust signals a page can carry; Mayo and Cleveland Clinic show one on every clinical page. The fix is a Person block per clinician with sameAs links.

Methodology →
highconf high

Foundational pillar

MedicalBusiness + Physician schema absent on practice + clinician pages

Your site publishes Organization + LocalBusiness JSON-LD but no MedicalBusiness or Physician blocks. AI engines need the medical-specific schema types to surface a private practice on "best [specialty] near [city]" answers. Each clinician page should ship Physician JSON-LD with medicalSpecialty, medicalBoard verification sameAs, and sameAs links to the clinician's third-party review profiles (Healthgrades, Zocdoc). Do not mark up reviews of your own practice: Google treats reviews a business controls about itself as self-serving, so LocalBusiness and Organization pages with that markup are ineligible for review stars.

Methodology →
mediumconf medium

Local pillar

Service-area pages thin: 1 page for 4 metros

You serve patients across Baltimore, Towson, Annapolis, and Columbia from two offices, but your site has a single "Locations" page listing all four. Each metro needs its own URL with unique copy referencing local hospitals, local conditions (UV exposure, occupational dermatology), and a per-metro MedicalBusiness JSON-LD block. The audit recommends the four service-area pages and a content brief for each.

Methodology →

Glossary preview

Five terms every medical practice should be able to define.

Full glossary →

Glossary

What is medical SEO?

The SEO practice for private medical practices and clinicians. Differs from generic professional-services SEO in four material ways: hardest YMYL tier (Google's strictest content-quality standards), HIPAA-adjacent on the practice side (PHI not handled by the audit), institutional-incumbent-dominated AI citation landscape (Mayo, Cleveland Clinic, NIH, WebMD), and hyper-local + hyper-procedure SERP fragmentation (each metro + procedure combination is its own competitive landscape).

Read the entry →

Glossary

MedicalBusiness schema for medical practices

The schema.org types for medical practices: MedicalBusiness (a LocalBusiness subtype), MedicalClinic, and Physician. Populate medicalSpecialty, address, openingHoursSpecification, isAcceptingNewPatients, and a Physician or Person entity per clinician with sameAs links to the state medical board record and the NPI registry. Pair with MedicalProcedure on procedure pages.

Read the entry →

Glossary

Medical-review byline for YMYL trust

A visible byline on any clinical-claim page naming the reviewing clinician (with credentials and a sameAs to the medical-board verification page) and a published last-reviewed date. The pattern Mayo and Cleveland Clinic use on every clinical page. AI engines treat the presence of the byline + review-date as a YMYL credibility gate; absence demotes the page on cited-answer queries.

Read the entry →

Glossary

Near-me + procedure content for medical practices

A topical cluster of one page per (metro x procedure) combination, each with unique copy referencing local hospitals, local conditions, and per-metro MedicalBusiness JSON-LD. The hyper-local matrix is the dominant SERP shape for private medical practices and the highest-leverage organic moat against institutional incumbents.

Read the entry →

Glossary

Who AI engines cite on medical queries

On health questions, ChatGPT, Claude, and Perplexity lean on Mayo Clinic, Cleveland Clinic, NIH sources such as MedlinePlus and PubMed, WebMD, and Healthline. Private practices earn citations on specific, local questions, with MedicalBusiness and Physician markup, named medical-review bylines, a verifiable clinician entity graph, and real procedure and location depth. The mix varies by engine, so the AI visibility check samples it on questions about your business.

Read the entry →

Compliance + trust note

Medical is Google's hardest YMYL tier and is HIPAA-adjacent on the practice side. We do not handle PHI; the audit reads your public pages only. Two trust points are worth reviewing on every clinical page: a named medical-review byline with a last-reviewed date, and a plain statement that the site does not replace advice from a clinician. For HIPAA, the concrete website duty HHS describes is posting your Notice of Privacy Practices prominently if you are a covered entity; your privacy officer owns that review. A second-model YMYL cross-check reviews the report's high-severity findings for language that could read as medical advice.

Every audit for medical practices runs 4 automated compliance review checks: Named clinician with credentials on clinical content; Clinical statements link primary medical sources; Notice of Privacy Practices posted on the website; and No guaranteed-outcome treatment claims. Each one is a first pass, not legal or regulatory advice.

Five questions we hear most from medical practices

FAQ.

Does my private-practice site really get cited against Mayo and Cleveland Clinic?

Not on broad informational queries (Mayo and Cleveland Clinic will dominate "what is [condition]"). Yes on hyper-local + procedure queries ("[procedure] in [city]", "best [specialty] for [condition] near [zip]"). The path is MedicalBusiness + Physician schema, medical-review byline cadence, complete clinician entity graph, and per-metro per-procedure content depth. The audit grades every one of those readiness signals; the AI visibility check and paid tracking measure whether you are cited.

Will the audit handle PHI or anything HIPAA-adjacent?

No. We do not handle PHI. The audit operates on the public-facing surface only: titles, schema, content depth, on-page phone and address, page structure, and AI answer tracking on paid plans. It runs one automated review check here: whether the page links a Notice of Privacy Practices, which HHS asks covered entities to post prominently. That is a first pass for your privacy officer, not a HIPAA compliance verdict.

Will the audit generate language that crosses into medical advice?

It should not, by design: our recommendations are SEO and entity-graph signals (titles, schema, byline cadence, entity graph, page structure), never clinical content. As a second line, a second-model YMYL cross-check reviews the high-severity findings on every doctor audit for language that could read as medical advice. The clinical content remains your practice's editorial domain, with the reviewing-clinician sign-off.

How is this different from Healthgrades or Zocdoc profile optimization?

Healthgrades and Zocdoc optimize the directory listing on their own platform. We do not measure those listings. We audit your own website: its schema graph, content depth, on-page local signals, and the technical-SEO fundamentals, plus AI answer sampling on paid plans. The four pillars run on every audit, equal weight.

How long does a medical audit take and what does it cost?

The free audit usually takes 2 to 3 minutes and reads 1 page, the one you enter. Paid plans add weekly AI answer tracking on six AI answer engines, from 25 tracked prompts on Starter to 150 on Agency, more pages per audit, history, and PDF reports, white-labeled on Pro and Agency.

Free. No login. Top three findings per pillar visible inline. The full report (typically 45 to 70 findings, vertical-tailored, with evidence and fix per finding) is emailed when you drop an address. Medical practices get the audit pre-set to your vertical.