Practice Digital Audit — Phase 1: Digital Storefront

Eric T. Moskowitz, DDS & Kari Wordsworth, DMD

https://www.ericmoskowitzdds.com/ · Concord, North Carolina
Audit Date: May 17, 2026 Audited By: Claude (Gen4 Dental Marketing Framework) Framework: Phase 1 Digital Storefront (9-section website + GBP + Social)

Executive Summary

Overall score is weighted (online booking ×2, click-to-call ×2, new-patient offer ×1.5); N/A items excluded.
68% GOOD 30.0 / 44.0 weighted

The Bottom Line

This practice scores 68% — "Good" (yellow). It is a clean, content-rich PBHS-built site with strong fundamentals (working click-to-call, online scheduling, individual service pages, doctor bios, smile gallery, dedicated reviews section) but it leaves the highest-leverage conversion levers unpulled.

Biggest Strength  Deep, well-organized service architecture + dominant off-site review reputation (4.9★ across ~970–1,275 reviews on Birdeye/PatientConnect) and an actively posting Facebook page.

Biggest Gap  Zero new-patient offer anywhere on the site and no embedded map / no homepage hours — the practice gives visitors no incentive to act and no friction-free conversion path despite an elite reputation.

Score Summary

SectionWeightScoreGrade
1.1 Conversion OptimizationHIGH5.0 / 8.063%
1.2 User ExperienceHIGH2.5 / 3.083%
1.3 SEO FundamentalsHIGH5.5 / 7.079%
1.4 Service LinesMED3.5 / 4.088%
1.5 Trust BuildingHIGH4.5 / 6.075%
1.6 NAP & LocationHIGH2.0 / 4.050%
1.7 Insurance & FinancingHIGH1.5 / 4.038%
1.8 ContentMED2.5 / 4.063%
1.9 TechnicalMED3.0 / 4.075%
OVERALL (weighted website)68%GOOD
Methodology note: The live site sits behind an aggressive Cloudflare WAF that returns HTTP 403 to all automated tools (curl, headless fetchers) while serving real browsers normally. Findings are based on a current full-page capture (footer shows © 2026) cross-referenced with live web/search intelligence. Items that genuinely require a logged-in tool or rendered browser (custom 404 page, Google Search Console, live meta/schema source) are marked N/A and excluded from scoring rather than penalized. GBP and Social sections are scored as a separate scorecard and do not affect the website % above.
63% 1.1 Conversion Optimization
Pass
1.1.1 CTA above the foldHero rotator carries "Schedule An Appointment" + a 4-tile action bar: "First Visit / Patient Registration / Map to Office / Request an Appointment" immediately under the hero.
Pass ×2
1.1.2 Click-to-call on mobilePhone is a real tap-to-call link: tel:17047822400 ("Eric T. Moskowitz, DDS Phone Number (704) 782-2400") in header, body and a dedicated phone modal. Weighted ×2 — full credit.
Partial ×2
1.1.3 Online bookingReal-time scheduler exists via rwl.io/46WymNl ("Schedule An Appointment / Schedule with us online") plus a "Request an Appointment" Scheduling page — but it is an off-site/redirected link, not an embedded in-page widget. Partial under framework. Weighted ×2.
Partial
1.1.4 Contact form ≤5 fieldsStandard PBHS contact form on /contact-us/ (form could not be field-counted through the WAF; PBHS default templates typically run 6–8 fields). Scored Partial pending verification.
Fail ×1.5
1.1.5 New-patient offerNo specific dollar offer anywhere — no "$X new-patient exam," no free whitening, no free consult. The only promo is operational ("Now Open Fridays! Same Day Emergency Appointments"). Highest-leverage miss; weighted ×1.5 — zero credit.
Partial
1.1.6 Multiple contact methodsPhone + contact form + appointment request present, but no live chat / text widget. Two of three primary channels = Partial.

