After Google I/O 2026, a custom rank tracker needs to monitor both traditional organic positions and AI Overview citations. Off-the-shelf rank trackers like Ahrefs and Semrush do not track AI Mode visibility yet. Building your own with a SERP API that returns AI Overview data gives you the complete picture for under $30/month.
What a post-I/O rank tracker needs
- Organic rank position (traditional blue links)
- AI Overview citation detection (is your domain cited?)
- Citation position within the AI summary (first citation = most visible)
- People Also Ask tracking
- Historical trend storage for week-over-week comparisons
Complete rank tracker in Python
import os
import json
import requests
from datetime import date
API = "https://api.scavio.dev"
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}
def check_rank(keyword: str, domain: str) -> dict:
resp = requests.post(
f"{API}/api/v2/google",
headers=H,
json={"query": keyword, "gl": "us", "hl": "en"},
timeout=90,
)
resp.raise_for_status()
data = resp.json()
# Organic rank (first results page)
organic_rank = None
for r in data.get("organic_results", []):
if domain in r.get("link", ""):
organic_rank = r["position"]
break
# AI Overview citation
ai_cited = False
ai_position = None
citations = (data.get("ai_overview") or {}).get("references", [])
for i, c in enumerate(citations):
if domain in c.get("link", ""):
ai_cited = True
ai_position = i + 1
break
return {
"keyword": keyword,
"date": str(date.today()),
"organic_rank": organic_rank,
"ai_cited": ai_cited,
"ai_position": ai_position,
"total_ai_citations": len(citations),
"people_also_ask": [q["question"] for q in data.get("related_questions", [])],
}
# Track 100 keywords daily
keywords = [
"best search api for agents",
"serp api pricing comparison 2026",
"ai overview tracking tools"
]
report = [check_rank(kw, "mydomain.com") for kw in keywords]
print(json.dumps(report, indent=2))Each call returns one results page (about 10 organic results) plus the AI Overview and People Also Ask blocks, for 1 credit. To see positions 11-20, send the same query again with "start": 10, at one more credit.
JavaScript version for Next.js dashboard
// API route: /api/rank-check
export async function POST(request) {
const { keywords, domain } = await request.json();
const results = [];
for (const kw of keywords) {
const resp = await fetch("https://api.scavio.dev/api/v2/google", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ query: kw, gl: "us", hl: "en" })
});
const data = await resp.json();
const organic = (data.organic_results || []).find(
r => (r.link || "").includes(domain)
);
const aiCitations = data.ai_overview?.references || [];
const aiPosition = aiCitations.findIndex(
c => (c.link || "").includes(domain)
);
results.push({
keyword: kw,
organicRank: organic ? organic.position : null,
aiCited: aiPosition >= 0,
aiPosition: aiPosition >= 0 ? aiPosition + 1 : null
});
}
return Response.json({ results, date: new Date().toISOString() });
}Cost at scale
One keyword checked once a day is 1 credit, so about 30 credits a month. The $30/month plan includes 7,000 credits.
Keywords tracked | Credits/month | Plan that covers it
50 | 1,500 | $30/mo (7,000 credits)
100 | 3,000 | $30/mo (7,000 credits)
200 | 6,000 | $30/mo (7,000 credits)
500 | 15,000 | $100/mo (28,000 credits)Compare with existing tools
Ahrefs ($99/mo) and Semrush ($119/mo) track organic rank but not AI Overview citations. Your custom tracker costs less and gives you the AI visibility data that matters most after I/O 2026.