# Visibility

> Make a page findable by search engines and quotable by answer engines. Covers keyword and question mapping, entity clarity, schema, internal linking and extractable claim blocks for AI Overviews and chat assistants. Use for new pages, refreshes and site-wide audits.

- Skill: `wojciechluszczynski/visibility` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wojciechluszczynski/visibility`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wojciechluszczynski/visibility/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wojciechluszczynski (https://skillmd.com/u/wojciechluszczynski)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wojciechluszczynski/visibility

---


# /operator-cmo:visibility

Two jobs that used to be one. Search engines rank pages. Answer engines quote
sentences. Optimising only for the first is why plenty of well ranked pages get
summarised without attribution.

## The decision guard

Read the brief and `marketing/decisions/positioning.md`. A visibility pass that
does not know the ICP will optimise for volume, and volume is the wrong target
for anything with a five figure deal size behind it.

## Search layer

- **One page, one job.** Map the page to a single primary query and the cluster
  of questions around it. Two primary queries means two pages.
- **Title and description** carry the primary phrase without contorting the
  sentence. Sentence case. No em dashes.
- **Headings answer questions.** Turn the question cluster into H2s that a
  person would actually ask, then answer each in the first two sentences under
  it.
- **Internal links are the cheapest ranking asset you own.** Every new page
  links out to three existing pages and gets linked from at least two. Check
  the existing pages and edit them, rather than noting it as a follow up that
  never happens.
- **Check the index reality**, not the plan: does the page exist in the
  sitemap, is the canonical right, does the slug match the title's promise.

## Answer engine layer

Answer engines lift passages. Write passages that survive being lifted.

- **Self-contained claim blocks.** Each key claim is a short paragraph that
  makes sense with no surrounding context and no pronoun pointing backwards.
  A quoted paragraph that starts with "This is why" is a wasted citation.
- **Attribution inside the sentence.** Put the who and the when in the sentence
  that carries the number, so a quote carries your name with it. "In 2026, we
  cut cost per lead 40% at a mid-market SaaS" survives extraction. "We cut it
  40%" does not.
- **A question and answer block** for the four or five real questions, matching
  the FAQ schema exactly. Same wording in the visible text and the structured
  data, because a mismatch is the most common reason a rich result is dropped.
- **Definitions early.** If the page owns a term, define it in one sentence in
  the first screen. That sentence is what gets quoted.
- **Numbers with units and dates.** Undated figures get discarded by systems
  that care about freshness, which is now all of them.
- **Entity consistency.** The same name for the company, the person and the
  product on every page, matching the schema `name` and `sameAs` fields.

## Schema

Emit or check: `Article` or `BlogPosting` with `author`, `datePublished`,
`dateModified`; `FAQPage` when a visible FAQ exists; `BreadcrumbList`;
`Organization` or `Person` with `sameAs` pointing at the real profiles. Never
emit FAQ schema for questions that are not visible on the page.

## Audit mode

When run against a whole site rather than one page, produce
`marketing/log/visibility-YYYY-MM-DD.md` with: pages with no internal links in,
pages competing for the same query, claims with no date, schema mismatches, and
the ten pages where a single edit would move the most. Rank by effort against
impact, and say which three to do this week.

## Finish

Print the primary query, the question cluster, the internal links added in both
directions, the claim blocks written, and the schema types emitted. Flag
anything you could not verify rather than reporting it as done.

