Skip to content
cccskills
FreePublished on GitHub

content-seo-geo

Optimize a prisma.io page for search engines and AI answer engines. Use when writing or reviewing blog posts, docs pages, or landing pages for SEO, GEO, AEO, AI citations, AI Overviews, ChatGPT/Perplexity visibility, featured snippets, metadata, or FAQ sections; when refreshing an existing page for freshness or rankings; or when asked why a page isn't ranking or being cited.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md7.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

SEO + GEO Optimization

Optimize one page at a time so that AI engines cite it and search engines rank it. Being cited by AI engines is the primary goal and ranks above search engine rankings: an AI assistant that quotes and recommends Prisma reaches developers (and their coding agents) before a search results page ever loads. Search ranking is the supporting mechanism, since ranked pages get retrieved and cited more often. When a trade-off appears, choose what makes the page more quotable by AI engines.

Both goals are earned by the same underlying property: a page that answers a specific question with verifiable, extractable claims. Work through the steps in order; the page is done when every completion criterion checks.

This skill is used in conjunction with the content-write-blog skill in this repo: content-write-blog produces and drafts the post (author, frontmatter shape, link rules, writing quality), and this skill optimizes the result for search and AI engines. content-write-blog stays the source of truth for drafting conventions; this skill does not restate them.

Step 1: Name the target queries

Write down the questions this page should be the answer to: one primary query and the 5–10 related queries an AI engine fans out to (synonyms, "how to", "X vs Y", "best X for Y" variants). Every later step is judged against this list.

For new pages, let the query pick the format: comparisons, definitive guides, and original data are the formats AI engines cite most, so frame the page as one of those where the topic allows, rather than a generic post on the same subject.

Done when: the primary query is one sentence, and each fan-out query is either answered on this page or deliberately assigned to another page.

Step 2: Answer first

The first paragraph answers the primary query directly: what the thing is, what the reader will achieve, and the exact mechanism, with the product and category named. A reader (or model) who sees only this paragraph should correctly classify the page and be able to quote a correct answer from it.

Series or context position is stated explicitly ("This is the second part of a five-part series on...") — models can't infer position from URL structure.

The lead carries the canonical internal links, so agents know from the first paragraph where the related information lives: the first product mention linked to its docs page (per content-write-blog link rules) and, where one exists, the predecessor or parent page (previous series part, overview page). Only those; "related reading" clusters dilute the answer and stay out of the lead.

Done when: the primary query is answered within the first 100 words, with no throat-clearing ("Welcome to", "In today's world", "Here's the thing"), and the lead links to the canonical docs page and predecessor page where they exist.

Step 3: Structure for extraction

AI engines extract passages, not pages. Match block type to query type:

Query shapeBlock
"What is X?"Definition paragraph, 40–60 words, standalone
"How to X"Numbered steps
"X vs Y"Comparison table
"Is X better / should I X"Pros/cons list
Recurring questionsFAQ section (markup below)

Rules:

  • Headings phrased the way people ask ("Does whitelist: true reject unknown fields?"), where that reads naturally.
  • Every section leads with its answer; explanation follows.
  • One idea per paragraph.
  • Structure serves people first. The same clear page satisfies Google and AI engines; chunking content into fragments "for AI" or writing per-engine variants triggers spam policies and reads worse.
  • No inline table of contents — the site layout renders its own InlineTOC from headings.
  • FAQ sections use the site's accordion components. Bodies are server-rendered, so collapsed answers remain fully readable to crawlers and models:
## Frequently asked questions

<Accordions type="single">
  <Accordion title="Question phrased the way people ask it?">
Answer as a standalone, quotable claim. State the fact first, qualification second.
  </Accordion>
</Accordions>

3–4 questions per page. Each answer must stand alone with zero surrounding context.

Done when: each target query from Step 1 maps to a block on the page, and every FAQ answer reads as a complete fact on its own.

Step 4: Make claims citable

Models cite pages that contain facts they can lift and defend. Convert vague statements into specific ones:

  • Concrete nouns and named products over pronouns and "our platform".
  • Numbers with dates and sources ("55.3M downloads/month, npm, July 2026"), never round marketing claims. Sourced statistics are the single strongest citation driver (roughly +40% in the Princeton GEO study).
  • A quotation from a named person (maintainer, engineer, customer) where one genuinely exists; quoted experts lift citation rates, manufactured quotes destroy trust.
  • Keywords used where a reader needs them and nowhere else; repeating terms to game engines measurably reduces AI visibility.
  • Behavior stated exactly ("fails with HTTP 409 and the message Unique constraint failed"), quoted from real output.
  • Every claim verified before publication: code samples run on the current release, numbers pulled from the live source, links resolving. A page that teaches models one wrong fact does more damage than a page that ranks nowhere.

