Juniper Lane StudioLaunch QA report
File № AP-2026-2952
Scanned 3 of 3 discovered pages · 2026-06-28 09:14–09:15 UTC (88s) · engine AgencyProofBot/1.0 · 43 deterministic checks + AI review
Certificate of pre-launch inspection
Marlow Dental Website
https://marlow-dental.example
- Prepared for
- Marlow Dental
- Prepared by
- Juniper Lane Studio
- Inspected
- Jun 28, 2026
- Verdict
- Fixes required before launch
Prepared by Juniper Lane Studio · hello@juniperlane.example
- homepageMarlow Dental | Gentle Modern Dentistryhttps://marlow-dental.example/
- /servicesMarlow Dental | Gentle Modern Dentistryhttps://marlow-dental.example/services
- /contactContact | Marlow Dentalhttps://marlow-dental.example/contact
§ 01
Executive summary
Marlow Dental Website scores 71/100 — fixes required before launch. Three blockers stand in the way: a hero headline that guarantees pain-free treatment, a "Book an appointment" button that goes nowhere on all three pages, and before/after photos published with patient names in the filenames. The high-priority tier is about being reachable and findable: the appointment form submits nowhere, the site never states where the practice is, there is no structured data for local search, and the form collects health details with no privacy policy. Because this is a healthcare site, one finding is flagged for human review: the outcome claims in the hero and whitening copy may need checking against local dental advertising rules. Accessibility (88) and performance (92) show the build underneath is sound — this is a copy, wiring, and metadata pass, not a rebuild.
§ 02
Scorecard
Ten dimensions, weighted into one Launch Readiness Score.
Fixes required before launch
- Trust & Credibility63
18% of score
- SEO Readiness69
14% of score
- AI Search Readiness70
10% of score
- Technical QA71
14% of score
- Privacy & Metadata60
10% of score
- Accessibility Basics88
8% of score
- Performance Basics92
8% of score
- Content Quality66
8% of score
- Conversion Clarity70
6% of score
- Compliance-Sensitive Copy85
4% of score
Each category starts at 100 and deducts per finding: critical −25 · high −15 · medium −8 · low −4 · enhancement −2. The launch score is the weighted average.
§ 03
Critical blockers
Do not launch until these are resolved. Each one is visible to visitors, clients, or regulators on day one.
Homepage headline guarantees a treatment outcome
<h1>Pain-free treatment — guaranteed.</h1> — captured from / . No page describes what the guarantee covers, and no terms, methodology, or supporting evidence exist anywhere on the site.
Why it matters
A dental practice cannot guarantee that treatment is pain-free — outcomes vary by patient and procedure. The first sentence a visitor reads is a promise the practice cannot keep, and it exposes Marlow Dental to complaints the day a patient's experience differs.
Recommended fix
Replace the guarantee with an honest statement about the practice's approach to patient comfort, and describe what patients can actually expect for common procedures.
Dev taskReplace the hero H1 on / and remove all "guaranteed" language sitewide.
The "Book an appointment" button goes nowhere
<a class="nav-cta" href="#">Book an appointment</a> — appears in the navigation on all 3 crawled pages (/, /services, /contact). Clicking it scrolls to the top of the current page.
Why it matters
Booking is the one action this site exists to produce, and its primary button is a dead end on every page. Patients who click it get nothing — no form, no phone number, no booking widget — and the practice never knows they tried.
Recommended fix
Point the button at the /contact appointment form (or the practice's booking system) and click-test it on every page before launch.
Dev taskSet the nav CTA href to /contact in the shared header; verify on /, /services, and /contact.
Before/after photos are published with patient names in the filenames
<img src="/images/before-after-jane-mercer-crown.jpg"> and <img src="/images/before-after-r-okafor-veneers.jpg"> — smile gallery on /services (the first image also appears on /). Each filename pairs an identifiable patient name with a dental procedure.
Why it matters
A filename linking a named person to a medical procedure is health information published in a public URL — indexed by search engines, cached, and visible in every share. For a dental practice this is a serious privacy exposure, and patient consent for the photo almost certainly did not cover this.
Recommended fix
Take the current files down, re-export the images under neutral filenames (e.g. smile-gallery-01.jpg) with embedded metadata stripped, and confirm written patient consent covers web publication before restoring the gallery.
Dev taskRename both before/after images to neutral slugs, update references on / and /services, and purge the old URLs from any CDN cache.
§ 04
High-priority fixes
Not launch-blocking, but they cost trust, traffic, or leads from the first day live.
Appointment form collects health details with no privacy policy
The /contact form fields include "Phone", "Reason for visit", and "Describe your symptoms". No page on the site links to a privacy policy — the footer links are Home, Services, and Contact.
Why it matters
The form asks patients to describe symptoms — health information — and the site never says where that data goes, who can read it, or how long it is kept. For a healthcare practice this is both a trust problem and a likely regulatory gap.
Recommended fix
Publish a privacy policy covering what the form collects, where submissions are stored, and how patients can request deletion. Link it from the footer on every page and next to the form's submit button.
Dev taskCreate /privacy with reviewed policy content and link it in the shared footer and beside the appointment form.
Missing meta description on /services
/services has no <meta name="description"> tag. Search engines will assemble a snippet from whatever page text they pick — currently the navigation links.
Why it matters
The services page is where "dentist near me" searches should land, and the snippet under that result is the ad copy for the click. Leaving it to chance hands the practice's best page a random sentence in results.
Recommended fix
Add a 140–160 character meta description naming the services and both locations, e.g. "Cleanings, crowns, and whitening at Marlow Dental's two locations. Gentle care for the whole family — book online or call."
Dev taskAdd a unique <meta name="description"> to /services and verify it renders in the page <head>.
No structured data — no Dentist or LocalBusiness schema anywhere
No application/ld+json script on any of the 3 crawled pages. There is no machine-readable statement of the practice name, addresses, phone numbers, or opening hours.
Why it matters
Local search and AI assistants answering "find a dentist near me" lean on LocalBusiness/Dentist structured data. Without it, Marlow Dental is invisible to the systems that route local patients — the exact channel a two-location practice lives on.
Recommended fix
Add Dentist JSON-LD to the homepage with name, url, both location addresses, phone numbers, and openingHoursSpecification for each.
Dev taskEmbed an application/ld+json script with the Dentist schema (both locations) in the homepage <head>.
The site never says where the practice is
No city, neighborhood, or street address appears in the crawlable text of any page. The /contact page says only "Conveniently located to serve you better."
Why it matters
Dentistry is bought locally, and neither search engines nor AI assistants can place a practice that never states a location. A practice with two physical locations is currently indistinguishable from a practice anywhere on earth.
Recommended fix
Name both locations with full street addresses in the footer of every page and on /contact, and mention the cities in the homepage and services copy.
Dev taskAdd both location addresses (with phone numbers and hours) to the shared footer and the /contact page.
The homepage welcome copy is the page builder's untouched output
The section under the hero reads: "Welcome to the future of dentistry, where cutting-edge technology meets a seamless experience designed around you." It says nothing specific about Marlow Dental — no doctors, no locations, no services, no reason to choose this practice.
Why it matters
Patients researching a new dentist are deciding whether to trust strangers with their health. Copy that could describe any practice on the internet gives them nothing to decide with — and reads as generated, which quietly undermines the pages around it.
Recommended fix
Rewrite the welcome section around what is true and specific: the practitioners, the two locations, the services patients actually book, and how the practice handles anxious patients.
Dev taskReplace the homepage welcome section copy once the practice approves the rewrite.
Service descriptions are template text with nothing about this practice
Every service blurb on /services is a one-line template ("Restore damaged teeth with durable, natural-looking crowns."). Nothing mentions Marlow's locations, hours, equipment, practitioners, or how to book each treatment — the details a patient comparing practices actually needs.
Why it matters
A services page that describes dentistry in general instead of this practice in particular converts nobody: the patient still doesn't know who does the work, where, or when they could be seen.
Recommended fix
Expand each service with practice-specific facts: which practitioner provides it, at which location, typical visit length, and how soon a new patient can usually be seen.
Dev taskRewrite the four service blurbs on /services with practice-approved specifics.
The appointment form submits nowhere
<form action="#" method="post"> — captured from /contact. There is no submit handler, no endpoint, and no success or error state in the markup.
Why it matters
Every appointment request made through this form vanishes: the patient believes they contacted the practice, and the practice never hears about it. That is missed appointments and quietly angry patients from day one.
Recommended fix
Wire the form to a real endpoint that delivers to the practice's front desk, add visible success and error states, and send a live test submission before launch.
Dev taskPoint the appointment form at a working handler, add success/error states, and confirm delivery with a real test submission in production.
Every homepage call to action is "Learn More"
The label "Learn More" appears on 3 buttons on / — the hero, the services section, and the closing banner. None of them asks the visitor to book, call, or contact the practice.
Why it matters
"Learn More" defers the decision the page should be asking for. A dental homepage has exactly one job — get an appointment requested — and no button on this one asks for it.
Recommended fix
Make the primary CTA "Request an appointment" (linked to the working form) in the hero and closing banner; keep one "See our services" link for the middle of the page.
Dev taskReplace the three Learn More buttons: two become Request an appointment → /contact, one becomes See our services → /services.
Health-outcome claims that may need review before publication
Two homepage claims promise treatment outcomes: "Pain-free treatment — guaranteed." (hero) and "Instant results with our whitening treatments." Dental advertising rules in many jurisdictions restrict guaranteed-outcome claims.
Why it matters
This project is marked compliance-sensitive: it advertises healthcare. Outcome guarantees in health advertising are the specific category of claim that professional boards and advertising regulators examine, and the practice — not the agency — carries that exposure.
Recommended fix
Rework both claims to describe the practice's approach rather than promise results, and have the practice's advisor confirm the final wording. Needs human review — outcome claims in healthcare advertising are jurisdiction-specific. Not legal advice.
Dev taskReplace both outcome claims with reviewed wording approved by the practice.
§ 05
Medium-priority fixes
Worth fixing in the launch week. Individually small, collectively the difference between shipped and polished.
The site claims "5,000+ happy patients" but shows no reviews or credentials
The homepage says "Join 5,000+ happy patients who trust us with their smiles", yet no page shows a single review, rating source, practitioner credential, or professional affiliation to support it.
Why it matters
Patients choosing a dentist check for proof — reviews, credentials, familiar accreditation. A big round number with nothing behind it reads as decoration, and its presence makes the absence of real proof more conspicuous.
Recommended fix
Either back the number with its source (e.g. a link to the practice's Google reviews) or replace it with proof the practice actually has: review snippets with permission, practitioner credentials, and years in practice.
Dev taskAdd a reviews/credentials section to the homepage once the practice supplies verifiable material; remove the unsupported patient count if no source exists.
The homepage title tag is reused verbatim on /services
<title>Marlow Dental | Gentle Modern Dentistry</title> — identical on / and /services. The builder's site-wide default title was never overridden per page.
Why it matters
Duplicate titles make pages compete with each other in search results, and the services page — the one that should rank for treatment searches — never says what it is.
Recommended fix
Give each page a unique, descriptive title. Keep the current one for /, and retitle /services along the lines of "Dental Services — Cleanings, Crowns & Whitening | Marlow Dental".
Dev taskSet per-page <title> values for /services and /contact instead of the builder default.
No og:image on any page
No page defines og:image. Shares on Facebook, WhatsApp, and iMessage will render a bare link or a scraped fragment instead of a preview card.
Why it matters
Dental practices get shared exactly this way — a parent forwarding the link to a family group chat. A blank preview card wastes the practice's most personal referral channel.
Recommended fix
Create a 1200×630 branded OG image and set og:image plus og:image:alt sitewide.
Dev taskAdd og:image, og:image:width, og:image:height, and og:image:alt meta tags to the shared head component.
Smile gallery images have no alt text
<img src="/images/before-after-jane-mercer-crown.jpg"> and <img src="/images/before-after-r-okafor-veneers.jpg"> carry no alt attribute; the homepage hero image (hero-smile-final-v3.png) is also missing one.
Why it matters
Screen reader users hear raw filenames read aloud — which, given the current filenames, would also read out patient names. Alt text is a baseline accessibility requirement and takes minutes to add.
Recommended fix
Write descriptive alt text for the gallery and hero images (without patient names), and use alt="" for purely decorative graphics.
Dev taskAdd alt attributes to the two gallery images and the homepage hero image.
The hero image is a 4.8 MB uncompressed PNG
/images/hero-smile-final-v3.png transfers 4.8 MB uncompressed — the largest single asset on the site, loaded above the fold on every visit to /.
Why it matters
Patients often find a dentist from a phone on cellular data. A nearly 5 MB hero means the first thing they experience is a blank page — several seconds of it on a slow connection.
Recommended fix
Export the hero as a compressed WebP or AVIF at the actual display size (target under 200 KB) and serve responsive sizes via srcset.
Dev taskRe-export hero-smile-final-v3.png as an optimized WebP with srcset variants; replace the reference on /.
§ 06
Low priority & enhancements
Quick wins and small levers. None of these blocks anything.
No practitioner is named anywhere on the site
Across all 3 crawled pages, no dentist or hygienist is named, and there is no team or about section — the practice is anonymous.
Why it matters
Patients are choosing a person, not just a practice. Names, photos, and one line of background each are among the cheapest trust signals a healthcare site can add.
Recommended fix
Add a short team section with each practitioner's name, role, and credentials, linked from the homepage.
Dev taskAdd a practitioners section (names, roles, credentials) to the homepage or a new /team page.
No sitemap.xml
GET /sitemap.xml returns the 404 page, and robots.txt does not reference a sitemap.
Why it matters
Three pages will get crawled eventually without one, but a sitemap makes indexing predictable — and it's a fifteen-minute fix.
Recommended fix
Generate a sitemap.xml at build time and reference it from robots.txt.
Dev taskGenerate /sitemap.xml at build time and add a Sitemap: line to robots.txt.
Appointment form inputs have no programmatic labels
The /contact form fields use placeholder text only — e.g. <input type="text" placeholder="Describe your symptoms"> with no <label> element or aria-label.
Why it matters
Placeholders disappear on focus and are not reliably announced by screen readers, so assistive-technology users get an unlabeled form asking about their health.
Recommended fix
Add a visible <label> for each form field, associated via for/id.
Dev taskAdd associated <label> elements to all six appointment form fields on /contact.
The same paragraph appears verbatim on / and /services
"At Marlow Dental, we combine state-of-the-art technology with a caring touch to deliver exceptional results for every smile." — identical on / and /services.
Why it matters
Verbatim repetition across pages is a tell of generated copy, and it wastes a slot where the services page could say something the homepage doesn't.
Recommended fix
Keep the paragraph in one place and replace the other instance with page-specific copy.
Dev taskReplace the duplicated paragraph on /services with copy specific to the services offered.
§ 07
Copy rewrites
Suggested replacements for the riskiest copy — ready to paste, ready to edit.
Homepage headline guarantees a treatment outcome
homepageAP-2026-2952-01Original
“<h1>Pain-free treatment — guaranteed.</h1> — captured from / . No page describes what the guarantee covers, and no terms, methodology, or s…”
Suggested
“Modern techniques focused on comfort — ask us what to expect for your procedure.”
The homepage welcome copy is the page builder's untouched output
homepageAP-2026-2952-08Original
“Welcome to the future of dentistry, where cutting-edge technology meets a seamless experience designed around you.”
Suggested
“Marlow Dental has cared for families at our two neighborhood locations for over a decade. Same-week appointments, clear treatment plans, and a team that explains every step before it happens.”
Health-outcome claims that may need review before publication
homepageAP-2026-2952-12Original
“Pain-free treatment — guaranteed.”
Suggested
“Whitening results you can see, with a plan tailored to your teeth — we'll walk you through realistic expectations at your consultation.”
§ 08
Developer task list
Every fix as a hand-off-ready task, ordered by severity. IDs match the findings above.
- AP-2026-2952-01Replace the hero H1 on / and remove all "guaranteed" language sitewide.
- AP-2026-2952-02Set the nav CTA href to /contact in the shared header; verify on /, /services, and /contact.
- AP-2026-2952-03Rename both before/after images to neutral slugs, update references on / and /services, and purge the old URLs from any CDN cache.
- AP-2026-2952-04Create /privacy with reviewed policy content and link it in the shared footer and beside the appointment form.
- AP-2026-2952-05Add a unique <meta name="description"> to /services and verify it renders in the page <head>.
- AP-2026-2952-06Embed an application/ld+json script with the Dentist schema (both locations) in the homepage <head>.
- AP-2026-2952-07Add both location addresses (with phone numbers and hours) to the shared footer and the /contact page.
- AP-2026-2952-08Replace the homepage welcome section copy once the practice approves the rewrite.
- AP-2026-2952-09Rewrite the four service blurbs on /services with practice-approved specifics.
- AP-2026-2952-10Point the appointment form at a working handler, add success/error states, and confirm delivery with a real test submission in production.
- AP-2026-2952-11Replace the three Learn More buttons: two become Request an appointment → /contact, one becomes See our services → /services.
- AP-2026-2952-12Replace both outcome claims with reviewed wording approved by the practice.
- AP-2026-2952-13Add a reviews/credentials section to the homepage once the practice supplies verifiable material; remove the unsupported patient count if no source exists.
- AP-2026-2952-14Set per-page <title> values for /services and /contact instead of the builder default.
- AP-2026-2952-15Add og:image, og:image:width, og:image:height, and og:image:alt meta tags to the shared head component.
- AP-2026-2952-16Add alt attributes to the two gallery images and the homepage hero image.
- AP-2026-2952-17Re-export hero-smile-final-v3.png as an optimized WebP with srcset variants; replace the reference on /.
- AP-2026-2952-18Add a practitioners section (names, roles, credentials) to the homepage or a new /team page.
- AP-2026-2952-19Generate /sitemap.xml at build time and add a Sitemap: line to robots.txt.
- AP-2026-2952-20Add associated <label> elements to all six appointment form fields on /contact.
- AP-2026-2952-21Replace the duplicated paragraph on /services with copy specific to the services offered.
§ 09
Claude / Fable fix prompt
Paste this into Claude or Fable and let it work through the list.
You are improving the launch readiness of https://marlow-dental.example — the website of Marlow Dental, a two-location dental practice. The site was rebuilt with an AI page builder and shipped with the generated copy untouched. An AgencyProof audit scored the site 71/100 (fixes required before launch). Work through the issues below in order, without changing the site's visual design, layout, or routes.
Ground rules:
- This is a healthcare site. Never write outcome guarantees ("pain-free", "instant results", "guaranteed"). Where the audit flags compliance-sensitive wording, rewrite conservatively and leave a TODO for human review — do not provide legal advice.
- Never invent statistics, patient names, testimonials, reviews, or credentials. If a claim needs evidence the practice hasn't supplied, soften the claim instead of manufacturing proof.
- Write plainly and specifically. Banned phrases: "cutting-edge", "seamless", "state-of-the-art", "the future of dentistry", "designed around you", "exceptional results".
ISSUES TO FIX (in priority order):
1. [CRITICAL / trust] The hero H1 is "Pain-free treatment — guaranteed." with nothing behind it.
→ Replace with: "Modern techniques focused on comfort — ask us what to expect for your procedure."
→ Remove all remaining "guaranteed" language sitewide.
2. [CRITICAL / technical] The nav CTA is <a class="nav-cta" href="#">Book an appointment</a> on all 3 pages.
→ Point it at /contact and verify the link on every page.
3. [CRITICAL / privacy] Gallery images are published as before-after-jane-mercer-crown.jpg and before-after-r-okafor-veneers.jpg.
→ Rename both to neutral slugs (smile-gallery-01.jpg, smile-gallery-02.jpg), update references on / and /services, and leave a TODO to confirm written patient consent covers web publication.
4. [HIGH / privacy] The /contact form collects phone numbers and symptom descriptions with no privacy policy anywhere.
→ Create /privacy covering what the form collects, storage, and deletion requests; link it from the shared footer and beside the form.
5. [HIGH / seo] /services has no meta description.
→ Add: <meta name="description" content="Cleanings, crowns, and whitening at Marlow Dental's two locations. Gentle care for the whole family — book online or call.">
6. [HIGH / ai_search] No structured data anywhere.
→ Add Dentist JSON-LD to the homepage <head> with name, url, both location addresses, phone numbers, and openingHoursSpecification.
7. [HIGH / ai_search] No city or address appears in crawlable text on any page.
→ Add both location addresses (with phones and hours) to the shared footer and /contact; mention the cities in the homepage and services copy. Leave a TODO for the practice to supply the exact addresses.
8. [HIGH / content] The homepage welcome copy is generated filler ("Welcome to the future of dentistry, where cutting-edge technology meets a seamless experience designed around you.").
→ Replace with: "Marlow Dental has cared for families at our two neighborhood locations for over a decade. Same-week appointments, clear treatment plans, and a team that explains every step before it happens." Adjust facts the practice corrects.
9. [HIGH / content] /services blurbs are one-line templates with nothing about this practice.
→ Expand each service with practice-specific facts (practitioner, location, typical visit length); leave TODOs where facts are needed from the practice.
10. [HIGH / conversion] The appointment form posts to "#" with no handler.
→ Wire it to a real endpoint with success and error states; leave a TODO to send a live test submission in production.
11. [HIGH / conversion] All three homepage CTAs say "Learn More".
→ Hero and closing banner become "Request an appointment" → /contact; the middle one becomes "See our services" → /services.
12. [HIGH / compliance] "Pain-free treatment — guaranteed." and "Instant results with our whitening treatments." are health-outcome claims.
→ Rewrite both conservatively (see issues 1 and the whitening line below) and mark them for human review. Whitening suggestion: "Whitening results you can see, with a plan tailored to your teeth — we'll walk you through realistic expectations at your consultation."
13. [MEDIUM / trust] "Join 5,000+ happy patients" appears with no reviews, ratings source, or credentials anywhere.
→ Remove the number unless the practice can source it; leave a TODO to add a reviews/credentials section with verifiable material.
14. [MEDIUM / seo] The homepage <title> is duplicated verbatim on /services.
→ Retitle /services: "Dental Services — Cleanings, Crowns & Whitening | Marlow Dental".
15. [MEDIUM / seo] No og:image on any page.
→ Add a 1200×630 branded OG image plus og:image:alt to the shared head.
16. [MEDIUM / accessibility] The gallery images and homepage hero have no alt text.
→ Add descriptive alt text (never patient names); alt="" for decorative graphics.
17. [MEDIUM / performance] hero-smile-final-v3.png is 4.8 MB uncompressed.
→ Re-export as WebP at display size (target under 200 KB) with srcset variants.
18. [LOW / trust] No practitioner is named anywhere on the site.
→ Add a team section scaffold with TODOs for names, roles, and credentials from the practice.
19. [LOW / technical] No sitemap.xml.
→ Generate sitemap.xml at build time and reference it from robots.txt.
20. [LOW / accessibility] The /contact form fields have placeholders but no labels.
→ Add a visible <label> for each field, associated via for/id.
21. [LOW / content] "At Marlow Dental, we combine state-of-the-art technology with a caring touch to deliver exceptional results for every smile." appears verbatim on / and /services.
→ Keep one instance rewritten per the banned-phrase list; replace the other with page-specific copy.
When you are done, list every file you changed and the issue numbers each change resolves.agencyproof — fix prompt
You are improving the launch readiness of https://marlow-dental.example — the website of Marlow Dental, a two-location dental practice. The site was rebuilt with an AI page builder and shipped with the generated copy untouched. An AgencyProof audit scored the site 71/100 (fixes required before launch). Work through the issues below in order, without changing the site's visual design, layout, or routes.
Ground rules:
- This is a healthcare site. Never write outcome guarantees ("pain-free", "instant results", "guaranteed"). Where the audit flags compliance-sensitive wording, rewrite conservatively and leave a TODO for human review — do not provide legal advice.
- Never invent statistics, patient names, testimonials, reviews, or credentials. If a claim needs evidence the practice hasn't supplied, soften the claim instead of manufacturing proof.
- Write plainly and specifically. Banned phrases: "cutting-edge", "seamless", "state-of-the-art", "the future of dentistry", "designed around you", "exceptional results".
ISSUES TO FIX (in priority order):
1. [CRITICAL / trust] The hero H1 is "Pain-free treatment — guaranteed." with nothing behind it.
→ Replace with: "Modern techniques focused on comfort — ask us what to expect for your procedure."
→ Remove all remaining "guaranteed" language sitewide.
2. [CRITICAL / technical] The nav CTA is <a class="nav-cta" href="#">Book an appointment</a> on all 3 pages.
→ Point it at /contact and verify the link on every page.
3. [CRITICAL / privacy] Gallery images are published as before-after-jane-mercer-crown.jpg and before-after-r-okafor-veneers.jpg.
→ Rename both to neutral slugs (smile-gallery-01.jpg, smile-gallery-02.jpg), update references on / and /services, and leave a TODO to confirm written patient consent covers web publication.
4. [HIGH / privacy] The /contact form collects phone numbers and symptom descriptions with no privacy policy anywhere.
→ Create /privacy covering what the form collects, storage, and deletion requests; link it from the shared footer and beside the form.
5. [HIGH / seo] /services has no meta description.
→ Add: <meta name="description" content="Cleanings, crowns, and whitening at Marlow Dental's two locations. Gentle care for the whole family — book online or call.">
6. [HIGH / ai_search] No structured data anywhere.
→ Add Dentist JSON-LD to the homepage <head> with name, url, both location addresses, phone numbers, and openingHoursSpecification.
7. [HIGH / ai_search] No city or address appears in crawlable text on any page.
→ Add both location addresses (with phones and hours) to the shared footer and /contact; mention the cities in the homepage and services copy. Leave a TODO for the practice to supply the exact addresses.
8. [HIGH / content] The homepage welcome copy is generated filler ("Welcome to the future of dentistry, where cutting-edge technology meets a seamless experience designed around you.").
→ Replace with: "Marlow Dental has cared for families at our two neighborhood locations for over a decade. Same-week appointments, clear treatment plans, and a team that explains every step before it happens." Adjust facts the practice corrects.
9. [HIGH / content] /services blurbs are one-line templates with nothing about this practice.
→ Expand each service with practice-specific facts (practitioner, location, typical visit length); leave TODOs where facts are needed from the practice.
10. [HIGH / conversion] The appointment form posts to "#" with no handler.
→ Wire it to a real endpoint with success and error states; leave a TODO to send a live test submission in production.
11. [HIGH / conversion] All three homepage CTAs say "Learn More".
→ Hero and closing banner become "Request an appointment" → /contact; the middle one becomes "See our services" → /services.
12. [HIGH / compliance] "Pain-free treatment — guaranteed." and "Instant results with our whitening treatments." are health-outcome claims.
→ Rewrite both conservatively (see issues 1 and the whitening line below) and mark them for human review. Whitening suggestion: "Whitening results you can see, with a plan tailored to your teeth — we'll walk you through realistic expectations at your consultation."
13. [MEDIUM / trust] "Join 5,000+ happy patients" appears with no reviews, ratings source, or credentials anywhere.
→ Remove the number unless the practice can source it; leave a TODO to add a reviews/credentials section with verifiable material.
14. [MEDIUM / seo] The homepage <title> is duplicated verbatim on /services.
→ Retitle /services: "Dental Services — Cleanings, Crowns & Whitening | Marlow Dental".
15. [MEDIUM / seo] No og:image on any page.
→ Add a 1200×630 branded OG image plus og:image:alt to the shared head.
16. [MEDIUM / accessibility] The gallery images and homepage hero have no alt text.
→ Add descriptive alt text (never patient names); alt="" for decorative graphics.
17. [MEDIUM / performance] hero-smile-final-v3.png is 4.8 MB uncompressed.
→ Re-export as WebP at display size (target under 200 KB) with srcset variants.
18. [LOW / trust] No practitioner is named anywhere on the site.
→ Add a team section scaffold with TODOs for names, roles, and credentials from the practice.
19. [LOW / technical] No sitemap.xml.
→ Generate sitemap.xml at build time and reference it from robots.txt.
20. [LOW / accessibility] The /contact form fields have placeholders but no labels.
→ Add a visible <label> for each field, associated via for/id.
21. [LOW / content] "At Marlow Dental, we combine state-of-the-art technology with a caring touch to deliver exceptional results for every smile." appears verbatim on / and /services.
→ Keep one instance rewritten per the banned-phrase list; replace the other with page-specific copy.
When you are done, list every file you changed and the issue numbers each change resolves.§ 10
For your client
A calm version of the findings, written to be forwarded as-is.
We ran the new Marlow Dental website through a full pre-launch inspection covering trust, findability, privacy, accessibility, and technical quality. Overall the build is solid, and most of what we found is quick to fix — but three items must be resolved before the site goes live. First, the booking button doesn't lead anywhere yet, and the appointment form doesn't deliver requests — we'll wire both up and test them end to end. Second, the before/after gallery photos currently include patient names in the image web addresses, which we'll correct immediately and confirm consent covers web use. Third, the headline promises guaranteed pain-free treatment — we'll adjust the wording so every claim on the site is one the practice can stand behind. We've also lined up improvements to how the practice appears in local search and in link previews. None of this changes the launch plan; we'll confirm each item as it's completed and re-run the inspection.
Prepared by Juniper Lane Studio · hello@juniperlane.example