Skip to main content
Every page Bluesky generates an artifact for receives a citability score — a heuristic 0–1 signal (surfaced as a percentage) of how citable the optimized artifact is. It is an extension of the GEO score, not a replacement, and it gives you a concrete signal for where to focus. This guide explains exactly what goes into the score and how to raise it.

Where to find your citability score

Your citability scores are visible directly in the Bluesky app — no reports or exports needed.
1

Open Agent Analytics

Navigate to Agent Analytics in the Bluesky app and select your domain.
2

Find the Optimized pages list

Each generated page appears with its URL, a status badge (fresh / stale / error), and its citability score shown as a percentage. Pages with no computed score — for example ones that errored — show a dash instead.

What the score measures

The citability score measures the quality of the optimized artifact — the answer-first markdown and JSON-LD that Bluesky serves to verified AI agents. It is computed by citability_score() in the engine’s edge generator and is a deterministic heuristic: no LLM is involved.
The score reflects the artifact’s structure, not your raw HTML page’s ranking in traditional search. A page can rank well in Google and still score low for citability if it lacks the structural signals below — and vice versa.
The score starts at 0 and adds a fixed amount for each signal present, capped at 1.0 (100%):

Title (0.20)

The page has a <title>. It becomes the artifact’s H1 and the JSON-LD headline.

Lead / description (0.15)

The page has a meta description (or og:description). Bluesky uses it as the answer-first lead block at the top of the artifact.

Section headings (0.20)

The page has <h2>/<h3> headings. These become self-contained, chunkable sections an answer engine can quote.

Freshness (0.10)

The page exposes a modified date — via an article:modified_time meta tag or a <time datetime="..."> element.

FAQ structuring (0.15)

The artifact’s JSON-LD includes a FAQPage. This is generated when a heading is phrased as a question and is followed by a paragraph.

Content density (0.20)

The generated markdown contains at least 120 content tokens (words minus stopwords) — enough substance to be worth citing.
An Article JSON-LD block is always emitted, so it does not move the score on its own — only the FAQPage block adds points. The generator builds all JSON-LD deterministically from extracted page values; it does not read or extend structured data already present on your page.

How to improve your score

Each change below targets one specific scoring signal.

Give the page a clear title

The <title> becomes the artifact’s H1 and JSON-LD headline. A missing title costs the largest single signal (0.20) and weakens every other one.

Lead with a meta description

Bluesky uses your meta description (falling back to og:description) as the answer-first lead block. Write it as a direct, citable answer to the page’s primary question rather than a marketing tagline. Before:
Since the early days of the internet, caching has been an important topic for developers…
After:
Browser caching stores copies of static assets locally so that repeat visitors load your site faster without re-fetching unchanged files from your server.
If no meta description exists, the generator falls back to your first substantial paragraph — so put the answer there too.

Use H2/H3 section headings

Split content into <h2>/<h3> sections. Each heading is paired with its nearest paragraph in the artifact, producing self-contained chunks an answer engine can lift and cite. Pages with no headings earn no points for this signal.

Phrase a heading as a question to unlock FAQ structuring

FAQPage JSON-LD is generated automatically when a heading ends with a question mark and is immediately followed by a paragraph that answers it. You do not need a dedicated FAQ block — rewriting an existing section heading as a question (with its answer in the next paragraph) is enough.
A few tightly written question-and-answer headings on the page’s core topic are more effective than a long list of loosely related ones.

Expose a modified date

Add an article:modified_time meta tag or a <time datetime="..."> element to your page. Bluesky reads it as a freshness signal and includes it as dateModified in the JSON-LD.

Keep enough substantial content

The density signal requires at least 120 content tokens in the generated markdown. Short, thin pages will miss it. Note that pages below the minimum-content threshold are not served an artifact at all.
The generator enforces strict parity: it only restructures text that already exists on your page and refuses to publish an artifact that introduces content the source did not contain. Improving your score means improving the source page — you cannot add copy at the artifact layer.

Regenerate the artifact after updating a page

The citability score reflects the current stored artifact. Editing your live page does not change the score until a new artifact is generated.
1

Update your source page

Publish the content changes on your site as normal.
2

Flag the page for regeneration

In Agent Analytics, click Regenerate on the page. This marks the artifact stale so the engine’s edge-generate run re-crawls the page and recomputes its score.
3

Check back for the updated score

Once regeneration completes, the page’s status returns to fresh and the new score appears in the list.

Score is per-page, per-artifact

Bluesky stores one artifact per URL per domain, and each is scored independently. Distinct URLs — for example a canonical page and a translated variant — get their own artifacts and their own scores, so improving one does not change the other. Use the Agent Analytics list to track scores across all your URLs and prioritize the pages that receive the most AI-agent traffic.