Correlation here does not mean a p-value. It means putting three imperfect clocks on one screen and refusing to pick a story until they overlap.
- The change. A deploy, a CMS publish, a redirect map. Timestamped in your world.
- The fetch. When the crawler actually saw the new document, if you have logs or a snapshot.
- The outcome. Clicks, impressions, and average position for the URLs and queries you care about.
Those timestamps will not match. Search Console is delayed and sampled. Deploys are in UTC. Editors publish at 11 p.m. on a Sunday. The join still beats a vibe.
The goal is not a perfect causal model. It is to stop crediting the nearest named update.
When a ranking move lines up with a fetch that lines up with a change, you have a hypothesis worth keeping. When it does not, you leave the annotation on the calendar and wait. That waiting is the work.