All projects
Website + SEO + Lead Capture · Ireland

O'Neill
Motorcycle Training

A business that went motorcycle-only, needed a name that matched, and leads that didn't go through a third party. We rebuilt it from scratch.

88
SEO score, up from 68. Grade jumped from C to B+.
33
Pages rebuilt with schema, social tags, and lead forms.
0
Third-party lead services. Every lead stays on John's infrastructure.

The brief: one name, one service

John O'Neill had been running motorcycle training in Meath for years under the name "Meath Motorcycle Academy." The business had evolved. He no longer offered car lessons or EDT. The site still said he did.

The first job was alignment: rename the business to match what it actually is, remove every mention of car training, and redirect the dead URLs so nothing breaks. Thirty-three pages, one clean sweep. The rebrand landed as O'Neill Motorcycle Training, which puts the person behind it front and center rather than hiding behind a generic local name.

SEO: the site was invisible

The site had a site-wide X-Robots-Tag: noindex, nofollow header on every page. Every page. Google was being told not to index any of it. That was the single biggest blocker, and it had probably been there since the site launched.

Once that was cleared, we hardened the nginx config: gzip compression, security headers (HSTS, X-Frame-Options, Referrer-Policy), server tokens off. Then social meta and schema across all 33 pages: Open Graph images, Twitter Cards, Service schema on the course pages, DrivingSchool organisation schema with a stable @id. Score went from 68/C to 88/B+ on the next audit.

Lead capture: no third parties

The original setup used Formspree. Fine for a prototype, not for a real business. Every lead was passing through a service John had no control over. We replaced it with an endpoint running on the same VPS, behind the same domain.

The form sends a POST /api/lead to a Node/Express microservice. Every submission is written to disk before the email goes out. If the SMTP call fails, the lead is not lost. Anti-spam is handled with a honeypot field and per-IP rate limiting. Traefik routes the /api/lead path to the forms container while everything else goes to nginx. Same-origin, no CORS, no extra certificate.

Emails built for action

Two emails go out on every submission. The lead notification to John shows the phone number in large type as the first thing he sees, with a single "Call now" button. Motive, message, time, and page of origin below. The goal is to get John on the phone in under ten seconds, not to make him read.

The client confirmation is warmer: a "Thanks, {name}" opener, a clear "What happens next" sequence, and buttons for both WhatsApp and phone. Both emails use the brand palette — indigo and the yellow road-marking stripe — with table-based HTML for full compatibility across Gmail, Apple Mail, Outlook, and mobile.

Visit oneillmotorcycletraining.ie
Next project
Chrono Barcelona
Luxury Watches, Online
View project →