---
title: "Choosing Online Booking for a Small Clinic"
description: "How a small Ontario clinic should add online booking to its website: link or embed your booking system, keep health details off the site, track it in GA4."
category: "Clinics"
question: "What's the best way to add online booking to a clinic website?"
datePublished: 2026-10-15
dateModified: 2026-10-15
readingMinutes: 5
status: published
author: "UXPro Design Studio"
authorType: "Organization"
editorialProcess: "Prepared with AI assistance and checked against the listed sources."
authorUrl: https://uxpro.ca/about
canonical: https://uxpro.ca/blog/clinic-online-booking
image: https://uxpro.ca/covers/clinic-online-booking.webp
license: "Quote freely with a link to the canonical URL."
---

# Choosing Online Booking for a Small Clinic

## Key facts

| Fact | Value |
|---|---|
| Recommended approach | Link to or embed your practice-management system's own booking page; don't build a separate scheduler |
| What the vendors provide | Jane: Book Online button codes and plain URLs per clinic, practitioner and location. Cliniko: an embed code, or a button that links (vendor docs, 15 Oct 2026) |
| Where health information lives | In the booking or EMR system, not in a website form |
| What to track | The click on your Book online button, marked as a GA4 key event |

**Use the booking module of the practice-management system you already run, such as Jane or Cliniko, and link to it or embed it from your website rather than building a separate scheduler. That keeps one calendar and one patient record, and health information never has to pass through your marketing site. For most small clinics, a Book online button that links out is the right default.**

## Link, embed or custom: which should a clinic choose?

There are three ways to put booking on a clinic website. As of 15 October 2026:

| Approach | What happens | Speed on your site | When it fits |
|---|---|---|---|
| Link or button | The patient goes to your booking provider's hosted page | Nothing from the provider loads until the click | The default for most small clinics |
| Embedded booking | The provider's booking page displays inside your page | Loads a second application's code on that page | A dedicated Book page on a site that is already fast |
| Custom scheduler | Your own booking logic, synced to your clinic system | Depends on the build | Rarely worth it; you own security for appointment data |

