Hidden in Plain Sight: The WordPress Hack Only Google Could See
I only went in to add one file It started as one of those small, satisfying jobs. I was working with Claude, the AI assistant I use for much of my website work, to put together an llms.txt file for a client’s website. It’s a simple text file that helps AI tools understand what a site is about, and I’d been meaning to roll them out across my clients’ sites for a while. To write it, Claude read through the live site to gather the details. Partway through, it stopped and flagged something I hadn’t asked about: right at the...
Card Testing Bots Don’t Care How Small Your Shop Is
One of my clients runs a lovely little handmade shop on WooCommerce. It’s not a big operation. It sells a few orders a week, mostly to regulars and people who’ve found her at local markets. It’s hardly the kind of place you’d expect criminals to target. This week she sent me her failed orders. There were five in ten days, three of them in the last three days. Four had exactly the same order: two of her cheapest product, £10.50 with postage. If you’ve looked after WooCommerce sites for any length of time, you’ll know what that means. Card testing...
Down for Ten Minutes: How a Pile-Up of AI Bots Took Out Two Client Sites (And What I Changed Afterwards)
I had an early night planned. Instead, I got an SOS email from a client: their site was down, showing a cryptic error about something called “Redis.” A few minutes later, I realised a second client site — hosted on the same server — was down too. Here’s the investigation that followed, what actually caused it, and what I changed as a result. If you run a website — or a few — I think there’s something useful in here for you too, because this isn’t really a story about my server. It’s a story about where web traffic is...
Free Corporate Copilot vs Claude: What Happened When I Just Wanted an XLOOKUP
A lot of businesses — especially the “blue collar,” non-tech ones — are locked into the Microsoft 365 ecosystem these days, and the free Copilot access that comes bundled with a business 365 plan gets pitched as your AI assistant for everything. So I thought it’d be useful to write up what actually happened when I put it up against Claude on the exact same task, back to back, this week. A bit of context, minus the name: I work for a proper blue-chip. Genuinely massive — the kind of company most people would recognise instantly, with a household name...
“Apple Pay Domain Registration Failed” — Why the Real Bug Wasn’t Where the Error Pointed
If you run WooCommerce Stripe Gateway — the official Stripe plugin for WooCommerce — you’ve probably seen this one in your admin dashboard at some point: “Apple Pay domain registration failed – Please check the logs for more details on this issue.” Worth being specific about the plugin here, since there are a few different ways to get Apple Pay/Google Pay working in WooCommerce, and they don’t all store things the same way. This post is specifically about WooCommerce Stripe Gateway — if you’re on a different payment plugin, the surface symptom might look identical but the underlying fix below...
Moving a Long-Running Claude Chat Project Into Cowork (Without Losing Your Context)
I’ve been running a fairly hefty WooCommerce rebuild for a client over the past few weeks — the kind of project that started as a quick fix and turned into a multi-block overhaul touching subscriptions, product structure, reviews, redirects, and a fair bit of live-site surgery still to come. All of it lived in one long-running Claude chat. Great while it lasted. But a chat isn’t really built for a project this size. So this week I asked Claude whether I should have set this up in Cowork from the start instead. The “Import” button looks simple. It isn’t quite....
Why Your Migadu Sending Limit Isn’t a Migadu Problem
You’re hitting Migadu’s 100 outbound emails per day cap. Clients are missing order confirmations. You’re eyeing the Standard plan at $290 and wondering how you got here. Before you reach for your wallet, check your logs. There’s a good chance the problem isn’t Migadu at all — and if you’re on Zoho, cPanel hosting mail, or any other mailbox service with a daily send cap, the same applies to you. This is a category-wide characteristic of mailbox hosting, not a quirk of any one provider. The fix is the same regardless of which one you’re on and Claude is handy...
Advanced Coupons Tab Won’t Go Away? Here’s the Fix
If you’ve ever removed a plugin from a client’s WooCommerce site and noticed a ghost tab still hanging around under WooCommerce > Marketing, you’re not alone. In this case, the culprit was the Advanced Coupons tab — still showing up and displaying a promo page for a plugin that had been uninstalled. Cheeky. What’s Going On? A quick dig through the WordPress.org support threads turned up the developer’s response: “You may see the ‘Advanced Coupon’ tab on your website because you have some of our other plugins installed. This is simply a static page that won’t impact your site’s performance...
How I Set Up an Instagram Shop for a WooCommerce Client (Without Losing My Mind)
A client asked me to connect their WooCommerce store to Instagram Shop. Simple enough, right? Well—in theory. In practice, it meant wading through a swamp of outdated YouTube videos, guides that described screens that no longer exist, and Meta’s own UI doing its best impression of a moving target. So I did what any sensible person does in 2026: I asked Claude. What followed was a surprisingly smooth setup session — and this post is my attempt to document it properly so I (and hopefully you) never have to start from scratch on this again. First, the Thing Nobody Tells...