Skip to main content
tom

tom

Articles by tom

The Platform Illusion: Why Managed Hosting Isn’t the Same as a Managed Site

There’s an appealing pitch that comes with hosted platforms like Shopify, Squarespace, and Webflow. The servers are managed. The uptime is “99.9%.” Security patches happen automatically. The message, implicit or otherwise, is that the hard stuff is taken care of. It’s a tempting thought – but it’s only half the story. The platform handling your […]

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 – […]

AI Image Editing with Gemini: The Reality, The Wall, and the Power of the Hypothetical

A true story of a project we undertook right here on this website, and how we overcame frustrating AI limitations.

ChatGPT Vs Gemini: Which coding assistant is better? [2025 update]

Back in May 2023 (have we really had AI in our lives for that long!) I wrote an article comparing ChatGPT and Bard (now rebranded as Gemini) as coding assistants. Now, a couple of years later, I decided to revisit the free AI offerings from OpenAI and Google to see how they measure up. The […]

Filling in a website form

When AI Bots Can’t See You: Debugging AI Crawl & Indexing Issues

As a web developer, getting your site indexed by search engines is critical. But what happens when even an AI assistant, built to explore the open web, can’t “see” your content? That was the bizarre and frustrating journey I recently embarked on while trying to ensure aiprofiles.co.uk was fully accessible to AI crawlers. AI Profiles […]

Charity website integrations

Implementing a Robust Redis Fallback in WordPress: Ensuring Maximum Uptime

Redis caching can dramatically speed up WordPress sites by offloading expensive database queries and serving cached content quickly. The widely used Redis Object Cache plugin makes integrating Redis seamless. However, if the Redis server becomes unreachable, you are shown a rather unprofessional looking ‘Can’t connect to Redis’ error, instead of your website. The solution is […]