Skip to main content
Designing and coding for the agentic web

No, you don’t need two websites. But you do need to build differently.

You don't need one website for people and one for robots, but you do need to get your single website designed and built to suit both audiences.

AI continued due diligence

Entity data: structured data is not all equal

If you only have one bit of structured data, make it your entity data – the bit that tells search engines and AI tools who you actually are, and backs it up with sources they can check.

Why we built SiteVitals at exactly the right moment – and what smart investors are confirming about that.

I watched a reel recently where Charlie Weavers-Wright, a venture capitalist, was explaining why investors have stopped chasing AI application layer startups. What he said mapped almost perfectly onto the thing we’ve spent the last few months building. The LLM wrapper problem The argument he was making is this: the tools that do little more […]

API vs MCP

API vs MCP – what’s the difference and when would you use each?

If you’ve been spending any time in the world of AI tools lately, you’ve probably started hearing the term MCP being thrown around. And if you already know what an API is, you might be wondering how MCP is any different – or whether it’s just a fancy new word for the same thing. It’s […]

AI Won’t Replace Your Website. But It Will Ignore a Bad One.

There’s a Google patent doing the rounds that’s making website owners nervous. The idea: Google generates its own AI-powered landing page for your business, right inside the search results. No click required. No visit to your site. The obvious question is a reasonable one. If Google can synthesise your content into their own page, why […]

Filling in a website form

Securing Cookies in 2026: Dealing with CHIPS and the End of Third-Party State

Following on from the header updates, I’ve also had to refactor the Cookie Scanner. With the final nail in the coffin for unpartitioned third-party cookies in 2026, the way we audit cookies had to change. If you’re running embedded widgets—like support chats, maps, or auth providers—that rely on cross-site state, the old way of doing […]

Analysing Web Performance: A Look at the Wix Showcase Sites

This is the first in a series of articles I plan to write, based on our research at Sitevitals into platform-specific site health. In this first article i want to look at Wix websites and how they stack up, performance wise. Rather than pick any old random Wix websites, we audited of the 85 websites […]

Turn Your Client Portfolio Into a Continuous Opportunity Engine

We know the reality most agencies face: websites don’t usually break all at once; they quietly drift over time. An SSL certificate expires unnoticed. A script update slows down the Largest Contentful Paint. A critical tracking tag is accidentally deleted. A security header is dropped during a routine deployment. Individually, these issues are small. Collectively, […]

UTM tags in GA4

Securing the Web in 2026: Why I’ve Upgraded the SiteVitals Header Scanner

I recently spent some time digging into the latest security standards for 2026, and as usual, things have moved on quite a bit from what was considered “best practice” just a couple of years ago. It turns out that simply having a CSP or HSTS header isn’t quite enough anymore if you want to stay […]

Server-Side GTM + Meta CAPI: Why Your Events Fire but Don’t Optimise

One of the more frustrating moments in our server-side GTM + Meta Conversions API implementation came after everything appeared to be working. The setup seemed perfect: Events were firing and requests returned 200 OK. Deduplication was functioning correctly. User data was present and match quality had improved. And yet… Meta still refused to optimize. No […]

Server-Side GTM + Meta CAPI: User Data, Match Quality, and the Hidden Transformation Layer

Following on from our earlier WooCommerce walkthrough If you’ve implemented server-side Google Tag Manager with Meta’s Conversions API and everything appears to be “working” — events firing, HTTP 200 responses from Meta, no obvious errors — but Event Match Quality is poor, you’ve likely hit the same wall we did. This post documents the missing […]

Implementing Server-Side Google Tag Manager with Meta Conversions API

A practical, code-driven walkthrough using WooCommerce Client-side tracking is becoming less reliable every year. Ad blockers, browser privacy features, and tightening cookie rules all reduce the accuracy of traditional pixels. Server-side tracking using Google Tag Manager (sGTM) and Meta’s Conversions API (CAPI) is currently the most robust way to track high-value events like purchases – […]