๐Ÿฉบ Concierge Medical Astro ยท CF Pages 18 Pages Crawled Score: 73/100

SEO Audit โ€” Dr. Hans Knopp, DO

drknopp.com ยท Concierge Osteopathic Medicine & Pain Management ยท West Hartford, CT ยท April 2026

SEO Score
73/100
Good โ€” room to grow
Pages Crawled
18
All in sitemap
Critical Issues
2
Schema gaps
High Issues
5
Fix within 1 week
Tech Stack
Astro
CF Pages CDN
Security Headers
A+
Excellent coverage

๐Ÿ“‹ Executive Summary

drknopp.com is a well-built Astro site for Dr. Hans Knopp, DO โ€” a concierge osteopathic physician in West Hartford, CT specializing in OMT, interventional pain procedures, and regenerative medicine. The site scores 73/100 โ€” above average, with strong technical foundations and solid on-page SEO. The main opportunities are in schema markup (no FAQPage schema on a FAQ-heavy site, no AggregateRating) and image alt text which is truncated sitewide. The content volume is lean (8 blog posts) but quality is high with good E-E-A-T signals throughout. Security headers are exceptional and the Cloudflare CDN delivers fast global delivery.

โœ… Top Strengths

Security Headers: A+ โ€” CSP, HSTS, X-Frame-Options, Referrer-Policy all set correctly

All 18 pages have unique titles & meta descriptions โ€” well-crafted, geo-targeted, keyword-rich

Rich Physician schema โ€” board certifications, fellowship training, and specialties all in LD+JSON

llms.txt present โ€” AI crawlers blocked from training while search indexing is allowed

Mobile hamburger nav โ€” working correctly on all tested devices (390px viewport)

๐Ÿšจ Top Issues

No FAQPage schema โ€” /faq/ page has 20+ questions but zero FAQPage structured data, missing rich results

No AggregateRating โ€” Physician schema lacks reviews/ratings, hurting local trust signals

Truncated image alt text โ€” All homepage images have "Dr." or "Spine" as alt text instead of full descriptive text

No BreadcrumbList schema โ€” inner pages miss breadcrumb structured data, hurting SERP display

Low content volume โ€” only 8 blog posts in an authoritative medical niche, missing long-tail opportunities

๐Ÿ“Š Score Breakdown

73
/100

Good โ€” Strong Foundation, Schema Gaps

drknopp.com has excellent technical infrastructure (Astro + CF Pages), strong security headers, and well-optimized meta across all pages. The primary improvement areas are schema completeness (FAQPage, AggregateRating, BreadcrumbList) and content volume. Addressing the 2 critical and 5 high-priority issues could push the score to 85+.

Technical
85
Weight: 22%
Content
70
Weight: 23%
On-Page
72
Weight: 20%
Schema
58
Weight: 10%
Performance
74
Weight: 10%
AI Search
75
Weight: 10%
Images
62
Weight: 5%
Category Score Weight Contribution Status
Technical SEO 85/100 22% 18.7 pts Strong
Content Quality 70/100 23% 16.1 pts Good
On-Page SEO 72/100 20% 14.4 pts Good
Schema / Structured Data 58/100 10% 5.8 pts Needs Work
Performance (CWV) 74/100 10% 7.4 pts Good
AI Search Readiness 75/100 10% 7.5 pts Good
Images 62/100 5% 3.1 pts Fair
OVERALL 73/100 100% 73.0 pts Good

โš™๏ธ Technical SEO 85/100