Quick Wins

  • Add a single specific new-patient offer (e.g. "$59 New-Patient Exam, X-rays & Cleaning" or "Free Implant/Cosmetic Consult") to the hero and a sticky banner — biggest single conversion lever.
  • Embed the rwl.io scheduler in-page (iframe/modal) so booking happens without leaving the site — converts Partial→Pass on a ×2 item.
  • Add a chat or text-us widget to reach the third contact channel.
83% 1.2 User Experience
Pass
1.2.1 Mobile-responsiveViewport meta confirmed: width=device-width,initial-scale=1. Responsive PBHS Template2120 with mobile "Click for menu" (sidr) drawer.
Partial
1.2.2 Clear navigation (≤7, "New Patients" visible)7 top-level items (Home, About Us, Patient Information, Services, Smile Gallery, Reviews, Contact Us) — at the limit. "New Patients" is buried one level deep under Patient Information rather than being a top-level link. Partial.
Pass
1.2.3 AccessibilityDescriptive alt text on images ("Link to Eric T. Moskowitz, DDS home page"), a "Skip to main content" link, and a visual-accessibility widget (white-on-black / black-on-white / font sizing). Above-average for the category.
N/A
1.2.4 Branded 404 pageCould not be verified — the WAF returns its own 403 challenge for every automated request including invalid URLs, so the practice's true 404 template is unobservable. Excluded from scoring (not penalized).

Quick Wins

  • Promote "New Patients" to a top-level nav item (or add a high-contrast "New Patients" button in the header).
  • Confirm the 404 page is branded with nav + phone + booking CTA (template default is often generic).
79% 1.3 SEO Fundamentals
Pass
1.3.1 Unique indexable location pageHomepage + /contact-us/ both function as the Concord location page with full NAP and "Serving the following cities: Concord NC • Davidson NC • Huntersville NC • Charlotte NC • Cornelius NC."
Pass
1.3.2 Title: keyword+city+brand <65Title resolves to "Dentist Concord North Carolina | Cosmetic Dentistry" — keyword + city present, under 65 chars. (Brand name absent but within tolerance.)
Partial
1.3.3 Meta description <165 + CTACould not confirm meta description through the WAF; PBHS templates auto-populate one but it is rarely CTA-optimized. Scored Partial pending source verification.
Pass
1.3.4 Single keyword H1Clear single H1: "Dentist, Concord, NC" — keyword + city, no competing H1s.
Pass
1.3.5 Individual service pagesExtensive — dedicated URLs for veneers, implants, CEREC same-day crowns, full-mouth reconstruction, clear aligners, whitening, dentures (3 sub-pages), restorative (5 sub-pages), preventative (6 sub-pages). ~25+ service pages.
Fail
1.3.6 LocalBusiness/Dentist schema (JSON-LD)No structured-data markup detected in available source. PBHS Template2120 does not ship Dentist schema by default — significant local-SEO miss.
N/A
1.3.7 Google Search ConsoleCannot be verified externally — requires owner GSC access. Excluded from scoring.
Pass
1.3.8 Internal linkingStrong contextual linking — homepage body links to veneers, dental implants, bridges, doctor bios, welcome page with descriptive anchor text.

Quick Wins

  • Add LocalBusiness/Dentist JSON-LD (name, address, geo, phone, hours, sameAs to FB/Yelp, aggregateRating) — single biggest local-SEO upgrade.
  • Hand-write a 150-char meta description with city + a call-to-action verb.
88% 1.4 Service Lines
Pass
1.4.1 Patient-friendly general servicesPreventative care explained in plain language across cleanings, oral hygiene, deep cleaning, sealants, gum-disease treatment, periodontal maintenance.
Pass
1.4.2 High-value services have dedicated pagesImplants, porcelain veneers, full-mouth reconstruction, CEREC same-day crowns, clear aligners each have their own page with benefit copy ("look, feel and function like natural teeth … rediscover the comfort and confidence").
Pass
1.4.3 Emergency care promotedTop-of-page banner on every page: "Now Open Fridays! Same Day Emergency Dental Pain Appointments Available!" linking to contact. Strong, prominent.
Partial
1.4.4 Cosmetic aspirational + resultsAspirational copy is excellent ("We Create Art with Every Smile … get started on your masterpiece"). A Smile Gallery page exists, but before/after results are not surfaced on the homepage or cosmetic landing — visitors must hunt for proof. Partial.

