A website for a private counselling practice

The Pickle Jar Therapy is a private counselling practice in Canterbury. We built its website in 2025 and rebuilt it in August 2026, so someone searching for help can find the practice, understand what it offers and what it costs, and make an enquiry without being pushed.

Visit the live site

Fig. 01The homepage asks one question and offers three routes, because people arrive in three different states.

What it is

A 22-page static website with a built-in enquiry route, written and engineered together.

Who it is for

Adults, young people and children looking for counselling in Canterbury and across Kent, and counsellors looking for clinical supervision.

What makes it different

The facts about the practice are written once and reused everywhere, and every publish is checked against what the practice actually offers.

Where we started

We began with an SEO audit in August 2026. The previous site was not a wreck. It was built with Next.js, was indexed cleanly and had a well-structured intake form.

The audit was written to stand on its own, and it did not have to end in a rebuild. In this case the findings, and the practice’s plans to add services, made a rebuild the sensible next step.

Old addresses returned errors
Several still appeared in search results.
The contact page was the weakest
It is where enquiries happen. Its largest element took 3.3 to 4.1 seconds to appear on mobile in lab tests, and it carried no structured data.
Enquiries could not be measured
Analytics could not count them.

How it is built

The facts about the practice are written once, and every page reads from them.

Static pages, very little JavaScript
Built with Astro and served as plain HTML from Firebase Hosting. The cookie banner and the enquiry form are included in the little JavaScript there is, and the whole project has two runtime dependencies. Fonts are hosted on the site itself, so a visit makes no requests to font services.
One source of truth
Fees, opening details, team members, session lengths and the details of each service live in typed configuration files, and pages read from them. When a fee or a name changes, it changes once.
Structured data that matches the page
Each page describes itself to Google and AI assistants in structured data, covering the practice, its people, its services and its frequently asked questions. FAQ answers are written once and feed both the visible accordion and the markup, and a check fails the build if they ever differ. Structured data helps systems understand a page. It does not force a result, and we do not claim that it does.
Written for people first
Pages have one clear heading structure and plain-language answers near the top. A short llms.txt file summarises the site for AI tools. We treat this as making important information easier to find, understand and check, with no promise of being cited.
// A simplified example of how the facts are held
supervision: {
  price: 65,
  studentPrice: 45,
  minutes: 60,
  formats: ['by video', 'by phone'],
},
Fig. 02A service page. Each one answers a single question about a single concern, in the practice’s own unhurried voice.

The enquiry route

People reach out when they are ready, and sometimes it is difficult.

The enquiry form is a four-step dialog that begins by asking who the enquiry is for, either an adult for themselves or a parent or carer for a child or young person. The two routes ask different questions and collect different information. The child route asks whether the young person knows the enquiry is being made.

What happens on send
A Cloud Function checks the enquiry, saves it, and sends two emails, a notification to the practice and an acknowledgement to the person who wrote in. A scheduled job deletes enquiries after 90 days.
No CAPTCHA
The form has spam protection that does not rely on CAPTCHAs, so it adds no extra step for the person writing.
Analytics
Switched on only after the visitor accepts it. The events it records never include anything typed into the form, and there are no advertising tags.
Fig. 03Step 1. Choosing an option moves straight on.
Fig. 04The path an enquiry takes. Analytics is optional and only runs after the visitor agrees to it.

Guardrails for a sensitive service

A counselling website has duties that most websites do not. We built three into the publishing process.

Clinical scope is checked on every publish
The practice keeps a list of therapies it does not offer. A check fails the build if any of those terms appear in page copy, metadata or structured data, including in “we don’t offer this” wording that would still place the term on the page. Search demand for a service the practice does not offer is treated as a question for the practice, never as a content brief.
Urgent help is protected from optimisation
The urgent help page exists so that someone in distress can reach a dialable number in one tap. We do not optimise or track it, it never routes into the enquiry form, and every organisation, number and opening hour is checked against that organisation’s own website before it goes live.
Nothing publishes unless the checks pass
The deploy command runs the build, the claims check and a page check (links, headings, FAQ parity and route contracts) first. If any of them fails, nothing is deployed.
Fig. 05Numbers first. Someone reading this page may be having a very bad night.
Fig. 06The publish gate: content is written once, built, checked twice and only then deployed.

Clear about cost

The fees page states what an assessment costs and what ongoing sessions cost, up front, before anyone gets in touch.

Built for phones

Most of the practice’s search clicks come from mobile, so the pages are designed at phone width first.

Fig. 07The fees page shows the assessment and ongoing session fees side by side.
Fig. 08Home, fees and urgent help at phone width.

Measuring after launch

A site is not finished at launch. We keep a dated performance log, and read Search Console and Google Analytics through read-only access to their APIs.

Check indexing before judging a page
A page Google last crawled before launch is being scored on its old content, so its position says nothing about the rebuild.
State the weakest claim the data supports
A position based on a handful of impressions is a direction, not an average. Zero clicks is often correct arithmetic at the position a page ranks in.
Record corrections, do not erase them
Where an early diagnosis proved wrong, the log keeps it and records what evidence overturned it.
Analytics is a lower bound
Analytics events only fire when a visitor accepts cookies, which is the right behaviour, so analytics under-counts enquiries. The practice’s own enquiry record is the true count.

A site that can grow

Websites for practices change. In the weeks after launch the practice began offering clinical supervision to other counsellors, and began seeing children of any age.

A third therapist, who also supervises, and a second supervisor then joined. Each change was a content and configuration edit, with the checks above catching what a person would miss. Adding the third therapist meant finding every place that said “both practitioners” and correcting it.

A map link, not a map embed
The contact page links to Google Maps instead of embedding it. An embed is heavy, loads third-party cookies and would need to sit behind the cookie banner.
A retired URL stays where it is
One service page keeps its older address because the old address carries search history and redirects to it.
Analytics under-counts, deliberately
We would rather count fewer visitors who agreed than more who did not.
Fig. 09The clinical supervision page, added after launch.

“More Than Normal created a clear, welcoming website that truly reflects our values and makes reaching out for support straightforward for our clients. Their structured, thoughtful approach ensured the entire development process was reassuring and clear from start to finish.”

Emma, owner and fellow director with Alex, The Pickle Jar Therapy

What this project included

  • Diagnostic SEO audit and prioritised roadmap
  • Keyword and service planning
  • Copywriting, design and development
  • Structured data, redirects and sitemap
  • Enquiry route with email notifications and data retention
  • Clinical-scope and page checks on every publish
  • Post-launch measurement and a dated performance log

Stack: Astro, Firebase Hosting, Cloud Functions, Firestore, and the Google Search Console and GA4 read-only APIs.

Want a website like this?

Tell us about your business and what you need. We’ll help you find the right starting point.

Discuss your websiteSee website design