Both vendors we checked document the first two. [Jane's guide](https://jane.app/guide/adding-book-online-buttons-to-your-website) provides Book Online button codes for the clinic's main booking page, for each practitioner and, in multi-location clinics, for each location, plus a plain URL for website builders that do not accept HTML. Cliniko's [help article](https://help.cliniko.com/en/articles/1023839-embed-online-bookings-in-your-website) gives administrators an embed code that displays bookings on your own site, and its [product page](https://www.cliniko.com/features/appointments/online-bookings/) also describes a bookings button that links out. These are vendor docs; check your own system's settings for what it offers.

A custom scheduler means storing appointment data yourself, keeping it in sync with your clinic system, and securing something that touches health information. Unless your system cannot handle a scheduling rule you genuinely need, it is cost and risk with little upside.

## Why keep booking off the website's own forms?

A "request an appointment" form on the website collects the same details your booking system does, in a second place. It also tempts patients to type a reason for the visit, which is personal health information. [PHIPA](/glossary#phipa) [section 30](https://www.ontario.ca/laws/statute/04p03) bars a custodian from collecting more personal health information than is reasonably necessary, and a booking request form rarely needs any.

When a web vendor or form tool does handle health information for you, it is either your agent or a supplier of electronic services, and the IPC's [PHIPA FAQ](https://www.ipc.on.ca/sites/default/files/legacy/2015/11/phipa-faq.pdf) explains that either role comes with restrictions. Your booking provider is already in one of those roles; ask it for its privacy and security terms. Our guide to [PHIPA and clinic website forms](/blog/phipa-clinic-website-forms) covers which fields are safe.

## What does an embedded widget cost in speed?

An embed loads code you do not control. [web.dev](https://web.dev/articles/iframe-lazy-loading) notes that "users still pay the cost of downloading data and costly JavaScript for each frame, even if they don't scroll to it." If the provider ships an update, your page can change with nothing changed on your side.

If you want the embedded experience, two steps keep the cost down:

1. **Lazy-load it.** If the embed is an iframe, the `loading="lazy"` attribute defers it until the patient scrolls near it; web.dev reports it is supported in all major browsers. Or load it only when the patient taps "Show booking calendar".
2. **Test the specific embed.** Run the Book page through PageSpeed Insights with and without it. If the embed drags the mobile result down, use a link.

## Where should the booking button go?

Not only on the Contact page. Put it:

- In the site header, visible without scrolling, on every page.
- At the end of every practitioner bio and service page, where a patient decides to book. Jane's per-practitioner codes let each bio open that practitioner's calendar.
- On mobile, as a persistent tap target, such as a thin bar pinned to the bottom of the screen.

We used the same logic for a booking-led local business outside health care, [Orient Barber Shop](/work/orient-barber-shop) in Kitchener: booking was on every page, not one. The shop reports 400% more online bookings in the two months after launch and 70% fewer no-shows. Their figures, their comparison; we did not audit them. A barbershop is not a clinic, so treat it as an analogy for button placement, not a forecast.

## What should booking reminders say?

Reminders and confirmations come from your booking system, so check what it sends by default. The IPC's [email fact sheet](https://www.ipc.on.ca/sites/default/files/legacy/2016/09/Health-Fact-Sheet-Communicating-PHI-by-Email-FINAL.pdf) says custodians must notify patients of a written email policy and get their consent before using unencrypted email. It gives limiting unencrypted email to appointment scheduling as one example, and asks custodians to send only the minimum information needed. A reminder with the time, date and location does the job; the reason for the visit does not belong in it.

## How do you track bookings in GA4?

The confirmation usually happens on the provider's domain or inside an embed, where your GA4 tag does not run. Two practical fixes:

1. **Track the click.** With [enhanced measurement](https://support.google.com/analytics/answer/9216061), GA4 records a `click` event when someone follows a link to another domain, with the link URL and domain as parameters. Create an event for clicks on your Book online button and [mark it as a key event](https://support.google.com/analytics/answer/13128484). It measures booking intent, not completed bookings, and tells you which pages and practitioners drive it.
2. **Ask your provider about completion tracking.** Some systems can report completed bookings to analytics or ad platforms. It is worth asking if you run paid ads to the clinic site.

Review the numbers monthly. A button that quietly breaks after a provider update shows up as a drop in the key event.

## FAQ

### Do booking widgets slow my site?

An embedded booking page loads another application's code inside yours, and web.dev notes that users pay the download and JavaScript cost of each frame even if they never scroll to it. A plain link loads nothing from the booking provider until the patient clicks. If you embed, put it on the Book page and lazy-load it.

### Can I track bookings as conversions?

Track the click, not the confirmation. When the button links to your booking provider's domain, GA4's enhanced measurement records an outbound click event; mark a click event on your Book online button as a key event. The confirmation usually happens on the provider's site, where your GA4 tag does not run.

### Can booking reminders go by email?

The IPC's email fact sheet says custodians must notify patients of a written email policy and get consent before using unencrypted email, and gives limiting it to appointment scheduling as an example. Keep reminders to the time, date and location, and check what your booking system sends by default.

### What about phone-first patients?

Keep the phone number in the header and beside every booking button, large enough to tap one-handed. Online booking should add a channel, not replace the one that already works for your patients.

## Next step

If your booking button is buried or slow, [request a free Redline](/redline): we mark up your homepage by hand, with what to cut, what to add, and why. For what a clinic site needs beyond booking, start with our [clinic websites page](/industries/clinics), and for the budget, see [what a website costs in Ontario](/blog/website-cost-ontario).

*Reviewed for accuracy against the cited primary sources on 15 October 2026. General information, not legal advice.*

## Sources

- [Adding Book Online buttons to your website (vendor docs)](https://jane.app/guide/adding-book-online-buttons-to-your-website) (accessed 2026-10-15)
- [Embed online bookings in your website (vendor docs)](https://help.cliniko.com/en/articles/1023839-embed-online-bookings-in-your-website) (accessed 2026-10-15)
- [Online bookings (vendor product page)](https://www.cliniko.com/features/appointments/online-bookings/) (accessed 2026-10-15)
- [Fact Sheet: Communicating Personal Health Information by Email (September 2016)](https://www.ipc.on.ca/sites/default/files/legacy/2016/09/Health-Fact-Sheet-Communicating-PHI-by-Email-FINAL.pdf) (accessed 2026-10-15)
- [Frequently Asked Questions: Personal Health Information Protection Act (September 2015)](https://www.ipc.on.ca/sites/default/files/legacy/2015/11/phipa-faq.pdf) (accessed 2026-10-15)
- [Personal Health Information Protection Act, 2004 (s. 30)](https://www.ontario.ca/laws/statute/04p03) (accessed 2026-10-15)
- [Browser-level lazy loading for iframes](https://web.dev/articles/iframe-lazy-loading) (accessed 2026-10-15)
- [Enhanced event measurement](https://support.google.com/analytics/answer/9216061) (accessed 2026-10-15)
- [Mark events as key events](https://support.google.com/analytics/answer/13128484) (accessed 2026-10-15)
