Building a Dental Clinic Website Step by Step

How we built the DentPlus demo site — service pages for implants and whitening, doctor profiles, appointment booking, before/after gallery, and dental-specific schema markup.

Building a Dental Clinic Website Step by Step

How we built the DentPlus demo site — service pages for implants and whitening, doctor profiles, appointment booking, before/after gallery, and dental-specific schema markup.

The the dental theme Theme Origin Story

Dental clinic websites have a specific set of requirements: local SEO for neighborhood searches, before/after photo galleries, appointment booking without a phone call, and schema markup that surfaces opening hours in Google. This guide covers building exactly that with JekCMS.

Service Pages

Dental clinics offer 8-12 core services. Each service gets its own page with detailed description, procedure steps, pricing range, and FAQ. We use the JekCMS services table with a custom template that renders each service as a full page:

// services/[slug].php template
$service = $db->fetch(
    "SELECT * FROM services WHERE slug = ? AND status = 'active'",
    [$slug]
);

// Service-specific structured data
$schema = [
    '@type' => 'MedicalProcedure',
    'name' => $service['title'],
    'description' => strip_tags($service['description']),
    'howPerformed' => $service['procedure_steps'] ?? '',
    'preparation' => $service['preparation'] ?? '',
];

Services include: Dental Implants, Teeth Whitening, Orthodontics, Root Canal, Dental Crowns, Veneers, Pediatric Dentistry, Emergency Care. Each has a unique icon (SVG), hero image, and detailed content that the clinic can edit from the admin panel.

Doctor Profiles

Doctor profiles use the team table with extra fields for credentials, specializations, and education. Each doctor has a dedicated page showing their photo, bio, qualifications, and available appointment slots:

// team table extended fields
ALTER TABLE team ADD COLUMN credentials VARCHAR(255); -- e.g., "DDS, PhD"
ALTER TABLE team ADD COLUMN specialization VARCHAR(255);
ALTER TABLE team ADD COLUMN education TEXT;
ALTER TABLE team ADD COLUMN languages VARCHAR(255); -- "Turkish, English, German"

The doctor profile page includes a Physician schema markup that helps Google display doctor information in search results.

Appointment Booking

The appointment form extends the contact form with date/time selection, service selection, and doctor preference. The form uses vanilla JavaScript for the date picker (no jQuery dependency):

// Custom date picker - no external libraries
const picker = document.querySelector('.date-picker');
const today = new Date();
const maxDate = new Date(today.getTime() + 30 * 24 * 60 * 60 * 1000);

// Disable weekends and past dates
function isAvailable(date) {
    const day = date.getDay();
    return day !== 0 && date >= today && date <= maxDate;
}

Time slots are generated based on the clinic's working hours (configurable in admin settings). Booked slots are checked against existing appointments to prevent double-booking.

The before/after gallery is the most conversion-driving feature. We use a slider component that lets visitors drag to compare the before and after images of actual treatments. The gallery uses the standard JekCMS gallery table with a before_image and after_image field pair.

Patient consent is handled outside the CMS — the clinic is responsible for getting written permission before uploading photos. We added a notice in the admin panel reminding them of this obligation.

Local SEO: Dental Schema

For dental clinics, structured data is critical for appearing in local search results. We implement three schema types:

  • Dentist: The main organization schema with name, address, phone, opening hours, insurance accepted
  • MedicalProcedure: For each service page (implants, whitening, etc.)
  • Physician: For each doctor profile

After deploying the schema, our first the dental theme client saw a 280% increase in Google Maps impressions within 3 weeks. The knowledge panel started showing their opening hours, phone number, and patient reviews directly in search results.

Results

The the dental theme theme has been deployed to 4 dental clinics so far. Average results after 60 days: PageSpeed Mobile 89, Google Maps impressions up 200-300%, online appointment bookings 30-50 per month (from zero), phone calls from Google decreased 40% (patients prefer online booking).

Order Today

One-time payment, lifetime access. Setup in 30 minutes.

View Pricing
  • Setup and live in 30 minutes
  • 14+ professional themes
  • n8n automation integration
  • Automatic SEO — Sitemap, Schema.org
  • PayPal & iyzico payment support

Be the first to know

New features, release notes & CMS guides — a couple of emails a month, no spam.