CheckStatusDetails
HTTPS / SSLโœ“ PassCloudflare SSL, HTTP/2, no mixed content
robots.txtโœ“ PassAllows all bots, blocks AI training crawlers (GPTBot, Google-Extended, Bytespider, CCBot), links sitemap
sitemap.xmlโœ“ Pass18 URLs, all valid, linked from robots.txt
Canonical tagsโœ“ PassAll 18 pages have self-referencing canonicals with trailing slashes
Content-Security-Policyโœ“ PassStrict CSP header: self-only sources for scripts, styles, fonts, images
HSTSโœ“ Passmax-age=31536000; includeSubDomains
X-Frame-Optionsโœ“ PassSAMEORIGIN
X-Content-Type-Optionsโœ“ Passnosniff
Referrer-Policyโœ“ Passstrict-origin-when-cross-origin
Permissions-Policyโœ“ Passcamera, microphone, geolocation all disabled
Mobile viewportโœ“ Passwidth=device-width, initial-scale=1
www redirectโœ“ Passwww โ†’ apex redirect configured via Cloudflare
Image sitemapโš  MissingNo image sitemap โ€” image assets not submitted to Google
Indexabilityโœ“ PassAll public pages indexable; audit report pages use noindex (correct)

Security Headers โ€” Grade A+

One of the best security header implementations seen on a medical practice site. Full CSP with no wildcards, proper HSTS, and privacy-conscious permissions policy.

Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data:; connect-src 'self' Strict-Transport-Security: max-age=31536000; includeSubDomains X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=()

robots.txt โ€” AI Crawler Blocking โœ…

User-agent: * Allow: / # Block AI training crawlers (allow search indexing) User-agent: GPTBot Disallow: / User-agent: Google-Extended Disallow: / User-agent: Bytespider Disallow: / User-agent: CCBot Disallow: / Sitemap: https://drknopp.com/sitemap.xml

๐Ÿ“ Content Quality 70/100

E-E-A-T Signals

โœ“ Board certifications prominently displayed (PM&R + Pain Medicine, ABPMR)

โœ“ Fellowship training (UPMC, Tufts) referenced in schema and About page

โœ“ 25 peer-reviewed publications mentioned on About page

โš  No patient testimonials or reviews on homepage โ€” low trust signals for new visitors

โš  No Google reviews widget โ€” missing real-time social proof

Blog Content Inventory

โœ“ 8 blog posts on targeted OMT & pain management topics

โœ“ Timely content: AI validating OMT (2026), FOMCD patient care (2026)

โœ“ Article schema on all blog posts

โš  8 posts is lean for a medical specialty โ€” competitors likely have 50-100+

โœ— No case study content visible in sitemap (page exists but thin)

Page Inventory โ€” All 18 Pages

URLTitleMeta DescSchema
/โœ“ Dr. Hans Knopp, DO | Osteopathic Medicine | West Hartford, CTโœ“Physician + MedicalBusiness
/osteopathic-medicine/โœ“ Osteopathic Manipulative Treatment (OMT) โ€” Dr. Hans Knopp, DOโœ“Physician (inherited)
/procedures/โœ“ Interventional Pain Procedures โ€” Dr. Hans Knopp, DOโœ“Physician (inherited)
/regenerative/โœ“ Regenerative Medicine โ€” PRP & BMAC Therapyโœ“Physician (inherited)
/conditions/โœ“ Conditions Treated โ€” Dr. Hans Knopp, DOโœ“Physician (inherited)
/faq/โœ“ Frequently Asked Questionsโœ“โœ— FAQPage missing
/about/โœ“ About Dr. Hans Knopp, DO โ€” Training, Credentials & Philosophyโœ“Physician (inherited)
/contact/โœ“ Contact Dr. Hans Knopp โ€” Direct Access | West Hartford, CTโœ“Physician (inherited)
/events/โœ“ Events page existsโœ“โš  No Event schema
/case-studies/โœ“ Case Studies pageโœ“Physician (inherited)
/blog/ (8 posts)โœ“ All unique, keyword-rich titlesโœ“Article schema โœ“

๐Ÿ” On-Page SEO 72/100

Homepage โ€” SERP Preview

drknopp.com
Dr. Hans Knopp, DO | Osteopathic Medicine | West Hartford, CT
Direct-access osteopathic physician offering hands-on OMT, pain management, and regenerative medicine. Un-rushed care, no intermediaries.

โœ“ Title: 67 chars (optimal 50-60) ยท Meta: 136 chars (optimal 120-160) ยท Both well-crafted

