AnswerLineStart free

, Google · SERP API · GEO

Featured snippets and AI Overviews: how they relate and what you can measure

A featured snippet shows a passage from one web page ahead of its link. An AI Overview is a generated answer with links to several supporting pages. They are different features, but Google’s documentation ties them to the same foundation: pages that are indexed and eligible to be shown with a snippet, governed by the same snippet controls. What changes is what “winning” means: one extracted passage from one page, versus being one of several cited sources.

Below: what Google’s documentation says about both (each claim linked, checked 2026-09-17), then what you can measure with this API. AI Overviews come back as structured data with sources and inline citations. Featured snippets are not returned as a field.

Google’s featured snippets documentation (last updated 2025-12-10, checked 2026-09-17) says:

The featured snippets page does not mention AI Overviews.

What Google documents about AI Overviews

Google’s AI features and your website (last updated 2025-12-10, checked 2026-09-17) says:

Google’s newer guide, Optimizing your website for generative AI features on Google Search (last updated 2026-07-10, checked 2026-09-17), describes how answers are built. It defines retrieval-augmented generation as a technique “relying on our core Search ranking systems to retrieve relevant, up-to-date web pages from our Search index”, and query fan-out as “a set of concurrent, related queries generated by the model to request more information and fetch additional relevant search results”. The same guide says you do not need machine-readable files such as llms.txt for Google Search and there is no requirement to break content into small chunks. It does not discuss featured snippets.

Search Console’s position definitions (checked 2026-09-17) add one reporting detail: “An AI Overview occupies a single position in search results, and all links in the AI Overview are assigned that same position.”

How the two relate, based on those documents

Putting the documented facts side by side:

Featured snippet AI Overview
What is shown A passage from one page, snippet first A generated answer with supporting links
Pages it draws on Pages Google’s systems judge a good featured snippet Pages retrieved by core Search ranking systems, per the AI optimization guide
Eligibility Pages that can be shown with a snippet (nosnippet removes them) Indexed and eligible to be shown with a snippet
Special markup None to request one No special structured data
Opt-out controls nosnippet, max-snippet, data-nosnippet nosnippet, data-nosnippet, max-snippet, noindex
Shown for every query Only when Google’s systems elevate a page No: “often don’t trigger”

Two conclusions follow directly from the documentation:

  1. The same snippet controls affect both. A nosnippet or data-nosnippet choice made to keep text out of featured snippets also limits what AI features can show. Review those controls with both features in mind.
  2. The foundation is the same indexed, snippet-eligible page. Google does not document a separate optimization path for either feature.

The documentation does not say that the featured snippet page is cited in the AI Overview, that one replaces the other, or how often they appear together. If you need those answers for your own keywords, measure them rather than assume them.

What this API measures

A Google Search request (POST /v1/monitor/google, or a GOOGLE async task) returns the results page as typed fields. For this topic, three matter.

AI Overview: aioverview

Send include.aioverview (for example {} or {"markdown": true}). The response carries:

Field What it holds
text, markdown The overview’s answer; markdown when requested
sources[] position, url, label, description for each source in the source list
citationPills[] Inline chips: citationPillId, label, url, domain, description, position (the source’s place in sources); one entry per source, grouped by citationPillId
relatedLinks[] Links grouped under a chip that are not in sources
videos[] Videos shown inside the overview
ads[] Ads inside the overview, type TEXT or SHOPPING

aioverview is null when no overview was available, and missing entirely when you did not request it. Keep the request shape fixed across a series so “not requested” is never read as “not shown”.

Organic positions: organicResults[]

position (1-indexed, across the pages you requested), page, link, title and snippet. Comparing these with aioverview.sources[] answers “does the overview cite pages that rank organically, and which positions?” for your keyword set.

People Also Ask types: peopleAlsoAsk[]

Each item has type: LINK (a page answers it, with title, link, snippet), AIOVERVIEW (an AI-generated answer, with markdown and sources[] when include.paaAioverview is true), or UNKNOWN. The share of AIOVERVIEW items across a topic is a second view of how often generated answers appear around your queries; People Also Ask for SEO covers using it.

This API returns no featured snippet field. The response does not mark whether an organic result was also shown as a featured snippet, and it does not return the snippet passage separately. The fallback is include.html, which returns result.html[]: one URL per results page with its raw HTML. Detecting a featured snippet in that HTML is your own parsing work, and it breaks when Google changes its markup, so treat it as a tool for spot checks rather than a daily metric.

Measure AI Overview citations against organic rank

curl -X POST https://api.answerline.dev/v1/monitor/google \
  -H "Authorization: Bearer $ANSWERLINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "how to descale an espresso machine",
    "country": "US",
    "hl": "en",
    "pages": 2,
    "include": { "aioverview": { "markdown": true }, "paaAioverview": true }
  }'

This synchronous call costs 3 credits base, +2 for the second page, +2 once for the AI Overview add-on (which also covers paaAioverview) and +2 for running synchronously: 9 credits. As an async task it is 7.

import os
from urllib.parse import urlsplit

import requests

def host(url: str) -> str:
    return (urlsplit(url or "").hostname or "").lower().removeprefix("www.")

def on(url: str, domain: str) -> bool:
    h = host(url)
    return h == domain or h.endswith("." + domain)

