Opportunities
The sites already trusted on your subject that say nothing about you.

Two different questions fill this queue, and it matters which one produced a ticket.
Where is the category being read without you? Sources tells you which sites the models lean on; this narrows it to the ones cited on your subject while saying nothing about you. Those are the cheapest ground you can take, because the hard part is already done — the model trusts the site.
What is wrong with the pages you already have? That question needs no rival and no gap. It is answered by reading your own site and holding each page to a fixed set of rules, and it has an answer on your first day, before a single chat has been sampled.
The first question can only be asked once somebody is ahead of you. A brand with plenty of citations and no visible rival gets nothing from it — correctly, and unhelpfully, if it were the only question being asked.
Earned and Owned
The rail lists this page twice, because the work divides cleanly in two and the two are done by different people:
- Earned — somebody else’s site. A community you can take part in, or a publication you have to earn a mention in. The work is a pitch or a post.
- Owned — a page you control, which splits again:
- Site health — a page you already have that breaks a rule. The work is an edit, usually to a template.
- New pages — a page you do not have yet. The work is writing it and shipping it.
Both open the same queue scoped to their half, so each is an address you can send to whoever does that kind of work. The unscoped page is still the whole list, and it is the one to read when deciding what to do first — ranking is computed across everything, and two lists each ranked against themselves cannot say which of the two matters more.
A rival’s own site appears on the unscoped list and on neither half: it is context, not work, because you cannot publish there.
How a gap is scored
A gap is a domain the chats cited without naming you in the same chat. There are two ways for one to qualify, and which applies depends on how visible you are overall.
If you appear in 15% of chats or more, a gap is a source that treats you worse than the web does:
gap strength = your overall visibility − that source's coverage of youThe subtraction is the important part. A source that already mentions you about as often as the web at large is not a gap, however often it is cited — you are already as present there as you are anywhere. What ranks is the source that is less friendly to you than your average, weighted by how much the models actually lean on it.
Below 15%, that subtraction cannot produce anything. Gap strength is at most your overall visibility, and a gap has to clear a floor of 15 points before it is worth a ticket — so a brand at 3% has no source that can qualify, whatever the data says. The test does not become strict; it becomes impossible.
So below the floor the question changes to the only one that can be answered:
gap strength = how much of that source's reach goes to somebody elseA source qualifies when it shaped at least three of your chats and named you no
more often than you are named anywhere. That is not a claim that the source is
singling you out — at 3% visibility, three chats naming somebody else is not a
surprising event. It is a claim that the chats demonstrably look there and you
are not present, which is what Get listed and Pitch editorial have always
meant.
Tickets from the second mode say so, and quote your overall figure rather than a comparison they did not make.
Source type is part of the weighting: editorial coverage counts for substantially more than a corporate page, because it is harder to win and the models lean on it more.
Kinds of opportunity
Each one carries what sort of work it implies:
| Kind | What it means |
|---|---|
| Owned page | Your own site, on a subject where it is not being cited |
| Editorial | Press or a publication covering your category without you |
| Reference | Documentation or an encyclopaedic source |
| UGC | A forum or community thread |
| Competitor | A rival’s own site — a positioning job, not a page to write |
| Site health | A page of yours that breaks one of the audit rules |
The last is deliberately not actionable in the same way. It is listed because knowing that a model’s chat rests on a competitor’s own marketing is worth knowing, even though the action is not “go and edit their site”.
Filing by status
Every action is in one of four states, and the bar at the top of the page holds them apart.
| Tab | What is in it |
|---|---|
| New | Proposed, and nobody has answered yet |
| In progress | You pressed Todo — it is also on Impact |
| Done | Finished, and being re-measured |
| Declined | You said no |
Counts are taken inside whichever scope the page is showing, so a number never sends you to a tab that looks full and renders empty.
Declined is a real tab, not a bin. A declined action is kept so it is not proposed again, and it can be restored from here — a decision made by accident should be reversible, and a decision made on purpose should be reviewable.
Site health: the audit