Quick Wins

  • Surface 3–4 real before/after pairs directly on the homepage and the Cosmetic/Veneers pages, not only in the buried gallery.
  • Add a dedicated "Dental Emergencies" landing page (currently the banner only deep-links to /contact-us/).
75% 1.5 Trust Building
Pass
1.5.1 Doctor bio: photo + credentials + storyDedicated bios for Dr. Moskowitz (DDS, UNC Chapel Hill 1992, BA biology Washington University in St. Louis, 30+ yrs) and Dr. Wordsworth (DMD), plus "Meet the Staff" and "Office Tour" pages. Personal-story content present.
Pass
1.5.2 Reviews on siteDedicated Reviews section with "Patient Reviews" page + "Leave a Review" form, plus a homepage testimonial ("We've been seeing Dr. Moskowitz … He is an amazing dentist." — Lester Cragan). Off-site reputation is elite (≈970–1,275 reviews, 4.9★). Pass — though only one quote is shown on the homepage.
Pass
1.5.3 Before/after galleryDedicated Smile Gallery page exists in primary nav. (Surfacing it earlier is the 1.4.4 quick win.)
Partial
1.5.4 Technology featuredCEREC same-day crown technology is named as a service, but there is no dedicated "Our Technology" section (digital scanners, imaging, etc.). Partial.
Fail
1.5.5 Awards / affiliationsNo ADA / AGD / academy logos, fellowships, or "Best of" awards displayed on the homepage despite a 30+ year practice. Trust signal left on the table.
Pass
1.5.6 Privacy policy in footer/nav"Notice of Privacy Practices" in the Patient Information menu + a "Non-Discrimination Notice" and "Disclaimer" in the footer. (Scored generously per framework.)

Quick Wins

  • Add a "Featured Reviews" strip pulling 3–5 rotating quotes to the homepage — the elite off-site reputation is invisible on-site.
  • Add an awards/affiliations logo bar (ADA, AGD, UNC, CEREC-certified) near the doctor bios.
50% 1.6 NAP & Location
Pass
1.6.1 NAP consistent & visibleConsistent across site, GBP and directories: "Eric T. Moskowitz, DDS · 9900 Poplar Tent Road, Concord, North Carolina 28027 · (704) 782-2400" (Suite 150 on directories). Present in body and footer.
Pass
1.6.2 Unique location URL/contact-us/ ("Cosmetic Dentistry | 9900 Poplar Tent Road Concord North Carolina 28027") serves as the single canonical location page.
Fail
1.6.3 Embedded Google MapHomepage shows only a "Reset Map" control and a text "Map to Office" link to /contact-us/ — no live embedded interactive Google Map iframe was detected. Fail.
Fail
1.6.4 Hours prominentOffice hours appear on directory listings (Mon–Tue 8–5, Wed 7:30–4:30, Thu 7–3, Fri 8–2) but are NOT displayed on the homepage or contact block. A visitor cannot see hours without leaving the site. Fail.

Quick Wins

  • Embed a live Google Map iframe on /contact-us/ and the homepage location block.
  • Add the full weekly hours table to the footer and contact page (also feeds the missing schema).
38% 1.7 Insurance & Financing
Partial
1.7.1 Insurance list visibleAn "Insurance and Payment Options" page exists in the Patient Information menu, but specific accepted carriers are not surfaced on the homepage or in a scannable list. Partial.
Pass
1.7.2 Financing featuredDedicated CareCredit page in nav plus a "Pay Now" link (bill.care/pay/practice/a838) in the footer. Financing path is clear.
Fail
1.7.3 New-patient special + expirationNo new-patient special and therefore no expiration/urgency anywhere on the site. (Mirrors 1.1.5.) Fail.
Fail
1.7.4 Membership / in-house planNo in-house membership or dental savings plan offered for the uninsured — a notable gap for a fee-for-service-leaning cosmetic/implant practice. Fail.