Done when: every factual claim on the page would survive being quoted out of context, and each has been verified this pass (not assumed from a previous version).

Step 5: Entity and freshness signals

  • Same product names everywhere on the page; state the category near the top ("Prisma ORM, a TypeScript ORM...").
  • Named author with a real profile; keep the original author on refreshes.
  • updatedAt frontmatter bumped honestly per touch, plus an "Updated (Month Year):" callout stating what changed and which versions everything was verified against.
  • Internal links to the canonical docs, product, and related blog pages per content-write-blog link rules.

Done when: the page names its category, carries a current updatedAt + callout, and links to at least the canonical docs page for each product it covers.

Step 6: Metadata

  • metaTitle: leads with the primary query's answer or subject, under ~60 characters, current version names included where they earn clicks ("Input Validation in a REST API with NestJS and Prisma 7").
  • metaDescription: one or two sentences answering the primary query, naming the stack and the outcome, under ~160 characters.
  • Slug: never changed on refreshes — ranking history lives there.

Done when: title and description each answer the primary query on their own, and the slug is untouched.

Step 7: Verify the page as served

Build or serve the page and check the rendered HTML, not the source file: FAQ bodies present in HTML, headings generating TOC entries, no broken components, links returning 200. Content checks against the source file pass on stale builds and lie.

Done when: every check in this list was run against the served page:

  • Primary query answered in first 100 words
  • Each Step 1 query mapped to a block
  • FAQ accordion bodies present in served HTML
  • All claims verified this pass; all links 200
  • updatedAt + Updated callout present (refreshes)
  • metaTitle / metaDescription answer the primary query
  • No inline TOC

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when the operator wants a hero or meta image for a Prisma blog post; asks to create or generate a blog hero, cover, social card, Open Graph, or YouTube image; mentions cover art, a blog thumbnail, cover.svg/hero.svg/meta.png; references content-create-hero-image; or wants to interactively design cover imagery in Prisma's 2026 brand (light paper, prism accents, Sora). Produces an editable SVG hero plus a pixel-exact PNG meta image, and includes an interactive mode and a built-in design-review pass.

The English summary is being prepared. Showing the original description.

prisma/web1.1KUpdated Oct 19, 2026

Use when the operator wants a page that answers one specific question people ask AI assistants, such as a comparison ("Prisma vs X", "X vs Y"), an alternatives page ("X alternatives"), a roundup ("best X for Y"), a use-case guide ("Postgres for X", "where to host X"), or a troubleshooting fix; when they give a tracked prompt or a Prompt tracker reference (PW123); or when they want to publish such a page so AI engines can find, crawl and cite it.

The English summary is being prepared. Showing the original description.

prisma/web1.1KUpdated Oct 19, 2026

Use when the operator wants to write a blog post, draft a blog article, start a new post for the Prisma blog, or publish to prisma.io/blog.

The English summary is being prepared. Showing the original description.

prisma/web1.1KUpdated Oct 19, 2026

Use when adding a new docs section or product area, editing llms.ts / the llms.txt or llms/[...slug] / llms-full.txt routes / get-llm-text / skill.md / .well-known endpoints, or working on the "agent score", "llms.txt", or anything "agent-ready" in the docs and site apps. Explains the invariants the Mintlify agent-readiness audit measures and how to hold them.

The English summary is being prepared. Showing the original description.

prisma/web1.1KUpdated Oct 19, 2026

Use when a docs page or section has been written or rewritten and is about to be handed over, when the operator says "reader review", "does this read like a human wrote it", "too much jargon", "plain language", or when a docs brief asks for a review before a pull request.

The English summary is being prepared. Showing the original description.

prisma/web1.1KUpdated Oct 19, 2026

Use when writing, rewriting, or improving technical docs (quickstarts, how-tos, tutorials, concept pages, or API references).

The English summary is being prepared. Showing the original description.

prisma/web1.1KUpdated Oct 19, 2026

See all skills by prisma

Report a problem with this skill