The archive

Notes from production

Timeouts, crashes, security breaches and scaling failures: what broke, why it broke, and what actually fixed it. Plus the AI tooling I’m putting to work in WordPress.

12 years writing 58 articles published 6 topics covered last published 3 days ago

Archive results

Latest

AI & Automation9 min read

Codex Scheduled Tasks and Hooks: Running Unattended Checks Safely

To run Codex unattended safely, combine three features: scheduled tasks to run the check, hooks to enforce hard rules in code, and auto-review so a second agent assesses risky actions instead of nobody. I use it for recurring SEO…

Hosting10 min read

WordPress Emails Not Sending After Migration? Fix It

When WordPress emails stop sending after a migration, the cause is almost always something the move changed: the sending IP, DNS records, SMTP credentials, the PHP mail setup or outbound firewall rules. Check each layer in order (WordPress, transport,…

All articles

Hosting11 min read

WordPress Site Down or Slow? My Troubleshooting Checklist

When a WordPress site is slow or down, work through five steps in order: confirm the scope of the problem, check server health, correlate the logs by timestamp, isolate the failing layer, then recover with the lowest-risk change. Skipping…

Hosting10 min read

Random 403 in WordPress? Check auto_prepend_file

If a WordPress site returns a 403 that Nginx rules and security plugin logs can’t explain, and replaying the request returns 200, check PHP’s auto_prepend_file setting. A script set there, often through a .user.ini file, runs before WordPress loads…

Hosting7 min read

Nginx Hotlink Protection Without valid_referers

If Nginx reports unknown directive "valid_referers", check the compiled HTTP referer module before changing the rule. When that module is unavailable, a carefully scoped $http_referer check can deter cross-site image and video embedding. Test the configuration and three request…

Hosting10 min read

How to Check Your WordPress Database Charset and Collation

To check a WordPress database’s charset and collation, run wp db query "SELECT @@character_set_database, @@collation_database;" for the database default, then query information_schema.TABLES for each table, because tables can differ from the default. A modern site should use utf8mb4, with…

Hosting11 min read

Block Outbound Traffic to an IP with iptables on Ubuntu

To block outbound traffic from an Ubuntu server to one IP address, insert a REJECT rule at the top of the OUTPUT chain: sudo iptables -I OUTPUT 1 -d 203.0.113.10 -j REJECT. The server can no longer open connections…

AI & Automation9 min read

WordPress REST API Basic Auth Error: How to Find the Real Cause

A WordPress REST API request can report that Basic Authentication is required even after HTTP authentication was disabled. That message does not prove that WordPress itself is demanding a Basic Auth header. The challenge may come from a browser…