YouTube kept refusing to pull in my podcast, and for a few days I was sure the fault was on their end. The feed validated. The episodes were listed. I re-checked the settings twice and muttered about platforms before moving on. Then I actually opened the feed and walked each episode’s audio link by hand, and one of them went nowhere: a 404, a door with nothing behind it. The feed had been cheerfully pointing listeners at a file that was not there, like a cinema marquee still lit for a movie that stopped playing weeks ago. The broken thing was mine, and it had been mine the whole time.
That set the tone for the week. Everywhere I looked, some part of my own site was quietly saying one thing while doing another, and none of it was on purpose.
The episode that was publishing silence
Here is how the podcast ended up advertising a file it did not have. Every episode gets uploaded through the media library, which drops it into a dated folder that syncs up to the live server. Every episode except one, that is. Episode six had been dropped into a flat folder that was never part of that sync, so the file existed on my machine and nowhere a listener could reach it. The part that stings is that the feed generator did exactly what I built it to do: it emits the stored web address for each episode’s audio, and it has no way of knowing whether that address still resolves. It advertises the file. It does not phone the file to see if anyone’s home. And nothing else was checking either, so the feed kept promising audio that had gone missing until a platform I do not control finally choked on it.
A platform choking is the polite version of the problem, though. The worse version is a person. Somewhere in the last few weeks, someone tapped play on episode six and got nothing back: no error, no explanation, just silence where a voice should have been. Nobody sits through silence wondering if it is their connection. They tap away and they do not come back, and I would never see it happen. So the fix was a feed-health check that fetches the live feed every night and confirms that every episode’s audio actually loads. Now a dead audio link shows up in my morning notes instead of turning into a listener I quietly lost.
Two hundred and thirty pages to nowhere
A search-structure review turned up something worse in sheer volume. The site was handing Google roughly two hundred and thirty thin archive pages: the same handful of posts reachable as aggregate lists under six different category-like systems at once, every one of them set to be indexed, every one sitting in the sitemap. Google spends only so much attention on any given site, a limit people who do this work call a crawl budget. If that phrase means nothing to you, picture a building inspector with a fixed number of hours in the day. Send that inspector down six hallways that all end at the same locked room, and those are hours they never spend looking at the rooms where people actually live and work. That was my site: a good chunk of Google’s attention going to re-read near-duplicate lists instead of the pages that say something.
So I kept the archive surfaces that earn their own rankings, the glossary and the subject and location systems, told Google not to index the thin ones, and retired an old tag system that had quietly collided with the glossary on the exact same web address pattern. Google’s own tools had been flagging that collision for a while, in a report I had not bothered to open. The site looked perfectly healthy to a human visitor. The problem only existed for a crawler, which is precisely the sort of problem that sits unfixed for a year.
The blog that called everything WordPress
Then the blog itself, which had been telling readers a smaller fib for years. I pulled up the category list and nearly every post wore the same label, WordPress, thirty-five of them, when plenty were really about running artificial intelligence (AI) operations or enterprise work and had no business filed under the one word I reach for without thinking. So I pointed the system at them and let it do the sorting under my direction, reassigning each post to a label that tells the truth about what it is: AI operations, enterprise, education and courses, content strategy, training, web design. WordPress dropped back to the handful that genuinely are about the platform. And here is why I bothered, because a category is a promise about what else you will find here: when a reader lands on a post about running AI operations and the only signpost on the page still says WordPress, I have told them something wrong about where they are, which matters more this year than it used to, because the whole point of the shift I am making is that someone who came in for one thing should trip over the other, and a lazy default category works quietly against exactly that.
The invoice tool I built instead of bought
The one chore that turned into a small relief was invoicing. I set out to wire up a well-known invoicing service, the kind plenty of people run happily every day. The credentials would not line up cleanly across regions, and the longer I fought with it, the clearer it got that the service was more than the job in front of me actually needed. So I stopped fighting and built a small branded invoice generator of my own instead, reusing the same template machinery I already use for client reports. The first real one went out this week, a retainer invoice for a client, with card and PayPal payment wired in.
There is a particular satisfaction to an invoice that carries my own name and colours, out of a tool I can open the hood on, rather than a login I rent by the month and hope stays where I left it. When something breaks in a thing I own, I fix it that afternoon. When something breaks in a thing I rent, I file a ticket and wait. So the lesson I keep relearning: the tool you are about to adopt is sometimes larger than the problem you have, and the honest move can be the smaller thing you actually control.
The glossary that grew a word on its own
One quiet, honest thing happened this week too, to balance the ledger. The glossary is built to grow only when the writing earns it. A new term gets a definition when real content on the site starts leaning on it, and not a moment before, so the glossary never fills up with words nobody here actually uses. This week the term “artificial intelligence” finally crossed that line and got an entry of its own, because enough of the new writing had come to depend on it. The system added it under my direction while I was busy with the other four fires, which is the pleasant flip side of a machine that will also, given half a chance, advertise a file that is not there. Point it at the right rule and it does the boring, correct thing without being watched.
The through-line, if a week needs one: a site tells small lies without meaning to, and every one of them costs something. Not out of malice, just out of nobody looking. The good news is the boring kind I like best. The feed gets checked every night now, so the next dead link finds me before it finds a listener, and the first invoice from my own little generator is out the door and waiting to be paid. If you would like a second set of eyes on the quiet gaps between what your site claims and what it actually does, that is the sort of audit I run. Last week’s notes, on a forced WordPress security release and a glossary that was a wall with a door painted on it, are in the previous Behind the Scenes.

Leave a Reply