Getting Cited · how-to

    How to Rank in ChatGPT

    There is no ranking in ChatGPT: you become eligible by permitting its crawlers, serving self-contained answer passages in real HTML, and declaring one resolvable entity so retrieved content is attributed to you.

    · 9 min read · By Jason Todd Wade

    You do not rank in ChatGPT. You get retrieved and then selected, and the two are separate mechanisms with separate failure modes. The practical work is making a page that ChatGPT's browsing and retrieval path can fetch, making an entity it can resolve to you, and writing passages short and specific enough to survive being compressed into an answer.

    That reframe changes what you build. There is no position to climb and no ordered list to appear in. There is a candidate set assembled at query time, and a synthesis step that names a few sources out of it.

    § 01Key points

    • ChatGPT answers from three sources: model weights, retrieved web content, and the user's own context. Only the second is directly influenceable.
    • Being fetchable requires permitting OpenAI's crawlers and serving content without client-side rendering.
    • Being selected requires self-contained passages, resolvable identity, and claims specific enough to quote.
    • Results are stochastic. Measure with repeated sampling across a fixed prompt set, never with a single test.

    § 02How ChatGPT decides what to cite

    When a prompt triggers browsing, the system issues one or more search queries derived from the prompt, fetches a set of pages, extracts passages, and composes an answer that cites some subset. Three consequences follow.

    First, the query the system issues is not the prompt the user typed. A question like "who should I hire to fix my AI visibility" may be rewritten into several narrower queries. Optimizing for the literal prompt is less useful than covering the concepts it decomposes into.

    Second, extraction happens at the passage level. The unit that competes is a paragraph, not a page. A page can be retrieved and still contribute nothing if no single passage answers the question on its own.

    Third, when browsing is not triggered, the answer comes from parametric memory — what the model absorbed in training. That path is influenced only by broad, durable presence across the corpus, and it moves on the timescale of model releases rather than deployments.

    § 03Step 1: make the content fetchable

    This is the step most often skipped, and the one that silently invalidates everything downstream.

    Permit the crawlers. OpenAI operates distinct user agents for training, for live browsing, and for search indexing. Blanket-blocking them in robots.txt removes you from the live-retrieval path entirely. If you have a policy reason to block training crawlers, block those specifically rather than all of them.

    Serve real HTML. Content that only exists after a client-side framework hydrates is unreliable to fetchers. Server-render, prerender, or at minimum ensure the answer text is present in the initial response body.

    Keep the answer high in the document. Extraction favors passages near the top of a document and directly under headings. A page whose substance begins after a scroll of narrative is structurally disadvantaged regardless of quality.

    § 04Step 2: make the entity resolvable

    If the system cannot confidently determine who published a claim, it tends to attribute the claim to a source it can identify. Entity ambiguity is a citation leak.

    The minimum viable setup:

    1. 01One canonical Organization or Person node with a stable @id used identically on every page.
    2. 02A sameAs array listing every profile you control, so independent mentions merge into one node.
    3. 03The same name string everywhere: site, structured data, legal registration, social profiles, third-party directories.
    4. 04An author line on every substantive page pointing to a single author entity, not a rotating list of unattributed bylines.

    Entity Lock Protocol™ is the operational version of this, and Entity SEO covers the implementation detail. The failure it prevents is specific: your work being retrieved and then credited to whichever entity the system resolved more confidently.

    § 05Step 3: write passages that survive compression

    Compression is where most well-optimized pages lose. The synthesis step needs a short, self-contained, checkable statement. Prose that requires the preceding three paragraphs to make sense gets dropped.

    Fig. 02 — Passage patterns, ranked by how reliably they survive extraction.

    PatternExtractabilityWhy
    Definitional first sentence under the H1HighAnswers the query with zero context
    Numbered process listHighEach step is independently meaningful
    Comparison tableHighStructure maps cleanly to a synthesized comparison
    Narrative section with pronoun chainsLowMeaning depends on prior sentences
    Claim without a mechanism or dateLowNothing to quote, nothing to verify

    Concretely: replace "Our approach is comprehensive and tailored to your needs" with "Entity consolidation typically involves three changes: one canonical name, one @id, and a sameAs array covering every controlled profile." The second sentence can be lifted verbatim into an answer. The first cannot be used at all.

    § 06A worked example

    A B2B software company wanted to appear when users asked ChatGPT for tools in its category. Baseline: forty prompts across five phrasings, run five times each. The company was named in two of two hundred responses.

    Three changes were made over six weeks.

    1. 01Crawler access. Their robots.txt blocked every non-Google agent, a defensive default inherited from a previous vendor. The block was narrowed to training crawlers only, leaving the browsing and search agents permitted.
    2. 02A comparison page written for extraction. Not a landing page. A page that stated, in a table, which categories of tool solve which problem, including the cases where their product is the wrong choice. Stating limits is what makes the rest of a comparison quotable.
    3. 03Entity consolidation. The product name and the company name differed by one word and had been used interchangeably for years. Both were declared, with the product as a SoftwareApplication node and the company as its publisher, linked by @id.

    After the changes, the same prompt set named the company in a materially larger share of responses. The honest caveat: the prompt set is not a random sample of user behavior, the model was updated during the window, and no control group existed. The result is a directional signal and should be treated as one. Attributing the change to any single intervention would not be supportable.

    § 07What does not work

    Keyword density. There is no term-frequency ranking function to feed.

    Mass thin-page production. Retrieval selects passages, so a hundred pages that each half-answer a question perform worse than five that fully answer one.

    Prompt-injection text. Instructions hidden in page copy addressed to the model are ignored by production systems and treated as a spam signal by the crawlers that notice them.

    Buying "AI visibility scores". Scores are the vendor's sampling method rendered as a number. Useful as a relative tracker if the methodology is fixed and disclosed; meaningless as an absolute.

    § 08Measuring it

    Build a fixed prompt set of thirty to fifty questions reflecting real buying and research language. Run it on a schedule, with several repetitions per prompt, and record which entities are named and which URLs are cited. Track the citation rate per prompt over time.

    Two things to hold onto. Variance between runs is large, so a single run tells you almost nothing. And model updates shift the baseline for everyone at once, which means comparing yourself against a set of competitors in the same run is more informative than comparing yourself against last month.

    The BackTier Visibility Path™ frames this as movement through Citation, Inclusion, Selection, and Transaction rather than as one composite score, which is the more defensible way to report it. For the broader measurement approach see how to measure AI visibility, and for the underlying model of why any of this works, AI Visibility Architecture.

    Fig. 03 — Sources

    Sources and notes

    Crawler behavior is taken from OpenAI's published user-agent documentation rather than from observation, and Anthropic's search-result blocks are cited for how retrieved passages carry attribution. The content-side recommendations align with the GEO benchmark and with Google's helpful-content self-assessment; neither OpenAI nor Anthropic publishes a ranking specification, so nothing on this page should be read as a disclosed selection algorithm.

    1. [01]

      OpenAI crawlers and user agents — OpenAI

      Platform documentation

      OpenAI documents distinct user agents — OAI-SearchBot for search surfacing, ChatGPT-User for user-triggered fetches, GPTBot for training — each controllable independently in robots.txt.

    2. [02]

      Top ways to ensure your content performs well in Google's AI experiences on Search — Google Search Central Blog, 2025

      Platform documentation

      Google's own guidance for AI experiences: no separate AI ranking system to optimize for, unique and satisfying content, technical crawlability, and accurate structured data.

    3. [03]

      Search results content blocks — Anthropic

      Platform documentation

      Anthropic documents source-attributed search result blocks, showing that retrieved passages carry an explicit title and source that the model can cite back to the user.

    4. [04]

      GEO: Generative Engine Optimization — Aggarwal et al., arXiv (KDD 2024), 2023

      Research

      The first formal framing of generative engine optimization, with a benchmark measuring how content changes (citations, quotations, statistics) affect a source's visibility inside generated answers.

    5. [05]

      Creating helpful, reliable, people-first content — Google Search Central

      Platform documentation

      Google's published self-assessment questions for experience, expertise, authoritativeness, and trust, including clear authorship and verifiable first-hand knowledge.

    Verify this yourself

    Machine-readable artifacts on this domain

    • /llms.txtCurated model-facing index of this site, served at the root path.
    • /llms-full.txtExpanded plain-text corpus of the site's definitions and frameworks.
    • /sitemap.xmlEvery indexable route with image metadata, generated at build time and checked against the router.
    • /feeds/all.xmlDated, machine-readable publication record across guides, dives, and articles.

    First-hand published record

    Fig. 04 — Frequently asked

    Questions people ask about how to rank in ChatGPT

    Does ChatGPT use Google rankings to decide what to cite?
    It issues its own search queries and fetches its own candidate set. Search rankings correlate with what gets retrieved, because both favor indexed and reachable pages, but position is not the selection criterion. Pages outside the top ten are cited routinely.
    Do I need to allow OpenAI's crawlers?
    For the live browsing path, yes. OpenAI runs separate user agents for training, browsing, and search indexing. Blocking all of them in robots.txt removes you from retrieval. If you object to training use, block that agent specifically.
    How long does it take to show up in ChatGPT answers?
    For the browsing path, changes can appear as soon as the page is refetched, which is days to weeks. For answers drawn from model memory rather than live retrieval, the timescale is model releases, and no deployment schedule you control affects it.
    Do hidden instructions to the model in page copy work?
    No. Production systems ignore instructions embedded in fetched page content, and crawlers that detect them treat the pattern as a spam signal. It is a way to lose eligibility, not gain it.
    How should I test whether my changes worked?
    Run a fixed set of thirty to fifty prompts several times each, on a schedule, and record which entities and URLs appear. Single tests are worthless because retrieval is stochastic, and model updates shift the baseline for everyone at once.

    Related frameworks

    Related guides