SEO diagnostics

Search Clues

Read the guide

Upload your Google Search Console data, overlay Google updates and site changes, and investigate what may have affected your traffic.

Local workspace

Upload Search Console data

Export the last 16 months from Search Console. Your file is processed only in this browser.

Bundled data updated:

Google Search Console ZIPPerformance > Search results > Last 16 months > Export > Download CSV. Keep the ZIP intact.

All data stays in this browser on this device. Files are processed locally and never sent to M09 servers.

Range

Official Google update history

Confirmed Google updates

Quick questions before you start

How do I get the Search Console ZIP?

Open the correct property in Search Console. Go to Performance → Search results; set Date to Last 16 months and Search type to Web. Remove unwanted filters and turn Compare off. Choose Export → Download CSV, then open the downloaded ZIP here without extracting or renaming it.

Can I see more than 16 months?

Each Search Console export covers up to 16 months. Import compatible ZIP files for the same site to extend its local history; newer imports replace overlapping dates. All time shows everything available here.

How does the tool prevent mixing up sites?

It checks the property in the original Search Console ZIP filename or export metadata. A clear mismatch blocks the import. If the site cannot be verified, you must confirm before adding the data. Keep the original ZIP filename.

How do I get the GitHub JSON?

Install GitHub CLI and sign in. In the read-only command below, replace OWNER/REPOSITORY in both places with the repository owner and name. Set YYYY-MM-DD to a date on or before the start of your Search Console period. Run the command and open the resulting JSON here.

How to export the JSONGitHub CLI
gh auth login

gh pr list \
  --repo OWNER/REPOSITORY \
  --base "$(gh repo view OWNER/REPOSITORY --json defaultBranchRef --jq '.defaultBranchRef.name')" \
  --state merged \
  --search "merged:>=YYYY-MM-DD" \
  --limit 1000 \
  --json number,title,mergedAt,url,labels,additions,deletions,changedFiles,files,mergeCommit,baseRefName \
  > website-changes.json

Replace OWNER/REPOSITORY and the date. The command detects the repository's default branch. Listing PRs is read-only: it does not start Actions or consume Actions execution minutes. Titles and paths may be confidential, but this page processes them only in your browser.

Is a merged pull request the same as a deployment?

No. The timeline uses it only as code-change context. Verify the real deployment date in the deployment log before drawing a conclusion.

How is a recurring pattern detected?

The tool searches within 21 days of the same calendar date last year. It marks possible seasonality only when direction, magnitude, statistical strength, and the shape of the surrounding trend are similar. One previous year is still a clue, not proof.

Does a matching date prove that Google caused the change?

No. Timing creates a hypothesis, not proof. Check affected pages, queries, countries and devices before acting.

Where are saved sites stored?

ZIP, CSV and JSON files are processed locally in this browser and are never sent to M09 servers. Saved sites stay in this browser profile’s IndexedDB; clearing site data removes them. An exported backup is a plain, unencrypted JSON file.