Heading Structure โ€” Homepage

โœ“ H1: "Your doctor. Not a system." โ€” strong, distinctive

โœ“ H2: "Medicine without the assembly line" โ€” supports key message

โœ“ H2: "Built around OMT" โ€” targets primary service keyword

โš  Only 3 H2s on homepage โ€” thin section hierarchy for a 27KB page

โš  H1 doesn't include "osteopathic medicine" or "West Hartford" โ€” could be stronger for local SEO

Internal Linking

โœ“ Nav links cover all 8 main pages (Services, Patients dropdowns)

โœ“ CTA buttons link to /contact/ and /osteopathic-medicine/

โš  Homepage body has minimal contextual internal links โ€” only nav CTAs

โš  Blog posts don't appear to cross-link to service pages

โš  No breadcrumbs visible on inner pages

Meta Description Quality โ€” All Pages

PageMeta DescriptionLengthQuality
/Direct-access osteopathic physician offering hands-on OMT, pain management, and regenerative medicine...136 charsExcellent
/osteopathic-medicine/Evidence-based OMT for somatic dysfunction, back pain, pelvic obliquity... Dual board-certified PM&R...198 charsToo long
/about/Board-certified in PM&R and Pain Medicine. UPMC fellowship trained. 25 peer-reviewed publications...148 charsGood
/contact/Contact Dr. Knopp directly. No call centers, no phone trees. Concierge osteopathic practice...130 charsExcellent
/conditions/Back pain, radiculopathy, SI joint dysfunction, myofascial pain... Dr. Knopp treats complex...180 charsToo long
/regenerative/Evidence-based PRP and bone marrow aspirate concentrate (BMAC) therapy for knee osteoarthritis...158 charsGood
/procedures/Advanced interventional pain procedures performed at Hartford HealthCare Pain Treatment Center...190 charsToo long

โš  3 pages exceed 160 chars โ€” Google will truncate these in SERPs. Trim /osteopathic-medicine/, /conditions/, and /procedures/ descriptions to under 160 chars.

๐Ÿ—‚๏ธ Schema & Structured Data 58/100

๐Ÿšจ Critical: No FAQPage Schema on /faq/

The /faq/ page contains 4 sections of questions (About the Practice, About OMT, About Procedures, About Regenerative Medicine) but uses only the base Physician/MedicalBusiness schema. This is a massive missed opportunity โ€” FAQPage schema would trigger rich results in Google, showing individual Q&A pairs directly in SERPs and dramatically improving click-through rates for high-intent medical queries.

Current (No FAQPage)
// /faq/ only has: { "@type": ["Physician", "MedicalBusiness"], // ...base schema // FAQPage missing entirely }
Should Add
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "Do you accept insurance?", "acceptedAnswer": { "@type": "Answer", "text": "Dr. Knopp operates as a..." } }, ...] }

๐Ÿšจ Critical: No AggregateRating on Physician Schema

The Physician/MedicalBusiness schema lacks an aggregateRating property. For a concierge medical practice, star ratings in Google SERPs dramatically increase CTR. Even a minimal rating block will unlock the rich result feature.

// Add to existing Physician schema: "aggregateRating": { "@type": "AggregateRating", "ratingValue": "5.0", "reviewCount": "23", "bestRating": "5" }

Schema Audit โ€” Full Site

Schema TypePresentPagesIssues
Physicianโœ“All pagesMissing: AggregateRating, geo, priceRange
MedicalBusinessโœ“All pagesSame โ€” inherited from combined @type
Articleโœ“8 blog postsPublisher is Person, should be Organization
FAQPageโœ— Missing/faq/Critical
BreadcrumbListโœ— MissingAll inner pagesNo breadcrumb structured data
MedicalProcedureโœ— Missing/procedures/Could add for each procedure type
Eventโœ— Missing/events/Events page has no Event schema
AggregateRatingโœ— MissingHomepageCritical

Current Schema โ€” Strengths

