Zalm Partners

Digital growth agency · Rotterdam

Tell me more about the project for Endura Coaching.
Endura Coaching

Endura Coaching

Visit website

At first glance the site looked fine. Underneath, very little was.

Coaching · endurance sportNext.js, React
Result
98%technical health score
Google
100PageSpeed on best practices and SEO

Where they stood

Gaëtan coaches endurance athletes and cyclists. His website had been built in Lovable by an external developer, and it was not performing. That was why he got in touch.

The problem was not what you see, but what lies underneath.

Opening the code showed the quality was not there. In 13 places a button sat inside a button: invalid HTML causing an error on every page. The sitemap pointed to a page that did not exist, missed other pages and every blog article, and carried outdated dates. One page's canonical pointed at that same non-existent URL, which actively harms indexing.

Beyond that the site was full of what comes along with a build environment like Lovable: 49 installed interface components of which 6 were used, a long list of unused parts, and an empty test setup. Dead code that makes everything heavier and harder to follow.

The design had issues too: the site was needlessly long on mobile, reviews scrolled horizontally without anyone noticing, and key elements were barely legible.

What we did

Build

The site was rebuilt in Next.js and React, with the appearance deliberately kept identical: Gaëtan had to recognise his own site. What changed sat under the bonnet. We also refreshed and modernised the components, and added more calls to action to increase conversion.

The nested buttons were fixed, the sitemap is now generated automatically from all existing pages and blog articles, and canonicals point at URLs that exist. 43 unused components and the redundant parts were stripped out.

On the design side the friction points were resolved: shorter pages on mobile, a clear swipe indicator on the reviews, more legible trust badges, a clearer services menu, a new footer and a custom video player instead of the browser's default bar. Plus a proper 404 page that does not lose visitors but sends them towards a conversation.

Fill

The site was explicitly prepared for AI search engines. Server-side rendering, so the content sits in the HTML instead of appearing after load: what a crawler cannot see, a language model cannot see either. A robots file that explicitly allows GPTBot, ClaudeBot, PerplexityBot and Google-Extended. An llms.txt with an overview of the site for language models. Structured data for the FAQ and the blog articles. And a short summary at the top of each article, which also sits in the structured data.

We also removed every em dash from the copy. Those count as a well-known signal that a text was written by a language model. Making sure AI reads your site is one thing; making sure your writing does not sound like AI wrote it is another.

Convert

We introduced a dynamic contact form on the site, letting visitors send an enquiry or book an intro call. That route is visible from every page: including the blog articles and the 404 page.

What came out

The site looks the same and works completely differently. Technically it is demonstrably healthy, and it is ready for the visibility it never got round to before.

Where we are now

The foundation is in place and the SEO and AI work has just begun. Visibility figures will follow once there is enough measured to say anything meaningful.

More numbers

43
unused components removed
13
places with invalid HTML fixed
89 / 98
PageSpeed on mobile and desktop
sitemap
now automatic and complete
structured data
for FAQ and blog

Want to work together too?

Zalm Partners delivers real results. Big growth decisions are best discussed with a human.