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.
Before/After Gallery
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).