I write about technical SEO: crawling, indexing, internal linking, and the measurement problem that sits underneath all three. Most posts start the same way: something broke, or something moved, and the explanation was not in any blog post but in a log file.
Everything here is testable. If a claim needs data to stand up, the data is in the post, along with the query or script that produced it. When a test does nothing, that gets published too. A negative result costs a weekend and saves someone else a quarter.
Positions I will defend
- AI Overviews did not kill clicks. They killed a category of page that never earned them: pages that restate what is already known were always a commodity.
- Most “GEO” advice is technical SEO wearing a new hat. The genuinely new problem is measurement, not markup: the query became invisible, and no schema fixes that.
- Internal linking is the highest-return link work available, and almost nobody staffs it. It is the only part of the link graph you fully control.
- Reporting average position is worse than reporting nothing. In a layout where half the results are folded into a generated answer, position stopped tracking the thing it proxied.
- Programmatic content without a dataset nobody else has is index bloat with a template. The generation cost went to zero for everyone at once; the data behind it is the only asset.
Latest writing
- siteAuthority: What One Line of the Leak Proves, Suggests, and Cannot
The leaked schema has a field called siteAuthority. Here is the whole line, every public quote it supposedly contradicts, and each claim built on it graded by what the text actually supports.
- Going Public: Six Months of Private Notes, All at Once
Eleven posts went up in one afternoon, each keeping the date it was written on. Why the notes stayed private, why they are not staying private, and what comes next.
- Teardown Without Access: What External Data Can and Cannot Prove
No Search Console, no logs, no analytics. Here is the full external teardown protocol, with every finding labelled by what it proves, suggests, or cannot.
- Do AI Answers Cite You? The Measurement Protocol, Pre-Registered
The same prompt returns a different citation set every run. Here is the harness, the sampling design and the log queries, published before the results rather than after.
- Reading Googlebot in Your Access Logs: Demand, Capacity, Waste
Googlebot in your logs is a dozen different clients. Verify them properly, model crawl budget as demand times capacity, and price every wasted fetch in server time.
- Content Decay Triage: Decompose the Drop Before You Rewrite
Clicks are impressions times CTR. Decompose a traffic drop into both factors per query cohort and the fix picks itself, or tells you not to rewrite.