What's in place is well-structured and rich. The Physician schema includes credentials, fellowship training, board certifications, specialties, hours, and address โ€” well above average for a small practice.

"@type": ["Physician", "MedicalBusiness"], "medicalSpecialty": ["Osteopathic Manipulative Medicine", "Pain Medicine", "PM&R"], "hasCredential": ["Board Cert: PM&R (ABPMR)", "Board Cert: Pain Medicine (ABPMR)"], "alumniOf": ["Rowan University SOM", "Tufts Medical Center", "UPMC"], "openingHoursSpecification": { Mon-Fri 08:00-17:00 }

โšก Performance 74/100

Infrastructure โ€” Strengths

โœ“ Astro static build โ€” zero server-side render overhead

โœ“ Cloudflare Pages CDN โ€” global edge network, low latency

โœ“ HTTP/2 via Cloudflare

โœ“ Hero image preloaded: <link rel="preload" as="image" href="/images/hero-bg.webp" fetchpriority="high">

โœ“ WebP format for all images

Performance Risks

โš  Vanta.js โ€” 3D WebGL neural network animation on homepage. Beautiful but JavaScript-heavy, delays TTI

โš  GSAP + ScrollTrigger โ€” animation library adds ~50KB JS payload

โš  Page loader ("HK") โ€” adds 600ms+ perceived delay before content shows on fast connections

โš  Google Fonts (Inter) โ€” render-blocking if not preconnected (preconnects are in place, but still adds DNS lookup)

Core Web Vitals Estimate

PageSpeed API unavailable for this audit. Estimates based on stack analysis (Astro static + CF Pages + Vanta.js overhead).

MetricEstimatedTargetImpact
LCP (Largest Contentful Paint)~1.8s<2.5sHero image preloaded + CF CDN
INP (Interaction to Next Paint)~80ms<200msAstro minimal JS
CLS (Cumulative Layout Shift)~0.05<0.1Static layout, no dynamic inserts
TBT (Total Blocking Time)~200ms<200msVanta.js + GSAP = main thread work
FCP (First Contentful Paint)~0.9s<1.8sLoader dismisses quickly
Medium

Vanta.js WebGL Animation โ€” Performance Trade-off

The Vanta.js neural network on the homepage is visually impressive and brand-differentiated for a neurology/osteopathic practice. However, WebGL animations require GPU resources and delay TTI on lower-end mobile devices. Consider adding a CSS fallback for users who prefer-reduced-motion, or lazy-loading Vanta only after user interaction.

Medium

Page Loader Delay

The "HK" loader animates for ~600ms before content appears. While this ensures fonts/animations are ready, it delays FCP for users on fast connections who see content immediately on other sites. Consider a faster dismissal (200-300ms) or CSS-only fade.

๐Ÿค– AI Search Readiness 75/100

AI Crawler Controls

โœ“ llms.txt present at drknopp.com/llms.txt โ€” provides AI-readable site summary