Press Run audit and Recomma reads your own pages — found through your sitemap, not through your citations, because the pages with problems are usually the ones nothing has quoted yet. A site with hundreds of pages in its sitemap typically has a handful that have ever been cited.
The same rules, and the crawl behind them, are readable without a ticket on Site — the state of your own site whether or not anybody has decided to act on it. A rule can fail there and carry no ticket here: a ticket is raised when a fault clears an impact bar, and a rule failing on a handful of pages may never clear it.
Each page is held to fifteen rules. Every rule is a fact about the markup that you can check by viewing source, and every one has a fix that fits in a diff:
| Rule | It fires when |
|---|---|
| Canonical points at itself | The canonical tag names a different address |
| Canonical declared | There is no canonical tag at all |
| Content boundary | Neither main nor article marks the page’s own content |
| One H1 | The page has two or more |
| An H1 | The page has none |
| Heading order | A level is skipped — an H2 followed by an H4 |
| Publish date | A post carries no time datetime and no datePublished |
| Last-updated date | Schema declares a publish date and never a modified one |
| Current year in the title | A comparison or best-of list whose title names a past year |
| Open Graph type | No og:type tag |
| FAQ schema | Three or more question headings and no FAQPage block |
| Contents list | A long, sectioned page with no in-page links |
| Alt text | Images with no alt attribute |
| Quote attribution | Two or more blockquotes naming nobody |
| Content in the HTML | Plenty of markup, almost no prose — the page renders in JavaScript |
| AI crawlers | A retrieval crawler is shut out in robots.txt |
One ticket per rule, not per page. “Add alt text to the images that have none” is one job whether it touches one page or forty — and each ticket lists the pages it covers, with the markup on the page beside the markup to replace it with.

What the audit will not tell you
There is no rule for “move the author bio into an aside” and none for “improve the introduction”. Both are real advice and neither can be decided from a shape. A finding you cannot verify costs more trust than the finding is worth, so the list above is the whole of it.
Two things the rules are deliberately careful about:
- Documentation is not dated writing. An API reference page is not stale for having no publish date, so it is never asked for one.
- Blocking a training crawler is a decision, not a fault. Only the crawlers
that fetch a page in order to answer a question count here. Keeping CCBot or
Bytespider out costs you nothing in the engines this product measures. What
your
robots.txtsays to each of them, agent by agent, is on Site.
Reading a partial audit
A crawl is a backlog, so a ticket can be a true statement about the pages read so far and not yet about the whole site. Every audit ticket says how much of it is based on, beside the page count. A number that did not say so would make a partial reading look like a complete one.
The same care applies inside a single page. Recomma reads up to 2MB of each one, and a page longer than that arrives as a fragment — so the rules that reason from absence decline to run on it. A rule that fires on something it saw (two H1s, a canonical pointing elsewhere, a skipped heading level) is telling the truth about a fragment as much as about a whole page. A rule that fires on something it did not see is not.
Working them
Each opportunity can be taken, moved along, or dismissed. Dismissing is a real decision and is kept, so it is not proposed again — the page should get shorter as you work, not repeat itself.
Once something is done, it moves to Impact, which watches the figure afterwards and reports whether it moved.
When there is nothing here
The two halves go empty for different reasons, which is why they are read separately.
Earned has three quite different causes, and the page says which:
- Nothing has been sampled yet — there are no chats to find gaps in.
- Nothing has been looked at yet — press Find gaps.
- Every cited source covers you — no source is covering the category without covering you.
In the third case the page still lists the three sources covering you least well. “Nothing to do” is where a page stops being worth opening; those three are the same numbers ranked the other way, and the first place you would lose ground.
A single branch can be empty while the others are not — a category the models never discuss on Reddit has nothing under Community, however visible you are. An empty branch says so in a word rather than explaining itself.
Site health goes empty for one reason: the pages read so far break none of the rules. The panel says how many that is.