~/writingretiring-wordpress-speed-course-agent-skill-pack
Retiring my WordPress speed course for an AI agent skill pack
Holy Grail WP taught WordPress speed by hand for years. It's retiring: the Site Speed Pack has an AI agent do the work and prove nothing broke.


A few years ago I built Holy Grail WP, a course that taught a WordPress speed setup by hand: WP Rocket, Perfmatters and Cloudflare, one setting at a time. This week I closed it to new students. Its home page now says why, and points to the Site Speed Pack instead.
The principles still hold: measure first, fix what costs the most, and prove the fix worked. What changed is who does the work. Plugin settings move, and a click-by-click video ages fast. Doing all of that testing by hand is no longer a good use of my time or anyone else's, when an AI agent can run the same tests much faster.
That's what the Site Speed Pack does, for a WordPress site or a code-built one. It works with Claude Code, Codex, Cursor and Gemini CLI. The agent measures first, changes one kind of thing at a time, and after each change proves the site still works: the phone menu opens on the first tap, video waits for a play, and the page looks and holds still the way it did. Version 1.1.0 starts with the server, because a struggling server can make every plugin test misleading. The pack's page now calls it the successor to the Holy Grail course.
On Thursday, November 12, the course's email list heard about it. Course buyers got the pack free. Students of the free mini-course and newsletter subscribers got it for $15 instead of $39. Both offers run through December 15. If you took the course or were on the list and didn't get that email, let me know and I'll make sure you get your code. Course access stays open for now, and buyers will hear from me before that changes.
Matchless Fleet, the app I run my servers from
I've never shown this one publicly. Matchless Fleet is a private app I built on Next.js and Supabase to manage my WordPress servers and sites on GridPane. For most of what it does I prefer it to GridPane's own interface, and it works much better on a phone. It looks right in light and dark mode, and it has made looking after my sites and servers on the go a lot easier.

Two pieces landed this week. The first is last week's Cloudflare WAF inventory, now inside the app. Each morning a script on my Mac reads every Cloudflare zone I manage with a read-only token, compares each zone's firewall rules to my five-rule standard, and masks what the rules contain. The app loads that report and never talks to Cloudflare itself. Each zone gets a grade: standard, reordered, a variant with every difference listed, its own rules, or no custom rules at all. If a zone disappears from a run or suddenly has no rules, the refresh holds instead of saving a bad read.
The second is Fail2Ban behind Cloudflare. Fail2Ban blocks addresses that keep failing to log in, but behind Cloudflare every visitor reaches the server from a Cloudflare address, so a plain ban blocks the wrong thing. Now each site bans at Cloudflare's edge, with a token that can only touch that site's own zone. Setup runs dry first, and the live run proves a ban and an unban end to end, undoing itself if anything fails. On Friday it went out to all 10 servers, and a fresh audit agreed with the app on all 56 sites. Each server reports in every 10 minutes, and the app marks every site as working, plugin off, local firewall only, broken or not reported.

Every name and address in these screenshots has been replaced. If you'd like the full tour, tell me: Fleet may get a case study of its own.
Google Ads spend in the Campaign Tracker
Campaign Tracker 1.2.0 adds Google Ads. A script pasted once into the ad account writes each day's cost, clicks and conversions by campaign, ad group and keyword into the tracking sheet, with no API key or Google Cloud project. Totals now add Meta and Google spend together, so cost per lead and return on ad spend count every platform. I'm putting it to work myself: I'm trialing Google Search ads for Simple Email Signature, then Demand Gen ads on YouTube.
New on Matchless Web
- The Authority Blog has its own page: a done-for-you blog built from a 20-minute interview each month, with every post approved by the client. The page also features the Content Engine, the same blog plus social posts on three channels, an email for each new post, and tracked links.
- Google Guaranteed and Local Services Ads, published Thursday. The guarantee ended in October 2025, and Local Services Ads are worth paying for only if someone answers the phone. Google has since stopped taking manual lead disputes, too.
- The blog now shows a date on every post and has search with topic chips.
A new post on BTC DCA Engine
BTC DCA Engine published What If You Pause Bitcoin DCA and Keep Holding? on Wednesday. Stopping your purchases doesn't sell what you already hold, so the post compares carrying on with stopping.
What's next
Two client sites are nearly through their redesigns. They aren't ready to show yet.

Jon Phillips builds websites, web apps and automations at Matchless Web in Clinton, Mississippi.