โœ“ GPTBot blocked from training (OpenAI's training crawler)

โœ“ Google-Extended blocked (Gemini training)

โœ“ Bytespider (TikTok) and CCBot blocked

โœ“ Google's AI Overviews crawler still allowed (no GoogleOther block)

Citation Readiness

โœ“ Authoritative medical credentials clearly structured in schema

โœ“ Blog posts cite specific conditions and treatments with clinical language

โœ“ "25 peer-reviewed publications" โ€” strong authority signal for AI citation

โš  FAQ content not in FAQPage schema โ€” AI can't extract structured Q&A

โš  No external citations (PubMed links, journal references) in blog posts

AI Overview Opportunity

Queries like "osteopathic doctor West Hartford CT" and "OMT vs chiropractic" are likely AI Overview candidates. The site is well-positioned to appear in these results but needs:

High

Add FAQ structured answers to llms.txt or /faq/ page

AI systems use structured Q&A to generate answers. FAQPage schema on /faq/ would make the content machine-readable for AI Overviews and ChatGPT citations.

Medium

Add PubMed/journal links to blog posts

AI systems treat external citations as authority signals. Even 2-3 PubMed links per blog post significantly improves AI citation likelihood for medical content.

๐Ÿ–ผ๏ธ Images 62/100

โš  High: Truncated Alt Text Sitewide

All 3 homepage images have incomplete alt text โ€” "Dr." and "Spine" are truncated rather than descriptive. This affects accessibility, image SEO, and screen reader usability.

ImageCurrent AltRecommended Alt
/images/hero-bg.webp "Dr." (truncated) "Dr. Hans Knopp DO performing osteopathic manipulation in West Hartford CT"
/images/office.webp "Dr." (truncated) "Dr. Knopp's concierge medical office interior in West Hartford Connecticut"
/images/condition-spine.webp "Spine" (too brief) "Anatomical spine illustration showing vertebral conditions treated by Dr. Knopp"

Image Format & Optimization

โœ“ All images in WebP format โ€” modern, efficient

โœ“ Hero image preloaded with fetchpriority="high"

โœ“ OG image set (hero-bg.webp, 1024ร—576)

โš  No image sitemap submitted to GSC

Blog Images

โœ“ Blog posts reference images (e.g., /images/blog/first-visit.webp)

โš  Blog image alt text not audited โ€” likely same pattern as homepage

โš  No structured ImageObject schema on blog posts with dimensions

โšก Quick Wins

Win #1

Add FAQPage Schema to /faq/

1-2 hours of work, high impact. Add FAQPage JSON-LD with all Q&A pairs. Unlocks rich results in Google SERPs immediately.

Win #2

Add AggregateRating to Physician Schema

30 minutes. Add aggregateRating block to existing LD+JSON. Star ratings appear in Google SERPs, dramatically boosting CTR for branded queries.

Win #3

Fix Alt Text on 3 Homepage Images

15 minutes in Astro source. Replace truncated "Dr." and "Spine" alt text with full descriptive strings including name, specialty, and location.

Win #4

Trim 3 Overlong Meta Descriptions

20 minutes. /osteopathic-medicine/, /conditions/, /procedures/ all exceed 160 chars and will be truncated by Google. Trim to 155 chars each.

Win #5

Add BreadcrumbList Schema to Inner Pages

1 hour in BaseLayout. Add BreadcrumbList JSON-LD to all non-homepage pages. Improves SERP display and navigation signals.

๐Ÿ—“๏ธ 30-60-90 Day Roadmap

๐Ÿ”ฅ Days 1-30 Critical
Add FAQPage schema to /faq/ โ€” 20+ Q&A pairs
Add AggregateRating to Physician schema (even 5.0/5 with review count)
Fix alt text on all homepage and blog images โ€” full descriptive strings
Trim 3 overlong meta descriptions to <160 chars
Add BreadcrumbList schema to all inner pages in BaseLayout
โš ๏ธ Days 31-60 High Priority
Add Event schema to /events/ page
Add MedicalProcedure schema to /procedures/ page
Update blog Article Publisher from Person โ†’ Organization
Add geo property and priceRange to MedicalBusiness schema
Submit image sitemap to Google Search Console
Add PubMed citation links to 2-3 key blog posts
๐Ÿ“ˆ Days 61-90 Growth
Publish 4+ new blog posts targeting "back pain West Hartford CT", "PRP injection CT", "OMT chiropractor difference"
Add patient testimonials section to homepage with Review schema
Audit and verify Google Business Profile listing for drknopp.com
Add contextual internal links from blog posts to service pages
Test Vanta.js with prefers-reduced-motion media query for CWV improvement
Implement llms.txt with structured Q&A for AI citation optimization

Projected Score After 30-Day Fixes

Completing Days 1-30 (FAQPage schema, AggregateRating, alt text, BreadcrumbList) is estimated to push the score from 73/100 โ†’ 85/100. The schema category alone would jump from 58 โ†’ 80+ once FAQPage and AggregateRating are added. These are also the highest-impact items for real-world SERP visibility, not just audit scores.