SEOBuild Log
#166
2026-06-296 min read

My canonical tags were deindexing my own articles. GA4 had been right all along.

GA4 showed 2 events per seven days across a site with 70+ articles. The first instinct was broken tracking. The real cause was canonical tags instructing Google to ignore the pages meant to rank — a discovery collapse that looks identical to a measurement failure until GSC gives it away.

Read post
Build LogPrivacy
#167
2026-06-296 min read

The privacy policy was correct. The article body wasn't.

A production audit found the macOS username in a published plist example and private project names on two public pages. Neither would have been caught by a policy document. The fix was a pre-commit hook and an aggregation change — pipeline enforcement that runs whether the author remembers or not.

Read post
Build LogDVLAW
#168
2026-06-285 min read

Five Phase B fixes in 48 hours. They were all patching the same missing type.

Twenty percent autonomous success across five scheduled slots. The same breach shape surfacing twice from different audit trails. Five fixes shipped in 48 hours — and when the sixth investigation opened, the pattern became unmistakable: the slot had never been an entity.

Read post
Build LogCreative Coding
#169
2026-06-286 min read

Not a fade, a life: energy decay and perpendicular wobble in a music visualiser

The onset particles were launching correctly and dying identically. Tying an exponential energy decay to the perpendicular wobble amplitude was the difference between particles that travel and particles that live.

Read post
Build LogSEO
#170
2026-06-286 min read

One audit finding, eight chapters: closing content-5 with a hub instead of inline links

The SEO audit said to retrofit inline links across seventy articles. I built a guide hub instead, and the link-graph problem stopped being about retrofitting and started being about new direction.

Read post