def measure(result: dict, domain: str) -> dict:
    organic = result.get("organicResults") or []
    aio = result.get("aioverview")
    paa = result.get("peopleAlsoAsk") or []
    rank_by_host = {}
    for r in organic:
        rank_by_host.setdefault(host(r["link"]), r["position"])
    sources = (aio or {}).get("sources") or []
    pills = (aio or {}).get("citationPills") or []
    return {
        "aio_present": aio is not None,
        "aio_sources": len(sources),
        # organic position of each cited source's host, None when it does not rank in the pages fetched
        "cited_hosts_organic_rank": {host(s["url"]): rank_by_host.get(host(s["url"])) for s in sources},
        "my_source_position": next((s["position"] for s in sources if on(s["url"], domain)), None),
        "my_inline_pills": len({p["citationPillId"] for p in pills if on(p["url"], domain)}),
        "my_organic_rank": next((r["position"] for r in organic if on(r["link"], domain)), None),
        "paa_ai_share": round(sum(q.get("type") == "AIOVERVIEW" for q in paa) / len(paa), 2) if paa else None,
    }

res = requests.post(
    "https://api.answerline.dev/v1/monitor/google",
    json={"query": "how to descale an espresso machine", "country": "US", "hl": "en", "pages": 2,
          "include": {"aioverview": {"markdown": True}, "paaAioverview": True}},
    headers={"Authorization": f"Bearer {os.environ['ANSWERLINE_API_KEY']}"},
    timeout=(10, 330),
)
res.raise_for_status()
print(measure(res.json()["result"], "example.com"))

The overlap is computed by host, because a domain can be cited with a different page from the one that ranks. Add a page-level comparison if that distinction matters to you.

To keep raw HTML for a featured snippet spot check, add include.html; result.html[] holds one URL per results page fetched:

const res = await fetch("https://api.answerline.dev/v1/monitor/google", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ANSWERLINE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    query: "how to descale an espresso machine",
    country: "US",
    hl: "en",
    include: { html: true, aioverview: {} },
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
const { result } = await res.json();

console.log("AI Overview sources:", (result.aioverview?.sources ?? []).map((s: { url: string }) => s.url));
for (const url of result.html ?? []) {
  const html = await (await fetch(url)).text();
  // Inspect or archive the raw page yourself; the API does not parse featured snippets.
  console.log(url, html.length);
}

Metrics to report

Computed over a keyword set, per market and device, over a window of runs:

Metric Definition Why it matters
AI Overview rate Share of runs where aioverview is not null How often a generated answer sits on the page for your keywords
Citation rate Share of runs with an overview that cite your domain in sources[] Your presence where overviews appear
Inline citation rate Share of those runs where your domain appears in citationPills[] Cited in the answer text, not only in the source list
Organic overlap Share of cited sources whose host ranks in the organic pages fetched Whether overviews in your space cite the organic leaders
Cited while not ranking Runs citing you where my_organic_rank is empty Visibility you would miss with rank tracking alone
PAA AI share Share of peopleAlsoAsk items with type AIOVERVIEW How question-level answers are delivered around the topic

Report rates, not single runs. The page, including the overview, can differ between runs of the same query; store every run and aggregate, as described in tracking AI Overviews at scale and SERP feature change tracking.

Running it on a keyword set

For scheduled measurement, submit GOOGLE tasks through POST /v1/async/task/batch (1 to 500 per request) with idempotency keys derived from keyword, market, device and day, and a webhook for results. The receiver and reconciliation code is in the async batch pipeline.

From the current credit prices, per async task: 3 credits base, +2 for the AI Overview add-on, +2 per page after the first.

Setup Tasks Credits each Credits
300 keywords, 1 market, weekly, AI Overview, 1 page 300 per week 5 1,500 per week
Same with pages: 3 for organic overlap 300 per week 9 2,700 per week
50 priority keywords, daily, AI Overview, 1 page 50 per day 5 7,500 per 30 days

Failed tasks are not charged. Plan sizes are on the pricing page.

Pitfalls

  1. Assuming the featured snippet page is the cited page. Google’s documentation does not say so. Measure overlap on your own keywords.
  2. Treating a missing aioverview as “no overview”. Missing means not requested; null means requested and not available.
  3. Using nosnippet broadly to block featured snippets. Per Google’s documentation it removes all snippets, and snippet eligibility is also the basis for AI features.
  4. Parsing raw HTML as a daily metric. Markup changes silently break it. Keep HTML checks for spot checks.
  5. Comparing across devices or locations. Keep device, country, hl and location fixed per series.

Google AI Overview API and monitoring Google AI Overviews cover the overview data in more depth. How AI engines choose citations discusses citation behaviour across assistants, what is a SERP maps every block on the page, and Google rank tracking on a SERP API covers organic positions. AI Mode is a separate Google surface with its own endpoint; see AI Mode.

Field shapes for the overview and every other block are on the Google Search engine page.

Questions

What is the difference between a featured snippet and an AI Overview?

A featured snippet shows a passage from one web page with the snippet first and the link after it. An AI Overview is a generated answer that shows links to several supporting pages. Google documents both as drawing on pages that are indexed and eligible to be shown with a snippet.

Do featured snippet optimizations help with AI Overviews?

Google's documentation says there are no additional requirements or special optimizations for AI Overviews beyond being indexed and eligible to be shown with a snippet. The snippet controls nosnippet, data-nosnippet and max-snippet apply to both features.

Does this API return featured snippets?

No. The Google Search response has no featured snippet field. Request include.html to receive URLs of the raw page HTML if you need to inspect a featured snippet yourself.

What can I measure about AI Overviews with this API?

With include.aioverview, the response returns the overview's text, sources with position and URL, inline citation pills, related links, videos and ads. You can compare cited sources with organicResults positions and with People Also Ask answer types from the same response.

How do I stop my content appearing in featured snippets or AI Overviews?

Google's documentation lists nosnippet, data-nosnippet and max-snippet for both, and noindex for AI features. It notes that a low max-snippet value does not guarantee that featured snippets stop, and that nosnippet is the guaranteed option.

Try it on your own prompts

500 free credits a month, no card. One POST returns the answer, sources and citations as JSON.

Keep reading