Keeping every old link alive
Problem. The clinic already had a website, and moving URLs would break bookmarks and Google rankings.
Solution. 16 permanent redirects map the old pages (menu, appointments, home variants) to the new treatment and contact pages.
Clean blog URLs from WordPress
Problem. WordPress categories needed to appear as friendly paths on the site.
Solution. Rewrites map each category prefix to the blog listing and each post to the article page, while the URL stays as typed.
A slow or unreachable CMS
Problem. A blog that depends on an external API must not break the page.
Solution. Requests are retried and cached for a minute with Next.js revalidation, so most page loads never hit WordPress.
Lost leads
Problem. Email servers fail, and a failed email means a lost enquiry.
Solution. The database save comes first and each record carries a status, so the team can always find and follow up.
Beautiful but fast
Problem. Heavy video, images and animation can ruin performance.
Solution. Assets are cached for 30 days, optimized images for 30 days, and an optional CDN origin is supported for large media.
Bots on public forms
Problem. Open forms attract spam and abuse.
Solution. Layered defenses: origin check, honeypot and rate limiting, with a note that Cloudflare can sit in front for more.