aeoai-overviewattribution

AI Overview Source Attribution Explained

How Google AI Overviews choose which sites to cite. No special markup needed. Same signals as organic ranking. Track citations with include_ai_overview param.

8 min

Google AI Overviews cite sources using the same ranking signals as organic search. No special markup, no llms.txt, no AEO-specific formatting is required. Pages that rank in the top 10 organic results are the most likely to appear as AI Overview sources. You can track whether your pages get cited by including AI Overview data in your SERP API queries.

How source selection works

Google generates an AI Overview by synthesizing information from multiple sources. The sources it cites are selected based on:

  • Relevance to the specific query (not just the topic, but the exact question)
  • Authority of the source domain
  • Content freshness (especially for queries with time-sensitive answers)
  • Content structure (well-organized pages with clear sections are easier to extract from)
  • Existing organic ranking (strong correlation between top 10 ranking and AI Overview citation)

Tracking your AI Overview citations

Python
import requests, os
from datetime import date

H = {"x-api-key": os.environ["SCAVIO_API_KEY"]}

def track_ai_citations(keywords: list, domain: str):
    """Daily check: are we cited in AI Overviews for our target keywords?"""
    report = []
    for kw in keywords:
        resp = requests.post("https://api.scavio.dev/api/v1/search",
            headers=H,
            json={"query": kw, "include_ai_overview": True})
        data = resp.json()

        # Check AI Overview sources
        ai = data.get("ai_overview", {})
        ai_sources = ai.get("sources", [])
        our_citation = next(
            (s for s in ai_sources if domain in s.get("link", "")), None)

        # Check organic ranking
        organic_pos = None
        for i, r in enumerate(data.get("organic_results", [])):
            if domain in r.get("link", ""):
                organic_pos = i + 1
                break

        report.append({
            "date": date.today().isoformat(),
            "keyword": kw,
            "ai_cited": our_citation is not None,
            "ai_position": ai_sources.index(our_citation) + 1 if our_citation else None,
            "organic_rank": organic_pos,
            "total_ai_sources": len(ai_sources),
        })
    return report

keywords = ["best crm for startups", "project management tool comparison"]
report = track_ai_citations(keywords, "yoursite.com")
for r in report:
    status = "CITED" if r["ai_cited"] else "not cited"
    print(f"{r['keyword']}: {status}, organic #{r['organic_rank']}")

The organic-to-AI citation correlation

Across thousands of tracked keywords, pages ranking in organic positions 1-5 are cited in AI Overviews roughly 60-80% of the time (when an AI Overview appears). Pages ranking 6-10 are cited 20-40% of the time. Pages not in the top 10 are rarely cited. This reinforces the core message: improving organic ranking is the most reliable way to increase AI Overview citations.

Monitoring at scale

Python
def weekly_citation_report(keywords: list, domain: str):
    """Aggregate weekly AI citation metrics."""
    report = track_ai_citations(keywords, domain)
    cited = [r for r in report if r["ai_cited"]]
    return {
        "total_keywords": len(report),
        "ai_cited_count": len(cited),
        "citation_rate": f"{len(cited) / len(report) * 100:.1f}%",
        "avg_organic_rank_when_cited": (
            round(sum(r["organic_rank"] for r in cited if r["organic_rank"]) /
                  max(len([r for r in cited if r["organic_rank"]]), 1), 1)),
        "keywords_not_cited": [r["keyword"] for r in report if not r["ai_cited"]],
    }

# 50 keywords/week = 50 credits = $0.25/week = $1/mo
metrics = weekly_citation_report(keywords, "yoursite.com")
print(f"Citation rate: {metrics['citation_rate']}")

What to do when you are not cited

If you rank in the top 5 but are not cited in AI Overviews, the AI Overview is likely citing a page with a more direct answer to the query. Check what the cited sources have that you do not: tables, specific numbers, comparison data, or more comprehensive coverage. Improve your content to match, and the citation will follow as your page already has the authority signal (top 5 ranking).