Score AI citation worthiness
score_citation_worthinessEvaluate how citable your content is for AI engines like ChatGPT and Perplexity. Analyzes BLUF openings, FAQ patterns, and answer-shape fit to optimize for AI citations.
Instructions
Score how citable a page or text block is for AI engines (ChatGPT, Claude, Perplexity, Google AI Overviews). Evaluates BLUF (bottom-line-up-front) opening, FAQ patterns, statistic density, entity clarity, and answer-shape fit for the optional target_query.
Also returns extractability_score plus per-section chunk_analysis: how cleanly an LLM can lift a self-contained answer from each heading-delimited section (length band, lead-sentence directness, anaphora, concrete anchors). This is the GEO mechanic - it pinpoints the exact sections to tighten, with most_extractable / least_extractable called out.
Read-only when given url (one HTTP GET). Zero network when given text. No writes.
Deterministic, rule-based; no LLM calls. Returns reproducible scores.
When to use: pre-publish content QA, or to triage which existing pages are worth optimizing for AI citation first. Distinct from score_ai_overview_eligibility which scores Google-AI-Overview ranking probability for a URL; this scores the inherent citability of a text passage regardless of host.
Either url or text must be provided.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public URL to fetch and score. Either this OR `text` is required. | |
| text | No | Raw text/markdown/HTML to score directly without fetching. Either this OR `url` is required. | |
| target_query | No | Optional target search query the content is supposed to answer (e.g. `how to fix CORS errors in Next.js`). When provided, scoring weights answer-shape fit and query-term coverage. Omit if you want a query-agnostic citability score. | |
| respect_robots | No | If true (default), respect robots.txt when fetching `url`. Ignored when `text` is used. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| source | Yes | ||
| signals | Yes | Per-signal subscores (bluf, faq, stats, entities, etc.). | |
| suggestions | Yes | ||
| target_query | Yes | ||
| engine_scores | Yes | ||
| overall_score | Yes | ||
| chunk_analysis | No | Per-section extractability: how cleanly an LLM can lift a standalone answer from each chunk. | |
| most_extractable | No | ||
| least_extractable | No | ||
| extractability_score | No | Length-weighted mean of per-section extractability scores. |