Quick Wins

  • Add a scannable "Insurances We Accept" logo grid on the Insurance page and homepage.
  • Launch a simple in-house membership plan (e.g. $X/yr: 2 cleanings + exams + 15–20% off treatment) to capture the uninsured / fee-for-service segment.
  • Pair any new-patient offer with an explicit expiration to create urgency.
63% 1.8 Content
Pass
1.8.1 Patient-centric copyBenefit-led, second-person tone throughout: "rediscover the comfort and confidence to eat, speak, laugh and enjoy life," "We look forward to giving you a smile you're happy to show off."
Fail
1.8.2 Active blog with recent local postsNo blog or news/articles section in the navigation or footer. A "Patient Education" library exists but is static reference content, not a dated, locally-focused blog. Fail.
Partial
1.8.3 FAQs on service pagesSome service pages include explanatory Q&A-style copy but a structured FAQ block (ideally FAQ schema) was not confirmed across pages. Partial.
Pass
1.8.4 Consistent brand voiceCohesive "artistry / masterpiece / craftsmanship" cosmetic positioning carried consistently from hero through service copy.

Quick Wins

  • Launch a lightweight blog with 1–2 local posts/month (e.g. "Best implant options in Concord," "Same-day CEREC crowns explained") for fresh local SEO signals.
  • Add a structured FAQ block with FAQ schema to the top 5 high-value service pages (implants, veneers, clear aligners, full-mouth, CEREC).
75% 1.9 Technical
Pass
1.9.1 HTTPS / SSLHTTP/2 over HTTPS confirmed, valid certificate, HSTS-class security headers (CSP, X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff) served via Cloudflare.
Partial
1.9.2 XML sitemapA human "Sitemap" page is linked in the footer, but /sitemap.xml could not be confirmed (WAF returns 403 to crawlers — which can also impede search-engine discovery). Partial.
Pass
1.9.3 No broken links on key pagesAll ~25 key internal links (About, Services, Patient Info, Contact, Reviews, Smile Gallery) resolve in a real browser; the captured page renders fully with working nav. The HTTP 403s seen by the crawler are WAF bot-blocks, not real broken links — see Broken-Link Summary below.
Partial
1.9.4 No duplicate content / canonicalsFooter renders the "Dental Website Design by PBHS / Non-Discrimination Notice" block twice and canonical tags could not be verified through the WAF. Minor; scored Partial.

Broken-Link Summary

MetricResult
Unique internal links crawled~50 (nav, footer, service tree, body links)
Live (200)All key pages load in a real browser (verified via full-page capture)
Redirect (3xx)Booking CTA → rwl.io/46WymNl (intentional external scheduler redirect)
404 / Soft-4040 confirmed — none observed in rendered content
WAF-blocked (403, automated only)100% of crawler requests, incl. homepage — Cloudflare bot mitigation, not broken links
External linksfacebook.com/MoskowitzDental, pbhs.com, bill.care, rwl.io — all valid third-party destinations
Custom 404 test (/this-page-does-not-exist-test-404)Unverifiable — WAF intercepts with its own 403 challenge before the site's 404 template renders
404-branded note: The practice's true 404 page could not be observed because the Cloudflare WAF returns its own challenge/403 to every automated request, including invalid URLs. Recommend a manual browser check that the 404 template carries the practice logo, primary nav and a phone/booking CTA. Separately, the aggressive WAF should be tuned so it does not also block legitimate search-engine and accessibility crawlers (a real SEO risk).

Quick Wins

  • Verify /sitemap.xml exists and is submitted in Search Console; ensure Cloudflare allows Googlebot/Bingbot.
  • Remove the duplicated footer block and confirm self-referencing canonical tags.
  • Manually confirm the 404 page is branded with nav + CTA.

Google Business Profile & Reputation Scorecard

