Solution

Archive Weekly SERP Snapshots for Competitive Trend Analysis

SERP landscapes shift constantly, but without historical snapshots there is no way to analyze trends. Which competitors gained positions over the last quarter? When did AI Overview

The Problem

SERP landscapes shift constantly, but without historical snapshots there is no way to analyze trends. Which competitors gained positions over the last quarter? When did AI Overviews start appearing for your target keywords? Did the featured snippet holder change after the last algorithm update? Without archived SERP data, these questions are unanswerable. You know the current state but have no record of how you got here. Competitive intelligence is limited to the present moment.

The Scavio Solution

Build a weekly SERP archival pipeline that snapshots the full SERP state for your target keywords every week and stores it in a queryable format. Each snapshot captures organic positions, AI Overview presence, featured snippets, local pack results, and People Also Ask questions. Over weeks and months, the archive becomes a competitive intelligence database that shows exactly when changes happened, who gained or lost positions, and how SERP features evolved. At $0.005/credit, archiving 100 keywords weekly costs $2/mo.

Before

Before archival, SERP analysis was limited to the present moment. The team could not answer when a competitor first appeared in top 3, when AI Overviews started dominating a keyword cluster, or how positions shifted after algorithm updates.

After

After building the archival pipeline, the team has months of SERP history to analyze. Trend analysis shows exactly when competitive shifts happened, and the data informs strategy adjustments weeks before the quarterly review.

Who It Is For

SEO strategists who need historical SERP data for trend analysis and competitive intelligence. Teams that want to measure the impact of algorithm updates with before/after comparison data.

Key Benefits

  • Weekly full-SERP snapshots including all features and positions
  • Competitive trend analysis over weeks and months
  • AI Overview presence tracking shows feature adoption curves
  • Algorithm update impact analysis with before/after data
  • 100 keywords archived weekly for $2/mo

Python Example

Python
import requests
import json
from pathlib import Path
from datetime import datetime

API_KEY = "your_scavio_api_key"

def snapshot_serp(keyword: str) -> dict:
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "google", "query": keyword, "num": 20, "ai_overview": True},
        timeout=15,
    )
    res.raise_for_status()
    data = res.json()
    return {
        "keyword": keyword,
        "date": datetime.utcnow().strftime("%Y-%m-%d"),
        "organic": [{"position": r.get("position"), "domain": r.get("link", "").split("/")[2] if r.get("link") else "", "title": r.get("title", "")} for r in data.get("organic", [])[:20]],
        "has_ai_overview": bool(data.get("ai_overview")),
        "has_featured_snippet": bool(data.get("featured_snippet")),
        "has_local_pack": bool(data.get("local_pack")),
        "paa_questions": [p.get("question", "") for p in data.get("people_also_ask", [])],
    }

def weekly_archive(keywords: list[str]):
    date = datetime.utcnow().strftime("%Y-%m-%d")
    archive_dir = Path("serp_archive")
    archive_dir.mkdir(exist_ok=True)
    snapshots = [snapshot_serp(kw) for kw in keywords]
    archive_path = archive_dir / f"serp_{date}.json"
    archive_path.write_text(json.dumps(snapshots, indent=2))
    print(f"Archived {len(snapshots)} keywords to {archive_path}")
    # Summary
    aio_count = sum(1 for s in snapshots if s["has_ai_overview"])
    print(f"  AI Overviews: {aio_count}/{len(snapshots)} keywords")
    return snapshots

keywords = ["best search API", "SERP API comparison", "web scraping alternative"]
weekly_archive(keywords)

JavaScript Example

JavaScript
const API_KEY = "your_scavio_api_key";

async function snapshotSerp(keyword) {
  const res = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": API_KEY, "content-type": "application/json" },
    body: JSON.stringify({ platform: "google", query: keyword, num: 20, ai_overview: true }),
  });
  if (!res.ok) throw new Error(`scavio ${res.status}`);
  const data = await res.json();
  return {
    keyword,
    date: new Date().toISOString().slice(0, 10),
    organic: (data.organic ?? []).slice(0, 20).map((r) => ({ position: r.position, domain: r.link ? new URL(r.link).hostname : "", title: r.title ?? "" })),
    hasAiOverview: !!data.ai_overview,
    hasFeaturedSnippet: !!data.featured_snippet,
    paaQuestions: (data.people_also_ask ?? []).map((p) => p.question ?? ""),
  };
}

const keywords = ["best search API", "SERP API comparison"];
const snapshots = [];
for (const kw of keywords) snapshots.push(await snapshotSerp(kw));
console.log(`Archived ${snapshots.length} keywords`);
const aioCount = snapshots.filter((s) => s.hasAiOverview).length;
console.log(`  AI Overviews: ${aioCount}/${snapshots.length}`);

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

SERP landscapes shift constantly, but without historical snapshots there is no way to analyze trends. Which competitors gained positions over the last quarter? When did AI Overviews start appearing for your target keywords? Did the featured snippet holder change after the last algorithm update? Without archived SERP data, these questions are unanswerable. You know the current state but have no record of how you got here. Competitive intelligence is limited to the present moment.

Build a weekly SERP archival pipeline that snapshots the full SERP state for your target keywords every week and stores it in a queryable format. Each snapshot captures organic positions, AI Overview presence, featured snippets, local pack results, and People Also Ask questions. Over weeks and months, the archive becomes a competitive intelligence database that shows exactly when changes happened, who gained or lost positions, and how SERP features evolved. At $0.005/credit, archiving 100 keywords weekly costs $2/mo.

SEO strategists who need historical SERP data for trend analysis and competitive intelligence. Teams that want to measure the impact of algorithm updates with before/after comparison data.

Yes. Scavio's free tier includes 250 credits per month with no credit card required. That is enough to validate this solution in your workflow.

Archive Weekly SERP Snapshots for Competitive Trend Analysis

Build a weekly SERP archival pipeline that snapshots the full SERP state for your target keywords every week and stores it in a queryable format. Each snapshot captures organic pos