What we're learning as we run causal attribution on real engineering teams.
Google knows your URL exists and has chosen not to fetch it. It is not an error, and on a small site it is almost never the "crawl budget" problem the guides tell you to fix — it is crawl demand. What the status actually means, why our own posts sat in it, and the structural fixes that ship in a pull request.
Read postA client-only SPA fails SEO loudly — the crawler gets an empty shell. Next.js fails it quietly: it renders on the server by default, so a one-line diff can flip a whole route subtree to dynamic, delete a page's metadata, or push its tags out of Google's first crawl — with no error and no failing test. The deploy-level regressions to check by sight.
Read postYou can A/B test a checkout flow by splitting users. You cannot test an SEO change the same way — the visitor you are optimizing for is Googlebot, and splitting it by request is cloaking. Real SEO split testing randomizes pages, not users, and measures the result against a forecast counterfactual. How it works, and when you cannot run one at all.
Read postStructured data is the rare SEO task that belongs to engineers — it ships with your build. But it is an eligibility signal, not a ranking boost, and Google has been retiring rich-result types, not adding them. What JSON-LD actually buys you in 2026, and how to generate it from your app so it never drifts out of sync.
Read postGooglebot runs JavaScript — but "can render" and "reliably indexes" are different promises, and the gap is where a React SPA leaks traffic. The two-wave indexing pipeline, why dynamic rendering is dead, and the SPA-specific mistakes (hash routing, soft 404s, onClick nav) that silently tank rankings.
Read postTraffic dipped a few days after you shipped. Was it your deploy, a Google update, or the weekend? Read impressions, position, and clicks together — only one pattern points at your code — then rule out the short list of deploy-level regressions that actually tank rankings.
Read postYes — but as a conditional signal that decides positions among pages already close on relevance, measured on your slowest quarter of real users over a rolling month. Here is what Google actually said, and why a performance fix takes six to eight weeks to show up.
Read postTypically 3 days to 3 weeks — Google has to re-crawl, re-index, and re-rank, in that order. In the one deploy we measured end-to-end, rankings moved 16 days after the PR merged. Why the lag exists, what makes yours longer or shorter, and how to shorten the front of it.
Read postA real changepoint. A 25-position overnight shift. And the one pull request, out of twelve candidates, that our system pointed at — before any of us thought to look.
Read post