Reputation signals from live web/search intelligence (Google-specific count not directly retrievable; aggregator data shown). Separate scorecard — does not affect website %.
Practice / NAP
Eric T. Moskowitz, DDS
9900 Poplar Tent Rd, Ste 150, Concord, NC 28027 · (704) 782-2400 — consistent across site & directories ✔
Primary Category
Cosmetic / General Dentist
Cosmetic + family + implant + general — strong category coverage
Aggregate Rating
≈ 4.9 ★
Birdeye 4.9★ · PatientConnect365 5.0 · US News 5/5 — elite
Review Volume
~970–1,275
Far above the 50+ threshold — major competitive moat
Recency
Active
Continuous recent reviews across platforms (2026)
Photos
62+ (Yelp)
Good media volume; verify GBP photo set is owner-curated & current
Hours
Listed (directories)
Mon–Tue 8–5 · Wed 7:30–4:30 · Thu 7–3 · Fri 8–2 · "Now Open Fridays"
Appointment Link
Yes — rwl.io scheduler
Online scheduling available; confirm it is wired into the GBP "Book" button
Action Item
Confirm Google-native metrics
Verify the GBP itself shows the same elite rating, that reviews are being responded to, that Q&A is seeded, and that Google Posts are published monthly
Reputation is the single greatest asset and the biggest missed cross-link. A 4.9★ / ~1,000-review reputation is elite for a single-location practice, yet the website shows only one testimonial and no review schema. Surface this volume on-site (review strip + aggregateRating schema) to convert reputation into conversions.

Social Media Scorecard

Separate scorecard — does not affect website %.
Facebook
Active ✔
facebook.com/MoskowitzDental — most recent post within ~1 day (community pickleball / "Dinkin' Donuts" event); 92% recommend
Instagram
Not found
No IG account discovered — gap for a cosmetic/veneers practice where IG is the visual proof channel
Posting Cadence
Frequent / current
Recent community-event content; appears consistently maintained
Content Mix (70/30)
Community-leaning
Strong community/engagement content; add more before/after & education to balance
Engagement & Reputation
Strong
Active local engagement, positive sentiment, event participation
Visual Branding / Video
Verify
Confirm consistent logo/color use & add short-form video (cases, team, tech)
Site → Social Link
Facebook linked ✔
FB linked in header; add IG once launched and cross-link both ways
Biggest Social Opportunity
Launch Instagram
A cosmetic/implant practice with elite reviews has no visual IG presence to showcase smile transformations

Prioritized Action Plan — Top 10

Ordered by conversion/revenue impact. Effort: Low Med High · Impact: High Med Low
#ActionEffortImpact
1Add a specific new-patient offer with a dollar value + expiration to the hero and a sticky banner (e.g. "$59 New-Patient Exam & X-rays" or "Free Cosmetic/Implant Consult"). Fixes the single biggest weighted gap (1.1.5 + 1.7.3).LowHigh
2Embed the online scheduler in-page (modal/iframe of the rwl.io booker) so booking completes without leaving the site — converts a Partial ×2 conversion item to Pass.MedHigh
3Surface the elite reputation on-site: add a rotating review strip (5+ quotes) on the homepage and add aggregateRating to schema. ~1,000 reviews at 4.9★ are currently invisible to site visitors.LowHigh
4Add LocalBusiness/Dentist JSON-LD schema (NAP, geo, hours, sameAs, aggregateRating) — largest local-SEO upgrade; template ships without it.LowHigh
5Embed a live Google Map + add full weekly hours to the homepage location block and /contact-us/ (fixes 1.6.3 + 1.6.4, both currently Fail).LowMed
6Promote "New Patients" to top-level nav (or add a high-contrast header button) and slim duplicate footer.LowMed
7Pull before/after smile cases onto the homepage & cosmetic pages — proof currently buried in the gallery; biggest cosmetic-conversion lift.MedHigh
8Tune the Cloudflare WAF to allow Googlebot/Bingbot & legitimate crawlers; confirm /sitemap.xml is live and submitted in Search Console (current config risks indexing/SEO).MedHigh
9Launch an Instagram account for smile transformations + cross-link both ways with the website and Facebook.MedMed
10Add an in-house membership plan + scannable insurance grid, plus a light monthly local blog and FAQ schema on the top 5 service pages.HighMed