PageSourceSearch

https://www.spyglasses.io/en/blog

html spyglasses.io collected 2026-10-02 05:13:16 UTC 2,808,111 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="__className_2ca027 __variable_2ca027"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/416609230aa89b92.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/f869bdc8509050dd.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/344dff73a517e69a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-db01f6a4e0ee8280.js"/>
1<script src="/_next/static/chunks/6cf51457-0d8d4d70d1cd1fcf.js" async=""></script>
1<script src="/_next/static/chunks/28800-e82087528f9d1a86.js" async=""></script>
1<script src="/_next/static/chunks/main-app-be08392f22c71122.js" async=""></script>
1<script src="/_next/static/chunks/91117-146326f2d5e1fb76.js" async=""></script>
1<script src="/_next/static/chunks/app/global-error-f2cac07a9970b5ec.js" async=""></script>
1<script src="/_next/static/chunks/33677-6afd6b923dedbc2c.js" async=""></script>
1<script src="/_next/static/chunks/35142-d89bf1c79602e5ab.js" async=""></script>
1<script src="/_next/static/chunks/72843-d7e2855cead8aeb6.js" async=""></script>
1<script src="/_next/static/chunks/878-667186b4d103cd10.js" async=""></script>
1<script src="/_next/static/chunks/app/(marketing)/%5Blocale%5D/blog/page-98a98a788f19aed2.js" async=""></script>
1<script src="/_next/static/chunks/c4866c91-55e97c9a60ffbd5b.js" async=""></script>
1<script src="/_next/static/chunks/85837-a80b19d554e3716d.js" async=""></script>
1<script src="/_next/static/chunks/27817-f299dfb2a1001e34.js" async=""></script>
1<script src="/_next/static/chunks/21450-a7b4122295fbf3c1.js" async=""></script>
1<script src="/_next/static/chunks/22334-ec7acbea7f09db49.js" async=""></script>
1<script src="/_next/static/chunks/85905-f1b1c16759e08fda.js" async=""></script>
1<script src="/_next/static/chunks/50802-2af515cb8dc9211e.js" async=""></script>
1<script src="/_next/static/chunks/49349-03641c364d2d9efc.js" async=""></script>
1<script src="/_next/static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js" async=""></script>
1<script src="/_next/static/chunks/24156-30b3702a619ee341.js" async=""></script>
1<script src="/_next/static/chunks/49830-cffdadaa56f901b8.js" async=""></script>
1<script src="/_next/static/chunks/69789-3ae6670fe7a650a6.js" async=""></script>
1<script src="/_next/static/chunks/26160-908b8924d6192bbc.js" async=""></script>
1<script src="/_next/static/chunks/60960-b21bcc2cd79692aa.js" async=""></script>
1<script src="/_next/static/chunks/65146-657da568ee00e55f.js" async=""></script>
1<script src="/_next/static/chunks/6498-6edd8a9301588185.js" async=""></script>
1<script src="/_next/static/chunks/84135-60f725b7a67b9aea.js" async=""></script>
1<script src="/_next/static/chunks/73733-8f3dcecee49eb4b9.js" async=""></script>
1<script src="/_next/static/chunks/77456-ed853258bb9787fd.js" async=""></script>
1<script src="/_next/static/chunks/29467-0e440fda5ef73f3d.js" async=""></script>
1<script src="/_next/static/chunks/81662-2af164e97c76ac86.js" async=""></script>
1<script src="/_next/static/chunks/32175-e9310c2261049276.js" async=""></script>
1<script src="/_next/static/chunks/app/(marketing)/%5Blocale%5D/layout-02dfdae2e8c495f7.js" async=""></script>
1<script src="/_next/static/chunks/42385-08197168f0340a96.js" async=""></script>
1<script src="/_next/static/chunks/app/(marketing)/%5Blocale%5D/not-found-91f83fd0f8150ac3.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LZRKJXGGG1" as="script"/><meta name="next-size-adjust" content=""/>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="min-h-screen bg-background text-foreground antialiased"><div hidden=""><!--$?--><template id="B:0"></template><!--/$--></div><style>#nprogress{pointer-events:none}#nprogress .bar{background:var(--color-primary);position:fixed;z-index:1600;top: 0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px var(--color-primary),0 0 5px var(--color-primary);opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1600;top: 15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","light",null,["light","dark"],null,true,true)</script>
1<!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><nav class="fixed top-0 left-0 z-50 w-full transition-shadow duration-200 shadow-none" data-test="navigation"><div class="container"><div class="relative flex items-center justify-stretch gap-4 transition-[padding] duration-200 xl:gap-6 py-6"><div class="flex flex-1 justify-start"><a class="block hover:no-underline active:no-underline" href="/en"></a></div><div class="hidden flex-2 items-center justify-center lg:flex"><div><button type="button" class="flex items-center gap-1 px-2 py-2 text-base text-foreground/80 hover:text-foreground transition-colors xl:px-3 xl:text-lg">Products<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-4 transition-transform"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="relative"><button type="button" class="flex items-center gap-1 px-2 py-2 text-base text-foreground/80 hover:text-foreground transition-colors xl:px-3 xl:text-lg">Solutions<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-4 transition-transform"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" class="flex items-center gap-1 px-2 py-2 text-base hover:text-foreground transition-colors xl:px-3 xl:text-lg font-bold text-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-4 transition-transform"><path d="m6 9 6 6 6-6"></path></svg></button></div><a class="block px-2 py-2 text-base text-foreground/80 xl:px-3 xl:text-lg" href="/en/pricing">Pricing</a><a class="block px-2 py-2 text-base text-foreground/80 xl:px-3 xl:text-lg" href="/en/docs">Docs</a></div><div class="flex flex-1 items-center justify-end gap-2 xl:gap-3"><!--$?--><template id="B:1"></template><!--/$--><button class="flex items-center justify-center border font-medium enabled:cursor-pointer transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&amp;&gt;svg+svg]:hidden border-transparent bg-secondary/5 text-foreground hover:bg-secondary/10 size-9 rounded-lg [&amp;&gt;svg]:m-0 [&amp;&gt;svg]:opacity-100 lg:hidden" aria-label="Menu" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_3r99fivb_" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu size-4"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button><a class="items-center justify-center border font-medium enabled:cursor-pointer transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&amp;&gt;svg]:mr-1.5 [&amp;&gt;svg]:opacity-60 [&amp;&gt;svg+svg]:hidden border-transparent text-primary hover:bg-primary/10 hover:text-primary h-9 rounded-lg px-4 text-sm hidden whitespace-nowrap lg:flex" href="/auth/login">Log in</a><a class="items-center justify-center border font-medium enabled:cursor-pointer transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&amp;&gt;svg]:mr-1.5 [&amp;&gt;svg]:opacity-60 [&amp;&gt;svg+svg]:hidden border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/90 h-9 rounded-lg px-4 text-sm hidden whitespace-nowrap lg:flex" href="/auth/signup"><span class="xl:hidden">Sign up free</span><span class="hidden xl:inline">Sign up free</span></a></div></div></div></nav><main class="min-h-screen">
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"CollectionPage","name":"Spyglasses Blog","description":"Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity.","url":"https://www.spyglasses.io/en/blog","datePublished":"2025-09-23T00:00:00-05:00","dateModified":"2026-02-19T00:00:00-05:00","publisher":{"@type":"Organization","name":"Spyglasses","url":"https://www.spyglasses.io","logo":{"@type":"ImageObject","url":"https://www.spyglasses.io/images/logo/spyglasses_logotype_brass.svg"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.spyglasses.io/en/blog"},"inLanguage":"en-US"}</script>
1<section class="pt-24 lg:pt-28"><div class="mx-auto max-w-6xl px-6 py-16 sm:py-20"><div class="mx-auto max-w-2xl text-center"><h1 class="text-4xl font-extrabold tracking-tight sm:text-5xl">Spyglasses Blog</h1><p class="mt-3 text-lg text-muted-foreground">Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity.</p></div><div class="mt-12 grid gap-6 md:grid-cols-2"><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Map a Category in AI Answers" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-map-a-category-in-ai-answers.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-map-a-category-in-ai-answers"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Category Tracking</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-map-a-category-in-ai-answers">How to Map a Category in AI Answers</a><p class="mt-2 text-muted-foreground">Buyers ask AI who the options are long before they type anybody&#x27;s brand name. Here&#x27;s how to map a whole market, see which brands AI actually names, and watch the ranking move every day.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/18/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Turn a Category Map Into Prospects" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-turn-a-category-map-into-prospects.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-turn-a-category-map-into-prospects"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->New Business</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-turn-a-category-map-into-prospects">How to Turn a Category Map Into Prospects</a><p class="mt-2 text-muted-foreground">A ranking of who AI names in a market is also a list of who it barely names. Here&#x27;s how to read that list for the brands worth calling, and open the pitch with their own numbers instead of your credentials.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/18/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Watch the Narrative in a Category" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-watch-the-narrative-in-a-category.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-watch-the-narrative-in-a-category"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Key Messages</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Category Tracking</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-watch-the-narrative-in-a-category">How to Watch the Narrative in a Category</a><p class="mt-2 text-muted-foreground">Every market has a story AI keeps repeating, and a short list of publishers it takes that story from. Here&#x27;s how to write the claims down, track them daily, and find the outlets that set the terms.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/18/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="ChatGPT Already Knows Your Domain. Here&#x27;s What That Changes." loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-
1domain.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fdoes-chatgpt-know-your-domain.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/does-chatgpt-know-your-domain"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->grounding searches</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->site consultations</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->domain migration</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->research</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/does-chatgpt-know-your-domain">ChatGPT Already Knows Your Domain. Here&#x27;s What That Changes.</a><p class="mt-2 text-muted-foreground">We asked ChatGPT about 48 brands twice a day for ten days and recorded which site it chose to search. It picked the right domain in over 98% of calls in every tier, including brands whose domain has nothing to do with their name. The one thing it doesn&#x27;t forget is a domain you used to have.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/14/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to See Which Sites AI Trusts (and Fix the Ones It Gets Wrong)" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Citations</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong">How to See Which Sites AI Trusts (and Fix the Ones It Gets Wrong)</a><p class="mt-2 text-muted-foreground">Sometimes an AI assistant skips the open web and reads one specific site before it answers. Which site it picks tells you who it already trusts, and when it picks an address that looks like yours but isn&#x27;t, your authority is landing somewhere you don&#x27;t control. Here&#x27;
1s how to read that list weekly and correct the wrong entries.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/9/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Govern AI Crawlers on Your Site Without Losing AI Visibility" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-govern-ai-crawlers-on-your-site.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-govern-ai-crawlers-on-your-site"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Traffic</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-govern-ai-crawlers-on-your-site">How to Govern AI Crawlers on Your Site Without Losing AI Visibility</a><p class="mt-2 text-muted-foreground">Blocking AI crawlers without hurting your AI search visibility comes down to which agents you block, not which companies. Here&#x27;s how to set a crawler policy on purpose, enforce it where it holds, and confirm you didn&#x27;t cut off the assistants sending you customers.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/8/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Track AI Visibility Through a Merger" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-through-a-merger.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-track-ai-visibility-through-a-merger"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Mergers and Acquisitions</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-track-ai-visibility-through-a-merger">How to Track AI Visibility Through a Merger</a><p class="mt-2 text-muted-foreground">When two companies combine, AI assistants keep answering as if nothing happened. Customers ask whether the acquired product still exists and get last year&#x27;s answer. Here&#x27;s how comms teams track both names through announcement, close, and migration, and prove when the market finally caught up.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/7/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Monitor What AI Says About Your Brand" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-monitor-what-ai-says-about-your-brand.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-monitor-what-ai-says-about-your-brand"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Brand Safety</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-monitor-what-ai-says-about-your-brand">How to Monitor What AI Says About Your Brand</a><p class="mt-2 text-muted-foreground">Legal and comms want to know when an AI assistant says something harmful about your brand, and where it came from. Social listening won&#x27;t tell you; AI answers aren&#x27;t posts and nobody reports them. Here&#x27;s the monitoring setup that catches a risky claim early, shows how often it surfaces, and traces it back to the sources feeding it.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/ima
1ge?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/6/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Build Executive Visibility in AI Answers" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-executive-visibility-in-ai-answers.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-build-executive-visibility-in-ai-answers"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Executive Communications</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-build-executive-visibility-in-ai-answers">How to Build Executive Visibility in AI Answers</a><p class="mt-2 text-muted-foreground">When a reporter, an investor, or a candidate asks an AI assistant who your CEO is, the answer comes from whatever the model can find about them. Here&#x27;s the workflow comms teams use to track an executive as their own subject, measure how accurately AI describes them, compare them against real peers instead of rival companies, and watch the number move.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/5/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Connect Content Work to AI Visibility" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-content-work-to-ai-visibility.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-connect-content-work-to-ai-visibility"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content Strategy</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-connect-content-work-to-ai-visibility">How to Connect Content Work to AI Visibility</a><p class="mt-2 text-muted-foreground">Your team shipped 40 pages last quarter and AI visibility went up 6 points. Did the content do that? Most teams can&#x27;t answer, because nothing connects what they published to what the number did. Here&#x27;s the setup that ties a specific batch of content to a specific measurable change, using page groups, project goals, and dated release markers.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/4/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Measure AI Search Visibility in a New Market" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-visibility-in-a-new-market.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-measure-ai-visibility-in-a-new-market"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Local Search</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-measure-ai-visibility-in-a-new-market">How to Measure AI Search Visibility in a New Market</a><p class="mt-2 text-muted-foreground">How do you measure AI search visibility in a new city, region, or country? Not with your blended brand number, because that&#x27;s mostly made of the market you already own. Here&#x27;s the setup agencies use to track a new market on its own line, from the location scope through local competitors, local prompts, local goals, and per-market share of voice.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/3/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Track Campaign Visibility in AI Answers" loading="lazy" decoding="async" data
1-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-campaign-visibility-in-ai-answers.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-track-campaign-visibility-in-ai-answers"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Earned Media</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-track-campaign-visibility-in-ai-answers">How to Track Campaign Visibility in AI Answers</a><p class="mt-2 text-muted-foreground">A campaign report full of placements says the outreach worked. It doesn&#x27;t say whether AI assistants picked up the story, repeated your messages, or ever read the outlets you pitched. Here&#x27;s how PR teams track a campaign in AI answers from kickoff through the retrospective, using the same flight dates and target list they already have.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/2/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="AI Has a List of Sites It Trusts. Here&#x27;s How to Get On It." loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-trusted-source-list.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/ai-trusted-source-list"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI citations</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->grounding searches</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->earned media</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/ai-trusted-source-list">AI Has a List of Sites It Trusts. Here&#x27;s How to Get On It.</a><p class="mt-2 text-muted-foreground">New Spyglasses research classifies the sites AI consults directly instead of searching the open web. The list is institutional, high-authority, and there&#x27;s a specific kind of page that gets you on it.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/1/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Time Content Updates to AI Recrawl Cadence" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-time-content-updates-to-ai-recrawl-cadence.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-time-content-updates-to-ai-recrawl-cadence"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content Strategy</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-time-content-updates-to-ai-recrawl-cadence">How to Time Content Updates to AI Recrawl Cadence</a><p class="mt-2 text-muted-foreground">Most content updates take two to six weeks to show up in AI answers, because nothing changes until a crawler comes back and re-reads the page. Here&#x27;s how in-house marketing teams measure their real recrawl cadence, find the pages that never get refetched, and stop scheduling work and reports against a timeline that doesn&#x27;t exist.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">9/1/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Fix Pages Competing for the Same Query" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-sa
1me-query.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-fix-pages-competing-for-the-same-query.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-fix-pages-competing-for-the-same-query"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content Strategy</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-fix-pages-competing-for-the-same-query">How to Fix Pages Competing for the Same Query</a><p class="mt-2 text-muted-foreground">Two of your pages answer the same question, so AI search can&#x27;t tell which one to cite and neither one wins. Here&#x27;s how content teams find overlapping pages, pick the canonical one, and consolidate or differentiate the rest without losing the traffic they already have.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/31/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Displace a Competitor in AI Answers" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-displace-a-competitor-in-ai-answers.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-displace-a-competitor-in-ai-answers"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Competitive Analysis</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-displace-a-competitor-in-ai-answers">
1How to Displace a Competitor in AI Answers</a><p class="mt-2 text-muted-foreground">How do you outrank a competitor in AI answers? Agencies find the exact grounding searches a rival owns in ChatGPT, Gemini, and Perplexity, the pages holding those spots, and the third-party sources feeding them. Here&#x27;s the quarter-long workflow, step by step.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/30/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Track a Rebrand in AI Answers" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-a-rebrand-in-ai-answers.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-track-a-rebrand-in-ai-answers"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Rebranding</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-track-a-rebrand-in-ai-answers">
1How to Track a Rebrand in AI Answers</a><p class="mt-2 text-muted-foreground">You can change the name on your website in an afternoon. AI assistants keep answering with the old one for months, because they read a web that hasn&#x27;t caught up yet. Here&#x27;s how comms teams measure the switch and find the sources holding it back.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/29/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to See Which Bots Are Crawling Your Site" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-see-which-bots-are-crawling-your-site.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-see-which-bots-are-crawling-your-site"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Traffic</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-see-which-bots-are-crawling-your-site">How to See Which Bots Are Crawling Your Site</a><p class="mt-2 text-muted-foreground">Your analytics tool shows you almost none of the traffic hitting your site. Bots don&#x27;t run JavaScript, so they never appear. Here&#x27;s how to count them at the server, tell an AI assistant apart from a model trainer, and decide who stays welcome.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/28/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Find Content Gaps From Real AI Questions" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-content-gaps-from-real-ai-questions.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-find-content-gaps-from-real-ai-questions"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content Strategy</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-find-content-gaps-from-real-ai-questions">How to Find Content Gaps From Real AI Questions</a><p class="mt-2 text-muted-foreground">Keyword tools tell you what people type into a search box. AI assistants ask their own questions before they answer, and those questions are a much better content brief. Here&#x27;s how to collect them, find the ones you never answered, and close the gap.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/27/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Build Monthly AI Visibility Client Reports" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-monthly-ai-visibility-client-reports.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-build-monthly-ai-visibility-client-reports"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Client Reporting</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-build-monthly-ai-visibility-client-reports">How to Build Monthly AI Visibility Client Reports</a><p class="mt-2 text-muted-foreground">Most monthly AI visibility reports are a pile of screenshots assembled the day before the call. Here&#x27;s how to build one that takes an hour, explains every movement on the chart, and survives the question every client eventually asks.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_
1hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/26/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Optimize a Press Release for AI Citation Before It Goes Out" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-a-press-release-for-ai-citation.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-optimize-a-press-release-for-ai-citation"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Citation</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Press Release</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-optimize-a-press-release-for-ai-citation">How to Optimize a Press Release for AI Citation Before It Goes Out</a><p class="mt-2 text-muted-foreground">A press release gets one shot before it hits the wire. Score the draft against a real AI query while it&#x27;s still a document on your desk, not after it&#x27;s synced, syndicated, and indexed with whatever weaknesses it shipped with.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/11/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Launch a Product With AI Visibility From Day One" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-launch-a-product-with-ai-visibility-from-day-one.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-launch-a-product-with-ai-visibility-from-day-one"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Product Launch</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-launch-a-product-with-ai-visibility-from-day-one">
1How to Launch a Product With AI Visibility From Day One</a><p class="mt-2 text-muted-foreground">A new product has no AI visibility history to compare against, so most teams wait until after launch to start tracking it. Set up the property, the prompts, and the competitors before launch day, and the first weeks of AI answers become measurable instead of anecdotal.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/10/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Check a Draft for AI Citation Before Publishing" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-check-a-draft-for-ai-citation-before-publishing.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-check-a-draft-for-ai-citation-before-publishing"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Citation</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-check-a-draft-for-ai-citation-before-publishing">How to Check a Draft for AI Citation Before Publishing</a><p class="mt-2 text-muted-foreground">A spelling check catches typos before a draft goes out. This is the same idea for AI citation. Paste a draft in before it&#x27;s live, score it against the query it should win, and fix what&#x27;s broken while it&#x27;s still cheap to fix.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/9/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Prospect New Clients with AI Visibility Reports" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-prospect-new-clients-with-ai-visibility-reports.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-prospect-new-clients-with-ai-visibility-reports"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->New Business</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-prospect-new-clients-with-ai-visibility-reports">How to Prospect New Clients with AI Visibility Reports</a><p class="mt-2 text-muted-foreground">A cold pitch deck gets skimmed. A report showing exactly where a prospect is losing ground in AI search gets read twice. Here&#x27;s the four-step workflow for turning a list of domains into a batch of pitch-ready AI visibility reports.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/8/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Build a PR Pitch List AI Can Actually See" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-build-a-pr-pitch-list-ai-can-actually-see.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Earned Media</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Placements</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see">How to Build a PR Pitch List AI Can Actually See</a><p class="mt-2 text-muted-foreground">A media list ranked by reach can still be full of outlets AI never reads. Here&#x27;s how to score outlets before you pitch, price the placement before you negotiate, and confirm the value after the story runs.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w
1=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/7/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Find and Fix AI Citation Blockers" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-find-and-fix-ai-citation-blockers.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-find-and-fix-ai-citation-blockers"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Citation</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Site Audit</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-find-and-fix-ai-citation-blockers">How to Find and Fix AI Citation Blockers</a><p class="mt-2 text-muted-foreground">A full-site audit hands you a list of a hundred things wrong with your pages. Not all of them are stopping AI from citing you. Here&#x27;s how to tell the difference, fix what actually matters, and prove the fix worked.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/6/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="We Matched Synthetic Prompts to Real Human Intent. The Brand List Transferred. The Percentages Didn&#x27;t." loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fwe-matched-synthetic-prompts-to-human-intent.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/we-matched-synthetic-prompts-to-human-intent"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Research</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Prompt Tracking</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Share of Voice</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Methodology</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/we-matched-synthetic-prompts-to-human-intent">We Matched Synthetic Prompts to Real Human Intent. The Brand List Transferred. The Percentages Didn&#x27;t.</a><p class="mt-2 text-muted-foreground">Four days ago we published a bet. Match a synthetic prompt panel to how real buyers actually ask, and it should mirror a human panel c
1ompletely. We ran the test with the predictions registered in advance. Half the bet paid, and the half that failed turns out to be the more useful result.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/6/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Win a Target AI Grounding Search" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-win-a-target-ai-grounding-search.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-win-a-target-ai-grounding-search"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Citation</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-win-a-target-ai-grounding-search">How to Win a Target AI Grounding Search</a><p class="mt-2 text-muted-foreground">A content brief that says &quot;we need to win this query&quot; starts in a different place than a page you&#x27;re already trying to fix. Here&#x27;s the query-first process for picking the right page, scoring it against the exact search AI runs, and revising until it actually ranks.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/5/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Baseline Your Brand&#x27;s AI Visibility" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-baseline-your-brands-ai-visibility.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-baseline-your-brands-ai-visibility"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Visibility Baseline</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-baseline-your-brands-ai-visibility">How to Baseline Your Brand&#x27;s AI Visibility</a><p class="mt-2 text-muted-foreground">A new client signs, or a prospect takes your call, and the first real question is the same either way. How visible is this brand in AI search right now? Here&#x27;s the five-step playbook for turning a domain name into a baseline that holds up.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/4/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Connect Earned Media to AI Visibility" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-connect-earned-media-to-ai-visibility.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-connect-earned-media-to-ai-visibility"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Earned Media</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-connect-earned-media-to-ai-visibility">How to Connect Earned Media to AI Visibility</a><p class="mt-2 text-muted-foreground">A placement report says the story ran. It doesn&#x27;t say whether AI ever read it. Here&#x27;s how to connect a campaign&#x27;s earned media to what AI assistants actually cite, and report the number that proves the work.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&
1amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/2/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="We Tested Our Own Synthetic Prompts Against 143 Real Humans" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fwe-tested-our-own-synthetic-prompts-against-143-humans.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/we-tested-our-own-synthetic-prompts-against-143-humans"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Research</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Prompt Tracking</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Share of Voice</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Methodology</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/we-tested-our-own-synthetic-prompts-against-143-humans">We Tested Our Own Synthetic Prompts Against 143 Real Humans</a><p class="mt-2 text-muted-foreground">Critics say AI share of voice from synthetic prompts measures nothing real. Instead of arguing, we ran the test on our own prompt generator, against 143 prompts written by real people, and published every number. What we found changes how you should read your dashboard.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/2/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Measure AI as a Marketing Channel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-measure-ai-as-a-marketing-channel.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-measure-ai-as-a-marketing-channel"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->In-house</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Traffic</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-measure-ai-as-a-marketing-channel">How to Measure AI as a Marketing Channel</a><p class="mt-2 text-muted-foreground">Your dashboard has a line for paid, organic, email, and social. It probably doesn&#x27;t have one for AI, so the channel is invisible even when it&#x27;s working. Here&#x27;s how to build that line, using the traffic you already have.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">8/1/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Optimize Existing Content for AI Citation" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-optimize-existing-content-for-ai-citation.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-optimize-existing-content-for-ai-citation"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Citation</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-optimize-existing-content-for-ai-citation">How to Optimize Existing Content for AI Citation</a><p class="mt-2 text-muted-foreground">Most of your citation opportunity isn&#x27;t in content you haven&#x27;t written yet. It&#x27;s sitting on your site already, one fixable gate away from getting picked up. A step-by-step playbook for finding those pages, diagnosing why AI skips them, and fixing what&#x27;s actually broken.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/31/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Run Crisis Communications When AI Is Repeating the Story" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repe
1ating-the-story.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-run-crisis-communications-when-ai-is-repeating-the-story.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Crisis Communications</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story">How to Run Crisis Communications When AI Is Repeating the Story</a><p class="mt-2 text-muted-foreground">When a negative story breaks, people don&#x27;t just read the news. They ask AI about it. A step-by-step playbook for c
1omms teams to find out what AI is saying, trace where it comes from, and measure whether the response is landing.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/30/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Track Your Brand&#x27;s AI Visibility Over Time" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-track-ai-visibility-over-time.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-track-ai-visibility-over-time"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agencies</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Visibility Tracking</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Workflows</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-track-ai-visibility-over-time">How to Track Your Brand&#x27;s AI Visibility Over Time</a><p class="mt-2 text-muted-foreground">A one-time report tells a client where they stand today. Tracking is what proves your work moved the needle. A step-by-step playbook for turning a baseline AI visibility snapshot into a 
1nightly system that catches real movement, not noise.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/30/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="A Modest Defense of Prompt Tracking" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fa-modest-defense-of-prompt-tracking.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/a-modest-defense-of-prompt-tracking"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->prompt tracking</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->methodology</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/a-modest-defense-of-prompt-tracking">A Modest Defense of Prompt Tracking</a><p class="mt-2 text-muted-foreground">The critics of AI visibility tools are right about more than our industry wants to admit. Here&#x27;s what a defensible version of prompt tracking looks like, question by question.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/29/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How People Word a Prompt Changes Whether AI Recommends You" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fprompt-wording-changes-ai-recommendations.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/prompt-wording-changes-ai-recommendations"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->prompt tracking</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->ChatGPT</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->brand mentions</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->research</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/prompt-wording-changes-ai-recommendations">How People Word a Prompt Changes Whether AI Recommends You</a><p class="mt-2 text-muted-foreground">We re-ran SparkToro&#x27;
1s prompt study with 143 real people&#x27;s prompts against ChatGPT, daily for a week. The market leaders showed up no matter how people asked. Everyone else&#x27;s fate depended on the wording. Here&#x27;s what to do about it.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/23/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="You&#x27;re Wasting Money on Prompt Tracking (Updated for 2026)" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-prompt-tracking-waste-of-money.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/youre-wasting-money-on-prompt-tracking"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->prompt tracking</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->
1AI SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/youre-wasting-money-on-prompt-tracking">You&#x27;re Wasting Money on Prompt Tracking (Updated for 2026)</a><p class="mt-2 text-muted-foreground">If all you&#x27;re doing is tracking prompts, you&#x27;re paying to see data you can&#x27;t act on. Here&#x27;s what to focus on instead.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/23/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Only One AI Answer Engine Points People to the Right Moment in Your Video" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fonly-google-cites-youtube-moments.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/only-google-cites-youtube-moments"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->YouTube</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Google AI Overviews</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->video SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->citations</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/only-google-cites-youtube-moments">Only One AI Answer Engine Points People to the Right Moment in Your Video</a><p class="mt-2 text-muted-foreground">A new Spyglasses study found that Google AI Overviews deep-links to the exact second in a YouTube video 44% of the time. ChatGPT, Gemini, and Perplexity never do. Here&#x27;s what that means for video in your AI visibility plan.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/13/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="The Authority Signal AI Learned Before It Ever Heard of Your Brand" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fcommon-crawl-rank-ai-authority.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/common-crawl-rank-ai-authority"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->common crawl</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI training data</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->earned media</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->harmonic centrality</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PageRank</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI visibility</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/common-crawl-rank-ai-authority">The Authority Signal AI Learned Before It Ever Heard of Your Brand</a><p class="mt-2 text-muted-foreground">Before an AI model ever answers a question about your brand, it&#x27;s already decided which websites it trusts. That call comes from C
1ommon Crawl, and one number predicts it well. Here&#x27;s what PR and marketing leaders need to know.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">7/1/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Write a Press Release ChatGPT Will Cite (2026 Guide)" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-to-write-a-press-release-chatgpt-will-cite.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-write-a-press-release-chatgpt-will-cite"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI citations</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI search</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->press release</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->content optimization</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->ChatGPT</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-write-a-press-release-chatgpt-will-cite">How to Write a Press Release ChatGPT Will Cite (2026 Guide)</a><p class="mt-2 text-muted-foreground">Use AI visibility data to optimize content for AI citations: the 8 gates ChatGPT runs before quoting a page, plus how to test a draft pre-publish.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">6/29/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Is AI Blocking Your Best Media Placements?" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fis-ai-blocking-your-best-media-placements.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/is-ai-blocking-your-best-media-placements"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->robots.txt</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->earned media</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI search</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->news outlets</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI policy</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/is-ai-blocking-your-best-media-placements">Is AI Blocking Your Best Media Placements?</a><p class="mt-2 text-muted-foreground">We checked the robots.txt policies of the top 51 U.S. news outlets. 61% block AI assistants from citing their content. Here&#x27;s what that means for your earned media strategy.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">3/4/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Measuring AI Visibility Before and After a Content Refresh" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-visibility-content-refresh.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/measuring-ai-visibility-before-after-content-refresh"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Readiness</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content Strategy</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Site Audit</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Content Refresh</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/measuring-ai-visibility-before-after-content-refresh">Measuring AI Visibility Before and After a Content Refresh</a><p class="mt-2 text-muted-foreground">Content refreshes often improve AI readiness and SEO at the same time, but the AI impact usually goe
1s unmeasured. Here&#x27;s how to change that.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">3/2/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Using AI Readiness Scores to Validate SEO Work" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-readiness-validate-seo.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/using-ai-readiness-scores-to-validate-seo"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Readiness</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Site Audit</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agency Reporting</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/using-ai-readiness-scores-to-validate-seo">Using AI Readiness Scores to Validate SEO Work</a><p class="mt-2 text-muted-foreground">Good SEO work often improves AI citation readiness as a side effect. Running an AI Readiness Audit before and after proves it.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">3/2/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Adding an AI Readiness Audit to Your Website Redesign Deliverables" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-readiness-audit-website-redesign.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/adding-ai-readiness-audit-to-website-redesign"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Readiness</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Site Audit</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Website Redesign</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agency Deliverables</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/adding-ai-readiness-audit-to-website-redesign">Adding an AI Readiness Audit to Your Website Redesign Deliverables</a><p class="mt-2 text-muted-foreground">Website redesigns can help or hurt AI citation readiness. A scored before/after audit shows which, and gives agencies a deliverable most rivals don&#x27;t offer.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">3/1/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How to Use AI Visibility Data to Win New Clients" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-visibility-data-win-clients.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-to-use-ai-visibility-data-to-win-new-clients"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agency Growth</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Lead Generation</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Sales</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-to-use-ai-visibility-data-to-win-new-clients">How to Use AI Visibility Data to Win New Clients</a><p class="mt-2 text-muted-foreground">Generate prospect-specific AI visibility insights in minutes from a domain name. Turn a cold pitch into a data-backed conversation.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">2/28/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-fu
1ll flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="How Agencies Use AI Audits to Win and Retain Clients" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fhow-agencies-use-ai-audits.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/how-agencies-use-ai-audits-to-win-retain-clients"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Agency Growth</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Readiness</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Site Audit</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/how-agencies-use-ai-audits-to-win-retain-clients">How Agencies Use AI Audits to Win and Retain Clients</a><p class="mt-2 text-muted-foreground">The gap between AI visibility scores and client results is where agencies lose deals. Two tools close that gap.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">2/27/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="The Best AI Visibility Tools for PR Firms in 2026" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fbest-ai-visibility-tools-for-pr-firms.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/the-best-ai-visibility-tools-for-pr-firms-in-2026"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->PR</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->SOV</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->How-to</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Comparison</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/the-best-ai-visibility-tools-for-pr-firms-in-2026">The Best AI Visibility Tools for PR Firms in 2026</a><p class="mt-2 text-muted-foreground">Demonstrating the ROI of PR means more than just tracking share of voice in prompts.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/12/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Your 2026 Content Marketing Budget Should Be $0" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fcontent-marketing-budget-cover.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/your-2026-content-marketing-budget-should-be-0"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->content marketing</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->
1marketing budget</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI optimization</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->content strategy</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/your-2026-content-marketing-budget-should-be-0">Your 2026 Content Marketing Budget Should Be $0</a><p class="mt-2 text-muted-foreground">What if you built an SEO article for a long-tail keyword with 33 Rank Difficulty, and nobody came?</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/12/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Your 2026 Website Redesign Budget Should Be $0" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fwebsite-redesign-budget-cover.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/your-2026-website-redesign-budget-should-be-0"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->website redesign</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->
1marketing budget</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI optimization</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->web design</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->ROI</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/your-2026-website-redesign-budget-should-be-0">Your 2026 Website Redesign Budget Should Be $0</a><p class="mt-2 text-muted-foreground">ChatGPT gets 3.2B visits monthly with 89% never clicking through. Your $100K website redesign optimizes for customers who aren&#x27;t coming. Here&#x27;s where they actually are.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/12/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="What To Do Differently Now That Google&#x27;s AI Mode Is Now Live" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fgoogle-ai-mode-analytics-cover.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/google-ai-mode-what-businesses-need-to-know"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Google AI Mode</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->search analytics</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI traffic</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Google Search Console</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/google-ai-mode-what-businesses-need-to-know">What To Do Differently Now That Google&#x27;s AI Mode Is Now Live</a><p class="mt-2 text-muted-foreground">Google&#x27;s AI Mode has rolled out to all US users and now counts in Search Console data. But the most important metric—how often AI mentions your business without sending clicks—remains invisible.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/10/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="11 Questions Your AI SEO Strategy Should Answer" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-seo-strategy-questions.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/11-questions-your-ai-seo-strategy-should-answer"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->
1AI SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->brand visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->ChatGPT</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Claude</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Perplexity</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI strategy</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->search optimization</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/11-questions-your-ai-seo-strategy-should-answer">11 Questions Your AI SEO Strategy Should Answer</a><p class="mt-2 text-muted-foreground">11 essential questions to ask yourself to measure if your AI SEO strategy is actually effective.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/9/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Tools to Measure AI Search Visibility: A Buyer&#x27;s Guide for 2025" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Ftools-to-measure-ai-search-visibility.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/tools-to-measure-ai-search-visibility-buyers-guide-2025"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->
1AI SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Comparison</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/tools-to-measure-ai-search-visibility-buyers-guide-2025">Tools to Measure AI Search Visibility: A Buyer&#x27;s Guide for 2025</a><p class="mt-2 text-muted-foreground">What to look for in an AI Visibility Tracking platform for your agency in 2025.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/8/2026</p></div></div></div></div><div style="transition-delay:60ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Why AI Conversion Metrics Are the New Gold Standard for Online Businesses" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-conversion-metrics-cover.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/why-ai-conversion-metrics-are-the-new-gold-standard"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI analytics</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->conversion metrics</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->digital marketing</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->sales funnel</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->ROI</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/why-ai-conversion-metrics-are-the-new-gold-standard">Why AI Conversion Metrics Are the New Gold Standard for Online Businesses</a><p class="mt-2 text-muted-foreground">Traditional conversion metrics miss a huge part of your sales funnel. Learn how AI conversion rates help you optimize for the future of customer discovery.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/7/2026</p></div></div></div></div><div style="transition-delay:120ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Should You Block AI From Using Your Website&#x27;s Data?" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-data-blocking-cover.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/should-you-block-ai-from-accessing-your-websites-data"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->web crawling</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->data protection</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->content strategy</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/should-you-block-ai-from-accessing-your-websites-data">Should You Block AI From Using Your Website&#x27;s Data?</a><p class="mt-2 text-muted-foreground">With AI models increasingly crawling the web for training data, website owners face a critical decision. Learn when to block AI crawlers and when to welcome them.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/6/2026</p></div></div></div></div><div style="transition-delay:180ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="Do I Need an LLMs.txt for My Website?" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fdo-i-need-an-llms-txt-for-my-website.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/do-i-need-an-llms-txt-for-my-website"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->LLMs.txt</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI crawlers</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->web standards</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->data protection</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI policy</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/do-i-need-an-llms-txt-for-my-website">Do I Need an LLMs.txt for My Website?</a><p class="mt-2 text-muted-foreground">Does adding an LLMs.txt to your site actually do anything? See what our data shows.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920
1w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/5/2026</p></div></div></div></div><div style="transition-delay:0ms" class="min-w-0 motion-safe:transition-all motion-safe:duration-700 motion-safe:ease-out motion-safe:translate-y-6 motion-safe:opacity-0"><div class="flex h-full flex-col rounded-2xl border bg-card p-6"><div class="-mx-4 -mt-4 relative mb-4 aspect-16/9 overflow-hidden rounded-xl"><img alt="AI Citation Tracking Tools" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fai-citation-tracking-tools.webp&amp;w=3840&amp;q=75"/><a class="absolute inset-0" href="/en/blog/ai-citation-tracking-tools"></a></div><div class="mb-2 flex flex-wrap gap-2"><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI SEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->GEO</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI citations</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->AI Search Visibility</span><span class="font-semibold text-primary text-xs uppercase tracking-wider">#<!-- -->Comparison</span></div><a class="block text-xl font-bold hover:text-primary" href="/en/blog/ai-citation-tracking-tools">AI Citation Tracking Tools</a><p class="mt-2 text-muted-foreground">How to Monitor Brand Mentions in ChatGPT, Google AI Overviews, Claude &amp; Perplexity.</p><div class="mt-4 flex items-center justify-between pt-2"><div class="flex items-center"><div class="relative mr-2 size-8 overflow-hidden rounded-full"><img alt="Jim Wrubel" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-center" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="96px" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=16&amp;q=75 16w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=32&amp;q=75 32w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=48&amp;q=75 48w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=64&amp;q=75 64w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=96&amp;q=75 96w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=128&amp;q=75 128w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=256&amp;q=75 256w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=384&amp;q=75 384w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fjwrubel_hs_square.webp&amp;w=3840&amp;q=75"/></div><div><p class="text-sm font-semibold text-muted-foreground">Jim Wrubel</p></div></div><div class="mr-0 ml-auto"><p class="text-sm text-muted-foreground">1/4/2026</p></div></div></div></div></div></div></section><!--$?--><template id="B:2"></template><!--/$--></main>
1<footer class="border-t py-12 text-foreground/60 text-sm"><div class="container"><div class="grid grid-cols-2 gap-8 sm:grid-cols-3 lg:grid-cols-5"><div class="col-span-2 sm:col-span-3 lg:col-span-2"><p class="text-foreground/60 text-sm max-w-md">Complete visibility into your website&#x27;s AI traffic. Track AI agents, block unwanted bots, and optimize for the future of customer discovery.</p></div><div class="flex flex-col gap-2"><h4 class="font-semibold text-foreground mb-1">Track</h4><a class="block hover:text-foreground" href="/en/ai-visibility-report">AI Visibility Report</a><a class="block hover:text-foreground" href="/en/prompt-tracking">Daily Prompt Tracking</a><a class="block hover:text-foreground" href="/en/person-tracking">Person Tracking</a><a class="block hover:text-foreground" href="/en/location-tracking">Location Tracking</a><a class="block hover:text-foreground" href="/en/product-tracking">Product Tracking</a><a class="block hover:text-foreground" href="/en/category-tracking">Category Tracking</a><a class="block hover:text-foreground" href="/en/ai-traffic-analytics">AI Traffic Analytics</a><h4 class="font-semibold text-foreground mt-3">Score</h4><a class="block hover:text-foreground" href="/en/citation-intelligence">Citation Intelligence</a><a class="block hover:text-foreground" href="/en/ai-placement-value-score">AI Placement Value Score</a><a class="block hover:text-foreground" href="/en/ai-placement-quality-score">AI Placement Quality Score</a><h4 class="font-semibold text-foreground mt-3">Optimize</h4><a class="block hover:text-foreground" href="/en/citation-optimizer">Citation Optimizer</a><a class="block hover:text-foreground" href="/en/ai-readiness-audit">AI Readiness Audit</a><a class="block hover:text-foreground" href="/en/faq-generation">FAQ Generator</a><a class="block hover:text-foreground" href="/en/mcp-server">MCP Server</a><h4 class="font-semibold text-foreground mt-3">For PR teams</h4><a class="block hover:text-foreground" href="/en/media-list">Media Lists</a><a class="block hover:text-foreground" href="/en/coverage-report">Coverage Reports</a><h4 class="font-semibold text-foreground mt-3">Free Tools</h4><a class="block hover:text-foreground" href="/en/ai-access-checker">AI Access Checker</a><a class="block hover:text-foreground" href="/en/common-crawl-rank-checker">Common Crawl Rank Checker</a><a class="block hover:text-foreground" href="/en/is-your-ai-visibility-data-reliable">AI Visibility Calculator</a><a class="block hover:text-foreground" href="/en/free-ai-visibility-prompt-generator">AI Visibility Prompt Generator</a><a class="block hover:text-foreground" href="/en/personal-ai-visibility-report">Personal AI Visibility Report</a><a class="block hover:text-foreground" href="/en/ai-analytics-live">AI Analytics Demo</a><h4 class="font-semibold text-foreground mt-3">Solutions</h4><a class="block hover:text-foreground" href="/en/for-agencies">For Agencies</a><a class="block hover:text-foreground" href="/en/for-pr-firms">For PR Firms</a><a class="block hover:text-foreground" href="/en/services">Services</a></div><div class="flex flex-col gap-2"><h4 class="font-semibold text-foreground mb-3">Resources</h4><a class="block hover:text-foreground" href="/en/demo">Schedule Demo</a><a class="block hover:text-foreground" href="/en#pricing">Pricing</a><a class="block hover:text-foreground" href="/en/docs">Documentation</a><a class="block hover:text-foreground" href="/en/blog">Blog</a><a class="block hover:text-foreground" href="/en/bots">Agent Insights</a><h4 class="font-semibold text-foreground mt-3">Methodology</h4><a class="block hover:text-foreground" href="/en/docs/methodology/ai-visibility-data-collection">How We Collect Data</a><a class="block hover:text-foreground" href="/en/docs/methodology/ai-placement-value-score">AI Placement Value Score</a><a class="block hover:text-foreground" href="/en/docs/methodology/ai-placement-quality-score">AI Placement Quality Score</a><a class="block hover:text-foreground" href="/en/docs/methodology/citation-optimizer">Citation Optimizer</a><h4 class="font-semibold text-foreground mt-3">Company</h4><a class="block hover:text-foreground" href="/en/contact">Contact</a><a class="block hover:text-foreground" href="/en/demo">Schedule Demo</a><a href="https://press-kit.spyglasses.io" target="_blank" rel="noopener noreferrer" class="block hover:text-foreground">Press Kit</a><a href="https://brand-book.spyglasses.io" target="_blank" rel="noopener noreferrer" class="block hover:text-foreground">Brand Book</a></div><div class="flex flex-col gap-2"><h4 class="font-semibold text-foreground mb-3">Legal</h4><a class="block hover:text-foreground" href="/en/legal/privacy-policy">Privacy Policy</a><a class="block hover:text-foreground" href="/en/legal/terms">Terms of Service</a><a class="block hover:text-foreground" href="/en/legal/subprocessors">Subprocessors</a></div></div><div class="mt-8 pt-8 border-t"><div class="grid grid-cols-1 gap-6 lg:grid-cols-2 items-center"><div id="newsletter"><h4 class="font-semibold text-foreground mb-2">Stay Updated</h4>
1<p class="text-foreground/60 text-sm mb-4">Get notified about new features, integrations, and AI traffic insights.</p><form class="max-w-md"><div class="flex items-start gap-2"><div class="flex-1"><input type="email" class="flex h-9 w-full rounded-lg border border-input px-3 py-1 transition-colors file:border-0 file:bg-transparent file:font-medium file:text-sm placeholder:text-foreground/60 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:border-ring focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 text-sm" required="" placeholder="Email" name="email"/></div><button class="flex items-center justify-center border font-medium enabled:cursor-pointer transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&amp;&gt;svg]:mr-1.5 [&amp;&gt;svg]:opacity-60 [&amp;&gt;svg+svg]:hidden border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/90 h-8 rounded-lg px-3 text-xs" type="submit">Subscribe</button></div></form></div><div class="lg:text-right"><p class="text-foreground/40 text-xs">© 2026 Orchestra AI, Inc. All rights reserved.</p></div></div></div></div></footer><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
1<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
1<script src="/_next/static/chunks/webpack-db01f6a4e0ee8280.js" id="_R_" async=""></script>
1<div hidden id="S:1"><button class="flex items-center justify-center border font-medium enabled:cursor-pointer transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&amp;&gt;svg+svg]:hidden border-transparent text-primary hover:bg-primary/10 hover:text-primary size-9 rounded-lg [&amp;&gt;svg]:m-0 [&amp;&gt;svg]:opacity-100" aria-label="Language" type="button" id="radix-_R_2r99fivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages size-4"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg></button></div>
1<script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
2$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:1","S:1")</script>
2<div hidden id="S:2"></div>
2<script>$RC("B:2","S:2")</script>
2<title>AI Visibility &amp; AEO Insights | Spyglasses Blog</title><meta name="description" content="Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity."/><meta name="author" content="Spyglasses"/><meta name="keywords" content="AI visibility platform,AI search optimization,AEO,GEO,AI citation tracking,ChatGPT visibility,Google AI Overviews,white-labeled AI reports,agency AI tools,PR AI measurement,earned media AI"/><meta name="creator" content="Spyglasses"/><meta name="publisher" content="Spyglasses"/><meta name="robots" content="index, follow"/><meta name="category" content="technology"/><link rel="canonical" href="https://www.spyglasses.io/en/blog"/><link rel="alternate" hrefLang="x-default" href="https://www.spyglasses.io/en/blog"/><link rel="alternate" hrefLang="en-US" href="https://www.spyglasses.io/en/blog"/><link rel="alternate" hrefLang="de-DE" href="https://www.spyglasses.io/de/blog"/><meta name="format-detection" content="telephone=no, address=no, email=no"/><meta property="og:title" content="Spyglasses | AI Visibility Platform for Agencies &amp; PR Firms"/><meta property="og:description" content="The AI visibility platform for marketing agencies and PR firms. Track how brands appear in ChatGPT, Gemini, and Google AI Overviews, then optimize what AI sees."/><meta property="og:url" content="https://www.spyglasses.io"/><meta property="og:site_name" content="Spyglasses"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://www.spyglasses.io/images/og-image.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Spyglasses, the AI visibility platform for agencies and PR firms"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Spyglasses | AI Visibility Platform for Agencies &amp; PR Firms"/><meta name="twitter:description" content="The AI visibility platform for marketing agencies and PR firms. Track how brands appear in ChatGPT, Gemini, and Google AI Overviews, then optimize what AI sees."/><meta name="twitter:image" content="https://www.spyglasses.io/images/og-image.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><meta name="twitter:image:alt" content="Spyglasses, the AI visibility platform for agencies and PR firms"/><link rel="icon" href="/favicon.ico" sizes="48x48" type="image/x-icon"/>
2<script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script>
2<div hidden id="S:0"></div>
2<script>$RC("B:0","S:0")</script>
2<script>(self.__next_f=self.__next_f||[]).push([0])</script>
2<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[86655,[],\"\"]\n3:I[31523,[],\"\"]\n6:I[27638,[],\"OutletBoundary\"]\n8:I[77579,[],\"AsyncMetadataOutlet\"]\na:I[27638,[],\"ViewportBoundary\"]\nc:I[27638,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[13027,[\"91117\",\"static/chunks/91117-146326f2d5e1fb76.js\",\"34219\",\"static/chunks/app/global-error-f2cac07a9970b5ec.js\"],\"default\"]\n10:I[77454,[\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"72843\",\"static/chunks/72843-d7e2855cead8aeb6.js\",\"878\",\"static/chunks/878-667186b4d103cd10.js\",\"12114\",\"static/chunks/app/(marketing)/%5Blocale%5D/blog/page-98a98a788f19aed2.js\"],\"Reveal\"]\n11:I[17023,[\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"72843\",\"static/chunks/72843-d7e2855cead8aeb6.js\",\"878\",\"static/chunks/878-667186b4d103cd10.js\",\"12114\",\"static/chunks/app/(marketing)/%5Blocale%5D/blog/page-98a98a788f19aed2.js\"],\"PostListItem\"]\n4c:I[35670,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"NuqsAdapter\"]\n4d:I[48553,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e921"])</script>
2<script>self.__next_f.push([1,"50.js\"],\"ConsentProvider\"]\n4e:I[9901,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"\"]\n4f:I[90181,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"ThemeProvider\"]\n50:I[58046,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"ApiClientProvider\"]\n51:I[50559,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1"])</script>
2<script>self.__next_f.push([1,"c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"Provider\"]\n"])</script>
2<script>self.__next_f.push([1,"52:I[9132,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"24156\",\"static/chunks/24156-30b3702a619ee341.js\",\"49830\",\"static/chunks/49830-cffdadaa56f901b8.js\",\"69789\",\"static/chunks/69789-3ae6670fe7a650a6.js\",\"26160\",\"static/chunks/26160-908b8924d6192bbc.js\",\"60960\",\"static/chunks/60960-b21bcc2cd79692aa.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"65146\",\"static/chunks/65146-657da568ee00e55f.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"6498\",\"static/chunks/6498-6edd8a9301588185.js\",\"84135\",\"static/chunks/84135-60f725b7a67b9aea.js\",\"73733\",\"static/chunks/73733-8f3dcecee49eb4b9.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"77456\",\"static/chunks/77456-ed853258bb9787fd.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"29467\",\"static/chunks/29467-0e440fda5ef73f3d.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"81662\",\"static/chunks/81662-2af164e97c76ac86.js\",\"32175\",\"static/chunks/32175-e9310c2261049276.js\",\"64222\",\"static/chunks/app/(marketing)/%5Blocale%5D/layout-02dfdae2e8c495f7.js\"],\"I18nProvider\"]\n"])</script>
2<script>self.__next_f.push([1,"53:I[44037,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"24156\",\"static/chunks/24156-30b3702a619ee341.js\",\"49830\",\"static/chunks/49830-cffdadaa56f901b8.js\",\"69789\",\"static/chunks/69789-3ae6670fe7a650a6.js\",\"26160\",\"static/chunks/26160-908b8924d6192bbc.js\",\"60960\",\"static/chunks/60960-b21bcc2cd79692aa.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"65146\",\"static/chunks/65146-657da568ee00e55f.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"6498\",\"static/chunks/6498-6edd8a9301588185.js\",\"84135\",\"static/chunks/84135-60f725b7a67b9aea.js\",\"73733\",\"static/chunks/73733-8f3dcecee49eb4b9.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"77456\",\"static/chunks/77456-ed853258bb9787fd.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"29467\",\"static/chunks/29467-0e440fda5ef73f3d.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"81662\",\"static/chunks/81662-2af164e97c76ac86.js\",\"32175\",\"static/chunks/32175-e9310c2261049276.js\",\"64222\",\"static/chunks/app/(marketing)/%5Blocale%5D/layout-02dfdae2e8c495f7.js\"],\"RootProvider\"]\n"])</script>
2<script>self.__next_f.push([1,"55:I[17862,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"Toaster\"]\n56:I[6513,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"AnalyticsScript\"]\nc7:I[24001,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"default\"]\nc9:I[56315,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"st"])</script>
2<script>self.__next_f.push([1,"atic/chunks/50802-2af515cb8dc9211e.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"64437\",\"static/chunks/app/(reports)/%5Blocale%5D/layout-4e1bffd5b2e92150.js\"],\"SessionProvider\"]\n"])</script>
2<script>self.__next_f.push([1,"ca:I[11682,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"24156\",\"static/chunks/24156-30b3702a619ee341.js\",\"49830\",\"static/chunks/49830-cffdadaa56f901b8.js\",\"69789\",\"static/chunks/69789-3ae6670fe7a650a6.js\",\"26160\",\"static/chunks/26160-908b8924d6192bbc.js\",\"60960\",\"static/chunks/60960-b21bcc2cd79692aa.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"65146\",\"static/chunks/65146-657da568ee00e55f.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"6498\",\"static/chunks/6498-6edd8a9301588185.js\",\"84135\",\"static/chunks/84135-60f725b7a67b9aea.js\",\"73733\",\"static/chunks/73733-8f3dcecee49eb4b9.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"77456\",\"static/chunks/77456-ed853258bb9787fd.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"29467\",\"static/chunks/29467-0e440fda5ef73f3d.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"81662\",\"static/chunks/81662-2af164e97c76ac86.js\",\"32175\",\"static/chunks/32175-e9310c2261049276.js\",\"64222\",\"static/chunks/app/(marketing)/%5Blocale%5D/layout-02dfdae2e8c495f7.js\"],\"NavBar\"]\n"])</script>
2<script>self.__next_f.push([1,"cc:I[40946,[\"15535\",\"static/chunks/c4866c91-55e97c9a60ffbd5b.js\",\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"24156\",\"static/chunks/24156-30b3702a619ee341.js\",\"49830\",\"static/chunks/49830-cffdadaa56f901b8.js\",\"69789\",\"static/chunks/69789-3ae6670fe7a650a6.js\",\"26160\",\"static/chunks/26160-908b8924d6192bbc.js\",\"60960\",\"static/chunks/60960-b21bcc2cd79692aa.js\",\"85837\",\"static/chunks/85837-a80b19d554e3716d.js\",\"27817\",\"static/chunks/27817-f299dfb2a1001e34.js\",\"65146\",\"static/chunks/65146-657da568ee00e55f.js\",\"21450\",\"static/chunks/21450-a7b4122295fbf3c1.js\",\"6498\",\"static/chunks/6498-6edd8a9301588185.js\",\"84135\",\"static/chunks/84135-60f725b7a67b9aea.js\",\"73733\",\"static/chunks/73733-8f3dcecee49eb4b9.js\",\"22334\",\"static/chunks/22334-ec7acbea7f09db49.js\",\"77456\",\"static/chunks/77456-ed853258bb9787fd.js\",\"85905\",\"static/chunks/85905-f1b1c16759e08fda.js\",\"50802\",\"static/chunks/50802-2af515cb8dc9211e.js\",\"29467\",\"static/chunks/29467-0e440fda5ef73f3d.js\",\"49349\",\"static/chunks/49349-03641c364d2d9efc.js\",\"81662\",\"static/chunks/81662-2af164e97c76ac86.js\",\"32175\",\"static/chunks/32175-e9310c2261049276.js\",\"64222\",\"static/chunks/app/(marketing)/%5Blocale%5D/layout-02dfdae2e8c495f7.js\"],\"Footer\"]\n"])</script>
2<script>self.__next_f.push([1,"cd:I[48378,[\"33677\",\"static/chunks/33677-6afd6b923dedbc2c.js\",\"35142\",\"static/chunks/35142-d89bf1c79602e5ab.js\",\"42385\",\"static/chunks/42385-08197168f0340a96.js\",\"82452\",\"static/chunks/app/(marketing)/%5Blocale%5D/not-found-91f83fd0f8150ac3.js\"],\"NotFound\"]\nce:I[3507,[],\"IconMark\"]\n:HL[\"/_next/static/css/416609230aa89b92.css\",\"style\"]\n:HL[\"/_next/static/css/f869bdc8509050dd.css\",\"style\"]\n:HL[\"/_next/static/media/de42cfb9a3b980ae-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/344dff73a517e69a.css\",\"style\"]\n"])</script>
2<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"qV0B54dQ7fWxD9el8MWqk\",\"p\":\"\",\"c\":[\"\",\"en\",\"blog\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(marketing)\",{\"children\":[[\"locale\",\"en\",\"d\"],{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/416609230aa89b92.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f869bdc8509050dd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"(marketing)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"locale\",\"en\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/344dff73a517e69a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L4\"]}],{\"children\":[\"blog\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{}
2,null,false]},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":false}\n"])</script>
2<script>self.__next_f.push([1,"12:T381c,"])</script>
2<script>self.__next_f.push([1,"Mapping a category means measuring a market instead of a company. You name the market and start a report. It writes the questions buyers actually ask, puts them to ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, and reads back the list of brands the answers name. Then you keep asking them, because one day of answers is a snapshot and the ranking is the product.\n\nIt takes five steps, and the second one does most of the work. The brands come out of the first report rather than going into it, and so do the first prompts.\n\nMost AI visibility work starts from a brand you already own. You know the subject, you write prompts around it, you name the competitors you care about, and the numbers tell you how you're doing. That breaks down in two situations that come up constantly. You're an agency pitching a vertical and you don't have the client yet, so there's no brand to center the measurement on. Or you're in-house and the question isn't \"how are we doing,\" it's \"who is AI sending these buyers to before they've heard of anyone.\"\n\nA category answers both. There's no website, no client, and no focal brand. There's a market, and a ranking of everyone AI names inside it.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/category-tracking).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Name the category | Describing the market and the buyer | A subject with no brand at the center of it |\n| 2. Start the report | Getting a first set of prompts asked across the platforms | One completed report and a first list of brands |\n| 3. Review the brands | Cutting the noise, adding the misses | Five or more real brands in the ranking |\n| 4. Round out the prompts | Building the starter set into a real panel | 15 or more prompts, two buying stages covered |\n| 5. Track it every day | Putting the prompts on a schedule | A 7-day change on every brand |\n\n## Name the category\n\nStart with the market, phrased the way a buyer would say it out loud. \"Wireless headphones.\" \"Project management software for construction firms.\" \"Home saunas.\" Not a segment name from a deck, and not a phrase only an analyst uses.\n\nThen describe it in one sentence covering what buyers are choosing between and who those buyers are. This sentence does more work than anything else in the setup, because it's what the report reads when it writes your first prompts. A vague sentence produces vague prompts, and vague prompts produce answers about the wrong market.\n\nAdd the other phrases buyers use for the same thing. Plenty of markets have two or three names depending on who's talking; the industry term, the plain-English term, and whatever the biggest vendor calls it. If buyers say all three, all three belong here.\n\nOne rule that saves rework later. Keep brand names out of the category description entirely, including your own. The whole point is to see who AI volunteers on its own, and a description that mentions a brand contaminates every prompt generated from it.\n\n\u003cWorkflowCallout\n  title=\"A subject with no website and no focal brand\"\n  page=\"Organization dashboard\"\n  href=\"/docs/ai-visibility-features/category-tracking\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Category named the way buyers say it\", done: true },\n      { label: \"One-sentence description written\", done: true },\n      { label: \"Two alternate phrases added\", done: true },\n      { label: \"No brand names in the description\", done: false },\n    ],\n  }}\n\u003e\n  Adding a property and picking Category as the subject skips everything that assumes a website. There's no crawl, no site audit, and no brand consistency score, because none of those have a subject to attach to. What you get instead is the whole field in one view, which a brand-level report can't give you.\n\u003c/WorkflowCallout\u003e\n\n## Start the report\n\nStart it as soon as the market exists. There's nothing to prepare first. If the category has no prompts yet, the report writes its first five from your description, spread across the buying stages, and saves them to the Prompts page. Then it asks every one of them across the major AI platforms in a single pass and comes back with the brands each answer named. That list is the map, and it's the first time anyone sees it.\n\nGive it four to fifteen minutes. Then read it in a specific order, be
2cause the ranking on its own is the least surprising part.\n\nRead the top first, and expect to already know those names. The leader in most markets is the brand everybody would have guessed, and confirming it took ten minutes instead of a research project.\n\nThen read the middle, which is where the useful part usually starts. Brands sitting between five and fifteen percent are the ones with real presence and no lock on the category.\n\nThen read for the names you didn't expect. Every first category report turns up two or three of them. Sometimes it's a regional player punching above its size. Sometimes it's a brand from an adjacent market that AI has decided belongs in this one. Occasionally it's a company that shut down two years ago and lives on in the model's memory, which tells you something about how stale the sources are.\n\n\u003cWorkflowCallout\n  title=\"The brands come out of the report, not into it\"\n  page=\"AI Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"count\",\n    label: \"Brands found in the first report\",\n    value: 23,\n    target: 5,\n    caption: \"5 prompts written and asked across 5 platforms\",\n  }}\n\u003e\n  A category report leads with who AI names, ranked by share of answers, followed by the movers, the markets, the key messages, and the sources behind the answers. It has no consistency section and no \"you versus them\" framing, because there's no \"you\" in a market. A market with no prompts gets a starter set written for it rather than a refusal, so the first report is always the first thing you do. Until it completes, the Brands list is empty; nothing has been asked yet.\n\u003c/WorkflowCallout\u003e\n\n## Review the brands AI named\n\nThe report suggests the brands it found. Your job is to decide which of them are real, and that judgment is what makes the ranking mean anything.\n\nCut three kinds of noise. Product names that got read as companies. Brands from a neighboring market that don't compete for this buyer. And the generic terms that slipped through as names, which happens more in markets where the category label and a vendor name are close.\n\nDeactivate the noise instead of deleting it. A deactivated name stays on the list, switched off, so the next report can't add it again. A deleted name is forgotten, and a later report can find it all over again.\n\nThen add what AI missed. If buyers in this market ask about a company by name and the ranking doesn't have it, it belongs on the list. A brand at zero is a finding, not an omission; it means buyers know a name that AI never volunteers.\n\nLast, add the aliases. Short names, nicknames, the old name after a rebrand, the parent company where people use it interchangeably. A brand tracked under one spelling while AI uses another reads as absent, and there's nothing on the dashboard to tell you that's what happened.\n\nFive real brands is the working minimum for a ranking anybody will trust. Most markets land between ten and twenty-five.\n\n\u003cWorkflowCallout\n  title=\"Cleanups stick, because discovery is additive\"\n  page=\"Brands\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"6 non-brands removed\", done: true },\n      { label: \"3 brands buyers ask about added\", done: true },\n      { label: \"Aliases added for the two rebrands\", done: true },\n      { label: \"Near-duplicate spellings merged\", done: false },\n    ],\n  }}\n\u003e\n  The list is called Brands rather than Competitors, because in a market there's no \"you\" for them to compete with. Discovery only adds names that aren't on your list yet, so a brand you deactivate stays out instead of reappearing on the next run. Each brand carries its share of answers and a 7-day change.\n\u003c/WorkflowCallout\u003e\n\n## Round out the prompts buyers ask\n\nYou have a starter set now, written from your description. It's enough to see the shape of the market and not enough to trust week to week.\n\nA category has no site to measure, so the prompts are the entire instrument. Get them right and everything downstream works. Get them wrong and you'll measure a market you don't sell into. Read what the report wrote, cut what missed, and build from there.\n\nThe test for a good category prompt is simple. It describes a problem and a buyer, and it names nobody. \"What headphones should I take on a long flight?\" is a category prompt. \"Are Acme headphones good for flying?\" is a brand prompt wearing a costume, and it will hand you an answer about one company.\n\nCover at least two buying stages, and three if you can. The stages pull different names out of the model, which is the reason to separate them at all.\n\n| Stage | What the buyer is asking | What the answer usually contains |\n| :--- | :--- | :--- |\n| Awareness | How the problem gets solved at all | An explanation, sometimes with no brands in it |\n| Consideration | Who the options are | A list of names, which is where the ranking comes from |\n| Decision | Which option fits a constraint | A shorter list, often with different names on it |\n\nConsideration prompts carry most of the ranking, because the answer is literally a list of who gets named. Decision prompts are worth the effort anyway, since they routinely surface brands that never appear in the broader questions. That gap is often the most interesting thing the second report turns up.\n\nFifteen prompts is a working floor, three times what the report starts you with. Tag the whole set with the market's name while you're building it, so every dashboard downstream can filter to this market in one click.\n\n\u003cWorkflowCallout\n  title=\"Prompts generated from the market, not from a brand\"\n  page=\"Prompts\"\n  href=\"/docs/getting-started/choosing-prompts\"\n  signal={{\n    kind: \"count\",\n    label: \"Active prompts\",\n    value: 18,\n    target: 15,\n    caption: \"2 of 3 buying stages covered\",\n  }}\n\u003e\n  The generator reads the category description and writes the questions buyers put to AI about that market, which you then review, cut, and add to by hand. Tagging the set keeps it filterable everywhere else. The first report already ran one pass of this for you, so this 
2step is the edit rather than the blank page.\n\u003c/WorkflowCallout\u003e\n\n## Track it every day\n\nOne report is one day of a market, run on one set of answers. The ranking is what you were after, and a ranking needs history before it can tell you anything.\n\nPut the same prompts on daily tracking under a project named for the market. From then on the number worth reading isn't the ranking; it's the 7-day change next to each brand. Leaders barely move week to week. The brand that climbed four points did something, or somebody wrote something about it, and that's the thread worth pulling.\n\nA few weeks in, the map starts answering questions you didn't set it up for. Which brands are gaining without any coverage you can find. Which new entrant showed up the first day AI named it. Which claim started appearing in answers about the market right after a trade outlet ran a feature.\n\nIf the market matters in more than one place, add cities or regions as locations. Each one runs the same prompts against local answers and gets its own ranking and its own leader, and the regional leader is different from the national one often enough to be worth checking before anybody builds a territory plan. Budget for it, though; a tracked prompt on a category with three locations uses four prompt runs a day rather than one.\n\n\u003cWorkflowCallout\n  title=\"The 7-day change is the number to watch\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"trend\",\n    label: \"Share of answers, the brand in fourth place\",\n    series: [6.1, 6.4, 6.2, 7.0, 8.3, 9.1, 9.8],\n    change: 3.7,\n    suffix: \"%\",\n  }}\n\u003e\n  A General project puts the category prompts on a daily schedule, so the ranking builds history instead of resetting with every report. Share of answers is the percentage of completed answers a brand appears in, which means the values don't add up to 100; one answer usually names several brands and plenty name none. Read brands against each other and against last week, never against 100.\n\u003c/WorkflowCallout\u003e\n\n## What the map is good for once it exists\n\nA finished category map does three jobs, and only the first one is obvious.\n\nIt tells you who the field is, which is worth the setup on its own if you're walking into a market you don't know yet. It tells you who's moving, which is the part that stays useful in month six. And it tells you where the answers come from, because every tracked answer carries its sources, so the publishers AI reads for this market are sitting right there before you've pitched anyone.\n\nThat third one is why the same map gets used two more ways. An agency turns the ranking into a pitch list, since a brand buyers know well that AI rarely names has a gap it can be shown; [turning a category map into prospects](/blog/how-to-turn-a-category-map-into-prospects) covers that end to end. A comms team goes at the claims instead of the names, tracking which parts of the market's story AI repeats and which outlets it takes them from, which is [watching the narrative in a category](/blog/how-to-watch-the-narrative-in-a-category).\n\nWhen a brand in the market becomes a client, track them as their own property and keep the category running beside it. The two answer different questions, and [baselining the brand properly](/blog/how-to-baseline-your-brands-ai-visibility) is a different first week's work. If you want to see what a single market's answers look like before committing to any of this, a [free AI Visibility Report](/ai-visibility-report) on a brand in it is the fastest way to get a feel for the data.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams, and it also appears in the guides for marketing agencies and in-house marketing teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"13:T49b9,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var a in e)s(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of u(e))!y.call(n,r)\u0026\u0026r!==a\u0026\u0026s(n,r,{get:()=\u003ee[r],enumerable:!(i=m(e,r))||i.enumerable});return n};var b=(n,e,a)=\u003e(a=n!=null?p(g(n)):{},o(e||!n||!n.__esModule?s(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003eo(s({},\"__esModule\",{value:!0}),n);var d=f((T,h)=\u003e{h.exports=_jsx_runtime});var A={};w(A,{default:()=\u003ec});var t=b(d());function l(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{WorkflowCallout:a}=e;return a||v(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Mapping a category means measuring a market instead of a company. You name the market and start a report. It writes the questions buyers actually ask, puts them to ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, and reads back the list of brands the answers name. Then you keep asking them, because one day of answers is a snapshot and the ranking is the product.\"}),`\n`,(0,t.jsx)(e.p,{children:\"It takes five steps, and the second one does most of the work. The brands come out of the first report rather than going into it, and so do the first prompts.\"}),`\n`,(0,t.jsx)(e.p,{children:`Most AI visibility work starts from a brand you already own. You know the subject, you write prompts around it, you name the competitors you care about, and the numbers tell you how you're doing. That breaks down in two situations that come up constantly. You're an agency pitching a vertical and you don't have the client yet, so there's no brand to center the measurement on. Or you're in-house and the question isn't \"how are we doing,\" it's \"who is AI sending these buyers to before they've heard of anyone.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"A category answers both. There's no website, no client, and no focal brand. There's a market, and a ranking of everyone AI names inside it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/category-tracking\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Name the category\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Describing the market and the buyer\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A subject with no brand at the center of it\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Start the report\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Getting a first set of prompts asked across the platforms\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One completed report and a first list of brands\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Review the brands\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Cutting the noise, adding the misses\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Five or more real brands in the ranking\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Round out the prompts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Building the starter set into a real panel\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"15 or more prompts, two buying stages covered\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Track it every day\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Putting the prompts on a schedule\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A 7-day change on every brand\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Name the category\"}),`\n`,(0,t.jsx)(e.p,{children:'Start with the market, phrased the way a buyer would say it out loud. \"Wireless headphones.\" \"Project management software for construction firms.\" \"Home saunas.\" Not a segment name from a deck, and not a phrase only an analyst uses.'}),`\n`,(0,t.jsx)(e.p,{children:\"Then describe it in one sentence covering what buyers are choosing between and who those buyers are. This sentence does more work than anything else in the setup, because it's what the report reads when it writes your first prompts. A vague sentence produces vague prompts, and vague prompts produce answers about the wrong market.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Add the other phrases buyers use for the same thing. Plenty of markets have tw
2o or three names depending on who's talking; the industry term, the plain-English term, and whatever the biggest vendor calls it. If buyers say all three, all three belong here.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One rule that saves rework later. Keep brand names out of the category description entirely, including your own. The whole point is to see who AI volunteers on its own, and a description that mentions a brand contaminates every prompt generated from it.\"}),`\n`,(0,t.jsx)(a,{title:\"A subject with no website and no focal brand\",page:\"Organization dashboard\",href:\"/docs/ai-visibility-features/category-tracking\",signal:{kind:\"checklist\",items:[{label:\"Category named the way buyers say it\",done:!0},{label:\"One-sentence description written\",done:!0},{label:\"Two alternate phrases added\",done:!0},{label:\"No brand names in the description\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Adding a property and picking Category as the subject skips everything that assumes a website. There's no crawl, no site audit, and no brand consistency score, because none of those have a subject to attach to. What you get instead is the whole field in one view, which a brand-level report can't give you.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start the report\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start it as soon as the market exists. There's nothing to prepare first. If the category has no prompts yet, the report writes its first five from your description, spread across the buying stages, and saves them to the Prompts page. Then it asks every one of them across the major AI platforms in a single pass and comes back with the brands each answer named. That list is the map, and it's the first time anyone sees it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Give it four to fifteen minutes. Then read it in a specific order, because the ranking on its own is the least surprising part.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Read the top first, and expect to already know those names. The leader in most markets is the brand everybody would have guessed, and confirming it took ten minutes instead of a research project.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then read the middle, which is where the useful part usually starts. Brands sitting between five and fifteen percent are the ones with real presence and no lock on the category.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then read for the names you didn't expect. Every first category report turns up two or three of them. Sometimes it's a regional player punching above its size. Sometimes it's a brand from an adjacent market that AI has decided belongs in this one. Occasionally it's a company that shut down two years ago and lives on in the model's memory, which tells you something about how stale the sources are.\"}),`\n`,(0,t.jsx)(a,{title:\"The brands come out of the report, not into it\",page:\"AI Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"count\",label:\"Brands found in the first report\",value:23,target:5,caption:\"5 prompts written and asked across 5 platforms\"},children:(0,t.jsx)(e.p,{children:`A category report leads with who AI names, ranked by share of answers, followed by the movers, the markets, the key messages, and the sources behind the answers. It has no consistency section and no \"you versus them\" framing, because there's no \"you\" in a market. A market with no prompts gets a starter set written for it rather than a refusal, so the first report is always the first thing you do. Until it completes, the Brands list is empty; nothing has been asked yet.`})}),`\n`,(0,t.jsx)(e.h2,{children:\"Review the brands AI named\"}),`\n`,(0,t.jsx)(e.p,{children:\"The report suggests the brands it found. Your job is to decide which of them are real, and that judgment is what makes the ranking mean anything.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Cut three kinds of noise. Product names that got read as companies. Brands from a neighboring market that don't compete for this buyer. And the generic terms that slipped through as names, which happens more in markets where the category label and a vendor name are close.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Deactivate the noise instead of deleting it. A deactivated name stays on the list, switched off, so the next report can't add it again. A deleted name is forgotten, and a later report can find it all over again.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then add what AI missed. If buyers in this market ask about a company by name and the ranking doesn't have it, it belongs on the list. A brand at zero is a finding, not an omission; it means buyers know a name that AI never volunteers.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Last, add the aliases. Short names, nicknames, the old name after a rebrand, the parent company where people use it interchangeably. A brand tracked under one spelling while AI uses another reads as absent, and there's nothing on the dashboard to tell you that's what happened.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Five real brands is the working minimum for a ranking anybody will trust. Most markets land between ten and twenty-five.\"}),`\n`,(0,t.jsx)(a,{title:\"Cleanups stick, because discovery is additive\",page:\"Brands\",href:\"/docs/dashboards/competitors\",signal:{kind:\"checklist\",items:[{label:\"6 non-brands removed\",done:!0},{label:\"3 brands buyers ask about added\",done:!0},{label:\"Aliases added for the two rebrands\",done:!0},{label:\"Near-duplicate spellings merged\",done:!1}]},children:(0,t.jsx)(e.p,{children:`The list is called Brands rather than Competitors, because in a market there's no \"you\" for them to compete with. Discovery only adds names that aren't on your list yet, so a brand you deactivate stays out instead of reappearing on the next run. Each brand carries its share of answers and a 7-day change.`})}),`\n`,(0,t.jsx)(e.h2,{children:\"Round out the prompts buyers ask\"}),`\n`,(0,t.jsx)(e.p,{children:\"You have a starter set now, written from your description. It's enough to see the shape of the market and not enough to trust week to week.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A category has no site to measure, so the prompts are the entire instrument. Get them right and everything downstream works. Get them wrong and you'll measure a market you don't sell into. Read what the report wrote, cut what missed, and build from there.\"}),`\n`,(0,t.jsx)(e.p,{children:'The test for a good category prompt is simple. It describes a problem and a buyer, and it names nobody. \"What headphones should I take on a long flight?\" is a category prompt. \"Are Acme headphones good for flying?\" is a brand prompt wearing a costume, and it will hand you an answer about one company.'}),`\n`,(0,t.jsx)(e.p,{children:\"Cover at least two buying stages, and three if you can. The stages pull different names out of the model, which is the reason to separate them at all.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Stage\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What the buyer is asking\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What the answer usually contains\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Awareness\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"How the problem gets solved at all\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"An explanation, sometimes with no brands in it\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Consideration\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Who the options are\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A list of names, which is where the ranking comes from\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Decision\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Which option fits a constraint\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A shorter list, often with different names on it\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Consideration prompts carry most of the ranking, because the answer is literally a list of who gets named. Decision prompts are worth the effort anyway, since they routinely surface brands that never appear in the broader questions. That gap is often the most interesting thing the second report turns up.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Fifteen prompts is a working floor, three times what the report starts you with. Tag the whole set with the market's name while you're building it, so every dashboard downstream can filter to this market in one click.\"}),`\n`,(0,t.jsx)(a,{title:\"Prompts generated from the market, not from a brand\",page:\"Prompts\",href:\"/docs/getting-started/choosing-prompts\",signal:{kind:\"count\",label:\"Active prompts\",value:18,target:15,caption:\"2 of 3 buying stages covered\"},children:(0,t.jsx)(e.p,{children:\"The generator reads the category description and writes the questions buyers put to AI about that market, which you then review, cut, and add to by hand. Tagging the set keeps it filterable everywhere else. The first report already ran one pass of this for you, so this 
2step is the edit rather than the blank page.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Track it every day\"}),`\n`,(0,t.jsx)(e.p,{children:\"One report is one day of a market, run on one set of answers. The ranking is what you were after, and a ranking needs history before it can tell you anything.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Put the same prompts on daily tracking under a project named for the market. From then on the number worth reading isn't the ranking; it's the 7-day change next to each brand. Leaders barely move week to week. The brand that climbed four points did something, or somebody wrote something about it, and that's the thread worth pulling.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A few weeks in, the map starts answering questions you didn't set it up for. Which brands are gaining without any coverage you can find. Which new entrant showed up the first day AI named it. Which claim started appearing in answers about the market right after a trade outlet ran a feature.\"}),`\n`,(0,t.jsx)(e.p,{children:\"If the market matters in more than one place, add cities or regions as locations. Each one runs the same prompts against local answers and gets its own ranking and its own leader, and the regional leader is different from the national one often enough to be worth checking before anybody builds a territory plan. Budget for it, though; a tracked prompt on a category with three locations uses four prompt runs a day rather than one.\"}),`\n`,(0,t.jsx)(a,{title:\"The 7-day change is the number to watch\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"trend\",label:\"Share of answers, the brand in fourth place\",series:[6.1,6.4,6.2,7,8.3,9.1,9.8],change:3.7,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"A General project puts the category prompts on a daily schedule, so the ranking builds history instead of resetting with every report. Share of answers is the percentage of completed answers a brand appears in, which means the values don't add up to 100; one answer usually names several brands and plenty name none. Read brands against each other and against last week, never against 100.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What the map is good for once it exists\"}),`\n`,(0,t.jsx)(e.p,{children:\"A finished category map does three jobs, and only the first one is obvious.\"}),`\n`,(0,t.jsx)(e.p,{children:\"It tells you who the field is, which is worth the setup on its own if you're walking into a market you don't know yet. It tells you who's moving, which is the part that stays useful in month six. And it tells you where the answers come from, because every tracked answer carries its sources, so the publishers AI reads for this market are sitting right there before you've pitched anyone.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"That third one is why the same map gets used two more ways. An agency turns the ranking into a pitch list, since a brand buyers know well that AI rarely names has a gap it can be shown; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-turn-a-category-map-into-prospects\",children:\"turning a category map into prospects\"}),\" covers that end to end. A comms team goes at the claims instead of the names, tracking which parts of the market's story AI repeats and which outlets it takes them from, which is \",(0,t.jsx)(e.a,{href:\"/blog/how-to-watch-the-narrative-in-a-category\",children:\"watching the narrative in a category\"}),\".\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"When a brand in the market becomes a client, track them as their own property and keep the category running beside it. The two answer different questions, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining the brand properly\"}),\" is a different first week's work. If you want to see what a single market's answers look like before committing to any of this, a \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"free AI Visibility Report\"}),\" on a brand in it is the fastest way to get a feel for the data.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams, and it also appears in the guides for marketing agencies and in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function c(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}function v(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"5:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"CollectionPage\\\",\\\"name\\\":\\\"Spyglasses Blog\\\",\\\"description\\\":\\\"Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity.\\\",\\\"url\\\":\\\"https://www.spyglasses.io/en/blog\\\",\\\"datePublished\\\":\\\"2025-09-23T00:00:00-05:00\\\",\\\"dateModified\\\":\\\"2026-02-19T00:00:00-05:00\\\",\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Spyglasses\\\",\\\"url\\\":\\\"https://www.spyglasses.io\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.spyglasses.io/images/logo/spyglasses_logotype_brass.svg\\\"}},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://www.spyglasses.io/en/blog\\\"},\\\"inLanguage\\\":\\\"en-US\\\"}\"}}],[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"pt-24 lg:pt-28\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-6xl px-6 py-16 sm:py-20\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-4xl font-extrabold tracking-tight sm:text-5xl\",\"children\":\"Spyglasses Blog\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-lg text-muted-foreground\",\"children\":\"Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity.\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-12 grid gap-6 md:grid-cols-2\",\"children\":[[\"$\",\"$L10\",\"how-to-map-a-category-in-ai-answers\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$12\",\"title\":\"How to Map a Category in AI Answers\",\"date\":\"2026-09-18\",\"image\":\"/images/blog/how-to-map-a-category-in-ai-answers.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Buyers ask AI who the options are long before they type anybody's brand name. Here's how to map a whole market, see which brands AI actually names, and watch the ranking move every day.\",\"tags\":[\"PR\",\"Agencies\",\"How-to\",\"Workflows\",\"Category Tracking\"],\"published\":true,\"faq\":[{\"question\":\"What counts as a category?\",\"answer\":\"Anything buyers choose between. A product category, a service, a regional market, a niche you sell into. You name it, describe it in a sentence, and that sentence is the whole setup. There's no website to connect and no brand at the center of it.\"},{\"question\":\"Why don't the shares add up to 100?\",\"answer\":\"Because share of answers asks one question of every brand on its own, which is how often AI names it. A single answer usually names several brands, and plenty of answers name none at all, so the numbers were never slices of a pie. Compare brands against each other and against last week instead.\"},{\"question\":\"Do I need prompts in place before the first report will run?\",\"answer\":\"No. The first report on a new market writes its own first five prompts, saves them, and asks them, the same way a brand report's initial set works. Round that set out to 15 or more across at least two buying stages afterwards, because a market has no website to fall back on and the prompts are the entire instrument.\"},{\"question\":\"Can I map the same market in more than one city?\",\"answer\":\"Yes. Add cities or regions as locations and each one runs the same prompts against local answers, with its own ranking and its own leader. Regional leaders differ from the national one more often than most people expect.\"},{\"question\":\"What happens to a brand I remove from the list?\",\"answer\":\"Deactivate it and it stays out. Discovery only adds names that aren't on your list yet, and a deactivated brand is still on the list, so a cleanup you do this week still holds next month. A brand you delete outright can be found again by a later report. If a name looks like it came back, it's usually a near-duplicate spelling, and adding that spelling as an alias fixes it.\"}],\"howTo\":{\"name\":\"How to map a category in AI answers\",\"description\":\"A five-step workflow for mapping a whole market in AI answers, from naming the category through running the first report, reviewing the brands AI named, rounding out the prompts buyers ask, and tracking the ranking every day.\",\"steps\":[{\"name\":\"Name the category\",\"text\":\"Set up the market itself as the subject, named the way buyers say 
2it, with the other phrases they use for the same thing.\"},{\"name\":\"Start the report\",\"text\":\"Run the first report, which writes the market a starter set of prompts, asks them across the major AI platforms, and reads back which brands the answers name.\"},{\"name\":\"Review the brands AI named\",\"text\":\"Cut anything that isn't a real brand in this market, add the ones buyers ask about that AI missed, and keep the aliases.\"},{\"name\":\"Round out the prompts buyers ask\",\"text\":\"Build the starter set up to 15 or more questions that describe the problem and the buyer without naming a single brand, covering at least two buying stages.\"},{\"name\":\"Track it every day\",\"text\":\"Put the same prompts on daily tracking so the ranking builds history and the weekly movers become visible.\"}]},\"_meta\":{\"filePath\":\"how-to-map-a-category-in-ai-answers.mdx\",\"fileName\":\"how-to-map-a-category-in-ai-answers.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-map-a-category-in-ai-answers\"},\"body\":\"$13\",\"locale\":\"en\",\"path\":\"how-to-map-a-category-in-ai-answers\"}}]}],\"$L14\",\"$L15\",\"$L16\",\"$L17\",\"$L18\",\"$L19\",\"$L1a\",\"$L1b\",\"$L1c\",\"$L1d\",\"$L1e\",\"$L1f\",\"$L20\",\"$L21\",\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\",\"$L3e\",\"$L3f\",\"$L40\",\"$L41\",\"$L42\",\"$L43\",\"$L44\",\"$L45\",\"$L46\",\"$L47\",\"$L48\",\"$L49\",\"$L4a\",\"$L4b\"]}]]}]}]]\n"])</script>
2<script>self.__next_f.push([1,"4:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"__className_2ca027 __variable_2ca027\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[\"$\",\"$L4c\",null,{\"children\":[\"$\",\"$L4d\",null,{\"initialConsent\":false,\"children\":[[\"$\",\"$L4e\",null,{\"color\":\"var(--color-primary)\"}],[\"$\",\"$L4f\",null,{\"attribute\":\"class\",\"disableTransitionOnChange\":true,\"enableSystem\":true,\"defaultTheme\":\"light\",\"themes\":[\"light\",\"dark\"],\"children\":[\"$\",\"$L50\",null,{\"children\":[\"$\",\"$L51\",null,{\"children\":[\"$\",\"$L52\",null,{\"locale\":\"en\",\"children\":[\"$\",\"$L53\",null,{\"search\":{\"enabled\":true,\"options\":{\"api\":\"/api/docs-search\"}},\"children\":\"$L54\"}]}]}]}]}],[\"$\",\"$L55\",null,{\"position\":\"top-right\"}],[\"$\",\"$L56\",null,{}]]}]}]}]}]\n"])</script>
2<script>self.__next_f.push([1,"57:T2c3f,"])</script>
2<script>self.__next_f.push([1,"Turning a category map into prospects means reading a market ranking as a target list. The brands at the bottom of a ranking aren't failing at marketing. Most of them have no idea the ranking exists, which is the entire pitch. Read the ranking, pick the brands buyers know that AI rarely names, add them to a prospect list, and send each one a report about their own market before you ask for the call.\n\nIt's four steps, and three of them are judgment rather than clicks.\n\nNew-business work in this channel has an awkward first move. You want to open with a prospect's own data, and their own data is exactly what you don't have before they've signed anything. So most outreach falls back to a capabilities deck, which the prospect has already read twice this month from two other firms.\n\nA tracked category fixes the sequencing. You measure the market first, and the market is public. By the time you call anyone, you can tell them who AI names when buyers ask about their category, where they sit in that list, and which publishers the answers are coming from. None of that required their permission, their analytics, or a single meeting.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/category-tracking).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Rank the brands | Reading the market ranking top to bottom | Five or more real brands, with the tail visible |\n| 2. Pick the gaps | Matching name recognition against share of answers | A shortlist of brands with something to show |\n| 3. Add the prospect | Moving a name into the prospect list | A property of its own, separate from your clients |\n| 4. Pitch the report | Leading with one finding, branded | A report in their inbox before the call |\n\n## Rank the brands\n\nStart with the map you already have. If the market isn't tracked yet, that's the prerequisite, and [mapping a category in AI answers](/blog/how-to-map-a-category-in-ai-answers) is the five-step version of it.\n\nRead the ranking from the top down and note three things.\n\nThe share each brand holds. Share of answers is the percentage of completed answers a brand appears in, so a brand at 14% appeared in fourteen out of every hundred answers. The values don't add up to 100, because one answer usually names several brands and plenty of answers name nobody. Read them against each other, not against a whole.\n\nWhere the tail drops off. Some markets have a flat ranking, with eight brands inside a few points of each other, and some have a leader at 30% and nothing above 6% after that. A flat market is a harder sell and a steeper one is easier, because in a steep market the gap is obvious to the prospect on sight.\n\nHow long the list is. A market where AI names thirty brands is behaving differently from one where it names seven, and the seven-brand market is the one where being absent hurts most.\n\n\u003cWorkflowCallout\n  title=\"A ranking of the field, not of you against them\"\n  page=\"Brands\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"count\",\n    label: \"Brands in the ranking\",\n    value: 17,\n    target: 5,\n    caption: \"Leader at 22%, a four-brand cluster between 9% and 12%\",\n  }}\n\u003e\n  A category's Brands list ranks every brand AI named in a tracked answer, with its share of answers and a 7-day change. There's no focal brand, so nothing is measured as \"you versus them\"; the list is the field. Each row carries the brand's domain, which is what you'll copy in step three.\n\u003c/WorkflowCallout\u003e\n\n## Pick the brands with a gap\n\nThis is the step that decides whether the list is any good, and it's a judgment call rather than a filter.\n\nA gap is the distance between how well buyers know a brand and how often AI names it. A brand everybody in the market recognizes that AI mentions in 3% of answers has a gap. A brand nobody has heard of sitting at 3% has a small business, which is not the same thing and not your pitch.\n\nSo go through the ranking with two columns in your head.\n\n| Known by buyers | Named by AI | What it means | Worth a call |\n| :--- | :--- | :--- | :--- |\n| Well known | Rarely named | A real gap, and a visible one | Yes, this is the list |\n| Well known | Often named | Already winning the channel | Rarely, unless they want to defend it |\
2n| Barely known | Rarely named | A small brand, not a visibility problem | Usually not |\n| Barely known | Often named | Somebody is already doing this work | No, they have a partner |\n\nThat last row is worth pausing on. A brand punching far above its recognition is nearly always being helped by somebody, and walking in to tell them they have a problem they solved last quarter is the fastest way to end a conversation.\n\nTwo more filters before the shortlist is done. Drop anyone whose ranking is already climbing steadily in the 7-day changes, for the same reason. And drop anyone you can't actually serve, because a pitch list is only useful at the length you can work in a month.\n\n\u003cWorkflowCallout\n  title=\"Recognition against share, brand by brand\"\n  page=\"Brands\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"17 brands reviewed against recognition\", done: true },\n      { label: \"6 shortlisted with a visible gap\", done: true },\n      { label: \"2 dropped, already climbing week over week\", done: true },\n      { label: \"Shortlist cut to this month's call capacity\", done: false },\n    ],\n  }}\n\u003e\n  Every brand in the ranking carries a 7-day change alongside its share of answers, which is what separates a brand with a gap from one that's already being worked on. If the category has locations, check the per-market rankings too; a brand that's invisible nationally is sometimes the leader in one region, and that's a different conversation.\n\u003c/WorkflowCallout\u003e\n\n## Add one as a prospect\n\nNow move the shortlist out of your head and into a list that does something.\n\nCopy the brand name and the domain straight off the ranking. Add them to your prospect list rather than to your client roster, because a target brand you're researching and a client you're reporting on should never sit in the same view. Six weeks from now, when somebody else on the team opens the dashboard, that separation is the difference between a clean account list and a confusing one.\n\nKeep the batch small. The temptation with a seventeen-brand ranking is to add all seventeen, and then you have seventeen reports nobody reads and a list that's stale by the time you get to the bottom of it. Add the ones you can call this month, work them, and come back.\n\nOne practical note on plans. Prospect properties come with an Agency plan and a trial doesn't include them, so this is the step where the workflow stops if the account isn't on one.\n\n\u003cWorkflowCallout\n  title=\"Prospects sit in their own list, not with your clients\"\n  page=\"Prospects\"\n  href=\"/docs/dashboards/prospecting\"\n  signal={{\n    kind: \"count\",\n    label: \"Prospects added this cycle\",\n    value: 6,\n    target: 6,\n    caption: \"Added from the category ranking, domains included\",\n  }}\n\u003e\n  The Prospects tab on the organization dashboard holds target brands as a separate view from real clients, so a pitch list never clutters the client dashboard. A prospect is a full property underneath, just flagged differently, so if the brand signs y
2ou switch the flag and keep every report you already ran. Bulk add takes a pasted list when you're working a whole shortlist at once.\n\u003c/WorkflowCallout\u003e\n\n## Pitch with a report they can read\n\nRun a report on the prospect, read it yourself first, then send it.\n\nReading it first matters more than it sounds. The report will have a dozen things in it, and your job is to find the one that stings. Usually that's a named competitor. \"When buyers ask who does this, AI names these four companies, and you're not one of them\" is a sentence a prospect remembers through a whole meeting. A low number on its own isn't; it's a metric, and they've been shown metrics before.\n\nLead with one finding, not five. The rest of the report is the second meeting.\n\nSend it ahead of the call rather than presenting it live. A prospect who's already opened a report showing their competitor winning their category shows up with a question instead of a blank stare, and that question is the one you wanted them to ask. Branded exports are what make this land, because a polished PDF with your name on it and their data inside reads as evidence you already understand their problem.\n\nThe category itself is the second half of the pitch, and it's the part other firms won't have. You're not just showing them their number; you're showing them the whole market, who's moving in it, and which publishers AI already reads for it. That last part goes straight into the first ninety days of work, whether it's earned media or content.\n\n\u003cWorkflowCallout\n  title=\"One finding, branded, in their inbox before the call\"\n  page=\"AI Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Report run on the prospect's brand\", done: true },\n      { label: \"One competitor-named finding picked out\", done: true },\n      { label: \"White-labeled PDF exported\", done: true },\n      { label: \"Sent 48 hours before the call\", done: false },\n    ],\n  }}\n\u003e\n  Reports export to white-labeled PDF and PowerPoint on an agency plan, with your branding in place of ours, and a shareable link works if the prospect is more likely to open it on a phone. The prospect's report and the category's ranking are separate properties, so you can put the brand's own numbers next to the market's in the same deck.\n\u003c/WorkflowCallout\u003e\n\n## The map keeps working after the pitch\n\nThe useful thing about prospecting off a category is that the asset doesn't get used up. A capabilities deck is spent the moment you send it. A tracked market keeps running, and every week it tells you which brands moved, which new names appeared, and which publishers the answers are leaning on.\n\nThat means three things for a new-business pipeline. Your list refreshes itself, because a brand whose share slid four points this month is a warmer call than it was last month. New entrants announce themselves the first day AI names them. And when a prospect finally signs, you already have the market context to run their first quarter, which is a much better starting position than a kickoff call.\n\nIf you're building the wider prospecting motion, [prospecting new clients with AI visibility reports](/blog/how-to-prospect-new-clients-with-ai-visibility-reports) covers running a batch of brand-level reports without a category behind them. Once a prospect becomes a client, [baselining their AI visibility](/blog/how-to-baseline-your-brands-ai-visibility) is the first week's work, and the category keeps running alongside their brand rather than being replaced by it. For what an agency plan covers, including prospect properties and white-labeled exports, see [Spyglasses for agencies](/for-agencies).\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies, and it also appears in the guides for PR and communications teams. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"58:T3e08,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var u=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)r(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let i of y(e))!m.call(n,i)\u0026\u0026i!==a\u0026\u0026r(n,i,{get:()=\u003ee[i],enumerable:!(s=g(e,i))||s.enumerable});return n};var w=(n,e,a)=\u003e(a=n!=null?p(f(n)):{},o(e||!n||!n.__esModule?r(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003eo(r({},\"__esModule\",{value:!0}),n);var l=u((T,h)=\u003e{h.exports=_jsx_runtime});var v={};b(v,{default:()=\u003ec});var t=w(l());function d(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{WorkflowCallout:a}=e;return a||A(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Turning a category map into prospects means reading a market ranking as a target list. The brands at the bottom of a ranking aren't failing at marketing. Most of them have no idea the ranking exists, which is the entire pitch. Read the ranking, pick the brands buyers know that AI rarely names, add them to a prospect list, and send each one a report about their own market before you ask for the call.\"}),`\n`,(0,t.jsx)(e.p,{children:\"It's four steps, and three of them are judgment rather than clicks.\"}),`\n`,(0,t.jsx)(e.p,{children:\"New-business work in this channel has an awkward first move. You want to open with a prospect's own data, and their own data is exactly what you don't have before they've signed anything. So most outreach falls back to a capabilities deck, which the prospect has already read twice this month from two other firms.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A tracked category fixes the sequencing. You measure the market first, and the market is public. By the time you call anyone, you can tell them who AI names when buyers ask about their category, where they sit in that list, and which publishers the answers are coming from. None of that required their permission, their analytics, or a single meeting.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/category-tracking\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Rank the brands\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reading the market ranking top to bottom\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Five or more real brands, with the tail visible\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Pick the gaps\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Matching name recognition against share of answers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A shortlist of brands with something to show\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Add the prospect\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Moving a name into the prospect list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A property of its own, separate from your clients\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Pitch the report\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Leading with one finding, branded\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A report in their inbox before the call\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Rank the brands\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Start with the map you already have. If the market isn't tracked yet, that's the prerequisite, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-map-a-category-in-ai-answers\",children:\"mapping a category in AI answers\"}),\" is the five-step version of it.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Read the ranking from the top down and note three things.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The share each brand holds. Share of answers is the percentage of completed answers a brand appears in, so a brand at 14
2% appeared in fourteen out of every hundred answers. The values don't add up to 100, because one answer usually names several brands and plenty of answers name nobody. Read them against each other, not against a whole.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Where the tail drops off. Some markets have a flat ranking, with eight brands inside a few points of each other, and some have a leader at 30% and nothing above 6% after that. A flat market is a harder sell and a steeper one is easier, because in a steep market the gap is obvious to the prospect on sight.\"}),`\n`,(0,t.jsx)(e.p,{children:\"How long the list is. A market where AI names thirty brands is behaving differently from one where it names seven, and the seven-brand market is the one where being absent hurts most.\"}),`\n`,(0,t.jsx)(a,{title:\"A ranking of the field, not of you against them\",page:\"Brands\",href:\"/docs/dashboards/competitors\",signal:{kind:\"count\",label:\"Brands in the ranking\",value:17,target:5,caption:\"Leader at 22%, a four-brand cluster between 9% and 12%\"},children:(0,t.jsx)(e.p,{children:`A category's Brands list ranks every brand AI named in a tracked answer, with its share of answers and a 7-day change. There's no focal brand, so nothing is measured as \"you versus them\"; the list is the field. Each row carries the brand's domain, which is what you'll copy in step three.`})}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick the brands with a gap\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that decides whether the list is any good, and it's a judgment call rather than a filter.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A gap is the distance between how well buyers know a brand and how often AI names it. A brand everybody in the market recognizes that AI mentions in 3% of answers has a gap. A brand nobody has heard of sitting at 3% has a small business, which is not the same thing and not your pitch.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So go through the ranking with two columns in your head.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Known by buyers\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Named by AI\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Worth a call\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Well known\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rarely named\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A real gap, and a visible one\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Yes, this is the list\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Well known\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Often named\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Already winning the channel\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rarely, unless they want to defend it\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Barely known\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rarely named\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A small brand, not a visibility problem\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Usually not\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Barely known\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Often named\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Somebody is already doing this work\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"No, they have a partner\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"That last row is worth pausing on. A brand punching far above its recognition is nearly always being helped by somebody, and walking in to tell them they have a problem they solved last quarter is the fastest way to end a conversation.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Two more filters before the shortlist is done. Drop anyone whose ranking is already climbing steadily in the 7-day changes, for the same reason. And drop anyone you can't actually serve, because a pitch list is only useful at the length you can work in a month.\"}),`\n`,(0,t.jsx)(a,{title:\"Recognition against share, brand by brand\",page:\"Brands\",href:\"/docs/dashboards/competitors\",signal:{kind:\"checklist\",items:[{label:\"17 brands reviewed against recognition\",done:!0},{label:\"6 shortlisted with a visible gap\",done:!0},{label:\"2 dropped, already climbing week over week\",done:!0},{label:\"Shortlist cut to this month's call capacity\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Every brand in the ranking carries a 7-day change alongside its share of answers, which is what separates a brand with a gap from one that's already being worked on. If the category has locations, check the per-market rankings too; a brand that's invisible nationally is sometimes the leader in one region, and that's a different c
2onversation.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Add one as a prospect\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now move the shortlist out of your head and into a list that does something.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Copy the brand name and the domain straight off the ranking. Add them to your prospect list rather than to your client roster, because a target brand you're researching and a client you're reporting on should never sit in the same view. Six weeks from now, when somebody else on the team opens the dashboard, that separation is the difference between a clean account list and a confusing one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Keep the batch small. The temptation with a seventeen-brand ranking is to add all seventeen, and then you have seventeen reports nobody reads and a list that's stale by the time you get to the bottom of it. Add the ones you can call this month, work them, and come back.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One practical note on plans. Prospect properties come with an Agency plan and a trial doesn't include them, so this is the step where the workflow stops if the account isn't on one.\"}),`\n`,(0,t.jsx)(a,{title:\"Prospects sit in their own list, not with your clients\",page:\"Prospects\",href:\"/docs/dashboards/prospecting\",signal:{kind:\"count\",label:\"Prospects added this cycle\",value:6,target:6,caption:\"Added from the category ranking, domains included\"},children:(0,t.jsx)(e.p,{children:\"The Prospects tab on the organization dashboard holds target brands as a separate view from real clients, so a pitch list never clutters the client dashboard. A prospect is a full property underneath, just flagged differently, so if the brand signs y
2ou switch the flag and keep every report you already ran. Bulk add takes a pasted list when you're working a whole shortlist at once.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Pitch with a report they can read\"}),`\n`,(0,t.jsx)(e.p,{children:\"Run a report on the prospect, read it yourself first, then send it.\"}),`\n`,(0,t.jsx)(e.p,{children:`Reading it first matters more than it sounds. The report will have a dozen things in it, and your job is to find the one that stings. Usually that's a named competitor. \"When buyers ask who does this, AI names these four companies, and you're not one of them\" is a sentence a prospect remembers through a whole meeting. A low number on its own isn't; it's a metric, and they've been shown metrics before.`}),`\n`,(0,t.jsx)(e.p,{children:\"Lead with one finding, not five. The rest of the report is the second meeting.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Send it ahead of the call rather than presenting it live. A prospect who's already opened a report showing their competitor winning their category shows up with a question instead of a blank stare, and that question is the one you wanted them to ask. Branded exports are what make this land, because a polished PDF with your name on it and their data inside reads as evidence you already understand their problem.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The category itself is the second half of the pitch, and it's the part other firms won't have. You're not just showing them their number; you're showing them the whole market, who's moving in it, and which publishers AI already reads for it. That last part goes straight into the first ninety days of work, whether it's earned media or content.\"}),`\n`,(0,t.jsx)(a,{title:\"One finding, branded, in their inbox before the call\",page:\"AI Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"checklist\",items:[{label:\"Report run on the prospect's brand\",done:!0},{label:\"One competitor-named finding picked out\",done:!0},{label:\"White-labeled PDF exported\",done:!0},{label:\"Sent 48 hours before the call\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Reports export to white-labeled PDF and PowerPoint on an agency plan, with your branding in place of ours, and a shareable link works if the prospect is more likely to open it on a phone. The prospect's report and the category's ranking are separate properties, so you can put the brand's own numbers next to the market's in the same deck.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The map keeps working after the pitch\"}),`\n`,(0,t.jsx)(e.p,{children:\"The useful thing about prospecting off a category is that the asset doesn't get used up. A capabilities deck is spent the moment you send it. A tracked market keeps running, and every week it tells you which brands moved, which new names appeared, and which publishers the answers are leaning on.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That means three things for a new-business pipeline. Your list refreshes itself, because a brand whose share slid four points this month is a warmer call than it was last month. New entrants announce themselves the first day AI names them. And when a prospect finally signs, you already have the market context to run their first quarter, which is a much better starting position than a kickoff call.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're building the wider prospecting motion, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-prospect-new-clients-with-ai-visibility-reports\",children:\"prospecting new clients with AI visibility reports\"}),\" covers running a batch of brand-level reports without a category behind them. Once a prospect becomes a client, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining their AI visibility\"}),\" is the first week's work, and the category keeps running alongside their brand rather than being replaced by it. For what an agency plan covers, including prospect properties and white-labeled exports, see \",(0,t.jsx)(e.a,{href:\"/for-agencies\",children:\"Spyglasses for agencies\"}),\".\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies, and it also appears in the guides for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function c(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function A(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(v);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"14:[\"$\",\"$L10\",\"how-to-turn-a-category-map-into-prospects\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$57\",\"title\":\"How to Turn a Category Map Into Prospects\",\"date\":\"2026-09-18\",\"image\":\"/images/blog/how-to-turn-a-category-map-into-prospects.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A ranking of who AI names in a market is also a list of who it barely names. Here's how to read that list for the brands worth calling, and open the pitch with their own numbers instead of your credentials.\",\"tags\":[\"Agencies\",\"PR\",\"New Business\",\"How-to\",\"Workflows\"],\"published\":true,\"faq\":[{\"question\":\"Do I need the category set up before I can do any of this?\",\"answer\":\"Yes. The ranking is the input, so the market has to be tracked and the first report has to have finished. Mapping a category takes about an afternoon of setup and one report run, and it's the step this workflow starts from.\"},{\"question\":\"How do I tell a real gap from a company that's simply small?\",\"answer\":\"A gap is a brand people in the market know and AI rarely names. Size has nothing to do with it. The test is whether a buyer would recognize the name; if they would and AI doesn't volunteer it, there's something to show them.\"},{\"question\":\"Do I need permission to run a report on a brand I haven't signed?\",\"answer\":\"No. A visibility report reads public information, which is the brand's own site and what AI assistants already say about it. It's the same kind of research as an SEO audit on a public site. Treat it as prospecting for a real pitch and nothing else.\"},{\"question\":\"Is prospecting included on every plan?\",\"answer\":\"No. Prospect properties come with an Agency plan, and a trial doesn't include them. The category itself works on any plan; it's the separate prospect list and the branded exports that need the upgrade.\"},{\"question\":\"How many prospects should I add at once?\",\"answer\":\"As many as your calendar can hold in a month, which for most teams is somewhere between five and fifteen. Each one gets its own report and its own read-through, and a list longer than your call capacity just goes stale.\"}],\"howTo\":{\"name\":\"How to turn a category map into prospects\",\"description\":\"A four-step workflow for agencies and PR teams that turns a tracked category ranking into a short list of brands worth pitching, ending in a branded report the prospect reads before the call.\",\"steps\":[{\"name\":\"Rank the brands\",\"text\":\"Read the market ranking from the top down and note the share each brand holds and where the tail drops off.\"},{\"name\":\"Pick the brands with a gap\",\"text\":\"Shortlist the brands buyers in this market know well, keep the ones AI names least often, and drop anyone already doing the work.\"},{\"name\":\"Add one as a prospect\",\"text\":\"Copy the brand name and domain out of the ranking into your prospect list, in batches small enough to call this month.\"},{\"name\":\"Pitch with a report they can read\",\"text\":\"Run a report for the prospect, lead with one finding rather than five, and send the branded link or PDF ahead of the call.\"}]},\"_meta\":{\"filePath\":\"how-to-turn-a-category-map-into-prospects.mdx\",\"fileName\":\"how-to-turn-a-category-map-into-prospects.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-turn-a-category-map-into-prospects\"},\"body\":\"$58\",\"locale\":\"en\",\"path\":\"how-to-turn-a-category-map-into-prospects\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"59:T3206,"])</script>
2<script>self.__next_f.push([1,"Watching a narrative means tracking what AI says about a market rather than who it names. Write down the claims the market is supposed to stand for, add the awareness-stage questions that pull those claims out, track them daily, then follow the citations back to the publishers the story is coming from. Five steps, and the last two are where a comms team finds work it can actually do.\n\nA market ranking answers \"who.\" A narrative answers \"how,\" and the how is usually what a communications team is paid to move.\n\nHere's the version of this that shows up in real life. A trade body or a category leader notices that AI has started describing their market in terms nobody in it would choose. Maybe the cost objection gets repeated as fact. Maybe an older technology gets treated as the default and the newer one as the risky option. Maybe a safety concern that was settled five years ago keeps coming back. Nobody wrote that story, and it's being repeated to every buyer who asks a general question about the category.\n\nThe story came from somewhere. Models don't invent a market's framing; they assemble it from sources, and a handful of sources do most of the work. Finding those sources is the point of this workflow.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/category-tracking).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Write the claims | Turning the story into trackable statements | Three or more claims, one idea each |\n| 2. Cover awareness | Adding the questions asked before the shortlist | All three buying stages represented |\n| 3. Track daily | Putting the prompts on a schedule | A chart per claim instead of a hunch |\n| 4. Point goals at publishers | Attaching outlets to a tracked project | Scored outlets with a goal each |\n| 5. Read the sources | Following the claims back to their origin | A short list of domains to work on |\n\n## Add the claims you expect AI to repeat\n\nA market's story is made of a few claims. Write them down, because a claim nobody wrote down can't be tracked, and \"the narrative feels off\" isn't something you can put in front of a board.\n\nStart with what the market is supposed to stand for. If your industry association has a positioning line, it's usually three claims wearing one sentence; split it. Keep each claim to a single idea in plain language, the way a buyer would say it rather than the way a press release would.\n\nThen write down the claims you'd rather AI dropped. This half gets skipped and it's the more useful one. An outdated cost figure, a safety worry that was resolved, a comparison to a technology the market moved past. You want to know the day one of these starts surfacing, and you can only be told about claims that exist as records.\n\nThree claims is a working floor. Eight is about as many as anyone reviews regularly. If your list is longer than that, some of them are the same claim in different clothes.\n\n\u003cWorkflowCallout\n  title=\"Claims about the market, not about a brand\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"count\",\n    label: \"Claims tracked\",\n    value: 6,\n    target: 3,\n    caption: \"4 you want repeated, 2 you'd rather AI dropped\",\n  }}\n\u003e\n  Key messages work on a category the same way they work on a brand, with the subject shifted. Instead of asking which claims AI repeats about us, a market asks which claims AI repeats about this market. Each claim gets measured against the answers as they come in, so pull-through is a number rather than an impression.\n\u003c/WorkflowCallout\u003e\n\n## Cover the awareness stage\n\nClaims live at the awareness stage, and most prompt sets are thin there.\n\nThat's understandable. Awareness prompts feel unsatisfying the first time you read the answers, because the buyer doesn't know the market well enough to ask for a comparison. They ask about the problem, not the product, so the answer comes back as an explanation with few brand names in it or none at all.\n\nThat explanation is exactly what you're here for. It's the market's story in the model's own words, and it's the thing being read by every buyer who hasn't formed a shortlist yet.\n\nSo add the questions buyers ask before they know the options. \"How do companies handle this at scale?\" \"What are the approaches to this problem?\" \"What goes wrong with the usual way of doing this?\" Keep the consideration and decision prompts too, since the ranking still matters and the claims turn up there in a harder-edged form. Tag the awareness set so you can read it on its own; mixing the three stages in one view hides the pattern you're looking for.\n\n\u003cWorkflowCallout\n  title=\"Three stages, with the awareness set readable on its own\"\n  page=\"Prompts\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Buying stages covered\",\n    value: 3,\n    target: 3,\n    caption: \"24 active prompts, 9 of them awareness\",\n  }}\n\u003e\n  Prompts carry a buying stage and any tags you give them, so an awareness set can be read separately from the questions that produce the ranking. A category's prompts describe the problem and the buyer without naming any brand, which is what lets the answers tell you whose framing the market is being described 
2in.\n\u003c/WorkflowCallout\u003e\n\n## Track the claims every day\n\nA narrative moves slowly. That's the whole reason to read it daily.\n\nOne reading tells you almost nothing, because AI answers vary from session to session and any single answer might be the unusual one. Thirty readings tell you which claims are holding, which are fading, and which one started climbing three weeks ago. The variation stops being a problem and turns into a baseline you can measure against.\n\nPut the category prompts on a daily schedule under a project named for the market, and set a start date you can point at. From then on, read two things.\n\nPull-through per claim, which is how often the claim you wrote down actually shows up in the answers. Expect this to be low at first and to move in single digits. A claim that goes from appearing in 8% of awareness answers to 15% over two months is a real shift, even though neither number sounds impressive.\n\nThen the claims you didn't write. Skim the answers themselves every few weeks, not just the numbers. New framing shows up as language before it shows up as a metric, and a claim that isn't on your list can't be counted yet.\n\n\u003cWorkflowCallout\n  title=\"A claim moving is a line, not an anecdote\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"trend\",\n    label: \"Pull-through for the claim you want repeated\",\n    series: [8, 9, 8, 11, 12, 14, 15],\n    change: 7,\n    suffix: \"%\",\n  }}\n\u003e\n  A General project puts the category prompts on a daily schedule and gives every claim a history instead of a spot check. Annotations sit on the same timeline, so a briefing day, a report launch or a big feature lands next to the movement it caused. Both carry into exports, which is what makes the quarterly readout explain itself.\n\u003c/WorkflowCallout\u003e\n\n## Point goals at the publishers that shape the category\n\nA few outlets set the terms of any market. Once you can see which ones the answers lean on, outreach stops being a list of everybody who covers the industry.\n\nShortlist the outlets the market's answers cite. Then score them before you commit anyone's hours, because two things decide whether an outlet is worth working. Whether AI can read it at all, since plenty of well-known publications block AI crawlers outright, and whether it already shows up for questions in this market. A famous masthead that blocks crawlers won't move an answer no matter who you know there. [Building a pitch list AI can actually see](/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see) covers the scoring in depth.\n\nThen attach the ones you're working as goals on the tracked project. A goal ties the outreach to the measurement, so when a claim's pull-through moves you have a specific piece of work sitting next to it rather than a guess. This is the same mechanism that connects [earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility) for a brand; here the subject is the market instead.\n\n\u003cWorkflowCallout\n  title=\"Outreach attached to the number it's meant to move\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"11 cited outlets shortlisted\", done: true },\n      { label: \"Scored for AI accessibility and authority\", done: true },\n      { label: \"3 attached as goals on the active project\", done: true },\n      { label: \"Two blocked crawlers, dropped before outreach\", done: false },\n    ],\n  }}\n\u003e\n  A project goal can point at a publisher, an article, an author or a coverage group, so a category's outreach plan lives in the same place as its measurement. Publisher scoring combines a domain's organic authority with whether AI can actually read it, which is what keeps a Tier 1 masthead that blocks crawlers from eating a quarter of your hours.\n\u003c/WorkflowCallout\u003e\n\n## Read which sources AI trusts\n\nThe last step is the one that turns all of this into a plan.\n\nEvery tracked answer carries its sources, so the domains cited most often for this market are sitting there in a list. Read it and compare it against the outlets you already work with. Three patterns come up almost every time.\n\nOutlets you know and already have relationships with, which is the easy case and usually the first place to take a correction.\n\nSources you didn't expect, which is the interesting case. Reference works, standards bodies, well-moderated forums, and trade publications far outside the tier list. These are frequently easier to correct than a magazine feature, because they're maintained rather than published once.\n\nAnd sources carrying the claim you want changed, which is where to start. Sort the work by which source is feeding the framing you're trying to move rather than by the size of the outlet. A mid-sized trade site that AI reads constantly beats a national title it can't read at all.\n\nThat's the whole payoff of watching a narrative rather than a ranking. You don't end up with a number to report; you end up with four domains, a claim each, and a reason to call them.\n\n\u003cWorkflowCallout\n  title=\"From a claim you don't like to the sites it's coming from\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Top 20 cited domains reviewed\", done: true },\n      { label: \"4 carrying the claim to correct\", done: true },\n      { label: \"2 already in the relationship list\", done: true },\n      { label: \"Outreach ordered by what AI actually reads\", done: false },\n    ],\n  }}\n\u003e\n  Citation Intelligence classifies every source behind the market's tracked answers and scores each one for what it's worth in AI discovery. A promising source converts into a PR project without leaving the page, which is how a claim you want changed becomes a piece of work with a date on it.\n\u003c/WorkflowCallout\u003e\n\n## What a quarter of this gets you\n\nNarrative work is slow and it compounds, so judge it by the quarter rather than the week. Three months in, a category being watched properly has four things.\n\n1. **A claim list with history.** Three to eight claims, each with a pull-through line long enough to have a normal range. The range is what makes an unusual month readable as one.\n2. **An awareness set that works.** Enough questions at the top of the journey that the market's story shows up in the data rather than 
2in somebody's inbox screenshot.\n3. **A source list, ordered.** The domains AI reads for this market, scored, with the ones carrying the claims you care about at the top.\n4. **One correction you can point at.** A claim that moved after specific outreach, with the dates attached. One cause and effect beats a quarter of charts.\n\nIf you haven't set the market up yet, [mapping a category in AI answers](/blog/how-to-map-a-category-in-ai-answers) is the five-step version of the setup, and this workflow picks up where it ends. If the same market is also a new-business list, [turning a category map into prospects](/blog/how-to-turn-a-category-map-into-prospects) uses the ranking rather than the claims. And if the story has turned against the category quickly rather than drifting, [crisis communications when AI is repeating the story](/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story) is the faster-moving version of this work.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"5a:T4136,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var w=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),f=(a,e)=\u003e{for(var s in e)r(a,s,{get:e[s],enumerable:!0})},i=(a,e,s,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of g(e))!y.call(a,n)\u0026\u0026n!==s\u0026\u0026r(a,n,{get:()=\u003ee[n],enumerable:!(o=m(e,n))||o.enumerable});return a};var b=(a,e,s)=\u003e(s=a!=null?u(p(a)):{},i(e||!a||!a.__esModule?r(s,\"default\",{value:a,enumerable:!0}):s,a)),k=a=\u003ei(r({},\"__esModule\",{value:!0}),a);var l=w((T,h)=\u003e{h.exports=_jsx_runtime});var A={};f(A,{default:()=\u003ed});var t=b(l());function c(a){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...a.components},{WorkflowCallout:s}=e;return s||v(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Watching a narrative means tracking what AI says about a market rather than who it names. Write down the claims the market is supposed to stand for, add the awareness-stage questions that pull those claims out, track them daily, then follow the citations back to the publishers the story is coming from. Five steps, and the last two are where a comms team finds work it can actually do.\"}),`\n`,(0,t.jsx)(e.p,{children:'A market ranking answers \"who.\" A narrative answers \"how,\" and the how is usually what a communications team is paid to move.'}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the version of this that shows up in real life. A trade body or a category leader notices that AI has started describing their market in terms nobody in it would choose. Maybe the cost objection gets repeated as fact. Maybe an older technology gets treated as the default and the newer one as the risky option. Maybe a safety concern that was settled five years ago keeps coming back. Nobody wrote that story, and it's being repeated to every buyer who asks a general question about the category.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The story came from somewhere. Models don't invent a market's framing; they assemble it from sources, and a handful of sources do most of the work. Finding those sources is the point of this workflow.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/category-tracking\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Write the claims\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Turning the story into trackable statements\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Three or more claims, one idea each\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Cover awareness\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adding the questions asked before the shortlist\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"All three buying stages represented\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Track daily\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Putting the prompts on a schedule\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A chart per claim instead of a hunch\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Point goals at publishers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Attaching outlets to a tracked project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scored outlets with a goal each\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Read the sources\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Following the claims back to their origin\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A short list of domains to work on\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Add the claims you expect AI to repeat\"}),`\n`,(0,t.jsx)(e.p,{children:`A market's story is made of a few claims. Write them down, because a claim nobody wrote down can't be tracked, and \"the narrative feels off\" isn't something you can put in front of a board.`}),`\n`,(0,t.jsx)(e.p,{children:\"Start with what the market is supposed to stand for. If your industry association has a positioning line, it's usually three claims wearing one sentence; split it. Keep each claim to a single idea in plain language, the way a buyer would say it rather than the way a press release would.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then write down the claims you'd rather AI dropped. This half gets skipped and it's the more useful one. An outdated cost figure, a safety worry that was resolved, a comparison to a technology the market moved past. You want to know the day one of these starts surfacing, and you can only be told about claims that exist as re
2cords.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Three claims is a working floor. Eight is about as many as anyone reviews regularly. If your list is longer than that, some of them are the same claim in different clothes.\"}),`\n`,(0,t.jsx)(s,{title:\"Claims about the market, not about a brand\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"count\",label:\"Claims tracked\",value:6,target:3,caption:\"4 you want repeated, 2 you'd rather AI dropped\"},children:(0,t.jsx)(e.p,{children:\"Key messages work on a category the same way they work on a brand, with the subject shifted. Instead of asking which claims AI repeats about us, a market asks which claims AI repeats about this market. Each claim gets measured against the answers as they come in, so pull-through is a number rather than an impression.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Cover the awareness stage\"}),`\n`,(0,t.jsx)(e.p,{children:\"Claims live at the awareness stage, and most prompt sets are thin there.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That's understandable. Awareness prompts feel unsatisfying the first time you read the answers, because the buyer doesn't know the market well enough to ask for a comparison. They ask about the problem, not the product, so the answer comes back as an explanation with few brand names in it or none at all.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That explanation is exactly what you're here for. It's the market's story in the model's own words, and it's the thing being read by every buyer who hasn't formed a shortlist yet.\"}),`\n`,(0,t.jsx)(e.p,{children:`So add the questions buyers ask before they know the options. \"How do companies handle this at scale?\" \"What are the approaches to this problem?\" \"What goes wrong with the usual way of doing this?\" Keep the consideration and decision prompts too, since the ranking still matters and the claims turn up there in a harder-edged form. Tag the awareness set so you can read it on its own; mixing the three stages in one view hides the pattern you're looking for.`}),`\n`,(0,t.jsx)(s,{title:\"Three stages, with the awareness set readable on its own\",page:\"Prompts\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Buying stages covered\",value:3,target:3,caption:\"24 active prompts, 9 of them awareness\"},children:(0,t.jsx)(e.p,{children:\"Prompts carry a buying stage and any tags you give them, so an awareness set can be read separately from the questions that produce the ranking. A category's prompts describe the problem and the buyer without naming any brand, which is what lets the answers tell you whose framing the market is being described in.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Track the claims every day\"}),`\n`,(0,t.jsx)(e.p,{children:\"A narrative moves slowly. That's the whole reason to read it daily.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One reading tells you almost nothing, because AI answers vary from session to session and any single answer might be the unusual one. Thirty readings tell you which claims are holding, which are fading, and which one started climbing three weeks ago. The variation stops being a problem and turns into a baseline you can measure against.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Put the category prompts on a daily schedule under a project named for the market, and set a start date you can point at. From then on, read two things.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Pull-through per claim, which is how often the claim you wrote down actually shows up in the answers. Expect this to be low at first and to move in single digits. A claim that goes from appearing in 8% of awareness answers to 15% over two months is a real shift, even though neither number sounds impressive.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then the claims you didn't write. Skim the answers themselves every few weeks, not just the numbers. New framing shows up as language before it shows up as a metric, and a claim that isn't on your list can't be counted yet.\"}),`\n`,(0,t.jsx)(s,{title:\"A claim moving is a line, not an anecdote\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"trend\",label:\"Pull-through for the claim you want repeated\",series:[8,9,8,11,12,14,15],change:7,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"A General project puts the category prompts on a daily schedule and gives every claim a history instead of a spot check. Annotations sit on the same timeline, so a briefing day, a report launch or a big feature lands next to the movement it caused. Both carry into exports, which is what makes the quarterly readout explain itself.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Point goals at the publishers that shape the category\"}),`\n`,(0,t.jsx)(e.p,{children:\"A few outlets set the terms of any market. Once you can see which ones the answers lean on, outreach stops being a list of everybody who covers the industry.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Shortlist the outlets the market's answers cite. Then score them before you commit anyone's hours, because two things decide whether an outlet is worth working. Whether AI can read it at all, since plenty of well-known publications block AI crawlers outright, and whether it already shows up for questions in this market. A famous masthead that blocks crawlers won't move an answer no matter who you know there. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see\",children:\"Building a pitch list AI can actually see\"}),\" covers the scoring in depth.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then attach the ones you're working as goals on the tracked project. A goal ties the outreach to the measurement, so when a claim's pull-through moves you have a specific piece of work sitting next to it rather than a guess. This is the same mechanism that c
2onnects \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"earned media to AI visibility\"}),\" for a brand; here the subject is the market instead.\"]}),`\n`,(0,t.jsx)(s,{title:\"Outreach attached to the number it's meant to move\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"11 cited outlets shortlisted\",done:!0},{label:\"Scored for AI accessibility and authority\",done:!0},{label:\"3 attached as goals on the active project\",done:!0},{label:\"Two blocked crawlers, dropped before outreach\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"A project goal can point at a publisher, an article, an author or a coverage group, so a category's outreach plan lives in the same place as its measurement. Publisher scoring combines a domain's organic authority with whether AI can actually read it, which is what keeps a Tier 1 masthead that blocks crawlers from eating a quarter of your hours.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Read which sources AI trusts\"}),`\n`,(0,t.jsx)(e.p,{children:\"The last step is the one that turns all of this into a plan.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every tracked answer carries its sources, so the domains cited most often for this market are sitting there in a list. Read it and compare it against the outlets you already work with. Three patterns come up almost every time.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Outlets you know and already have relationships with, which is the easy case and usually the first place to take a correction.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Sources you didn't expect, which is the interesting case. Reference works, standards bodies, well-moderated forums, and trade publications far outside the tier list. These are frequently easier to correct than a magazine feature, because they're maintained rather than published once.\"}),`\n`,(0,t.jsx)(e.p,{children:\"And sources carrying the claim you want changed, which is where to start. Sort the work by which source is feeding the framing you're trying to move rather than by the size of the outlet. A mid-sized trade site that AI reads constantly beats a national title it can't read at all.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That's the whole payoff of watching a narrative rather than a ranking. You don't end up with a number to report; you end up with four domains, a claim each, and a reason to call them.\"}),`\n`,(0,t.jsx)(s,{title:\"From a claim you don't like to the sites it's coming from\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"checklist\",items:[{label:\"Top 20 cited domains reviewed\",done:!0},{label:\"4 carrying the claim to correct\",done:!0},{label:\"2 already in the relationship list\",done:!0},{label:\"Outreach ordered by what AI actually reads\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Citation Intelligence classifies every source behind the market's tracked answers and scores each one for what it's worth in AI discovery. A promising source converts into a PR project without leaving the page, which is how a claim you want changed becomes a piece of work with a date on it.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What a quarter of this gets you\"}),`\n`,(0,t.jsx)(e.p,{children:\"Narrative work is slow and it compounds, so judge it by the quarter rather than the week. Three months in, a category being watched properly has four things.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A claim list with history.\"}),\" Three to eight claims, each with a pull-through line long enough to have a normal range. The range is what makes an unusual month readable as one.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"An awareness set that works.\"}),\" Enough questions at the top of the journey that the market's story shows up in the data rather than in somebody's inbox screenshot.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A source list, ordered.\"}),\" The domains AI reads for this market, scored, with the ones carrying the claims you care about at the top.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"One correction you can point at.\"}),\" A claim that moved after specific outreach, with the dates attached. One cause and effect beats a quarter of charts.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you haven't set the market up yet, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-map-a-category-in-ai-answers\",children:\"mapping a category in AI answers\"}),\" is the five-step version of the setup, and this workflow picks up where it ends. If the same market is also a new-business list, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-turn-a-category-map-into-prospects\",children:\"turning a category map into prospects\"}),\" uses the ranking rather than the claims. And if the story has turned against the category quickly rather than drifting, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story\",children:\"crisis communications when AI is repeating the story\"}),\" is the faster-moving version of this work.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function d(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(c,{...a})}):c(a)}function v(a,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"15:[\"$\",\"$L10\",\"how-to-watch-the-narrative-in-a-category\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$59\",\"title\":\"How to Watch the Narrative in a Category\",\"date\":\"2026-09-18\",\"image\":\"/images/blog/how-to-watch-the-narrative-in-a-category.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Every market has a story AI keeps repeating, and a short list of publishers it takes that story from. Here's how to write the claims down, track them daily, and find the outlets that set the terms.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Key Messages\",\"Category Tracking\"],\"published\":true,\"faq\":[{\"question\":\"What's the difference between tracking a narrative and tracking a ranking?\",\"answer\":\"A ranking tells you which brands AI names in a market. A narrative tells you how AI describes the market itself, which claims it repeats and which framing it treats as settled. The two move independently, and the story usually changes before the ranking does.\"},{\"question\":\"How many claims should we track?\",\"answer\":\"Three is the working minimum and eight is about the ceiling. Each claim has to be a single idea in plain language, so a long list is usually a sign that two or three claims got stapled together and should be split.\"},{\"question\":\"Should we track claims we disagree with?\",\"answer\":\"Yes, and they're often the more useful half. A claim you'd rather AI dropped is the one you need told about the moment it starts surfacing, and you can't be told about something nobody wrote down.\"},{\"question\":\"Why do awareness prompts matter so much here?\",\"answer\":\"Because that's where the story lives. A buyer at the awareness stage asks how the problem gets solved, not who solves it, so the answer is an explanation rather than a list of brands. That explanation is the market's narrative in the model's own words.\"},{\"question\":\"How fast does a narrative move?\",\"answer\":\"Slowly, which is why daily readings matter. Claims shift over weeks rather than days, so a single check tells you almost nothing and a line on a chart tells you plenty. Treat a two-day change as noise.\"}],\"howTo\":{\"name\":\"How to watch the narrative in a category\",\"description\":\"A five-step workflow for PR and communications teams that tracks which claims AI repeats about a market, where the claims come from, and which publishers are worth the outreach.\",\"steps\":[{\"name\":\"Add the claims you expect AI to repeat\",\"text\":\"Write down what the market is supposed to stand for, one idea per claim, including the claims you'd rather AI dropped.\"},{\"name\":\"Cover the awareness stage\",\"text\":\"Add the questions buyers ask before they know the options, since that's where a market's story shows up rather than its brand names.\"},{\"name\":\"Track the claims every day\",\"text\":\"Put the category prompts on a daily schedule so a hunch about the story turns into a line on a chart.\"},{\"name\":\"Point goals at the publishers that shape the category\",\"text\":\"Shortlist the outlets the market's answers cite, score them before committing outreach hours, and attach them as goals.\"},{\"name\":\"Read which sources AI trusts\",\"text\":\"Work through the domains cited most often for the market and start with the ones carrying the claim you want changed.\"}]},\"_meta\":{\"filePath\":\"how-to-watch-the-narrative-in-a-category.mdx\",\"fileName\":\"how-to-watch-the-narrative-in-a-category.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-watch-the-narrative-in-a-category\"},\"body\":\"$5a\",\"locale\":\"en\",\"path\":\"how-to-watch-the-narrative-in-a-category\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"5b:T1f10,"])</script>
2<script>self.__next_f.push([1,"Here's a worry we hear a lot. When ChatGPT goes looking for your brand, does it actually know where you live on the web? Or does it take your name, bolt a .com onto the end, and hope? If it's guessing, every brand with a domain that doesn't match its name is one bad roll away from sending a user to someone else's site. And there's nothing you could do about it.\n\nSo we tested it. Our research team built a panel of 48 brands designed to catch a guesser, asked ChatGPT about each of them twice a day for ten days, and recorded the exact `site:` search it typed when it went to consult a brand's own website. The [full study](https://research.spyglasses.io/articles/brand-domain-knowledge) is pre-registered and the data is public. Here's what it means for you.\n\n## Key Takeaways\n\n- ChatGPT keeps a stored list of brand domains and uses it when it scopes a search to a brand's site. It doesn't predict your domain from your name.\n- When it consulted a brand's own site, it used the right domain in 100% of calls for brands with guessable domains, 98.6% for brands with non-obvious domains, 98.5% for brands that changed domains, and 100% for obscure brands, across 1,152 calls evaluated in this study.\n- Out of 7,117 site-scoped searches, it typed a name-shaped guess twice, both for one brand on one call. Four calls in total landed on a different company's site.\n- If you changed domains, the old one stays on the list. Meta's facebook.com and GoTo's logmein.com came back day after day, always alongside the new domain, never instead of it.\n- The rare wrong-company mix-ups happened on comparison questions, where the model opens on competitors first. Your comparison content is where your identity gets tested.\n\n## It's a list, not a guess\n\nThe design was simple. Four tiers of twelve brands each. Tier A brands own their own name (Sony, Stripe, Figma). Tier B brands have domains you'd never guess from the name (Linear at linear.app, Motion at usemotion.com, Things at culturedcode.com). Tier C brands changed domains at some point (Notion, Meta, GoTo, Zoom). Tier D brands are real but obscure small-business tools most people have never heard of; if the model has to guess anywhere, it's here.\n\nIf ChatGPT were reconstructing domains from names, tiers B and D are where it would fall apart. Several of the \"obvious\" guesses are real sites owned by unrelated companies. bear.com sells mattresses. motion.com sells industrial parts. A guesser would walk right into them.\n\n![Dot plot with confidence whiskers. Share of calls whose first site-scoped search used the brand's canonical domain, by tier. Brand-identity prompts sit at 100% in all four tiers. Comparison prompts sit between 97% and 100%.](/images/blog/chatgpt-domain-accuracy-by-tier.png)\n\nIt didn't walk into any of them. Every brand-identity question, in every tier, on every one of the ten days, sent the model to the brand's true domain. All 576 of those calls. The obscure tier was perfect. The non-obvious tier was perfect on identity questions and slipped once on a comparison question. That's the behavior of a lookup table, not a dice roll.\n\n## The traps we set, and what they caught\n\nAcross the whole study, four calls out of 1,152 committed to a site that wasn't the brand's. Three of them went to amieapp.com while answering about Amie, the AI calendar app at amie.so. That's a different company that happens to share the name. One went to clockwise.com while answering about Clockwise, which lives at getclockwise.com. All four were comparison questions.\n\nEvery other non-canonical consultation in the study was one of two things: the brand's own previous domain, or another site the brand actually owns (Meta's investor site, GoTo's gotomypc.com, Shopify's developer docs). We checked each one by hand.\n\nSo the real failure rate for \"ChatGPT went to the wrong company\" is about a third of one percent. And our design could have caught a guess rate of about 1% per tier on identity questions if one existed. It didn't.\n\n## The one thing it doesn't forget\n\nHere's the finding that should change your to-do list if you've ever rebranded or moved domains. The model didn't forget the old ones.\n\n![Heatmap of three migrated brands by day. Meta's old domain appears in 31% to 58% of its site-scoped searches every day. GoTo's appears on six of ten days. Zoom's appears once.](/images/blog/chatgpt-old-domain-persistence.png)\n\nMeta moved from facebook.com to meta.com years ago. On all ten days of the study, between 31% and 58% of the searches ChatGPT scoped to Meta's own sites went to facebook.com or fb.com. GoTo's old domain, logmein.com, showed up on six of ten days. Zoom's old zoom.us showed up once.\n\nThe important detail: in every single one of those calls, the model also searched the new domain. It didn't pick the old address instead of the new one. It searched both. The list has two entries for the brand, and the model works through them.\n\nThat's good news and a chore. Good news because your new domain is on the list. A chore because your old one is too, and it will keep getting direct requests from the model for the foreseeable future.\n\n## What to do this quarter\n\n**If you've migrated domains, keep the old ones alive.** DNS, TLS certificate, and a clean redirect to the equivalent page on the new domain. Not just the home page; deep links matter because the model scopes searches to specific paths like pricing and help pages. If the old domain goes dark, the model won't quietly drop it. It'll get nothing back from a site it still trusts. Our [guide to tracking a rebrand in AI answers](/en/blog/how-to-track-a-rebrand-in-ai-answers) covers how to watch this over time.\n\n**If you share a name with a bigger company, anchor your category everywhere.** The Amie mix-up happened on comparison questions, and the fix is on your side of the fence. \"Amie, the AI calendar\" in your page titles, your descriptions, and your comparison pages gives the model the anch
2or it needs to keep you separate from the other Amie. Cheap insurance.\n\n**Stop worrying about the front door and start worrying about the rooms.** The model shows up at the right address. The real question is what it finds when it gets there. It's scoping searches to your pricing page, your features page, your help center. If those pages are thin, blocked to crawlers, or say something different from your positioning, that's what ends up in the answer. Our [AI Readiness Site Audit](/en/ai-readiness-audit) scores exactly those pages for how well AI can read and cite them.\n\n**Put your effort into comparison content.** Comparison questions are where ChatGPT opens on competitors first, where the wrong-company mix-ups happened, and where our [previous study](https://research.spyglasses.io/articles/where-ai-looks-first) found the model most likely to consult primary sources. Factual, non-superlative comparison pages are the content most directly tied to that behavior.\n\n## What this doesn't mean\n\nEvery number above is \"when the model chose to consult the brand's own site.\" We measured what it types when it does that, not whether it knows a domain it never chose to look up. It's one model (gpt-5.6-terra) through the OpenAI API, not the consumer app, and it says nothing about Perplexity, Gemini, or Google AI Overviews. And ten quiet days set an upper bound on guessing; they don't prove it can never happen.\n\nThe old-domain finding rests on three brands. It's a clear pattern, not a law, and the study says so.\n\nThe full methodology, the pre-registered hypotheses, the one test we couldn't identify from the data (and why we say so instead of swapping in one that would have passed), and the released dataset are all in [the research article](https://research.spyglasses.io/articles/brand-domain-knowledge).\n\nWant to see which of your pages AI consults directly, and whether it's reaching the right domain? Run an [AI Visibility Report](/en/ai-visibility-report). The preview is free."])</script>
2<script>self.__next_f.push([1,"5c:T28db,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var f=(o,e)=\u003e()=\u003e(e||o((e={exports:{}}).exports,e),e.exports),y=(o,e)=\u003e{for(var n in e)s(o,n,{get:e[n],enumerable:!0})},i=(o,e,n,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let a of u(e))!w.call(o,a)\u0026\u0026a!==n\u0026\u0026s(o,a,{get:()=\u003ee[a],enumerable:!(r=m(e,a))||r.enumerable});return o};var b=(o,e,n)=\u003e(n=o!=null?p(g(o)):{},i(e||!o||!o.__esModule?s(n,\"default\",{value:o,enumerable:!0}):n,o)),v=o=\u003ei(s({},\"__esModule\",{value:!0}),o);var d=f((I,h)=\u003e{h.exports=_jsx_runtime});var T={};y(T,{default:()=\u003ec});var t=b(d());function l(o){let e={a:\"a\",code:\"code\",h2:\"h2\",img:\"img\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...o.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Here's a worry we hear a lot. When ChatGPT goes looking for your brand, does it actually know where you live on the web? Or does it take your name, bolt a .com onto the end, and hope? If it's guessing, every brand with a domain that doesn't match its name is one bad roll away from sending a user to someone else's site. And there's nothing you could do about it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"So we tested it. Our research team built a panel of 48 brands designed to catch a guesser, asked ChatGPT about each of them twice a day for ten days, and recorded the exact \",(0,t.jsx)(e.code,{children:\"site:\"}),\" search it typed when it went to consult a brand's own website. The \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/brand-domain-knowledge\",children:\"full study\"}),\" is pre-registered and the data is public. Here's what it means for you.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"ChatGPT keeps a stored list of brand domains and uses it when it scopes a search to a brand's site. It doesn't predict your domain from your name.\"}),`\n`,(0,t.jsx)(e.li,{children:\"When it consulted a brand's own site, it used the right domain in 100% of calls for brands with guessable domains, 98.6% for brands with non-obvious domains, 98.5% for brands that changed domains, and 100% for obscure brands, across 1,152 calls evaluated in this study.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Out of 7,117 site-scoped searches, it typed a name-shaped guess twice, both for one brand on one call. Four calls in total landed on a different company's site.\"}),`\n`,(0,t.jsx)(e.li,{children:\"If you changed domains, the old one stays on the list. Meta's facebook.com and GoTo's logmein.com came back day after day, always alongside the new domain, never instead of it.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The rare wrong-company mix-ups happened on comparison questions, where the model opens on competitors first. Your comparison content is where your identity gets tested.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"It's a list, not a guess\"}),`\n`,(0,t.jsx)(e.p,{children:\"The design was simple. Four tiers of twelve brands each. Tier A brands own their own name (Sony, Stripe, Figma). Tier B brands have domains you'd never guess from the name (Linear at linear.app, Motion at usemotion.com, Things at culturedcode.com). Tier C brands changed domains at some point (Notion, Meta, GoTo, Zoom). Tier D brands are real but obscure small-business tools most people have never heard of; if the model has to guess anywhere, it's here.\"}),`\n`,(0,t.jsx)(e.p,{children:'If ChatGPT were reconstructing domains from names, tiers B and D are where it would fall apart. Several of the \"obvious\" guesses are real sites owned by unrelated companies. bear.com sells mattresses. motion.com sells industrial parts. A guesser would walk right into them.'}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/chatgpt-domain-accuracy-by-tier.png\",alt:\"Dot plot with confidence whiskers. Share of calls whose first site-scoped search used the brand's canonical domain, by tier. Brand-identity prompts sit at 100% in all four tiers. Comparison prompts sit between 97% and 100%.\"})}),`\n`,(0,t.jsx)(e.p,{children:\"It didn't walk into any of them. Every brand-identity question, in every tier, on every one of the ten days, sent the model to the brand's true domain. All 576 of those calls. The obscure tier was perfect. The non-obvious tier was perfect on identity questions and slipped once on a comparison question. That's the behavior of a lookup table, not a dice roll.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The traps we set, and what they caught\"}),`\n`,(0,t.jsx)(e.p,{children:\"Across the whole study, four calls out of 1,152 c
2ommitted to a site that wasn't the brand's. Three of them went to amieapp.com while answering about Amie, the AI calendar app at amie.so. That's a different company that happens to share the name. One went to clockwise.com while answering about Clockwise, which lives at getclockwise.com. All four were comparison questions.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every other non-canonical consultation in the study was one of two things: the brand's own previous domain, or another site the brand actually owns (Meta's investor site, GoTo's gotomypc.com, Shopify's developer docs). We checked each one by hand.\"}),`\n`,(0,t.jsx)(e.p,{children:`So the real failure rate for \"ChatGPT went to the wrong company\" is about a third of one percent. And our design could have caught a guess rate of about 1% per tier on identity questions if one existed. It didn't.`}),`\n`,(0,t.jsx)(e.h2,{children:\"The one thing it doesn't forget\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the finding that should change your to-do list if you've ever rebranded or moved domains. The model didn't forget the old ones.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/chatgpt-old-domain-persistence.png\",alt:\"Heatmap of three migrated brands by day. Meta's old domain appears in 31% to 58% of its site-scoped searches every day. GoTo's appears on six of ten days. Zoom's appears once.\"})}),`\n`,(0,t.jsx)(e.p,{children:\"Meta moved from facebook.com to meta.com years ago. On all ten days of the study, between 31% and 58% of the searches ChatGPT scoped to Meta's own sites went to facebook.com or fb.com. GoTo's old domain, logmein.com, showed up on six of ten days. Zoom's old zoom.us showed up once.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The important detail: in every single one of those calls, the model also searched the new domain. It didn't pick the old address instead of the new one. It searched both. The list has two entries for the brand, and the model works through them.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That's good news and a chore. Good news because your new domain is on the list. A chore because your old one is too, and it will keep getting direct requests from the model for the foreseeable future.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What to do this quarter\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"If you've migrated domains, keep the old ones alive.\"}),\" DNS, TLS certificate, and a clean redirect to the equivalent page on the new domain. Not just the home page; deep links matter because the model scopes searches to specific paths like pricing and help pages. If the old domain goes dark, the model won't quietly drop it. It'll get nothing back from a site it still trusts. Our \",(0,t.jsx)(e.a,{href:\"/en/blog/how-to-track-a-rebrand-in-ai-answers\",children:\"guide to tracking a rebrand in AI answers\"}),\" covers how to watch this over time.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"If you share a name with a bigger company, anchor your category everywhere.\"}),' The Amie mix-up happened on comparison questions, and the fix is on your side of the fence. \"Amie, the AI calendar\" in your page titles, your descriptions, and your comparison pages gives the model the anchor it needs to keep you separate from the other Amie. Cheap insurance.']}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Stop worrying about the front door and start worrying about the rooms.\"}),\" The model shows up at the right address. The real question is what it finds when it gets there. It's scoping searches to your pricing page, your features page, your help center. If those pages are thin, blocked to crawlers, or say something different from your positioning, that's what ends up in the answer. Our \",(0,t.jsx)(e.a,{href:\"/en/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" scores exactly those pages for how well AI can read and cite them.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Put your effort into comparison content.\"}),\" Comparison questions are where ChatGPT opens on competitors first, where the wrong-company mix-ups happened, and where our \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/where-ai-looks-first\",children:\"previous study\"}),\" found the model most likely to consult primary sources. Factual, non-superlative comparison pages are the content most directly tied to that behavior.\"]}
2),`\n`,(0,t.jsx)(e.h2,{children:\"What this doesn't mean\"}),`\n`,(0,t.jsx)(e.p,{children:`Every number above is \"when the model chose to consult the brand's own site.\" We measured what it types when it does that, not whether it knows a domain it never chose to look up. It's one model (gpt-5.6-terra) through the OpenAI API, not the consumer app, and it says nothing about Perplexity, Gemini, or Google AI Overviews. And ten quiet days set an upper bound on guessing; they don't prove it can never happen.`}),`\n`,(0,t.jsx)(e.p,{children:\"The old-domain finding rests on three brands. It's a clear pattern, not a law, and the study says so.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The full methodology, the pre-registered hypotheses, the one test we couldn't identify from the data (and why we say so instead of swapping in one that would have passed), and the released dataset are all in \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/brand-domain-knowledge\",children:\"the research article\"}),\".\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Want to see which of your pages AI consults directly, and whether it's reaching the right domain? Run an \",(0,t.jsx)(e.a,{href:\"/en/ai-visibility-report\",children:\"AI Visibility Report\"}),\". The preview is free.\"]})]})}function c(o={}){let{wrapper:e}=o.components||{};return e?(0,t.jsx)(e,{...o,children:(0,t.jsx)(l,{...o})}):l(o)}return v(T);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"16:[\"$\",\"$L10\",\"does-chatgpt-know-your-domain\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$5b\",\"title\":\"ChatGPT Already Knows Your Domain. Here's What That Changes.\",\"date\":\"2026-09-14\",\"image\":\"/images/blog/does-chatgpt-know-your-domain.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"We asked ChatGPT about 48 brands twice a day for ten days and recorded which site it chose to search. It picked the right domain in over 98% of calls in every tier, including brands whose domain has nothing to do with their name. The one thing it doesn't forget is a domain you used to have.\",\"tags\":[\"AI Search Visibility\",\"grounding searches\",\"site consultations\",\"AEO\",\"GEO\",\"domain migration\",\"research\"],\"published\":true,\"_meta\":{\"filePath\":\"does-chatgpt-know-your-domain.mdx\",\"fileName\":\"does-chatgpt-know-your-domain.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"does-chatgpt-know-your-domain\"},\"body\":\"$5c\",\"locale\":\"en\",\"path\":\"does-chatgpt-know-your-domain\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"5d:T53e0,"])</script>
2<script>self.__next_f.push([1,"Seeing which sites AI trusts means reading the site-scoped searches assistants run before they answer, across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews. When a model searches `site:acme.com pricing` instead of searching the open web, it has already decided where the answer lives. The domain it names is one it treats as a source. It takes seven steps.\n\nStart by reading the weekly consultation counts; your own site against competitors, plus the share of searching answers that consulted anyone at all. Treat the third-party rows as publisher intelligence, because a site the model reads on purpose is a better pitch target than one with a big domain authority score. Then check the flagged look-alike domains, the addresses that resemble yours but aren't in your account. A live site there means your authority is landing on somebody else's page; an empty one means the model invented an address and the answer went nowhere.\n\nFrom there it's correction work. Claim the domains that really are yours, which moves their history into your own numbers, and dismiss the rest. Fix the canonical address in your Organization schema, directories, social profiles, and boilerplate, then note the date so the change in the data has a cause attached. Add recipients to the wrong-domain alert list, and schedule the weekly read instead of remembering it. Most brands see wrong-domain sightings drop to zero within six to ten weeks of correcting the source.\n\nHere's how it usually surfaces. Somebody on the comms team is testing prompts before a launch, notices the assistant quoting a support policy nobody recognizes, and traces it back to a domain the company let lapse in 2021.\n\n## Why the site AI picks tells you more than the pages it cites\n\nMost AI visibility reporting counts citations. A citation means one of your pages won a search and made it into the answer. That's worth counting, and it's not the same thing as trust.\n\nA site-scoped search is a different move. The model isn't asking the web who has the answer; it's asking one particular site, because it already believes that site is where the answer lives. Nothing can rank for `site:acme.com`, so this is worthless as a ranking opportunity. As evidence it's about as direct as this channel gets.\n\nThat gives you three readings, and they mean different things.\n\n**The model consulted your site.** It treats you as a source worth reading before it commits to an answer. This is the good case, and it tends to show up on consideration and decision questions before it shows up anywhere else.\n\n**It consulted a competitor and never you.** The finding isn't that your number is low. It's that the model has a site it trusts for these questions and yours isn't it.\n\n**It consulted a third party.** A publisher, a reference work, or a forum it trusts more than either of you. That's a PR input rather than a competitive one, and it's the most actionable row on the table.\n\nThen there's the fourth case, which is the one that makes people sit up. The model consulted a domain that looks like yours and isn't. Your authority is real enough that it went looking for you by name; it just went to the wrong address. This workflow works with any AI visibility setup, and the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Read the consultations | Counting who AI reads directly | A weekly number for your own site |\n| 2. Rank the third parties | Turning trust into a pitch list | Targets picked by evidence, not authority scores |\n| 3. Check the look-alikes | Finding out what's at each address | Every flagged domain explained |\n| 4. Claim or dismiss | Sorting yours from noise | History reclassified, alerts quiet |\n| 5. Fix the source | One canonical address everywhere | A dated annotation on the timeline |\n| 6. Turn on alerts | Routing recurrences to email | A named recipient list |\n| 7. Automate the read | Scheduling the weekly summary | A digest that arrives without a reminder |\n\n## Read which sites AI consulted before it answered\n\nStart with the weekly counts, and read three numbers rather than one.\n\nYour own site first. That's the count of times an assistant ran a scoped search against your domain in the last seven days. On its own it's a raw number, and raw counts mostly measure how chatty a platform was that week. One prompt c
2an fan out into a dozen searches.\n\nSo read the rate next. Of the answers where the model searched the web at all, what share included a consultation of you? That question has a stable answer week to week, which makes it the number worth putting in a report.\n\nThird, the split. Your site against competitors' against third parties. A brand that gets consulted twice while a competitor gets consulted thirty times has a specific problem, and it isn't a content volume problem.\n\nOne catch worth knowing before you quote any of this to a client. Prompts that name your brand outright, and head-to-head comparison prompts, should be held out of the headline numbers. A question that names you is expected to send the model to your site, so counting it lets the metric congratulate itself. A brand tracking mostly branded prompts would look maximally authoritative while telling you nothing. If your setup doesn't exclude them, exclude them by hand before you report.\n\n\u003cWorkflowCallout\n  title=\"Your site, competitors', and third parties, counted weekly\"\n  page=\"AI Consultations\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"count\",\n    label: \"Sites AI consulted directly\",\n    value: 14,\n    target: 1,\n    caption: \"7 days: 9 consultations of you, 21 competitors', 33 third-party\",\n  }}\n\u003e\n  The AI Consultations card leads with consultations of your own site over the last seven days, then the share of searching answers that included one, then the competitor and third-party counts. Brand-identity and comparison prompts are held out of those headline numbers, so the rate reflects questions you had to earn. The drill-down opens on seven days with 30- and 90-day presets, and breaks the same split across platforms and buyer's journey stages.\n\u003c/WorkflowCallout\u003e\n\n## Turn the sites AI reads directly into pitch targets\n\nThis is the step PR teams get the most out of, and it's the one people skip because the row looks like background noise.\n\nA third-party domain in that table is a site an assistant chose to read before answering a question in your category. Not a site that happened to rank. A site it went to on purpose. That's a much stronger signal than domain authority, which measures how the open web links to a publication rather than whether a model reads it.\n\nSo rank your outreach by it. A trade publication with modest traffic that gets consulted directly on eleven answers a week is a better target than a famous outlet that never appears. Reference works and well-moderated forums show up here more than most comms teams expect, and they're often easier to correct than a magazine feature.\n\nTwo things decide whether a target is worth the pitch. Whether AI can crawl the site at all, and whether it already shows up for questions in your category. A well-known publication that blocks AI crawlers in its robots.txt won't move an answer no matter who you know there. Scoring the list before you work it is the same discipline as any earned media program in this channel; [connecting earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility) covers the scoring in depth, and [building a PR pitch list AI can actually see](/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see) covers turning it into outreach.\n\n\u003cWorkflowCallout\n  title=\"The sites AI reads on purpose, ranked before you pitch\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"count\",\n    label: \"Third-party sites AI consults directly\",\n    value: 6,\n    target: 6,\n    caption: \"3 trade press, 2 reference works, 1 community forum\",\n  }}\n\u003e\n  Citation Intelligence classifies every source behind your tracked answers and carries a \"Sources AI consults directly\" view, which is the cross-reference for the third-party rows on the consultations table. Each source gets a placement value score combining its authority with whether AI can actually read it, so the list sorts by what can change an answer rather than by name recognition. Promising targets convert into a PR project without leaving the page.\n\u003c/WorkflowCallout\u003e\n\n## Investigate the domains that look like yours but aren't\n\nNow the interesting part. Some flagged rows are addresses that resemble your brand and aren't in your account: a different top-level domain, a country variant, a hyphenated spelling, the name of a product you acquired.\n\nOpen each one in a browser. What you find sorts into four cases, and each has a different fix.\n\n| What's at the address | What it means | What to do |\n| :--- | :--- | :--- |\n| A live site that is really yours | A legacy, regional, or acquired domain missing from your account | Claim it, then set the canonical address |\n| A live site somebody else runs | Your authority is landing on their page | Fix the source, and consider outreach |\n| A parked page or domain-for-sale listing | The model trusts an address with nothing behind it | Fix the source; buy it back if it's cheap |\n| Nothing served at all | The model invented the address; the answer went nowhere | Fix the source, and check what it cited instead |\n\nThe first case is the most common and the least alarming. Companies accumulate domains. A regional site from a market you entered in 2019, a top-level domain you bought defensively, the address of a company you acquired two years ago. The model isn't wrong that those are you; your account just doesn't know it yet.\n\nThe last case is the one worth pausing on. When nothing is served, the assistant made up a plausible address from your brand name, searched it, found nothing, and answered anyway using whatever else it had. Nobody saw an error. The answer just got built from weaker material.\n\nOne sighting isn't a pattern. What matters is recurrence, the same brand-like domain turning up across separate runs inside a week. A single odd search is usually a one-off; the same wrong address three times means the model learned it somewhere and kept it.\n\n\u003cWorkflowCallout\n  title=\"Recurrence is the trigger, not a single odd search\"\n  page=\"AI Consultations\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"trend\",\n    label: \"Wrong-domain sightings per week\",\n    series: [0, 1, 0, 2, 3, 2, 4],\n    change: 4,\n    lowerIsBetter: true,\n  }}\n\u003e\n  A brand-like domain consulted across at least two prompt runs inside seven days raises a wrong-domain alert, capped at one per domain per month 
2so a persistent problem doesn't flood the timeline. The alert lands as an annotation on the property timeline, alongside your releases and site changes, which is where you'll want it when you're explaining a trend break later. Flagged rows in the Consulted sites table carry the claim and dismiss actions directly.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong-quote.webp\"\n  quote=\"A site AI reads before it answers is worth more than a site it cites in passing. One is a source it trusts. The other is a link it found.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong\"\n/\u003e\n\n## Claim or dismiss each wrong address\n\nEvery flagged domain should end up in one of two states, and leaving them unsorted is what turns a useful alert into background noise people stop reading.\n\nClaim the ones that are yours. That means the legacy top-level domains, the regional sites, the domains that came with an acquisition, and anything else your company actually controls. Claiming reclassifies the history too, so past consultations of that address move out of the third-party column and into your own numbers. Your authority reading gets more accurate going backward as well as forward, and the alerts for that domain stop.\n\nDismiss the rest. A dismissed domain stays counted as a third party everywhere it appears; you're only turning off alerting for it. Use this for the parked pages, the unrelated companies with similar names, and the addresses that don't exist. You want the alert list to mean something, and it only means something when the known cases are cleared.\n\nKeep a short note on why you dismissed each one. Six months later, when the same domain resurfaces in a different context, the note saves somebody the same twenty minutes of investigation.\n\n\u003cWorkflowCallout\n  title=\"Claiming a domain rewrites its history into your numbers\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"3 domains claimed as yours\", done: true },\n      { label: \"2 dismissed as noise\", done: true },\n      { label: \"Acquired brand's domain claimed\", done: true },\n      { label: \"Parked look-alike dismissed with a note\", done: false },\n    ],\n  }}\n\u003e\n  \"This domain is ours\" adds the address to the property's own domains, and every consultation of it, past and future, moves into your own-site numbers while its alerts stop. \"Dismiss\" turns alerting off and changes nothing else, so the domain stays counted as a third party wherever it appears. Both actions live on the flagged rows of the Consulted sites table, so the sorting happens where you found the problem.\n\u003c/WorkflowCallout\u003e\n\n## Fix the address everywhere the model learned it\n\nClaiming a domain corrects your reporting. It doesn't correct the model. For that you have to fix the address at the places the model read it, and then wait for a recrawl.\n\nWork through the durable sources in rough order of how much weight they carry.\n\n**Your structured data.** One canonical `url` in y
2our Organization schema, with every legitimate variant listed under `sameAs`. This is the single most direct statement you can make about which address is you, and plenty of sites still carry a stale one from a template set up years ago.\n\n**Directory and database listings.** Crunchbase, industry directories, chamber listings, review platforms. These update slowly and get quoted with more confidence than they deserve, because a retrieval system reads three sites saying the same wrong thing as corroboration.\n\n**Social profiles.** The link in every bio, on every platform, including the accounts nobody has posted to since 2022.\n\n**Press boilerplate.** The \"About\" paragraph at the bottom of every release you've issued. It gets copied verbatim into coverage, which means one wrong URL in boilerplate propagates into dozens of pages you don't control.\n\n**Redirects.** If a domain is yours and no longer serves the main site, make it redirect rather than sit parked. A permanent redirect gives the crawler an unambiguous answer.\n\nThen note the date you made the change. The lag between fixing an address and seeing the wrong-domain sightings stop runs six to ten weeks, sometimes longer for directory data, and nobody remembers in November what changed in September. If the fix is part of a wider name or domain change, the sequencing in [tracking a rebrand in AI answers](/blog/how-to-track-a-rebrand-in-ai-answers) applies here too. It's also worth confirming assistants can read the canonical site cleanly; the [AI readiness audit](/ai-readiness-audit) shows which pages parse without trouble.\n\n\u003cWorkflowCallout\n  title=\"Note the fix so the trend break has a cause attached\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Wrong-domain consultations per week\",\n    before: \"11\",\n    after: \"0\",\n    tone: \"positive\",\n    caption: \"Canonical URL corrected in schema, directories, and boilerplate\",\n    series: [11, 9, 8, 5, 3, 2, 0],\n    lowerIsBetter: true,\n  }}\n\u003e\n  Annotations sit on the same timeline as your visibility metrics, so a drop in wrong-domain sightings arrives with the change that caused it rather than needing a separate document. Wrong-domain alerts land on that timeline as annotations too, which puts the problem and the fix on one line. Both carry into exports, so the readout you hand a client already explains itself.\n\u003c/WorkflowCallout\u003e\n\n## Turn on alerts so a repeat reaches an inbox\n\nDetection runs whether or not anyone is watching, and that's exactly the problem. A finding that only lives on a timeline gets seen when somebody opens the timeline.\n\nAdd recipients to the wrong-domain alert list in your property settings. Two or three people is right; whoever owns the website, whoever owns comms, and whoever would field the question if a customer sent a screenshot. An empty list means the detection still runs and the finding waits for a visit.\n\nThis matters most in the weeks nobody is watching closely. Wrong addresses tend to appear right after the events that create them, which are the same events that keep everybody busy: a domain migration, a rebrand, an acquisition, a regional site launch. Turning the list on before that work starts is worth the two minutes.\n\n\u003cWorkflowCallout\n  title=\"Alerts are opt-in, so an empty list means nothing gets sent\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"count\",\n    label: \"Wrong-domain alert recipients\",\n    value: 3,\n    target: 1,\n    caption: \"Comms lead, web owner, support manager\",\n  }}\n\u003e\n  The wrong-domain recipient list lives on the property settings Reports tab, and adding an address is the whole setup. Detection runs either way, so the choice is only whether a finding reaches an inbox or waits on the property timeline. Alerts are capped at one per domain per month, which keeps a persistent look-alike from becoming a mail rule.\n\u003c/WorkflowCallout\u003e\n\n## Automate the weekly read\n\nThe last step is making sure this actually happens every week rather than the week after somebody remembers it exists.\n\nThe numbers are small enough to summarize in a paragraph, which makes them a good fit for a scheduled digest. Pull the current seven days and the seven before it, and narrate three things: your own consultations against the previous window, any new third-party domain that appeared, and any flagged look-alike. If none of those changed, the summary says so in a sentence and you move on.\n\nConnect your AI assistant to your visibility data and the digest writes itself. A weekly scheduled prompt that reads the last seven days against the previous seven costs nothing to run and turns a dashboard visit into an email you skim. That's the difference between a report somebody checks in busy weeks and one they check every week.\n\nKeep a human in the loop for the interesting rows. The digest is good at telling you a new domain showed up. Deciding whether it's a pitch target, a claim, or a dismissal is still a judgment call, and it's the one part of this workflow that stays manual on purpose.\n\n\u003cWorkflowCallout\n  title=\"The same numbers, pulled on a schedule\"\n  page=\"AI Consultations\"\n  href=\"/docs/mcp/account-data\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"MCP server connected\", done: true },\n      { label: \"Weekly summary scheduled\", done: true },\n      { label: \"Current window compared against previous\", done: true },\n      { label: \"New third-party domains called out\", done: false },\n    ],\n  }}\n\u003e\n  The Spyglasses MCP server exposes the consultations data to your AI assistant read-only, so a scheduled weekly prompt c
2an pull the current window and the one before it and write the comparison for you. The headline counters exclude brand-identity and comparison prompts the same way the dashboard does, so the digest and the card agree. Everything else stays a dashboard visit, which is the right place to make the judgment calls.\n\u003c/WorkflowCallout\u003e\n\n## What good looks like after a quarter\n\nThis workflow pays off in small, specific ways rather than one big chart. Three months in, you should have four things.\n\n1. **A weekly number for your own site.** Consultations of your domain, and the share of searching answers that included one, tracked long enough to have a normal range. That range is what makes a bad week legible as a bad week.\n2. **A pitch list built from evidence.** The third-party sites AI reads directly in your category, scored and ranked. It's a better list than the one you'd build from domain authority, and it costs nothing extra to produce.\n3. **A clean domain roster.** Every look-alike address either claimed or dismissed, with the reasoning written down, and alert volume for the sorted ones at zero.\n4. **One documented correction.** The canonical address fixed at the source, the date noted, and the wrong-domain sightings falling off over the following weeks. One cause and effect you can point at beats a quarter of charts.\n\nThe habit is ten minutes a week on the consultations view. Most weeks nothing has changed, which is the correct outcome for a metric that runs on recrawl cycles. The weeks it does change, you find out that an assistant has been sending people to an address you don't own, and you find out before a customer does.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"5e:T6c08,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var m=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)r(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let s of p(e))!w.call(n,s)\u0026\u0026s!==a\u0026\u0026r(n,s,{get:()=\u003ee[s],enumerable:!(i=g(e,s))||i.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?m(y(n)):{},o(e||!n||!n.__esModule?r(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003eo(r({},\"__esModule\",{value:!0}),n);var d=f((T,h)=\u003e{h.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eu});var t=k(d());function l(n){let e={a:\"a\",code:\"code\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||c(\"PullQuote\",!0),i||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(e.p,{children:[\"Seeing which sites AI trusts means reading the site-scoped searches assistants run before they answer, across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews. When a model searches \",(0,t.jsx)(e.code,{children:\"site:acme.com pricing\"}),\" instead of searching the open web, it has already decided where the answer lives. The domain it names is one it treats as a source. It takes seven steps.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Start by reading the weekly consultation counts; your own site against competitors, plus the share of searching answers that consulted anyone at all. Treat the third-party rows as publisher intelligence, because a site the model reads on purpose is a better pitch target than one with a big domain authority score. Then check the flagged look-alike domains, the addresses that resemble yours but aren't in your account. A live site there means your authority is landing on somebody else's page; an empty one means the model invented an address and the answer went nowhere.\"}),`\n`,(0,t.jsx)(e.p,{children:\"From there it's correction work. Claim the domains that really are yours, which moves their history into your own numbers, and dismiss the rest. Fix the canonical address in your Organization schema, directories, social profiles, and boilerplate, then note the date so the change in the data has a cause attached. Add recipients to the wrong-domain alert list, and schedule the weekly read instead of remembering it. Most brands see wrong-domain sightings drop to zero within six to ten weeks of correcting the source.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's how it usually surfaces. Somebody on the comms team is testing prompts before a launch, notices the assistant quoting a support policy nobody recognizes, and traces it back to a domain the company let lapse in 2021.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why the site AI picks tells you more than the pages it cites\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most AI visibility reporting counts citations. A citation means one of your pages won a search and made it into the answer. That's worth counting, and it's not the same thing as trust.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"A site-scoped search is a different move. The model isn't asking the web who has the answer; it's asking one particular site, because it already believes that site is where the answer lives. Nothing can rank for \",(0,t.jsx)(e.code,{children:\"site:acme.com\"}),\", so this is worthless as a ranking opportunity. As evidence it's about as direct as this channel gets.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"That gives you three readings, and they mean different things.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The model consulted your site.\"}),\" It treats you as a source worth reading before it commits to an answer. This is the good case, and it tends to show up on consideration and decision questions before it shows up anywhere else.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"It consulted a competitor and never you.\"}),\" The finding isn't that your number is low. It's that the model has a site it trusts for these questions and yours isn't it.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"It consulted a third party.\"}),\" A publisher, a reference work, or a forum it trusts more than either of you. That's a PR input rather than a competitive one, and it's the most actionable row on the table.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then there's the fourth case, which is the one that makes people sit up. The model consulted a domain that looks like yours and isn't. Your authority is real enough that it went looking for you by name; it just went to the wrong address. This workflow works with any AI visibility setup, and the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Read the consultations\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Counting who AI reads directly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A weekly number for your own site\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Rank the third parties\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Turning trust into a pitch list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Targets picked by evidence, not authority scores\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Check the look-alikes\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Finding out what's at each address\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every flagged domain explained\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Claim or dismiss\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Sorting yours from noise\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"History reclassified, alerts quiet\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Fix the source\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One canonical address everywhere\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A dated annotation on the timeline\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Turn on alerts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Routing recurrences to email\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A named recipient list\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"7. Automate the read\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scheduling the weekly summary\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A digest that arrives without a reminder\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Read which sites AI consulted before it answered\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with the weekly counts, and read three numbers rather than one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your own site first. That's the count of times an assistant ran a scoped search against your domain in the last seven days. On its own it's a raw number, and raw counts mostly measure how chatty a platform was that week. One prompt c
2an fan out into a dozen searches.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So read the rate next. Of the answers where the model searched the web at all, what share included a consultation of you? That question has a stable answer week to week, which makes it the number worth putting in a report.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Third, the split. Your site against competitors' against third parties. A brand that gets consulted twice while a competitor gets consulted thirty times has a specific problem, and it isn't a content volume problem.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One catch worth knowing before you quote any of this to a client. Prompts that name your brand outright, and head-to-head comparison prompts, should be held out of the headline numbers. A question that names you is expected to send the model to your site, so counting it lets the metric congratulate itself. A brand tracking mostly branded prompts would look maximally authoritative while telling you nothing. If your setup doesn't exclude them, exclude them by hand before you report.\"}),`\n`,(0,t.jsx)(i,{title:\"Your site, competitors', and third parties, counted weekly\",page:\"AI Consultations\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"count\",label:\"Sites AI consulted directly\",value:14,target:1,caption:\"7 days: 9 consultations of you, 21 competitors', 33 third-party\"},children:(0,t.jsx)(e.p,{children:\"The AI Consultations card leads with consultations of your own site over the last seven days, then the share of searching answers that included one, then the competitor and third-party counts. Brand-identity and comparison prompts are held out of those headline numbers, so the rate reflects questions you had to earn. The drill-down opens on seven days with 30- and 90-day presets, and breaks the same split across platforms and buyer's journey stages.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn the sites AI reads directly into pitch targets\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step PR teams get the most out of, and it's the one people skip because the row looks like background noise.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A third-party domain in that table is a site an assistant chose to read before answering a question in your category. Not a site that happened to rank. A site it went to on purpose. That's a much stronger signal than domain authority, which measures how the open web links to a publication rather than whether a model reads it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So rank your outreach by it. A trade publication with modest traffic that gets consulted directly on eleven answers a week is a better target than a famous outlet that never appears. Reference works and well-moderated forums show up here more than most comms teams expect, and they're often easier to correct than a magazine feature.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Two things decide whether a target is worth the pitch. Whether AI can crawl the site at all, and whether it already shows up for questions in your category. A well-known publication that blocks AI crawlers in its robots.txt won't move an answer no matter who you know there. Scoring the list before you work it is the same discipline as any earned media program in this channel; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"connecting earned media to AI visibility\"}),\" covers the scoring in depth, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see\",children:\"building a PR pitch list AI can actually see\"}),\" covers turning it into outreach.\"]}),`\n`,(0,t.jsx)(i,{title:\"The sites AI reads on purpose, ranked before you pitch\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"count\",label:\"Third-party sites AI consults directly\",value:6,target:6,caption:\"3 trade press, 2 reference works, 1 community forum\"},children:(0,t.jsx)(e.p,{children:'Citation Intelligence classifies every source behind your tracked answers and carries a \"Sources AI consults directly\" view, which is the cross-reference for the third-party rows on the consultations table. Each source gets a placement value score combining its authority with whether AI can actually read it, so the list sorts by what can change an answer rather than by n
2ame recognition. Promising targets convert into a PR project without leaving the page.'})}),`\n`,(0,t.jsx)(e.h2,{children:\"Investigate the domains that look like yours but aren't\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now the interesting part. Some flagged rows are addresses that resemble your brand and aren't in your account: a different top-level domain, a country variant, a hyphenated spelling, the name of a product you acquired.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Open each one in a browser. What you find sorts into four cases, and each has a different fix.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What's at the address\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What to do\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A live site that is really yours\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A legacy, regional, or acquired domain missing from your account\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Claim it, then set the canonical address\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A live site somebody else runs\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Your authority is landing on their page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fix the source, and consider outreach\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A parked page or domain-for-sale listing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The model trusts an address with nothing behind it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fix the source; buy it back if it's cheap\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Nothing served at all\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The model invented the address; the answer went nowhere\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fix the source, and check what it cited instead\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"The first case is the most common and the least alarming. Companies accumulate domains. A regional site from a market you entered in 2019, a top-level domain you bought defensively, the address of a company you acquired two years ago. The model isn't wrong that those are you; your account just doesn't know it yet.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The last case is the one worth pausing on. When nothing is served, the assistant made up a plausible address from your brand name, searched it, found nothing, and answered anyway using whatever else it had. Nobody saw an error. The answer just got built from weaker material.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One sighting isn't a pattern. What matters is recurrence, the same brand-like domain turning up across separate runs inside a week. A single odd search is usually a one-off; the same wrong address three times means the model learned it somewhere and kept it.\"}),`\n`,(0,t.jsx)(i,{title:\"Recurrence is the trigger, not a single odd search\",page:\"AI Consultations\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"trend\",label:\"Wrong-domain sightings per week\",series:[0,1,0,2,3,2,4],change:4,lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"A brand-like domain consulted across at least two prompt runs inside seven days raises a wrong-domain alert, capped at one per domain per month so a persistent problem doesn't flood the timeline. The alert lands as an annotation on the property timeline, alongside your releases and site changes, which is where you'll want it when you're explaining a trend break later. Flagged rows in the Consulted sites table carry the claim and dismiss actions directly.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong-quote.webp\",quote:\"A site AI reads before it answers is worth more than a site it cites in passing. One is a source it trusts. The other is a link it found.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Claim or dismiss each wrong address\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every flagged domain should end up in one of two states, and leaving them unsorted is what turns a useful alert into background noise people stop reading.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Claim the ones that are yours. That means the legacy top-level domains, the regional sites, the domains that came with an acquisition, and anything else your company actually controls. Claiming reclassifies the history too, so past consultations of that address move out of the third-party column and into your own numbers. Your authority reading gets more accurate going backward as well as forward, and the alerts for that domain stop.\"}
2),`\n`,(0,t.jsx)(e.p,{children:\"Dismiss the rest. A dismissed domain stays counted as a third party everywhere it appears; you're only turning off alerting for it. Use this for the parked pages, the unrelated companies with similar names, and the addresses that don't exist. You want the alert list to mean something, and it only means something when the known cases are cleared.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Keep a short note on why you dismissed each one. Six months later, when the same domain resurfaces in a different context, the note saves somebody the same twenty minutes of investigation.\"}),`\n`,(0,t.jsx)(i,{title:\"Claiming a domain rewrites its history into your numbers\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"checklist\",items:[{label:\"3 domains claimed as yours\",done:!0},{label:\"2 dismissed as noise\",done:!0},{label:\"Acquired brand's domain claimed\",done:!0},{label:\"Parked look-alike dismissed with a note\",done:!1}]},children:(0,t.jsx)(e.p,{children:`\"This domain is ours\" adds the address to the property's own domains, and every consultation of it, past and future, moves into your own-site numbers while its alerts stop. \"Dismiss\" turns alerting off and changes nothing else, so the domain stays counted as a third party wherever it appears. Both actions live on the flagged rows of the Consulted sites table, so the sorting happens where you found the problem.`})}),`\n`,(0,t.jsx)(e.h2,{children:\"Fix the address everywhere the model learned it\"}),`\n`,(0,t.jsx)(e.p,{children:\"Claiming a domain corrects your reporting. It doesn't correct the model. For that you have to fix the address at the places the model read it, and then wait for a recrawl.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Work through the durable sources in rough order of how much weight they carry.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Your structured data.\"}),\" One canonical \",(0,t.jsx)(e.code,{children:\"url\"}),\" in your Organization schema, with every legitimate variant listed under \",(0,t.jsx)(e.code,{children:\"sameAs\"}),\". This is the single most direct statement you can make about which address is you, and plenty of sites still carry a stale one from a template set up years ago.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Directory and database listings.\"}),\" Crunchbase, industry directories, chamber listings, review platforms. These update slowly and get quoted with more confidence than they deserve, because a retrieval system reads three sites saying the same wrong thing as corroboration.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Social profiles.\"}),\" The link in every bio, on every platform, including the accounts nobody has posted to since 2022.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Press boilerplate.\"}),` The \"About\" paragraph at the bottom of every release you've issued. It gets copied verbatim into coverage, which means one wrong URL in boilerplate propagates into dozens of pages you don't control.`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Redirects.\"}),\" If a domain is yours and no longer serves the main site, make it redirect rather than sit parked. A permanent redirect gives the crawler an unambiguous answer.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then note the date you made the change. The lag between fixing an address and seeing the wrong-domain sightings stop runs six to ten weeks, sometimes longer for directory data, and nobody remembers in November what changed in September. If the fix is part of a wider name or domain change, the sequencing in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-a-rebrand-in-ai-answers\",children:\"tracking a rebrand in AI answers\"}),\" applies here too. It's also worth confirming assistants can read the canonical site cleanly; the \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI readiness audit\"}),\" shows which pages parse without trouble.\"]}),`\n`,(0,t.jsx)(i,{title:\"Note the fix so the trend break has a cause attached\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"beforeAfter\",label:\"Wrong-domain consultations per week\",before:\"11\",after:\"0\",tone:\"positive\",caption:\"Canonical URL corrected in schema, directories, and boilerplate\",series:[11,9,8,5,3,2,0],lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"Annotations sit on the same timeline as your visibility metrics, so a drop in wrong-domain sightings arrives with the change that caused it rather than needing a separate document. Wrong-domain alerts land on that timeline as annotations too, which puts the problem and the fix on one line. Both carry into exports, so the readout you hand a client already explains itself.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn on alerts so a repeat reaches an inbox\"}),`\n`,(0,t.jsx)(e.p,{children:\"Detection runs whether or not anyone is watching, and that's exactly the problem. A finding that only lives on a timeline gets seen when somebody opens the timeline.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Add recipients to the wrong-domain alert list in your property settings. Two or three people is right; whoever owns the website, whoever owns comms, and whoever would field the question if a customer sent a screenshot. An empty list means the detection still runs and the finding waits for a visit.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This matters most in the weeks nobody is watching closely. Wrong addresses tend to appear right after the events that create them, which are the same events that keep everybody busy: a domain migration, a rebrand, an acquisition, a regi
2onal site launch. Turning the list on before that work starts is worth the two minutes.\"}),`\n`,(0,t.jsx)(i,{title:\"Alerts are opt-in, so an empty list means nothing gets sent\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"count\",label:\"Wrong-domain alert recipients\",value:3,target:1,caption:\"Comms lead, web owner, support manager\"},children:(0,t.jsx)(e.p,{children:\"The wrong-domain recipient list lives on the property settings Reports tab, and adding an address is the whole setup. Detection runs either way, so the choice is only whether a finding reaches an inbox or waits on the property timeline. Alerts are capped at one per domain per month, which keeps a persistent look-alike from becoming a mail rule.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Automate the weekly read\"}),`\n`,(0,t.jsx)(e.p,{children:\"The last step is making sure this actually happens every week rather than the week after somebody remembers it exists.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The numbers are small enough to summarize in a paragraph, which makes them a good fit for a scheduled digest. Pull the current seven days and the seven before it, and narrate three things: your own consultations against the previous window, any new third-party domain that appeared, and any flagged look-alike. If none of those changed, the summary says so in a sentence and you move on.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Connect your AI assistant to your visibility data and the digest writes itself. A weekly scheduled prompt that reads the last seven days against the previous seven costs nothing to run and turns a dashboard visit into an email you skim. That's the difference between a report somebody checks in busy weeks and one they check every week.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Keep a human in the loop for the interesting rows. The digest is good at telling you a new domain showed up. Deciding whether it's a pitch target, a claim, or a dismissal is still a judgment call, and it's the one part of this workflow that stays manual on purpose.\"}),`\n`,(0,t.jsx)(i,{title:\"The same numbers, pulled on a schedule\",page:\"AI Consultations\",href:\"/docs/mcp/account-data\",signal:{kind:\"checklist\",items:[{label:\"MCP server connected\",done:!0},{label:\"Weekly summary scheduled\",done:!0},{label:\"Current window compared against previous\",done:!0},{label:\"New third-party domains called out\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"The Spyglasses MCP server exposes the consultations data to your AI assistant read-only, so a scheduled weekly prompt can pull the current window and the one before it and write the comparison for you. The headline counters exclude brand-identity and comparison prompts the same way the dashboard does, so the digest and the card agree. Everything else stays a dashboard visit, which is the right place to make the judgment calls.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What good looks like after a quarter\"}),`\n`,(0,t.jsx)(e.p,{children:\"This workflow pays off in small, specific ways rather than one big chart. Three months in, you should have four things.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A weekly number for your own site.\"}),\" Consultations of your domain, and the share of searching answers that included one, tracked long enough to have a normal range. That range is what makes a bad week legible as a bad week.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A pitch list built from evidence.\"}),\" The third-party sites AI reads directly in your category, scored and ranked. It's a better list than the one you'd build from domain authority, and it costs nothing extra to produce.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A clean domain roster.\"}),\" Every look-alike address either claimed or dismissed, with the reasoning written down, and alert volume for the sorted ones at zero.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"One documented correction.\"}),\" The canonical address fixed at the source, the date noted, and the wrong-domain sightings falling off over the following weeks. One cause and effect you can point at beats a quarter of charts.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The habit is ten minutes a week on the consultations view. Most weeks nothing has changed, which is the correct outcome for a metric that runs on recrawl cycles. The weeks it does change, you find out that an assistant has been sending people to an address you don't own, and you find out before a customer does.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"17:[\"$\",\"$L10\",\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$5d\",\"title\":\"How to See Which Sites AI Trusts (and Fix the Ones It Gets Wrong)\",\"date\":\"2026-09-09\",\"image\":\"/images/blog/how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Sometimes an AI assistant skips the open web and reads one specific site before it answers. Which site it picks tells you who it already trusts, and when it picks an address that looks like yours but isn't, your authority is landing somewhere you don't control. Here's how to read that list weekly and correct the wrong entries.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Citations\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What is a site-scoped search and why does it matter?\",\"answer\":\"It's when an assistant searches inside one domain instead of the open web, like site:acme.com return policy. The model had already decided where the answer lives before it looked. That makes it useless as a ranking opportunity and valuable as evidence, because the site it picked is one it already treats as a source.\"},{\"question\":\"Is being consulted better than being cited?\",\"answer\":\"For reading the model's trust, yes. A citation means your page won a search. A consultation means the model went looking inside your site on purpose. The second one is a stronger signal about authority, though a citation is what actually puts your link in the answer.\"},{\"question\":\"Why would AI search a domain that isn't ours?\",\"answer\":\"Usually it learned the wrong address somewhere durable; an old directory listing, a regional site you retired, a press boilerplate that never got updated, or an acquired brand's domain. Sometimes the address doesn't exist at all and the model simply guessed at it based on your name.\"},{\"question\":\"What should we do about a look-alike domain that is really ours?\",\"answer\":\"Claim it, so its history counts as your own site instead of a third party, and fix the canonical address at the source. Legacy top-level domains, regional variants, and domains from brands you acquired are the three that come up most often.\"},{\"question\":\"How often should we check this?\",\"answer\":\"Once a week is enough for most brands. The underlying numbers move on recrawl cycles, so a daily check mostly shows noise. The exception is right after a rebrand, a domain migration, or an acquisition, when a look-alike address can start showing up within days.\"}],\"howTo\":{\"name\":\"How to see which sites AI trusts and fix the ones it gets wrong\",\"description\":\"A weekly workflow for PR and communications teams that reads which sites AI assistants consult directly before answering, turns that list into publisher intelligence, and corrects the domains the model gets wrong.\",\"steps\":[{\"name\":\"Read which sites AI consulted before it answered\",\"text\":\"Check your own site against competitors in the weekly consultation counts, and the share of searching answers that included one.\"},{\"name\":\"Turn the sites AI reads directly into pitch targets\",\"text\":\"Treat the third-party rows as a ranked pitch list, since a site the model reads on purpose outranks one it cites in passing.\"},{\"name\":\"Investigate the domains that look like yours but aren't\",\"text\":\"Open each flagged look-alike address and find out whether a real site is there or nothing is served at all.\"},{\"name\":\"Claim or dismiss each wrong address\",\"text\":\"Claim the domains that really belong to you so their history joins your own numbers, and dismiss the rest as noise.\"},{\"name\":\"Fix the address everywhere the model learned it\",\"text\":\"Publish one canonical domain in your structured data, directory profiles, social accounts, and press boilerplate, then note the date.\"},{\"name\":\"Turn on alerts so a repeat reaches an inbox\",\"text\":\"Add recipients to the wrong-domain alert list so a re
2currence shows up in email instead of waiting on the timeline.\"},{\"name\":\"Automate the weekly read\",\"text\":\"Pull the same numbers through a scheduled summary that compares this week against the one before it.\"}]},\"_meta\":{\"filePath\":\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.mdx\",\"fileName\":\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong\"},\"body\":\"$5e\",\"locale\":\"en\",\"path\":\"how-to-see-which-sites-ai-trusts-and-fix-the-ones-it-gets-wrong\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"5f:T5020,"])</script>
2<script>self.__next_f.push([1,"Governing AI crawlers means deciding, on purpose, which bots get to read your site, then enforcing that decision somewhere it holds. Doing it without hurting your AI search visibility comes down to one rule; block agents by name, never whole companies. It takes seven steps and about two hours of real work spread over a couple of weeks.\n\nStart by counting what already reaches you at the server, since bots don't run JavaScript and never appear in your analytics tool. Sort those visits into five categories and write one rule per category. Then get specific, because blocking a company by name is the mistake that costs teams real traffic; OpenAI runs GPTBot for training and ChatGPT-User for live answers, and a company-wide block kills both. State your policy in robots.txt for the crawlers that honor it, and enforce it at the edge for the ones that don't. Watch the blocked requests for a week to confirm each rule matched what you meant. Then check that search crawlers, assistant visits, and your citation counts held steady. Recheck the whole thing quarterly.\n\nHere's the version most teams live through. Someone forwards an article about AI companies scraping content, a rule goes into robots.txt that afternoon blocking everything with \"GPT\" in the name, and nobody looks at it again. Four months later the traffic from ChatGPT answers is down and nobody can say why, because the block that was supposed to stop training also stopped the assistant that was sending customers.\n\n## Why a crawler policy is a marketing decision\n\nIt gets treated as an IT chore, and that's how it goes wrong.\n\nThe people who set crawler rules are usually the ones with access to the CDN. The people who feel the results are the ones responsible for pipeline. Those are rarely the same team, and the gap between them is where a two-line robots.txt change quietly turns off a channel.\n\nThe stakes have changed too. Blocking a crawler used to mean choosing whether a search engine indexed you. Now the same decision covers four or five different things at once: whether a model gets trained on your writing, whether an assistant can read your page while a buyer waits for an answer, whether your pages stay in the search index that assistants query underneath, and whether somebody can lift your catalog wholesale. One toggle labeled \"block AI bots\" collapses all of that into a single yes or no, and there's no version of that answer that's right for all four.\n\nThe fix isn't complicated. It's a written policy with a rule per category, enforced where a request can actually be stopped, and checked after the fact. This guide works with any server-side detection and edge setup; the callouts show how each step runs in [Spyglasses](/ai-traffic-analytics).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Take inventory | Counting the bots you actually get | A named list, not a guess |\n| 2. Write the rules | One decision per category | Every category has a reason attached |\n| 3. Get agent specific | Splitting trainers from assistants | Rules name agents, not companies |\n| 4. Enforce | Robots.txt plus edge blocking | Blocked agents get a 403 |\n| 5. Watch the 403s | Confirming the rules matched | Blocked visits fall, allowed ones don't |\n| 6. Check what you kept | Verifying nothing good got caught | Search and assistant traffic flat |\n| 7. Review | Rechecking quarterly | New agents get a rule within a month |\n\n## Take inventory of the crawlers already reaching you\n\nYou can't govern what you can't count, and right now you probably can't count any of it. Bots request your HTML and leave without running JavaScript, so a tag-based tool like GA4 never records the visit. The traffic exists only in your server logs.\n\nSo put detection in the request path first. Middleware, a CDN worker, a server plugin, or log parsing all work. Then wait. Two weeks of data is the right amount before you write a single rule, because one week can miss a monthly sweep and anything shorter turns into a policy about whichever bot happened to show up on Tuesday.\n\nWhile that runs, look at two numbers per bot. **Visits** tells you volume. **Unique pages** tells you reach. The ratio between them is the tell you'll use constantly: 5,000 visits across 4,600 pages is a systematic sweep, while 5,000 visits across 30 pages is something re-reading a small set because those pages keep surfacing in searches. The first is usually a trainer. The second is usually an assistant, and it's a list worth keeping.\n\nIf none of this exists 
2yet at your company, set it up first and come back; [seeing which bots are crawling your site](/blog/how-to-see-which-bots-are-crawling-your-site) covers the detection side end to end.\n\n\u003cWorkflowCallout\n  title=\"Two weeks of named agents before any rule gets written\"\n  page=\"Bot Traffic\"\n  href=\"/docs/dashboards/bot-traffic\"\n  signal={{\n    kind: \"count\",\n    label: \"Distinct agents seen in 14 days\",\n    value: 38,\n    caption: \"9 trainers, 11 assistants, 5 search, 13 other\",\n  }}\n\u003e\n  Bot Traffic lists every identified agent with visits, unique pages, and a last-seen date, so the policy starts from your actual traffic rather than a list of bot names from an article. Detection runs against more than 600 known agents with IP verification for the ones that publish ranges, which matters because a user agent string on its own is trivial to fake. Any row opens into the raw visit log, so a bot you don't recognize takes about a minute to investigate.\n\u003c/WorkflowCallout\u003e\n\n## Write one rule for each category of bot\n\nNow make the decisions, before you open any settings screen. Five categories cover almost everything, and only one of them is a real judgment call.\n\n**AI assistants** fetch a page because someone is waiting on an answer. Allow them. This is the category that turns into customers, and blocking it is the most expensive mistake available here.\n\n**Search crawlers** feed the index that AI retrieval runs against. Googlebot and Bingbot aren't optional. ChatGPT and Gemini both search against Google underneath, so a page that drops out of the search index drops out of the pool assistants pick from.\n\n**AI model trainers** are the judgment call. They collect in bulk for a future model, which does nothing for you today.\n\n**Specialty bots** are SEO tools, uptime monitors, and social preview fetchers. Allow them and stop thinking about it.\n\n**Scrapers** are everything unnamed. Block the noisy ones.\n\n| Category | Example agents | What you get from the visit | Sensible default |\n| :--- | :--- | :--- | :--- |\n| AI assistants | ChatGPT-User, Claude-User, PerplexityBot | A live answer you might be quoted in | Allow |\n| Search crawlers | Googlebot, Bingbot | Index presence that feeds AI retrieval | Allow |\n| AI model trainers | GPTBot, ClaudeBot, Google-Extended, CCBot | A future model may recognize you | Decide deliberately |\n| Specialty bots | SEO tools, monitors, preview fetchers | A tool is checking your page | Allow |\n| Scrapers | curl, wget, unnamed agents | Usually someone copying content | Block the noisy ones |\n\nFor the trainer row, the question is simple. Is your content the product, or is it marketing for the product? If people pay for your writing, protect it. If your content exists to sell software or services, a trainer block buys you very little and costs you a little future recognition.\n\nWrite the reason next to each decision, put a name on it, and date it. Six months from now somebody will ask why GPTBot is blocked, and \"it was in the config when I got here\" is how a policy becomes permanent by accident.\n\n\u003cWorkflowCallout\n  title=\"A decision per category, not one switch for all of them\"\n  page=\"Traffic Control\"\n  href=\"/docs/dashboards/traffic-control\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"AI assistants allowed\", done: true },\n      { label: \"Search crawlers allowed\", done: true },\n      { label: \"Model trainers blocked, reason recorded\", done: true },\n      { label: \"Scrapers blocked\", done: true },\n      { label: \"Policy owner and review date set\", done: false },\n    ],\n  }}\n\u003e\n  Traffic Control groups known bots into categories and takes a block or allow decision on each one, with a global toggle for model trainers that covers the named training crawlers at once. Rules are managed centrally at the property level, so setting the policy isn't a code change and doesn't wait on a deploy. The rules summary shows the effective policy in one view, which is the thing to screenshot for whoever signs off.\n\u003c/WorkflowCallout\u003e\n\n## Block by agent, not by company\n\nThis is the step that separates a policy that works from one that c
2osts you traffic, and it comes down to one fact. The big AI companies run several crawlers under separate names, and they do completely different jobs.\n\n| Company | Training crawler | Live assistant fetch | What a company-wide block costs |\n| :--- | :--- | :--- | :--- |\n| OpenAI | GPTBot | ChatGPT-User | Every ChatGPT answer that would have read your page |\n| Anthropic | ClaudeBot | Claude-User | Live Claude fetches on your pages |\n| Google | Google-Extended | Googlebot | Search rankings and AI Overviews together |\n| Perplexity | PerplexityBot | Perplexity-User | Answers in a search-first assistant |\n\nGoogle is the one that punishes a careless rule hardest. Google-Extended is a training control and has no effect on search. Googlebot is the index. Block Googlebot and you've turned off search rankings and the retrieval layer that other assistants query, all from a line meant to keep your content out of a training set.\n\nSo write rules against user agent names, one at a time. \"Block OpenAI\" is not a rule you can safely implement. \"Disallow GPTBot, allow ChatGPT-User\" is.\n\nThen confirm your setup can express the exception, because rule priority is what makes this work. A specific agent rule has to override a category block, or blocking the trainer category takes the assistant with it the moment a company reshuffles which agent sits where.\n\n\u003cWorkflowCallout\n  title=\"Rules land on agent names, and the specific one wins\"\n  page=\"Traffic Control\"\n  href=\"/docs/dashboards/traffic-control\"\n  signal={{\n    kind: \"count\",\n    label: \"Agent-level rules in force\",\n    value: 17,\n    target: 17,\n    caption: \"6 explicit allows overriding a category block\",\n  }}\n\u003e\n  You can browse individual bots and patterns under each category and set a rule on a single agent, and more specific rules win over broader ones. So blocking the model trainer category while allowing ChatGPT-User by name gives you exactly the split you wrote down. Pattern rules cover the unnamed agents that show up without a known identity, and path exclusions keep health checks and admin routes out of the enforcement path entirely.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-govern-ai-crawlers-on-your-site-quote.webp\"\n  quote=\"Robots.txt is a sign on the door. A 403 is a lock. Most teams hang the sign and assume it locked.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-govern-ai-crawlers-on-your-site\"\n/\u003e\n\n## Put the rules where they can actually be enforced\n\nThere are two places a crawler rule can live, and you want both, for different reasons.\n\n**Robots.txt** is a public statement of intent. The major named crawlers generally honor it, and it's the file people check when they want to know your stance. It costs nothing and it handles the well-behaved majority.\n\n**Edge enforcement** is the part that holds. A rule at your CDN, middleware, or worker layer returns a 403 before the request ever touches your content. This is what stops the crawlers that read robots.txt and ignore it, which is most of the ones you'd actually want stopped. A scraper systematically copying your catalog was never going to respect a text file.\n\nPut the same policy in both places. If they disagree, you'll spend an afternoon next quarter figuring out which one is real.\n\nTwo details are worth getting right on the way in. Exclude the paths that shouldn't be governed at all, like health check endpoints, admin routes, and internal APIs, so a broad rule can't take down monitoring. And make sure the rules can change without a deploy. A policy that requires an engineering ticket to adjust is a policy that stops getting adjusted, usually right after the first time it blocks something important.\n\n\u003cWorkflowCallout\n  title=\"One policy, enforced before the page renders\"\n  page=\"AI Traffic Analytics\"\n  href=\"/docs/dashboards/ai-traffic-analytics\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Integration installed and syncing rules\", done: true },\n      { label: \"Robots.txt matches the configured policy\", done: true },\n      { label: \"Blocked agents returning 403 at the edge\", done: true },\n      { label: \"Health check and admin paths excluded\", done: false },\n    ],\n  }}\n\u003e\n  The integration installs as middleware, a WordPress plugin, or an edge worker, and pulls the current rules on a schedule, so a policy change takes effect without shipping code. Blocked agents get a 403 before your content is served, and the same request path is what records the visit, which means enforcement and measurement come from one place instead of two systems you'd have to reconcile.\n\u003c/WorkflowCallout\u003e\n\n## Watch the blocked requests for a 
2week\n\nA rule you haven't verified is a guess with a config file attached. Give it a week and look at four things.\n\n**Did the blocked agents stop?** A working block shows that agent's allowed visits going to near zero within a day or two, with a matching rise in blocked requests. If the visits keep landing, your rule isn't matching the string that agent actually sends.\n\n**Did anything unexpected start collecting 403s?** This is the one worth setting an alert on. A browser user agent showing up in the blocked list means a real person hit a wall, and that's a small outage you'd rather find in week one.\n\n**Did the allowed categories hold flat?** Assistant and search crawler volume should look exactly like it did before the change. Any dip there means a category rule caught something a specific rule was supposed to protect.\n\n**Who's still knocking?** Some agents keep hammering a 403 for weeks. That's fine, and it's also a useful signal, since a crawler that keeps trying after a clear disallow was never honoring robots.txt in the first place. Now you know which of your rules were load-bearing.\n\n\u003cWorkflowCallout\n  title=\"Blocked versus allowed, on the same timeline\"\n  page=\"Bot Traffic\"\n  href=\"/docs/dashboards/bot-traffic\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Model trainer visits per month\",\n    before: \"9,400\",\n    after: \"260\",\n    tone: \"positive\",\n    caption: \"assistant visits flat at about 3,100 over the same window\",\n  }}\n\u003e\n  The bot timeline stacks visits by category, so the week after a rule change shows the blocked category collapsing while everything you kept stays level. Blocked requests stay visible rather than disappearing, which is the difference between knowing a rule fired and assuming it did. Filtering to a single agent gives you the before and after for one rule at a time.\n\u003c/WorkflowCallout\u003e\n\n## Check that nothing you wanted kept got caught\n\nBlocked traffic going down is the easy half. The half that actually matters is proving you didn't break anything, and it takes a little longer to show up.\n\nStart with search. Confirm Googlebot and Bingbot fetch counts held steady, and check Search Console for new crawl errors. A drop here is the most expensive possible outcome of this workflow, and it's silent for weeks if nobody looks.\n\nThen check recrawl cadence on your important pages. Crawlers that get blocked or slowed stop refreshing your content, and a page that isn't refetched keeps getting quoted at whatever it said last time you were crawled. That lag is worth understanding either way; [timing content updates to AI recrawl cadence](/blog/how-to-time-content-updates-to-ai-recrawl-cadence) goes into it properly.\n\nThen check visibility itself, which is the part crawler data can't tell you. An assistant fetching your page means you were a candidate for one answer. Whether you got quoted happens after the fetch, out of sight of any traffic tool. Run your visibility tracking before the rule change and again a month after, and compare citation counts and share of voice. If citations fall while assistant visits stay flat, the cause is somewhere else, and an [AI visibility report](/ai-visibility-report) is where you'd see it.\n\nGive this a month. Crawl effects show up in days, retrieval effects show up in weeks, and calling it clean after 48 hours is how a slow problem gets missed.\n\n\u003cWorkflowCallout\n  title=\"The traffic you kept, measured after the change\"\n  page=\"Recrawl Frequency\"\n  href=\"/docs/dashboards/recrawl-frequency\"\n  signal={{\n    kind: \"trend\",\n    label: \"Search crawler fetches, 14 days after the rules went live\",\n    series: [412, 398, 431, 405, 419, 388, 402, 424, 396, 415, 408, 421, 399, 417],\n    change: 1.2,\n  }}\n\u003e\n  Recrawl views show fetch cadence per page and per bot, so you can confirm the crawlers you allowed are still coming back at the same rate rather than trusting that a category rule behaved. Pages with a long gap since their last fetch get flagged, which catches the case where a rule quietly starved a section of the site. Pair it with your citation counts, since crawl access and being quoted are two different problems that look identical from traffic data alone.\n\u003c/WorkflowCallout\u003e\n\n## Review the policy on a schedule\n\nCrawler policy is the kind of thing that gets set once during a scare and then runs unattended for years. Put a recurring 20 minutes on the calendar every quarter instead.\n\nFour things to check each time.\n\n1. **New agents.** New crawlers show up constantly, and an unrecognized agent with real volume is either a company you've never heard of or a scraper. Both deserve a rule.\n2. **Ren
2amed agents.** Companies rename and split their crawlers without much notice, and a rule pointed at a name that no longer exists reads as active while enforcing nothing.\n3. **Your own stance.** Launching a paywall, a research report, or a customer community changes the trainer answer. So does a strategy shift toward AI as a lead source.\n4. **What it cost you.** Compare assistant visits and citations against the quarter before the rules went in. If a block bought nothing measurable, it's fair to reverse it.\n\nKeep a short changelog with the date, the rule, and the reason. Annotate the change on your visibility timeline too, so when someone asks in March why AI traffic shifted in November, the answer is attached to the chart instead of living in somebody's memory.\n\n\u003cWorkflowCallout\n  title=\"Coverage you can see, and a dated record of every change\"\n  page=\"Traffic Control\"\n  href=\"/docs/dashboards/traffic-control\"\n  signal={{\n    kind: \"score\",\n    label: \"Seen agents covered by an explicit rule\",\n    value: 84,\n    target: 95,\n  }}\n\u003e\n  The rules summary shows the effective policy in one place, which makes the quarterly review a read rather than an audit. Agents that appear in your traffic without a matching rule are the gap worth closing, since those are the ones running under whatever your global default happens to be. Rule changes take effect on the next sync, so reversing a decision is as cheap as making it.\n\u003c/WorkflowCallout\u003e\n\n## Start with the two rules nobody argues about\n\nIf this feels like a lot for something that used to be a one-line file, start smaller. Allow the assistants. Allow the search crawlers. Those two rules are uncontroversial, they protect the traffic that turns into customers, and they're the ones most likely to be broken right now by a well-intentioned block somebody added last year.\n\nEverything else can wait for the two weeks of inventory data. The trainer decision is the only real judgment call in here, and it deserves an actual conversation rather than a toggle flipped on a Friday.\n\nThe habit is ten minutes a month looking at the blocked list and the allowed categories side by side. The payoff is that when someone senior asks whether AI companies are taking your content, the answer is a policy with names and dates on it, and you can say exactly what you allowed and what it earned you.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"60:T6ed8,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var m=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)o(n,a,{get:e[a],enumerable:!0})},s=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of y(e))!w.call(n,r)\u0026\u0026r!==a\u0026\u0026o(n,r,{get:()=\u003ee[r],enumerable:!(i=f(e,r))||i.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?u(p(n)):{},s(e||!n||!n.__esModule?o(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003es(o({},\"__esModule\",{value:!0}),n);var h=m((T,l)=\u003e{l.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eg});var t=k(h());function c(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||d(\"PullQuote\",!0),i||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Governing AI crawlers means deciding, on purpose, which bots get to read your site, then enforcing that decision somewhere it holds. Doing it without hurting your AI search visibility comes down to one rule; block agents by name, never whole companies. It takes seven steps and about two hours of real work spread over a couple of weeks.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start by counting what already reaches you at the server, since bots don't run JavaScript and never appear in your analytics tool. Sort those visits into five categories and write one rule per category. Then get specific, because blocking a company by name is the mistake that costs teams real traffic; OpenAI runs GPTBot for training and ChatGPT-User for live answers, and a company-wide block kills both. State your policy in robots.txt for the crawlers that honor it, and enforce it at the edge for the ones that don't. Watch the blocked requests for a week to confirm each rule matched what you meant. Then check that search crawlers, assistant visits, and your citation counts held steady. Recheck the whole thing quarterly.\"}),`\n`,(0,t.jsx)(e.p,{children:`Here's the version most teams live through. Someone forwards an article about AI companies scraping content, a rule goes into robots.txt that afternoon blocking everything with \"GPT\" in the name, and nobody looks at it again. Four months later the traffic from ChatGPT answers is down and nobody can say why, because the block that was supposed to stop training also stopped the assistant that was sending customers.`}),`\n`,(0,t.jsx)(e.h2,{children:\"Why a crawler policy is a marketing decision\"}),`\n`,(0,t.jsx)(e.p,{children:\"It gets treated as an IT chore, and that's how it goes wrong.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The people who set crawler rules are usually the ones with access to the CDN. The people who feel the results are the ones responsible for pipeline. Those are rarely the same team, and the gap between them is where a two-line robots.txt change quietly turns off a channel.\"}),`\n`,(0,t.jsx)(e.p,{children:`The stakes have changed too. Blocking a crawler used to mean choosing whether a search engine indexed you. Now the same decision covers four or five different things at once: whether a model gets trained on your writing, whether an assistant can read your page while a buyer waits for an answer, whether your pages stay in the search index that assistants query underneath, and whether somebody can lift your catalog wholesale. One toggle labeled \"block AI bots\" collapses all of that into a single yes or no, and there's no version of that answer that's right for all four.`}),`\n`,(0,t.jsxs)(e.p,{children:[\"The fix isn't complicated. It's a written policy with a rule per category, enforced where a request can actually be stopped, and checked after the fact. This guide works with any server-side detection and edge setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-traffic-analytics\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Take inventory\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Counting the bots you actually get\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A named list, not a guess\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Write the rules\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One decision per category\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every category has a reason attached\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Get agent specific\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Splitting trainers from assistants\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rules name agents, not companies\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Enforce\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Robots.txt plus edge blocking\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Blocked agents get a 403\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Watch the 403s\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Confirming the rules matched\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Blocked visits fall, allowed ones don't\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Check what you kept\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Verifying nothing good got caught\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Search and assistant traffic flat\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"7. Review\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rechecking quarterly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"New agents get a rule within a month\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Take inventory of the crawlers already reaching you\"}),`\n`,(0,t.jsx)(e.p,{children:\"You can't govern what you can't count, and right now you probably can't count any of it. Bots request your HTML and leave without running JavaScript, so a tag-based tool like GA4 never records the visit. The traffic exists only in your server logs.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So put detection in the request path first. Middleware, a CDN worker, a server plugin, or log parsing all work. Then wait. Two weeks of data is the right amount before you write a single rule, because one week can miss a monthly sweep and anything shorter turns into a policy about whichever bot happened to show up on Tuesday.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"While that runs, look at two numbers per bot. \",(0,t.jsx)(e.strong,{children:\"Visits\"}),\" tells you volume. \",(0,t.jsx)(e.strong,{children:\"Unique pages\"}),\" tells you reach. The ratio between them is the tell you'll use constantly: 5,000 visits across 4,600 pages is a systematic sweep, while 5,000 visits across 30 pages is something re-reading a small set because those pages keep surfacing in searches. The first is usually a trainer. The second is usually an assistant, and it's a list worth keeping.\"]}
2),`\n`,(0,t.jsxs)(e.p,{children:[\"If none of this exists yet at your company, set it up first and come back; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-see-which-bots-are-crawling-your-site\",children:\"seeing which bots are crawling your site\"}),\" covers the detection side end to end.\"]}),`\n`,(0,t.jsx)(i,{title:\"Two weeks of named agents before any rule gets written\",page:\"Bot Traffic\",href:\"/docs/dashboards/bot-traffic\",signal:{kind:\"count\",label:\"Distinct agents seen in 14 days\",value:38,caption:\"9 trainers, 11 assistants, 5 search, 13 other\"},children:(0,t.jsx)(e.p,{children:\"Bot Traffic lists every identified agent with visits, unique pages, and a last-seen date, so the policy starts from your actual traffic rather than a list of bot names from an article. Detection runs against more than 600 known agents with IP verification for the ones that publish ranges, which matters because a user agent string on its own is trivial to fake. Any row opens into the raw visit log, so a bot you don't recognize takes about a minute to investigate.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Write one rule for each category of bot\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now make the decisions, before you open any settings screen. Five categories cover almost everything, and only one of them is a real judgment call.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI assistants\"}),\" fetch a page because someone is waiting on an answer. Allow them. This is the category that turns into customers, and blocking it is the most expensive mistake available here.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Search crawlers\"}),\" feed the index that AI retrieval runs against. Googlebot and Bingbot aren't optional. ChatGPT and Gemini both search against Google underneath, so a page that drops out of the search index drops out of the pool assistants pick from.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI model trainers\"}),\" are the judgment call. They collect in bulk for a future model, which does nothing for you today.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Specialty bots\"}),\" are SEO tools, uptime monitors, and social preview fetchers. Allow them and stop thinking about it.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Scrapers\"}),\" are everything unnamed. Block the noisy ones.\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Category\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Example agents\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you get from the visit\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Sensible default\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI assistants\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"ChatGPT-User, Claude-User, PerplexityBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A live answer you might be quoted in\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Allow\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Search crawlers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Googlebot, Bingbot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Index presence that feeds AI retrieval\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Allow\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI model trainers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"GPTBot, ClaudeBot, Google-Extended, CCBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A future model may recognize you\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Decide deliberately\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Specialty bots\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"SEO tools, monitors, preview fetchers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A tool is checking your page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Allow\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scrapers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"curl, wget, unnamed agents\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Usually someone copying content\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Block the noisy ones\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"For the trainer row, the question is simple. Is your content the product, or is it marketing for the product? If people pay for your writing, protect it. If your content exists to sell software or services, a trainer block buys you very little and costs you a little future recognition.\"}),`\n`,(0,t.jsx)(e.p,{children:'Write the reason next to each decision, put a name on it, and date it. Six months from now somebody will ask why GPTBot is blocked, and \"it was in the config when I got here\" is how a policy becomes permanent by accident.'}),`\n`,(0,t.jsx)(i,{title:\"A decision per category, not one switch for all of them\",page:\"Traffic Control\",href:\"/docs/dashboards/traffic-control\",signal:{kind:\"checklist\",items:[{label:\"AI assistants allowed\",done:!0},{label:\"Search crawlers allowed\",done:!0},{label:\"Model trainers blocked, reason recorded\",done:!0},{label:\"Scrapers blocked\",done:!0},{label:\"Policy owner and review date set\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Traffic Control groups known bots into categories and takes a block or allow decision on each one, with a global toggle for model trainers that covers the named training crawlers at once. Rules are managed centrally at the property level, so setting the policy isn't a code change and doesn't wait on a deploy. The rules summary shows the effective policy in one view, which is the thing to screenshot for whoever signs off.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Block by agent, not by company\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that separates a policy that works from one that c
2osts you traffic, and it comes down to one fact. The big AI companies run several crawlers under separate names, and they do completely different jobs.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Company\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Training crawler\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Live assistant fetch\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What a company-wide block costs\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"OpenAI\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"GPTBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"ChatGPT-User\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every ChatGPT answer that would have read your page\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"ClaudeBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Claude-User\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Live Claude fetches on your pages\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Google\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Google-Extended\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Googlebot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Search rankings and AI Overviews together\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Perplexity\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"PerplexityBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Perplexity-User\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Answers in a search-first assistant\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Google is the one that punishes a careless rule hardest. Google-Extended is a training control and has no effect on search. Googlebot is the index. Block Googlebot and you've turned off search rankings and the retrieval layer that other assistants query, all from a line meant to keep your content out of a training set.\"}),`\n`,(0,t.jsx)(e.p,{children:'So write rules against user agent names, one at a time. \"Block OpenAI\" is not a rule you can safely implement. \"Disallow GPTBot, allow ChatGPT-User\" is.'}),`\n`,(0,t.jsx)(e.p,{children:\"Then confirm your setup can express the exception, because rule priority is what makes this work. A specific agent rule has to override a category block, or blocking the trainer category takes the assistant with it the moment a company reshuffles which agent sits where.\"}),`\n`,(0,t.jsx)(i,{title:\"Rules land on agent names, and the specific one wins\",page:\"Traffic Control\",href:\"/docs/dashboards/traffic-control\",signal:{kind:\"count\",label:\"Agent-level rules in force\",value:17,target:17,caption:\"6 explicit allows overriding a category block\"},children:(0,t.jsx)(e.p,{children:\"You can browse individual bots and patterns under each category and set a rule on a single agent, and more specific rules win over broader ones. So blocking the model trainer category while allowing ChatGPT-User by name gives you exactly the split you wrote down. Pattern rules cover the unnamed agents that show up without a known identity, and path exclusions keep health checks and admin routes out of the enforcement path entirely.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-govern-ai-crawlers-on-your-site-quote.webp\",quote:\"Robots.txt is a sign on the door. A 403 is a lock. Most teams hang the sign and assume it locked.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-govern-ai-crawlers-on-your-site\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Put the rules where they can actually be enforced\"}),`\n`,(0,t.jsx)(e.p,{children:\"There are two places a crawler rule can live, and you want both, for different reasons.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Robots.txt\"}),\" is a public statement of intent. The major named crawlers generally honor it, and it's the file people check when they want to know y
2our stance. It costs nothing and it handles the well-behaved majority.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Edge enforcement\"}),\" is the part that holds. A rule at your CDN, middleware, or worker layer returns a 403 before the request ever touches your content. This is what stops the crawlers that read robots.txt and ignore it, which is most of the ones you'd actually want stopped. A scraper systematically copying your catalog was never going to respect a text file.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Put the same policy in both places. If they disagree, you'll spend an afternoon next quarter figuring out which one is real.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Two details are worth getting right on the way in. Exclude the paths that shouldn't be governed at all, like health check endpoints, admin routes, and internal APIs, so a broad rule can't take down monitoring. And make sure the rules can change without a deploy. A policy that requires an engineering ticket to adjust is a policy that stops getting adjusted, usually right after the first time it blocks something important.\"}),`\n`,(0,t.jsx)(i,{title:\"One policy, enforced before the page renders\",page:\"AI Traffic Analytics\",href:\"/docs/dashboards/ai-traffic-analytics\",signal:{kind:\"checklist\",items:[{label:\"Integration installed and syncing rules\",done:!0},{label:\"Robots.txt matches the configured policy\",done:!0},{label:\"Blocked agents returning 403 at the edge\",done:!0},{label:\"Health check and admin paths excluded\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"The integration installs as middleware, a WordPress plugin, or an edge worker, and pulls the current rules on a schedule, so a policy change takes effect without shipping code. Blocked agents get a 403 before your content is served, and the same request path is what records the visit, which means enforcement and measurement come from one place instead of two systems you'd have to reconcile.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch the blocked requests for a week\"}),`\n`,(0,t.jsx)(e.p,{children:\"A rule you haven't verified is a guess with a config file attached. Give it a week and look at four things.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Did the blocked agents stop?\"}),\" A working block shows that agent's allowed visits going to near zero within a day or two, with a matching rise in blocked requests. If the visits keep landing, your rule isn't matching the string that agent actually sends.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Did anything unexpected start collecting 403s?\"}),\" This is the one worth setting an alert on. A browser user agent showing up in the blocked list means a real person hit a wall, and that's a small outage you'd rather find in week one.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Did the allowed categories hold flat?\"}),\" Assistant and search crawler volume should look exactly like it did before the change. Any dip there means a category rule caught something a specific rule was supposed to protect.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Who's still knocking?\"}),\" Some agents keep hammering a 403 for weeks. That's fine, and it's also a useful signal, since a crawler that keeps trying after a clear disallow was never honoring robots.txt in the first place. Now you know which of your rules were load-bearing.\"]}),`\n`,(0,t.jsx)(i,{title:\"Blocked versus allowed, on the same timeline\",page:\"Bot Traffic\",href:\"/docs/dashboards/bot-traffic\",signal:{kind:\"beforeAfter\",label:\"Model trainer visits per month\",before:\"9,400\",after:\"260\",tone:\"positive\",caption:\"assistant visits flat at about 3,100 over the same window\"},children:(0,t.jsx)(e.p,{children:\"The bot timeline stacks visits by category, so the week after a rule change shows the blocked category collapsing while everything you kept stays level. Blocked requests stay visible rather than disappearing, which is the difference between knowing a rule fired and assuming it did. Filtering to a single agent gives you the before and after for one rule at a time.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Check that nothing you wanted kept got caught\"}),`\n`,(0,t.jsx)(e.p,{children:\"Blocked traffic going down is the easy half. The half that actually matters is proving you didn't break anything, and it takes a little longer to show up.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with search. Confirm Googlebot and Bingbot fetch counts held steady, and check Search Console for new crawl errors. A drop here is the most expensive possible outcome of this workflow, and it's silent for weeks if nobody looks.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then check recrawl cadence on your important pages. Crawlers that get blocked or slowed stop refreshing your content, and a page that isn't refetched keeps getting quoted at whatever it said last time you were crawled. That lag is worth understanding either way; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-time-content-updates-to-ai-recrawl-cadence\",children:\"timing content updates to AI recrawl cadence\"}),\" goes into it properly.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then check visibility itself, which is the part crawler data can't tell you. An assistant fetching your page means you were a candidate for one answer. Whether you got quoted happens after the fetch, out of sight of any traffic tool. Run your visibility tracking before the rule change and again a month after, and compare citation counts and share of voice. If citations fall while assistant visits stay flat, the cause is somewhere else, and an \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI visibility report\"}),\" is where you'd see it.\"]}
2),`\n`,(0,t.jsx)(e.p,{children:\"Give this a month. Crawl effects show up in days, retrieval effects show up in weeks, and calling it clean after 48 hours is how a slow problem gets missed.\"}),`\n`,(0,t.jsx)(i,{title:\"The traffic you kept, measured after the change\",page:\"Recrawl Frequency\",href:\"/docs/dashboards/recrawl-frequency\",signal:{kind:\"trend\",label:\"Search crawler fetches, 14 days after the rules went live\",series:[412,398,431,405,419,388,402,424,396,415,408,421,399,417],change:1.2},children:(0,t.jsx)(e.p,{children:\"Recrawl views show fetch cadence per page and per bot, so you can confirm the crawlers you allowed are still coming back at the same rate rather than trusting that a category rule behaved. Pages with a long gap since their last fetch get flagged, which catches the case where a rule quietly starved a section of the site. Pair it with your citation counts, since crawl access and being quoted are two different problems that look identical from traffic data alone.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Review the policy on a schedule\"}),`\n`,(0,t.jsx)(e.p,{children:\"Crawler policy is the kind of thing that gets set once during a scare and then runs unattended for years. Put a recurring 20 minutes on the calendar every quarter instead.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Four things to check each time.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"New agents.\"}),\" New crawlers show up constantly, and an unrecognized agent with real volume is either a company you've never heard of or a scraper. Both deserve a rule.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Renamed agents.\"}),\" Companies rename and split their crawlers without much notice, and a rule pointed at a name that no longer exists reads as active while enforcing nothing.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Your own stance.\"}),\" Launching a paywall, a research report, or a customer community changes the trainer answer. So does a strategy shift toward AI as a lead source.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"What it cost you.\"}),\" Compare assistant visits and citations against the quarter before the rules went in. If a block bought nothing measurable, it's fair to reverse it.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Keep a short changelog with the date, the rule, and the reason. Annotate the change on your visibility timeline too, so when someone asks in March why AI traffic shifted in November, the answer is attached to the chart instead of living in somebody's memory.\"}),`\n`,(0,t.jsx)(i,{title:\"Coverage you can see, and a dated record of every change\",page:\"Traffic Control\",href:\"/docs/dashboards/traffic-control\",signal:{kind:\"score\",label:\"Seen agents covered by an explicit rule\",value:84,target:95},children:(0,t.jsx)(e.p,{children:\"The rules summary shows the effective policy in one place, which makes the quarterly review a read rather than an audit. Agents that appear in your traffic without a matching rule are the gap worth closing, since those are the ones running under whatever your global default happens to be. Rule changes take effect on the next sync, so reversing a decision is as cheap as making it.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start with the two rules nobody argues about\"}),`\n`,(0,t.jsx)(e.p,{children:\"If this feels like a lot for something that used to be a one-line file, start smaller. Allow the assistants. Allow the search crawlers. Those two rules are uncontroversial, they protect the traffic that turns into customers, and they're the ones most likely to be broken right now by a well-intentioned block somebody added last year.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Everything else can wait for the two weeks of inventory data. The trainer decision is the only real judgment call in here, and it deserves an actual conversation rather than a toggle flipped on a Friday.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The habit is ten minutes a month looking at the blocked list and the allowed categories side by side. The payoff is that when someone senior asks whether AI companies are taking your content, the answer is a policy with 
2names and dates on it, and you can say exactly what you allowed and what it earned you.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function g(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}function d(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"18:[\"$\",\"$L10\",\"how-to-govern-ai-crawlers-on-your-site\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$5f\",\"title\":\"How to Govern AI Crawlers on Your Site Without Losing AI Visibility\",\"date\":\"2026-09-08\",\"image\":\"/images/blog/how-to-govern-ai-crawlers-on-your-site.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Blocking AI crawlers without hurting your AI search visibility comes down to which agents you block, not which companies. Here's how to set a crawler policy on purpose, enforce it where it holds, and confirm you didn't cut off the assistants sending you customers.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"AI Traffic\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What's the difference between an AI model trainer and an AI assistant?\",\"answer\":\"A trainer collects your pages in bulk for a future model, which does nothing for you today. An assistant fetches one page because a person is waiting on an answer right now. Both often come from the same company under different user agent names, so a company-level block stops both.\"},{\"question\":\"Does blocking AI crawlers hurt my search rankings?\",\"answer\":\"Not if you block the right agents. Google-Extended controls AI training use and has no effect on search, while Googlebot feeds both the search index and the retrieval that ChatGPT and Gemini run against. Block Googlebot and you lose search rankings and AI visibility at the same time.\"},{\"question\":\"Is robots.txt enough to stop a crawler?\",\"answer\":\"It works on the major named crawlers, which generally honor it, and it fails on everything else. Robots.txt is a request, not a control. If you need a crawler stopped rather than asked, the block has to run at the edge where the request gets a 403 before it reaches your content.\"},{\"question\":\"Should a normal B2B company block AI trainers at all?\",\"answer\":\"Usually there's no strong case either way, so pick a stance and write it down. If people pay for your content, protect it. If your content exists to sell something else, a trainer block buys you very little and costs you a bit of future recognition.\"},{\"question\":\"How do I know my crawler rules are working?\",\"answer\":\"Watch the blocked requests. A working rule shows the blocked agent's visits dropping to near zero within a day or two while every category you allowed stays flat. If a blocked agent keeps getting through, the rule isn't matching its user agent string.\"}],\"howTo\":{\"name\":\"How to govern AI crawlers on your site\",\"description\":\"A repeatable workflow for in-house marketing and web teams that sets an explicit policy for AI crawlers, enforces it at the edge, and verifies the rules stopped what they meant to without cutting off the crawlers that drive AI visibility.\",\"steps\":[{\"name\":\"Take inventory of the crawlers already reaching you\",\"text\":\"Count every bot hitting your site at the server for two weeks so your policy covers the agents you actually get instead of the ones you've read about.\"},{\"name\":\"Write one rule for each category of bot\",\"text\":\"Decide allow or block for assistants, trainers, search crawlers, specialty tools, and scrapers, and write the reason next to each decision.\"},{\"name\":\"Block by agent, not by company\",\"text\":\"Match rules to individual user agent names, because the same company usually runs a training crawler and a live assistant fetch under separate names.\"},{\"name\":\"Put the rules where they can actually be enforced\",\"text\":\"State the policy in robots.txt for the crawlers that honor it and enforce it at the edge for the ones that don't.\"},{\"name\":\"Watch the blocked requests for a week\",\"text\":\"Confirm each blocked agent actually stopped and that nothing you never intended to block is collecting 403s.\"},{\"name\":\"Check that nothing you wanted kept got caught\",\"text\":\"Verify search crawlers, assistant fetches, recrawl cadence, and your citation counts all held steady after the rules went live.\"},{\"name\":\"Review the policy on a schedule\",\"text\":\"Recheck the rules every quarter, since new agents appear constantly and old ones get renamed without notice.\"}]},\"_meta\":{\"filePath\":\"how-to-govern-ai-crawlers-on-your-site.mdx\",\"fileName\":\"how-to-govern-ai-crawlers-on-your-site.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-govern-ai-crawlers-on-your-site\"},\"body\":\"$60\",\"locale\":\"en\",\"path\":\"how-to-govern-ai-crawlers-on-your-site\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"61:T590f,"])</script>
2<script>self.__next_f.push([1,"Tracking AI visibility through a merger means watching two brand names at once, across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, from before the announcement until the acquired name stops showing up on its own. It takes seven steps.\n\nSet the acquirer up as your tracked brand and the acquired company as a competitor, so you get two trend lines instead of one blurry total. Write three or four deal statements down as key messages, plus the wrong claims you expect. Build 15 to 25 questions covering customers, prospects, reporters, and employees, tag them, and run them nightly. Mark the announcement and the close on the timeline.\n\nThen watch share of voice move from the old name to the new one, week by week; a typical transition runs from roughly a 30/45 split to 70/10 over five or six months. Pull the citations behind those answers, where three to eight sources usually carry the whole story. Expect three to nine months before AI answers describe the combined company correctly, because answers only change after the pages behind them change and get recrawled. When the acquired name drops under 10% share of voice and holds there for a month, fold it in as an alias so your trend line stays continuous.\n\nHere's how it usually surfaces. Two weeks after close, a sales rep forwards a screenshot. Somebody asked an assistant about the company you just bought, and the answer describes it as an independent competitor of yours, with pricing from a page that hasn't been touched since last spring.\n\n## Why AI answers lag a deal by months\n\nA merger is a legal event with a date on it. AI answers don't work that way.\n\nAssistants build answers about your companies from pages they retrieved; press coverage, product pages, directories, review sites, comparison posts, old funding write-ups. On close day, every one of those pages still says what it said the day before. The deal announcement adds one new page to a pile of hundreds. Retrieval doesn't care that it's the newest one.\n\nSo the answer stays stale until three things happen in order. Pages change, whether that's yours getting updated or new coverage getting published. Crawlers come back and pick up the changes, which takes anywhere from a few days on a busy news site to several months on a directory listing. Then the changed pages start beating the old ones for the questions people ask. That sequence takes three to nine months end to end, and it runs at a different speed on ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, because each one leans on a different mix of sources.\n\nComms feels this first, because the deal team will ask how the market is absorbing the news and the usual answers are soft. Press clip counts measure how much got written, not what people are being told. AI answers are what people are actually being told, at the moment they ask. This workflow makes that measurable, and it works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Track both brands | Two names, two trend lines | A baseline that predates the news |\n| 2. Write the messages | Naming what answers should say | Three or four testable statements |\n| 3. Build the prompt set | Asking what each group will ask | Questions that pull real answers |\n| 4. Mark the milestones | Annotating announcement and close | Every move has a cause attached |\n| 5. Watch the name split | Reading the shift, not the total | One line falling, one climb
2ing |\n| 6. Trace the sources | Finding who tells the deal story | A ranked outreach list |\n| 7. Retire the old name | Flipping competitor to alias | A continuous line after the merge |\n\n## Track both companies as separate brands before the announcement\n\nSet this up before anyone announces anything, if you're allowed to. A baseline collected after the news is not a baseline; it's the after picture with nothing to compare it to.\n\nThe setup is simple. The acquirer is your tracked brand. The acquired company goes in as a competitor. That feels strange to write down when you're about to own them, but it's the right structure, because a competitor gets its own share-of-voice line. You need both lines separately for the whole transition. Combine them too early and the interesting part disappears into a total that barely moves.\n\nTwo or three weeks of data before the announcement is enough. You want to know what a normal week looks like for each name so you can tell later whether a number moved because of the deal or because it always wobbles that much.\n\nKeep the other real competitors in the list too. A deal changes your competitive set, and one of the more useful things this tracking shows is whether the market starts describing the combined company against bigger rivals than either name faced alone.\n\nIf neither company has visibility tracking running yet, start with the general setup and layer the deal work on top; [baselining a brand's AI visibility](/blog/how-to-baseline-your-brands-ai-visibility) covers that from scratch.\n\n\u003cWorkflowCallout\n  title=\"The acquired brand goes in as a competitor, for now\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Acquirer set as the tracked property\", done: true },\n      { label: \"Acquired brand added as a competitor\", done: true },\n      { label: \"4 category rivals still tracked\", done: true },\n      { label: \"3 weeks of pre-announcement baseline\", done: false },\n    ],\n  }}
2\n\u003e\n  Competitor tracking gives each name its own share-of-voice line and its own citation mix, which is what makes the transition readable later. The comparison view shows both brands against the rest of the category, so you can see whether the combined story lands you in a different peer group. Nothing here changes when the deal closes; you keep the same setup and let the lines cross.\n\u003c/WorkflowCallout\u003e\n\n## Write the deal story as key messages\n\nEvery deal comes with an approved narrative. It's in the release, the FAQ, and the talking points. The question nobody usually asks is whether any of it reaches the people asking assistants about you.\n\nPick three or four statements and write them plainly, the way a customer would say them rather than the way the release says them. \"The two companies are now one.\" \"The product is still supported and still sold.\" \"Customers keep their existing contracts.\" \"The combined company covers both markets.\" Those are testable. \"Synergies across a complementary portfolio\" is not, and no customer will ever phrase a question that way.\n\nThen write the wrong versions. This is the part teams skip and regret. During a transition, assistants repeat old framing with real confidence, and the specific wrong statements are predictable enough that you can name them in advance.\n\n- The acquired product was discontinued. Almost every deal generates this one, usually from a support page or a forum thread.\n- The two companies are competitors. Comparison pages keep this alive long after close, because those pages are built to win exactly the questions you care about.\n- The old pricing or old plan names are still current. Pricing pages get cached, quoted, and copied into roundups.\n- The deal fell through, or is still pending. Announcement coverage outnumbers close coverage by a wide margin, so the pending version often has more material behind it.\n\nMeasure both lists on the same chart. The transition is done when the true statements are rising and the wrong ones are falling, and having them side by side turns a vague sense that things are improving into a number.\n\n\u003cWorkflowCallout\n  title=\"Both the approved story and the wrong one get measured\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"count\",\n    label: \"Deal messages tracked\",\n    value: 9,\n    target: 9,\n    caption: \"4 approved, 5 stale claims to watch for\",\n  }}\n\u003e\n  Key messages hold the statements you want AI answers carrying and the ones you don't, and both get measured the same way. Matching is semantic rather than keyword based, so an answer that says the product was \"sunset\" still registers against a discontinued claim written in different words. Charting the positive and negative sets together shows the approved story taking the place of the old one instead of just appearing next to it.\n\u003c/WorkflowCallout\u003e\n\n## Add the questions customers, reporters, and employees will ask\n\nA deal creates its own question set, and it's different from the questions you normally track. Nobody asks \"what are the leading vendors in this category\" the week after an acquisition. They ask what happened to the thing they were using.\n\nWrite for the four groups separately. They ask in different words and they land on different pages.\n\n| Who's asking | What they type | What a bad answer costs you |\n| :--- | :--- | :--- |\n| Existing customers | \"Is [acquired brand] still supported?\" | Renewal risk and support tickets |\n| Prospects | \"[Acquirer] vs [acquired brand]\" | A comparison that treats you as two vendors |\n| Reporters and analysts | \"Who owns [acquired brand] now?\" | Wrong facts repeated in coverage |\n| Candidates and employees | \"Is [acquired brand] still hiring?\" | Recruiting friction during integration |\n\nFifteen to twenty-five questions covers most deals. Include the plain ownership questions, the product continuity questions, the comparison questions that used to pit the two brands against each other, and a couple about the category, to see whether the combined company shows up where neither name did before.\n\nTag the whole set with something like merger or deal-name. That tag is what lets you filter every chart down to the transition view later without rebuilding anything, and it's what you'll export when the deal team asks for a readout.\n\nThen put the set on a nightly schedule. A weekly spot check is too coarse during a transition, because the interesting weeks are the ones right after an event and you only get a handful of readings before the next event lands.\n\n\u003cWorkflowCallout\n  title=\"One tagged prompt set, running nightly from day one\"\n  page=\"Prompts Dashboard\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Prompts tagged merger\",\n    value: 21,\n    target: 22,\n    caption: \"8 continuity, 6 ownership, 4 comparison, 3 category\",\n  }}\n\u003e\n  Prompts are the questions your tracking actually asks, and generation frameworks like stakeholder and buyer's journey help you cover the employee and analyst angles instead of only the customer one. The tag carries through to every dashboard and export, so the deal view is one filter away from your regular reporting. A General project over the tagged set runs it nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews from the day you turn it on.\n\u003c/WorkflowCallout\u003e\n\n## Mark the announcement, the close, and every migration milestone\n\nThis step takes about a minute per event and it's the one that makes the whole record usable six months later.\n\nMark the announcement. Mark the close. Mark the day the acquired site redirects, the day the combined product page goes live, the day the pricing pages merge, the day the support portals consolidate, and any major piece of coverage. Each one is a candidate cause for a change in the data.\n\nThe lag is long and uneven, which is what makes the marks worth the minute. When share of voice for the new name jumps in week fourteen, somebody will ask what caused it, and the cause is usually a page that changed in week nine. You will not remember week nine. The timeline will.\n\n\u003cWorkflowCallout\n  title=\"Deal events sit on the same timeline as the metrics\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Announcement marked\", done: true },\n      { label: \"Close marked\", done: true },\n      { label: \"Acquired site redirected\", done: true }
2,\n      { label: \"Combined product page live\", done: false },\n      { label: \"Support portals merged\", done: false },\n    ],\n  }}\n\u003e\n  Annotations drop onto the visibility charts, so a rise or a drop comes with the event that caused it attached rather than needing a separate document. They carry into exports too, which means the readout you hand the deal team already explains itself. Marking the small migration events is worth as much as marking the deal ones, since those are usually what actually moved retrieval.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-track-ai-visibility-through-a-merger-quote.webp\"\n  quote=\"A merger closes on a single date. AI answers close months later, one recrawled page at a time.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-track-ai-visibility-through-a-merger\"\n/\u003e\n\n## Watch share of voice move from the old name to the new one\n\nNow you read the data, and the discipline is to read the split rather than the total.\n\nThe combined total is a comforting number and it hides everything. Two names that add up to the same share they had before can mean the transition is working perfectly or hasn't started at all. What you want is the crossover; the acquired name's line coming down while the acquirer's climbs, ideally crossing on a date you can point at. A healthy transition looks like the acquirer going from 31% to 68% of category share of voice over about 22 weeks while the acquired name falls from 44% to 9%.\n\nCheck four things on a weekly rhythm, filtered to your tag.\n\n**The split between the names.** This is the headline. Report it as two numbers, always, and resist anyone who wants it collapsed into one.\n\n**Whether the assistants agree.** It's normal for one assistant to make the switch months before another. A name that's flipped on Perplexity and stalled on ChatGPT usually means one high-traffic source hasn't updated, which is a specific and fixable problem rather than a waiting game.\n\n**Message pull-through.** Are the approved statements showing up, and are the stale ones fading? A falling old name with no rising message means assistants stopped talking about the acquired brand rather than started talking about the combined one, and those look identical on a share-of-voice chart.\n\n**Comparison answers.** Ask directly whether the two are the same company. If assistants still frame you as rivals four months after close, that's the single most damaging pattern in the set, and it points straight at comparison pages you need to displace.\n\nSet expectations with the deal team before the first readout. The first month shows the announcement bump and almost nothing structural. Real movement shows up somewhere between month three and month nine. Saying that in week one is much easier than explaining a flat chart in week six.\n\n\u003cWorkflowCallout\n  title=\"Read the crossover, not the combined total\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Share of voice carried by the acquirer name\",\n    before: \"31%\",\n    after: \"68%\",\n    tone: \"positive\",\n    caption: \"Acquired name fell from 44% to 9% over 22 weeks\",\n    series: [31, 33, 36, 41, 44, 49, 55, 58, 62, 65, 68],\n  }}\n\u003e\n  Filtering the metrics view to your deal tag gives you the transition on its own, with both names charted separately and the annotations sitting underneath. Per-platform breakdowns show whether the switch is happening everywhere or stalling on one assistant, which changes what you work on next. Message pull-through runs on the same timeline, so you can see the approved story rising as the old framing drops.\n\u003c/WorkflowCallout\u003e\n\n## Trace the sources telling the deal story\n\nAt some point watching stops being useful and you need to know which pages are producing these answers. That list is shorter than people expect. Three to eight sources usually carry most of what an assistant says about a deal.\n\nPull the citations from the answers about the merger and sort them into four buckets.\n\n**Deal coverage.** The trade and business press pieces about the announcement. These are your best asset, and they're worth grouping together so you can watch them start getting cited rather than guessing.\n\n**Comparison and review pages.** Written to win the exact questions you're worried about, and updated by nobody. This is where the \"still competitors\" framing lives.\n\n**Directories and databases.** Funding databases like Crunchbase and PitchBook, company profiles, and listing sites. They're slow to update and they get quoted with more confidence than they deserve, because a retrieval system reads three sites saying the same wrong thing as corroboration.\n\n**Your own pages.** The acquired company's old site, its blog, its pricing page, its support docs. If your own material is telling the old story, that's the fastest fix on the list, and it's worth confirming assistants can read the new combined pages at all; the [AI readiness audit](/ai-readiness-audit) shows which of your pages parse cleanly.\n\nScore the outside sources before you spend outreach time. Two things decide whether a correction is worth chasing; whether AI can crawl that site at all, and whether it already gets cited for questions in your category. A well-known publication that blocks AI crawlers in its robots.txt won't 
2change an answer no matter who you know there. Getting this ranking right is the same work as any earned media program in this channel, and [connecting earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility) goes deeper on the scoring.\n\n\u003cWorkflowCallout\n  title=\"The sources behind the deal answers, ranked by what can move them\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"count\",\n    label: \"Sources feeding merger answers\",\n    value: 11,\n    target: 11,\n    caption: \"4 deal coverage, 3 comparison pages, 2 directories, 2 yours\",\n  }}\n\u003e\n  Citation Intelligence classifies every source cited for your tagged prompts, so you get the list behind the deal answers instead of the whole citation mix. Each source carries a placement value score combining its authority with whether AI can actually read it, which sorts your outreach list by what can change an answer rather than by name recognition. Grouping the deal coverage as a coverage group lets you watch those pieces get picked up over the following months.\n\u003c/WorkflowCallout\u003e\n\n## Retire the old name only after the answers catch up\n\nEventually the acquired name is being wound down and your tracking should reflect that. The mistake is doing it on the legal date instead of the data date.\n\nWatch for the signal first. The acquired name is under roughly 10% share of voice, the crossover has held for a month or more, and the continuity questions come back describing one company. That's when the split view stops earning its space on the chart.\n\nBefore you change anything, export it. Once the acquired name becomes an alias of your brand, both names count as you, the totals hold steady, and the separate line for the old name goes away. That's the right end state for ongoing reporting and it does erase the shape of the transition. There's no way to rebuild that chart later, so the export is the record. It also happens to be the single best slide in the integration retrospective.\n\nThen make the flip. Move the acquired name from your competitor list to your brand aliases, and add the variants while you're there; the legal entity name, any product names that got folded in, common misspellings that show up in directory data. Directory listings quote legal names for years after the marketing name is gone.\n\nAfter the flip, your reporting returns to normal. One brand, one line, one set of messages, with the deal-tagged prompts folded into the regular set or retired. The tracking that would be worth keeping is the handful of continuity questions, because customers keep asking those long after everyone internally has stopped thinking about the deal. The mechanics of the name swap itself are the same ones a rebrand goes through, and [tracking a rebrand in AI answers](/blog/how-to-track-a-rebrand-in-ai-answers) covers them in more detail.\n\n\u003cWorkflowCallout\n  title=\"Flip the acquired name from competitor to alias\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Acquired name under 10% share of voice\", done: true },\n      { label: \"Crossover held for 4+ weeks\", done: true },\n      { label: \"Split trend exported and archived\", done: true },\n      { label: \"Acquired name added as a brand alias\", done: false },\n      { label: \"Legal entity and product variants added\", done: false },\n    ],\n  }}\n\u003e\n  Brand aliases live on the property's general settings, and every alias is matched alongside the primary name across mentions, share of voice, and citations. After the flip the combined brand keeps one continuous trend line instead of restarting, which is what you want for ongoing reporting. Export the two-line view first; the alias merge is the point where the separate history for the old name stops being available.\n\u003c/WorkflowCallout\u003e\n\n## What good looks like a year out\n\nThe value of this workflow shows up in the integration review, not in week two. By then you should have four things.\n\n1. **A dated crossover.** The week the new name passed the old one in AI answers, with the events around it marked. This is the closest thing to a market-absorption date anyone will produce, and it's defensible because the collection method never changed.\n2. **A closed loop on at least one wrong claim.** Pick the most fixable one, usually a discontinued-product claim coming from your own support docs, c
2orrect the source, and show the claim falling out of answers eight weeks later. One documented cause and effect beats a year of charts.\n3. **A source list you keep.** The pages that told the deal story, scored and ranked. That list is the starting point for the next announcement, and it costs nothing extra to produce.\n4. **A clean handoff.** One brand, aliases in place, continuity questions still tracked, the transition archived as an export.\n\nThe habit is fifteen minutes a week on the same filtered view. Most weeks the numbers barely move, which is normal for a transition that runs on recrawl cycles. The point is that when someone senior asks whether the market understands the deal yet, the answer is a date and a percentage rather than a clip count and a guess.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"62:T712d,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of m(e))!w.call(n,r)\u0026\u0026r!==a\u0026\u0026i(n,r,{get:()=\u003ee[r],enumerable:!(s=p(e,r))||s.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?g(y(n)):{},o(e||!n||!n.__esModule?i(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003eo(i({},\"__esModule\",{value:!0}),n);var l=f((T,h)=\u003e{h.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eu});var t=k(l());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:a,WorkflowCallout:s}=e;return a||c(\"PullQuote\",!0),s||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Tracking AI visibility through a merger means watching two brand names at once, across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, from before the announcement until the acquired name stops showing up on its own. It takes seven steps.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set the acquirer up as your tracked brand and the acquired company as a competitor, so you get two trend lines instead of one blurry total. Write three or four deal statements down as key messages, plus the wrong claims you expect. Build 15 to 25 questions covering customers, prospects, reporters, and employees, tag them, and run them nightly. Mark the announcement and the close on the timeline.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then watch share of voice move from the old name to the new one, week by week; a typical transition runs from roughly a 30/45 split to 70/10 over five or six months. Pull the citations behind those answers, where three to eight sources usually carry the whole story. Expect three to nine months before AI answers describe the combined company correctly, because answers only change after the pages behind them change and get recrawled. When the acquired name drops under 10% share of voice and holds there for a month, fold it in as an alias so your trend line stays continuous.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's how it usually surfaces. Two weeks after close, a sales rep forwards a screenshot. Somebody asked an assistant about the company you just bought, and the answer describes it as an independent competitor of yours, with pricing from a page that hasn't been touched since last spring.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why AI answers lag a deal by months\"}),`\n`,(0,t.jsx)(e.p,{children:\"A merger is a legal event with a date on it. AI answers don't work that way.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Assistants build answers about your companies from pages they retrieved; press coverage, product pages, directories, review sites, comparison posts, old funding write-ups. On close day, every one of those pages still says what it said the day before. The deal announcement adds one new page to a pile of hundreds. Retrieval doesn't care that it's the newest one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So the answer stays stale until three things happen in order. Pages change, whether that's yours getting updated or new coverage getting published. Crawlers come back and pick up the changes, which takes anywhere from a few days on a busy news site to several months on a directory listing. Then the changed pages start beating the old ones for the questions people ask. That sequence takes three to nine months end to end, and it runs at a different speed on ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, because each one leans on a different mix of sources.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Comms feels this first, because the deal team will ask how the market is absorbing the news and the usual answers are soft. Press clip counts measure how much got written, not what people are being told. AI answers are what people are actually being told, at the moment they ask. This workflow makes that measurable, and it works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Track both brands\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Two names, two trend lines\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A baseline that predates the news\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Write the messages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Naming what answers should say\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Three or four testable statements\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Build the prompt set\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Asking what each group will ask\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Questions that pull real answers\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Mark the milestones\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Annotating announcement and close\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every move has a cause attached\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Watch the name split\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reading the shift, not the total\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"One line falling, one climbing\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Trace the sources\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Finding who tells the deal story\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A ranked outreach list\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"7. Retire the old name\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Flipping competitor to alias\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A continuous line after the merge\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Track both companies as separate brands before the announcement\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set this up before anyone announces anything, if you're allowed to. A baseline collected after the news is not a baseline; it's the after picture with nothing to compare it to.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The setup is simple. The acquirer is your tracked brand. The acquired company goes in as a competitor. That feels strange to write down when you're about to own them, but it's the right structure, because a competitor gets its own share-of-voice line. You need both lines separately for the whole transition. Combine them too early and the interesting part disappears into a total that barely moves.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Two or three weeks of data before the announcement is enough. You want to know what a normal week looks like for each name so you can tell later whether a number moved because of the deal or because it always wobbles that much.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Keep the other real competitors in the list too. A deal changes your competitive set, and one of the more useful things this tracking shows is whether the market starts describing the combined company against bigger rivals than either name faced alone.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If neither company has visibility tracking running yet, start with the general setup and layer the deal work on top; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining a brand's AI visibility\"}),\" covers that from scratch.\"]}),`\n`,(0,t.jsx)(s,{title:\"The acquired brand goes in as a competitor, for now\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"checklist\",items:[{label:\"Acquirer set as the tracked property\",done:!0},{label:\"Acquired brand added as a competitor\",done:!0},{label:\"4 category rivals still tracked\",done:!0},{label:\"3 weeks of pre-announcement baseline\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Competitor tracking gives each n
2ame its own share-of-voice line and its own citation mix, which is what makes the transition readable later. The comparison view shows both brands against the rest of the category, so you can see whether the combined story lands you in a different peer group. Nothing here changes when the deal closes; you keep the same setup and let the lines cross.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Write the deal story as key messages\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every deal comes with an approved narrative. It's in the release, the FAQ, and the talking points. The question nobody usually asks is whether any of it reaches the people asking assistants about you.\"}),`\n`,(0,t.jsx)(e.p,{children:'Pick three or four statements and write them plainly, the way a customer would say them rather than the way the release says them. \"The two companies are now one.\" \"The product is still supported and still sold.\" \"Customers keep their existing contracts.\" \"The combined company covers both markets.\" Those are testable. \"Synergies across a complementary portfolio\" is not, and no customer will ever phrase a question that way.'}),`\n`,(0,t.jsx)(e.p,{children:\"Then write the wrong versions. This is the part teams skip and regret. During a transition, assistants repeat old framing with real confidence, and the specific wrong statements are predictable enough that you can name them in advance.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"The acquired product was discontinued. Almost every deal generates this one, usually from a support page or a forum thread.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The two companies are competitors. Comparison pages keep this alive long after close, because those pages are built to win exactly the questions you care about.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The old pricing or old plan names are still current. Pricing pages get cached, quoted, and copied into roundups.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The deal fell through, or is still pending. Announcement coverage outnumbers close coverage by a wide margin, so the pending version often has more material behind it.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Measure both lists on the same chart. The transition is done when the true statements are rising and the wrong ones are falling, and having them side by side turns a vague sense that things are improving into a number.\"}),`\n`,(0,t.jsx)(s,{title:\"Both the approved story and the wrong one get measured\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"count\",label:\"Deal messages tracked\",value:9,target:9,caption:\"4 approved, 5 stale claims to watch for\"},children:(0,t.jsx)(e.p,{children:`Key messages hold the statements you want AI answers carrying and the ones you don't, and both get measured the same way. Matching is semantic rather than keyword based, so an answer that says the product was \"sunset\" still registers against a discontinued claim written in different words. Charting the positive and negative sets together shows the approved story taking the place of the old one instead of just appearing next to it.`})}),`\n`,(0,t.jsx)(e.h2,{children:\"Add the questions customers, reporters, and employees will ask\"}),`\n`,(0,t.jsx)(e.p,{children:`A deal creates its own question set, and it's different from the questions you normally track. Nobody asks \"what are the leading vendors in this category\" the week after an acquisition. They ask what happened to the thing they were using.`}),`\n`,(0,t.jsx)(e.p,{children:\"Write for the four groups separately. They ask in different words and they land on different pages.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Who's asking\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What they type\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What a bad answer costs you\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Existing customers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'\"Is [acquired brand] still supported?\"'}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Renewal risk and support tickets\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Prospects\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'\"[Acquirer] vs [acquired brand]\"'}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"A comparison that treats you as two vendors\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reporters and analysts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'\"Who owns [acquired brand] now?\"'}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Wrong facts repeated in coverage\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Candidates and employees\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'\"Is [acquired brand] still hiring?\"'}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Recruiting friction during integration\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Fifteen to twenty-five questions covers most deals. Include the plain ownership questions, the product continuity questions, the comparison questions that used to pit the two brands against each other, and a couple about the category, to see whether the combined company shows up where neither name did before.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Tag the whole set with something like merger or deal-name. That tag is what lets you filter every chart down to the transition view later without rebuilding anything, and it's what you'll export when the deal team asks for a readout.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then put the set on a nightly schedule. A weekly spot check is too coarse during a transition, because the interesting weeks are the ones right after an event and you only get a handful of readings before the next event lands.\"}),`\n`,(0,t.jsx)(s,{title:\"One tagged prompt set, running nightly from day one\",page:\"Prompts Dashboard\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Prompts tagged merger\",value:21,target:22,caption:\"8 continuity, 6 ownership, 4 comparison, 3 category\"},children:(0,t.jsx)(e.p,{children:\"Prompts are the questions your tracking actually asks, and generation frameworks like stakeholder and buyer's journey help you cover the employee and analyst angles instead of only the customer one. The tag carries through to every dashboard and export, so the deal view is one filter away from your regular reporting. A General project over the tagged set runs it nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews from the day you turn it on.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Mark the announcement, the close, and every migration milestone\"}),`\n`,(0,t.jsx)(e.p,{children:\"This step takes about a minute per event and it's the one that makes the whole record usable six months later.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Mark the announcement. Mark the close. Mark the day the acquired site redirects, the day the combined product page goes live, the day the pricing pages merge, the day the support portals consolidate, and any major piece of coverage. Each one is a candidate cause for a change in the data.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The lag is long and uneven, which is what makes the marks worth the minute. When share of voice for the new name jumps in week fourteen, somebody will ask what caused it, and the cause is usually a page that changed in week nine. You will not remember week nine. The timeline will.\"}),`\n`,(0,t.jsx)(s,{title:\"Deal events sit on the same timeline as the metrics\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"checklist\",items:[{label:\"Announcement marked\",done:!0},{label:\"Close marked\",done:!0},{label:\"Acquired site redirected\",done:!0},{label:\"Combined product page live\",done:!1},{label:\"Support portals merged\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Annotations drop onto the visibility charts, so a rise or a drop comes with the event that caused it attached rather than needing a separate document. They carry into exports too, which means the readout you hand the deal team already explains itself. Marking the small migration events is worth as much as marking the deal ones, since those are usually what actually moved retrieval.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-track-ai-visibility-through-a-merger-quote.webp\",quote:\"A merger closes on a 
2single date. AI answers close months later, one recrawled page at a time.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-track-ai-visibility-through-a-merger\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch share of voice move from the old name to the new one\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now you read the data, and the discipline is to read the split rather than the total.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The combined total is a comforting number and it hides everything. Two names that add up to the same share they had before can mean the transition is working perfectly or hasn't started at all. What you want is the crossover; the acquired name's line coming down while the acquirer's climbs, ideally crossing on a date you can point at. A healthy transition looks like the acquirer going from 31% to 68% of category share of voice over about 22 weeks while the acquired name falls from 44% to 9%.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Check four things on a weekly rhythm, filtered to your tag.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The split between the names.\"}),\" This is the headline. Report it as two numbers, always, and resist anyone who wants it collapsed into one.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Whether the assistants agree.\"}),\" It's normal for one assistant to make the switch months before another. A name that's flipped on Perplexity and stalled on ChatGPT usually means one high-traffic source hasn't updated, which is a specific and fixable problem rather than a waiting game.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Message pull-through.\"}),\" Are the approved statements showing up, and are the stale ones fading? A falling old name with no rising message means assistants stopped talking about the acquired brand rather than started talking about the combined one, and those look identical on a share-of-voice chart.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Comparison answers.\"}),\" Ask directly whether the two are the same company. If assistants still frame you as rivals four months after close, that's the single most damaging pattern in the set, and it points straight at comparison pages you need to displace.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Set expectations with the deal team before the first readout. The first month shows the announcement bump and almost nothing structural. Real movement shows up somewhere between month three and month nine. Saying that in week one is much easier than explaining a flat chart in week six.\"}),`\n`,(0,t.jsx)(s,{title:\"Read the crossover, not the combined total\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"beforeAfter\",label:\"Share of voice carried by the acquirer name\",before:\"31%\",after:\"68%\",tone:\"positive\",caption:\"Acquired name fell from 44% to 9% over 22 weeks\",series:[31,33,36,41,44,49,55,58,62,65,68]},children:(0,t.jsx)(e.p,{children:\"Filtering the metrics view to your deal tag gives you the transition on its own, with both names charted separately and the annotations sitting underneath. Per-platform breakdowns show whether the switch is happening everywhere or stalling on one assistant, which changes what you work on next. Message pull-through runs on the same timeline, so you can see the approved story rising as the old framing drops.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Trace the sources telling the deal story\"}),`\n`,(0,t.jsx)(e.p,{children:\"At some point watching stops being useful and you need to know which pages are producing these answers. That list is shorter than people expect. Three to eight sources usually carry most of what an assistant says about a deal.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Pull the citations from the answers about the merger and sort them into four buckets.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Deal coverage.\"}),\" The trade and business press pieces about the announcement. These are your best asset, and they're worth grouping together so you can watch them start getting cited rather than guessing.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Comparison and review pages.\"}),` Written to win the exact questions you're worried about, and updated by nobody. This is where the \"still competitors\" framing lives.`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Directories and databases.\"}),\" Funding databases like Crunchbase and PitchBook, company profiles, and listing sites. They're slow to update and they get quoted with more confidence than they deserve, because a retrieval system reads three sites saying the same wrong thing as corroboration.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Your own pages.\"}),\" The acquired company's old site, its blog, its pricing page, its support docs. If your own material is telling the old story, that's the fastest fix on the list, and it's worth confirming assistants can read the new combined pages at all; the \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI readiness audit\"}),\" shows which of your pages parse cleanly.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Score the outside sources before you spend outreach time. Two things decide whether a correction is worth chasing; whether AI can crawl that site at all, and whether it already gets cited for questions in your category. A well-known publication that blocks AI crawlers in its robots.txt won't 
2change an answer no matter who you know there. Getting this ranking right is the same work as any earned media program in this channel, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"connecting earned media to AI visibility\"}),\" goes deeper on the scoring.\"]}),`\n`,(0,t.jsx)(s,{title:\"The sources behind the deal answers, ranked by what can move them\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"count\",label:\"Sources feeding merger answers\",value:11,target:11,caption:\"4 deal coverage, 3 comparison pages, 2 directories, 2 yours\"},children:(0,t.jsx)(e.p,{children:\"Citation Intelligence classifies every source cited for your tagged prompts, so you get the list behind the deal answers instead of the whole citation mix. Each source carries a placement value score combining its authority with whether AI can actually read it, which sorts your outreach list by what can change an answer rather than by name recognition. Grouping the deal coverage as a coverage group lets you watch those pieces get picked up over the following months.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Retire the old name only after the answers catch up\"}),`\n`,(0,t.jsx)(e.p,{children:\"Eventually the acquired name is being wound down and your tracking should reflect that. The mistake is doing it on the legal date instead of the data date.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Watch for the signal first. The acquired name is under roughly 10% share of voice, the crossover has held for a month or more, and the continuity questions come back describing one company. That's when the split view stops earning its space on the chart.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Before you change anything, export it. Once the acquired name becomes an alias of your brand, both names count as you, the totals hold steady, and the separate line for the old name goes away. That's the right end state for ongoing reporting and it does erase the shape of the transition. There's no way to rebuild that chart later, so the export is the record. It also happens to be the single best slide in the integration retrospective.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then make the flip. Move the acquired name from your competitor list to your brand aliases, and add the variants while you're there; the legal entity name, any product names that got folded in, common misspellings that show up in directory data. Directory listings quote legal names for years after the marketing name is gone.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"After the flip, your reporting returns to normal. One brand, one line, one set of messages, with the deal-tagged prompts folded into the regular set or retired. The tracking that would be worth keeping is the handful of continuity questions, because customers keep asking those long after everyone internally has stopped thinking about the deal. The mechanics of the name swap itself are the same ones a rebrand goes through, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-a-rebrand-in-ai-answers\",children:\"tracking a rebrand in AI answers\"}),\" covers them in more detail.\"]}),`\n`,(0,t.jsx)(s,{title:\"Flip the acquired name from competitor to alias\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"checklist\",items:[{label:\"Acquired name under 10% share of voice\",done:!0},{label:\"Crossover held for 4+ weeks\",done:!0},{label:\"Split trend exported and archived\",done:!0},{label:\"Acquired name added as a brand alias\",done:!1},{label:\"Legal entity and product variants added\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Brand aliases live on the property's general settings, and every alias is matched alongside the primary name across mentions, share of voice, and citations. After the flip the combined brand keeps one continuous trend line instead of restarting, which is what you want for ongoing reporting. Export the two-line view first; the alias merge is the point where the separate history for the old name stops being available.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What good looks like a year out\"}),`\n`,(0,t.jsx)(e.p,{children:\"The value of this workflow shows up in the integration review, not in 
2week two. By then you should have four things.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A dated crossover.\"}),\" The week the new name passed the old one in AI answers, with the events around it marked. This is the closest thing to a market-absorption date anyone will produce, and it's defensible because the collection method never changed.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A closed loop on at least one wrong claim.\"}),\" Pick the most fixable one, usually a discontinued-product claim coming from your own support docs, correct the source, and show the claim falling out of answers eight weeks later. One documented cause and effect beats a year of charts.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A source list you keep.\"}),\" The pages that told the deal story, scored and ranked. That list is the starting point for the next announcement, and it costs nothing extra to produce.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A clean handoff.\"}),\" One brand, aliases in place, continuity questions still tracked, the transition archived as an export.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The habit is fifteen minutes a week on the same filtered view. Most weeks the numbers barely move, which is normal for a transition that runs on recrawl cycles. The point is that when someone senior asks whether the market understands the deal yet, the answer is a date and a percentage rather than a clip count and a guess.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"19:[\"$\",\"$L10\",\"how-to-track-ai-visibility-through-a-merger\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$61\",\"title\":\"How to Track AI Visibility Through a Merger\",\"date\":\"2026-09-07\",\"image\":\"/images/blog/how-to-track-ai-visibility-through-a-merger.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"When two companies combine, AI assistants keep answering as if nothing happened. Customers ask whether the acquired product still exists and get last year's answer. Here's how comms teams track both names through announcement, close, and migration, and prove when the market finally caught up.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Mergers and Acquisitions\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"When should we start tracking AI visibility for a deal?\",\"answer\":\"Before the announcement, if the deal is far enough along that you can set it up quietly. You need a few weeks of data on both names to have anything to compare the post-announcement numbers against. If you start on announcement day you get the after picture with no before.\"},{\"question\":\"Should we track the acquired company as a competitor?\",\"answer\":\"Yes, until the brands actually merge. Setting it up as a competitor gives you two separate trend lines and a share-of-voice split between the names, which is exactly the chart the deal team wants. You switch it to an alias later, once the acquired name is being retired.\"},{\"question\":\"How long until AI answers reflect the new ownership?\",\"answer\":\"Plan on three to nine months from the announcement, and longer for a small acquired brand. Assistants build answers from pages they retrieved, so the answer only changes after the pages change, get recrawled, and start winning retrieval again. The press release alone rarely moves it.\"},{\"question\":\"What if AI keeps describing the two companies as rivals?\",\"answer\":\"That usually means the comparison pages are winning retrieval and the deal coverage isn't. Find the pages that still frame you as competitors, then get a clearer combined-company page in front of the same questions. Third-party coverage of the deal moves it faster than your own newsroom does.\"},{\"question\":\"Do we lose our history when we fold the old name into the new one?\",\"answer\":\"The mentions keep counting, since both names match the same brand after the flip. What you lose is the separate line for the old name, so export the split view before you make the change. That export is the record of the transition and you can't rebuild it afterward.\"}],\"howTo\":{\"name\":\"How to track AI visibility through a merger\",\"description\":\"A step-by-step workflow for corporate communications and PR teams tracking how AI assistants describe two combining companies, from pre-announcement baseline through close, migration, and retiring the acquired name.\",\"steps\":[{\"name\":\"Track both companies as separate brands before the announcement\",\"text\":\"Set the acquirer up as the tracked property and add the acquired company as a competitor, so you get a clean baseline and two separate trend lines.\"},{\"name\":\"Write the deal story as key messages\",\"text\":\"Capture the three or four statements you need AI answers to carry about the combined company, plus the wrong ones you expect to see.\"},{\"name\":\"Add the questions customers, reporters, and employees will ask\",\"text\":\"Build a tagged prompt set covering ownership, product continuity, comparison, and support questions, written the way each group would type them.\"},{\"name\":\"Mark the announcement, the close, and every migration milestone\",\"text\":\"Annotate each deal event on the timeline as it happens so later movement in the data has a cause attached to it.\"},{\"name\":\"Watch share of voice move from the old name to the new one\",\"text\":\"Read the split between the two names week over week instead of the combined total, and check whether the shift is happening on every assistant.\"},{\"name\":\"Trace the sources telling the deal story\",\"text\":\"Pull the citations behind the answers about the deal, score them, and work the sources that carry weight with retrieval.\"},{\"name\":\"Retire the old name only after the answers catch up\",\"text\":\"Export the split trend, then switch the acquired name from a competitor to an alias so the combined brand keeps one continuous line.\"}]},\"_meta\":{\"filePath\":\"how-to-track-ai-visibility-through-a-merger.mdx\",\"fileName\":\"how-to-track-ai-visibility-through-a-merger.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-track-ai-visibility-through-a-merger\"},\"body\":\"$62\",\"locale\":\"en\",\"path\":\"how-to-track-ai-visibility-through-a-merger\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"63:T475a,"])</script>
2<script>self.__next_f.push([1,"Monitoring what AI says about your brand means asking the assistants a fixed set of questions on a schedule and keeping the answers, because an AI answer isn't posted anywhere for a listening tool to catch. The setup has five parts. Write down the specific claims you can't afford to have repeated. Turn them into a small set of reputational questions a worried customer would actually ask. Run those questions nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews. Read how often each claim surfaces, week over week. Then pull the citations behind those answers to find the pages feeding the claim. A claim that shows up in 18% of answers this week and 11% next week is fading. One that holds steady is being fed by a page you can find and work on. Expect four to ten weeks between fixing the source material and seeing the claim drop out, because the page has to be recrawled and start winning retrieval before anything changes.\n\nHere's the meeting that starts this workflow. Someone in legal or comms types the company name into an AI assistant, gets an answer with a line in it nobody approved, and asks the marketing team a simple question. How long has it been saying that, and how often?\n\n## Why the old monitoring stack misses this\n\nBrand monitoring was built for content that sits still. A post, an article, a review; each one has an author, a date, and a URL. You can count them, alert on them, and screenshot them for the deck.\n\nAn AI answer has none of those properties. It gets generated for one person, in one session, and then it's gone. Nobody files it. Two people asking the same question can get different wording, and neither version exists anywhere you can search. So a claim can be in heavy rotation for months without producing a single alert in any listening tool you already pay for.\n\nThe other difference is reach. A bad review sits at the bottom of page three. An AI answer arrives as the answer, in one paragraph, with the assistant's confidence behind it. If a wrong claim about your safety record, your pricing, or your ownership is in that paragraph, it lands on every person who asks, and none of them see the source it came from unless they go looking.\n\nThat's the gap this workflow closes. You can't wait for mentions to arrive, so you ask the questions yourself, on a schedule, and keep the record. It works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. List the claims | Naming the exact statements you're watching for | A short list legal signed off on |\n| 2. Build the questions | Writing what a worried buyer would ask | Questions that pull real answers, not ads |\n| 3. Run them nightly | Putting the set on a daily cycle | A trend line instead of a screenshot |\n| 4. Read the surfacing rate | Tracking each claim over time | Movement you can point at a cause |\n| 5. Trace the sources | Finding the pages behind the claim | A short outreach list, ranked |\n\n## List the claims you can't afford to have repeated\n\nStart with the list, not the tooling. Get comms, legal, and whoever owns the product story in one room and write down the specific statements that would cause a problem if an assistant repeated them.\n\nBe specific. \"Negative sentiment\" isn't something you can track. \"The company was fined for the 2024 data breach\" is. So is \"their contracts are hard to cancel,\" \"the product is discontinued,\" and \"they were acquired last year,\" if that last one isn't true. The more exact the claim, the more useful everything downstream gets.\n\nWrite each one the way a customer would say it, not the way your lawyers would. Assistants generate plain language, so a claim phrased in legal terms will slip past a match that a plain-English version catches. If your matching is semantic rather than keyword based, a paraphrase still counts, which is what you want here; the same idea comes back in different words every night.\n\nThen write the counter-claims. These are the true statements you want showing up instead; the certification you hold, the policy you changed, the number that's actually correct. You're going to measure both. One list should be falling and the other should be rising, and having them side by side is what turns this from monitoring into a scoreboard.\n\nSort the list before you move on. Not everything on it deserves the same response.\n\n| Claim type | Why it lands in AI answers | How fast to respond |\n| :--- | :--- | :--- |\n| Factually wrong (dates, ownership, status) | An old page still ranks and nothing newer corrects it | Fast; publish the correction now |\n| True but outdated (a fixed problem) | The coverage of the problem outlives the fix | Weeks; get the resolution documented |\n| True and current | The source material is accurate | Not a monitoring problem; it's a business one |\n| Competitor framing | A comparison page tells the story their way | Weeks; answer the comparison yourself |\n| Category risk (an industry claim) | The assistant fills a gap with generic industry text | Slow; it moves when your own pages get clearer |\n\n## Ask the questions a worried customer would ask\n\nNow write the questions. This is the step people rush, and it's the one that decides whether the whole setup tells you anything.\n\nThe instinct is to ask about the claim directly. \"Was [brand] fined for a data breach?\" That question does need to be in the set, but on its own it's misleading, because you asked a leading question and the assistant went looking for material about a fine. Of course it found some.\n\nThe questions that matter are the ones a real person asks when they aren't thinking about your problem at all.\n\n- **Decision questions.** \"Is [brand] safe to use for healthcare data?\" \"Should I sign a contract with [brand]?\" These are where a harmful claim does actual damage, because it surfaces in front of someone about to buy.\n- **Category questions.** \"What's the most reliable option for [category]?\" If your claim shows up here, unprompted, that's the highest-severity version of the problem.\n- **Direct questions.** \"What problems have people had with [brand]?\" The leading version. Keep a few; they tell you what material exists, which is useful even when the claim isn't surfacing anywhere else.\n- **Comparison questions.** \"[Brand] vs [competitor].\" Assistants love these, and a rival's comparison page is often where a claim about you gets its cleanest phrasing.\n\nTen to twenty questions covers most brands. Resist the urge to write fifty. Every tracked question runs on a schedule and costs on its own, and a set nobody reads every week is worse than a small one somebody does.\n\nTag the whole set. One tag, something like compliance or brand safety, applied to every question in the group. That tag is what lets you filter every chart and export down to this view later without rebuilding the list from memory.\n\n\u003cWorkflowCallout\n  title=\"Capture the claims as key messages, then tag the questions\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"4 harmful claims captured as negative messages\", done: true },\n      { label: \"3 counter-messages captured as positive\", done: true },\n      { label: \"Paraphrase matching confirmed on a sample answer\", done: true },\n      { label: \"Legal sign-off on the claim list\", done: false },\n    ],\n  }}\n\u003e\n  Key messages hold both lists, so the claims you're watching for and the corrections you want surfacing get measured the same way. Matching is semantic rather than keyword based, so a claim that c
2omes back reworded still registers as the same message. Negative and positive messages chart together, which is how you see a correction taking the place of a claim rather than just sitting next to it.\n\u003c/WorkflowCallout\u003e\n\n\u003cWorkflowCallout\n  title=\"Write reputational prompts and tag them\"\n  page=\"Prompts Dashboard\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Prompts tagged brand-safety\",\n    value: 14,\n    target: 15,\n    caption: \"6 decision, 4 category, 2 direct, 2 comparison\",\n  }}\n\u003e\n  Prompts are the questions your monitoring actually asks, and generation frameworks like buyer's journey and stakeholder help you cover the decision and category angles instead of only the obvious direct question. The tag carries through to every dashboard and export, so the brand-safety view is one filter away from the regular visibility reporting. Prompts written in the buyer's words tend to retrieve the same pages a buyer would land on.\n\u003c/WorkflowCallout\u003e\n\n## Put the questions on a nightly schedule\n\nA spot check tells you almost nothing. Ask an assistant the same question three times and you can get three different answers, and any one of them could be the outlier. What you need is a rate, and a rate needs repetition.\n\nSo put the tagged set on a nightly cycle across the major assistants and let it collect. Within two weeks you have a baseline. Within six you have a trend, and the trend is the thing you'll actually report on.\n\nTwo setup details are worth getting right on day one.\n\nRun every assistant, not only the one your team uses. They retrieve different sources and land on different claims, and it's common for a claim to be heavy in one and absent in another. That split is a useful signal by itself; it usually means one specific source is carrying it.\n\nCheck the margin of error before you promise anyone a number. Fourteen questions running nightly gives you a directional read, which is enough to say a claim is rising or falling. It's not enough to say it moved 2 points. Say the plain version to your stakeholders early and you won't have to walk anything back later.\n\nIf you haven't set up general visibility tracking yet, do that first; the monitoring set works better as a filtered view of an established baseline than as a standalone project. [Baselining a brand's AI visibility](/blog/how-to-baseline-your-brands-ai-visibility) covers that setup end to end.\n\n\u003cWorkflowCallout\n  title=\"Start a General project over the tagged prompts\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"General project active\", done: true },\n      { label: \"14 prompts running nightly\", done: true },\n      { label: \"5 assistants covered\", done: true },\n      { label: \"Margin of error - Directional (8-15%)\", done: true },\n      { label: \"First 14-day baseline collected\", done: false },\n    ],\n  }}\n\u003e\n  A General project puts the brand-safety prompts on a nightly cadence and keeps the results together, so you get a daily read instead of waiting for the next report cycle. The Data Accuracy card tells you what the sample size supports before you quote a number to legal. Because the project is scoped by tag, adding a claim later means adding prompts, not rebuilding the setup.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-monitor-what-ai-says-about-your-brand-quote.webp\"\n  quote=\"AI doesn't repeat what's true. It repeats what it can find, and most of what it can find about your brand was written by somebody else.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-monitor-what-ai-says-about-your-brand\"\n/\u003e\n\n## Watch how often the risky claims show up\n\nOnce the data is coming in, the discipline is to read the rate and ignore the individual answer. Someone on your team will find one bad response and forward it around. The response to that is to look up what percentage of answers carried the claim this week, and whether that percentage is going up or down.\n\nSet a weekly rhythm. Fifteen minutes, filtered to the tag, looking at four things.\n\n**Surfacing rate per claim.** How often each claim appeared, as a share of the answers. This is your headline number, and it's the one that goes to legal.\n\n**Direction over four weeks.** One week is noise. A month of decline is a result, and a month of climbing is a problem worth escalating before it gets bigger.\n\n**Which assistant carries it.** A claim concentrated in one assistant is usually one source. A claim spread evenly across all of them is in the general material about your category, and that takes longer to move.\n\n**Counter-message pull-through.** Are your true statements showing up? A claim that's falling while nothing replaces it means the assistant just stopped mentioning the topic. A claim that's falling while your correction rises means the work landed.\n\nMark the events on the timeline as you go. A statement, a policy change, a piece of coverage, a page you published. Six weeks later, when the line moves, you'll want to know what happened that week, and nobody remembers.\n\nOne escalation rule is worth writing down in advance. Decide, now, what surfacing rate on a decision question triggers a bigger response, and what that response is. If a harmful claim hits your threshold, this monitoring workflow hands off to a faster one; [running crisis communications when AI is repeating the story](/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story) picks up from there.\n\n\u003cWorkflowCallout\n  title=\"Filter the visibility view to the brand-safety tag\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"trend\",\n    label: \"Risky claim surfacing rate, 8 weeks\",\n    series: [21, 22, 
219, 17, 15, 13, 12, 11],\n    change: -10,\n    suffix: \" pts\",\n    lowerIsBetter: true,\n  }}\n\u003e\n  Filtering the metrics view to your tag gives you the brand-safety read on its own, with negative message surfacing and positive pull-through on the same timeline. Annotations sit on that timeline too, so a drop comes with the statement or the page that caused it attached. Per-platform breakdowns show whether a claim lives in one assistant or all of them, which changes what you do about it.\n\u003c/WorkflowCallout\u003e\n\n## Trace the sources feeding the answers\n\nThis is the step that turns monitoring into something you can act on, and it's the one most teams never get to.\n\nWhen an assistant makes a claim about you, it built that claim from pages it retrieved. Those pages are visible. Pull the citations from the answers where the claim appeared, and you get a list of the material actually driving it. Almost always it's shorter than people expect. Three to eight sources carry most of a persistent claim.\n\nThe list usually sorts into four kinds of source.\n\n**A single old article.** One piece of coverage from years ago that still ranks for your brand and hasn't been updated since the situation changed. The most common cause of a stale claim, and the most fixable.\n\n**An aggregator or a directory.** Sites that scraped a fact once and never refreshed it. Low authority individually, but there are often several saying the same wrong thing, which reads as corroboration to a retrieval system.\n\n**A competitor's comparison page.** Written to be retrieved for exactly the question you're worried about, and doing its job well.\n\n**Your own site.** This one surprises people. An outdated policy page, an old FAQ, a support doc nobody archived. If your own material is feeding the claim, that's the fastest fix available, and it's worth checking your pages are readable to assistants at all; the [AI readiness audit](/ai-readiness-audit) shows which of your pages an assistant can actually parse.\n\nScore the outside sources before you spend outreach time on them. Two things decide whether working a source is worth it; whether AI can read that site at all, and whether it already gets cited for questions in your category. Plenty of well-known publications block AI crawlers, and a correction there won't change an AI answer no matter who signs it. Chase the sites the assistants are actually reading.\n\n\u003cWorkflowCallout\n  title=\"Pull the citations behind the flagged answers\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"count\",\n    label: \"Sources feeding the flagged claim\",\n    value: 7,\n    target: 7,\n    caption: \"3 high placement value, 2 on your own domain\",\n  }}\n\u003e\n  Citation Intelligence classifies every source the assistants cite and filters to your tagged prompts, so you get the list behind the claim rather than the whole citation mix. Each source carries a placement value score, which sorts a correction list by what can move an answer instead of by brand recognition. Sources on your own domain get flagged separately, since those you can fix this week.\n\u003c/WorkflowCallout\u003e\n\n## What good looks like after a quarter\n\nSet expectations before the first report goes to legal, because the first month produces a baseline rather than a win, and that's the correct outcome.\n\nBy the end of a quarter, three things should exist.\n\n1. **A defensible number per claim.** Not a screenshot of one bad answer, but a surfacing rate with a trend behind it and a stated margin of error. That's what makes the topic discussable at a senior level instead of alarming.\n2. **A source list you keep.** The pages feeding each claim, scored and sorted. This doubles as the outreach and content plan for the next quarter, and it costs nothing extra to produce.\n3. **One closed loop.** Pick the most fixable claim, correct the source material, and watch the rate come down. One documented cause and effect is worth more internally than a year of monitoring with nothing attached to it.\n\nThe habit that keeps this working is small. Fifteen minutes a week, the same filtered view, the same four numbers. Most weeks nothing will have changed, which is the point. You're building the record that lets you answer the question at the top of this article with a date and a number instead of a guess.\n\nAnd add new claims as they come up. A product recall, a leadership change, a lawsuit, a rumor a sales rep keeps hearing on calls. Each one takes about five minutes to add to the list, and the earlier it goes in, the more of its history you'll have when someone finally asks about it.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"64:T5e87,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)o(n,a,{get:e[a],enumerable:!0})},r=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let s of p(e))!f.call(n,s)\u0026\u0026s!==a\u0026\u0026o(n,s,{get:()=\u003ee[s],enumerable:!(i=m(e,s))||i.enumerable});return n};var v=(n,e,a)=\u003e(a=n!=null?g(y(n)):{},r(e||!n||!n.__esModule?o(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003er(o({},\"__esModule\",{value:!0}),n);var h=w((T,l)=\u003e{l.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eu});var t=v(h());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||c(\"PullQuote\",!0),i||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Monitoring what AI says about your brand means asking the assistants a fixed set of questions on a schedule and keeping the answers, because an AI answer isn't posted anywhere for a listening tool to catch. The setup has five parts. Write down the specific claims you can't afford to have repeated. Turn them into a small set of reputational questions a worried customer would actually ask. Run those questions nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews. Read how often each claim surfaces, week over week. Then pull the citations behind those answers to find the pages feeding the claim. A claim that shows up in 18% of answers this week and 11% next week is fading. One that holds steady is being fed by a page you can find and work on. Expect four to ten weeks between fixing the source material and seeing the claim drop out, because the page has to be recrawled and start winning retrieval before anything changes.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the meeting that starts this workflow. Someone in legal or comms types the company name into an AI assistant, gets an answer with a line in it nobody approved, and asks the marketing team a simple question. How long has it been saying that, and how often?\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why the old monitoring stack misses this\"}),`\n`,(0,t.jsx)(e.p,{children:\"Brand monitoring was built for content that sits still. A post, an article, a review; each one has an author, a date, and a URL. You can count them, alert on them, and screenshot them for the deck.\"}),`\n`,(0,t.jsx)(e.p,{children:\"An AI answer has none of those properties. It gets generated for one person, in one session, and then it's gone. Nobody files it. Two people asking the same question can get different wording, and neither version exists anywhere you can search. So a claim can be in heavy rotation for months without producing a single alert in any listening tool you already pay for.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The other difference is reach. A bad review sits at the bottom of page three. An AI answer arrives as the answer, in one paragraph, with the assistant's confidence behind it. If a wrong claim about your safety record, your pricing, or your ownership is in that paragraph, it lands on every person who asks, and none of them see the source it came from unless they go looking.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"That's the gap this workflow closes. You can't wait for mentions to arrive, so you ask the questions yourself, on a schedule, and keep the record. It works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. List the claims\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Naming the exact statements you're watching for\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A short list legal signed off on\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Build the questions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Writing what a worried buyer would ask\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Questions that pull real answers, not ads\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Run them nightly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Putting the set on a daily cycle\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A trend line instead of a screenshot\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Read the surfacing rate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Tracking each claim over time\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Movement you can point at a cause\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Trace the sources\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Finding the pages behind the claim\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A short outreach list, ranked\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"List the claims you can't afford to have repeated\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with the list, not the tooling. Get comms, legal, and whoever owns the product story in one room and write down the specific statements that would cause a problem if an assistant repeated them.\"}),`\n`,(0,t.jsx)(e.p,{children:`Be specific. \"Negative sentiment\" isn't something you can track. \"The company was fined for the 2024 data breach\" is. So is \"their contracts are hard to cancel,\" \"the product is discontinued,\" and \"they were acquired last year,\" if that last one isn't true. The more exact the claim, the more useful everything downstream gets.`}),`\n`,(0,t.jsx)(e.p,{children:\"Write each one the way a customer would say it, not the way your lawyers would. Assistants generate plain language, so a claim phrased in legal terms will slip past a match that a plain-English version catches. If your matching is semantic rather than keyword based, a paraphrase still counts, which is what you want here; the same idea comes back in different words every night.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then write the counter-claims. These are the true statements you want showing up instead; the certification you hold, the policy you changed, the number that's actually correct. You're going to measure both. One list should be falling and the other should be rising, and having them side by side is what turns this from monitoring into a scoreboard.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Sort the list before you move on. Not everything on it deserves the same response.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Claim type\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Why it lands in AI answers\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"How fast to respond\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Factually wrong (dates, ownership, status)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"An old page still ranks and nothing newer corrects it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fast; publish the correction now\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"True but outdated (a fixed problem)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The coverage of the problem outlives the fix\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weeks; get the resolution documented\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"True and current\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The source material is accurate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Not a monitoring problem; it's a business one\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Competitor framing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"A comparison page tells the story their way\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weeks; answer the comparison yourself\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Category risk (an industry claim)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The assistant fills a gap with generic industry text\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Slow; it moves when your own pages get clearer\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Ask the questions a worried customer would ask\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now write the questions. This is the step people rush, and it's the one that decides whether the whole setup tells you anything.\"}),`\n`,(0,t.jsx)(e.p,{children:`The instinct is to ask about the claim directly. \"Was [brand] fined for a data breach?\" That question does need to be in the set, but on its own it's misleading, because you asked a leading question and the assistant went looking for material about a fine. Of course it found some.`}),`\n`,(0,t.jsx)(e.p,{children:\"The questions that matter are the ones a real person asks when they aren't thinking about your problem at all.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Decision questions.\"}),' \"Is [brand] safe to use for healthcare data?\" \"Should I sign a contract with [brand]?\" These are where a harmful claim does actual damage, because it surfaces in front of someone about to buy.']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category questions.\"}),` \"What's the most reliable option for [category]?\" If your claim shows up here, unprompted, that's the highest-severity version of the problem.`]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Direct questions.\"}),` \"What problems have people had with [brand]?\" The leading version. Keep a few; they tell you what material exists, which is useful even when the claim isn't surfacing anywhere else.`]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Comparison questions.\"}),` \"[Brand] vs [competitor].\" Assistants love these, and a rival's comparison page is often where a claim about you gets its cleanest phrasing.`]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Ten to twenty questions covers most brands. Resist the urge to write fifty. Every tracked question runs on a schedule and costs on its own, and a set nobody reads every week is worse than a small one somebody does.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Tag the whole set. One tag, something like compliance or brand safety, applied to every question in the group. That tag is what lets you filter every chart and export down to this view later without rebuilding the list from memory.\"}),`\n`,(0,t.jsx)(i,{title:\"Capture the claims as key messages, then tag the questions\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"checklist\",items:[{label:\"4 harmful claims captured as negative messages\",done:!0},{label:\"3 counter-messages captured as positive\",done:!0},{label:\"Paraphrase matching confirmed on a sample answer\",done:!0},{label:\"Legal sign-off on the claim list\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Key messages hold both lists, so the claims you're watching for and the corrections you want surfacing get measured the same way. Matching is semantic rather than keyword based, so a claim that comes back reworded still registers as the same message. Negative and positive messages chart together, which is how you see a correction taking the place of a claim rather than just sitting next to it.\"})}),`\n`,(0,t.jsx)(i,{title:\"Write reputational prompts and tag them\",page:\"Prompts Dashboard\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Prompts tagged brand-safety\",value:14,target:15,caption:\"6 decision, 4 category, 2 direct, 2 comparison\"},children:(0,t.jsx)(e.p,{children:\"Prompts are the questions your monitoring actually asks, and generation frameworks like buyer's journey and stakeholder help you cover the decision and category angles instead of only the obvious direct question. The tag carries through to every dashboard and export, so the brand-safety view is one filter away from the regular visibility reporting. Prompts written in the buyer's words tend to retrieve the same pages a buyer would land on.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Put the questions on a nightly schedule\"}),`\n`,(0,t.jsx)(e.p,{children:\"A spot check tells you almost nothing. Ask an assistant the same question three times and you can get three different answers, and any one of them could be the outlier. What you need is a rate, and a rate needs repetition.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So put the tagged set on a nightly cycle across the major assistants and let it c
2ollect. Within two weeks you have a baseline. Within six you have a trend, and the trend is the thing you'll actually report on.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Two setup details are worth getting right on day one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Run every assistant, not only the one your team uses. They retrieve different sources and land on different claims, and it's common for a claim to be heavy in one and absent in another. That split is a useful signal by itself; it usually means one specific source is carrying it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Check the margin of error before you promise anyone a number. Fourteen questions running nightly gives you a directional read, which is enough to say a claim is rising or falling. It's not enough to say it moved 2 points. Say the plain version to your stakeholders early and you won't have to walk anything back later.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you haven't set up general visibility tracking yet, do that first; the monitoring set works better as a filtered view of an established baseline than as a standalone project. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"Baselining a brand's AI visibility\"}),\" covers that setup end to end.\"]}),`\n`,(0,t.jsx)(i,{title:\"Start a General project over the tagged prompts\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"General project active\",done:!0},{label:\"14 prompts running nightly\",done:!0},{label:\"5 assistants covered\",done:!0},{label:\"Margin of error - Directional (8-15%)\",done:!0},{label:\"First 14-day baseline collected\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"A General project puts the brand-safety prompts on a nightly cadence and keeps the results together, so you get a daily read instead of waiting for the next report cycle. The Data Accuracy card tells you what the sample size supports before you quote a number to legal. Because the project is scoped by tag, adding a claim later means adding prompts, not rebuilding the setup.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-monitor-what-ai-says-about-your-brand-quote.webp\",quote:\"AI doesn't repeat what's true. It repeats what it can find, and most of what it can find about your brand was written by somebody else.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-monitor-what-ai-says-about-your-brand\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch how often the risky claims show up\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once the data is coming in, the discipline is to read the rate and ignore the individual answer. Someone on your team will find one bad response and forward it around. The response to that is to look up what percentage of answers carried the claim this week, and whether that percentage is going up or down.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set a weekly rhythm. Fifteen minutes, filtered to the tag, looking at four things.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Surfacing rate per claim.\"}),\" How often each claim appeared, as a share of the answers. This is your headline number, and it's the one that goes to legal.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Direction over four weeks.\"}),\" One week is noise. A month of decline is a result, and a month of climbing is a problem worth escalating before it gets bigger.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Which assistant carries it.\"}),\" A claim concentrated in one assistant is usually one source. A claim spread evenly across all of them is in the general material about your category, and that takes longer to move.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Counter-message pull-through.\"}),\" Are your true statements showing up? A claim that's falling while nothing replaces it means the assistant just stopped mentioning the topic. A claim that's falling while your correction rises means the work landed.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Mark the events on the timeline as you go. A statement, a policy change, a piece of coverage, a page you published. Six weeks later, when the line moves, you'll want to know what happened that week, and nobody remembers.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"One escalation rule is worth writing down in advance. Decide, now, what surfacing rate on a decision question triggers a bigger response, and what that response is. If a harmful claim hits your threshold, this monitoring workflow hands off to a faster one; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story\",children:\"running crisis communications when AI is repeating the story\"}),\" picks up from there.\"]}),`\n`,(0,t.jsx)(i,{title:\"Filter the visibility view to the brand-safety tag\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"trend\",label:\"Risky claim surfacing rate, 8 weeks\",series:[21,22,19,17,15,13,12,11],change:-10,suffix:\" pts\",lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"Filtering the metrics view to your tag gives you the brand-safety read on its own, with negative message surfacing and positive pull-through on the same timeline. Annotations sit on that timeline too, so a drop comes with the statement or the page that caused it attached. Per-platform breakdowns show whether a claim lives in one assistant or all of them, which changes what you do about it.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Trace the sources feeding the answers\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that turns monitoring into something you can act on, and it's the one most teams never get to.\"}),`\n`,(0,t.jsx)(e.p,{children:\"When an assistant makes a claim about you, it built that claim from pages it retrieved. Those pages are visible. Pull the citations from the answers where the claim appeared, and 
2you get a list of the material actually driving it. Almost always it's shorter than people expect. Three to eight sources carry most of a persistent claim.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The list usually sorts into four kinds of source.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"A single old article.\"}),\" One piece of coverage from years ago that still ranks for your brand and hasn't been updated since the situation changed. The most common cause of a stale claim, and the most fixable.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"An aggregator or a directory.\"}),\" Sites that scraped a fact once and never refreshed it. Low authority individually, but there are often several saying the same wrong thing, which reads as corroboration to a retrieval system.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"A competitor's comparison page.\"}),\" Written to be retrieved for exactly the question you're worried about, and doing its job well.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Your own site.\"}),\" This one surprises people. An outdated policy page, an old FAQ, a support doc nobody archived. If your own material is feeding the claim, that's the fastest fix available, and it's worth checking your pages are readable to assistants at all; the \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI readiness audit\"}),\" shows which of your pages an assistant can actually parse.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Score the outside sources before you spend outreach time on them. Two things decide whether working a source is worth it; whether AI can read that site at all, and whether it already gets cited for questions in your category. Plenty of well-known publications block AI crawlers, and a correction there won't change an AI answer no matter who signs it. Chase the sites the assistants are actually reading.\"}),`\n`,(0,t.jsx)(i,{title:\"Pull the citations behind the flagged answers\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"count\",label:\"Sources feeding the flagged claim\",value:7,target:7,caption:\"3 high placement value, 2 on your own domain\"},children:(0,t.jsx)(e.p,{children:\"Citation Intelligence classifies every source the assistants cite and filters to your tagged prompts, so you get the list behind the claim rather than the whole citation mix. Each source carries a placement value score, which sorts a correction list by what can move an answer instead of by brand recognition. Sources on your own domain get flagged separately, since those you can fix this week.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What good looks like after a quarter\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set expectations before the first report goes to legal, because the first month produces a baseline rather than a win, and that's the correct outcome.\"}),`\n`,(0,t.jsx)(e.p,{children:\"By the end of a quarter, three things should exist.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A defensible number per claim.\"}),\" Not a screenshot of one bad answer, but a surfacing rate with a trend behind it and a stated margin of error. That's what makes the topic discussable at a senior level instead of alarming.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A source list you keep.\"}),\" The pages feeding each claim, scored and sorted. This doubles as the outreach and content plan for the next quarter, and it costs nothing extra to produce.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"One closed loop.\"}),\" Pick the most fixable claim, correct the source material, and watch the rate come down. One documented cause and effect is worth more internally than a year of monitoring with nothing attached to it.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The habit that keeps this working is small. Fifteen minutes a week, the same filtered view, the same four numbers. Most weeks nothing will have changed, which is the point. You're building the record that lets you answer the question at the top of this article with a date and a number instead of a guess.\"}),`\n`,(0,t.jsx)(e.p,{children:\"And add new claims as they come up. A product recall, a leadership change, a lawsuit, a rumor a sales rep keeps hearing on calls. Each one takes about five minutes to add to the list, and the earlier it goes in, the more of its history you'll have when someone finally asks about it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"1a:[\"$\",\"$L10\",\"how-to-monitor-what-ai-says-about-your-brand\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$63\",\"title\":\"How to Monitor What AI Says About Your Brand\",\"date\":\"2026-09-06\",\"image\":\"/images/blog/how-to-monitor-what-ai-says-about-your-brand.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Legal and comms want to know when an AI assistant says something harmful about your brand, and where it came from. Social listening won't tell you; AI answers aren't posts and nobody reports them. Here's the monitoring setup that catches a risky claim early, shows how often it surfaces, and traces it back to the sources feeding it.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"Brand Safety\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How is monitoring AI answers different from social listening?\",\"answer\":\"Social listening watches things people post in public, where every mention has an author, a timestamp, and a link. An AI answer has none of that. It's generated once, for one person, and then it's gone. So you can't wait for a mention to arrive; you have to ask the questions yourself, on a schedule, and record what comes back.\"},{\"question\":\"Will we get an alert the moment AI says something harmful?\",\"answer\":\"Not today, and you should plan around that. Most setups, ours included, run the questions on a nightly cycle and show you the change the next morning. That's fast enough for a claim that builds over weeks, which is most of them. For a story moving in hours, a person still has to watch it.\"},{\"question\":\"How many questions do we need to track for this?\",\"answer\":\"Ten to twenty is the usual range. You want the questions a worried customer, a reporter, or a procurement reviewer would type, not a long list of keyword variations. Every tracked question runs on its own schedule and costs on its own, so a tight set you read every week beats a big one nobody looks at.\"},{\"question\":\"If an AI assistant repeats something false about us, can we get it removed?\",\"answer\":\"You can't edit the answer. What you can change is the material behind it. Assistants build answers from pages they retrieve, so the work is correcting or displacing those pages, and publishing something clearer that answers the same question better. It's slower than a takedown and it's the part you control.\"},{\"question\":\"How long does it take for a correction to show up in AI answers?\",\"answer\":\"Usually four to ten weeks. The page has to be recrawled, then it has to start winning retrieval for the question, then the claim has to fade out of the answers. Watching the surfacing rate week over week tells you it's working long before the claim disappears.\"}],\"howTo\":{\"name\":\"How to monitor what AI says about your brand\",\"description\":\"A step-by-step monitoring workflow for in-house brand, comms, and legal teams that catches harmful or off-limits claims in AI answers, measures how often they surface, and traces them back to the sources feeding them.\",\"steps\":[{\"name\":\"List the claims you can't afford to have repeated\",\"text\":\"Write the specific harmful or off-limits statements as tracked claims, in the words a customer would use, so a paraphrase still gets caught.\"},{\"name\":\"Ask the questions a worried customer would ask\",\"text\":\"Build a small set of reputational questions covering the issue, the category risk, and the should-we-still-buy decision, and tag them so every view can filter to them.\"},{\"name\":\"Put the questions on a nightly schedule\",\"text\":\"Run the tagged questions every night across the major assistants so you have a daily read instead of a quarterly spot check.\"},{\"name\":\"Watch how often the risky claims show up\",\"text\":\"Read the surfacing rate for each claim over time rather than reacting to a single answer, and mark the events that move it.\"},{\"name\":\"Trace the sources feeding the answers\",\"text\":\"Find the pages the assistants cite when the claim appears, score them, and work the ones that carry real weight.\"}]},\"_meta\":{\"filePath\":\"how-to-monitor-what-ai-says-about-your-brand.mdx\",\"fileName\":\"how-to-monitor-what-ai-says-about-your-brand.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-monitor-what-ai-says-about-your-brand\"},\"body\":\"$64\",\"locale\":\"en\",\"path\":\"how-to-monitor-what-ai-says-about-your-brand\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"65:T47c0,"])</script>
2<script>self.__next_f.push([1,"To build executive visibility in AI answers, track the person as their own subject rather than as part of the company. Give them a bio, a current title, and the subject areas they speak on, then measure two numbers separately; identity accuracy, meaning how correctly AI describes them, and share of voice against their peers, meaning how often it names them at all. Run 15 to 25 person-specific prompts nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, and compare the executive against other individuals in the same conversations rather than against rival companies.\n\nMost executives start near 80% identity accuracy with two or three outdated facts still circulating, usually a former title or an employer that got acquired. The sources feeding those errors are predictable; LinkedIn, Crunchbase, conference speaker pages, podcast show notes, and press releases from a previous role. Correcting those pages often moves the accuracy score within a few weeks, as soon as they get recrawled. Getting named more often takes one to two quarters, because new interviews, quotes, and expert roundups have to exist before AI can repeat them.\n\nHere's the moment this workflow starts. A reporter is prepping for an interview, an investor is doing quick diligence, or a candidate is deciding whether to take the call. All three type your executive's name into an AI assistant first, and whatever comes back sets the tone before anybody talks to anybody.\n\n## Why the company number says nothing about the person\n\nBrand visibility and person visibility run on different fuel. When an assistant answers a question about your company, it pulls the website, the product pages, review sites, and trade coverage. When it answers a question about a person, it pulls bios, speaker pages, podcast show notes, conference agendas, LinkedIn, quotes inside news stories, and any roundup that lists people rather than companies.\n\nThose source pools barely overlap. So a company with strong AI visibility can have a CEO the assistants describe in one vague sentence, and the brand dashboard will look fine the entire time.\n\nThe other thing that separates people from brands is the failure mode. Brands mostly suffer from absence; AI doesn't mention them enough. People suffer from wrongness. The assistant does answer, and the answer contains a title from two jobs ago, a company that got acquired, or a completely different person who shares the name. That's a comms problem in a way that a low share of voice number is not, because the wrong answer is being repeated confidently to people who have no reason to doubt it.\n\nSo executive visibility has two jobs, and they need separate measurement. Is what AI says about this person correct, and is this person in the conversation at all.\n\nThe rest of this guide is the workflow that answers both. It works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Set up the person | Tracking the executive as their own subject | A results line that isn't the company's |\n| 2. Score the description | Checking what AI already says about them | Errors sorted into three named types |\n| 3. Build the peer set | Listing the people AI names alongside them | A rank among individuals, not companies |\n| 4. Write person prompts | Covering identity, expertise, and comparison | Questions a reporter would actually type |\n| 5. Run and read | Nightly runs with interviews annotated | Accuracy and share of voice moving together |\n\n## Set the executive up as their own tracked subject\n\nStart by treating the person as a subject in their own right, with their own definition. A person needs different facts than a company does, and those facts are what every later measurement gets scored against.\n\nFive things do most of the work.\n\n- **Full name plus the variants.** Nicknames, maiden names, a middle initial that shows up on formal bios, and the shortened form the trade press uses. If the tracking only matches one spelling, half the mentions vanish.\n- **Current title and employer.** Stated plainly, because this is the fact AI gets wrong most often.\n- **The subject areas they speak on.** Not the company's product categories; the topics this person is quoted about. Those two lists are usually close but not identical, and the difference is where expertise questions live.\n- **A short factual bio.** Career history in the order it happened, so an assistant repeating an old role can be scored as wrong rather than as merely different.\n- **The canonical page.** Whichever URL you'd want AI to treat as the source of truth about them. A company leadership page beats a personal site in most cases, because it's the one that gets crawled and updated.\n\nOne decision to make early. If the person is closely tied to the brand, you still want them tracked separately rather than folded in. Keeping them apart is what lets you say something specific later, like the executive's visibility grew while the company's held flat, which is exactly the claim a spokesperson program is supposed to produce.\n\n\u003cWorkflowCallout\n  title=\"Add the executive as a person subject\"\n  page=\"Brand Snapshot\"\n  href=\"/docs/dashboards/brand-snapshot\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Jordan Reyes added as a person subject\", done: true },\n      { label: \"Name variants and former surname added\", done: true },\n      { label: \"Title set to CEO, Acme Outdoor Co.\", done: true },\n      { label: \"Subject areas set to outdoor retail and supply chain\", done: true },\n      { label: \"Canonical leadership page linked\", done: false },\n    ],\n  }}\n\u003e\n  A person subject holds the bio, title, name variants, and topic list the same way a brand snapshot holds a company description, and it gets its own prompts, peers, and results. Because it sits beside the company rather than 
2inside it, the executive's numbers never average into the brand's, and both can be read on the same screen. The snapshot facts double as the answer key that identity scoring runs against.\n\u003c/WorkflowCallout\u003e\n\n## Measure how accurately AI describes them today\n\nNow find out what the assistants already say. This is the first read, and it's usually the most uncomfortable meeting of the project.\n\nScore the description rather than counting mentions. For a person, accuracy comes first; a frequently named executive who gets described wrong is in worse shape than a rarely named one who gets described right, because the wrong version is the one traveling.\n\nErrors sort into a few recognizable types, and the type decides the fix. Three of them cover most of what you'll find.\n\n| Error type | What it looks like | Usual fix |\n| :--- | :--- | :--- |\n| Outdated fact | A former title, a previous employer, an old company name | Update the sources AI reads most, then wait for recrawl |\n| Missing fact | The assistant answers thinly or declines to say much | Create the pages and coverage that supply the fact |\n| Same-name confusion | Details from a different person with the same name | Strengthen disambiguating context; title, employer, location, field |\n| Stale framing | Facts correct, but the positioning is two years old | Get current framing into interviews and bios |\n\nRead the answers themselves, not only the score. The exact sentence AI produces is the thing your reporter will see, and it tells you which source it came from. Trace two or three of them and you'll usually find one page doing most of the damage; an old conference bio, an unmaintained speaker profile, a press release from a prior role that still outranks everything newer.\n\nAlso check platform by platform. Accuracy varies more between assistants for people than for brands, because each one leans on a different mix of sources. A spread like ChatGPT at 88, Claude at 86, Gemini at 74, and Perplexity at 71 on the same executive is ordinary, and the low platforms usually point straight at a source gap rather than at a different opinion.\n\n\u003cWorkflowCallout\n  title=\"Read Identity Accuracy for the person\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"score\",\n    label: \"Identity Accuracy for Jordan Reyes\",\n    value: 81,\n    target: 90,\n  }}\n\u003e\n  Identity Accuracy is the person version of brand consistency; it scores what each assistant says about the individual against the facts in their snapshot, per platform, with and without browsing. The card separates outdated facts from same-name confusion, so a score of 81 comes with three outdated facts and one confusion attached rather than as a bare number. Drilling into a flag shows the answer text and the source behind it, which is what makes the correction list specific.\n\u003c/WorkflowCallout\u003e\n\n## Build a peer set instead of a competitor list\n\nThe instinct here is to copy the company's competitor list over. Resist it. Rival companies are the wrong comparison for a person, and they produce a number nobody can act on.\n\nPeers are individuals. Other executives in the category, founders, analysts who get quoted constantly, academics who own a subtopic, and the handful of people who show up in every \"leaders to watch\" list. These are the names your executive is actually competing with for a quote, a panel seat, or a podcast slot.\n\nFind them from the answers rather than from memory. Run a few of your expertise questions manually and write down every person named. The list will surprise you at least once, usually with an analyst or an operator nobody in the comms team was tracking, and that person is the reason your executive keeps missing roundups.\n\nPeers have no website, which changes how you track them. Match on the name and its variants, not a domain, and add the aliases the trade press uses. A peer who publishes under a shortened first name will look half as visible as they are if you only match the formal one.\n\n\u003cWorkflowCallout\n  title=\"Track peers, not rival brands\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Who the comparison runs against\",\n    before: \"5 rival companies\",\n    after: \"4 named individuals\",\n    tone: \"positive\",\n    caption: \"Peer rank 3 of 5, up from 4 last month\",\n  }}\n\u003e\n  On a person subject the competitor list becomes a peer list, so entries are individuals with names and aliases instead of brands with domains. Auto-discovery seeds it from the people AI already names in the same answers, which surfaces the analysts and operators a comms team wouldn't have listed. Share of voice then reads as a rank among people, which is the comparison an executive program is actually judged on.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-build-executive-visibility-in-ai-answers-quote.webp\"\n  quote=\"AI describes your executive from whatever it can find, and a bio from two jobs ago is still something it can find.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-build-executive-visibility-in-ai-answers\"\n/\u003e\n\n## Write prompts people actually ask about a person\n\nPerson prompts are not company prompts with a name swapped in. People ask about people differently, and the phrasing decides which sources get retrieved.\n\nThree families cover almost everything worth tracking.\n\n**Identity questions.** Who is this person, what do they do, where do they work, what are they known for. These feel too basic to track, and they're the most important ones in the set, because they're what a reporter or a candidate types first. They're also where outdated facts surface.\n\n**Expertise questions.** Questions in the person's subject area that don't mention them at all. Who are the leading voices on this topic, who should we talk to about this problem, which executives are doing interesting work here. These measure whether the person gets pulled into the conversation on merit, and they're the ones a spokesperson program is trying to win.\n\n**Comparison and list questions.** Named comparisons against a peer, plus the roundup shapes;
2 top executives in the category, leaders to watch, who to follow on this subject. These map directly to the earned-media targets worth pitching.\n\nA working split for a 23-prompt set is roughly 8 identity, 11 expertise, and 4 peer comparison. Weight the set toward expertise questions once identity is clean. Identity questions confirm the facts are right, which matters early and then stops changing much. Expertise questions are where growth shows up, because getting named in an answer you weren't part of is what visibility work actually buys.\n\nTag the whole set with the person's name. That tag is what lets the executive's numbers travel into a comms report without re-deriving which prompts belong to whom, the same tagging habit that makes [campaign visibility tracking](/blog/how-to-track-campaign-visibility-in-ai-answers) reportable month to month.\n\n\u003cWorkflowCallout\n  title=\"Generate and tag the person's prompt set\"\n  page=\"Prompts Dashboard\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Prompts tracked for Jordan Reyes\",\n    value: 23,\n    target: 25,\n    caption: \"8 identity, 11 expertise, 4 peer comparison\",\n  }}\n\u003e\n  Prompt generation for a person subject builds from the bio and subject areas rather than from product categories, so the starting set already covers identity, expertise, and peer comparison shapes. Every prompt carries tags through to metrics and exports, which is what makes an executive-only view possible for a client or a board deck. Comparison prompts are what turn a peer from a name in a list into a head-to-head line.\n\u003c/WorkflowCallout\u003e\n\n## Run it nightly and read the trend\n\nA single read tells you where the person stands. A nightly run tells you whether anything you did worked, and that's the difference between a slide and a program.\n\nPut the set inside a project with a start date, so there's a defined before. Then annotate everything the comms team does; interviews, keynote appearances, podcast recordings, contributed articles, the day the leadership bio finally got updated. AI answers change days or weeks after the thing that caused them, and without those markers on the timeline you'll be guessing at attribution forever.\n\nRead two lines, not one.\n\n**Identity Accuracy** should move first and move fast. Correcting the sources behind an outdated fact often shows up within a few weeks, as soon as those pages get recrawled. If accuracy is flat after a month, the correction probably landed on a page AI doesn't read; check which source the flagged answer actually cited.\n\n**Share of voice among peers** moves slowly and in steps. It sits still, then jumps when a new interview or roundup gets picked up. A climb from 18% to 22.6% over two months, with a peer rank moving from 4th to 3rd, is a realistic quarter. Watching the slope is the read worth trusting; watching it week to week just measures noise.\n\nThree patterns come up enough to name.\n\n- **Accuracy up, share of voice flat.** The facts are fixed and the person still isn't in the conversation. The work is earned media now, not corrections. Pitch targets come from the expertise prompts your peers are winning; scoring those outlets first is the same exercise as [building a pitch list AI can see](/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see).\n- **Share of voice up, accuracy down.** New coverage is landing with wrong details in it. Fix the bio the journalists are copying from, because they're all copying from the same one.\n- **Both flat for a quarter.** Usually a source problem rather than an effort problem. The person has no page an assistant considers authoritative, and everything else follows from that.\n\n\u003cWorkflowCallout\n  title=\"Track the person program as a project\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"trend\",\n    label: \"Share of voice among peers\",\n    series: [18.4, 19.1, 18.7, 20.2, 20.9, 21.4, 22.0, 22.6],\n    change: 3.1,\n    suffix: \"%\",\n  }}\n\u003e\n  A project runs the person's tagged prompts nightly from a fixed start date, so every later number has a before to sit against. Annotations for interviews, keynotes, and bio updates land on the same timeline as the metrics, which is how a jump gets a cause attached instead of a theory. Exports come out filtered to the person, which is the deck a comms lead brings to the executive rather than a dashboard tour.\n\u003c/WorkflowCallout\u003e\n\n## What the first 90 days should produce\n\nSet expectations before the first review, because an executive visibility program produces its most useful output early and its most impressive output late.\n\nBy the end of a quarter, three things are reasonable to promise.\n\n1. **A corrected record.** Every outdated fact, missing fact, and same-name confusion found, traced to a source, and fixed where the source was yours to fix. This is the fastest win in the workflow and the one an executive feels immediately.\n2. **A peer map.** Who AI names in this person's conversations, how often, and which outlets keep producing those mentions. That doubles as the pitch list for the next two quarters.\n3. **A trend line with causes on it.** Not a big number yet. A chart where each move has an annotation next to it, so the next quarter's plan is built on what worked rather than on what everyone remembers.\n\nOne habit worth keeping. Rerun the identity check after any change to the person's role, because a promotion, a title change, or a company rename resets the accuracy clock; every source that carries the old version becomes wrong on the same day. Comms teams that already handle this well treat it like a small [rebrand](/blog/how-to-track-a-rebrand-in-ai-answers), with the old title kept as a known alias and the new one pushed to the pages AI reads most.\n\nAnd keep the company line on the executive's chart. When both move together, something happened to the brand; when only the person moves, the spokesperson program did it. That distinction is what makes the work defensible in a room where somebody always asks whether any of it mattered.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"66:T5e8f,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of g(e))!y.call(n,r)\u0026\u0026r!==a\u0026\u0026i(n,r,{get:()=\u003ee[r],enumerable:!(s=m(e,r))||s.enumerable});return n};var v=(n,e,a)=\u003e(a=n!=null?u(f(n)):{},o(e||!n||!n.__esModule?i(a,\"default\",{value:n,enumerable:!0}):a,n)),x=n=\u003eo(i({},\"__esModule\",{value:!0}),n);var l=w((T,h)=\u003e{h.exports=_jsx_runtime});var k={};b(k,{default:()=\u003ep});var t=v(l());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:a,WorkflowCallout:s}=e;return a||c(\"PullQuote\",!0),s||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To build executive visibility in AI answers, track the person as their own subject rather than as part of the company. Give them a bio, a current title, and the subject areas they speak on, then measure two numbers separately; identity accuracy, meaning how correctly AI describes them, and share of voice against their peers, meaning how often it names them at all. Run 15 to 25 person-specific prompts nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, and compare the executive against other individuals in the same conversations rather than against rival companies.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most executives start near 80% identity accuracy with two or three outdated facts still circulating, usually a former title or an employer that got acquired. The sources feeding those errors are predictable; LinkedIn, Crunchbase, conference speaker pages, podcast show notes, and press releases from a previous role. Correcting those pages often moves the accuracy score within a few weeks, as soon as they get recrawled. Getting named more often takes one to two quarters, because new interviews, quotes, and expert roundups have to exist before AI can repeat them.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the moment this workflow starts. A reporter is prepping for an interview, an investor is doing quick diligence, or a candidate is deciding whether to take the call. All three type your executive's name into an AI assistant first, and whatever comes back sets the tone before anybody talks to anybody.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why the company number says nothing about the person\"}),`\n`,(0,t.jsx)(e.p,{children:\"Brand visibility and person visibility run on different fuel. When an assistant answers a question about your company, it pulls the website, the product pages, review sites, and trade coverage. When it answers a question about a person, it pulls bios, speaker pages, podcast show notes, conference agendas, LinkedIn, quotes inside news stories, and any roundup that lists people rather than companies.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Those source pools barely overlap. So a company with strong AI visibility can have a CEO the assistants describe in one vague sentence, and the brand dashboard will look fine the entire time.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The other thing that separates people from brands is the failure mode. Brands mostly suffer from absence; AI doesn't mention them enough. People suffer from wrongness. The assistant does answer, and the answer contains a title from two jobs ago, a company that got acquired, or a completely different person who shares the name. That's a comms problem in a way that a low share of voice number is not, because the wrong answer is being repeated confidently to people who have no reason to doubt it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So executive visibility has two jobs, and they need separate measurement. Is what AI says about this person correct, and is this person in the conversation at all.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The rest of this guide is the workflow that answers both. It works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Set up the person\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Tracking the executive as their own subject\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A results line that isn't the company's\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Score the description\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking what AI already says about them\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Errors sorted into three named types\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Build the peer set\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Listing the people AI names alongside them\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A rank among individuals, not companies\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Write person prompts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Covering identity, expertise, and comparison\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Questions a reporter would actually type\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Run and read\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Nightly runs with interviews annotated\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Accuracy and share of voice moving together\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Set the executive up as their own tracked subject\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start by treating the person as a subject in their own right, with their own definition. A person needs different facts than a company does, and those facts are what every later measurement gets scored against.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Five things do most of the work.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Full name plus the variants.\"}),\" Nicknames, maiden names, a middle initial that shows up on formal bios, and the shortened form the trade press uses. If the tracking only matches one spelling, half the mentions vanish.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Current title and employer.\"}),\" Stated plainly, because this is the fact AI gets wrong most often.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The subject areas they speak on.\"}),\" Not the company's product categories; the topics this person is quoted about. Those two lists are usually close but not identical, and the difference is where expertise questions live.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A short factual bio.\"}),\" Career history in the order it happened, so an assistant repeating an old role can be scored as wrong rather than as merely different.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The canonical page.\"}),\" Whichever URL you'd want AI to treat as the source of truth about them. A company leadership page beats a personal site in most cases, because it's the one that gets crawled and updated.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"One decision to make early. If the person is closely tied to the brand, you still want them tracked separately rather than folded in. Keeping them apart is what lets you say something specific later, like the executive's visibility grew while the company's held flat, which is exactly the claim a spokesperson program is supposed to produce.\"}),`\n`,(0,t.jsx)(s,{title:\"Add the executive as a person subject\",page:\"Brand Snapshot\",href:\"/docs/dashboards/brand-snapshot\",signal:{kind:\"checklist\",items:[{label:\"Jordan Reyes added as a person subject\",done:!0},{label:\"Name variants and former surname added\",done:!0},{label:\"Title set to CEO, Acme Outdoor Co.\",done:!0},{label:\"Subject areas set to outdoor retail and supply chain\",done:!0},{label:\"Canonical leadership page linked\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"A person subject holds the bio, title, name variants, and topic list the same way a brand snapshot holds a company description, and it gets its own prompts, peers, and results. Because it sits beside the company rather than 
2inside it, the executive's numbers never average into the brand's, and both can be read on the same screen. The snapshot facts double as the answer key that identity scoring runs against.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Measure how accurately AI describes them today\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now find out what the assistants already say. This is the first read, and it's usually the most uncomfortable meeting of the project.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Score the description rather than counting mentions. For a person, accuracy comes first; a frequently named executive who gets described wrong is in worse shape than a rarely named one who gets described right, because the wrong version is the one traveling.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Errors sort into a few recognizable types, and the type decides the fix. Three of them cover most of what you'll find.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Error type\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it looks like\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Usual fix\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Outdated fact\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A former title, a previous employer, an old company name\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Update the sources AI reads most, then wait for recrawl\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Missing fact\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The assistant answers thinly or declines to say much\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Create the pages and coverage that supply the fact\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Same-name confusion\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Details from a different person with the same name\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Strengthen disambiguating context; title, employer, location, field\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Stale framing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Facts correct, but the positioning is two years old\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Get current framing into interviews and bios\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Read the answers themselves, not only the score. The exact sentence AI produces is the thing your reporter will see, and it tells you which source it came from. Trace two or three of them and you'll usually find one page doing most of the damage; an old conference bio, an unmaintained speaker profile, a press release from a prior role that still outranks everything newer.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Also check platform by platform. Accuracy varies more between assistants for people than for brands, because each one leans on a different mix of sources. A spread like ChatGPT at 88, Claude at 86, Gemini at 74, and Perplexity at 71 on the same executive is ordinary, and the low platforms usually point straight at a source gap rather than at a different opinion.\"}),`\n`,(0,t.jsx)(s,{title:\"Read Identity Accuracy for the person\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"score\",label:\"Identity Accuracy for Jordan Reyes\",value:81,target:90},children:(0,t.jsx)(e.p,{children:\"Identity Accuracy is the person version of brand consistency; it scores what each assistant says about the individual against the facts in their snapshot, per platform, with and without browsing. The card separates outdated facts from same-name confusion, so a score of 81 comes with three outdated facts and one confusion attached rather than as a bare number. Drilling into a flag shows the answer text and the source behind it, which is what makes the correction list specific.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Build a peer set instead of a competitor list\"}),`\n`,(0,t.jsx)(e.p,{children:\"The instinct here is to copy the company's competitor list over. Resist it. Rival companies are the wrong comparison for a person, and they produce a number nobody can act on.\"}),`\n`,(0,t.jsx)(e.p,{children:'Peers are individuals. Other executives in the category, founders, analysts who get quoted constantly, academics who own a subtopic, and the handful of people who show up in every \"leaders to wat
2ch\" list. These are the names your executive is actually competing with for a quote, a panel seat, or a podcast slot.'}),`\n`,(0,t.jsx)(e.p,{children:\"Find them from the answers rather than from memory. Run a few of your expertise questions manually and write down every person named. The list will surprise you at least once, usually with an analyst or an operator nobody in the comms team was tracking, and that person is the reason your executive keeps missing roundups.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Peers have no website, which changes how you track them. Match on the name and its variants, not a domain, and add the aliases the trade press uses. A peer who publishes under a shortened first name will look half as visible as they are if you only match the formal one.\"}),`\n`,(0,t.jsx)(s,{title:\"Track peers, not rival brands\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"beforeAfter\",label:\"Who the comparison runs against\",before:\"5 rival companies\",after:\"4 named individuals\",tone:\"positive\",caption:\"Peer rank 3 of 5, up from 4 last month\"},children:(0,t.jsx)(e.p,{children:\"On a person subject the competitor list becomes a peer list, so entries are individuals with names and aliases instead of brands with domains. Auto-discovery seeds it from the people AI already names in the same answers, which surfaces the analysts and operators a comms team wouldn't have listed. Share of voice then reads as a rank among people, which is the comparison an executive program is actually judged on.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-build-executive-visibility-in-ai-answers-quote.webp\",quote:\"AI describes your executive from whatever it can find, and a bio from two jobs ago is still something it can find.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-build-executive-visibility-in-ai-answers\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Write prompts people actually ask about a person\"}),`\n`,(0,t.jsx)(e.p,{children:\"Person prompts are not company prompts with a name swapped in. People ask about people differently, and the phrasing decides which sources get retrieved.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Three families cover almost everything worth tracking.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Identity questions.\"}),\" Who is this person, what do they do, where do they work, what are they known for. These feel too basic to track, and they're the most important ones in the set, because they're what a reporter or a candidate types first. They're also where outdated facts surface.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Expertise questions.\"}),\" Questions in the person's subject area that don't mention them at all. Who are the leading voices on this topic, who should we talk to about this problem, which executives are doing interesting work here. These measure whether the person gets pulled into the conversation on merit, and they're the ones a spokesperson program is trying to win.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Comparison and list questions.\"}),\" Named comparisons against a peer, plus the roundup shapes; top executives in the category, leaders to watch, who to follow on this subject. These map directly to the earned-media targets worth pitching.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"A working split for a 23-prompt set is roughly 8 identity, 11 expertise, and 4 peer comparison. Weight the set toward expertise questions once identity is clean. Identity questions confirm the facts are right, which matters early and then stops changing much. Expertise questions are where growth shows up, because getting named in an answer you weren't part of is what visibility work actually buys.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Tag the whole set with the person's name. That tag is what lets the executive's numbers travel into a comms report without re-deriving which prompts belong to whom, the same tagging habit that makes \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-campaign-visibility-in-ai-answers\",children:\"campaign visibility tracking\"}),\" reportable month to month.\"]}),`\n`,(0,t.jsx)(s,{title:\"Generate and tag the person's prompt set\",page:\"Prompts Dashboard\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Prompts tracked for Jordan Reyes\",value:23,target:25,caption:\"8 identity, 11 expertise, 4 peer comparison\"},children:(0,t.jsx)(e.p,{children:\"Prompt generation for a person subject builds from the bio and subject areas rather than from product categories, so the starting set already covers identity, expertise, and peer comparison shapes. Every prompt c
2arries tags through to metrics and exports, which is what makes an executive-only view possible for a client or a board deck. Comparison prompts are what turn a peer from a name in a list into a head-to-head line.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Run it nightly and read the trend\"}),`\n`,(0,t.jsx)(e.p,{children:\"A single read tells you where the person stands. A nightly run tells you whether anything you did worked, and that's the difference between a slide and a program.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Put the set inside a project with a start date, so there's a defined before. Then annotate everything the comms team does; interviews, keynote appearances, podcast recordings, contributed articles, the day the leadership bio finally got updated. AI answers change days or weeks after the thing that caused them, and without those markers on the timeline you'll be guessing at attribution forever.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Read two lines, not one.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Identity Accuracy\"}),\" should move first and move fast. Correcting the sources behind an outdated fact often shows up within a few weeks, as soon as those pages get recrawled. If accuracy is flat after a month, the correction probably landed on a page AI doesn't read; check which source the flagged answer actually cited.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Share of voice among peers\"}),\" moves slowly and in steps. It sits still, then jumps when a new interview or roundup gets picked up. A climb from 18% to 22.6% over two months, with a peer rank moving from 4th to 3rd, is a realistic quarter. Watching the slope is the read worth trusting; watching it week to week just measures noise.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Three patterns come up enough to name.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Accuracy up, share of voice flat.\"}),\" The facts are fixed and the person still isn't in the conversation. The work is earned media now, not corrections. Pitch targets come from the expertise prompts your peers are winning; scoring those outlets first is the same exercise as \",(0,t.jsx)(e.a,{href:\"/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see\",children:\"building a pitch list AI can see\"}),\".\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Share of voice up, accuracy down.\"}),\" New coverage is landing with wrong details in it. Fix the bio the journalists are copying from, because they're all copying from the same one.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Both flat for a quarter.\"}),\" Usually a source problem rather than an effort problem. The person has no page an assistant considers authoritative, and everything else follows from that.\"]}),`\n`]}),`\n`,(0,t.jsx)(s,{title:\"Track the person program as a project\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"trend\",label:\"Share of voice among peers\",series:[18.4,19.1,18.7,20.2,20.9,21.4,22,22.6],change:3.1,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"A project runs the person's tagged prompts nightly from a fixed start date, so every later number has a before to sit against. Annotations for interviews, keynotes, and bio updates land on the same timeline as the metrics, which is how a jump gets a cause attached instead of a theory. Exports come out filtered to the person, which is the deck a comms lead brings to the executive rather than a dashboard tour.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What the first 90 days should produce\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set expectations before the first review, because an executive visibility program produces its most useful output early and its most impressive output late.\"}),`\n`,(0,t.jsx)(e.p,{children:\"By the end of a quarter, three things are reasonable to promise.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A c
2orrected record.\"}),\" Every outdated fact, missing fact, and same-name confusion found, traced to a source, and fixed where the source was yours to fix. This is the fastest win in the workflow and the one an executive feels immediately.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A peer map.\"}),\" Who AI names in this person's conversations, how often, and which outlets keep producing those mentions. That doubles as the pitch list for the next two quarters.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A trend line with causes on it.\"}),\" Not a big number yet. A chart where each move has an annotation next to it, so the next quarter's plan is built on what worked rather than on what everyone remembers.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"One habit worth keeping. Rerun the identity check after any change to the person's role, because a promotion, a title change, or a company rename resets the accuracy clock; every source that carries the old version becomes wrong on the same day. Comms teams that already handle this well treat it like a small \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-a-rebrand-in-ai-answers\",children:\"rebrand\"}),\", with the old title kept as a known alias and the new one pushed to the pages AI reads most.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"And keep the company line on the executive's chart. When both move together, something happened to the brand; when only the person moves, the spokesperson program did it. That distinction is what makes the work defensible in a room where somebody always asks whether any of it mattered.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return x(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"1b:[\"$\",\"$L10\",\"how-to-build-executive-visibility-in-ai-answers\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$65\",\"title\":\"How to Build Executive Visibility in AI Answers\",\"date\":\"2026-09-05\",\"image\":\"/images/blog/how-to-build-executive-visibility-in-ai-answers.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"When a reporter, an investor, or a candidate asks an AI assistant who your CEO is, the answer comes from whatever the model can find about them. Here's the workflow comms teams use to track an executive as their own subject, measure how accurately AI describes them, compare them against real peers instead of rival companies, and watch the number move.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Executive Communications\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Why track an executive separately from the company?\",\"answer\":\"Because AI answers about a person are built from different sources than answers about a brand. A person's answer leans on bios, interviews, podcast appearances, conference pages, and news quotes, while the company answer leans on the website and trade press. A well-covered company can have a nearly invisible CEO, and the brand number will never show it.\"},{\"question\":\"What does AI usually get wrong about executives?\",\"answer\":\"Three things, in order of frequency. Outdated facts like a former title or a previous employer; missing facts, where the assistant just declines to say much; and same-name confusion, where it blends your executive with someone else who shares the name. All three are fixable, but only once you can see which one you have.\"},{\"question\":\"How many prompts does one executive need?\",\"answer\":\"Most comms teams land between 15 and 25. Cover identity questions, expertise questions in the person's subject area, and a few peer comparisons. Anything past that tends to repeat itself, and every tracked prompt runs on its own schedule.\"},{\"question\":\"Who counts as a peer for an executive?\",\"answer\":\"Other individuals AI names in the same conversations; fellow executives, analysts, founders, and academics in the same subject area. Not the rival companies. A comparison against companies tells you about the brand; a comparison against people tells you whether your spokesperson is in the conversation.\"},{\"question\":\"How long until executive visibility improves?\",\"answer\":\"Plan on one to two quarters. Fixing wrong or outdated facts moves the accuracy score fastest, sometimes in a few weeks once corrected sources get recrawled. Getting named more often takes longer, because it depends on new interviews, quotes, and expert roundups existing before AI can repeat them.\"}],\"howTo\":{\"name\":\"How to build executive visibility in AI answers\",\"description\":\"A step-by-step workflow for PR and communications teams that tracks an executive or spokesperson as their own subject, measures how accurately AI describes them, compares them to real peers, and proves whether visibility work is landing.\",\"steps\":[{\"name\":\"Set the executive up as their own tracked subject\",\"text\":\"Track the person separately from the company, with their own bio, title, and subject areas, so their answers never average into the brand number.\"},{\"name\":\"Measure how accurately AI describes them today\",\"text\":\"Score what the assistants say about the person against the facts you supplied, and sort the errors into outdated, missing, and confused.\"},{\"name\":\"Build a peer set instead of a competitor list\",\"text\":\"List the individuals AI names in the same conversations, not the rival companies, so the comparison matches how people actually ask.\"},{\"name\":\"Write prompts people actually ask about a person\",\"text\":\"Cover identity, expertise, and peer comparison questions in the words a reporter or a candidate would really use.\"},{\"name\":\"Run it nightly and read the trend\",\"text\":\"Put the prompt set on a nightly schedule inside a project, annotate every interview and placement, and watch accuracy and share of voice move together.\"}]},\"_meta\":{\"filePath\":\"how-to-build-executive-visibility-in-ai-answers.mdx\",\"fileName\":\"how-to-build-executive-visibility-in-ai-answers.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-build-executive-visibility-in-ai-answers\"},\"body\":\"$66\",\"locale\":\"en\",\"path\":\"how-to-build-executive-visibility-in-ai-answers\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"67:T4324,"])</script>
2<script>self.__next_f.push([1,"To connect content work to AI visibility, stop reading the brand-level number and start measuring one batch of pages at a time. Import your sitemap so every page is a tracked record, group each batch of content into a named page group that matches how the work was planned, attach that group to a project as a goal with a start date, and annotate the day the batch went live. Then read visibility metrics and rankings against those dated markers, and drill into the citations to confirm the new pages are the ones AI is pulling from. Expect four to eight weeks before a batch shows anything, since pages have to be recrawled before they can be cited. The payoff is the ability to say which content worked and which didn't, with a date and a page list behind the claim.\n\nHere's the meeting this workflow exists for. Quarter's over, the content team shipped 40 pages, AI visibility is up 6 points, and somebody asks whether the content did that. The room says probably. Nobody can prove it, and nobody can say which of the 40 pages mattered.\n\n## Why the brand number can't answer the question\n\nBrand-level AI visibility is a single line that absorbs everything. Your competitor published a comparison page. A trade publication ran a piece that mentions you. Google AI Overviews changed how it picks sources. Your team shipped 40 pages. All of that lands on one chart, and the chart has no idea which input caused which wiggle.\n\nSo the number goes up and the content team takes credit. Or the number goes down and the content team takes blame. Both are guesses, and both get harder to defend the second somebody senior asks a follow-up question.\n\nThe fix isn't a better chart. It's narrowing what you're measuring until a claim can survive scrutiny. That means three things have to be true at once:\n\n- You can name the exact pages in a batch.\n- You can name the date the batch went live.\n- You can see whether those specific pages get cited afterward.\n\nGet those three and the analysis stops being a debate. A batch either moved its own numbers or it didn't, and when it did, you know which pages and how long it took.\n\nThe rest of this guide is that setup. It works with any AI visibility tooling; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Track the pages | Importing the sitemap into one list | Published pages exist as records, not CMS rows |\n| 2. Group the batch | Naming a group per content bet | Groups match how work was planned |\n| 3. Set the goal | Attaching the group to a project | A pass or fail condition with a start date |\n| 4. Mark the release | Annotating the go-live date | Every chart movement has a cause under it |\n| 5. Read it back | Comparing metrics to the markers | Citations pointing at the new pages |\n\n## Get every page into one tracked list\n\nStart with the boring part, because everything after it depends on this. Your content needs to exist as tracked records somewhere outside your CMS, with real URLs attached.\n\nThe fastest route is a sitemap import. Point at `/sitemap.xml`, let it pull, and you go from nothing to a full page inventory in a few minutes. If your sitemap is stale or partial, fix that first; a sitemap that misses half your blog will quietly make half your analysis wrong, and nothing will warn you.\n\nThen classify by intent. Informational, commercial, transactional, navigational. This takes a little time up front and pays back constantly, because it's what lets you ask better questions later. \"Did our informational content move visibility\" is answerable. \"Did our content move visibility\" mostly isn't.\n\nTwo things worth cleaning up while you're in here:\n\n- **Kill the duplicates.** Paginated archives, tag pages, and print versions bulk up the list without adding anything you'd ever measure. They also make groups look bigger than the actual work.\n- **Check the ones that redirect.** A tracked URL that 301s somewhere else splits your signal across two records, and the batch you're measuring ends up half-credited.\n\n\u003cWorkflowCallout\n  title=\"Import the sitemap and classify by intent\"\n  page=\"Property Pages\"\n  href=\"/docs/dashboards/property-pages\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Sitemap imported, 412 pages\", done: true },\n      { label: \"38 archive and tag pages excluded\", done: true },\n      { label: \"Intent classified on 412 pages\", done: true },\n      { label: \"6 redirecting URLs merged\", done: true },\n      { label: \"Weekly re-import scheduled\", done: false },\n    ],\n  }}\n\u003e\n  Property Pages imports your sitemap in one pass and keeps each URL as a record that later dashboards can filter on, which is what connects an AI visit or a citation back to a specific page rather than a bare URL string. Intent classification is applied per page, so a group can be read by purpose as well as by batch. Re-importing on a schedule keeps newly published work from falling outside the analysis by default.\n\u003c/WorkflowCallout\u003e\n\n## Group the pages that share one bet\n\nThis is the step that makes the whole workflow work, and it's the one teams usually skip.\n\nA page group is a named bundle of pages that shared a purpose. Not a folder, not a URL pattern, though those are often a good starting point. The test is whether one sentence explains why these pages were made. \"The integrations pages we built for the partnerships push.\" \"The 12 comparison pages from the Q3 sprint.\" \"The pricing rewrite.\"\n\n
2Match the groups to how the work was actually planned, because that's how it'll be discussed later. If the team ran a sprint, the sprint is a group. If a campaign shipped a hub and nine supporting posts, that's one group, not ten pages scattered across a list.\n\nSize matters more than people expect.\n\n| Group size | What you can learn | Where it breaks |\n| :--- | :--- | :--- |\n| 3 to 7 pages | Clean read on a small, focused bet | One outlier page skews the whole group |\n| 8 to 20 pages | The sweet spot for most content sprints | Needs a shared purpose or it's just a list |\n| 21 to 50 pages | Directional read on a large program | Mixed bets hide inside a flat average |\n| 50+ pages | Site-section trends only | Tells you nothing about any single decision |\n\nEight to twenty is where most teams should live. Big enough that one weird page doesn't dominate, small enough that a flat result still points somewhere.\n\nOne more grouping habit that pays off later. Keep a group of older pages that nobody touched during the period. That's your control. When your new batch moves and the untouched batch doesn't, the argument is basically over. When both move together, something changed about the brand overall and the content work isn't what did it.\n\n\u003cWorkflowCallout\n  title=\"Bundle each content batch into a named group\"\n  page=\"Property Pages\"\n  href=\"/docs/dashboards/property-pages\"\n  signal={{\n    kind: \"count\",\n    label: \"Pages in the Q3 comparison sprint group\",\n    value: 14,\n    target: 14,\n    caption: \"plus a 20-page untouched control group\",\n  }}\n\u003e\n  Page groups are arbitrary bundles rather than folder rules, so a group can hold the hub page, the supporting posts, and the one product page a campaign touched, even when those live in different parts of the site. Groups become a filter across the metrics and citation views, which is what lets one batch be read on its own line. A page can belong to more than one group, so a rewrite that's part of both a 
2sprint and a section refresh gets counted in both readings.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-connect-content-work-to-ai-visibility-quote.webp\"\n  quote=\"If you can't name the pages and the date, you don't have a result. You have a coincidence you liked.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-connect-content-work-to-ai-visibility\"\n/\u003e\n\n## Turn the group into a project with a goal\n\nA group on its own is still just a list. What turns it into a measurement is a goal with a date on it.\n\nThe goal says what you expect this batch to do. Pick one that can actually fail, because a goal that can't fail isn't telling you anything. Good ones for content work look like this:\n\n- Pages in this group get cited for the queries they were written to answer.\n- This group's pages appear in AI visibility rankings for their target queries.\n- Citations pointing at this group go from zero to any non-zero number.\n\nThat last one sounds modest and it's usually the right first goal. Most new content starts at zero citations. Going from zero to a handful is the hardest part; going from a handful to more is largely a scaling problem.\n\nSet the start date to the day the first page in the batch went live, not the day you set up the project. Backdating matters here. You want the chart to include the weeks before publication, because a before period is what makes the after period readable.\n\nThen leave it alone. The most common mistake in this workflow is checking at two weeks, seeing nothing, and quietly deciding the content failed. At two weeks you're measuring your crawl rate. [Timing content updates to AI recrawl cadence](/blog/how-to-time-content-updates-to-ai-recrawl-cadence) covers how to find out when your pages actually get picked up, which tells you when it's fair to start reading results.\n\n\u003cWorkflowCallout\n  title=\"Attach the page group to a project as a goal\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"score\",\n    label: \"Goal progress on the Q3 comparison sprint\",\n    value: 9,\n    target: 14,\n  }}\n\u003e\n  An SEO project takes a page group as its goal, so the batch gets tracked from publication through first citation in one place instead of across a spreadsheet and three dashboards. The project's date range sets the before and after window, and backdating it to the first go-live is what makes the comparison readable. Goal progress counts pages that have picked up at least one citation, so partial credit is visible while the batch is still filling in.\n\u003c/WorkflowCallout\u003e\n\n## Mark every release on the timeline\n\nAnnotations are the cheapest step here and the one that saves the most time later.\n\nEvery time a batch goes live, put a marker on the timeline with the date and a short note about what shipped. Fifteen seconds of work. Three months later it's the difference between explaining a jump and staring at one.\n\nMark more than your own content. The events that move AI visibility come from all over, and a timeline with only your publishing dates on it will tempt you into crediting content for things content didn't do. Worth marking:\n\n- Content releases, with the group name in the note.\n- Technical changes. A site migration, a robots.txt edit, a template change that altered how pages render.\n- Earned media. A placement that runs somewhere AI reads can move numbers faster than a quarter of publishing.\n- Product and pricing changes, since they change what people ask about you.\n- Competitor moves you noticed, when they're big enough to matter.\n\nThe reason to mark the things that aren't yours is defensive. When visibility jumps two weeks after your batch shipped and also three days after a trade publication covered you, the fair read is that you can't cleanly separate them. A timeline shows you that. A chart without markers lets you tell yourself a nicer story.\n\n\u003cWorkflowCallout\n  title=\"Annotate the day each batch went live\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Jul 8 · comparison sprint live (14 pages)\", done: true },\n      { label: \"Jul 22 · template change, schema added\", done: true },\n      { label: \"Aug 4 · trade placement ran\", done: true },\n      { label: \"Aug 19 · pricing page rewrite live\", done: true },\n      { label: \"Sep 2 · integrations hub live\", done: false },\n    ],\n  }}\n\u003e\n  Annotations sit on the same timeline as the visibility charts, so a movement and its cause get read together rather than reconstructed from memory at reporting time. Eac
2h marker carries a date and a note, which is enough to separate a content release from a technical change that happened the same week. They also carry into exports, so the client or executive version of the chart explains itself.\n\u003c/WorkflowCallout\u003e\n\n## Read the charts against what you shipped\n\nNow the reading. Three views answer three different questions, and it's worth being clear about which is which.\n\n**Visibility metrics answer \"did anything change.\"** Filter to the page group where you can, look at the window around your marker, and compare the slope before and after. You're looking for a change in direction, not a specific number. And check the control group in the same window; if it moved too, your batch probably isn't the cause.\n\n**Rankings answer \"for what.\"** This is where a batch stops being an average and starts being specific. Look at the queries your pages were written for and see whether those pages now appear at all. Movement from unranked to anywhere in the top 30 is the meaningful jump for new content. Going from #8 to #6 is nice; going from unranked to #14 is the batch working.\n\n**Citation drill-downs answer \"is it actually our pages.\"** This is the one that closes the argument, and it's the step teams most often skip. Open the citations behind the goal and read which URLs AI pulled from. Three outcomes come up:\n\n1. **Your new pages are cited.** The batch worked. Note which ones, because the pattern is your template for the next batch.\n2. **Your older pages are cited more than before.** The new content helped the site get retrieved for these topics, and existing pages caught the benefit. Real, but it means the new pages themselves may still need work.\n3. **Third-party pages about you are cited.** Your visibility went up and your content isn't why. Usually earned media or a directory. Worth knowing before you build next quarter's plan on the wrong lesson. [Connecting earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility) covers that side of the ledger.\n\nWhen a batch reads flat after a confirmed recrawl, work down this list before rewriting anything. Check that the pages are readable and free of technical blockers, since a page AI can't parse can't be cited no matter how good it is; [finding and fixing AI citation blockers](/blog/how-to-find-and-fix-ai-citation-blockers) is the diagnostic pass for that. Then check whether the pages answer questions anyone asks. Then check whether two of your own pages are competing for the same query and splitting the signal.\n\n\u003cWorkflowCallout\n  title=\"Read metrics, rankings, and the citations behind the goal\"\n  page=\"AI Visibility Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Pages from the sprint appearing in rankings\",\n    before: \"0 of 14\",\n    after: \"9 of 14\",\n    tone: \"positive\",\n    caption: \"first appearance 26 days after publish · goal 14 of 14\",\n    series: [0, 0, 0, 1, 3, 4, 6, 7, 9],\n  }}\n\u003e\n  Rankings show which of your pages surface for the queries AI generates on the way to an answer, so a batch can be read query by query instead of as one blended score. The goal-citation drill-down lists the exact URLs behind each counted citation, which separates the case where your new pages earned the result from the case where something else did. Filtering by page group keeps the batch on its own line while the annotations stay visible underneath.\n\u003c/WorkflowCallout\u003e\n\n## What this gives you after two quarters\n\nThe first batch you measure this way is mostly setup. The value compounds, and it shows up in three places.\n\n**A record of what works.** After six or eight measured batches you stop guessing about format. You'll know whether comparison pages outperform guides for your category, whether long pages beat short ones, and roughly how long each type takes to land. That's a content strategy built on your own results rather than on what worked for somebody else's site.\n\n**A realistic clock.** Teams consistently expect content to move AI visibility faster than it does. Once you've watched four batches go from publish to first citation, you have a real number for your site, and planning gets much less painful.\n\n**An argument that holds up.** \"Visibility is up 6 points\" invites debate. \"The 14 pages we shipped July 8 went from zero citations to nine, first appearance 26 days after publish, while the untouched control group stayed flat\" ends it. Same quarter, same work, completely different c
2onversation.\n\nOne habit to carry into every cycle. Write down what you expect before the batch ships. A one-line prediction about which queries these pages should win and how long it should take. Half the time you'll be wrong, and being wrong on paper is how the estimates get good. Teams that skip this end up rewriting the hypothesis after the results come in, which feels like learning and isn't.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"68:T5a10,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var y=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)r(n,a,{get:e[a],enumerable:!0})},s=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of m(e))!f.call(n,o)\u0026\u0026o!==a\u0026\u0026r(n,o,{get:()=\u003ee[o],enumerable:!(i=u(e,o))||i.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?g(w(n)):{},s(e||!n||!n.__esModule?r(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003es(r({},\"__esModule\",{value:!0}),n);var l=y((T,h)=\u003e{h.exports=_jsx_runtime});var A={};b(A,{default:()=\u003ep});var t=k(l());function d(n){let e={a:\"a\",code:\"code\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||c(\"PullQuote\",!0),i||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To connect content work to AI visibility, stop reading the brand-level number and start measuring one batch of pages at a time. Import your sitemap so every page is a tracked record, group each batch of content into a named page group that matches how the work was planned, attach that group to a project as a goal with a start date, and annotate the day the batch went live. Then read visibility metrics and rankings against those dated markers, and drill into the citations to confirm the new pages are the ones AI is pulling from. Expect four to eight weeks before a batch shows anything, since pages have to be recrawled before they can be cited. The payoff is the ability to say which content worked and which didn't, with a date and a page list behind the claim.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the meeting this workflow exists for. Quarter's over, the content team shipped 40 pages, AI visibility is up 6 points, and somebody asks whether the content did that. The room says probably. Nobody can prove it, and nobody can say which of the 40 pages mattered.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why the brand number can't answer the question\"}),`\n`,(0,t.jsx)(e.p,{children:\"Brand-level AI visibility is a single line that absorbs everything. Your competitor published a comparison page. A trade publication ran a piece that mentions you. Google AI Overviews changed how it picks sources. Your team shipped 40 pages. All of that lands on one chart, and the chart has no idea which input caused which wiggle.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So the number goes up and the content team takes credit. Or the number goes down and the content team takes blame. Both are guesses, and both get harder to defend the second somebody senior asks a follow-up question.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The fix isn't a better chart. It's narrowing what you're measuring until a claim can survive scrutiny. That means three things have to be true at once:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"You can name the exact pages in a batch.\"}),`\n`,(0,t.jsx)(e.li,{children:\"You can name the date the batch went live.\"}),`\n`,(0,t.jsx)(e.li,{children:\"You can see whether those specific pages get cited afterward.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Get those three and the analysis stops being a debate. A batch either moved its own numbers or it didn't, and when it did, you know which pages and how long it took.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The rest of this guide is that setup. It works with any AI visibility tooling; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Track the pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Importing the sitemap into one list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"Published pages exist as records, not CMS rows\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Group the batch\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Naming a group per content bet\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Groups match how work was planned\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Set the goal\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Attaching the group to a project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A pass or fail condition with a start date\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Mark the release\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Annotating the go-live date\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every chart movement has a cause under it\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Read it back\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Comparing metrics to the markers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Citations pointing at the new pages\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Get every page into one tracked list\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with the boring part, because everything after it depends on this. Your content needs to exist as tracked records somewhere outside your CMS, with real URLs attached.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The fastest route is a sitemap import. Point at \",(0,t.jsx)(e.code,{children:\"/sitemap.xml\"}),\", let it pull, and you go from nothing to a full page inventory in a few minutes. If your sitemap is stale or partial, fix that first; a sitemap that misses half your blog will quietly make half your analysis wrong, and nothing will warn you.\"]}),`\n`,(0,t.jsx)(e.p,{children:`Then classify by intent. Informational, commercial, transactional, navigational. This takes a little time up front and pays back constantly, because it's what lets you ask better questions later. \"Did our informational content move visibility\" is answerable. \"Did our content move visibility\" mostly isn't.`}),`\n`,(0,t.jsx)(e.p,{children:\"Two things worth cleaning up while you're in here:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Kill the duplicates.\"}),\" Paginated archives, tag pages, and print versions bulk up the list without adding anything you'd ever measure. They also make groups look bigger than the actual work.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Check the ones that redirect.\"}),\" A tracked URL that 301s somewhere else splits your signal across two records, and the batch you're measuring ends up half-credited.\"]}),`\n`]}),`\n`,(0,t.jsx)(i,{title:\"Import the sitemap and classify by intent\",page:\"Property Pages\",href:\"/docs/dashboards/property-pages\",signal:{kind:\"checklist\",items:[{label:\"Sitemap imported, 412 pages\",done:!0},{label:\"38 archive and tag pages excluded\",done:!0},{label:\"Intent classified on 412 pages\",done:!0},{label:\"6 redirecting URLs merged\",done:!0},{label:\"Weekly re-import scheduled\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Property Pages imports your sitemap in one pass and keeps each URL as a record that later dashboards can filter on, which is what connects an AI visit or a citation back to a specific page rather than a bare URL string. Intent classification is applied per page, so a group can be read by purpose as well as by batch. Re-importing on a schedule keeps newly published work from falling outside the analysis by default.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Group the pages that share one bet\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that makes the whole workflow work, and it's the one teams usually skip.\"}),`\n`,(0,t.jsx)(e.p,{children:'A page group is a named bundle of pages that shared a purpose. Not a folder, not a URL pattern, though those are often a good starting point. The test is whether one sentence explains why these pages were made. \"The integrations pages we built for the partnerships push.\" \"The 12 comparison pages from the Q3 sprint.\" \"The pricing rewrite.\"'}),`\n`,(0,t.jsx)(e.p,{children:\"Match the groups to how the work was actually planned, because that's how it'll be discussed later. If the team ran a sprint, the sprint is a group. If a campaign shipped a hub and nine supporting posts, that's one group, not ten pages scattered across a list.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Size matters more than people expect.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Group size\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you can learn\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Where it breaks\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3 to 7 pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Clean read on a small, focused bet\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One outlier page skews the whole group\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"8 to 20 pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The sweet spot for most content sprints\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Needs a shared purpose or it's just a list\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"21 to 50 pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Directional read on a large program\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Mixed bets hide inside a flat average\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"50+ pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Site-section trends only\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Tells you nothing about any single decision\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Eight to twenty is where most teams should live. Big enough that one weird page doesn't dominate, small enough that a flat result still points somewhere.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One more grouping habit that pays off later. Keep a group of older pages that nobody touched during the peri
2od. That's your control. When your new batch moves and the untouched batch doesn't, the argument is basically over. When both move together, something changed about the brand overall and the content work isn't what did it.\"}),`\n`,(0,t.jsx)(i,{title:\"Bundle each content batch into a named group\",page:\"Property Pages\",href:\"/docs/dashboards/property-pages\",signal:{kind:\"count\",label:\"Pages in the Q3 comparison sprint group\",value:14,target:14,caption:\"plus a 20-page untouched control group\"},children:(0,t.jsx)(e.p,{children:\"Page groups are arbitrary bundles rather than folder rules, so a group can hold the hub page, the supporting posts, and the one product page a campaign touched, even when those live in different parts of the site. Groups become a filter across the metrics and citation views, which is what lets one batch be read on its own line. A page can belong to more than one group, so a rewrite that's part of both a sprint and a section refresh gets counted in both readings.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-connect-content-work-to-ai-visibility-quote.webp\",quote:\"If you can't name the pages and the date, you don't have a result. You have a coincidence you liked.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-connect-content-work-to-ai-visibility\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn the group into a project with a goal\"}),`\n`,(0,t.jsx)(e.p,{children:\"A group on its own is still just a list. What turns it into a measurement is a goal with a date on it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The goal says what you expect this batch to do. Pick one that can actually fail, because a goal that can't fail isn't telling you anything. Good ones for content work look like this:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Pages in this group get cited for the queries they were written to answer.\"}),`\n`,(0,t.jsx)(e.li,{children:\"This group's pages appear in AI visibility rankings for their target queries.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Citations pointing at this group go from zero to any non-zero number.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"That last one sounds modest and it's usually the right first goal. Most new content starts at zero citations. Going from zero to a handful is the hardest part; going from a handful to more is largely a scaling problem.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set the start date to the day the first page in the batch went live, not the day you set up the project. Backdating matters here. You want the chart to include the weeks before publication, because a before period is what makes the after period readable.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then leave it alone. The most common mistake in this workflow is checking at two weeks, seeing nothing, and quietly deciding the content failed. At two weeks you're measuring your crawl rate. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-time-content-updates-to-ai-recrawl-cadence\",children:\"Timing content updates to AI recrawl cadence\"}),\" covers how to find out when your pages actually get picked up, which tells you when it's fair to start reading results.\"]}),`\n`,(0,t.jsx)(i,{title:\"Attach the page group to a project as a goal\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"score\",label:\"Goal progress on the Q3 comparison sprint\",value:9,target:14},children:(0,t.jsx)(e.p,{children:\"An SEO project takes a page group as its goal, so the batch gets tracked from publication through first citation in one place instead of across a spreadsheet and three dashboards. The project's date range sets the before and after window, and backdating it to the first go-live is what makes the comparison readable. Goal progress counts pages that have picked up at least one citation, so partial credit is visible while the batch is still filling in.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Mark every release on the timeline\"}),`\n`,(0,t.jsx)(e.p,{children:\"Annotations are the cheapest step here and the one that saves the most time later.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every time a batch goes live, put a marker on the timeline with the date and a short note about what shipped. Fifteen seconds of work. Three months later it's the difference between explaining a jump and staring at one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Mark more than your own content. The events that move AI visibility come from all over, and a timeline with only your publishing dates on it will tempt you into crediting content for things content didn't do. Worth marking:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Content releases, with the group name in the note.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Technical changes. A site migration, a robots.txt edit, a template change that altered how pages render.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Earned media. A placement that runs somewhere AI reads can move numbers faster than a quarter of publishing.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Product and pricing changes, since they change what people ask about you.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Competitor moves you noticed, when they're big enough to matter.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The reason to mark the things that aren't yours is defensive. When visibility jumps two weeks after your batch shipped and also three days after a trade publication covered you, the fair read is that you can't cleanly separate them. A timeline shows you that. A chart without markers lets you tell yourself a nicer story.\"}),`\n`,(0,t.jsx)(i,{title:\"Annotate the day each batch went live\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"checklist\",items:[{label:\"Jul 8 \\xB7 comparison sprint live (14 pages)\",done:!0},{label:\"Jul 22 \\xB7 template change, schema added\",done:!0},{label:\"Aug 4 \\xB7 trade placement ran\",done:!0},{label:\"Aug 19 \\xB7 pricing page rewrite live\",done:!0},{label:\"Sep 2 \\xB7 integrations hub live\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Annotations sit on the same timeline as the visibility charts, so a movement and its cause get read together rather than reconstructed from memory at reporting time. Eac
2h marker carries a date and a note, which is enough to separate a content release from a technical change that happened the same week. They also carry into exports, so the client or executive version of the chart explains itself.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Read the charts against what you shipped\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now the reading. Three views answer three different questions, and it's worth being clear about which is which.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:'Visibility metrics answer \"did anything change.\"'}),\" Filter to the page group where you can, look at the window around your marker, and compare the slope before and after. You're looking for a change in direction, not a specific number. And check the control group in the same window; if it moved too, your batch probably isn't the cause.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:'Rankings answer \"for what.\"'}),\" This is where a batch stops being an average and starts being specific. Look at the queries your pages were written for and see whether those pages now appear at all. Movement from unranked to anywhere in the top 30 is the meaningful jump for new content. Going from #8 to #6 is nice; going from unranked to #14 is the batch working.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:'Citation drill-downs answer \"is it actually our pages.\"'}),\" This is the one that closes the argument, and it's the step teams most often skip. Open the citations behind the goal and read which URLs AI pulled from. Three outcomes come up:\"]}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Your new pages are cited.\"}),\" The batch worked. Note which ones, because the pattern is your template for the next batch.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Your older pages are cited more than before.\"}),\" The new content helped the site get retrieved for these topics, and existing pages caught the benefit. Real, but it means the new pages themselves may still need work.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Third-party pages about you are cited.\"}),\" Your visibility went up and your content isn't why. Usually earned media or a directory. Worth knowing before you build next quarter's plan on the wrong lesson. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"Connecting earned media to AI visibility\"}),\" covers that side of the ledger.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"When a batch reads flat after a confirmed recrawl, work down this list before rewriting anything. Check that the pages are readable and free of technical blockers, since a page AI can't parse can't be cited no matter how good it is; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-find-and-fix-ai-citation-blockers\",children:\"finding and fixing AI citation blockers\"}),\" is the diagnostic pass for that. Then check whether the pages answer questions anyone asks. Then check whether two of your own pages are competing for the same query and splitting the signal.\"]}),`\n`,(0,t.jsx)(i,{title:\"Read metrics, rankings, and the citations behind the goal\",page:\"AI Visibility Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"beforeAfter\",label:\"Pages from the sprint appearing in rankings\",before:\"0 of 14\",after:\"9 of 14\",tone:\"positive\",caption:\"first appearance 26 days after publish \\xB7 goal 14 of 14\",series:[0,0,0,1,3,4,6,7,9]},children:(0,t.jsx)(e.p,{children:\"Rankings show which of your pages surface for the queries AI generates on the way to an answer, so a batch can be read query by query instead of as one blended score. The goal-citation drill-down lists the exact URLs behind each counted citation, which separates the case where your new pages earned the result from the case where something else did. Filtering by page group keeps the batch on its own line while the annotations stay visible underneath.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What this gives you after two quarters\"}),`\n`,(0,t.jsx)(e.p,{children:\"The first batch you measure this way is mostly setup. The value compounds, and it shows up in three places.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"A record of what works.\"}),\" After six or eight measured batches you stop guessing about format. You'll know whether comparison pages outperform guides for your category, whether long pages beat short ones, and roughly how long each type takes to land. That's a content strategy built on your own results rather than on what worked for somebody else's site.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"A realistic clock.\"}),\" Teams consistently expect content to move AI visibility faster than it does. Once you've watched four batches go from publish to first citation, you have a real number for your site, and planning gets much less painful.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"An argument that holds up.\"}),' \"Visibility is up 6 points\" invites debate. \"The 14 pages we shipped July 8 went from zero citations to nine, first appearance 26 days after publish, while the untouched control group stayed flat\" ends it. Same quarter, same work, completely different c
2onversation.']}),`\n`,(0,t.jsx)(e.p,{children:\"One habit to carry into every cycle. Write down what you expect before the batch ships. A one-line prediction about which queries these pages should win and how long it should take. Half the time you'll be wrong, and being wrong on paper is how the estimates get good. Teams that skip this end up rewriting the hypothesis after the results come in, which feels like learning and isn't.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"1c:[\"$\",\"$L10\",\"how-to-connect-content-work-to-ai-visibility\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$67\",\"title\":\"How to Connect Content Work to AI Visibility\",\"date\":\"2026-09-04\",\"image\":\"/images/blog/how-to-connect-content-work-to-ai-visibility.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Your team shipped 40 pages last quarter and AI visibility went up 6 points. Did the content do that? Most teams can't answer, because nothing connects what they published to what the number did. Here's the setup that ties a specific batch of content to a specific measurable change, using page groups, project goals, and dated release markers.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"Content Strategy\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Why can't I tell whether my content work moved AI visibility?\",\"answer\":\"Because the brand-level number moves for a dozen reasons at once. Competitors publish, a news cycle turns, a review site reindexes, and your 40 new pages land somewhere in the middle of all of it. Without a way to isolate one batch of pages and one date, every explanation is a guess that sounds confident.\"},{\"question\":\"How small should a page group be?\",\"answer\":\"Small enough that one team owned the work and one hypothesis explains it. Eight to twenty pages is the range that works for most teams. A group of three is too noisy to read; a group of 200 mixes so many bets together that a flat line tells you nothing about which one failed.\"},{\"question\":\"How long after publishing should I expect to see movement?\",\"answer\":\"Four to eight weeks for most pages. The page has to be recrawled first, and that alone can take one to three weeks depending on how often AI crawlers visit your site. Judging a batch at two weeks is measuring your crawl rate, not your content.\"},{\"question\":\"What if the number doesn't move at all?\",\"answer\":\"That's a result worth having, and it usually points somewhere specific. Check recrawl first, then whether the pages are readable and citable at all, then whether they answer questions anyone is actually asking. A flat line after a confirmed recrawl is a content problem, not a measurement problem.\"},{\"question\":\"Do I need every page on my site tracked for this to work?\",\"answer\":\"No. You need the pages in the batch you're measuring plus enough of the surrounding site that grouping makes sense. A full sitemap import is the easy way to get there, but the work that matters is the grouping and the goals, not the page count.\"}],\"howTo\":{\"name\":\"How to connect content work to AI visibility\",\"description\":\"A step-by-step workflow for in-house marketing and SEO teams that ties a specific batch of published content to a measurable change in AI visibility, using tracked pages, page groups, project goals, and dated release markers.\",\"steps\":[{\"name\":\"Get every page into one tracked list\",\"text\":\"Import the sitemap so the pages you publish exist as tracked records with URLs and intent classifications, instead of living only in your CMS.\"},{\"name\":\"Group the pages that share one bet\",\"text\":\"Bundle each batch of content into a named group that matches how the work was actually planned, so you can read the batch instead of the whole site.\"},{\"name\":\"Turn the group into a project with a goal\",\"text\":\"Attach the page group to a project as a goal with a start date, which turns the batch into something with a pass or fail condition.\"},{\"name\":\"Mark every release on the timeline\",\"text\":\"Annotate the date each batch went live so later movement in the charts has a cause sitting underneath it.\"},{\"name\":\"Read the charts against what you shipped\",\"text\":\"Compare the metrics and rankings after each release against the markers, and drill into the citations to confirm the new pages are the ones getting cited.\"}]},\"_meta\":{\"filePath\":\"how-to-connect-content-work-to-ai-visibility.mdx\",\"fileName\":\"how-to-connect-content-work-to-ai-visibility.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-connect-content-work-to-ai-visibility\"},\"body\":\"$68\",\"locale\":\"en\",\"path\":\"how-to-connect-content-work-to-ai-visibility\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"69:T430e,"])</script>
2<script>self.__next_f.push([1,"To measure AI search visibility in a new market, set that city, region, or country up as its own tracked location so its results never average into the home market, then rebuild three things inside that scope; the competitor list, because local rivals are usually different, the prompt set, because people phrase questions with local words, and the goal list, because local press and directories carry more weight there than national outlets. Run 15 to 25 prompts nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews for that market alone, and read its share of voice on its own line next to the home market. The gap is usually wide; a brand sitting at 31% share of voice nationally often lands in single digits in a market it entered last quarter. Expect 8 to 12 weeks before the numbers move, since a new market starts with almost no local sources naming the brand, and those sources have to exist before AI can repeat them.\n\nHere's the conversation that starts this workflow. A client is opening in a new city or a new country, the launch budget is approved, and somebody asks what AI says about them there. The agency pulls the visibility dashboard and reads out a number that has almost nothing to do with the new market.\n\n## Why a blended number hides a new market\n\nBrand-level AI visibility is an average. It's built from prompts that mostly reflect where the brand already has customers, coverage, and reviews. A regional chain that owns its home city can look strong at 31% share of voice and still be invisible three states over, because the home market is doing all the lifting.\n\nThat gap matters because AI answers with local intent really are different by place. When someone asks for the best option near them, the assistant runs web searches, and those searches pull local sources; city publications, regional directories, review sites with local density, \"best in town\" roundups. A brand with none of those doesn't appear, no matter how well known it is nationally.\n\nSo expansion measurement has one requirement above all others. The new market has to be its own line in the report. Once it is, three questions get answers instead of opinions. Where do we stand there today, who is AI naming instead of us, and is the local work moving anything.\n\nThe rest of this guide is the setup that makes those three answerable. It works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Scope the market | Adding the market as its own tracked location | A separate results line from day one |\n| 2. Localize competitors | Replacing national rivals with local ones | Names you didn't expect showing up |\n| 3. Localize prompts | Rewriting inherited prompts in local language | A prompt set a local buyer would recognize |\n| 4. Set local goals | Naming the publishers and pages that matter there | Targets scored for AI value, not just reach |\n| 5. Read it separately | Charting the new market against the home one | A gap you can watch close |\n\n## Set the new market up as its own scope\n\nStart by deciding what the market actually is. A city, a metro area, a region, or a country. Pick the smallest unit the client's business really works in, because the smaller the unit, the more local the AI answers are, and the more useful the measurement gets.\n\nA country-level scope is right for an international launch. A city or metro scope is right for anything with a physical footprint, a service area, or local competitors. Splitting one country into three cities gives you three clear reads; rolling three cities into \"the Midwest\" usually gives you one blurry one.\n\nThen add it as a scope that sits under the existing brand rather than as a brand new setup. That inheritance saves real time. The brand description, the product framing, and the prompt structure all carry over, so you're editing rather than starting from an empty screen.\n\nOne thing worth deciding up front. Every tracked prompt in the new market runs on its own schedule and costs on its own, so a client with five target markets is committing to five times the prompt volume. Talk about that at setup, not at the invoice. Agencies running several markets per client usually cap each one at 15 to 20 prompts and spend the effort on picking the right ones.\n\n\u003cWorkflowCallout\n  title=\"Add the market as a tracked location under the brand\"\n  page=\"Locations\"\n  href=\"/docs/dashboards/locations\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Denver, CO added as a location\", done: true },\n      { label: \"Display label set to Denver metro\", done: true },\n      { label: \"Brand snapshot inherited from parent\", done: true },\n      { label: \"Nightly runs scheduled for the new scope\", done: true },\n      { label: \"First full week of local data collected\", done: false },\n    ],\n  }}\n\u003e\n  Locations create a child scope under the parent brand, so the new market gets its own competitors, prompts, and results while keeping the brand definition you already corrected once. Search for the city or country, set the label the client will recognize in reports, and the scope starts collecting on the next nightly run. The parent stays untouched, which is what lets you compare the two lines later.\n\u003c/WorkflowCallout\u003e\n\n## Rebuild the competitor set for that market\n\nThe competitor list from head office is usually wrong for a new market, and it's wrong in a specific way. It lists the brands the client competes with on paper, and it misses the local operator that has run the same three neighborhoods for fifteen years and owns every local roundup.\n\nDo this in two passes.\n\nFirst, cut. Go through the inherited list and remove anyone who doesn't operate in the new market. A national rival that hasn't opened there yet isn't competition for a local question, and leaving them in makes your share of voice look worse than 
2it is.\n\nSecond, add. The best source for local competitors isn't the client's opinion; it's the answers themselves. Run a handful of the local questions manually and write down every brand named. You'll usually find two or three you'd never have listed, and those are the ones the expansion is actually fighting for space with.\n\nKeep aliases in mind here. Local businesses get referred to by short names, nicknames, and old names that stuck after a rebrand. If the tracking only matches the legal name, the local rival will look smaller than it is. The same logic applies when you're deliberately going after one of them, which [displacing a competitor in AI answers](/blog/how-to-displace-a-competitor-in-ai-answers) covers step by step.\n\n\u003cWorkflowCallout\n  title=\"Give the market its own competitor list\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"count\",\n    label: \"Competitors tracked in the Denver scope\",\n    value: 7,\n    target: 8,\n    caption: \"4 carried over, 3 local only\",\n  }}\n\u003e\n  Each location keeps its own competitor list, so pruning the national rivals out of Denver doesn't touch the list on the parent brand or on any other market. Auto-seeded suggestions come from the brands that actually appear in that market's answers, which surfaces the local operators nobody thought to add. Aliases are per competitor, so a nickname or a former name still counts as a mention.\n\u003c/WorkflowCallout\u003e\n\n## Rewrite the prompts so they sound local\n\nPrompts inherited from the parent brand arr
2ive with the geography added, and that's a starting point rather than a finished set. Read every one as if you were a buyer in that market. Some will be fine, some will read like a national question with a city glued on the end, and a few will make no sense at all.\n\nThree kinds of edits do most of the work.\n\n- **Reword for local phrasing.** People search with the words their market uses. A neighborhood name, a regional term for the product, a landmark instead of a zip code. Prompts that match how buyers really ask get matched to the pages that answer that way.\n- **Cut what doesn't apply.** National comparison prompts, prompts about products that aren't sold there, prompts about services that launch next year. Each one you drop is a nightly run you spend somewhere better.\n- **Add the local-only questions.** Every market has a few. Availability, delivery radius, local regulation, whether you're open on a day that matters there. These are often where a new entrant can win first, because national brands never answer them.\n\nFor a new country, add language to the list. If buyers ask in the local language, track prompts in that language, not translated English. The sources AI retrieves for a Spanish-language question are different sources, and measuring the English version tells you about a market that isn't the one you entered.\n\nTag the whole set with the market name. That tag is what makes filtered client reporting possible later without re-deriving which prompts belong to which market every month.\n\n\u003cWorkflowCallout\n  title=\"Review the inherited prompts for market fit\"\n  page=\"Prompts Dashboard\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Prompts running in the Denver market scope\",\n    value: 20,\n    target: 20,\n    caption: \"6 reworded, 3 dropped, 2 local-only added\",\n  }}\n\u003e\n  Prompts inherit from the parent with the location injected, so the new market starts with a working set instead of a blank page, and your edits stay scoped to that market. Generation frameworks like category entry points and buyer's journey fill gaps where the inherited set is thin on local intent. Tags carry through to metrics and exports, which is what lets a multi-market client report filter cleanly to one market at a time.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-measure-ai-visibility-in-a-new-market-quote.webp\"\n  quote=\"A brand that owns its home market can be close to invisible one state over, and a blended number will never tell you which.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-measure-ai-visibility-in-a-new-market\"\n/\u003e\n\n## Pick local goals worth measuring\n\nA new market has a shorter list of things that would actually change the numbers, and the list looks different from the national one.\n\nLocal publishers usually beat national ones here. A city business journal, a regional trade site, or a well-read local blog gets pulled into local answers far more often than a national outlet does, because the assistant's searches are looking for local sources. That's a friendlier target list than the national one too, since local press is easier to earn.\n\nScore the list before you commit outreach hours. Two things decide whether a placement can do anything for this channel; whether AI can read the site at all, and whether AI already cites it for questions in your category. Plenty of well-known publications block AI crawlers, and a placement there won't move a local answer no matter how good the story is.\n\nThen there's the client's own local pages. A city landing page, a location page, a local FAQ. These are frequently the fastest win in a new market, because they're the only pages that can answer a local-intent question directly and the client controls all of them.\n\n| Local goal | Why it works in a new market | Typical time to effect |\n| :--- | :--- | :--- |\n| City or region landing page | The only page that answers local questions directly | 3 to 6 weeks |\n| Local business directories | Dense local signals AI leans on for \"near me\" answers | 4 to 8 weeks |\n| Regional press placement | Local sources get retrieved for local questions | 6 to 10 weeks |\n| Review site presence | Feeds comparison and recommendation answers | 8 to 12 weeks |\n| Local partner or association pages | Third-party confirmation the brand operates there | 6 to 12 weeks |\n\nAttach the shortlist to a project as goals with the market's date range on it. That turns \"the exp
2ansion is going well\" into a number the client can see, and it gives the monthly report something to show besides a share of voice line. [Building monthly AI visibility client reports](/blog/how-to-build-monthly-ai-visibility-client-reports) covers how that packaging works across a book of clients.\n\n\u003cWorkflowCallout\n  title=\"Attach the market's publishers and pages as goals\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"score\",\n    label: \"Average AI Placement Value across Denver targets\",\n    value: 61,\n    target: 75,\n  }}\n\u003e\n  A project holds the market's goals, so each local publisher or landing page gets tracked from setup through citation in one place, filtered to the prompts you tagged for that market. Score the publisher list first so outreach goes to outlets AI can actually read; the same score becomes the benchmark you report against later. Project date ranges make the export read as an expansion story rather than a snapshot.\n\u003c/WorkflowCallout\u003e\n\n## Watch share of voice per market, not blended\n\nNow the reading, which is where most expansion measurement goes wrong.\n\nPut the new market on its own line, next to the home market, on the same chart. That comparison is the whole point. The home market shows what \"good\" looks like for this brand with mature local signals behind it, and the new market shows how far there is to go.\n\nExpect the first read to be low. Single digits is normal, and zero happens. That's information, not failure; it says nothing local points at this brand yet, so AI has nothing to retrieve. What you're watching for over the following months is the slope, not the level.\n\nThree patterns come up often enough to name.\n\n**Slow and steady climb.** Local pages went live, a directory or two picked the brand up, and each week adds a little. This is what the work looks like when it's working.\n\n**Flat at zero for months.** Usually means nothing local exists yet. Check whether the location pages actually shipped and whether the brand is in the obvious local directories before touching anything else.\n\n**A jump with no cause.** Someone did something. A local placement ran, a partner listed the brand, a review site crossed a threshold. Find it and mark it, because it's the most repeatable thing you'll learn all quarter.\n\nRead the citations underneath the numbers too, not just the share of voice. In a new market the source list is more useful than the score, because it tells you exactly which local sites AI trusts for these questions. That list is your outreach plan for the next quarter, and you didn't have to guess at it.\n\n\u003cWorkflowCallout\n  title=\"Read the new market on its own line\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"trend\",\n    label: \"Share of voice in the Denver market\",\n    series: [2, 3, 3, 6, 8, 11, 13, 16],\n    change: 14,\n    suffix: \"%\",\n  }}\n\u003e\n  The metrics view breaks share of voice out by location, so the new market charts next to the home market instead of averaging into one brand number. A per-location summary on the property home gives the quick read across every market a client runs, and annotations sit on the same timeline so a jump comes with its cause attached. Citation Intelligence filtered to the market shows which local sources feed those answers.\n\u003c/WorkflowCallout\u003e\n\n## What the first quarter should produce\n\nSet expectations before the first report goes out, because the first month of a new market rarely looks impressive and the reason is structural rather than a problem with the work.\n\nBy the end of a quarter, three deliverables are reasonable to promise.\n\n1. **A real starting position.** Share of voice in the market, the local competitors AI names, and the sources it cites. Even if the numbers are small, this is the baseline every later claim gets measured against. The approach is the same one in [baselining a brand's AI visibility](/blog/how-to-baseline-your-brands-ai-visibility), scoped to one market.\n2. **A local source list.** The sites AI leans on for these questions, ranked by whether they're readable and already cited. That's a targeting document worth more than most of what a launch plan usually contains.\n3. **An early slope.** Not a win, a direction. Whether the line is moving off the floor tells you if the local work is landing, and it does that months before the share of voice number is worth showing to anyone senior.\n\nKeep the home market on every chart, all the way through. It's the control. When both lines move together, something changed about the brand overall; when only the new market moves, the expansion work did it. That distinction is hard to argue with, and it's the difference between reporting activity and reporting effect.\n\nOne last habit. Set the next market up before it opens, not after. Two or three weeks of pre-launch data costs almost nothing and turns the launch report into a before and after instead of a single number with no context behind it.\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"6a:T58d7,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},s=(n,e,a,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of g(e))!y.call(n,o)\u0026\u0026o!==a\u0026\u0026i(n,o,{get:()=\u003ee[o],enumerable:!(r=m(e,o))||r.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?u(w(n)):{},s(e||!n||!n.__esModule?i(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003es(i({},\"__esModule\",{value:!0}),n);var h=f((T,l)=\u003e{l.exports=_jsx_runtime});var A={};b(A,{default:()=\u003ep});var t=k(h());function c(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:a,WorkflowCallout:r}=e;return a||d(\"PullQuote\",!0),r||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To measure AI search visibility in a new market, set that city, region, or country up as its own tracked location so its results never average into the home market, then rebuild three things inside that scope; the competitor list, because local rivals are usually different, the prompt set, because people phrase questions with local words, and the goal list, because local press and directories carry more weight there than national outlets. Run 15 to 25 prompts nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews for that market alone, and read its share of voice on its own line next to the home market. The gap is usually wide; a brand sitting at 31% share of voice nationally often lands in single digits in a market it entered last quarter. Expect 8 to 12 weeks before the numbers move, since a new market starts with almost no local sources naming the brand, and those sources have to exist before AI can repeat them.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the conversation that starts this workflow. A client is opening in a new city or a new country, the launch budget is approved, and somebody asks what AI says about them there. The agency pulls the visibility dashboard and reads out a number that has almost nothing to do with the new market.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why a blended number hides a new market\"}),`\n`,(0,t.jsx)(e.p,{children:\"Brand-level AI visibility is an average. It's built from prompts that mostly reflect where the brand already has customers, coverage, and reviews. A regional chain that owns its home city can look strong at 31% share of voice and still be invisible three states over, because the home market is doing all the lifting.\"}),`\n`,(0,t.jsx)(e.p,{children:`That gap matters because AI answers with local intent really are different by place. When someone asks for the best option near them, the assistant runs web searches, and those searches pull local sources; city publications, regional directories, review sites with local density, \"best in town\" roundups. A brand with none of those doesn't appear, no matter how well known it is nationally.`}),`\n`,(0,t.jsx)(e.p,{children:\"So expansion measurement has one requirement above all others. The new market has to be its own line in the report. Once it is, three questions get answers instead of opinions. Where do we stand there today, who is AI naming instead of us, and is the local work moving anything.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The rest of this guide is the setup that makes those three answerable. It works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Scope the market\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adding the market as its own tracked location\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A separate results line from day one\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Localize competitors\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Replacing national rivals with local ones\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Names you didn't expect showing up\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Localize prompts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewriting inherited prompts in local language\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A prompt set a local buyer would recognize\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Set local goals\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Naming the publishers and pages that matter there\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Targets scored for AI value, not just reach\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Read it separately\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Charting the new market against the home one\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A gap you can watch close\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Set the new market up as its own scope\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start by deciding what the market actually is. A city, a metro area, a regi
2on, or a country. Pick the smallest unit the client's business really works in, because the smaller the unit, the more local the AI answers are, and the more useful the measurement gets.\"}),`\n`,(0,t.jsx)(e.p,{children:'A country-level scope is right for an international launch. A city or metro scope is right for anything with a physical footprint, a service area, or local competitors. Splitting one country into three cities gives you three clear reads; rolling three cities into \"the Midwest\" usually gives you one blurry one.'}),`\n`,(0,t.jsx)(e.p,{children:\"Then add it as a scope that sits under the existing brand rather than as a brand new setup. That inheritance saves real time. The brand description, the product framing, and the prompt structure all carry over, so you're editing rather than starting from an empty screen.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One thing worth deciding up front. Every tracked prompt in the new market runs on its own schedule and costs on its own, so a client with five target markets is committing to five times the prompt volume. Talk about that at setup, not at the invoice. Agencies running several markets per client usually cap each one at 15 to 20 prompts and spend the effort on picking the right ones.\"}),`\n`,(0,t.jsx)(r,{title:\"Add the market as a tracked location under the brand\",page:\"Locations\",href:\"/docs/dashboards/locations\",signal:{kind:\"checklist\",items:[{label:\"Denver, CO added as a location\",done:!0},{label:\"Display label set to Denver metro\",done:!0},{label:\"Brand snapshot inherited from parent\",done:!0},{label:\"Nightly runs scheduled for the new scope\",done:!0},{label:\"First full week of local data collected\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Locations create a child scope under the parent brand, so the new market gets its own competitors, prompts, and results while keeping the brand definition you already corrected once. Search for the city or country, set the label the client will recognize in reports, and the scope starts collecting on the next nightly run. The parent stays untouched, which is what lets you compare the two lines later.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Rebuild the competitor set for that market\"}),`\n`,(0,t.jsx)(e.p,{children:\"The competitor list from head office is usually wrong for a new market, and it's wrong in a specific way. It lists the brands the client competes with on paper, and it misses the local operator that has run the same three neighborhoods for fifteen years and owns every local roundup.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Do this in two passes.\"}),`\n`,(0,t.jsx)(e.p,{children:\"First, cut. Go through the inherited list and remove anyone who doesn't operate in the new market. A national rival that hasn't opened there yet isn't competition for a local question, and leaving them in makes your share of voice look worse than it is.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Second, add. The best source for local competitors isn't the client's opinion; it's the answers themselves. Run a handful of the local questions manually and write down every brand named. You'll usually find two or three you'd never have listed, and those are the ones the expansion is actually fighting for space with.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Keep aliases in mind here. Local businesses get referred to by short names, nicknames, and old names that stuck after a rebrand. If the tracking only matches the legal name, the local rival will look smaller than it is. The same logic applies when you're deliberately going after one of them, which \",(0,t.jsx)(e.a,{href:\"/blog/how-to-displace-a-competitor-in-ai-answers\",children:\"displacing a competitor in AI answers\"}),\" covers step by step.\"]}),`\n`,(0,t.jsx)(r,{title:\"Give the market its own competitor list\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"count\",label:\"Competitors tracked in the Denver scope\",value:7,target:8,caption:\"4 carried over, 3 local only\"},children:(0,t.jsx)(e.p,{children:\"Each location keeps its own competitor list, so pruning the national rivals out of Denver doesn't touch the list on the parent brand or on any other market. Auto-seeded suggestions come from the brands that actually appear in that market's answers, which surfaces the local operators nobody thought to add. Aliases are per competitor, so a nickname or a former name still counts as a mention.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Rewrite the prompts so they sound local\"}),`\n`,(0,t.jsx)(e.p,{children:\"Prompts inherited from the parent brand arr
2ive with the geography added, and that's a starting point rather than a finished set. Read every one as if you were a buyer in that market. Some will be fine, some will read like a national question with a city glued on the end, and a few will make no sense at all.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Three kinds of edits do most of the work.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Reword for local phrasing.\"}),\" People search with the words their market uses. A neighborhood name, a regional term for the product, a landmark instead of a zip code. Prompts that match how buyers really ask get matched to the pages that answer that way.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Cut what doesn't apply.\"}),\" National comparison prompts, prompts about products that aren't sold there, prompts about services that launch next year. Each one you drop is a nightly run you spend somewhere better.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Add the local-only questions.\"}),\" Every market has a few. Availability, delivery radius, local regulation, whether you're open on a day that matters there. These are often where a new entrant can win first, because national brands never answer them.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"For a new country, add language to the list. If buyers ask in the local language, track prompts in that language, not translated English. The sources AI retrieves for a Spanish-language question are different sources, and measuring the English version tells you about a market that isn't the one you entered.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Tag the whole set with the market name. That tag is what makes filtered client reporting possible later without re-deriving which prompts belong to which market every month.\"}),`\n`,(0,t.jsx)(r,{title:\"Review the inherited prompts for market fit\",page:\"Prompts Dashboard\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Prompts running in the Denver market scope\",value:20,target:20,caption:\"6 reworded, 3 dropped, 2 local-only added\"},children:(0,t.jsx)(e.p,{children:\"Prompts inherit from the parent with the location injected, so the new market starts with a working set instead of a blank page, and your edits stay scoped to that market. Generation frameworks like category entry points and buyer's journey fill gaps where the inherited set is thin on local intent. Tags carry through to metrics and exports, which is what lets a multi-market client report filter cleanly to one market at a time.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-measure-ai-visibility-in-a-new-market-quote.webp\",quote:\"A brand that owns its home market can be close to invisible one state over, and a blended number will never tell you which.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-measure-ai-visibility-in-a-new-market\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick local goals worth measuring\"}),`\n`,(0,t.jsx)(e.p,{children:\"A new market has a shorter list of things that would actually change the numbers, and the list looks different from the national one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Local publishers usually beat national ones here. A city business journal, a regional trade site, or a well-read local blog gets pulled into local answers far more often than a national outlet does, because the assistant's searches are looking for local sources. That's a friendlier target list than the national one too, since local press is easier to earn.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Score the list before you commit outreach hours. Two things decide whether a placement can do anything for this channel; whether AI can read the site at all, and whether AI already cites it for questions in your category. Plenty of well-known publications block AI crawlers, and a placement there won't move a local answer no matter how good the story is.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then there's the client's own local pages. A city landing page, a location page, a local FAQ. These are frequently the fastest win in a new market, because they're the only pages that can answer a local-intent question directly and the client controls all of them.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Local goal\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Why it works in a new market\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Typical time to effect\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"City or region landing page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The only page that answers local questions directly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3 to 6 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Local business directories\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'Dense local signals AI leans on for \"near me\" answers'}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4 to 8 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Regional press placement\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Local sources get retrieved for local questions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6 to 10 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Review site presence\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Feeds comparison and recommendation answers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"8 to 12 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Local partner or association pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Third-party confirmation the brand operates there\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6 to 12 weeks\"})]})]})]}),`\n`,(0,t.jsxs)(e.p,{children:[`Attach the shortlist to a project as goals with the market's date range on it. That turns \"the exp
2ansion is going well\" into a number the client can see, and it gives the monthly report something to show besides a share of voice line. `,(0,t.jsx)(e.a,{href:\"/blog/how-to-build-monthly-ai-visibility-client-reports\",children:\"Building monthly AI visibility client reports\"}),\" covers how that packaging works across a book of clients.\"]}),`\n`,(0,t.jsx)(r,{title:\"Attach the market's publishers and pages as goals\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"score\",label:\"Average AI Placement Value across Denver targets\",value:61,target:75},children:(0,t.jsx)(e.p,{children:\"A project holds the market's goals, so each local publisher or landing page gets tracked from setup through citation in one place, filtered to the prompts you tagged for that market. Score the publisher list first so outreach goes to outlets AI can actually read; the same score becomes the benchmark you report against later. Project date ranges make the export read as an expansion story rather than a snapshot.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch share of voice per market, not blended\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now the reading, which is where most expansion measurement goes wrong.\"}),`\n`,(0,t.jsx)(e.p,{children:'Put the new market on its own line, next to the home market, on the same chart. That comparison is the whole point. The home market shows what \"good\" looks like for this brand with mature local signals behind it, and the new market shows how far there is to go.'}),`\n`,(0,t.jsx)(e.p,{children:\"Expect the first read to be low. Single digits is normal, and zero happens. That's information, not failure; it says nothing local points at this brand yet, so AI has nothing to retrieve. What you're watching for over the following months is the slope, not the level.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Three patterns come up often enough to name.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Slow and steady climb.\"}),\" Local pages went live, a directory or two picked the brand up, and each week adds a little. This is what the work looks like when it's working.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Flat at zero for months.\"}),\" Usually means nothing local exists yet. Check whether the location pages actually shipped and whether the brand is in the obvious local directories before touching anything else.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"A jump with no cause.\"}),\" Someone did something. A local placement ran, a partner listed the brand, a review site crossed a threshold. Find it and mark it, because it's the most repeatable thing you'll learn all quarter.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Read the citations underneath the numbers too, not just the share of voice. In a new market the source list is more useful than the score, because it tells you exactly which local sites AI trusts for these questions. That list is your outreach plan for the next quarter, and you didn't have to guess at it.\"}),`\n`,(0,t.jsx)(r,{title:\"Read the new market on its own line\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"trend\",label:\"Share of voice in the Denver market\",series:[2,3,3,6,8,11,13,16],change:14,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"The metrics view breaks share of voice out by location, so the new market charts next to the home market instead of averaging into one brand number. A per-location summary on the property home gives the quick read across every market a client runs, and annotations sit on the same timeline so a jump comes with its cause attached. Citation Intelligence filtered to the market shows which local sources feed those answers.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What the first quarter should produce\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set expectations before the first report goes out, because the first month of a new market rarely looks impressive and the reason is structural rather than a problem with the work.\"}),`\n`,(0,t.jsx)(e.p,{children:\"By the end of a quarter, three deliverables are reasonable to promise.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A real starting position.\"}),\" Share of voice in the market, the local competitors AI names, and the sources it cites. Even if the numbers are small, this is the baseline every later claim gets measured against. The approach is the same one in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining a brand's AI visibility\"}),\", scoped to one market.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"A local source list.\"}),\" The sites AI leans on for these questions, ranked by whether they're readable and already cited. That's a targeting document worth more than most of what a launch plan usually contains.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"An early slope.\"}),\" Not a win, a direction. Whether the line is moving off the floor tells you if the local work is landing, and it does that months before the share of voice number is worth showing to anyone senior.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Keep the home market on every chart, all the way through. It's the control. When both lines move together, something changed about the brand overall; when only the new market moves, the expansion work did it. That distinction is hard to argue with, and it's the difference between reporting activity and reporting effect.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One last habit. Set the next market up before it opens, not after. Two or three weeks of pre-launch data costs almost nothing and turns the launch report into a before and after instead of a single number with no context behind it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}function d(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"1d:[\"$\",\"$L10\",\"how-to-measure-ai-visibility-in-a-new-market\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$69\",\"title\":\"How to Measure AI Search Visibility in a New Market\",\"date\":\"2026-09-03\",\"image\":\"/images/blog/how-to-measure-ai-visibility-in-a-new-market.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"How do you measure AI search visibility in a new city, region, or country? Not with your blended brand number, because that's mostly made of the market you already own. Here's the setup agencies use to track a new market on its own line, from the location scope through local competitors, local prompts, local goals, and per-market share of voice.\",\"tags\":[\"Agencies\",\"How-to\",\"Workflows\",\"Local Search\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Why can't I just use my existing AI visibility numbers for a new market?\",\"answer\":\"Because the number is an average, and it's weighted toward the market where you already have coverage, reviews, and local press. A brand at 30% share of voice nationally can sit near zero in a city it entered last quarter, and the blended figure will keep looking healthy while the expansion stalls.\"},{\"question\":\"Do AI assistants actually answer differently by location?\",\"answer\":\"Yes, for anything with local intent. The assistant runs web searches to build its answer, those searches pick up local signals, and the sources it finds skew local. Ask about the best option in Denver and you get a different set of brands than the same question asked about Austin.\"},{\"question\":\"How many prompts does a new market need?\",\"answer\":\"Most agencies land between 15 and 25 per market. Start from the parent brand's prompts with the geography added, cut the ones that make no sense locally, then add the handful of questions people only ask in that market. Every tracked prompt runs nightly and bills separately, so pruning matters.\"},{\"question\":\"How long before a new market shows movement?\",\"answer\":\"Give it 8 to 12 weeks before you judge anything. A new market usually starts with almost no local sources pointing at the brand, so the work is building those sources first; local press, directories, review sites, and partner pages. AI can only repeat what it can find.\"},{\"question\":\"Should the new market be a separate property or a location under the existing one?\",\"answer\":\"A location under the existing brand, in almost every case. It inherits the brand snapshot and prompt structure so setup takes minutes instead of hours, and it keeps the home market available as the comparison line that makes the new numbers readable.\"}],\"howTo\":{\"name\":\"How to measure AI visibility in a new market\",\"description\":\"A step-by-step workflow for agencies and in-house teams that sets up separate AI visibility measurement for a new city, region, or country, so expansion progress is visible instead of buried in a blended brand average.\",\"steps\":[{\"name\":\"Set the new market up as its own scope\",\"text\":\"Add the city, region, or country as a tracked location so its results stay separate from the home market instead of averaging into it.\"},{\"name\":\"Rebuild the competitor set for that market\",\"text\":\"Replace the national rival list with the brands AI actually names in the new market, including local players nobody at head office watches.\"},{\"name\":\"Rewrite the prompts so they sound local\",\"text\":\"Start from the parent prompts with the geography added, cut the ones that don't apply, and add the questions people only ask in that market.\"},{\"name\":\"Pick local goals worth measuring\",\"text\":\"Choose the local publishers and pages the expansion depends on, score them for AI value first, and attach them to a project as goals.\"},{\"name\":\"Watch share of voice per market, not blended\",\"text\":\"Read the new market on its own line against the home market, and treat the gap between them as the size of the job.\"}]},\"_meta\":{\"filePath\":\"how-to-measure-ai-visibility-in-a-new-market.mdx\",\"fileName\":\"how-to-measure-ai-visibility-in-a-new-market.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-measure-ai-visibility-in-a-new-market\"},\"body\":\"$6a\",\"locale\":\"en\",\"path\":\"how-to-measure-ai-visibility-in-a-new-market\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"6b:T474d,"])</script>
2<script>self.__next_f.push([1,"To track campaign visibility in AI answers, start by writing down the three to six exact messages the campaign has to land, then add 10 to 15 tagged prompts that ask the questions the campaign wants to own, running nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews from at least two weeks before launch. Build the target outlet list around publishers AI can read, annotate your flight dates and placements so movement has a cause, and watch message pull-through weekly across the flight rather than checking once at the end. When coverage lands, group it and look at which placements get cited in AI answers; expect three to six weeks between a story running and any movement in the numbers. The result is a campaign report that says whether the story traveled into the channel where buyers are now asking their questions, not just where it was published.\n\nHere's the moment this workflow is built for. The campaign wrapped, the coverage report looks strong, and somebody in the room asks what ChatGPT says about the company now. Nobody knows. The clip count doesn't answer it and neither does the impressions estimate.\n\n## What a coverage report leaves out\n\nTraditional campaign measurement counts placements, reach, and sometimes sentiment. All of it describes what publishers did. None of it describes what AI assistants did with the result.\n\nThose are separate outcomes now. A story can run in a well-known outlet and never enter an AI answer, because a lot of major publications block AI crawlers or sit outside the sources assistants lean on for your topic. Another story can run somewhere smaller, get read constantly, and quietly become the thing AI repeats about your category for the next year.\n\nSo a campaign has two scoreboards. The familiar one measures whether the media accepted your story. The other measures whether the machines that answer buyer questions accepted it. Tracking the second one takes setup before the campaign launches, which is the part teams usually skip.\n\nThe good news is that the setup uses things you already have. You have messages. You have a target list. You have flight dates. Each of those becomes something measurable.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Record the messages | Writing the claims down as text to match | Each message has a starting rate |\n| 2. Tag the prompts | Adding campaign questions to daily tracking | A filter that isolates campaign work |\n| 3. Score the outlet list | Checking which targets AI can read | Targets ranked by AI value, not just reach |\n| 4. Annotate the flight | Marking launch and placement dates | Every jump has a label next to it |\n| 5. Watch pull-through | Measuring message rates during the flight | Campaign messages rising, not just mentions |\n| 6. Group the coverage | Checking which placements get cited | A cited list and an ignored list |\n\n## Write down the messages the campaign has to land\n\nEvery campaign has a small set of claims it's trying to install. The sustainability push wants people to know the packaging is recycled. The funding announcement wants the category framing to stick, not just the dollar figure.\n\nWrite those claims out as sentences, before launch. Three to six is the useful range. More than that and you're describing a brand, not a campaign.\n\nBe specific about wording. \"We're good for the environment\" can't be measured. \"Gear made from 80% recycled materials\" can, because you can check whether an answer says something equivalent. Vague messages produce vague reporting, and they're the reason so many campaign retrospectives end with an argument about interpretation.\n\nAdd the negative ones too. If the campaign exists partly to correct something, record the claim you're pushing against, so you can watch it fade instead of hoping it does. Rebrands work the same way, and [tracking a rebrand in AI answers](/blog/how-to-track-a-rebrand-in-ai-answers) covers that pattern in more depth.\n\nThen get a starting rate for each message before anything launches. A message that's already at 30% is a different job than one sitting at zero, and after the campaign nobody will remember which was which.\n\n\u003cWorkflowCallout\n  title=\"Record the campaign claims and get a baseline rate\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Gear made from 80% re
2cycled materials\", done: true },\n      { label: \"Carbon-neutral shipping on all orders\", done: true },\n      { label: \"Lifetime repair guarantee on every product\", done: true },\n      { label: \"Overpriced compared to entry brands (negative)\", done: true },\n      { label: \"Baseline captured before launch\", done: false },\n    ],\n  }}\n\u003e\n  Key Messages stores each claim as tracked text and matches it against the answers your prompts generate every night, so you get a mention rate per message rather than a yes or no. Tagging the campaign's messages with the campaign name keeps them separate from your always-on brand messages when you report. Negative messages are tracked the same way, which is what makes a correction campaign measurable.\n\u003c/WorkflowCallout\u003e\n\n## Turn the campaign into prompts you can track\n\nYour always-on prompts ask about your brand and category. A campaign usually pushes on something narrower, and if you only watch the standing prompt set, a real win can hide inside an average.\n\nSo add prompts that ask the questions the campaign wants to own. For a sustainability campaign, that's the questions a buyer asks about sustainable options in your category, not questions about you. Most campaign messages are meant to be picked up before anyone names a brand, so the prompts should be written that way.\n\nA workable set looks like this:\n\n- Four to eight problem questions, with no brand named, where you want your message to surface.\n- Two or three comparison questions where the campaign's claim should differentiate you.\n- One or two direct brand questions, to catch changes in how AI summarizes you overall.\n\nTag every one of them with the campaign name. That tag is what makes the reporting possible later, because it lets you filter the whole funnel down to campaign work and leave the rest of your tracking out of the picture.\n\nGet them running before launch, not after. You want at least two weeks of pre-campaign data, or your before number is a guess.\n\n\u003cWorkflowCallout\n  title=\"Add campaign prompts and tag them\"\n  page=\"Prompts Dashboard\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Prompts tagged campaign-summer, running nightly\",\n    value: 12,\n    target: 12,\n    caption: \"9 problem, 2 comparison, 1 brand\",\n  }}\n\u003e\n  The Prompts Dashboard generates prompt sets from frameworks like category entry points and buyer's journey, so you can build a campaign set quickly and edit the wording rather than starting from a blank box. Tags carry through to every downstream view, which is what lets the metrics and funnel views filter to this campaign later. Running them nightly from before launch gives you the pre-flight baseline the retrospective depends on.\n\u003c/WorkflowCallout\u003e\n\n## Set a target outlet list you can score\n\nThe media target list is usually built from reach, relationships, and relevance. Add one more filter before you commit the outreach hours.\n\nCan AI read the outlet, and does AI already cite it for your topic?\n\nThose two questions split a target list fast. Some well-known publications block AI crawlers outright, so a placement there does nothing for this channel no matter how good the story is. Other outlets, often trade press and specialist sites, get read constantly and show up in AI answers about your category all the time.\n\nThat doesn't mean dropping the blocked outlets. A placement in a major paper still does the job it always did for credibility and reach. It means knowing, before the campaign, which part of your list can move AI answers and which part can't, so nobody expects both from the same placement. [Building a pitch list AI can actually see](/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see) walks through the scoring itself.\n\nOnce the list is set, attach it to the campaign as a goal with the outlets named. Then the question \"did we get placements in the outlets that matter to AI\" has a number instead of a debate.\n\n\u003cWorkflowCallout\n  title=\"Attach the outlet list to the campaign as a goal\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"score\",\n    label: \"Average AI Placement Value across target outlets\",\n    value: 68,\n    target: 75,\n  }}\n\u003e\n  A PR project holds the campaign's publisher goals, so each target outlet gets tracked from pitch through placement to citation in one place. Score the list in Publisher Lookup first; the same value score that ranks outlets before outreach becomes the benchmark you report against afterward. The project also carries the campaign date range, which is what makes the export at the end a campaign retrospective rather than a snapshot.\n\u003c/WorkflowCallout\u003e\n\n## Mark the flight dates and the placements\n\nThis step takes five minutes and saves the retrospective.\n\nMark the campaign launch date. Mark each wave if the campaign runs 
2in waves. Mark every major placement on the day it publishes. Mark anything else that could move the numbers, like a product launch or an executive interview that isn't part of this campaign.\n\nSix weeks later, when a line jumps, you'll be able to say what caused it. Without the marks you get a chart with movement in it and a room full of theories.\n\nAnnotations also catch the thing nobody plans for. A competitor announcement in week three, an unrelated news cycle, a change to your own site. Any of those can move your numbers, and if they're on the timeline you won't spend the retrospective crediting your campaign for someone else's event.\n\nOne habit worth keeping. Annotate the placement date, not the date you found the clip. Coverage tracking often lags by a few days, and a three-day error is enough to line a jump up with the wrong cause.\n\n\u003cWorkflowCallout\n  title=\"Put the campaign timeline on the chart\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Campaign launch, Sept 8\", done: true },\n      { label: \"Wave 2 trade outreach, Sept 22\", done: true },\n      { label: \"Feature in Outdoor Trade Weekly, Sept 25\", done: true },\n      { label: \"Competitor funding news, Oct 1\", done: true },\n      { label: \"Campaign close, Oct 17\", done: false },\n    ],\n  }}\n\u003e\n  Annotations sit on the property timeline and render on every metrics chart, so a change in share of voice or message pull-through shows its cause without anyone reconstructing it from memory. They carry into exports too, which means the campaign chart an executive sees comes with the labels already on it.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-track-campaign-visibility-in-ai-answers-quote.webp\"\n  quote=\"A campaign can win every placement on the target list and still leave AI answering the question exactly the way it did before you started.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-track-campaign-visibility-in-ai-answers\"\n/\u003e\n\n## Watch message pull-through while the campaign runs\n\nNow the campaign is live and the numbers start doing something. Two measurements matter, and they answer different questions.\n\n**Message pull-through** asks how often your campaign claims show up in AI answers to problem questions, before any brand gets named. It's the closest thing to measuring whether the story traveled.\n\n**Share of voice** asks how often your brand gets mentioned at all for the prompts you track. Filter it to campaign-tagged prompts and you get the campaign's own share, without your standing brand tracking diluting it.\n\n| Number | Question it answers | Where it moves first |\n| :--- | :--- | :--- |\n| Message pull-through | Is AI repeating the campaign's claim | Problem-stage prompts, no brand named |\n| Campaign share of voice | Is the brand showing up for campaign questions | Comparison and decision prompts |\n| Negative message rate | Is the claim we're correcting fading | Anywhere the old story is repeated |\n| Citations from campaign coverage | Is our earned media being read | Sources listed under AI answers |\n\nHere's what a working campaign looks like in those numbers. An outdoor gear brand runs a six-week sustainability push behind the message \"gear made from 80% recycled materials.\" That message starts at a 14% mention rate across 12 campaign-tagged prompts. Two weeks after the trade coverage lands, it's at 21%. By the close of the flight it's at 31%, and 5 of the 14 placements show up as cited sources in AI answers. The clip count for that campaign was 14 either way; the second set of numbers is the part that says the story moved.\n\nCheck weekly, not daily. Daily readings on a campaign look like static, because AI answers vary between sessions and one flat day means nothing. A weekly read across a six-week flight gives you a shape you can trust.\n\nExpect a lag of three to six weeks between a placement running and pull-through moving. The story has to be published, crawled, indexed, and then chosen when someone asks a question. Teams that check a week after launch and see nothing usually conclude the campaign failed, when the pages hadn't been read yet.\n\nIf a message stays flat while others rise, look at the wording before you blame the outreach. Messages that are close to how buyers actually phrase the problem get picked up. Messages written in internal language tend not to, even with strong coverage behind them.\n\n\u003cWorkflowCallout\n  title=\"Track the campaign message rate through the flight\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"trend\",\n    label: \"Answers repeating the recycled-materials message\",\n    series: [14, 13, 16, 18, 21, 25, 28, 31],\n    change: 17,\n    suffix: \"%\",\n  }}\n\u003e\n  The metrics view charts Share of Influence for each tracked message with your annotations laid over it, and the funnel band filters to campaign-tagged prompts so the awareness stage shows the campaign rather than the whole brand. Message pull-through is measured on problem-stage prompts where no brand is named, which is why it can move well before share of voice does.\n\u003c/WorkflowCallout\u003e\n\n## Group the coverage and see what AI actually cites\n\nAs placements land, put them in one group so the campaign's coverage can be measured as a set rather than one link at a time.\n\nThen look at the part traditional reporting can't show you. Which of these placements is AI citing when it answers your campaign's questions?\n\nYou'll usually get three buckets:\n\n- **Cited and working.** The placement shows up as a source in AI answers. This is the win, and it's worth noting the outlet because it's a priority target next time.\n- **Readable but ignored.** AI can access the page and doesn't use it. Often the story is written for reach rather than for a question anyone asks, so nothing about it matches a query.\n- **Invisible.** The outlet blocks AI crawlers or the page can't be read. It did other work for you; it just didn't do this.\n\nThat breakdown is the most useful thing to bring to the next campaign kickoff. After two or three campaigns you'll have a list of outlets that reliably convert into AI citations for your category, which is a better targeting input than reach numbers alone. [Connecting earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility) goes deeper on the valuation side of this.\n\nCheck the wider citation mix too, not just your own coverage. If AI keeps citing the same three sites when it answers your campaign's questions and none of them are yours, that's your pitch list for the next round, sitting in plain view.\n\n\u003cWorkflowCallout\n  title=\"See which campaign placements turned into citations\"\n  page=\"Coverage Groups\"\n  href=\"/docs/dashboards/coverage-groups\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Campaign placements cited in AI answers\",\n    before: \"0 of 14\",\n    after: \"5 of 14\",\n    tone: \"positive\",\n    caption: \"six weeks after launch\",\n  }}\n\u003e\n  A coverage group collects the campaign's placement URLs and its AI Citations page shows which of them were actually cited, on which platform, and for which prompt. Pairing it with Citation Intelligence shows the wider source mix for the same questions, so you can see the sites AI leans on for your topic whether or not you placed there.\n\u003c/WorkflowCallout\u003e\n\n## What to keep after the campaign ends\n\nClose the project and export the retrospective while the campaign is fresh. The export is more convincing than a summary written from memory, because the annotations are on the chart and the citation counts come with the prompts attached.\n\nThree things are worth carrying into the next campaign:\n\n1. **The lag you observed.** How many weeks passed between placements landing and pull-through moving. That's your planning number, and it beats any general estimate.\n2. **The outlets that converted.** Which targets produced AI citations, and which produced coverage that AI never read.\n3. **The messages that traveled.** The wording that got picked up tells you how buyers phrase the problem, which is useful well beyond PR.\n\nLeave the campaign prompts running for a few weeks after the flight ends. Pull-through often keeps climbing after the outreach stops, as coverage gets crawled and indexed, and a campaign that looked flat on the close date sometimes looks different a month later.\n\nSet the baseline before the next one launches. Almost every campaign that can't prove its AI impact failed at that step, not at the reporting step. Nobody wrote the messages down or ran the prompts before launch, so there was never a before to compare against.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"6c:T5e12,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var f=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),b=(a,e)=\u003e{for(var n in e)i(a,n,{get:e[n],enumerable:!0})},o=(a,e,n,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let s of m(e))!w.call(a,s)\u0026\u0026s!==n\u0026\u0026i(a,s,{get:()=\u003ee[s],enumerable:!(r=p(e,s))||r.enumerable});return a};var k=(a,e,n)=\u003e(n=a!=null?u(y(a)):{},o(e||!a||!a.__esModule?i(n,\"default\",{value:a,enumerable:!0}):n,a)),v=a=\u003eo(i({},\"__esModule\",{value:!0}),a);var l=f((T,h)=\u003e{h.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eg});var t=k(l());function c(a){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...a.components},{PullQuote:n,WorkflowCallout:r}=e;return n||d(\"PullQuote\",!0),r||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To track campaign visibility in AI answers, start by writing down the three to six exact messages the campaign has to land, then add 10 to 15 tagged prompts that ask the questions the campaign wants to own, running nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews from at least two weeks before launch. Build the target outlet list around publishers AI can read, annotate your flight dates and placements so movement has a cause, and watch message pull-through weekly across the flight rather than checking once at the end. When coverage lands, group it and look at which placements get cited in AI answers; expect three to six weeks between a story running and any movement in the numbers. The result is a campaign report that says whether the story traveled into the channel where buyers are now asking their questions, not just where it was published.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the moment this workflow is built for. The campaign wrapped, the coverage report looks strong, and somebody in the room asks what ChatGPT says about the company now. Nobody knows. The clip count doesn't answer it and neither does the impressions estimate.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What a coverage report leaves out\"}),`\n`,(0,t.jsx)(e.p,{children:\"Traditional campaign measurement counts placements, reach, and sometimes sentiment. All of it describes what publishers did. None of it describes what AI assistants did with the result.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Those are separate outcomes now. A story can run in a well-known outlet and never enter an AI answer, because a lot of major publications block AI crawlers or sit outside the sources assistants lean on for your topic. Another story can run somewhere smaller, get read constantly, and quietly become the thing AI repeats about your category for the next year.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So a campaign has two scoreboards. The familiar one measures whether the media accepted your story. The other measures whether the machines that answer buyer questions accepted it. Tracking the second one takes setup before the campaign launches, which is the part teams usually skip.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The good news is that the setup uses things you already have. You have messages. You have a target list. You have flight dates. Each of those becomes something measurable.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Record the messages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Writing the claims down as text to match\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Each message has a starting rate\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Tag the prompts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adding campaign questions to daily tracking\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A filter that isolates campaign work\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Score the outlet list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking which targets AI can read\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Targets ranked by AI value, not just reach\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Annotate the flight\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Marking launch and placement dates\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every jump has a label next to it\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Watch pull-through\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Measuring message rates during the flight\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Campaign messages rising, not just mentions\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Group the coverage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking which placements get cited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A cited list and an ignored list\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Write down the messages the campaign has to land\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every campaign has a small set of claims it's trying to install. The sustainability push w
2ants people to know the packaging is recycled. The funding announcement wants the category framing to stick, not just the dollar figure.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Write those claims out as sentences, before launch. Three to six is the useful range. More than that and you're describing a brand, not a campaign.\"}),`\n`,(0,t.jsx)(e.p,{children:`Be specific about wording. \"We're good for the environment\" can't be measured. \"Gear made from 80% recycled materials\" can, because you can check whether an answer says something equivalent. Vague messages produce vague reporting, and they're the reason so many campaign retrospectives end with an argument about interpretation.`}),`\n`,(0,t.jsxs)(e.p,{children:[\"Add the negative ones too. If the campaign exists partly to correct something, record the claim you're pushing against, so you can watch it fade instead of hoping it does. Rebrands work the same way, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-a-rebrand-in-ai-answers\",children:\"tracking a rebrand in AI answers\"}),\" covers that pattern in more depth.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Then get a starting rate for each message before anything launches. A message that's already at 30% is a different job than one sitting at zero, and after the campaign nobody will remember which was which.\"}),`\n`,(0,t.jsx)(r,{title:\"Record the campaign claims and get a baseline rate\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"checklist\",items:[{label:\"Gear made from 80% recycled materials\",done:!0},{label:\"Carbon-neutral shipping on all orders\",done:!0},{label:\"Lifetime repair guarantee on every product\",done:!0},{label:\"Overpriced compared to entry brands (negative)\",done:!0},{label:\"Baseline captured before launch\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Key Messages stores each claim as tracked text and matches it against the answers your prompts generate every night, so you get a mention rate per message rather than a yes or no. Tagging the campaign's messages with the campaign name keeps them separate from your always-on brand messages when you report. Negative messages are tracked the same way, which is what makes a correction campaign measurable.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn the campaign into prompts you can track\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your always-on prompts ask about your brand and category. A campaign usually pushes on something narrower, and if you only watch the standing prompt set, a real win can hide inside an average.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So add prompts that ask the questions the campaign wants to own. For a sustainability campaign, that's the questions a buyer asks about sustainable options in your category, not questions about you. Most campaign messages are meant to be picked up before anyone names a brand, so the prompts should be written that way.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A workable set looks like this:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Four to eight problem questions, with no brand named, where you want your message to surface.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Two or three comparison questions where the campaign's claim should differentiate you.\"}),`\n`,(0,t.jsx)(e.li,{children:\"One or two direct brand questions, to catch changes in how AI summarizes you overall.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Tag every one of them with the campaign name. That tag is what makes the reporting possible later, because it lets you filter the whole funnel down to campaign work and leave the rest of your tracking out of the picture.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Get them running before launch, not after. You want at least two weeks of pre-campaign data, or your before number is a guess.\"}),`\n`,(0,t.jsx)(r,{title:\"Add campaign prompts and tag them\",page:\"Prompts Dashboard\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Prompts tagged campaign-summer, running nightly\",value:12,target:12,caption:\"9 problem, 2 comparison, 1 brand\"},children:(0,t.jsx)(e.p,{children:\"The Prompts Dashboard generates prompt set
2s from frameworks like category entry points and buyer's journey, so you can build a campaign set quickly and edit the wording rather than starting from a blank box. Tags carry through to every downstream view, which is what lets the metrics and funnel views filter to this campaign later. Running them nightly from before launch gives you the pre-flight baseline the retrospective depends on.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Set a target outlet list you can score\"}),`\n`,(0,t.jsx)(e.p,{children:\"The media target list is usually built from reach, relationships, and relevance. Add one more filter before you commit the outreach hours.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Can AI read the outlet, and does AI already cite it for your topic?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Those two questions split a target list fast. Some well-known publications block AI crawlers outright, so a placement there does nothing for this channel no matter how good the story is. Other outlets, often trade press and specialist sites, get read constantly and show up in AI answers about your category all the time.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"That doesn't mean dropping the blocked outlets. A placement in a major paper still does the job it always did for credibility and reach. It means knowing, before the campaign, which part of your list can move AI answers and which part can't, so nobody expects both from the same placement. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see\",children:\"Building a pitch list AI can actually see\"}),\" walks through the scoring itself.\"]}),`\n`,(0,t.jsx)(e.p,{children:'Once the list is set, attach it to the campaign as a goal with the outlets named. Then the question \"did we get placements in the outlets that matter to AI\" has a number instead of a debate.'}),`\n`,(0,t.jsx)(r,{title:\"Attach the outlet list to the campaign as a goal\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"score\",label:\"Average AI Placement Value across target outlets\",value:68,target:75},children:(0,t.jsx)(e.p,{children:\"A PR project holds the campaign's publisher goals, so each target outlet gets tracked from pitch through placement to citation in one place. Score the list in Publisher Lookup first; the same value score that ranks outlets before outreach becomes the benchmark you report against afterward. The project also carries the campaign date range, which is what makes the export at the end a campaign retrospective rather than a snapshot.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Mark the flight dates and the placements\"}),`\n`,(0,t.jsx)(e.p,{children:\"This step takes five minutes and saves the retrospective.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Mark the campaign launch date. Mark each wave if the campaign runs in waves. Mark every major placement on the day it publishes. Mark anything else that could move the numbers, like a product launch or an executive interview that isn't part of this campaign.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Six weeks later, when a line jumps, you'll be able to say what caused it. Without the marks you get a chart with movement in it and a room full of theories.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Annotations also catch the thing nobody plans for. A competitor announcement in week three, an unrelated news cycle, a change to your own site. Any of those can move your numbers, and if they're on the timeline you won't spend the retrospective crediting your campaign for someone else's event.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One habit worth keeping. Annotate the placement date, not the date you found the clip. Coverage tracking often lags by a few days, and a three-day error is enough to line a jump up with the wrong cause.\"}),`\n`,(0,t.jsx)(r,{title:\"Put the campaign timeline on the chart\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"checklist\",items:[{label:\"Campaign launch, Sept 8\",done:!0},{label:\"Wave 2 trade outreach, Sept 22\",done:!0},{label:\"Feature in Outdoor Trade Weekly, Sept 25\",done:!0},{label:\"Competitor funding news, Oct 1\",done:!0},{label:\"Campaign close, Oct 17\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Annotations sit on the property timeline and render on every metrics chart, so a change in share of voice or message pull-through shows its cause without anyone reconstructing it from memory. They carry into exports too, which means the campaign chart an executive sees comes with the labels already on it.\"})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-track-campaign-visibility-in-ai-answers-quote.webp\",quote:\"A campaign can win every placement on the target list and still leave AI answering the question exactly the way it did before you started.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-track-campaign-visibility-in-ai-answers\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch message pull-through while the campaign runs\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now the campaign is live and the numbers start doing something. Two measurements matter, and they answer different questions.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Message pull-through\"}),\" asks how often your campaign claims show up in AI answers to problem questions, before any brand gets named. It's the closest thing to measuring whether the story traveled.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Share of voice\"}),\" asks how often your brand gets mentioned at all for the prompts you track. Filter it to campaign-tagged prompts and you get the campaign's own share, without your standing brand tracking diluting it.\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Number\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Question it answers\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Where it moves first\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Message pull-through\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Is AI repeating the campaign's claim\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Problem-stage prompts, no brand named\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Campaign share of voice\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Is the brand showing up for campaign questions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Comparison and decision prompts\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Negative message rate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Is the claim we're correcting fading\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Anywhere the old story is repeated\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Citations from campaign coverage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Is our earned media being read\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Sources listed under AI answers\"})]})]})]}
2),`\n`,(0,t.jsx)(e.p,{children:`Here's what a working campaign looks like in those numbers. An outdoor gear brand runs a six-week sustainability push behind the message \"gear made from 80% recycled materials.\" That message starts at a 14% mention rate across 12 campaign-tagged prompts. Two weeks after the trade coverage lands, it's at 21%. By the close of the flight it's at 31%, and 5 of the 14 placements show up as cited sources in AI answers. The clip count for that campaign was 14 either way; the second set of numbers is the part that says the story moved.`}),`\n`,(0,t.jsx)(e.p,{children:\"Check weekly, not daily. Daily readings on a campaign look like static, because AI answers vary between sessions and one flat day means nothing. A weekly read across a six-week flight gives you a shape you can trust.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Expect a lag of three to six weeks between a placement running and pull-through moving. The story has to be published, crawled, indexed, and then chosen when someone asks a question. Teams that check a week after launch and see nothing usually conclude the campaign failed, when the pages hadn't been read yet.\"}),`\n`,(0,t.jsx)(e.p,{children:\"If a message stays flat while others rise, look at the wording before you blame the outreach. Messages that are close to how buyers actually phrase the problem get picked up. Messages written in internal language tend not to, even with strong coverage behind them.\"}),`\n`,(0,t.jsx)(r,{title:\"Track the campaign message rate through the flight\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"trend\",label:\"Answers repeating the recycled-materials message\",series:[14,13,16,18,21,25,28,31],change:17,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"The metrics view charts Share of Influence for each tracked message with your annotations laid over it, and the funnel band filters to campaign-tagged prompts so the awareness stage shows the campaign rather than the whole brand. Message pull-through is measured on problem-stage prompts where no brand is named, which is why it can move well before share of voice does.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Group the coverage and see what AI actually cites\"}),`\n`,(0,t.jsx)(e.p,{children:\"As placements land, put them in one group so the campaign's coverage can be measured as a set rather than one link at a time.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then look at the part traditional reporting can't show you. Which of these placements is AI citing when it answers your campaign's questions?\"}),`\n`,(0,t.jsx)(e.p,{children:\"You'll usually get three buckets:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Cited and working.\"}),\" The placement shows up as a source in AI answers. This is the win, and it's worth noting the outlet because it's a priority target next time.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Readable but ignored.\"}),\" AI can access the page and doesn't use it. Often the story is written for reach rather than for a question anyone asks, so nothing about it matches a query.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Invisible.\"}),\" The outlet blocks AI crawlers or the page can't be read. It did other work for you; it just didn't do this.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"That breakdown is the most useful thing to bring to the next campaign kickoff. After two or three campaigns you'll have a list of outlets that reliably convert into AI citations for your category, which is a better targeting input than reach numbers alone. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"Connecting earned media to AI visibility\"}),\" goes deeper on the valuation side of this.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Check the wider citation mix too, not just your own coverage. If AI keeps citing the same three sites when it answers your campaign's questions and none of them are yours, that's your pitch list for the next round, sitting in plain view.\"}),`\n`,(0,t.jsx)(r,{title:\"See which campaign placements turned into citations\",page:\"Coverage Groups\",href:\"/docs/dashboards/coverage-groups\",signal:{kind:\"beforeAfter\",label:\"Campaign placements cited in AI answers\",before:\"0 of 14\",after:\"5 of 14\",tone
2:\"positive\",caption:\"six weeks after launch\"},children:(0,t.jsx)(e.p,{children:\"A coverage group collects the campaign's placement URLs and its AI Citations page shows which of them were actually cited, on which platform, and for which prompt. Pairing it with Citation Intelligence shows the wider source mix for the same questions, so you can see the sites AI leans on for your topic whether or not you placed there.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"What to keep after the campaign ends\"}),`\n`,(0,t.jsx)(e.p,{children:\"Close the project and export the retrospective while the campaign is fresh. The export is more convincing than a summary written from memory, because the annotations are on the chart and the citation counts come with the prompts attached.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Three things are worth carrying into the next campaign:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The lag you observed.\"}),\" How many weeks passed between placements landing and pull-through moving. That's your planning number, and it beats any general estimate.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The outlets that converted.\"}),\" Which targets produced AI citations, and which produced coverage that AI never read.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The messages that traveled.\"}),\" The wording that got picked up tells you how buyers phrase the problem, which is useful well beyond PR.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Leave the campaign prompts running for a few weeks after the flight ends. Pull-through often keeps climbing after the outreach stops, as coverage gets crawled and indexed, and a campaign that looked flat on the close date sometimes looks different a month later.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set the baseline before the next one launches. Almost every campaign that can't prove its AI impact failed at that step, not at the reporting step. Nobody wrote the messages down or ran the prompts before launch, so there was never a before to compare against.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function g(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(c,{...a})}):c(a)}function d(a,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"1e:[\"$\",\"$L10\",\"how-to-track-campaign-visibility-in-ai-answers\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$6b\",\"title\":\"How to Track Campaign Visibility in AI Answers\",\"date\":\"2026-09-02\",\"image\":\"/images/blog/how-to-track-campaign-visibility-in-ai-answers.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A campaign report full of placements says the outreach worked. It doesn't say whether AI assistants picked up the story, repeated your messages, or ever read the outlets you pitched. Here's how PR teams track a campaign in AI answers from kickoff through the retrospective, using the same flight dates and target list they already have.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Earned Media\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What does campaign visibility in AI answers actually measure?\",\"answer\":\"Two different things. The first is message pull-through, meaning how often the wording your campaign is built on shows up when someone asks AI about the problem you solve. The second is citation, meaning whether the coverage you earned gets read and referenced when AI builds those answers. A campaign can do well on one and badly on the other.\"},{\"question\":\"How long after a campaign launches should I expect movement?\",\"answer\":\"Plan on three to six weeks for most campaigns. A placement has to be published, crawled, indexed, and then chosen by an assistant answering a real question. Checking a week after launch usually measures the period before anything was read, which reads like failure and isn't.\"},{\"question\":\"Do I need different prompts for every campaign?\",\"answer\":\"You need a tagged subset, not a separate account. Keep your always-on brand prompts running, then add prompts that ask the questions this campaign is trying to own, and tag them with the campaign name so you can filter the whole funnel down to campaign work when you report.\"},{\"question\":\"What if the campaign lands great coverage and nothing changes in AI answers?\",\"answer\":\"That's a common and useful result. It usually means the outlets you won either block AI crawlers or aren't sources these assistants lean on for your topic. Score the outlet list before the next campaign, and check which publishers already get cited in your category.\"},{\"question\":\"How do I report campaign visibility to executives?\",\"answer\":\"Show three numbers side by side; message pull-through before and after the flight, share of voice for campaign-tagged prompts, and the count of earned placements that turned into AI citations. The third number is the one that connects the media list to the channel, and it's the one traditional coverage reports leave out.\"}],\"howTo\":{\"name\":\"How to track campaign visibility in AI answers\",\"description\":\"A step-by-step workflow for PR and communications teams that measures whether a campaign's messages and target outlets make it into AI answers, from message setup through the post-campaign retrospective.\",\"steps\":[{\"name\":\"Write down the messages the campaign has to land\",\"text\":\"Record the exact claims the campaign is built on so you can measure how often AI repeats them instead of guessing from coverage clips.\"},{\"name\":\"Turn the campaign into prompts you can track\",\"text\":\"Add the questions the campaign is trying to own, tag them with the campaign name, and run them daily alongside your always-on prompts.\"},{\"name\":\"Set a target outlet list you can score\",\"text\":\"Build the media target list around outlets AI can read and already cites in your category, then attach it to the campaign as a goal.\"},{\"name\":\"Mark the flight dates and the placements\",\"text\":\"Annotate launch, wave dates, and each major placement so later movement in the numbers has a cause attached to it.\"},{\"name\":\"Watch message pull-through while the campaign runs\",\"text\":\"Track how often your campaign messages surface in AI answers and filter the funnel to campaign-tagged prompts so brand noise stays out.\"},{\"name\":\"Group the coverage and see what AI actually cites\",\"text\":\"Collect the placements as one group and check which of them get cited by AI assistants, and which get ignored.\"}]},\"_meta\":{\"filePath\":\"how-to-track-campaign-visibility-in-ai-answers.mdx\",\"fileName\":\"how-to-track-campaign-visibility-in-ai-answers.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-track-campaign-visibility-in-ai-answers\"},\"body\":\"$6c\",\"locale\":\"en\",\"path\":\"how-to-track-campaign-visibility-in-ai-answers\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"6d:T1e1c,"])</script>
2<script>self.__next_f.push([1,"When ChatGPT answers a question about your category, you probably picture it searching the web, weighing the results, and writing a summary. Most of the time, that's what happens. But sometimes it does something different. It skips the open web entirely and goes straight to one specific site, the way you'd call a friend who knows the answer instead of googling it.\n\nThese direct consultations show up in the grounding searches AI runs behind the scenes; a query scoped to a single site instead of the whole web. The behavior arrived in ChatGPT this summer, and plenty of people in the AI visibility space have noted its arrival. What nobody had done is look at who actually receives these consultations. We just published [a study](https://research.spyglasses.io/articles/where-ai-looks-first) that classifies every one of them in our dataset. The results change how you should think about both content and PR.\n\n## Key Takeaways\n\n- When AI consults a site directly, it's usually not the brand being asked about. 81% of direct consultations in this study went to third-party sites; only 8% went to the brand's own site.\n- The trusted list is institutional. Government and court sites alone receive over a fifth of third-party consultations, and that holds even after correcting for our client mix. Reddit barely registers.\n- The list is an authority club. Sites AI consults directly scored a median of 60 on our AI Placement Value Score versus 44 for sites AI cited but never consulted. Premium and Strong tier sites make up 62% of the consulted list versus 41% of the merely-cited.\n- Comparison questions are the trigger. One in five brand-comparison answers included a direct site consultation; brand-identity and category questions sat at less than half that rate.\n- The practical move for SEO: publish factual, non-superlative comparison pages. For PR: placements on consulted sites are worth more than their traffic numbers suggest.\n\n## Your AI story is told by references\n\nHere's the number that should reframe your thinking: when AI decides to consult a site directly while answering questions in your category, there's an 81% chance that site is neither you nor a competitor you track. It's a third party. A regulator. A professional association. A review site. A vendor you've never heard of.\n\n![Horizontal bar chart: 81% of site:-scoped searches target third-party sites, 11% a tracked competitor's site, 8% the brand's own site.](/images/blog/ai-consultation-mix.png)\n\nThat means the sites AI trusts enough to ask directly are, overwhelmingly, sites you don't control. You can't optimize your way onto a government domain. But you can know which third parties AI treats as the authorities in your space, and you can make sure your brand shows up well on the ones that accept contributions, listings, or coverage.\n\nAnd 11% of the time, the consulted site belongs to a competitor you're already tracking. AI went to their website for an answer that shaped a response about your category. If that doesn't make comparison content feel urgent, the next section will.\n\n## Who's actually on the list\n\nWe classified every consulted domain in the study into fourteen categories. The institutional lean is unmistakable: government and courts lead, followed by professional and industry associations, healthcare systems, and academic sources. Social platforms are almost absent; Reddit accounted for 0.14% of third-party consultations in this study.\n\n![Paired bars showing who AI consults directly, before and after balancing client mix. Government and courts lead at 23% observed and 22% balanced.](/images/blog/ai-consultation-kinds.png)\n\nOne caveat we checked carefully: our client base skews toward certain industries, so we re-weighted the data as if every client sector counted equally. The institutional pattern held. Government and courts stayed above 20% either way. This isn't an artifact of who uses Spyglasses; it's how the model behaves.\n\nThe biggest single slice, though, is ordinary businesses. Many of them are competitors our clients weren't tracking. AI found them, trusted them, and consulted them; the brands they compete with mostly have no idea. If you want to know who AI thinks your competitors are, the consultation list is the closest thing to a straight answer you'll get.\n\n## The authority club\n\nWe scored every consulted domain with our [AI Placement Value Score](/en/docs/methodology/ai-placement-value-score) and compared it against domains AI cited in the same answers but never consulted directly. The gap is large and consistent:\n\n- Median AIPVS: 60 for c
2onsulted sites, 44 for cited-only sites.\n- Premium and Strong tiers: 62% of consulted sites versus 41% of cited-only.\n- Consulted domains sit far higher in the Common Crawl web graph; median rank around #485,000 versus #2.3 million.\n\n![Two stacked bars of AI Placement Value tiers. Consulted sites: 14% Premium, 49% Strong. Cited-only sites: 3% Premium, 38% Strong.](/images/blog/ai-consultation-aipvs-tiers.png)\n\nFor PR teams, this is the earned-media implication: a placement on a site AI consults directly doesn't just reach that site's readers. It sits inside the source AI turns to first, before it even searches. When you're prioritizing outreach targets, the consulted list is a shortlist of publishers whose influence on AI answers is structural, not incidental.\n\n## Comparison questions send AI to the source\n\nWe also looked at which kinds of questions trigger direct consultations. The assumption in the industry (ours included, until we ran the numbers) was that asking about a brand directly sends AI to that brand's site. The data says otherwise.\n\nQuestions comparing brands triggered a direct consultation in 20% of answers. Questions about a single brand's identity? 9%. Generic category questions? 8%. When AI weighs one product against another, that's when it wants primary sources.\n\n![Bar chart with confidence intervals: 20% of brand-comparison answers include a direct site consultation, versus 9% for brand-identity and 8% for category questions.](/images/blog/ai-consultation-prompt-triggers.png)\n\nThe takeaway for content teams is specific: publish comparison pages. Your product versus the alternatives, feature by feature, with real facts. Keep them factual and skip the superlatives; the page's job is to be the source AI consults when a buyer asks \"X or Y?\", and a sales pitch dressed as a comparison won't earn that trust. This is one of the few content moves with a direct, measured line to AI consultation behavior.\n\n## What to do with this\n\n1. **Watch your consultations.** The [Brand Dashboard](/en/docs/dashboards/brand-dashboard) shows which sites AI consulted directly in your category, classified as yours, a competitor's, or a third party's. If AI is consulting a competitor you don't track, add them.\n2. **Publish factual comparison pages.** Comparison questions are the consultation trigger. Be the source worth consulting.\n3. **Treat the consulted third parties as PR targets.** Use [Citation Intelligence](/en/docs/dashboards/citation-intelligence) to see which sources influence AI in your space, and prioritize the ones AI consults directly. Their AIPVS tells you what a placement there is worth.\n4. **Don't panic about the institutional sites.** You won't get a placement on a court website. But knowing that AI grounds your category in regulators and associations tells you which facts about your brand need to be consistent everywhere those institutions might reference.\n\nThe full methodology, the classification data, and what we can and can't claim from an observational design are in [the research article](https://research.spyglasses.io/articles/where-ai-looks-first)."])</script>
2<script>self.__next_f.push([1,"6e:T2873,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var s in e)o(n,s,{get:e[s],enumerable:!0})},r=(n,e,s,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let i of m(e))!y.call(n,i)\u0026\u0026i!==s\u0026\u0026o(n,i,{get:()=\u003ee[i],enumerable:!(a=g(e,i))||a.enumerable});return n};var b=(n,e,s)=\u003e(s=n!=null?u(p(n)):{},r(e||!n||!n.__esModule?o(s,\"default\",{value:n,enumerable:!0}):s,n)),v=n=\u003er(o({},\"__esModule\",{value:!0}),n);var h=f((k,c)=\u003e{c.exports=_jsx_runtime});var I={};w(I,{default:()=\u003ed});var t=b(h());function l(n){let e={a:\"a\",h2:\"h2\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"When ChatGPT answers a question about your category, you probably picture it searching the web, weighing the results, and writing a summary. Most of the time, that's what happens. But sometimes it does something different. It skips the open web entirely and goes straight to one specific site, the way you'd call a friend who knows the answer instead of googling it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"These direct consultations show up in the grounding searches AI runs behind the scenes; a query scoped to a single site instead of the whole web. The behavior arrived in ChatGPT this summer, and plenty of people in the AI visibility space have noted its arrival. What nobody had done is look at who actually receives these consultations. We just published \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/where-ai-looks-first\",children:\"a study\"}),\" that classifies every one of them in our dataset. The results change how you should think about both content and PR.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"When AI consults a site directly, it's usually not the brand being asked about. 81% of direct consultations in this study went to third-party sites; only 8% went to the brand's own site.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The trusted list is institutional. Government and court sites alone receive over a fifth of third-party consultations, and that holds even after correcting for our client mix. Reddit barely registers.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The list is an authority club. Sites AI consults directly scored a median of 60 on our AI Placement Value Score versus 44 for sites AI cited but never consulted. Premium and Strong tier sites make up 62% of the consulted list versus 41% of the merely-cited.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Comparison questions are the trigger. One in five brand-comparison answers included a direct site consultation; brand-identity and category questions sat at less than half that rate.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The practical move for SEO: publish factual, non-superlative comparison pages. For PR: placements on consulted sites are worth more than their traffic numbers suggest.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Your AI story is told by references\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the number that should reframe your thinking: when AI decides to consult a site directly while answering questions in your category, there's an 81% chance that site is neither you nor a competitor you track. It's a third party. A regulator. A professional association. A review site. A vendor you've never heard of.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/ai-consultation-mix.png\",alt:\"Horizontal bar chart: 81% of site:-scoped searches target third-party sites, 11% a tracked competitor's site, 8% the brand's own site.\"})}),`\n`,(0,t.jsx)(e.p,{children:\"That means the sites AI trusts enough to ask directly are, overwhelmingly, sites you don't control. You can't optimize your way onto a government domain. But you can know which third parties AI treats as the authorities in your space, and you can make sure your brand shows up well on the ones that accept contributions, listings, or coverage.\"}),`\n`,(0,t.jsx)(e.p,{children:\"And 11% of the time, the consulted site belongs to a competitor you're already tracking. AI went to their website for an answer that shaped a response about your category. If that doesn't make comparison content feel urgent, the next section will.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Who's actually on the list\"}),`\n`,(0,t.jsx)(e.p,{children:\"We classified every consulted domain in the study into fourteen categories. The institutional lean is unmistakable: government and courts lead, followed by professional and industry associations, healthcare systems, and academic sources. Social platforms are almost absent;
2 Reddit accounted for 0.14% of third-party consultations in this study.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/ai-consultation-kinds.png\",alt:\"Paired bars showing who AI consults directly, before and after balancing client mix. Government and courts lead at 23% observed and 22% balanced.\"})}),`\n`,(0,t.jsx)(e.p,{children:\"One caveat we checked carefully: our client base skews toward certain industries, so we re-weighted the data as if every client sector counted equally. The institutional pattern held. Government and courts stayed above 20% either way. This isn't an artifact of who uses Spyglasses; it's how the model behaves.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The biggest single slice, though, is ordinary businesses. Many of them are competitors our clients weren't tracking. AI found them, trusted them, and consulted them; the brands they compete with mostly have no idea. If you want to know who AI thinks your competitors are, the consultation list is the closest thing to a straight answer you'll get.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The authority club\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"We scored every consulted domain with our \",(0,t.jsx)(e.a,{href:\"/en/docs/methodology/ai-placement-value-score\",children:\"AI Placement Value Score\"}),\" and compared it against domains AI cited in the same answers but never consulted directly. The gap is large and consistent:\"]}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Median AIPVS: 60 for consulted sites, 44 for cited-only sites.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Premium and Strong tiers: 62% of consulted sites versus 41% of cited-only.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Consulted domains sit far higher in the Common Crawl web graph; median rank around #485,000 versus #2.3 million.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/ai-consultation-aipvs-tiers.png\",alt:\"Two stacked bars of AI Placement Value tiers. Consulted sites: 14% Premium, 49% Strong. Cited-only sites: 3% Premium, 38% Strong.\"})}),`\n`,(0,t.jsx)(e.p,{children:\"For PR teams, this is the earned-media implication: a placement on a site AI consults directly doesn't just reach that site's readers. It sits inside the source AI turns to first, before it even searches. When you're prioritizing outreach targets, the consulted list is a shortlist of publishers whose influence on AI answers is structural, not incidental.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Comparison questions send AI to the source\"}),`\n`,(0,t.jsx)(e.p,{children:\"We also looked at which kinds of questions trigger direct consultations. The assumption in the industry (ours included, until we ran the numbers) was that asking about a brand directly sends AI to that brand's site. The data says otherwise.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Questions comparing brands triggered a direct consultation in 20% of answers. Questions about a single brand's identity? 9%. Generic category questions? 8%. When AI weighs one product against another, that's when it wants primary sources.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/ai-consultation-prompt-triggers.png\",alt:\"Bar chart with confidence intervals: 20% of brand-comparison answers include a direct site consultation, versus 9% for brand-identity and 8% for category questions.\"})}),`\n`,(0,t.jsx)(e.p,{children:`The takeaway for content teams is specific: publish comparison pages. Your product versus the alternatives, feature by feature, with real facts. Keep them factual and skip the superlatives; the page's job is to be the source AI consults when a buyer asks \"X or Y?\", and a sales pitch dressed as a comparison won't earn that trust. This is one of the few content moves with a direct, measured line to AI consultation behavior.`}),`\n`,(0,t.jsx)(e.h2,{children:\"What to do with this\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Watch your consultations.\"}),\" The \",(0,t.jsx)(e.a,{href:\"/en/docs/dashboards/brand-dashboard\",children:\"Brand Dashboard\"}),\" shows which sites AI consulted directly in your category, classified as yours, a competitor's, or a third party's. If AI is consulting a competitor you don't track, add them.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Publish factual comparison pages.\"}),\" Comparison questions are the consultation trigger. Be the source worth consulting.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Treat the consulted third parties as PR targets.\"}),\" Use \",(0,t.jsx)(e.a,{href:\"/en/docs/dashboards/citation-intelligence\",children:\"Citation Intelligence\"}),\" to see which sources influence AI in your space, and prioritize the ones AI consults directly. Their AIPVS tells you what a placement there is worth.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Don't panic about the institutional sites.\"}),\" You won't get a placement on a court website. But knowing that AI grounds your category in regulators and associations tells you which facts about your brand need to be consistent everywhere those institutions might reference.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"The full methodology, the classification data, and what we can and can't claim from an observational design are in \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/where-ai-looks-first\",children:\"the research article\"}),\".\"]})]})}function d(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}return v(I);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"1f:[\"$\",\"$L10\",\"ai-trusted-source-list\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$6d\",\"title\":\"AI Has a List of Sites It Trusts. Here's How to Get On It.\",\"date\":\"2026-09-01\",\"image\":\"/images/blog/ai-trusted-source-list.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"New Spyglasses research classifies the sites AI consults directly instead of searching the open web. The list is institutional, high-authority, and there's a specific kind of page that gets you on it.\",\"tags\":[\"AI Search Visibility\",\"AI citations\",\"grounding searches\",\"AEO\",\"GEO\",\"PR\",\"earned media\"],\"published\":true,\"_meta\":{\"filePath\":\"ai-trusted-source-list.mdx\",\"fileName\":\"ai-trusted-source-list.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"ai-trusted-source-list\"},\"body\":\"$6e\",\"locale\":\"en\",\"path\":\"ai-trusted-source-list\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"6f:T457d,"])</script>
2<script>self.__next_f.push([1,"To time content updates to AI recrawl cadence, start by measuring how often crawlers actually return to your pages, using server-side logs rather than a guess. Break that number down per page to find important URLs that go weeks between visits, then per bot so you know which of those visits feed the search indexes AI assistants query. Publish and update against the interval you measured, not a calendar someone picked in a planning meeting, and schedule visibility reports at least one full interval after the change plus a week. Then confirm the page was refetched before you decide whether the update worked. Most sites find their average recrawl is far slower than their publishing schedule, which explains a lot of updates that seemed to do nothing.\n\nHere's the version of this that shows up in a marketing meeting. You updated eleven pages last quarter. Somebody ran a visibility check two weeks later, and nothing moved. So the team concludes the content work isn't paying off, and the next quarter's plan gets smaller.\n\nThere's a decent chance nothing was wrong with the content. The pages just hadn't been read yet.\n\n## Why the delay exists\n\nAn update to an existing page usually takes two to six weeks to show up in AI answers. On sites crawled daily it can be under a week; on sites crawled monthly, eight weeks is normal. The delay isn't the assistant being slow. It's that the assistant never sees your page until a crawler brings it in.\n\nAI assistants don't visit your site when someone asks a question about your category. For most questions, they run web searches, get back results from an index, and read pages that were already fetched and stored. The version of your page in that pipeline is whatever a crawler last picked up.\n\nSo there's a queue between you and the answer, and it has stages:\n\n1. A crawler such as Googlebot or Bingbot returns to your page and re-reads it. This is the long pole, and on most B2B sites it takes 2 to 5 weeks.\n2. The index gets updated with the new version, usually within a few days of that visit.\n3. An assistant runs a search that surfaces your page.\n4. The assistant reads it and builds an answer.\n\nNothing downstream happens until step one happens. On a site crawled every five weeks, a page you updated on the first of the month might not be visible as updated until well into the next one. Meanwhile your dashboard shows the old numbers and everyone reads that as failure.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Measure the cadence | Getting a real site-wide interval | A number in days, not a feeling |\n| 2. Find starved pages | Breaking cadence down per URL | A short list of neglected important pages |\n| 3. Split by bot | Seeing who visits and how often | You know which bots gate your answers |\n| 4. Time the calendar | Matching work and reports to the interval | Reports land after pickup, not before |\n| 5. Verify pickup | Confirming the refetch happened | A crawl date after your publish date |\n\n## Measure how often crawlers actually come back\n\nStart with one number for the whole site. How many days pass, on average, between crawler visits to the same page?\n\nYou need server-side data to answer that. Every crawler that reads your site makes a request to your server and identifies itself in the user agent, so a log of those requests gives you the true interval. Analytics that runs in the browser won't see any of it, because bots don't execute your JavaScript. Search Console gets you a partial view of one company's crawler and says nothing about the rest.\n\nWhen teams see the real number for the first time, the reaction is usually surprise in one direction. Either the site is crawled far less than assumed, which reframes months of disappointing content results, or a handful of pages are crawled constantly while everything else sits untouched, which is its own problem.\n\nA rough read on what you'll find:\n\n- **Daily.** Big, active, well-linked sites. News, large ecommerce, sites publishing several times a week.\n- **Weekly.** Most established B2B sites with a regular blog. This is the common case.\n- **Monthly or slower.** Newer sites, small sites, or sites that publish rarely. Also sites with technical problems that make crawling expensive.\n\nNone of these is a grade. A slow cadence on a stable site isn't a failure, it's information you need before you plan anything. The mistake is planning a six-week campaign as though you're on a daily cadence when you're on a monthly one.\n\n\u003cWorkflowCallout\n  title=\"One number for how often crawlers come back\"\n  page=\"Recrawl Frequency\"\n  href=\"/docs/dashboards/recrawl-frequency\"\n  signal={{\n    kind: \"count\",\n    label: \"Average days between crawler visits to the same page\",\n    value: 19,\n    caption: \"site-wide, last 90 days\",\n  }}\n\u003e\n  The Recrawl Frequency dashboard reads from the traffic plugin's server-side log, so it counts real crawler requests rather than sampling them. The headline is the site-wide average interval, with a timeline underneath that shows spikes and drops. Sudden drops are worth a look; they often trace back to a robots.txt change or slow server responses rather than anything about the content.\n\u003c/WorkflowCallout\u003e\n\n## Find the pages AI rarely refetches\n\nThe site-wide average hides the thing you need. Crawl attention isn't spread evenly, and it's usually concentrated on pages that don't need it.\n\nYour homepage gets read constantly. So do your main category pages and whatever you published last week. Meanwhile the pages that answer real buying questions, the comparison page, the pricing explainer, the product documentation, can go a month or more between visits. Those are the starved pages, and they're often the exact ones you'd want to update for AI visibility.\n\nSort your important URLs by days since last crawl and look at the top of that list. You're looking for the gap between commercial importance and crawl attention. A page nobody visits and nobody cares about being crawled twice a year is fine. A pricing page in the same state is a problem.\n\nStarvation usually has one of four causes, and they're worth distinguishing because the fixes differ:\n\n| C
2ause | What it looks like | Fix |\n| :--- | :--- | :--- |\n| Buried in the architecture | Four or more clicks from the homepage | Link it from a page crawled weekly |\n| Missing from the sitemap | Not listed, or a wrong lastmod date | Fix the sitemap entry |\n| Never updated | Last change 18 months ago | Give it a real update, not a date bump |\n| Technically expensive | Slow response, redirect chain, heavy render | Fix the response before anything else |\n\nThe first one is the most common and the easiest win. Crawlers find pages by following links, so a page linked only from a footer or a deep archive gets visited on that schedule. Adding a contextual link from a page that gets crawled every few days usually pulls the starved page up within a couple of weeks. It costs one edit.\n\nSkip the tricks people suggest here. Changing the date on a page without changing the content is noticed and ignored, and it makes your own audit trail useless. If a page deserves attention, give it something new to read; [optimizing existing content for AI citation](/blog/how-to-optimize-existing-content-for-ai-citation) covers what's worth adding.\n\n\u003cWorkflowCallout\n  title=\"The important pages nobody has read in a while\"\n  page=\"Recrawl Frequency\"\n  href=\"/docs/dashboards/recrawl-frequency\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"/pricing crawled in the last 14 days\", done: true },\n      { label: \"/product/integrations crawled in the last 14 days\", done: true },\n      { label: \"/compare/alternatives crawled in the last 14 days\", done: false },\n      { label: \"/docs/setup-guide crawled in the last 14 days\", done: false },\n      { label: \"/security crawled in the last 14 days\", done: false },\n    ],\n  }}\n\u003e\n  Filter the dashboard by page path to get per-URL intervals and a last-seen date for each one. Sorting by days since last crawl puts the starved pages at the top, and the page filter accepts patterns, so you can check a whole section like the docs or the comparison pages in one pass.\n\u003c/WorkflowCallout\u003e\n\n## See which crawlers matter for AI answers\n\n\"Crawled\" isn't one thing. Different bots do different jobs, and they don't all move you toward being cited.\n\nThree groups, and the difference is practical:\n\n**Search crawlers.** Googlebot and Bingbot build the indexes that most AI assistants search when they need current information. These visits gate nearly everything downstream, which is why they're the ones to watch when you want an update reflected in answers.\n\n**Assistant fetchers.** OAI-SearchBot, PerplexityBot, and their equivalents fetch pages while an assistant is putting an answer together. Seeing these on a page is a good sign; it means your page is being retrieved for live questions, not just sitting in an index.\n\n**Training crawlers.** GPTBot, ClaudeBot, Google-Extended and friends collect content for model training. They affect what a model knows without searching, on a timeline measured in model releases. Useful to see, but not the signal to plan a quarter around.\n\nThe pattern to look for is a page that search crawlers visit but assistant fetchers never touch. That usually means the page is indexed and simply isn't being chosen for the questions you care about, which is a content and relevance problem rather than a crawl problem. Adding words to a page that's already read regularly won't fix it.\n\nThe reverse pattern is rarer and more urgent. If a page gets almost no visits from any category, check for a block before you check anything else. A stray robots.txt rule or an overzealous bot filter at the CDN can quietly remove a section of your site from everything, and it looks exactly like weak content from the outside. For the full breakdown of who's visiting and what to do about each group, [seeing which bots are crawling your site](/blog/how-to-see-which-bots-are-crawling-your-site) goes deeper than this step needs to.\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-time-content-updates-to-ai-recrawl-cadence-quote.webp\"\n  quote=\"Publishing weekly into a site that gets refetched monthly means most of your updates land in the dark and get judged before anyone reads them.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-time-content-updates-to-ai-recrawl-cadence\"\n/\u003e\n\n\u003cWorkflowCallout\n  title=\"Split the crawl activity by bot and by category\"\n  page=\"Bot Traffic\"\n  href=\"/docs/dashboards/bot-traffic\"\n  signal={{\n    kind: \"trend\",\n    label: \"Search crawler visits per week\",\n    series: [212, 198, 224, 241, 236, 268, 291, 305],\n    change: 12,\n    suffix: \"%\",\n  }}\n\u003e\n  Bot Traffic separates AI assistants, model trainers, search crawlers, and scrapers, then lets you drill into a single bot for its visit count, unique pages, and last-seen date. Checking a starved page against the search crawler category first is the fastest way to tell a crawl problem apart from a relevance problem.\n\u003c/WorkflowCallout\u003e\n\n## Time your updates and reports to the real cadence\n\nNow use the number. Two calendars change, and the second one saves you more than the first.\n\n**The publishing calendar.** Update pages in batches that fit inside one crawl interval, rather than trickling out changes that each wait their turn. If your important pages get refetched every three weeks, shipping eight updates in one week means they all get picked up in roughly the same window, and 
2you get one clean measurement instead of eight overlapping ones. Trickling the same eight changes across two months gives you a blur that nobody can attribute.\n\n**The reporting calendar.** This is where teams waste the most money and morale. Running a visibility report before the changed pages have been recrawled measures the old version of your site. It costs credits and produces a flat line that gets read as failure.\n\nMatch the reporting schedule to the cadence you measured:\n\n| Your measured cadence | Run visibility reports | Wait after an update |\n| :--- | :--- | :--- |\n| Daily | Weekly | About 1 week |\n| Weekly | Every 2 weeks | 2 to 3 weeks |\n| Every 2 to 4 weeks | Monthly | 4 to 6 weeks |\n| Slower than monthly | Monthly, on major changes | 6 to 8 weeks |\n\nThe extra week in each row is the gap between a page being recrawled and the change working through the index and into answers. Being refetched is necessary, not sufficient.\n\nTell your stakeholders the interval before the work starts, not after a flat report. \"We updated the pricing page on the 3rd, our pages get refetched about every three weeks, so we'll have a real read in mid-October\" is a sentence that buys patience. The same information delivered after a disappointing report sounds like an excuse.\n\nThis also decides what to do when a launch date is fixed and the cadence is slow. You can't speed up the crawl much, so publish the supporting pages earlier instead. Getting a page in place four weeks before the announcement means it's been read by the time anyone asks about it. For how this fits with the rest of the channel's numbers, [measuring AI as a marketing channel](/blog/how-to-measure-ai-as-a-marketing-channel) covers the reporting side.\n\n\u003cWorkflowCallout\n  title=\"Set the report schedule to the cadence you measured\"\n  page=\"AI Visibility Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Reports run per quarter that measured a real change\",\n    before: \"3 of 12\",\n    after: \"6 of 6\",\n    tone: \"positive\",\n    caption: \"same credits, fewer flat weeks\",\n  }}\n\u003e\n  Scheduled reports run on whatever interval you set, so setting that interval from your measured cadence is a one-time change with a lasting effect. Weekly runs on a site refetched every three weeks mostly re-measure the same index; the flat rows aren't stability, they're the report arriving early.\n\u003c/WorkflowCallout\u003e\n\n## Verify pickup after the next update\n\nOne check closes the loop, and it takes about a minute.\n\nAfter you publish a change, look at the page's last crawl date. If it's after your publish date, the new version has been read and any measurement from here is fair. If it's before, you're still waiting, and nothing you see in a visibility report tells you anything about the work you did.\n\nMake that check the first step of every post-update review. It reorders the conversation in a helpful way, because \"has it been read yet\" gets answered before \"did it work,\" and those are different questions with different fixes.\n\nThree outcomes and what each one means:\n\n- **Refetched, and the numbers moved.** The update worked. Note the interval between publish and pickup; that's your planning number for next time, and it's more reliable than the site-wide average.\n- **Refetched, and nothing moved.** Now you have a content question, and it's a real one. The page was read in its new form and still isn't being chosen. Score it against the query you want and look at what it's missing.\n- **Not refetched.** Not a content question at all. Go back to the starvation causes above, add an internal link from a page that gets crawled often, and check the sitemap entry.\n\nThat third outcome is the one worth catching, because it's usually mistaken for the second. Teams rewrite a page two or three times when the problem was that no crawler had been back since the first rewrite. If a page you've updated stays uncrawled for more than double your site average, treat it as a technical issue and run an [AI readiness audit](/ai-readiness-audit) on it; blocked crawlers, redirect chains, and content that only appears after JavaScript runs all produce exactly this pattern.\n\nKeep a simple log of publish date, first crawl after publish, and what changed in the numbers. After a quarter you'll have your own lag figure per section of the site, which beats any general advice about how long to wait.\n\n\u003cWorkflowCallout\n  title=\"Confirm the refetch before you judge the update\"\n  page=\"Recrawl Frequency\"\n  href=\"/docs/dashboards/recrawl-frequency\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Days from publish to first crawler visit\",\n    before: \"31\",\n    after: \"9\",\n    tone: \"positive\",\n    caption: \"after adding internal links from weekly-crawled hubs\",\n    series: [31, 28, 24, 19, 15, 12, 9],\n    lowerIsBetter: true,\n  }}\n\u003e\n  Filtering to the page you changed gives you its last-seen date per bot, so you can see whether a search crawler has been back since you published. Watching that lag shrink is also the cleanest proof that an internal linking fix worked, because the interval responds within a couple of weeks while ranking changes take much longer.\n\u003c/WorkflowCallout\u003e\n\n## Start with the number you don't have\n\nPull one figure this week: the average days between crawler visits on your site. You either have server-side crawler logging already, in 
2which case it's a query, or you don't, in which case installing [traffic analytics](/ai-traffic-analytics) starts collecting it today and gives you a usable number within a few weeks.\n\nThat single number changes how you plan. It sets how long to wait before reporting, how to batch updates, how far ahead of a launch to publish, and what to say when someone asks why the dashboard is flat.\n\nThe teams that get frustrated with AI visibility work are usually not doing bad work. They're measuring it before anyone has read it.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"70:T603d,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var m=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)s(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of f(e))!y.call(n,r)\u0026\u0026r!==a\u0026\u0026s(n,r,{get:()=\u003ee[r],enumerable:!(i=p(e,r))||i.enumerable});return n};var v=(n,e,a)=\u003e(a=n!=null?g(w(n)):{},o(e||!n||!n.__esModule?s(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003eo(s({},\"__esModule\",{value:!0}),n);var h=m((T,l)=\u003e{l.exports=_jsx_runtime});var x={};b(x,{default:()=\u003eu});var t=v(h());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||c(\"PullQuote\",!0),i||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To time content updates to AI recrawl cadence, start by measuring how often crawlers actually return to your pages, using server-side logs rather than a guess. Break that number down per page to find important URLs that go weeks between visits, then per bot so you know which of those visits feed the search indexes AI assistants query. Publish and update against the interval you measured, not a calendar someone picked in a planning meeting, and schedule visibility reports at least one full interval after the change plus a week. Then confirm the page was refetched before you decide whether the update worked. Most sites find their average recrawl is far slower than their publishing schedule, which explains a lot of updates that seemed to do nothing.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the version of this that shows up in a marketing meeting. You updated eleven pages last quarter. Somebody ran a visibility check two weeks later, and nothing moved. So the team concludes the content work isn't paying off, and the next quarter's plan gets smaller.\"}),`\n`,(0,t.jsx)(e.p,{children:\"There's a decent chance nothing was wrong with the content. The pages just hadn't been read yet.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why the delay exists\"}),`\n`,(0,t.jsx)(e.p,{children:\"An update to an existing page usually takes two to six weeks to show up in AI answers. On sites crawled daily it can be under a week; on sites crawled monthly, eight weeks is normal. The delay isn't the assistant being slow. It's that the assistant never sees your page until a crawler brings it in.\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI assistants don't visit your site when someone asks a question about your category. For most questions, they run web searches, get back results from an index, and read pages that were already fetched and stored. The version of your page in that pipeline is whatever a crawler last picked up.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So there's a queue between you and the answer, and it has stages:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsx)(e.li,{children:\"A crawler such as Googlebot or Bingbot returns to your page and re-reads it. This is the long pole, and on most B2B sites it takes 2 to 5 weeks.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The index gets updated with the new version, usually within a few days of that visit.\"}),`\n`,(0,t.jsx)(e.li,{children:\"An assistant runs a search that surfaces your page.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The assistant reads it and builds an answer.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Nothing downstream happens until step one happens. On a site crawled every five weeks, a page you updated on the first of the month might not be visible as updated until well into the next one. Meanwhile your dashboard shows the old numbers and everyone reads that as failure.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Measure the cadence\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Getting a real site-wide interval\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A number in days, not a feeling\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Find starved pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Breaking cadence down per URL\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A short list of neglected important pages\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Split by bot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Seeing who visits and how often\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You know which bots gate your answers\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Time the calendar\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Matching work and reports to the interval\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reports land after pickup, not before\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Verify pickup\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Confirming the refetch happened\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A crawl date after your publish date\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Measure how often crawlers actually come back\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with one number for the whole site. How many days pass, on average, between crawler visits to the same page?\"}),`\n`,(0,t.jsx)(e.p,{children:\"You need server-side data to answer that. Every crawler that reads your site makes a request to your server and identifies itself in the user agent, so a log of those requests gives you the true interval. Analytics that runs in the browser won't see any of it, because bots don't execute your JavaScript. Search Console gets you a partial view of one company's crawler and says nothing about the rest.\"}),`\n`,(0,t.jsx)(e.p,{children:\"When teams see the real number for the first time, the reaction is usually surprise in one direction. Either the site is crawled far less than assumed, which reframes months of disappointing content results, or a handful of pages are crawled constantly while everything else sits untouched, which is its own problem.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A rough read on what you'll find:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Daily.\"}),\" Big, active, well-linked sites. News, large ecommerce, sites publishing several times a week.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Weekly.\"}),\" Most established B2B sites with a regular blog. This is the common case.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Monthly or slower.\"}),\" Newer sites, small sites, or sites that publish rarely. Also sites with technical problems that make crawling expensive.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"None of these is a grade. A slow cadence on a stable site isn't a failure, it's information you need before you plan anything. The mistake is planning a six-week campaign as though you're on a daily cadence when you're on a monthly one.\"}),`\n`,(0,t.jsx)(i,{title:\"One number for how often crawlers come back\",page:\"Recrawl Frequency\",href:\"/docs/dashboards/recrawl-frequency\",signal:{kind:\"count\",label:\"Average days between crawler visits to the same page\",value:19,caption:\"site-wide, last 90 days\"},children:(0,t.jsx)(e.p,{children:\"The Recrawl Frequency dashboard reads from the traffic plugin's server-side log, so it counts real crawler requests rather than sampling them. The headline is the site-wide average interval, with a timeline underneath that shows spikes and drops. Sudden drops are worth a look; they often trace back to a robots.txt change or slow server responses rather than anything about the content.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Find the pages AI rarely refetches\"}),`\n`,(0,t.jsx)(e.p,{children:\"The site-wide average hides the thing you need. Crawl attention isn't spread evenly, and it's usually concentrated on pages that don't need it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your homepage gets read constantly. So do your main category pages and whatever you published last week. Meanwhile the pages that answer real buying questions, the comparison page, the pricing explainer, the product documentation, can go a month or more between visits. Those are the starved pages, and they're often the exact ones you'd want to update for AI visibility.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Sort your important URLs by days since last crawl and look at the top of that list. You're looking for the gap between commercial importance and crawl attention. A page nobody visits and nobody cares about being crawled twice a year is fine. A pricing page in the same state is a problem.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Starvation usually has one of four causes, and they're worth distinguishing because the fixes differ:\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Cause\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it looks like\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Fix\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Buried in the architecture\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Four or more clicks from the homepage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Link it from a page crawled weekly\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Missing from the sitemap\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Not listed, or a wrong lastmod date\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fix the sitemap entry\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Never updated\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Last change 18 months ago\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Give it a real update, not a date bump\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Technically expensive\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Slow response, redirect chain, heavy render\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fix the response before anything else\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"The first one is the most common and the easiest win. Crawlers find pages by following links, so a page linked only from a footer or a deep archive gets visited on that schedule. Adding a contextual link from a page that gets crawled every few days usually pulls the starved page up within a couple of weeks. It costs one edit.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Skip the tricks people suggest here. Changing the date on a page without changing the content is noticed and ignored, and it makes your own audit trail useless. If a page deserves attention, give it something new to read; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"optimizing existing content for AI citation\"}),\" covers what's worth adding.\"]}
2),`\n`,(0,t.jsx)(i,{title:\"The important pages nobody has read in a while\",page:\"Recrawl Frequency\",href:\"/docs/dashboards/recrawl-frequency\",signal:{kind:\"checklist\",items:[{label:\"/pricing crawled in the last 14 days\",done:!0},{label:\"/product/integrations crawled in the last 14 days\",done:!0},{label:\"/compare/alternatives crawled in the last 14 days\",done:!1},{label:\"/docs/setup-guide crawled in the last 14 days\",done:!1},{label:\"/security crawled in the last 14 days\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Filter the dashboard by page path to get per-URL intervals and a last-seen date for each one. Sorting by days since last crawl puts the starved pages at the top, and the page filter accepts patterns, so you can check a whole section like the docs or the comparison pages in one pass.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"See which crawlers matter for AI answers\"}),`\n`,(0,t.jsx)(e.p,{children:`\"Crawled\" isn't one thing. Different bots do different jobs, and they don't all move you toward being cited.`}),`\n`,(0,t.jsx)(e.p,{children:\"Three groups, and the difference is practical:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Search crawlers.\"}),\" Googlebot and Bingbot build the indexes that most AI assistants search when they need current information. These visits gate nearly everything downstream, which is why they're the ones to watch when you want an update reflected in answers.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Assistant fetchers.\"}),\" OAI-SearchBot, PerplexityBot, and their equivalents fetch pages while an assistant is putting an answer together. Seeing these on a page is a good sign; it means your page is being retrieved for live questions, not just sitting in an index.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Training crawlers.\"}),\" GPTBot, ClaudeBot, Google-Extended and friends collect content for model training. They affect what a model knows without searching, on a timeline measured in model releases. Useful to see, but not the signal to plan a quarter around.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"The pattern to look for is a page that search crawlers visit but assistant fetchers never touch. That usually means the page is indexed and simply isn't being chosen for the questions you care about, which is a content and relevance problem rather than a crawl problem. Adding words to a page that's already read regularly won't fix it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The reverse pattern is rarer and more urgent. If a page gets almost no visits from any category, check for a block before you check anything else. A stray robots.txt rule or an overzealous bot filter at the CDN can quietly remove a section of your site from everything, and it looks exactly like weak content from the outside. For the full breakdown of who's visiting and what to do about each group, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-see-which-bots-are-crawling-your-site\",children:\"seeing which bots are crawling your site\"}),\" goes deeper than this step needs to.\"]}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-time-content-updates-to-ai-recrawl-cadence-quote.webp\",quote:\"Publishing weekly into a site that gets refetched monthly means most of your updates land in the dark and get judged before anyone reads them.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-time-content-updates-to-ai-recrawl-cadence\"}),`\n`,(0,t.jsx)(i,{title:\"Split the crawl activity by bot and by category\",page:\"Bot Traffic\",href:\"/docs/dashboards/bot-traffic\",signal:{kind:\"trend\",label:\"Search crawler visits per week\",series:[212,198,224,241,236,268,291,305],change:12,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"Bot Traffic separates AI assistants, model trainers, search crawlers, and scrapers, then lets you drill into a single bot for its visit count, unique pages, and last-seen date. Checking a starved page against the search crawler category first is the fastest way to tell a crawl problem apart from a relevance problem.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Time your updates and reports to the real cadence\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now use the number. Two calendars change, and the second one saves you more than the first.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The publishing calendar.\"}),\" Update pages in batches that fit inside one crawl interval, rather than trickling out changes that each wait their turn. If your important pages get refetched every three weeks, shipping eight updates in one week means they all get picked up in roughly the same window, and 
2you get one clean measurement instead of eight overlapping ones. Trickling the same eight changes across two months gives you a blur that nobody can attribute.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The reporting calendar.\"}),\" This is where teams waste the most money and morale. Running a visibility report before the changed pages have been recrawled measures the old version of your site. It costs credits and produces a flat line that gets read as failure.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Match the reporting schedule to the cadence you measured:\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Your measured cadence\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Run visibility reports\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Wait after an update\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Daily\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weekly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"About 1 week\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weekly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every 2 weeks\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2 to 3 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every 2 to 4 weeks\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Monthly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4 to 6 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Slower than monthly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Monthly, on major changes\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6 to 8 weeks\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"The extra week in each row is the gap between a page being recrawled and the change working through the index and into answers. Being refetched is necessary, not sufficient.\"}),`\n`,(0,t.jsx)(e.p,{children:`Tell your stakeholders the interval before the work starts, not after a flat report. \"We updated the pricing page on the 3rd, our pages get refetched about every three weeks, so we'll have a real read in mid-October\" is a sentence that buys patience. The same information delivered after a disappointing report sounds like an excuse.`}),`\n`,(0,t.jsxs)(e.p,{children:[\"This also decides what to do when a launch date is fixed and the cadence is slow. You can't speed up the crawl much, so publish the supporting pages earlier instead. Getting a page in place four weeks before the announcement means it's been read by the time anyone asks about it. For how this fits with the rest of the channel's numbers, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-measure-ai-as-a-marketing-channel\",children:\"measuring AI as a marketing channel\"}),\" covers the reporting side.\"]}),`\n`,(0,t.jsx)(i,{title:\"Set the report schedule to the cadence you measured\",page:\"AI Visibility Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"beforeAfter\",label:\"Reports run per quarter that measured a real change\",before:\"3 of 12\",after:\"6 of 6\",tone:\"positive\",caption:\"same credits, fewer flat weeks\"},children:(0,t.jsx)(e.p,{children:\"Scheduled reports run on whatever interval you set, so setting that interval from your measured cadence is a one-time change with a lasting effect. Weekly runs on a site refetched every three weeks mostly re-measure the same index; the flat rows aren't stability, they're the report arriving early.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Verify pickup after the next update\"}),`\n`,(0,t.jsx)(e.p,{children:\"One check closes the loop, and it takes about a minute.\"}),`\n`,(0,t.jsx)(e.p,{children:\"After you publish a change, look at the page's last crawl date. If it's after your publish date, the new version has been read and any measurement from here is fair. If it's before, you're still waiting, and nothing you see in a visibility report tells you anything about the work you did.\"}),`\n`,(0,t.jsx)(e.p,{children:'Make that check the first step of every post-update review. It reorders the conversation in a helpful way, because \"has it been read yet\" gets answered before \"did it work,\" and those are different questions with different fixes.'}),`\n`,(0,t.jsx)(e.p,{children:\"Three outcomes and what each one means:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Refetched, and the numbers moved.\"}),\" The update worked. Note the interval between publish and pickup; that's your planning number for next time, and it's more reliable than the site-wide average.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Refetched, and nothing moved.\"}),\" Now you have a content question, and it's a real one. The page was read in its new form and still isn't being chosen. Score it against the query you want and look at what it's missing.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Not refetched.\"}),\" Not a content question at all. Go back to the starvation causes above, add an internal link from a page that gets crawled often, and check the sitemap entry.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"That third outcome is the one worth catching, because it's usually mistaken for the second. Teams rewrite a page two or three times when the problem was that no crawler had been back since the first rewrite. If a page you've updated stays uncrawled for more than double your site average, treat it as a technical issue and run an \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI readiness audit\"}),\" on it; blocked crawlers, redirect chains, and content that only appears after JavaScript runs all produce exactly this pattern.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Keep a simple log of publish date, first crawl after publish, and what changed in the numbers. After a quarter you'll have your own lag figure per section of the site, which beats any general advice about how long to wait.\"}),`\n`,(0,t.jsx)(i,{title:\"Confirm the refetch before you judge the update\",page:\"Recrawl Frequency\",href:\"/docs/dashboards/recrawl-frequency\",signal:{kind:\"beforeAfter\",label:\"Days from publish to first crawler visit\",before:\"31\",after:\"9\",tone
2:\"positive\",caption:\"after adding internal links from weekly-crawled hubs\",series:[31,28,24,19,15,12,9],lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"Filtering to the page you changed gives you its last-seen date per bot, so you can see whether a search crawler has been back since you published. Watching that lag shrink is also the cleanest proof that an internal linking fix worked, because the interval responds within a couple of weeks while ranking changes take much longer.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start with the number you don't have\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Pull one figure this week: the average days between crawler visits on your site. You either have server-side crawler logging already, in which case it's a query, or you don't, in which case installing \",(0,t.jsx)(e.a,{href:\"/ai-traffic-analytics\",children:\"traffic analytics\"}),\" starts collecting it today and gives you a usable number within a few weeks.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"That single number changes how you plan. It set
2s how long to wait before reporting, how to batch updates, how far ahead of a launch to publish, and what to say when someone asks why the dashboard is flat.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The teams that get frustrated with AI visibility work are usually not doing bad work. They're measuring it before anyone has read it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(x);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"20:[\"$\",\"$L10\",\"how-to-time-content-updates-to-ai-recrawl-cadence\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$6f\",\"title\":\"How to Time Content Updates to AI Recrawl Cadence\",\"date\":\"2026-09-01\",\"image\":\"/images/blog/how-to-time-content-updates-to-ai-recrawl-cadence.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Most content updates take two to six weeks to show up in AI answers, because nothing changes until a crawler comes back and re-reads the page. Here's how in-house marketing teams measure their real recrawl cadence, find the pages that never get refetched, and stop scheduling work and reports against a timeline that doesn't exist.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"AI Search Visibility\",\"Content Strategy\"],\"published\":true,\"faq\":[{\"question\":\"What is recrawl cadence and why does it affect AI answers?\",\"answer\":\"Recrawl cadence is how often a crawler comes back and re-reads a page you already published. It matters because AI assistants answer from what was retrieved and indexed, not from what's live on your server. If a page was last read six weeks ago, the version an assistant can cite is the six-week-old one, no matter what you shipped yesterday.\"},{\"question\":\"How do I find out how often my site gets recrawled?\",\"answer\":\"Server-side logging is the only way to know rather than guess. Every crawler visit hits your server and identifies itself, so a log of those visits gives you the real interval per page and per bot. Search Console shows you Google's view of Google; it won't tell you when GPTBot or ClaudeBot last came through.\"},{\"question\":\"Which crawlers should I actually care about?\",\"answer\":\"Split them into three jobs. Search crawlers like Googlebot and Bingbot feed the indexes that AI assistants search against, so they gate almost everything. Assistant fetchers like OAI-SearchBot and PerplexityBot pull pages at answer time. Training crawlers like GPTBot and Google-Extended affect what a model knows without searching. For getting an update into answers this quarter, the first two are what you watch.\"},{\"question\":\"How long should I wait before running a visibility report after an update?\",\"answer\":\"Wait for at least one full recrawl interval on the pages you changed, then add a week. On a site refetched weekly that's about two weeks; on a monthly site it's closer to six. Running the report sooner mostly measures noise, and it burns credits to tell you nothing moved yet.\"},{\"question\":\"Can I make crawlers come back more often?\",\"answer\":\"Somewhat, and it's slower than people hope. Fresh publishing, better internal linking from pages that already get crawled often, a clean sitemap with accurate lastmod dates, and fixing slow or erroring responses all help. What moves the needle most is linking the starved page from a page crawlers already visit weekly.\"}],\"howTo\":{\"name\":\"How to time content updates to AI recrawl cadence\",\"description\":\"A step-by-step workflow for in-house marketing teams that measures how often crawlers actually return to a site, finds the pages AI rarely refetches, and aligns the publishing and reporting calendar to the cadence the site really has.\",\"steps\":[{\"name\":\"Measure how often crawlers actually come back\",\"text\":\"Get a site-wide average recrawl interval from server-side crawler logs instead of assuming your content is read the day you publish it.\"},{\"name\":\"Find the pages AI rarely refetches\",\"text\":\"Break the cadence down page by page and list the important URLs that go weeks or months between visits.\"},{\"name\":\"See which crawlers matter for AI answers\",\"text\":\"Split crawl activity by bot so you know which visits feed search indexes, which fetch pages at answer time, and which do neither.\"},{\"name\":\"Time your updates and reports to the real cadence\",\"text\":\"Build the publishing and reporting calendar around the observed interval so changes get read and measurements happen after pickup.\"},{\"name\":\"Verify pickup after the next update\",\"text\":\"Confirm the changed page was refetched before you judge whether the update worked, and treat a missing refetch as the finding.\"}]},\"_meta\":{\"filePath\":\"how-to-time-content-updates-to-ai-recrawl-cadence.mdx\",\"fileName\":\"how-to-time-content-updates-to-ai-recrawl-cadence.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-time-content-updates-to-ai-recrawl-cadence\"},\"body\":\"$70\",\"locale\":\"en\",\"path\":\"how-to-time-content-updates-to-ai-recrawl-cadence\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"71:T46c2,"])</script>
2<script>self.__next_f.push([1,"To fix pages competing for the same query, start from the query instead of the pages. List every page on your site that shows up in the top 30 results for it, check whether two of them actually answer the same question, pick one to be the canonical answer, then either fold the other one in behind a 301 redirect or rewrite it to do a different job. Rewrite both pages, not just the one you kept, because a page that still opens with the same promise keeps competing. Then re-score the canonical page against the query and watch its rank on the searches ChatGPT, Gemini, and Perplexity run, for three to six weeks. Most content teams find two or three of these splits on any site older than a couple of years, and fixing one is usually cheaper than writing anything new.\n\nHere's the version of this that shows up in a content meeting. Somebody notices that ChatGPT names a competitor for a question your site has covered twice. Someone else pulls up both of your pages and they're both fine. That's the confusing part. Nothing is broken, nobody wrote anything bad, and you still lose.\n\nWhat's happening is a split. Two pages answering the same question don't stack up into a stronger signal. They divide one. Search engines have to choose which of your pages to rank, AI assistants have to choose which of your pages to cite, and when the two look interchangeable, the safest choice for the machine is to go with somebody else's page that has no such ambiguity.\n\nThis is an old SEO problem with a sharper edge. In classic search you could survive it, because a results page has ten slots and your two mediocre pages might both scrape onto it. An AI answer names one source per point. There's no second slot to land in.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Find the split | Listing your own pages on one query | Two or more of your URLs on the same search |\n| 2. Confirm it | Checking body and summary, not just topic | You can say what makes them the same |\n| 3. Pick the winner | Choosing one canonical page | One URL written down, with a reason |\n| 4. Choose the fix | Consolidate or differentiate | The call is made before editing starts |\n| 5. Rewrite both | Merging or repositioning | Neither page opens with the same promise |\n| 6. Re-score | Measuring after recrawl | One page rising, the other out of the way |\n\n## Find the query your pages are splitting\n\nThe mistake almost everyone makes here is starting from the content inventory. You open a spreadsheet of 400 URLs, sort by title similarity, and try to spot duplicates. It takes a week and it finds the wrong things, because pages with similar titles are often fine and pages with different titles are often the ones fighting.\n\nStart from the query instead. Pick a question you should be winning, one that matters to your business and that you've written about more than once. Then ask a simple thing: which of my pages come back for this?\n\nIf the answer is one page, you're done here. Go work on that page. If the answer is two or three of your own URLs sitting near each other in the results, you've found a split.\n\nDo this on the searches that AI assistants actually run, not the ones you wish they ran. When somebody asks an assistant a question, the assistant turns it into several web searches with their own phrasings and qualifiers, and those are the searches your pages get retrieved for. A page can look great for the phrase in your content brief and never surface for the phrase the assistant used. If that distinction is new to you, [winning a target AI grounding search](/blog/how-to-win-a-target-ai-grounding-search) covers the mechanics.\n\nExpect to find two to four real splits on a mature site. Older sites that went through a rebrand, a product renaming, or a period of publishing three posts a week tend to have more. Content teams that inherited a blog from a previous agency almost always have some.\n\n\u003cWorkflowCallout\n  title=\"Start from the query and see which of your pages come back\"\n  page=\"Grounding Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"count\",\n    label: \"Grounding searches with more than one of your pages ranking\",\n    value: 6,\n    target: 41,\n    caption: \"3 rated high impact\",\n  }}\n\u003e\n  Grounding Rankings lists the web searches AI assistants ran behind your tracked prompts and shows where your pages sit on each one. Rows where tw
2o of your own URLs appear are the ones to look at; that pattern is much easier to spot from the query side than from a content inventory.\n\u003c/WorkflowCallout\u003e\n\n## Confirm the overlap is real\n\nTwo pages on the same topic aren't automatically a problem. A category overview and a detailed how-to can both cover pricing without competing at all, because a reader who needs one doesn't want the other.\n\nSo check two things before you touch anything.\n\nFirst, the body. Read the first 200 words of each page side by side. If they make the same promise to the same reader, that's a split. If one says \"here's what this costs and why\" and the other says \"here's how to set it up,\" they're doing different jobs even though a topic model groups them together.\n\nSecond, the summary. Look at the title and meta description of both pages, which is what a retrieval system sees before it decides whether to open anything. Pages get flagged as duplicates far more often for having near-identical summaries than for having similar bodies. Two posts can be very different inside and still present themselves as the same page in the one place that determines whether either gets read.\n\nBoth signals have to agree before you call it. Body-only similarity gives you false alarms on any templated site, where every page shares navigation, boilerplate, and a footer full of the same words. That's why a single similarity check flags product catalogs where nothing is actually wrong. When the body and the summary both say the same thing, you have a real split.\n\nWrite down the sentence that describes the overlap. Something like \"both of these promise a buyer's guide to the same product category, in the same voice, for the same reader.\" If you can't write it, you don't have a split, you have two pages on one topic, and the work you were about to do would have made things worse.\n\n\u003cWorkflowCallout\n  title=\"Overlap detection that checks the content and the summary\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Body similarity above threshold\", done: true },\n      { label: \"Meta description similarity above threshold\", done: true },\n      { label: \"Both pages ranked for the same search\", done: true },\n      { label: \"Overlap flag raised on the pair\", done: true },\n      { label: \"Canonical page chosen\", done: false },\n    ],\n  }}\n\u003e\n  When the optimizer matches a query to your pages, it also flags pairs that are too similar to tell apart. The flag needs a dual signal; the full-content embeddings and the meta-description embeddings both have to be highly similar, which is what keeps templated sites from setting it off. When you see the flag, the pair is worth acting on.\n\u003c/WorkflowCallout\u003e\n\n## Pick the page that should win\n\nNow pick one. Not \"we'll see how it plays out.\" One URL, written down, with a reason next to it.\n\nThree inputs, in this order:\n\n**Current position.** Whichever page is already closer to the top for the target search has a head start you can't buy. It's been crawled more, it's been linked to more, and the algorithms already trust it more. Promoting the page you like better over the page that's already ranking costs you months.\n\n**Links and traffic.** Check what points at each URL from the outside world and what each one already brings in. A page with three references from other sites is worth more than a page with none, even if the second one reads better. You can improve writing in an afternoon. You can't manufacture five years of links.\n\n**Fit with the query.** If the target search asks for a comparison and one page is a comparison while the other is a product page, the comparison wins, even if it's newer and weaker. Fighting a page's format is harder than 
2improving its content.\n\nWhen the three inputs disagree, current position usually wins. It's the one you can't recreate.\n\nOne caution. Teams often want to pick the newest page because it matches the current brand voice and the old one is embarrassing. That's a real reason to rewrite something, but it's a bad reason to make it your canonical page. Keep the URL with the history and rewrite it into the voice you want. You get both.\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-fix-pages-competing-for-the-same-query-quote.webp\"\n  quote=\"Two pages answering the same question don't add up; they cancel out. A split hands AI two weak options instead of one strong one.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-fix-pages-competing-for-the-same-query\"\n/\u003e\n\n## Choose between consolidating and differentiating\n\nThere are two fixes and they lead to very different weeks of work, so make the call before anyone opens a doc.\n\n**Consolidating** means the second page stops existing as a separate answer. You move whatever it does well into the canonical page and redirect the old URL. One page, one job, all the signal in one place.\n\n**Differentiating** means both pages survive with clearly separate jobs. You rewrite the second page so it answers a different question, with a different title, a different opening promise, and a different reader in mind.\n\n| | Consolidate | Differentiate |\n| :--- | :--- | :--- |\n| Use when | Same reader, same moment | Different readers or stages |\n| The second page has | Little traffic or links of its own | Its own audience worth keeping |\n| The overlap lives in | The substance | The titles and intros |\n| Work involved | Merge, redirect, fix internal links | Rewrite the second page's angle |\n| Risk | Losing the redirect or the links | The two pages drift back together |\n\nA third move gets suggested in every one of these meetings, and it's worth naming so you can rule it out. Someone will propose a `rel=canonical` tag pointing the weaker page at the stronger one, or a `noindex` on the loser, as a way to avoid the work. Both are real tools and neither does what people hope here. A canonical tag is a hint that search engines can ignore, and it does nothing about the second page still sitting there making the same promise to any assistant that fetches it directly. Use them alongside a real fix, not instead of one.\n\nContent teams reach for differentiating more often than they should, usually because consolidating feels like admitting a page was a mistake. Here's a test that settles it. Write a one-sentence job description for each page, in the form \"this page is for someone who wants X.\" If the two sentences are the same sentence with different words, consolidate. If you can't write the second one at all, definitely consolidate.\n\nThere's one more option nobody likes but that's sometimes right. If neither page is any good and the query matters, consolidate both into one new page at the stronger URL and treat it as a rewrite rather than a merge. That's more work than either fix above, but it beats stitching two weak drafts together and hoping.\n\n\u003cWorkflowCallout\n  title=\"Two fixes, and the one the flag recommends\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Your pages ranking for the target search\",\n    before: \"2\",\n    after: \"1\",\n    tone: \"positive\",\n    caption: \"one canonical page after the merge\",\n  }}\n\u003e\n  The overlap panel names the pair and gives you the same two paths; consolidate the pages into one stronger page and redirect the weaker URL, or differentiate their focus so each targets a distinct query. It also shows which page the optimizer would score against by default, which is a useful second opinion when your team is split on which URL to keep.\n\u003c/WorkflowCallout\u003e\n\n## Rewrite both pages, not just one\n\nThis is the step teams skip, and skipping it is why cannibalization keeps coming back on the same two URLs.\n\nIf you consolidated, the work has four parts and all four matter:\n\n1. Move the useful sections from the second page into the canonical one. Not everything. The parts that answer the question better than what's already there.\n2. Redirect the old URL to the new one with a 301, not a 302. A temporary redirect tells crawlers the old page is coming back, so it keeps competing, and a page that returns a 404 throws away every link pointing at it.\n3. Update internal links so they point at the canonical URL directly instead of bouncing through the redirect.\n4. Rewrite the canonical page's opening so it clearly owns the whole question now, including the part the other page used to handle.\n\nIf you differentiated, the work is smaller but more delicate. Change the second page's title, its opening paragraph, and its headings so the promise is different. Cosmetic edits won't do it; if the first 200 words still make the same offer, the pages will keep competing no matter what you did to the middle. Then link from each page to the other with text that says what the other one is for. That signals the split to readers and to retrieval systems at the same time.\n\nEither way, spend some of the effort on the canonical page itself. A page that just absorbed a competing URL is usually a bit of a mess, with two introductions and a middle section that repeats itself. The habits that make a page easy for an assistant to cite are the same ones that make it readable; answer the question early, use the words the search uses, and keep the extractable parts as tables or short lists. There's more on that in [optimizing existing content for AI citation](/blog/how-to-optimize-existing-content-for-ai-citation).\n\n\u003cWorkflowCallout\n  title=\"Score the merged page before you publish it\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"score\",\n    label: \"Citation pipeline score on the merged draft\",\n    value: 71,\n    target: 70,\n  }}\n\u003e\n  Paste the merged draft into the optimizer and score it against the target query before it goes live. The gate strip shows where the combined page would still fall out of the pipeline, which catches the two-introduction problem and the sections that stopped making sense after the merge. Scoring and re-scoring are free, so iterate until the readiness banner clears.\n\u003c/WorkflowCallout\u003e\n\n## Re-score and watch the rank\n\nPublish, then wait, then check. In that order, and the waiting is longer than it feels like it should be.\n\nNothing changes for anyone until both pages get recrawled. The canonical page has to be re-read with its new content, and the redirect has to be processed before the old URL stops competing. Three to six weeks is normal. Checking after four days will show you nothing and make somebody nervous.\n\nWatch three things:\n\n- **Your page count on the target search.** This is the direct measure of whether the split closed. Two of your URLs became one.\n- **The rank of the canonical page.** Merges usually produce a dip for a 
2week or two and then a recovery above where either page started. The dip is not a sign the fix failed.\n- **Citations in answers.** This moves last, because answers get rebuilt from whatever the assistant retrieved most recently. Ranking improvement shows up first, citations follow.\n\nRe-score the canonical page against the same query you started with so the before and after are comparable. If the score improved and the rank didn't, the page is now good enough to be retrieved and something else is holding it back, often a technical issue like a page that only renders in the browser or that blocks the crawler. An [AI readiness audit](/ai-readiness-audit) rules those out in one pass.\n\nThen do the next one. Splits come in small numbers, so a site with four of them is maybe six weeks of work total, and it's the cheapest visibility work available because you're not commissioning anything new. When you do go back to publishing, check drafts against their target query before they go out; that's how you stop creating the next split, and [checking a draft before publishing](/blog/how-to-check-a-draft-for-ai-citation-before-publishing) walks through it.\n\n\u003cWorkflowCallout\n  title=\"Track the fix against a fixed baseline\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Rank of the canonical page for the target search\",\n    before: \"#14\",\n    after: \"#6\",\n    tone: \"positive\",\n    caption: \"dipped to #19 in week two, then recovered\",\n    series: [14, 16, 19, 18, 15, 12, 10, 9, 8, 7, 6, 6],\n    lowerIsBetter: true,\n  }}\n\u003e\n  An SEO project pins the pages and queries you're working on to a start date and measures everything against that baseline instead of a rolling window. Annotating the publish date is what lets you tell a real recovery from a normal week of drift when someone asks whether the merge worked.\n\u003c/WorkflowCallout\u003e\n\n## Start with one query you should already own\n\nPick the single question your team is most annoyed about losing. Look at which of your pages come back for it. If two of them do, you've found work worth a week, and it's work that doesn't require a new brief, a new budget, or a writer.\n\nThe reason this stays hidden is that nothing about it looks like a problem. Both pages are decent, both get some traffic, and no report has a row that says \"these two are canceling each other out.\" You only see it when you stop auditing pages and start auditing queries.\n\nOne question, one canonical page. Do that four times and you've fixed more AI visibility than a quarter of new posts would have.\n\n**Part of the Spyglasses workflow series.** This guide is one of five workflows for content teams. The rest are collected in the [AI visibility guides for content teams](/guides/ai-visibility-for-content-teams)."])</script>
2<script>self.__next_f.push([1,"72:T5e2d,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var y=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var i in e)r(n,i,{get:e[i],enumerable:!0})},s=(n,e,i,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of u(e))!m.call(n,o)\u0026\u0026o!==i\u0026\u0026r(n,o,{get:()=\u003ee[o],enumerable:!(a=f(e,o))||a.enumerable});return n};var k=(n,e,i)=\u003e(i=n!=null?p(w(n)):{},s(e||!n||!n.__esModule?r(i,\"default\",{value:n,enumerable:!0}):i,n)),v=n=\u003es(r({},\"__esModule\",{value:!0}),n);var l=y((T,h)=\u003e{h.exports=_jsx_runtime});var x={};b(x,{default:()=\u003eg});var t=k(l());function d(n){let e={a:\"a\",code:\"code\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:i,WorkflowCallout:a}=e;return i||c(\"PullQuote\",!0),a||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To fix pages competing for the same query, start from the query instead of the pages. List every page on your site that shows up in the top 30 results for it, check whether two of them actually answer the same question, pick one to be the canonical answer, then either fold the other one in behind a 301 redirect or rewrite it to do a different job. Rewrite both pages, not just the one you kept, because a page that still opens with the same promise keeps competing. Then re-score the canonical page against the query and watch its rank on the searches ChatGPT, Gemini, and Perplexity run, for three to six weeks. Most content teams find two or three of these splits on any site older than a couple of years, and fixing one is usually cheaper than writing anything new.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the version of this that shows up in a content meeting. Somebody notices that ChatGPT names a competitor for a question your site has covered twice. Someone else pulls up both of your pages and they're both fine. That's the confusing part. Nothing is broken, nobody wrote anything bad, and you still lose.\"}),`\n`,(0,t.jsx)(e.p,{children:\"What's happening is a split. Two pages answering the same question don't stack up into a stronger signal. They divide one. Search engines have to choose which of your pages to rank, AI assistants have to choose which of your pages to cite, and when the two look interchangeable, the safest choice for the machine is to go with somebody else's page that has no such ambiguity.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is an old SEO problem with a sharper edge. In classic search you could survive it, because a results page has ten slots and your two mediocre pages might both scrape onto it. An AI answer names one source per point. There's no second slot to land in.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Find the split\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Listing your own pages on one query\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Two or more of your URLs on the same search\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Confirm it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking body and summary, not just topic\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You can say what makes them the same\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Pick the winner\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Choosing one canonical page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One URL written down, with a reason\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Choose the fix\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Consolidate or differentiate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The call is made before editing starts\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Rewrite both\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Merging or repositioning\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Neither page opens with the same promise\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Re-score\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Measuring after recrawl\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One page rising, the other out of the way\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Find the query your pages are splitting\"}),`\n`,(0,t.jsx)(e.p,{children:\"The mistake almost everyone makes here is starting from the content inventory. You open a spreadsheet of 400 URLs, sort by title similarity, and try to 
2spot duplicates. It takes a week and it finds the wrong things, because pages with similar titles are often fine and pages with different titles are often the ones fighting.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start from the query instead. Pick a question you should be winning, one that matters to your business and that you've written about more than once. Then ask a simple thing: which of my pages come back for this?\"}),`\n`,(0,t.jsx)(e.p,{children:\"If the answer is one page, you're done here. Go work on that page. If the answer is two or three of your own URLs sitting near each other in the results, you've found a split.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Do this on the searches that AI assistants actually run, not the ones you wish they ran. When somebody asks an assistant a question, the assistant turns it into several web searches with their own phrasings and qualifiers, and those are the searches your pages get retrieved for. A page can look great for the phrase in your content brief and never surface for the phrase the assistant used. If that distinction is new to you, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-win-a-target-ai-grounding-search\",children:\"winning a target AI grounding search\"}),\" covers the mechanics.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Expect to find two to four real splits on a mature site. Older sites that went through a rebrand, a product renaming, or a period of publishing three posts a week tend to have more. Content teams that inherited a blog from a previous agency almost always have some.\"}),`\n`,(0,t.jsx)(a,{title:\"Start from the query and see which of your pages come back\",page:\"Grounding Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"count\",label:\"Grounding searches with more than one of your pages ranking\",value:6,target:41,caption:\"3 rated high impact\"},children:(0,t.jsx)(e.p,{children:\"Grounding Rankings lists the web searches AI assistants ran behind your tracked prompts and shows where your pages sit on each one. Rows where two of your own URLs appear are the ones to look at; that pattern is much easier to spot from the query side than from a content inventory.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Confirm the overlap is real\"}),`\n`,(0,t.jsx)(e.p,{children:\"Two pages on the same topic aren't automatically a problem. A category overview and a detailed how-to can both cover pricing without competing at all, because a reader who needs one doesn't want the other.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So check two things before you touch anything.\"}),`\n`,(0,t.jsx)(e.p,{children:`First, the body. Read the first 200 words of each page side by side. If they make the same promise to the same reader, that's a split. If one says \"here's what this costs and why\" and the other says \"here's how to set it up,\" they're doing different jobs even though a topic model groups them together.`}),`\n`,(0,t.jsx)(e.p,{children:\"Second, the summary. Look at the title and meta description of both pages, which is what a retrieval system sees before it decides whether to open anything. Pages get flagged as duplicates far more often for having near-identical summaries than for having similar bodies. Two posts can be very different inside and still present themselves as the same page in the one place that determines whether either gets read.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Both signals have to agree before you call it. Body-only similarity gives you false alarms on any templated site, where every page shares navigation, boilerplate, and a footer full of the same words. That's why a single similarity check flags product catalogs where nothing is actually wrong. When the body and the summary both say the same thing, you have a real split.\"}),`\n`,(0,t.jsx)(e.p,{children:`Write down the sentence that describes the overlap. Something like \"both of these promise a buyer's guide to the same product category, in the same voice, for the same reader.\" If you can't write it, you don't have a split, you have two pages on one topic, and the work you were about to do would have made things worse.`}),`\n`,(0,t.jsx)(a,{title:\"Overlap detection that checks the content and the summary\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"checklist\",items:[{label:\"Body similarity above threshold\",done:!0},{label:\"Meta description similarity above threshold\",done:!0},{label:\"Both pages ranked for the same search\",done:!0},{label:\"Overlap flag raised on the pair\",done:!0},{label:\"Canonical page chosen\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"When the optimizer matches a query to your pages, it also flags pairs that are too similar to tell apart. The flag needs a dual signal; the full-content embeddings and the meta-description embeddings both have to be highly similar, which is what keeps templated sites from setting it off. When you see the flag, the pair is worth acting on.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick the page that should win\"}),`\n`,(0,t.jsx)(e.p,{children:`Now pick one. Not \"we'll see how it plays out.\" One URL, written down, with a reason next to it.`}),`\n`,(0,t.jsx)(e.p,{children:\"Three inputs, in this order:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Current position.\"}),\" Whichever page is already closer to the top for the target search has a head start you can't buy. It's been crawled more, it's been linked to more, and the algorithms already trust it more. Promoting the page you like better over the page that's already ranking costs you months.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Links and traffic.\"}),\" Check what points at each URL from the outside world and what each one already brings in. A page with three references from other sites is worth more than a page with none, even if the second one reads better. You can improve writing in an afternoon. You can't manufacture five years of links.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Fit with the query.\"}),\" If the target search asks for a comparison and one page is a comparison while the other is a product page, the comparison wins, even if it's newer and weaker. Fighting a page's format is harder than 
2improving its content.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"When the three inputs disagree, current position usually wins. It's the one you can't recreate.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One caution. Teams often want to pick the newest page because it matches the current brand voice and the old one is embarrassing. That's a real reason to rewrite something, but it's a bad reason to make it your canonical page. Keep the URL with the history and rewrite it into the voice you want. You get both.\"}),`\n`,(0,t.jsx)(i,{image:\"/images/blog/how-to-fix-pages-competing-for-the-same-query-quote.webp\",quote:\"Two pages answering the same question don't add up; they cancel out. A split hands AI two weak options instead of one strong one.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-fix-pages-competing-for-the-same-query\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Choose between consolidating and differentiating\"}),`\n`,(0,t.jsx)(e.p,{children:\"There are two fixes and they lead to very different weeks of work, so make the call before anyone opens a doc.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Consolidating\"}),\" means the second page stops existing as a separate answer. You move whatever it does well into the canonical page and redirect the old URL. One page, one job, all the signal in one place.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Differentiating\"}),\" means both pages survive with clearly separate jobs. You rewrite the second page so it answers a different question, with a different title, a different opening promise, and a different reader in mind.\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"}}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Consolidate\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Differentiate\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Use when\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Same reader, same moment\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Different readers or stages\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The second page has\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Little traffic or links of its own\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Its own audience worth keeping\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The overlap lives in\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The substance\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The titles and intros\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Work involved\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Merge, redirect, fix internal links\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewrite the second page's angle\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Risk\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Losing the redirect or the links\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The two pages drift back together\"})]})]})]}),`\n`,(0,t.jsxs)(e.p,{children:[\"A third move gets suggested in every one of these meetings, and it's worth naming so you can rule it out. Someone will propose a \",(0,t.jsx)(e.code,{children:\"rel=canonical\"}),\" tag pointing the weaker page at the stronger one, or a \",(0,t.jsx)(e.code,{children:\"noindex\"}),\" on the loser, as a way to avoid the work. Both are real tools and neither does what people hope here. A canonical tag is a hint that search engines can ignore, and it does nothing about the second page still sitting there making the same promise to any assistant that fetches it directly. Use them alongside a real fix, not instead of one.\"]}),`\n`,(0,t.jsx)(e.p,{children:`Content teams reach for differentiating more often than they should, usually because consolidating feels like admitting a page was a mistake. Here's a test that settles it. Write a one-sentence job description for each page, in the form \"this page is for someone who wants X.\" If the two sentences are the same sentence with different words, consolidate. If you can't write the second one at all, definitely consolidate.`}),`\n`,(0,t.jsx)(e.p,{children:\"There's one more option nobody likes but that's sometimes right. If neither page is any good and the query matters, consolidate both into one new page at the stronger URL and treat it as a rewrite rather than a merge. That's more work than either fix above, but it beats stitching two weak drafts together and hoping.\"}),`\n`,(0,t.jsx)(a,{title:\"Two fixes, and the one the flag recommends\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"beforeAfter\",label:\"Your pages ranking for the target search\",before:\"2\",after:\"1\",tone:\"positive\",caption:\"one canonical page after the merge\"}
2,children:(0,t.jsx)(e.p,{children:\"The overlap panel names the pair and gives you the same two paths; consolidate the pages into one stronger page and redirect the weaker URL, or differentiate their focus so each targets a distinct query. It also shows which page the optimizer would score against by default, which is a useful second opinion when your team is split on which URL to keep.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Rewrite both pages, not just one\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step teams skip, and skipping it is why cannibalization keeps coming back on the same two URLs.\"}),`\n`,(0,t.jsx)(e.p,{children:\"If you consolidated, the work has four parts and all four matter:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Move the useful sections from the second page into the canonical one. Not everything. The parts that answer the question better than what's already there.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Redirect the old URL to the new one with a 301, not a 302. A temporary redirect tells crawlers the old page is coming back, so it keeps competing, and a page that returns a 404 throws away every link pointing at it.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Update internal links so they point at the canonical URL directly instead of bouncing through the redirect.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Rewrite the canonical page's opening so it clearly owns the whole question now, including the part the other page used to handle.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"If you differentiated, the work is smaller but more delicate. Change the second page's title, its opening paragraph, and its headings so the promise is different. Cosmetic edits won't do it; if the first 200 words still make the same offer, the pages will keep competing no matter what you did to the middle. Then link from each page to the other with text that says what the other one is for. That signals the split to readers and to retrieval systems at the same time.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Either way, spend some of the effort on the canonical page itself. A page that just absorbed a competing URL is usually a bit of a mess, with two introductions and a middle section that repeats itself. The habits that make a page easy for an assistant to cite are the same ones that make it readable; answer the question early, use the words the search uses, and keep the extractable parts as tables or short lists. There's more on that in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"optimizing existing content for AI citation\"}),\".\"]}),`\n`,(0,t.jsx)(a,{title:\"Score the merged page before you publish it\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"score\",label:\"Citation pipeline score on the merged draft\",value:71,target:70},children:(0,t.jsx)(e.p,{children:\"Paste the merged draft into the optimizer and score it against the target query before it goes live. The gate strip shows where the combined page would still fall out of the pipeline, which catches the two-introduction problem and the sections that stopped making sense after the merge. Scoring and re-scoring are free, so iterate until the readiness banner clears.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Re-score and watch the rank\"}),`\n`,(0,t.jsx)(e.p,{children:\"Publish, then wait, then check. In that order, and the waiting is longer than it feels like it should be.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Nothing changes for anyone until both pages get recrawled. The canonical page has to be re-read with its new content, and the redirect has to be processed before the old URL stops competing. Three to six weeks is normal. Checking after four days will show you nothing and make somebody nervous.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Watch three things:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Your page count on the target search.\"}),\" This is the direct measure of whether the split closed. Two of your URLs became one.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The rank of the canonical page.\"}
2),\" Merges usually produce a dip for a week or two and then a recovery above where either page started. The dip is not a sign the fix failed.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Citations in answers.\"}),\" This moves last, because answers get rebuilt from whatever the assistant retrieved most recently. Ranking improvement shows up first, citations follow.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Re-score the canonical page against the same query you started with so the before and after are comparable. If the score improved and the rank didn't, the page is now good enough to be retrieved and something else is holding it back, often a technical issue like a page that only renders in the browser or that blocks the crawler. An \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI readiness audit\"}),\" rules those out in one pass.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then do the next one. Splits come in small numbers, so a site with four of them is maybe six weeks of work total, and it's the cheapest visibility work available because you're not commissioning anything new. When you do go back to publishing, check drafts against their target query before they go out; that's how you stop creating the next split, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-check-a-draft-for-ai-citation-before-publishing\",children:\"checking a draft before publishing\"}),\" walks through it.\"]}),`\n`,(0,t.jsx)(a,{title:\"Track the fix against a fixed baseline\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"beforeAfter\",label:\"Rank of the canonical page for the target search\",before:\"#14\",after:\"#6\",tone:\"positive\",caption:\"dipped to #19 in week two, then recovered\",series:[14,16,19,18,15,12,10,9,8,7,6,6],lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"An SEO project pins the pages and queries you're working on to a start date and measures everything against that baseline instead of a rolling window. Annotating the publish date is what lets you tell a real recovery from a normal week of drift when someone asks whether the merge worked.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start with one query you should already own\"}),`\n`,(0,t.jsx)(e.p,{children:\"Pick the single question your team is most annoyed about losing. Look at which of your pages come back for it. If two of them do, you've found work worth a week, and it's work that doesn't require a new brief, a new budget, or a writer.\"}),`\n`,(0,t.jsx)(e.p,{children:'The reason this stays hidden is that nothing about it looks like a problem. Both pages are decent, both get some traffic, and no report has a row that says \"these two are canceling each other out.\" You only see it when you stop auditing pages and start auditing queries.'}),`\n`,(0,t.jsx)(e.p,{children:\"One question, one canonical page. Do that four times and you've fixed more AI visibility than a quarter of new posts would have.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of five workflows for content teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-content-teams\",children:\"AI visibility guides for content teams\"}),\".\"]})]})}function g(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(x);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"21:[\"$\",\"$L10\",\"how-to-fix-pages-competing-for-the-same-query\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$71\",\"title\":\"How to Fix Pages Competing for the Same Query\",\"date\":\"2026-08-31\",\"image\":\"/images/blog/how-to-fix-pages-competing-for-the-same-query.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Two of your pages answer the same question, so AI search can't tell which one to cite and neither one wins. Here's how content teams find overlapping pages, pick the canonical one, and consolidate or differentiate the rest without losing the traffic they already have.\",\"tags\":[\"Content\",\"How-to\",\"Workflows\",\"Content Strategy\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What does it mean for two pages to compete for the same query?\",\"answer\":\"It means both pages are close enough in topic and wording that a retrieval system sees them as interchangeable answers to the same question. Instead of one page building a clear signal, the signal splits across two, and each one looks weaker than the combined version would have. SEO teams have called this cannibalization for years; AI search makes it worse because an assistant usually cites one source per point rather than listing ten results.\"},{\"question\":\"How do I know overlap is the actual problem and not just weak content?\",\"answer\":\"Look for the pattern rather than the score. Overlap looks like two pages hovering in similar mid-table positions for the same search, swapping places between checks, with neither one improving when you add more to either. Weak content looks like one page stuck low no matter what the other pages do. If a rewrite of one page moves nothing and the other page moves down, you're looking at a split.\"},{\"question\":\"Should I consolidate the pages or keep both and differentiate them?\",\"answer\":\"Consolidate when both pages serve the same reader at the same moment and neither has meaningful traffic or links of its own. Differentiate when the two pages serve different readers or different stages, and the overlap comes from lazy titles and intros rather than from the substance. Most teams differentiate more often than they should; if you can't write a one-sentence job description for each page, consolidate.\"},{\"question\":\"Will consolidating pages cost me traffic?\",\"answer\":\"Usually the opposite, as long as you redirect properly. The risk comes from deleting a page without a redirect, or from folding a page that was quietly earning links into one that isn't relevant to those links. Keep the stronger URL, move the useful sections across, redirect the old URL to the new one, and update your internal links so nothing points at a redirect chain.\"},{\"question\":\"How long before the fix shows up in AI answers?\",\"answer\":\"Plan on three to six weeks. The pages have to be recrawled before any assistant can see the change, and the redirect has to be processed before the old URL stops competing. You'll often see the search ranking move first and the AI citations follow a couple of weeks later, because answers get rebuilt from whatever was retrieved most recently.\"}],\"howTo\":{\"name\":\"How to fix pages competing for the same query\",\"description\":\"A step-by-step workflow for content teams that finds pages splitting their own authority on one query, picks the page that should win, and consolidates or differentiates the rest so AI search has one clear source to cite.\",\"steps\":[{\"name\":\"Find the query your pages are splitting\",\"text\":\"Start from a query you should be winning and list every page of your own that shows up for it, rather than starting from the pages.\"},{\"name\":\"Confirm the overlap is real\",\"text\":\"Check whether the two pages really answer the same question or just share a topic, using both the body content and the summary each page presents.\"},{\"name\":\"Pick the page that should win\",\"text\":\"Choose one canonical page based on existing rank, links, and fit with the query, and write down why it won.\"},{\"name\":\"Choose between consolidating and differentiating\",\"text\":\"Decide whether the second page should be folded into the first or given a distinct job, and make that call before anyone starts editing.\"},{\"name\":\"Rewrite both pages, not just one\",\"text\":\"Strengthen the canonical page with what the other page did well, and either redirect the second page or rewrite it so it stops answering the same question.\"},{\"name\":\"Re-score and watch the rank\",\"text\":\"Score the canonical page against the target query again after the change, then track the ranking and citations until the split stops showing up.\"}]},\"_meta\":{\"filePath\":\"how-to-fix-pages-competing-for-the-same-query.mdx\",\"fileName\":\"how-to-fix-pages-competing-for-the-same-query.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-fix-pages-competing-for-the-same-query\"},\"body\":\"$72\",\"locale\":\"en\",\"path\":\"how-to-fix-pages-competing-for-the-same-query\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"73:T4354,"])</script>
2<script>self.__next_f.push([1,"To displace a competitor in AI answers, pick one rival and one quarter, then work backward from the answers. Find the grounding searches where they rank in ChatGPT, Gemini, Perplexity, and Google AI Overviews and your client doesn't, open the competitor pages holding those spots, and check which third-party sources keep feeding their name into answers. Split the result into two lists; pages you can write and publishers you have to pitch. A realistic quarter is 8 to 12 target searches, 4 to 6 pages written or rewritten, and 3 to 5 publishers pitched. Track that fixed set in a project so you can show movement against a baseline, and expect most of the change between week four and week ten.\n\nEvery agency has this conversation. A client sees a competitor named in ChatGPT and asks why they aren't. The true first answer is that nobody knows yet, and the useful second answer is that it's findable. Somewhere behind that answer is a set of web searches the assistant ran, a handful of pages it read, and a few sources it trusted. Your competitor is in those pages. Your client isn't. That's the whole problem, and it's a much smaller problem than \"we're losing at AI.\"\n\nThe trap is treating this like a brand-level fight. Share of voice is a fine scoreboard and a terrible work plan. You can't act on a number that says a rival holds 38% and your client holds 31%. You can act on a list of nine searches where that rival is on page one and your client is nowhere.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Pick the target | Choosing one rival and one angle | The team can name who and why |\n| 2. Find the queries | Listing searches they win and you don't | A fixed target list, 8 to 12 long |\n| 3. Read their pages | Studying what makes those pages retrievable | You can explain each win in a sentence |\n| 4. Trace the sources | Separating owned wins from earned ones | Two lists, not one vague backlog |\n| 5. Build and pitch | Writing pages and pitching publishers | Work shipped against the target list |\n| 6. Run the project | Measuring the fixed set monthly | Ranks move on queries you named first |\n\n## Pick one competitor and one reason\n\nStart by narrowing, because the instinct is to go wide and the result is always the same. A client hands you five competitors, you track all five, and the work never focuses enough to move any of them.\n\nRead the competitor breakdown first and look for the brand sitting one rung above your client. That's usually the right target. The category leader is ahead because of years of coverage, reviews, and links you can't replicate in twelve weeks. The brand just above you is often ahead because of five or six specific pages, and pages are beatable.\n\nThen write down the reason. This part gets skipped and it's the part that makes the rest of the quarter coherent. There are only a few ways a competitor beats you in AI answers, and each one leads to different work:\n\n| How they're winning | What it looks like | What the work becomes |\n| :--- | :--- | :--- |\n| They own the searches | They rank for the queries AI runs, you don't | Content and page-level SEO |\n| Third parties carry them | Reviews and roundups name them, not you | Publisher outreach |\n| They win comparisons | Both get named, they get recommended | Positioning and proof content |\n| They're the default answer | AI names them when nobody was asked | Long game, category content |\n\nMost clients are losing in exactly one of these ways, and they usually assume it's the last one when it's really the first. Check before you plan.\n\nOne more thing worth doing in week one. Compare how often each brand gets named against how often it gets recommended when both appear. A competitor who shows up everywhere but loses head-to-head comparisons is a different problem than one who wins every comparison but barely appears. The first is a visibility gap. The second is a positioning gap, and no amount of new content fixes it.\n\n\u003cWorkflowCallout\n  title=\"Start from the competitor breakdown, not the overall score\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"count\",\n    label: \"Share of voice gap to the brand above you\",\n    value: 7,\n    caption: \"38.2% for them, 31.4% for your client\",\n  }}\n\u003e\n  The competitor view ranks every tracked brand by share of voice across the same prompt set, with mention counts and head-to-head comparison rates beside each one. Sorting by comparison outcome instead of share of voice is what tells you whether you are looking at a visibility gap or a positioning gap.\n\u003c/WorkflowCallout\u003e\n\n## Find the exact queries where they win\n\nThis is the step that turns a complaint into a work plan.\n\nAI assistants don't answer purchase questions from memory. They run web searches, read what comes back, and build an answer from it. Those searches are the real battlefield, and they look nothing like the question the user typed. Somebody asks for the best option for a small team, and behind that the assistant runs four or five searches with different phrasings, comparisons, and qualifiers.\n\nSo drop out of the brand view and into those searches. For each one, you want three things: where your client ranks, where the target competitor ranks, and which competitor URL is holding the spot. What comes back sorts itself into three piles.\n\nThe first pile is searches where your client already ranks well. Leave them alone. They're working.\n\nThe second pile is searches where the competitor ranks and your client sits somewhere past the first ten results. These are your targets. Something exists on your client's site that's close but not close enough, and closing that gap is the cheapest win available to you.\n\nThe third pile is searches where your client doesn't appear at all. Some of these are real gaps worth filling. Others are searches your client shouldn't chase, because the intent belongs to a different kind of buyer or a product they don't sell. Be willing to cut half of this pile.\n\nAim for eight to twelve target searches. Fewer than eight and one bad month makes the whole report look like noise. More than twelve and you can't ship enough work to move any of them. If you're new to reading these searches at all, [winning a target AI grounding search](/blog/how-to-win-a-target-ai-grounding-search) walks through the mechanics one query at a time.\n\n\u003cWorkflowCallout\n  title=\"The searches behind the answers, with ranks for both brands\"\n  page=\"Grounding Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"count\",\n    label: \"Grounding searches where a rival ranks and you don't\",\n    value: 23,\n    target: 58,\n    caption: \"9 rated high impact\"\n  }}\n\u003e\n  Grounding Rankings collects the web searches AI assistants actually ran behind your tracked prompts, then shows where your client's pages sit for each one. Expanding a row reveals the competitor URLs holding the positions above you, which is what turns a share of voice number into a list of pages to beat.\n\u003c/WorkflowCallout\u003e\n\n## Read the pages holding those ranks\n\nNow open them. Actually open them, one at a time, with the target search in mind.\n\nThis takes about an hour for a dozen pages and it's the least glamorous hour of the quarter. It's also where the plan stops being generic. You're not asking whether their page is good. You're asking why a retrieval system picked this page for this search.\n\nA few things show up over and over. The page answers the exact question in the first paragraph instead of building to it over eight hundred words. It uses the words the search uses, including the qualifiers, rather than the client's internal product vocabulary. It has a table or a list that can be lifted whole into an answer. It's dated and looks maintained. It loads as HTML without needing JavaScript to render the part that matters.\n\nWrite one sentence per page about why it wins. If you can't write that sentence, you don't understand the win yet and you'll write a replacement page that loses for the same reason.\n\nWhile you're in there, check the boring technical stuff on your client's competing page too. A page that's blocked, slow, or rendered entirely in the browser can be the best answer on the internet and still never get read. That's a fast fix and it's worth ruling out before you commission new writing. An [AI readiness audit](/ai-readiness-audit) catches most of it in one pass.\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-displace-a-competitor-in-ai-answers-quote.webp\"\n  quote=\"Share of voice is a scoreboard, not a work plan. You can't act on a number. You can act on nine searches where a rival ranks and your client doesn't.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-displace-a-competitor-in-ai-answers\"\n/\u003e\n\n## Trace the sources that keep them there\n\nPages on the competitor's own site are only half the story, and usually the smaller half.\n\nLook at what gets cited in the answers where the competitor is named. You'll see their domain, sure. You'll also see review sites, industry roundups, forum threads, comparison articles, and trade publications. Those third-party sources often carry more weight than anything either brand publishes, because assistants lean on sources that look independent when the question is which option to choose.\n\nSort what you find into two buckets, because they lead to completely different work and different budgets.\n\nOwned wins are the ones your client can create. A missing page, a thin page, a page that exists but can't be read, a documentation section that answers a question your marketing site avoids. You control the timeline on these.\n\nEarned wins are the ones your client has to be given. A roundup that lists eight tools and not theirs. A review site where the competitor has forty reviews and your client has three. An analyst piece. You don't control these, but they're often the highest-leverage items on the list, and one of them can be worth more than six new blog posts.\n\nRank the earned list by influence rather than by brand recognition. A trade publication nobody in the client's boardroom has heard of can be cited in answers weekly, while a famous outlet blocks AI crawlers entirely and never shows up. That gap between prestige and actual influence is the thing worth checking before you spend a month chasing a placement.\n\n\u003cWorkflowCallout\n  title=\"Which third parties are carrying the competitor\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Third-party sources naming the rival but not your client\",\n    before: \"17\",\n    after: \"9\",\n    tone: \"positive\",\n    caption: \"after one quarter of outreach\"\n  }}\n\u003e\n  Citation Intelligence classifies every source appearing in y
2our answers by type, owner, and AI placement value, and can be filtered to the answers where a specific competitor is mentioned. That filter is what separates the sites your client is missing from the sites they already appear on.\n\u003c/WorkflowCallout\u003e\n\n## Build the content and the pitch list\n\nYou now have more work identified than one quarter can hold. Cut it down before anyone starts writing.\n\nFor the content list, four to six pages is realistic for most retainers. Prioritize by how close your client already is. A page ranking eleventh for a target search is worth more attention than a blank page, because a rewrite that gets it into the top five is a week of work while a new page is a month plus the wait for indexing. Rewrites also come with a track record the search engine already trusts.\n\nWrite each page against the sentence you wrote in step three. If the competitor wins because they answer the question in the first paragraph and your client buries it under a brand story, the fix is structural, not more words. Most displacement content is shorter than what it replaces.\n\nFor the pitch list, three to five publishers is plenty. Lead with the ones already citing the competitor for your target searches, because they've shown they cover this category and they're missing a source. That's a much easier pitch than convincing a publication to care about the space at all. If your client belongs in a roundup and isn't there, say exactly that and give the writer what they'd need to add them.\n\nTwo practical notes for agency teams. First, budget the outreach separately from the content, because the two get done by different people and the pitch list dies quietly when it's a footnote on a content brief. Second, tell the client which pile each item is in. Owned work has a date. Earned work has a probability, and being clear about that up front saves an awkward month three.\n\n\u003cWorkflowCallout\n  title=\"Score the publishers before you spend a month on them\"\n  page=\"Publisher Lookup\"\n  href=\"/docs/dashboards/publisher-lookup\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Target searches cut to 11\", done: true },\n      { label: \"Rewrites chosen over new pages where close\", done: true },\n      { label: \"Publishers scored for AI accessibility\", done: true },\n      { label: \"Pitch list cut to 4\", done: true },\n      { label: \"Owned and earned work budgeted separately\", done: false },\n    ],\n  }}\n\u003e\n  Publisher Lookup scores any outlet for AI placement value, combining its organic authority with whether AI crawlers can read it at all. Checking a target publication before you pitch it is how you avoid spending a quarter earning a placement that no assistant will ever see.\n\u003c/WorkflowCallout\u003e\n\n## Run it as a project and prove the shift\n\nThe last step is the one that protects the work, and it has to happen before anything ships.\n\nRecord the starting position on your target searches now. Where your client ranks, where the competitor ranks, how often each brand gets named in answers to the tracked prompts. If you skip this and measure later, you'll spend the quarterly review arguing about what the baseline was.\n\nThen set the reporting up around that fixed set of queries rather than around the overall trend. This matters more than it sounds. Overall share of voice moves for reasons that have nothing to do with your work, including competitors launching things, seasonal shifts in what people ask, and the assistants themselves changing how they retrieve. A fixed target list is defensible. A general trend line is a coin flip you have to explain either way.\n\nRead it monthly, not weekly. AI answers vary between runs even when nothing has changed, so a weekly view mostly measures noise and makes cautious clients nervous. Monthly, on the same queries, is the shortest window that says something real.\n\nExpect the shape of the results to be lumpy. Two of your eleven queries will move a lot, five will move a little, and four won't move at all. That's a normal quarter, and it's fine, because the two that moved tell you where to spend the next one. The pattern usually points somewhere specific, like every win coming from rewrites rather than new pages, or every win coming from one publisher placement.\n\nFold the target-query table into your regular client reporting so it shows up the same way every month. The rhythm for that is covered in [building monthly AI visibility client reports](/blog/how-to-build-monthly-ai-visibility-client-reports), and if you haven't set a starting point for this client at all yet, do that first with [baselining a brand's AI visibility](/blog/how-to-baseline-your-brands-ai-visibility).\n\n\u003cWorkflowCallout\n  title=\"A fixed target list, measured against a baseline\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"trend\",\n    label: \"Target searches where your client outranks the rival\",\n    series: [1, 1, 2, 2, 3, 3, 4, 5, 5, 6],\n    change: 500.0,\n  }}
2\n\u003e\n  A project pins a set of goals to a start date and measures everything against that baseline instead of a rolling window. SEO projects track page-level rank and mention changes on the queries you chose; PR projects track whether a publisher placement turned into an actual citation, which is how the outreach half of this plan gets scored.\n\u003c/WorkflowCallout\u003e\n\n## Take one query at a time\n\nDisplacement sounds like a fight and works like a list. One competitor, one quarter, a dozen searches, four pages, four publishers, and a monthly check against numbers you wrote down on day one.\n\nThe clients who get impatient with this are the ones who were promised something bigger. Nobody takes a category from a stronger competitor in three months. What you can do is win two or three of the searches that buyers actually run, and then come back next quarter and take two or three more. That compounds, and it survives contact with a client who wants to know exactly what the retainer bought.\n\nStart with the reason. If you can't name how the competitor is beating your client in one sentence, the rest of the plan is a guess with a budget attached.\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"74:T579b,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var m=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)o(n,a,{get:e[a],enumerable:!0})},s=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of w(e))!f.call(n,r)\u0026\u0026r!==a\u0026\u0026o(n,r,{get:()=\u003ee[r],enumerable:!(i=g(e,r))||i.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?p(y(n)):{},s(e||!n||!n.__esModule?o(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003es(o({},\"__esModule\",{value:!0}),n);var l=m((T,h)=\u003e{h.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eu});var t=k(l());function c(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||d(\"PullQuote\",!0),i||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To displace a competitor in AI answers, pick one rival and one quarter, then work backward from the answers. Find the grounding searches where they rank in ChatGPT, Gemini, Perplexity, and Google AI Overviews and your client doesn't, open the competitor pages holding those spots, and check which third-party sources keep feeding their name into answers. Split the result into two lists; pages you can write and publishers you have to pitch. A realistic quarter is 8 to 12 target searches, 4 to 6 pages written or rewritten, and 3 to 5 publishers pitched. Track that fixed set in a project so you can show movement against a baseline, and expect most of the change between week four and week ten.\"}),`\n`,(0,t.jsx)(e.p,{children:`Every agency has this conversation. A client sees a competitor named in ChatGPT and asks why they aren't. The true first answer is that nobody knows yet, and the useful second answer is that it's findable. Somewhere behind that answer is a set of web searches the assistant ran, a handful of pages it read, and a few sources it trusted. Your competitor is in those pages. Your client isn't. That's the whole problem, and it's a much smaller problem than \"we're losing at AI.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"The trap is treating this like a brand-level fight. Share of voice is a fine scoreboard and a terrible work plan. You can't act on a number that says a rival holds 38% and your client holds 31%. You can act on a list of nine searches where that rival is on page one and your client is nowhere.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Pick the target\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Choosing one rival and one angle\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The team can name who and why\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Find the queries\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Listing searches they win and you don't\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A fixed target list, 8 to 12 long\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Read their pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Studying what makes those pages retrievable\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You can explain each win in a sentence\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Trace the sources\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Separating owned wins from earned ones\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Two lists, not one vague backlog\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Build and pitch\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Writing pages and pitching publishers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Work shipped against the target list\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Run the project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Measuring the fixed set monthly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Ranks move on queries you named first\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick one competitor and one reason\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start by narrowing, because the instinct is to go wide and the result is always the same. A client hands you five competitors, you track all five, and the work never focuses enough to move any of them.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Read the competitor breakdown first and look for the brand sitting one rung above your client. That's usually the right target. The category leader is ahead because of years of coverage, reviews, and links you can't replicate in twelve weeks. The brand just above you is often ahead because of five or six specific pages, and pages are beatable.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then write down the reason. This part gets skipped and it's the part that makes the rest of the quarter coherent. There are only a few ways a competitor beats you in AI answers, and each one leads to different work:\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"How they're winning\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it looks like\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What the work becomes\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"They own the searches\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"They rank for the queries AI runs, you don't\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Content and page-level SEO\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Third parties carry them\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reviews and roundups name them, not you\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Publisher outreach\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"They win comparisons\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Both get named, they get recommended\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Positioning and proof content\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"They're the default answer\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI names them when nobody was asked\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Long game, category content\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Most clients are losing in exactly one of these ways, and they usually assume it's the last one when it's really the first. Check before you plan.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One more thing worth doing in week one. Compare how often each brand gets named against how often it gets recommended when both appear. A competitor who shows up everywhere but loses head-to-head comparisons is a different problem than one who wins every comparison but barely appears. The first is a visibility gap. The second is a positioning gap, and no amount of new content fixes it.\"}),`\n`,(0,t.jsx)(i,{title:\"Start from the competitor breakdown, not the overall score\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"count\",label:\"Share of voice gap to the brand above you\",value:7,caption:\"38.2% for them, 31.4% for your client\"},children:(0,t.jsx)(e.p,{children:\"The competitor view ranks every tracked brand by share of voice across the same prompt set, with mention counts and head-to-head comparison rates beside each one. Sorting by comparison outcome instead of share of voice is what tells you whether you are looking at a visibility gap or a positioning gap.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Find the exact queries where they win\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that turns a complaint into a work plan.\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI assistants don't answer purchase questions from memory. They run web searches, read what comes back, and build an answer from it. Those searches are the real battlefield, and they look nothing like the question the user typed. Somebody asks for the best option for a small team, and behind that the assistant runs four or five searches with different phrasings, comparisons, and qualifiers.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So drop out of the brand view and into those searches. For each one, you want three things: where your client ranks, where the target competitor ranks, and which competitor URL is holding the spot. What comes back sorts itself into three piles.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The first pile is searches where your client already ranks well. Leave them alone. They're working.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The second pile is searches where the competitor ranks and your client sits somewhere past the first ten results. These are your targets. Something exists on your client's site that's close but not close enough, and closing that gap is the cheapest win available to you.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The third pile is searches where your client doesn't appear at all. Some of these are real gaps worth filling. Others are searches your client shouldn't chase, because the intent belongs to a different kind of buyer or a product they don't sell. Be willing to cut half of this pile.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Aim for eight to twelve target searches. Fewer than eight and one bad month makes the whole report look like noise. More than twelve and you can't ship enough work to move any of them. If you're new to reading these searches at all, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-win-a-target-ai-grounding-search\",children:\"winning a target AI grounding search\"}),\" walks through the mechanics one query at a time.\"]}),`\n`,(0,t.jsx)(i,{title:\"The searches behind the answers, with ranks for both brands\",page:\"Grounding Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"count\",label:\"Grounding searches where a rival ranks and you don't\",value:23,target:58,caption:\"9 rated high impact\"},children:(0,t.jsx)(e.p,{children:\"Grounding Rankings collects the web searches AI assistants actually ran behind your tracked prompts, then shows where your client's pages sit for each one. Expanding a row reveals the competitor URLs holding the positions above you, which is what turns a share of voice number into a list of pages to beat.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Read the pages holding those ranks\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now open them. Actually open them, one at a time, with the target search in mind.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This takes about an hour for a dozen pages and it's the least glamorous hour of the quarter. It's also where the plan stops being generic. You're not asking whether their page is good. You're asking why a retrieval system picked this page for this search.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A few things show up over and over. The page answers the exact question in the first paragraph instead of building to it over eight hundred words. It uses the words the search uses, including the qualifiers, rather than the client's internal product vocabulary. It has a table or a list that can be lifted whole into an answer. It's dated and looks maintained. It loads as HTML without needing JavaScript to render the part that matters.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Write one sentence per page about why it wins. If you can't write that sentence, you don't understand the win yet and you'll write a replacement page that loses for the same reason.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"While you're in there, check the boring technical stuff on your client's competing page too. A page that's blocked, slow, or rendered entirely in the browser can be the best answer on the internet and still never get read. That's a fast fix and it's worth ruling out before you commission new writing. An \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI readiness audit\"}),\" catches most of it in one pass.\"]}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-displace-a-competitor-in-ai-answers-quote.webp\",quote:\"Share of voice is a scoreboard, not a work plan. You can't act on a number. You can act on nine searches where a rival ranks and your client doesn't.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-displace-a-competitor-in-ai-answers\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Trace the sources that keep them there\"}),`\n`,(0,t.jsx)(e.p,{children:\"Pages on the competitor's own site are only half the story, and usually the smaller half.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Look at what gets cited in the answers where the competitor is named. You'll see their domain, sure. You'll also see review sites, industry roundups, forum threads, comparison articles, and trade publications. Those third-party sources often carry more weight than anything either brand publishes, because assistants lean on sources that look independent when the question is which option to choose.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Sort what you find into two buckets, because they lead to completely different work and different budgets.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Owned wins are the ones your client can create. A missing page, a thin page, a page that exists but can't be read, a documentation section that answers a question your marketing site avoids. You control the timeline on these.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Earned wins are the ones your client has to be given. A roundup that lists eight tools and not theirs. A review site where the competitor has forty reviews and your client has three. An analyst piece. You don't control these, but they're often the highest-leverage items on the list, and one of them can be worth more than six new blog posts.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Rank the earned list by influence rather than by brand recognition. A trade publication nobody in the client's boardroom has heard of can be cited in answers weekly, while a famous outlet blocks AI crawlers entirely and never shows up. That gap between prestige and actual influence is the thing worth checking before you spend a month chasing a placement.\"}),`\n`,(0,t.jsx)(i,{title:\"Which third parties are carrying the competitor\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"beforeAfter\",label:\"Third-party sources naming the rival but not your client\",before:\"17\",after:\"9\",tone
2:\"positive\",caption:\"after one quarter of outreach\"},children:(0,t.jsx)(e.p,{children:\"Citation Intelligence classifies every source appearing in your answers by type, owner, and AI placement value, and can be filtered to the answers where a specific competitor is mentioned. That filter is what separates the sites your client is missing from the sites they already appear on.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Build the content and the pitch list\"}),`\n`,(0,t.jsx)(e.p,{children:\"You now have more work identified than one quarter can hold. Cut it down before anyone starts writing.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For the content list, four to six pages is realistic for most retainers. Prioritize by how close your client already is. A page ranking eleventh for a target search is worth more attention than a blank page, because a rewrite that gets it into the top five is a week of work while a new page is a month plus the wait for indexing. Rewrites also come with a track record the search engine already trusts.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Write each page against the sentence you wrote in step three. If the competitor wins because they answer the question in the first paragraph and your client buries it under a brand story, the fix is structural, not more words. Most displacement content is shorter than what it replaces.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For the pitch list, three to five publishers is plenty. Lead with the ones already citing the competitor for your target searches, because they've shown they cover this category and they're missing a source. That's a much easier pitch than convincing a publication to care about the space at all. If your client belongs in a roundup and isn't there, say exactly that and give the writer what they'd need to add them.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Two practical notes for agency teams. First, budget the outreach separately from the content, because the two get done by different people and the pitch list dies quietly when it's a footnote on a content brief. Second, tell the client which pile each item is in. Owned work has a date. Earned work has a probability, and being clear about that up front saves an awkward month three.\"}),`\n`,(0,t.jsx)(i,{title:\"Score the publishers before you spend a month on them\",page:\"Publisher Lookup\",href:\"/docs/dashboards/publisher-lookup\",signal:{kind:\"checklist\",items:[{label:\"Target searches cut to 11\",done:!0},{label:\"Rewrites chosen over new pages where close\",done:!0},{label:\"Publishers scored for AI accessibility\",done:!0},{label:\"Pitch list cut to 4\",done:!0},{label:\"Owned and earned work budgeted separately\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Publisher Lookup scores any outlet for AI placement value, combining its organic authority with whether AI crawlers can read it at all. Checking a target publication before you pitch it is how you avoid spending a quarter earning a placement that no assistant will ever see.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Run it as a project and prove the shift\"}),`\n`,(0,t.jsx)(e.p,{children:\"The last step is the one that protects the work, and it has to happen before anything ships.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Record the starting position on your target searches now. Where your client ranks, where the competitor ranks, how often each brand gets named in answers to the tracked prompts. If you skip this and measure later, you'll spend the quarterly review arguing about what the baseline was.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then set the reporting up around that fixed set of queries rather than around the overall trend. This matters more than it sounds. Overall share of voice moves for reasons that have nothing to do with your work, including competitors launching things, seasonal shifts in what people ask, and the assistants themselves changing how they retrieve. A fixed target list is defensible. A general trend line is a coin flip you have to explain either way.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Read it monthly, not weekly. AI answers vary between runs even when nothing has changed, so a weekly view mostly measures noise and makes cautious clients nervous. Monthly, on the same queries, is the shortest window that says something real.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Expect the shape of the results to be lumpy. Two of your eleven queries will move a lot, five will move a little, and four won't move at all. That's a normal quarter, and it's fine, because the two that moved tell you where to spend the next one. The pattern usually points somewhere specific, like every win coming from rewrites rather than new pages, or every win coming from one publisher placement.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Fold the target-query table into your regular client reporting so it shows up the same way every month. The rhythm for that is covered in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-build-monthly-ai-visibility-client-reports\",children:\"building monthly AI visibility client reports\"}),\", and if you haven't set a starting point for this client at all yet, do that first with \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining a brand's AI visibility\"}),\".\"]}),`\n`,(0,t.jsx)(i,{title:\"A fixed target list, measured against a baseline\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"trend\",label:\"Target searches where your client outranks the rival\",series:[1,1,2,2,3,3,4,5,5,6],change:500},children:(0,t.jsx)(e.p,{children:\"A project pins a set of goals to a 
2start date and measures everything against that baseline instead of a rolling window. SEO projects track page-level rank and mention changes on the queries you chose; PR projects track whether a publisher placement turned into an actual citation, which is how the outreach half of this plan gets scored.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Take one query at a time\"}),`\n`,(0,t.jsx)(e.p,{children:\"Displacement sounds like a fight and works like a list. One competitor, one quarter, a dozen searches, four pages, four publishers, and a monthly check against numbers you wrote down on day one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The clients who get impatient with this are the ones who were promised something bigger. Nobody takes a category from a stronger competitor in three months. What you can do is win two or three of the searches that buyers actually run, and then come back next quarter and take two or three more. That compounds, and it survives contact with a client who wants to know exactly what the retainer bought.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with the reason. If you can't name how the competitor is beating your client in one sentence, the rest of the plan is a guess with a budget attached.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}function d(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"22:[\"$\",\"$L10\",\"how-to-displace-a-competitor-in-ai-answers\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$73\",\"title\":\"How to Displace a Competitor in AI Answers\",\"date\":\"2026-08-30\",\"image\":\"/images/blog/how-to-displace-a-competitor-in-ai-answers.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"How do you outrank a competitor in AI answers? Agencies find the exact grounding searches a rival owns in ChatGPT, Gemini, and Perplexity, the pages holding those spots, and the third-party sources feeding them. Here's the quarter-long workflow, step by step.\",\"tags\":[\"Agencies\",\"How-to\",\"Workflows\",\"Competitive Analysis\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Can you actually take a spot away from a competitor in AI answers?\",\"answer\":\"Yes, but not the way you take a keyword ranking. AI answers usually name two to four brands, so displacement is less about knocking someone out and more about becoming one of the names that gets included. In practice you win by being retrievable for the specific searches the assistant runs behind a question, which is a page-level and source-level fight rather than a domain-level one.\"},{\"question\":\"How long does displacement take?\",\"answer\":\"Give it a full quarter before you judge the work. New pages need to get crawled and indexed before they can be retrieved at all, and third-party sources move on their own schedule. Most of the movement we see shows up between week four and week ten, with the first two weeks looking flat no matter how good the work was.\"},{\"question\":\"Should we target the market leader or someone closer to us?\",\"answer\":\"Usually the brand just above your client, not the leader. The leader tends to hold their position through years of accumulated coverage that you cannot match in a quarter. The brand one rung up is often ahead because of five or six specific pages, and those are beatable. Save the leader for the queries where nobody has a strong answer yet.\"},{\"question\":\"What if the competitor is winning through review sites we do not control?\",\"answer\":\"That is the most common finding, and it changes the work from content to outreach. If a rival shows up in answers because three roundup articles rank for the searches AI runs, writing another page on your client's site will not fix it. You pitch those same publishers, get your client added or reviewed, and treat it as an earned media project instead of a content project.\"},{\"question\":\"How do we report displacement to a client without overpromising?\",\"answer\":\"Report on the queries you targeted, not on overall share of voice. Pick eight to twelve searches at the start, record where your client and the competitor sit on each one, and show the movement on that fixed set every month. It is a smaller claim than \\\"we improved your AI visibility\\\" and it is one you can defend line by line.\"}],\"howTo\":{\"name\":\"How to displace a competitor in AI answers\",\"description\":\"A repeatable workflow for agencies that identifies which competitor is beating a client in AI answers, which searches and pages hold those positions, and what content or outreach actually moves them.\",\"steps\":[{\"name\":\"Pick one competitor and one reason\",\"text\":\"Read the competitor breakdown, choose the single rival worth going after this quarter, and write down the specific way they are beating your client.\"},{\"name\":\"Find the exact queries where they win\",\"text\":\"Drop from brand-level share of voice into the grounding searches behind the answers, and list the searches where the competitor ranks and your client does not.\"},{\"name\":\"Read the pages holding those ranks\",\"text\":\"Open the competitor URLs sitting in those positions and work out what each page is doing that makes it retrievable for that search.\"},{\"name\":\"Trace the sources that keep them there\",\"text\":\"Look at the third-party sites cited in answers that mention the competitor, and separate the wins your client can create from the wins your client has to earn.\"},{\"name\":\"Build the content and the pitch list\",\"text\":\"Turn the query list into a short set of pages to write or rewrite and a short list of publishers to pitch, sized to what one quarter can actually deliver.\"},{\"name\":\"Run it as a project and prove the shift\",\"text\":\"Set up a tracked project on the target queries so the ranking and mention changes are measured against a fixed baseline instead of a general trend.\"}]},\"_meta\":{\"filePath\":\"how-to-displace-a-competitor-in-ai-answers.mdx\",\"fileName\":\"how-to-displace-a-competitor-in-ai-answers.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-displace-a-competitor-in-ai-answers\"},\"body\":\"$74\",\"locale\":\"en\",\"path\":\"how-to-displace-a-competitor-in-ai-answers\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"75:T4138,"])</script>
2<script>self.__next_f.push([1,"To track a rebrand in AI answers, start by updating your brand profile before launch so everything you measure afterward is testing the new name. Keep the old name as an alias so the trend line stays continuous. Write the new positioning down as three to seven key messages, annotate launch day and every milestone, then watch the two names trade places week over week across ChatGPT, Gemini, Claude, and Perplexity. When the old name lingers, open the citations behind those answers, rank the sources by influence, and correct them in that order. Expect the new name to become dominant one to three months after launch.\n\nA rebrand is fast on your side and slow on the web's. Your site changes overnight. The hundreds of other pages that mention you keep saying the old thing until somebody goes and updates them, and those pages are what AI assistants read when they answer questions about you. The usual holdouts are predictable: a Wikipedia article, two or three industry directories, a comparison roundup from two years ago, and a wire service archive that nobody can edit. That last category is why the switch takes a quarter rather than a week, long after the internal celebration is over.\n\nThat gap is the problem this workflow solves. It's also the part nobody staffs for. Teams spend a year on the name, six weeks on the launch, and zero days on the question of whether the systems most buyers now ask about companies have any idea the change happened.\n\nThis guide works with any AI visibility tracking setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Update the profile | Rewriting what the tracking knows about you | New prompts ask about the new company |\n| 2. Alias the old name | Counting both names as you | One trend line, not two broken ones |\n| 3. Write key messages | Turning positioning into trackable phrases | Adoption becomes a percentage |\n| 4. Annotate milestones | Dating launch, coverage, and cutover | Movement lines up with real events |\n| 5. Watch the swap | Reading both names week over week | The lines cross, and you can say when |\n| 6. Fix the sources | Correcting the pages carrying the old story | Old-name citations fall each month |\n\n## Update the brand profile before launch day\n\nEvery tracking setup carries a description of your company somewhere. It's the category you're in, who you sell to, what makes you different, and who you compete with. That description drives which questions get asked on your behalf and which mentions count as you.\n\nIf you rebrand and leave that description alone, you spend the next quarter measuring a company that no longer exists. The prompts test the old category. The mention matching looks for the old name. The reports come back clean and mean nothing.\n\nSo rewrite it first, ideally the week before launch. Change the name, obviously. Then check the parts people forget. The category, if the rebrand moved you into a new one. The audience, if you're now selling upmarket. The differentiators, because those are usually the reason for the rebrand in the first place. And the competitive set, since a repositioning often changes who you're compared against, and comparison questions are where AI does the most damage or the most good.\n\nOne caution about timing. Update the profile before launch, but don't expect the data to change on the same day. What you're doing here is making sure that everything measured from launch forward is asking about the right company.\n\n\u003cWorkflowCallout\n  title=\"Rewrite the profile that drives every prompt\"\n  page=\"Brand Snapshot\"\n  href=\"/docs/dashboards/brand-snapshot\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Name and tagline updated\", done: true },\n      { label: \"Category moved to the new positioning\", done: true },\n      { label: \"Differentiators rewritten\", done: true },\n      { label: \"Competitive set reviewed\", done: true },\n      { label: \"Prompts regenerated for the new brand\", done: false },\n    ],\n  }}\n\u003e\n  The Brand Snapshot is the structured profile that prompt generation, mention matching, and report writing all draw from. Edits you make by hand are preserved when the snapshot rebuilds, so correcting it once before launch holds through every later crawl and re-run.\n\u003c/WorkflowCallout\u003e\n\n## Keep the old name as an alias\n\nThis is the step that saves your reporting, and it's the easiest one to skip in the excitement of launch week.\n\nThe instinct is to delete the old name. You're done with it. But the old name is how AI will refer to you for months, and if your tracking only counts the new one, your visibility appears to collapse the day you launch. You'll be explaining a cliff to your CEO that isn't real.\n\nRegister the old name as an alias instead. Mentions of either name count as you, so the total holds steady while the mix underneath it shifts. That mix is the actual story. You want to be able to show a chart where one line falls, another climbs, and they cross on a date you can name.\n\nAliases catch more than the exact old name. Add the common variants people used, any product names that got folded into the new brand, and the legal entity name if it shows up in filings and directory listings. Directory data is stubborn and often quotes the legal name long after the marketing name changed.\n\nWhile you're here, check one thing that matters more than the name count. Ask an assistant directly whether the old company and the new one are the same. If the answer says the old company was acquired, shut down, or is a competitor of yours, you have a bigger problem than slow adoption, and the fix is making the connection explicit in the places models trust most.\n\n\u003cWorkflowCallout\n  title=\"Both names count as you\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"count\",\n    label: \"Answers matched by the old name, week 1\",\n    value: 62,\n    caption: \"counted toward your trend, not lost\",\n  }}\n\u003e\n  Brand aliases live on the property's General settings, and every alias is matched alongside the primary name across mentions, share of voice, and citations. Adding the previous name keeps the trend continuous through the transition instead of restarting it at zero.\n\u003c/WorkflowCallout\u003e\n\n## Turn the new positioning into key messages\n\nMost rebrands are not really about the name. The name is the visible part; the point is usually that the company wants to mean something different. That intent is testable, but only if you write it down first.\n\nKey messages are the short phrases you want repeated about you. Under ten words each, specific enough that a competitor couldn't use the same line, and true enough that you can defend them. Three to seven is the right number. A list of twelve is a document nobody reads.\n\nFor a rebrand, write two sets. The positive ones are the new framing you're trying to build. The negative ones are the outdated descriptions you're trying to retire, the old category label, the legacy product association, the audience you no longer serve. Tracking both gives you a real measure of adoption, because a rebrand isn't finished when the new story appears. It's finished when the old story stops.\n\nThen set expectations with whoever is watching the numbers. AI describes a company by synthesizing what many sources repeat. A phrase that lives only on your homepage carries almost no weight against a hundred articles using the old language. Message adoption follows coverage, so it moves slowly at first and then faster once a few influential sources pick up the new framing. Getting that framing into a launch announcement is a whole discipline of its own, covered in [optimizing a press release for AI citation](/blog/how-to-optimize-a-press-release-for-ai-citation).\n\n\u003cWorkflowCallout\n  title=\"Positioning you can score\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"score\",\n    label: \"New positioning in category answers\",\n    value: 34,\n    target: 60,\n  }}\n\u003e\n  Key Messages holds the phrases you want AI to repeat, tagged positive for the new framing and negative for the story you're retiring. They feed Share of Influence, which measures how often your framing appears in answers about the category before any brand gets named.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-track-a-rebrand-in-ai-answers-quote.webp\"\n  quote=\"You changed the name in an afternoon. The web that AI reads still says the old one, and it will keep saying it until somebody goes and updates it.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-track-a-rebrand-in-ai-answers\"\n/\u003e\n\n## Mark launch day and every milestone\n\nRebrand data is noisy for the first month. Something moves, three things happened that week, and nobody can say which one did it. Annotations fix that cheaply.\n\nMark the announcement date. Mark the day the site actually cut over, which is often not the same day. Mark the press release, any major coverage, the analyst briefing, the conference keynote, and the day you finished updating your third-party profiles. Each one takes ten seconds to record and saves an argument later.\n\nThe payoff shows up about six weeks in, when the chart has enough shape to read. You'll see a step change after one specific piece of coverage and nothing at all after another, and that difference tells you where to spend the rest of your outreach budget. Without the dates on the chart, all you have is a slope and a theory.\
2n\nAnnotations also protect you from taking credit for the wrong thing. Rebrand launches usually coincide with a website migration, and migrations move visibility all on their own, sometimes downward. A dated note is what lets you separate a positioning win from a technical side effect.\n\n\u003cWorkflowCallout\n  title=\"Dates on the chart, not in a spreadsheet\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"count\",\n    label: \"Milestones on the timeline\",\n    value: 7,\n    caption: \"launch, cutover, release, 4 coverage hits\",\n  }}\n\u003e\n  Annotations attach a dated note to the property and render as markers on the visibility charts. Every metric view shares them, so the launch marker sits under the share of voice line, the consistency line, and the citation mix without you re-entering it anywhere.\n\u003c/WorkflowCallout\u003e\n\n## Watch the name swap and the message pull-through\n\nNow you read the data, and there are two questions to keep separate.\n\nThe first is the name. Track the old and new names side by side and watch the ratio. Early on the old name dominates, because the web still says it. Over the following weeks the new one climbs. The date those lines cross is the most quotable number you'll get out of this whole exercise, and it's the one your executives will remember.\n\nThe second question is harder and more useful. When AI describes the company, is it using the new framing or the old one? A rebrand can move the name across in six weeks and leave the meaning untouched, so you end up with a new logo on the old story. Watching key message pull-through is what catches that, and catching it early is the difference between fixing it during launch and discovering it at the annual review.\n\nCheck brand consistency too. Rebrands reliably dent it, because for a while the sources disagree with each other about who you are. Some pages say the old name, some the new, some describe you as both. A consistency dip in month one is normal. A consistency dip that hasn't recovered by month four means the market is still confused about you, and that's a comms problem rather than a data problem.\n\nWatch weekly, not daily. AI answers vary between runs even when nothing changed, so a single day's number is noise. Week over week, on the same set of prompts, is the shortest window that tells you anything real. The general practice of reading these trends is covered in [tracking AI visibility over time](/blog/how-to-track-ai-visibility-over-time).\n\n\u003cWorkflowCallout\n  title=\"Two names, one chart\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"trend\",\n    label: \"New name share of brand mentions\",\n    series: [11, 17, 22, 26, 31, 38, 44, 49, 57, 61, 66, 71],\n    change: 60.0,\n    suffix: \"%\",\n  }}\n\u003e\n  The brand views chart mentions, share of voice, and consistency over your selected window with alias mentions broken out, so the old and new names appear as separate lines on the same axis. Message pull-through sits alongside them, which is how you tell a name change apart from a positioning change.\n\u003c/WorkflowCallout\u003e\n\n## Find the sources still telling the old story\n\nAt some point the trend stalls and you need to know why. The answer is always specific pages, and they're findable.\n\nOpen the answers that still use the old name and look at what they cite. You'll usually find the same handful of sources over and over. A Wikipedia article that hasn't been updated. Two industry directories. A comparison roundup from two years ago that ranks well and gets read constantly. An old press release still sitting on a wire service. Your own docs subdomain, which somehow never got the memo.\n\nDon't work that list alphabetically. Rank it by how much influence each source actually carries with AI, which is a mix of the site's authority and whether AI crawlers can even read it. A high-authority site that blocks AI crawlers is not your problem right now. A middling site that gets cited constantly is.\n\n| Source type | Typical fix | How fast it lands |\n| :--- | :--- | :--- |\n| Your own stray pages | Update or redirect them yourself | Days, once recrawled |\n| Wikipedia and open databases | Submit a sourced correction | Days to weeks |\n| Directories and profiles | Claim the listing, edit the record | Weeks |\n| Old articles and roundups | Ask the publisher for an update note | Weeks to never |\n| Wire service archives | Usually permanent, counter with new coverage | Months |\n\nTwo of those rows deserve a note. Your own stray pages are the most common finding and the most embarrassing one, because they're entirely within your control. Old subdomains, help centers, changelog archives, and PDF datasheets are where the old name hides.\n\nAnd the last row is why new coverage matters more than corrections. You can't edit a wire archive, but you can publish enough new material using the new name that the old material stops being the strongest signal. That's the same source-influence logic behind [connecting earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility), applied to a name instead of a campaign.\n\nWork this list monthly and the effect compounds. Each corrected source removes one input feeding the old answer, and the answers shift as the inputs do.\n\n\u003cWorkflowCallout\n  title=\"Which sources are holding the old name\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Sources citing the old brand name\",\n    before: \"23\",\n    after: \"6\",\n    tone: \"positive\",\n    caption: \"over 90 days of source-level outreach\",\n  }}\n\u003e\n  Citation Intelligence classifies every source appearing in y
2our answers and scores each one for AI placement value, so the list of pages still carrying the old name comes back ranked by influence rather than by count. Any source can be turned into a tracked project to watch whether the correction actually lands.\n\u003c/WorkflowCallout\u003e\n\n## Give it a quarter, and check monthly\n\nThe rebrand work that moves AI answers is unglamorous. It's a profile update, an alias, five phrases, a few dated notes, and then a monthly hour spent correcting sources in order of influence.\n\nSet the expectation up front that the switch takes a quarter, because the alternative is a nervous executive asking why ChatGPT still uses the old name three weeks after a launch that cost real money. With the trend line and the annotations in front of you, that conversation gets easy. You can show the lines crossing, point at the coverage that moved them, and name the six sources still holding out.\n\nThe teams that handle this well treat a rebrand like a slow-motion version of a [crisis communications response](/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story). Same shape, different urgency. Find what the machines are saying, trace it to sources, fix the sources that matter most, and measure whether the story changed.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"76:T5565,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var y=Object.create;var s=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)s(n,a,{get:e[a],enumerable:!0})},r=(n,e,a,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let i of p(e))!f.call(n,i)\u0026\u0026i!==a\u0026\u0026s(n,i,{get:()=\u003ee[i],enumerable:!(o=g(e,i))||o.enumerable});return n};var v=(n,e,a)=\u003e(a=n!=null?y(m(n)):{},r(e||!n||!n.__esModule?s(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003er(s({},\"__esModule\",{value:!0}),n);var l=w((T,h)=\u003e{h.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eu});var t=v(l());function d(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:o}=e;return a||c(\"PullQuote\",!0),o||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To track a rebrand in AI answers, start by updating your brand profile before launch so everything you measure afterward 
2is testing the new name. Keep the old name as an alias so the trend line stays continuous. Write the new positioning down as three to seven key messages, annotate launch day and every milestone, then watch the two names trade places week over week across ChatGPT, Gemini, Claude, and Perplexity. When the old name lingers, open the citations behind those answers, rank the sources by influence, and correct them in that order. Expect the new name to become dominant one to three months after launch.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A rebrand is fast on your side and slow on the web's. Your site changes overnight. The hundreds of other pages that mention you keep saying the old thing until somebody goes and updates them, and those pages are what AI assistants read when they answer questions about you. The usual holdouts are predictable: a Wikipedia article, two or three industry directories, a comparison roundup from two years ago, and a wire service archive that nobody can edit. That last category is why the switch takes a quarter rather than a week, long after the internal celebration is over.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That gap is the problem this workflow solves. It's also the part nobody staffs for. Teams spend a year on the name, six weeks on the launch, and zero days on the question of whether the systems most buyers now ask about companies have any idea the change happened.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility tracking setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Update the profile\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewriting what the tracking knows about you\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"New prompts ask about the new company\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Alias the old name\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Counting both names as you\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One trend line, not two broken ones\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Write key messages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Turning positioning into trackable phrases\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adoption becomes a percentage\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Annotate milestones\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Dating launch, coverage, and cutover\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Movement lines up with real events\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Watch the swap\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reading both names week over week\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The lines cross, and you can say when\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Fix the sources\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Correcting the pages carrying the old story\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Old-name citations fall each month\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Update the brand profile before launch day\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every tracking setup carries a description of your company somewhere. It's the category you're in, who you sell to, what makes you different, and who you compete with. That description drives which questions get asked on your behalf and which mentions count as you.\"}),`\n`,(0,t.jsx)(e.p,{children:\"If you rebrand and leave that description alone, you spend the next quarter measuring a company that no longer exists. The prompts test the old category. The mention matching looks for the old name. The reports come back clean and mean nothing.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So rewrite it first, ideally the week before launch. Change the name, obviously. Then check the parts people forget. The category, if the rebrand moved you into a 
2new one. The audience, if you're now selling upmarket. The differentiators, because those are usually the reason for the rebrand in the first place. And the competitive set, since a repositioning often changes who you're compared against, and comparison questions are where AI does the most damage or the most good.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One caution about timing. Update the profile before launch, but don't expect the data to change on the same day. What you're doing here is making sure that everything measured from launch forward is asking about the right company.\"}),`\n`,(0,t.jsx)(o,{title:\"Rewrite the profile that drives every prompt\",page:\"Brand Snapshot\",href:\"/docs/dashboards/brand-snapshot\",signal:{kind:\"checklist\",items:[{label:\"Name and tagline updated\",done:!0},{label:\"Category moved to the new positioning\",done:!0},{label:\"Differentiators rewritten\",done:!0},{label:\"Competitive set reviewed\",done:!0},{label:\"Prompts regenerated for the new brand\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"The Brand Snapshot is the structured profile that prompt generation, mention matching, and report writing all draw from. Edits you make by hand are preserved when the snapshot rebuilds, so correcting it once before launch holds through every later crawl and re-run.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Keep the old name as an alias\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that saves your reporting, and it's the easiest one to skip in the excitement of launch week.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The instinct is to delete the old name. You're done with it. But the old name is how AI will refer to you for months, and if your tracking only counts the new one, your visibility appears to collapse the day you launch. You'll be explaining a cliff to your CEO that isn't real.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Register the old name as an alias instead. Mentions of either name count as you, so the total holds steady while the mix underneath it shifts. That mix is the actual story. You want to be able to show a chart where one line falls, another climbs, and they cross on a date you can name.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Aliases catch more than the exact old name. Add the common variants people used, any product names that got folded into the new brand, and the legal entity name if it shows up in filings and directory listings. Directory data is stubborn and often quotes the legal name long after the marketing name changed.\"}),`\n`,(0,t.jsx)(e.p,{children:\"While you're here, check one thing that matters more than the name count. Ask an assistant directly whether the old company and the new one are the same. If the answer says the old company was acquired, shut down, or is a competitor of yours, you have a bigger problem than slow adoption, and the fix is making the connection explicit in the places models trust most.\"}),`\n`,(0,t.jsx)(o,{title:\"Both names count as you\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"count\",label:\"Answers matched by the old name, week 1\",value:62,caption:\"counted toward your trend, not lost\"},children:(0,t.jsx)(e.p,{children:\"Brand aliases live on the property's General settings, and every alias is matched alongside the primary name across mentions, share of voice, and citations. Adding the previous name keeps the trend continuous through the transition instead of restarting it at zero.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn the new positioning into key messages\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most rebrands are not really about the name. The name is the visible part; the point is usually that the company wants to mean something different. That intent is testable, but only if you write it down first.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Key messages are the short phrases you want repeated about you. Under ten words each, specific enough that a competitor couldn't use the same line, and true enough that you can defend them. Three to seven is the right number. A list of twelve is a document nobody reads.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For a rebrand, write two sets. The positive ones are the new framing you're trying to build. The negative ones are the outdated descriptions you're trying to retire, the old category label, the legacy product association, the audience you no longer serve. Tracking both gives you a real measure of adoption, because a rebrand isn't finished when the new story appears. It's finished when the old story stops.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then set expectations with whoever is watching the numbers. AI describes a company by synthesizing what many sources repeat. A phrase that lives only on your homepage carries almost no weight against a hundred articles using the old language. Message adoption follows coverage, so it moves slowly at first and then faster once a few influential sources pick up the new framing. Getting that framing into a launch announcement is a whole discipline of its own, covered in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-a-press-release-for-ai-citation\",children:\"optimizing a press release for AI citation\"}),\".\"]}),`\n`,(0,t.jsx)(o,{title:\"Positioning you can score\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"score\",label:\"New positioning in category answers\",value:34,target:60},children:(0,t.jsx)(e.p,{children:\"Key Messages holds the phrases you want AI to repeat, tagged positive for the new framing and negative for the story you're retiring. They feed Share of Influence, which measures how often your framing appears in answers about the category before any brand gets named.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-track-a-rebrand-in-ai-answers-quote.webp\",quote:\"You changed the name in an afternoon. The web that AI reads still says the old one, and it will keep saying it until somebody goes and updates it.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-track-a-rebrand-in-ai-answers\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Mark launch day and every milestone\"}),`\n`,(0,t.jsx)(e.p,{children:\"Rebrand data is noisy for the first month. Something moves, three things happened that week, and nobody can say which one did it. Annotations fix that cheaply.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Mark the announcement date. Mark the day the site actually cut over, which is often not the same day. Mark the press release, any major coverage, the analyst briefing, the conference keynote, and the day you finished updating your third-party profiles. Each one takes ten seconds to record and saves an argument later.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The payoff shows up about six weeks in, when the chart has enough shape to read. You'll see a step change after one specific piece of coverage and nothing at all after another, and that difference tells you where to spend the rest of your outreach budget. Without the dates on the chart, all you have is a slope and a theory.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Annotations also protect you from taking credit for the wrong thing. Rebrand launches usually coincide with a website migration, and migrations move visibility all on their own, sometimes downward. A dated note is what lets you separate a positioning win from a technical side effect.\"}),`\n`,(0,t.jsx)(o,{title:\"Dates on the chart, not in a spreadsheet\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"count\",label:\"Milestones on the timeline\",value:7,caption:\"launch, cutover, release, 4 coverage hits\"},children:(0,t.jsx)(e.p,{children:\"Annotations attach a dated note to the property and render as markers on the visibility charts. Every metric view shares them, so the launch marker sits under the share of voice line, the consistency line, and the citation mix without you re-entering it anywhere.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch the name swap and the message pull-through\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now you read the data, and there are two questions to keep separate.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The first is the name. Track the old and new names side by side and watch the ratio. Early on the old name dominates, because the web still says it. Over the following weeks the new one climbs. The date those lines cross is the most quotable number you'll get out of this whole exercise, and it's the one your executives will remember.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The second question is harder and more useful. When AI describes the company, is it using the new framing or the old one? A rebrand can move the name across in six weeks and leave the meaning untouched, so you end up with a new logo on the old story. Watching key message pull-through is what catches that, and catching it early is the difference between fixing it during launch and discovering it at the annual review.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Check brand consistency too. Rebrands reliably dent it, because for a while the sources disagree with each other about who you are. Some pages say the old name, some the new, some describe you as both. A consistency dip in month one is normal. A consistency dip that hasn't recovered by month four means the market is still confused about you, and that's a comms problem rather than a data problem.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Watch weekly, not daily. AI answers vary between runs even when nothing changed, so a single day's number is noise. Week over week, on the same set of prompts, is the shortest window that tells you anything real. The general practice of reading these trends is covered in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"tracking AI visibility over time\"}),\".\"]}),`\n`,(0,t.jsx)(o,{title:\"Two names, one chart\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"trend\",label:\"New name share of brand mentions\",series:[11,17,22,26,31,38,44,49,57,61,66,71],change:60,suffix:\"%\"},children:(0,t.jsx)(e.p,{children:\"The brand views chart mentions, share of voice, and consistency over your selected window with alias mentions broken out, so the old and new names appear as separate lines on the same axis. Message pull-through sits alongside them, which is how you tell a name change apart from a positioning change.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Find the sources still telling the old story\"}),`\n`,(0,t.jsx)(e.p,{children:\"At some point the trend stalls and you need to know why. The answer is always specific pages, and they're findable.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Open the answers that still use the old name and look at what they cite. You'll usually find the same handful of sources over and over. A Wikipedia article that hasn't been updated. Two industry directories. A comparison roundup from two years ago that ranks well and gets read constantly. An old press release still sitting on a wire service. Your own docs subdomain, which somehow never got the memo.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Don't work that list alphabetically. Rank it by how much influence each source actually carries with AI, which is a mix of the site's authority and whether AI crawlers can even read it. A high-authority site that blocks AI crawlers is not your problem right now. A middling site that gets cited constantly is.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Source type\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Typical fix\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"How fast it lands\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Your own stray pages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Update or redirect them yourself\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Days, once recrawled\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Wikipedia and open databases\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Submit a sourced correction\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Days to weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Directories and profiles\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Claim the listing, edit the record\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Old articles and roundups\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Ask the publisher for an update note\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weeks to never\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Wire service archives\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Usually permanent, counter with new coverage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Months\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Two of those rows deserve a note. Your own stray pages are the most common finding and the most embarrassing one, because they're entirely within your control. Old subdomains, help centers, changelog archives, and PDF datasheets are where the old name hides.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"And the last row is why new coverage matters more than corrections. You can't edit a wire archive, but you can publish enough new material using the new name that the old material stops being the strongest signal. That's the same source-influence logic behind \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"connecting earned media to AI visibility\"}),\", applied to a name instead of a campaign.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Work this list monthly and the effect compounds. Each corrected source removes one input feeding the old answer, and the answers shift as the inputs do.\"}),`\n`,(0,t.jsx)(o,{title:\"Which sources are holding the old name\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"beforeAfter\",label:\"Sources citing the old brand name\",before:\"23\",after:\"6\",tone:\"positive\",caption:\"over 90 days of source-level outreach\"},children:(0,t.jsx)(e.p,{children:\"Citation Intelligence classifies every source appearing in y
2our answers and scores each one for AI placement value, so the list of pages still carrying the old name comes back ranked by influence rather than by count. Any source can be turned into a tracked project to watch whether the correction actually lands.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Give it a quarter, and check monthly\"}),`\n`,(0,t.jsx)(e.p,{children:\"The rebrand work that moves AI answers is unglamorous. It's a profile update, an alias, five phrases, a few dated notes, and then a monthly hour spent correcting sources in order of influence.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set the expectation up front that the switch takes a quarter, because the alternative is a nervous executive asking why ChatGPT still uses the old name three weeks after a launch that cost real money. With the trend line and the annotations in front of you, that conversation gets easy. You can show the lines crossing, point at the coverage that moved them, and name the six sources still holding out.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The teams that handle this well treat a rebrand like a slow-motion version of a \",(0,t.jsx)(e.a,{href:\"/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story\",children:\"crisis communications response\"}),\". Same shape, different urgency. Find what the machines are saying, trace it to sources, fix the sources that matter most, and measure whether the story changed.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"23:[\"$\",\"$L10\",\"how-to-track-a-rebrand-in-ai-answers\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$75\",\"title\":\"How to Track a Rebrand in AI Answers\",\"date\":\"2026-08-29\",\"image\":\"/images/blog/how-to-track-a-rebrand-in-ai-answers.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"You can change the name on your website in an afternoon. AI assistants keep answering with the old one for months, because they read a web that hasn't caught up yet. Here's how comms teams measure the switch and find the sources holding it back.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Rebranding\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How long does it take AI to learn a new brand name?\",\"answer\":\"Plan for one to three months before the new name is dominant in answers, and longer for a name that had years of coverage behind it. The speed depends less on your launch and more on how fast the pages AI reads get updated. Sites that recrawl often, like news and large directories, flip in weeks. Old roundups and PDF datasheets can carry the old name for a year.\"},{\"question\":\"Should I track the old name and the new name separately?\",\"answer\":\"Track both, and keep the old one as an alias rather than deleting it. If you drop the old name the day you launch, your trend line restarts at zero and you lose the ability to prove the handoff happened. Keeping both lets you show one line falling while the other climbs, which is the whole story of a rebrand in a single chart.\"},{\"question\":\"What if AI keeps describing us with our old positioning?\",\"answer\":\"That usually means the new positioning exists on your site and nowhere else. Models synthesize what gets repeated across many sources, so a claim that only appears on your own homepage carries very little weight. The fix is getting the new framing into coverage, analyst notes, partner pages, and third-party profiles, then watching whether the phrasing starts appearing in answers.\"},{\"question\":\"Do AI assistants know that the old company and the new one are the same?\",\"answer\":\"Sometimes, and it is worth checking early. When the connection is clear on Wikipedia, in press coverage, and on your own site, assistants usually explain the change correctly. When it isn't, you get answers that treat the two names as separate companies or say the old one shut down, which is far more damaging than a slow name change.\"},{\"question\":\"What is the single biggest mistake in a rebrand launch?\",\"answer\":\"Redirecting the old site to the new one and calling the job done. A redirect moves human visitors; it does not update the hundreds of third-party pages that mention you by the old name, and those pages are what AI reads. The work that actually moves AI answers is source-level, one publisher and one profile at a time.\"}],\"howTo\":{\"name\":\"How to track a rebrand in AI answers\",\"description\":\"A repeatable workflow for communications teams that measures whether AI assistants have adopted a new brand name and positioning, and finds the specific sources still telling the old story.\",\"steps\":[{\"name\":\"Update the brand profile before launch day\",\"text\":\"Rewrite the structured description of the company so every prompt, match, and report generated after launch is testing the new brand instead of the old one.\"},{\"name\":\"Keep the old name as an alias\",\"text\":\"Register the previous name alongside the new one so mentions of either still count, and the handoff shows up as one continuous trend instead of two broken lines.\"},{\"name\":\"Turn the new positioning into key messages\",\"text\":\"Write down the phrases you want AI to repeat about the new brand, plus the outdated ones you want to watch disappear, so message adoption becomes a number.\"},{\"name\":\"Mark launch day and every milestone\",\"text\":\"Annotate the announcement, the site cutover, the press push, and any major coverage, so later movement in the data can be tied to something you actually did.\"},{\"name\":\"Watch the name swap and the message pull-through\",\"text\":\"Track the two names against each other week over week, and check whether AI is describing the company with the new framing or still reaching for the old one.\"},{\"name\":\"Find the sources still telling the old story\",\"text\":\"Open the citations behind the answers that use the old name, rank the offending sources by how much influence they carry, and work that list from the top.\"}]},\"_meta\":{\"filePath\":\"how-to-track-a-rebrand-in-ai-answers.mdx\",\"fileName\":\"how-to-track-a-rebrand-in-ai-answers.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-track-a-rebrand-in-ai-answers\"},\"body\":\"$76\",\"locale\":\"en\",\"path\":\"how-to-track-a-rebrand-in-ai-answers\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"77:T3e2d,"])</script>
2<script>self.__next_f.push([1,"To see which bots are crawling your site, you need detection that runs on the server rather than in the browser. Bots request your HTML and leave without executing JavaScript, so a tag-based tool like GA4 never records them. Once you're counting at the server, sort the visits into AI assistants, AI model trainers, search crawlers, specialty bots, and scrapers, then drill into the named agents in each group to see visit counts, unique pages, and last-seen dates. Slice by page to learn what each crawler is after. Then decide who stays welcome.\n\nBots are usually 30 to 60 percent of all requests to a business site, and almost none of it appears in your analytics. Setting up server-side detection takes under an hour on most stacks, and the first useful picture shows up within a day. AI crawler volume on a typical content site has been climbing faster than any other category, which is exactly why nobody should be guessing at these numbers.\n\nMost teams find out about this the same way. Someone asks how much traffic AI is sending, the marketer opens GA4, filters for referrals from chatgpt.com, and finds a few hundred sessions. That number is real, but it's only the humans who clicked a link in an answer. The much larger story, the machines reading your pages to build those answers in the first place, left no trace at all.\n\nThat's the part worth fixing. If you can't see which crawlers reach you, you can't tell whether an AI platform is ignoring your site, reading it constantly and never citing it, or quietly taking your whole archive for training. Those three situations look identical from the outside and need completely different responses.\n\nThis guide works with any server-side detection setup; the callouts show how each step runs in [Spyglasses](/ai-traffic-analytics).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Count at the server | Detecting requests before they need a browser | Bot visits appear that GA4 never showed |\n| 2. Categorize | Splitting assistants, trainers, search, scrapers | Each category has its own line on the timeline |\n| 3. Drill in | Reading the named agents under each category | You can name the top ten bots hitting your site |\n| 4. Slice by page | Seeing what each crawler targets | You know which pages draw AI and which get skipped |\n| 5. Decide | Blocking, allowing, or reporting | A written rule for each category, not a vibe |\n\n## Start counting bots at the server\n\nClient-side analytics answers a different question than the one you're asking. GA4 fires when a browser loads and runs its tracking script. A crawler asks for the HTML, parses it, and disconnects. No script runs, no event fires, and the visit is invisible forever.\n\nSo detection has to sit in the request path. That means middleware, a CDN worker, a server plugin, or log parsing. Each one sees every request as it arrives, including the ones from software that will never render a page.\n\nThe identification itself works off the user agent string plus, for the bots that publish them, verified IP ranges. User agents alone are trivially spoofable, which is why the good detectors cross-check the claim against the address it came from. A request calling itself Googlebot from an IP that Google doesn't own is not Googlebot, and you want to know that.\n\nOne thing to settle early: keep bot traffic out of your human reporting. Bots inflate pageviews and wreck bounce rate and time on page, since a crawler that reads and leaves in 80 milliseconds looks like the worst engagement in your account. Count them separately and deliberately.\n\n\u003cWorkflowCallout\n  title=\"Detection that runs before the page renders\"\n  page=\"AI Traffic Analytics\"\n  href=\"/docs/dashboards/ai-traffic-analytics\"\n  signal={{\n    kind: \"count\",\n    label: \"Bot visits in the first 7 days\",\n    value: 934,\n    caption: \"none of which appeared in GA4\",\n  }}\n\u003e\n  The plugin installs as middleware, a WordPress plugin, or an edge worker, and identifies requests against a list of more than 600 known bots with IP verification for the ones that publish ranges. Detection happens before your page renders, so the visit is recorded whether or not any JavaScript would have run.\n\u003c/WorkflowCallout\u003e\n\n## Split the traffic into categories that mean different things\n\nA raw bot count isn't worth much. Five thousand visits could be great news or a content theft problem, and the difference is entirely in who's behind them. Five categories carry most of the meaning.\n\n**AI assistants** are the live ones. When someone asks ChatGPT, Claude, Perplexity, or Gemini a question and the assistant decides it needs to read your page to answer, that fetch is an assistant visit. ChatGPT-User is the agent OpenAI sends for this. It's happening on behalf of a person waiting for a response right now. This is the category that connects to revenue.\n\n**AI model trainers** are bulk collectors. GPTBot, ClaudeBot, Google-Extended, Meta-ExternalAgent, and CCBot gather content for future model training, not for anyone's current question. A trainer visit gives you nothing today. It might make a future model slightly more likely to know who you are, which is a real but slow and unmeasurable benefit.\n\nThe GPTBot and ChatGPT-User distinction is the one that trips people up most, because both come from OpenAI and both land in a naive count as the same thing. GPTBot is the training crawler. ChatGPT-User is the live fetch on behalf of someone in a conversation. Blocking OpenAI as a company kills both; blocking GPTBot alone keeps the assistant traffic you want.\n\n**Search crawlers** are the familiar ones. Googlebot and Bingbot still matter enormously for AI visibility, because ChatGPT and Gemini both run searches against Google's index underneath, and Claude runs against Brave. If Googlebot stops visiting a page, that page drops out of the pool AI assistants pick from.\n\n**Specialty bots** are SEO tools, social preview fetchers, and monitoring services. Mostly harmless, occasionally noisy, rarely worth attention.\n\n**Scrapers** are everything else. Some are a developer testing something with curl. Some are systematically copying your catalog.\n\n| Category | Example agents | What the visit means | Sensible default |\n| :--- | :--- | :--- | :--- |\n| AI assistants | ChatGPT-User, Claude-User, PerplexityBot | Someone asked a question and you were a candidate | Always allow |\n| AI model trainers | GPTBot, ClaudeBot, Google-Extended, CCBot | Bulk collection for a future model | Allow or block, on purpose |\n| Search crawlers | Googlebot, Bingbot | Indexing that feeds AI retrieval too | Always allow |\n| Specialty bots | SEMrush, Ahrefs, social preview fetchers | A tool or platform is checking your page | Allow, ignore |\n| Scrapers | curl, wget, python-requests | Someone is copying content | Block the noisy ones |\n\nThe split between the first two rows is the one most teams have never seen, and it changes conversations. \"AI traffic is up 40 percent\" means something very different if it's assistants than if it's one trainer working through your archive.\n\n\u003cWorkflowCallout\n  title=\"One timeline, one line per category\"\n  page=\"Bot Traffic\"\n  href=\"/docs/dashboards/bot-traffic\"\n  signal={{\n    kind: \"trend\",\n    label: \"AI assistant visits, 14 days\",\n    series: [104, 121, 96, 133, 118, 127, 141, 115, 149, 138, 156, 132, 161, 154],\n    change: 18.2,\n  }}\n\u003e\n  The main chart stacks bot visits by category over your selected window, so a spike is immediately attributable to assistants, trainers, search, or scrapers rather than showing up as one anonymous bump. Category filters narrow every table below the chart at the same time.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-see-which-bots-are-crawling-your-site-quote.webp\"\n  quote=\"A model trainer takes your whole archive and gives you nothing back today. An assistant takes one page and might hand you a customer.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-see-which-bots-are-crawling-your-site\"\n/\u003e\n\n## Drill into the individual bots\n\nCategories tell you the shape. Named bots tell you the story. Open each category and look at the agents underneath, because within one category the individual bots often behave nothing alike.\n\nFour columns do most of the work. **Visits** is volume. **Unique pages** is reach, and the ratio between the two is the useful part: 4,000 visits across 40 pages is a bot re-reading a small set constantly, while 4,000 visits across 3,800 pages is one systematic sweep. **Last seen** catches the crawler that quietly stopped coming three weeks ago, which is a problem you'd otherwise find months late. And the **per-visit log** settles arguments, because you can look at the actual requests with timestamps and paths.\n\nThat ratio is also the fastest way to tell GPTBot from ChatGPT-User without reading a single user agent string. The trainer sweeps wide and shallow. The assistant returns to a narrow set of pages over and over, because those are the pages that keep surfacing in searches.\n\nWatch for a few patterns. A named bot that goes to zero usually means a technical block, a firewall rule, or a robots.txt change nobody announced. A bot you don't recognize showing up with high volume is worth ten minutes of research. And an assistant reading you heavily while your visibility tracking shows no citations is a specific, fixable problem: you're reachable but not quotable, which is what [finding and fixing AI citation blockers](/blog/how-to-find-and-fix-ai-citation-blockers) is about.\n\n\u003cWorkflowCallout\n  title=\"Every named agent, with reach and recency\"\n  page=\"Bot Traffic\"\n  href=\"/docs/dashboards/bot-traffic\"\n  signal={{\n    kind: \"count\",\n    label: \"Distinct bots seen this month\",\n    value: 41,\n    caption: \"12 assistants, 9 trainers, 6 search, 14 other\",\n  }}\n\u003e\n  The bot table lists every identified agent with visits, unique pages, and last seen, and any row opens into the raw visit log for that bot. Sorting by unique pages separates the crawlers sweeping your whole site from the ones checking the same handful of pages over and over.\n\u003c/WorkflowCallout\u003e\n\n## See which pages each bot is taking\n\nNow the question the whole workflow exists for. What are they actually reading?\n\nSlice the traffic by page and you usually find something surprising. Trainers tend to sweep broadly and evenly, since their job is coverage. Assistants concentrate hard, because they only fetch what a search surfaced for a real question. That concentration is a gift. The pages assistants keep coming back to are the pages AI considers your answer on those topics, and that list is often not the list your team would have guessed.\n\nSlice by topic or page type next. If your product pages get almost no assistant traffic while your blog gets constant attention, AI has decided you're an information source and n
2ot a vendor for those queries. That's a positioning problem showing up in server logs, and it's a lot easier to see here than anywhere else.\n\nLocation matters less for strategy but a lot for spotting trouble. Legitimate crawlers run from a small, stable set of data center regions. Sudden volume from somewhere your business has no presence, especially spread thin across thousands of pages, is the signature of a scraper rather than a crawler.\n\nAlso look at how often each bot comes back. A page that Googlebot refetches weekly stays current in the index that AI assistants search. A page it hasn't touched in four months is frozen; you can update it today and AI will keep quoting the old version until the recrawl lands.\n\n\u003cWorkflowCallout\n  title=\"What each crawler targets, and how often it returns\"\n  page=\"Recrawl Frequency\"\n  href=\"/docs/dashboards/recrawl-frequency\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"23 pages take 80% of assistant visits\", done: true },\n      { label: \"Trainers sweeping evenly across 640 pages\", done: true },\n      { label: \"Pricing page last crawled 71 days ago\", done: true },\n      { label: \"Refresh cadence set for starved pages\", done: false },\n    ],\n  }}\n\u003e\n  Filters for page, topic, and location narrow bot traffic to the slice you're asking about, and the recrawl view adds cadence per page and per bot. Pages with a long gap since the last fetch are flagged, which tells you where an update will sit unread for weeks.\n\u003c/WorkflowCallout\u003e\n\n## Decide what to do with what you found\n\nA picture nobody acts on is a screenshot. Every category needs a written decision, and there are only two directions to go.\n\nThe first is governance. Blocking model trainers while allowing assistants is the most common setup, and it's the one that needs care, because OpenAI and Anthropic both run separate agents for the two jobs. Block by user agent at the agent level, not by company, or you'll cut off the assistant traffic you want along with the trainer you don't. Disallow GPTBot and keep ChatGPT-User; disallow ClaudeBot and keep the live Claude fetch. Enforcement belongs at the edge, where a blocked request gets a 403 before it touches your content. Robots.txt is a polite request that the bots you most want to stop already ignore.\n\nWhether to block trainers at all comes down to what you sell. If people pay for your content, protect it. If your content exists to sell something else, blocking trainers mostly costs you a little future recognition and buys you very little.\n\nThe second direction is reporting. Bot data becomes a channel number when it sits next to the rest of your marketing measurement, and the two halves of AI traffic answer different questions. Crawler visits say AI is reading you. Human clickthroughs from AI answers say it's sending you people. Both belong in the same monthly view, which is the subject of [measuring AI as a marketing channel](/blog/how-to-measure-ai-as-a-marketing-channel).\n\nOne caution on how you read all of this. Crawl volume is a reachability metric, not a visibility metric. An assistant fetching your page means you were a candidate for one answer. Whether you got quoted happens after the fetch, out of sight. To close that loop you need answer-level tracking, which is what an [AI visibility report](/ai-visibility-report) gives you. Crawl data and citation data together tell you which of the two problems you have; either one alone will mislead you.\n\n\u003cWorkflowCallout\n  title=\"Rules you set once, enforced at the edge\"\n  page=\"Traffic Control\"\n  href=\"/docs/dashboards/traffic-control\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Model trainer visits per month\",\n    before: \"8,200\",\n    after: \"310\",\n    tone: \"positive\",\n    caption: \"assistant visits unchanged over the same window\",\n  }}\n\u003e\n  Block and allow rules live in Spyglasses at the property level and sync to your integration automatically, so changing a rule doesn't take a deploy. Blocked agents get a 403 at the edge, and the Bot Traffic timeline shows whether the rule caught what you meant it to without touching the assistants you kept open.\n\u003c/WorkflowCallout\u003e\n\n## Start with one day of data\n\nYou don't need a project plan for this. Install detection, wait 24 hours, and look at what shows up. Almost everyone finds at least one thing they didn't expect, usually a trainer working through the archive at a volume nobody had any idea about, or a search crawler that stopped visiting a section of the site months ago.\n\nThat first look is worth more than the dashboard y
2ou'll build later, because it turns an argument about AI into a list of named bots and page counts. From there the workflow is a ten minute check once a week, and the traffic that used to be invisible turns into the earliest signal you have about whether AI can find you at all.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"78:T53a8,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var m=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)o(n,a,{get:e[a],enumerable:!0})},r=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let s of y(e))!w.call(n,s)\u0026\u0026s!==a\u0026\u0026o(n,s,{get:()=\u003ee[s],enumerable:!(i=f(e,s))||i.enumerable});return n};var v=(n,e,a)=\u003e(a=n!=null?u(p(n)):{},r(e||!n||!n.__esModule?o(a,\"default\",{value:n,enumerable:!0}):a,n)),A=n=\u003er(o({},\"__esModule\",{value:!0}),n);var h=m((T,l)=\u003e{l.exports=_jsx_runtime});var k={};b(k,{default:()=\u003eg});var t=v(h());function c(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||d(\"PullQuote\",!0),i||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To see which bots are crawling your site, you need detection that runs on the server rather than in the browser. Bots request your HTML and leave without executing JavaScript, so a tag-based tool like GA4 never records them. Once you're counting at the server, sort the visits into AI assistants, AI model trainers, search crawlers, specialty bots, and scrapers, then drill into the named agents in each group to see visit counts, unique pages, and last-seen dates. Slice by page to learn what each crawler is after. Then decide who stays welcome.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Bots are usually 30 to 60 percent of all requests to a business site, and almost none of it appears in your analytics. Setting up server-side detection takes under an hour on most stacks, and the first useful picture shows up within a day. AI crawler volume on a typical content site has been climbing faster than any other category, which is exactly why nobody should be guessing at these numbers.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most teams find out about this the same way. Someone asks how much traffic AI is sending, the marketer opens GA4, filters for referrals from chatgpt.com, and finds a few hundred sessions. That number is real, but it's only the humans who clicked a link in an answer. The much larger story, the machines reading your pages to build those answers in the first place, left no trace at all.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That's the part worth fixing. If you can't see which crawlers reach you, you can't tell whether an AI platform is ignoring your site, reading it constantly and never citing it, or quietly taking your whole archive for training. Those three situations look identical from the outside and need completely different responses.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any server-side detection setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-traffic-analytics\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Count at the server\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Detecting requests before they need a browser\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Bot visits appear that GA4 never showed\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Categorize\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Splitting assistants, trainers, search, scrapers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Each category has its own line on the timeline\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Drill in\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reading the named agents under each category\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You can name the top ten bots hitting your site\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Slice by page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Seeing what each crawler targets\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You know which pages draw AI and which get skipped\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Decide\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Blocking, allowing, or reporting\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A written rule for each category, not a vibe\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Start counting bots at the server\"}),`\n`,(0,t.jsx)(e.p,{children:\"Client-side analytics answers a different question than the one you're asking. GA4 fires when a browser loads and runs 
2its tracking script. A crawler asks for the HTML, parses it, and disconnects. No script runs, no event fires, and the visit is invisible forever.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So detection has to sit in the request path. That means middleware, a CDN worker, a server plugin, or log parsing. Each one sees every request as it arrives, including the ones from software that will never render a page.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The identification itself works off the user agent string plus, for the bots that publish them, verified IP ranges. User agents alone are trivially spoofable, which is why the good detectors cross-check the claim against the address it came from. A request calling itself Googlebot from an IP that Google doesn't own is not Googlebot, and you want to know that.\"}),`\n`,(0,t.jsx)(e.p,{children:\"One thing to settle early: keep bot traffic out of your human reporting. Bots inflate pageviews and wreck bounce rate and time on page, since a crawler that reads and leaves in 80 milliseconds looks like the worst engagement in your account. Count them separately and deliberately.\"}),`\n`,(0,t.jsx)(i,{title:\"Detection that runs before the page renders\",page:\"AI Traffic Analytics\",href:\"/docs/dashboards/ai-traffic-analytics\",signal:{kind:\"count\",label:\"Bot visits in the first 7 days\",value:934,caption:\"none of which appeared in GA4\"},children:(0,t.jsx)(e.p,{children:\"The plugin installs as middleware, a WordPress plugin, or an edge worker, and identifies requests against a list of more than 600 known bots with IP verification for the ones that publish ranges. Detection happens before your page renders, so the visit is recorded whether or not any JavaScript would have run.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Split the traffic into categories that mean different things\"}),`\n`,(0,t.jsx)(e.p,{children:\"A raw bot count isn't worth much. Five thousand visits could be great news or a content theft problem, and the difference is entirely in who's behind them. Five categories carry most of the meaning.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI assistants\"}),\" are the live ones. When someone asks ChatGPT, Claude, Perplexity, or Gemini a question and the assistant decides it needs to read your page to answer, that fetch is an assistant visit. ChatGPT-User is the agent OpenAI sends for this. It's happening on behalf of a person waiting for a response right now. This is the category that connects to revenue.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI model trainers\"}),\" are bulk collectors. GPTBot, ClaudeBot, Google-Extended, Meta-ExternalAgent, and CCBot gather content for future model training, not for anyone's current question. A trainer visit gives you nothing today. It might make a future model slightly more likely to know who you are, which is a real but slow and unmeasurable benefit.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"The GPTBot and ChatGPT-User distinction is the one that trips people up most, because both come from OpenAI and both land in a naive count as the same thing. GPTBot is the training crawler. ChatGPT-User is the live fetch on behalf of someone in a conversation. Blocking OpenAI as a company kills both; blocking GPTBot alone keeps the assistant traffic you want.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Search crawlers\"}),\" are the familiar ones. Googlebot and Bingbot still matter enormously for AI visibility, because ChatGPT and Gemini both run searches against Google's index underneath, and Claude runs against Brave. If Googlebot stops visiting a page, that page drops out of the pool AI assistants pick from.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Specialty bots\"}),\" are SEO tools, social preview fetchers, and monitoring services. Mostly harmless, occasionally noisy, rarely worth attention.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Scrapers\"}),\" are everything else. Some are a developer testing something with curl. Some are systematically copying your catalog.\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Category\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Example agents\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What the visit means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Sensible default\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI assistants\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"ChatGPT-User, Claude-User, PerplexityBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Someone asked a question and you were a candidate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Always allow\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI model trainers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"GPTBot, ClaudeBot, Google-Extended, CCBot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Bulk collection for a future model\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Allow or block, on purpose\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Search crawlers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Googlebot, Bingbot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Indexing that feeds AI retrieval too\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Always allow\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Specialty bots\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"SEMrush, Ahrefs, social preview fetchers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A tool or platform is checking your page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Allow, ignore\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scrapers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"curl, wget, python-requests\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Someone is copying content\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Block the noisy ones\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:`The split between the first two rows is the one most teams have never seen, and it changes conversations. \"AI traffic is up 40 percent\" means something very different if it's assistants than if it's one trainer working through your archive.`}),`\n`,(0,t.jsx)(i,{title:\"One timeline, one line per category\",page:\"Bot Traffic\",href:\"/docs/dashboards/bot-traffic\",signal:{kind:\"trend\",label:\"AI assistant visits, 14 days\",series:[104,121,96,133,118,127,141,115,149,138,156,132,161,154],change:18.2},children:(0,t.jsx)(e.p,{children:\"The main chart stacks bot visits by category over your selected window, so a spike is immediately attributable to assistants, trainers, search, or scrapers rather than showing up as one anonymous bump. Category filters narrow every table below the chart at the same time.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-see-which-bots-are-crawling-your-site-quote.webp\",quote:\"A model trainer takes your whole archive and gives you nothing back today. An assistant takes one page and might hand you a customer.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-see-which-bots-are-crawling-your-site\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Drill into the individual bots\"}),`\n`,(0,t.jsx)(e.p,{children:\"Categories tell you the shape. Named bots tell you the story. Open each category and look at the agents underneath, because within one category the individual bots often behave nothing alike.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Four columns do most of the work. \",(0,t.jsx)(e.strong,{children:\"Visits\"}),\" is volume. \",(0,t.jsx)(e.strong,{children:\"Unique pages\"}),\" is reach, and the ratio between the two is the useful part: 4,000 visits across 40 pages is a bot re-reading a small set constantly, while 4,000 visits across 3,800 pages is one systematic sweep. \",(0,t.jsx)(e.strong,{children:\"Last seen\"}),\" catches the crawler that quietly stopped coming three weeks ago, which is a problem you'd otherwise find months late. And the \",(0,t.jsx)(e.strong,{children:\"per-visit log\"}),\" settles arguments, because you can look at the actual requests with timestamps and paths.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"That ratio is also the fastest way to tell GPTBot from ChatGPT-User without reading a single user agent string. The trainer sweeps wide and shallow. The assistant returns to a narrow set of pages over and over, because those are the pages that keep surfacing in searches.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Watch for a few patterns. A named bot that goes to zero usually means a technical block, a firewall rule, or a robots.txt change nobody announced. A bot you don't recognize showing up with high volume is worth ten minutes of research. And an assistant reading you heavily while your visibility tracking shows no citations is a specific, fixable problem: you're reachable but not quotable, which is what \",(0,t.jsx)(e.a,{href:\"/blog/how-to-find-and-fix-ai-citation-blockers\",children:\"finding and fixing AI citation blockers\"}),\" is about.\"]}),`\n`,(0,t.jsx)(i,{title:\"Every named agent, with reach and recency\",page:\"Bot Traffic\",href:\"/docs/dashboards/bot-traffic\",signal:{kind:\"count\",label:\"Distinct bots seen this month\",value:41,caption:\"12 assistants, 9 trainers, 6 search, 14 other\"},children:(0,t.jsx)(e.p,{children:\"The bot table lists every identified agent with visits, unique pages, and last seen, and any row opens into the raw visit log for that bot. Sorting by unique pages separates the crawlers sweeping your whole site from the ones checking the same handful of pages over and over.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"See which pages each bot is taking\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now the question the whole workflow exists for. What are they actually reading?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Slice the traffic by page and you usually find something surprising. Trainers tend to sweep broadly and evenly, since their job is coverage. Assistants concentrate hard, because they only fetch what a search surfaced for a real question. That concentration is a gift. The pages assistants keep coming back to are the pages AI considers your answer on those topics, and that list is often not the list your team would have guessed.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Slice by topic or page type next. If your product pages get almost no assistant traffic while your blog gets constant attention, AI has decided you're an information source and n
2ot a vendor for those queries. That's a positioning problem showing up in server logs, and it's a lot easier to see here than anywhere else.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Location matters less for strategy but a lot for spotting trouble. Legitimate crawlers run from a small, stable set of data center regions. Sudden volume from somewhere your business has no presence, especially spread thin across thousands of pages, is the signature of a scraper rather than a crawler.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Also look at how often each bot comes back. A page that Googlebot refetches weekly stays current in the index that AI assistants search. A page it hasn't touched in four months is frozen; you can update it today and AI will keep quoting the old version until the recrawl lands.\"}),`\n`,(0,t.jsx)(i,{title:\"What each crawler targets, and how often it returns\",page:\"Recrawl Frequency\",href:\"/docs/dashboards/recrawl-frequency\",signal:{kind:\"checklist\",items:[{label:\"23 pages take 80% of assistant visits\",done:!0},{label:\"Trainers sweeping evenly across 640 pages\",done:!0},{label:\"Pricing page last crawled 71 days ago\",done:!0},{label:\"Refresh cadence set for starved pages\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Filters for page, topic, and location narrow bot traffic to the slice you're asking about, and the recrawl view adds cadence per page and per bot. Pages with a long gap since the last fetch are flagged, which tells you where an update will sit unread for weeks.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Decide what to do with what you found\"}),`\n`,(0,t.jsx)(e.p,{children:\"A picture nobody acts on is a screenshot. Every category needs a written decision, and there are only two directions to go.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The first is governance. Blocking model trainers while allowing assistants is the most common setup, and it's the one that needs care, because OpenAI and Anthropic both run separate agents for the two jobs. Block by user agent at the agent level, not by company, or you'll cut off the assistant traffic you want along with the trainer you don't. Disallow GPTBot and keep ChatGPT-User; disallow ClaudeBot and keep the live Claude fetch. Enforcement belongs at the edge, where a blocked request gets a 403 before it touches your content. Robots.txt is a polite request that the bots you most want to stop already ignore.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Whether to block trainers at all comes down to what you sell. If people pay for your content, protect it. If your content exists to sell something else, blocking trainers mostly costs you a little future recognition and buys you very little.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The second direction is reporting. Bot data becomes a channel number when it sits next to the rest of your marketing measurement, and the two halves of AI traffic answer different questions. Crawler visits say AI is reading you. Human clickthroughs from AI answers say it's sending you people. Both belong in the same monthly view, which is the subject of \",(0,t.jsx)(e.a,{href:\"/blog/how-to-measure-ai-as-a-marketing-channel\",children:\"measuring AI as a marketing channel\"}),\".\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"One caution on how you read all of this. Crawl volume is a reachability metric, not a visibility metric. An assistant fetching your page means you were a candidate for one answer. Whether you got quoted happens after the fetch, out of sight. To close that loop you need answer-level tracking, which is what an \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI visibility report\"}),\" gives you. Crawl data and citation data together tell you which of the two problems you have; either one alone will mislead you.\"]}),`\n`,(0,t.jsx)(i,{title:\"Rules you set once, enforced at the edge\",page:\"Traffic Control\",href:\"/docs/dashboards/traffic-control\",signal:{kind:\"beforeAfter\",label:\"Model trainer visits per month\",before:\"8,200\",after:\"310\",tone:\"positive\",caption:\"assistant visits unchanged over the same window\"},children:(0,t.jsx)(e.p,{children:\"Block and allow rules live in Spyglasses at the property level and sync to your integration automatically, so changing a rule doesn't take a deploy. Blocked agents get a 403 at the edge, and the Bot Traffic timeline shows whether the rule caught what you meant it to without touching the assistants you kept open.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start with one day of data\"}),`\n`,(0,t.jsx)(e.p,{children:\"You don't need a project plan for this. Install detection, wait 24 hours, and look at what shows up. Almost everyone finds at least one thing they didn't expect, usually a trainer working through the archive at a volume nobody had any idea about, or a search crawler that stopped visiting a section of the site months ago.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That first look is worth more than the dashboard y
2ou'll build later, because it turns an argument about AI into a list of named bots and page counts. From there the workflow is a ten minute check once a week, and the traffic that used to be invisible turns into the earliest signal you have about whether AI can find you at all.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function g(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}function d(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return A(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"24:[\"$\",\"$L10\",\"how-to-see-which-bots-are-crawling-your-site\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$77\",\"title\":\"How to See Which Bots Are Crawling Your Site\",\"date\":\"2026-08-28\",\"image\":\"/images/blog/how-to-see-which-bots-are-crawling-your-site.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Your analytics tool shows you almost none of the traffic hitting your site. Bots don't run JavaScript, so they never appear. Here's how to count them at the server, tell an AI assistant apart from a model trainer, and decide who stays welcome.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"AI Traffic\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Why doesn't Google Analytics show bot traffic?\",\"answer\":\"GA4 counts a visit when a browser runs its JavaScript tag. Bots mostly don't run JavaScript; they request the HTML, read it, and leave. So the visit never fires the tag and never reaches the report. The only place the visit is recorded is your server logs, which is why bot detection has to happen server side.\"},{\"question\":\"Is a bot visit the same as being cited in an AI answer?\",\"answer\":\"No, and mixing them up leads to bad calls. An assistant fetching your page means it considered you for one answer. Whether it quoted you, linked you, or dropped you happens after the fetch and isn't visible in traffic data. Crawl counts tell you that you're reachable; visibility tracking tells you whether you got used.\"},{\"question\":\"Should I block AI model trainers?\",\"answer\":\"It depends on what you sell. If your content is the product, like a publisher or a research firm, blocking trainers protects the thing people pay for. If your content is marketing for something else, blocking gains you little and risks looking closed to crawlers you actually want. Either way, block trainers specifically rather than blocking broadly, since assistants and trainers often run from the same company under different user agents.\"},{\"question\":\"How much bot traffic is normal?\",\"answer\":\"For most business sites bots are somewhere between 30 and 60 percent of all requests, and AI crawlers are a growing slice of that. The absolute number matters less than the shape. A steady climb tracks your content growing. A ten times spike over a weekend from one unfamiliar agent is usually a scraper, not a fan.\"},{\"question\":\"Do bots respect robots.txt?\",\"answer\":\"The major ones from named companies generally do, and you can verify it by watching whether their visits stop after you disallow them. Scrapers and unnamed agents routinely ignore it, because robots.txt is a request rather than a control. Enforcement at the edge, where the request gets a 403 before it reaches your content, is the part that actually holds.\"}],\"howTo\":{\"name\":\"How to see which bots are crawling your site\",\"description\":\"A repeatable workflow for in-house marketing teams that turns invisible server traffic into a clear picture of which AI crawlers, search engines, and scrapers are reading your site, what they take, and which ones to keep.\",\"steps\":[{\"name\":\"Start counting bots at the server\",\"text\":\"Put detection in the request path instead of the browser, because bots don't run JavaScript and never show up in a client-side analytics tool.\"},{\"name\":\"Split the traffic into categories that mean different things\",\"text\":\"Group the visits into AI assistants, AI model trainers, search crawlers, specialty bots, and scrapers, since each category is worth something completely different to you.\"},{\"name\":\"Drill into the individual bots\",\"text\":\"Open each category and look at the named agents underneath it, checking visits, unique pages, and when each one was last seen.\"},{\"name\":\"See which pages each bot is taking\",\"text\":\"Slice the traffic by page, topic, and location to learn what each crawler is actually after and how often it comes back for it.\"},{\"name\":\"Decide what to do with what you found\",\"text\":\"Turn the picture into either governance rules that block the crawlers you don't want or reporting that puts AI traffic next to your other channels.\"}]},\"_meta\":{\"filePath\":\"how-to-see-which-bots-are-crawling-your-site.mdx\",\"fileName\":\"how-to-see-which-bots-are-crawling-your-site.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-see-which-bots-are-crawling-your-site\"},\"body\":\"$78\",\"locale\":\"en\",\"path\":\"how-to-see-which-bots-are-crawling-your-site\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"79:T3930,"])</script>
2<script>self.__next_f.push([1,"To find content gaps from real AI questions, start with the grounding searches that ChatGPT, Gemini, Claude, and Perplexity run before they answer questions in your category, add the Google People Also Ask, Reddit, and Quora phrasings around those topics, then check each question against what you've already published. The ones with no good answer anywhere on your site are your gaps. Sort them by buying intent and how close your existing pages already are, close the top ones by adding a direct answer to the best page you already have, and track the same questions afterward to see whether the page starts ranking and then starts getting cited.\n\nA single tracked prompt usually produces three to eight grounding searches, so 25 prompts will hand you 60 or more real questions in a week. About half of those gaps close with an added section rather than a new page, and a closed gap takes two to six weeks to show up in AI answers. The whole loop takes a couple of hours to set up and about thirty minutes a week to keep running.\n\nMost content calendars are built the other way around. Someone exports a keyword list, sorts by volume, picks the terms nobody on the team has written about yet, and calls those the gaps. That worked when the reader typed the query themselves. It works a lot less well now, because when someone asks ChatGPT or Gemini a question, the assistant doesn't search for what they typed. It writes its own searches first, and those searches are longer, more specific, and far more revealing than the phrase that started the conversation.\n\nThose generated searches are the best content brief you'll get. They tell you what the model believes it needs to know before it's willing to recommend anyone. If your site can't answer one of them, you're not in that answer, no matter how well you rank for the topic overall.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Collect questions | Pulling grounding searches and community phrasings into one list | 40 or more real questions, not keyword stems |\n| 2. Map coverage | Matching every question to a page, or to nothing | Every question is marked answered, weak, or missing |\n| 3. Sort the gaps | Scoring by intent, closeness, and difficulty | A ranked shortlist you can work top down |\n| 4. Answer it | Adding the answer to the right existing page | The answer is findable without scrolling or clicking |\n| 5. Measure | Re-checking the same questions after publishing | The page enters the results, then starts getting cited |\n\n## Collect the questions AI is actually asking\n\nStart with grounding searches, sometimes called fan-out queries. These are the web searches an assistant runs in the background while it's composing an answer. Ask ChatGPT to recommend project management software and it might search for six or seven things you'd never have written down, like \"project management software for agencies under 20 people\" or \"asana vs monday pricing 2026.\"\n\nYou can see them a few ways. Some assistants show their sources and searches directly in the interface, so running your own category prompts and reading what the model looked for is a free start. A visibility platform records them automatically across every prompt it tracks, which is the version that scales past a dozen questions.\n\nThen widen the net with two more sources. People Also Ask gives you the questions Google already associates with your topic, which matters because ChatGPT and Gemini both search Google underneath, while Claude searches Brave. Reddit and Quora give you something different and more valuable: the way buyers ask each other, before anyone has cleaned up the phrasing. That's where you find the objection nobody puts in a search box, like whether the tool is worth it for a team of three.\n\nWrite them down as full questions. Not \"agency pricing\" but \"how much do agencies charge for AI visibility work.\" The full question is what you're going to answer, and the phrasing carries information the stem throws away.\n\n\u003cWorkflowCallout\n  title=\"The searches assistants ran, with your rank on each\"\n  page=\"AI Visibility Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"count\",\n    label: \"Grounding searches recorded\",\n    value: 68,\n    caption: \"from 25 tracked prompts across 5 assistants\",\n  }}\n\u003e\n  Every tracked prompt records the grounding searches each assistant ran and where your site placed in the results for them. The Has rank and No rank filters split the list into searches you already compete in and searches you're invisible for, which is your raw gap list before you've done any sorting.\n\u003c/WorkflowCallout\u003e\n\n## Map the questions against what you've already published\n\nNow check each question against your own site. The goal is one of three marks per question, and the middle one is where most of the value hides.\n\n**Answered well** means a page states the question or something very close to it, and answers it in a passage you could lift out and quote on its own. **Answered badly** means the information is technically on your site, but it's a sentence buried in the middle of a page about something else, or split across three pages, or written in a way that only makes sense if you already read the two paragraphs above it. **Not answered** means exactly what it says.\n\nSearch your own site the way a machine would. Use a site search for the key nouns in the question, not for the question itself, and read what comes back as if you'd never seen the page. If you can't find a clean answer in about fifteen seconds, a retrieval system won't either.\n\nThe \"answered badly\" pile is usually the biggest, and it's the cheapest to fix. Those are pages that already have the authority, the links, and the crawl history. They just don't have a passage a model can extract. Fixing one of those is an afternoon; writing a new page that earns the same authority is a quarter.\n\n\u003cWorkflowCallout\n  title=\"A coverage grid that shows the holes\"\n  page=\"Prompts\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"score\",\n    label: \"Coverage score\",\n    value: 54,\n    target: 70,\n  }}\n\u003e\n  The Coverage Matrix scores your tracked prompt set across buyer-journey stages and brand dimensions, and colors the thin cells red. A low score on comparison and decision-stage rows almost always predicts the same hole in the content, since those are the questions buyers ask right before they pick someone.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-find-content-gaps-from-real-ai-questions-quote.webp\"\n  quote=\"A content gap usually isn't a topic you never covered. It's an answer you buried three scrolls down a page about something else.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-find-content-gaps-from-real-ai-questions\"\n/\u003e\n\n## Sort the gaps by what's worth writing\n\nYou'll end up with more gaps than time. Score each one on three things before you decide what to work on.\n\n**Intent.** How close is this question to someone choosing a vendor? \"What is retrieval augmented generation\" and \"best AI visibility tools for small agencies\" are both real questions, but only one of them has a buyer attached. Decision-stage questions win almost every tiebreak.\n\n**Closeness.** Do you already have a page that half answers this? A page sitting at position 12 for the query needs a rewrite. A page that doesn't exist needs a brief, a writer, and three months of patience.\n\n**Difficulty.** L
2ook at what's ranking for the question now. If the top results are all major publications or aggregator sites, that's a long fight. If they're thin blog posts and a Reddit thread, that's an opening.\n\n| Gap type | What it looks like | What to do | Typical effort |\n| :--- | :--- | :--- | :--- |\n| Buried answer | You cover it, but it's mid-page and hedged | Rewrite the passage so it stands alone | 1 to 2 hours |\n| Split answer | Three pages each hold a third of it | Consolidate onto the strongest page | Half a day |\n| Wrong framing | You answer the topic, not the question | Add a heading in the reader's words | 1 hour |\n| Real hole | Nothing on the site touches it | New page, if intent justifies it | 1 to 3 weeks |\n| Out of reach | High intent, but authority sites own it | Skip for now, revisit after other wins | Zero, deliberately |\n\nThat last row matters more than it looks. Deciding not to chase a question is a real answer, and writing it down keeps someone from re-proposing it every planning cycle. If you want the deeper version of picking one query and going all in on it, [winning a target AI grounding search](/blog/how-to-win-a-target-ai-grounding-search) walks through that single-query approach end to end.\n\n\u003cWorkflowCallout\n  title=\"Gap opportunities, ranked before you touch a doc\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"68 grounding searches pulled\", done: true },\n      { label: \"22 flagged as no rank\", done: true },\n      { label: \"9 matched to an existing page\", done: true },\n      { label: \"Top 5 assigned to writers\", done: false },\n    ],\n  }}\n\u003e\n  The SEO opportunities drill-down sorts tracked grounding searches by impact and flags the ones where competitors rank and you don't. Each row carries the competitor pages that do rank, so the brief writes itself from what's already winning.\n\u003c/WorkflowCallout\u003e\n\n## Answer the question where people ask it\n\nWrite the answer as a passage that survives being pulled out of the page. That means it states the question or a close paraphrase in a heading, answers it in the first two sentences, and doesn't depend on anything above it to make sense. If your answer starts with \"as we mentioned earlier,\" a retrieval system just lost it.\n\nKeep the answer short and specific. Numbers, ranges, and plain nouns get quoted. Adjectives don't. \"Most agencies charge between $2,000 and $8,000 a month for this work\" is citable. \"Pricing varies based on scope and objectives\" is a sentence a model will skip past on its way to someone who answered.\n\nThen decide whether the page warrants a Q\u0026A block underneath. Sometimes it does, especially on product and pricing pages where buyers have a predictable set of follow-ups. Sourcing those questions from People Also Ask and community threads keeps them grounded in what people ask instead of what you wish they'd ask; that's what [FAQ generation](/faq-generation) is for.\n\nBe careful here. Adding Q\u0026A to every page is one of the fastest ways to get flagged for Google's scaled content abuse policy, and that penalty lands at the site level, not just on the page you padded. Few, specific, and clearly connected to the page. Five tightly relevant questions on your best page beats a hundred broad ones spread across the site, and if you can't explain why a question belongs on a page, it doesn't.\n\nFor gaps in pages that already get traffic, the mechanics of the rewrite are covered in [optimizing existing content for AI citation](/blog/how-to-optimize-existing-content-for-ai-citation). For anything new, run it through a [pre-publish draft check](/blog/how-to-check-a-draft-for-ai-citation-before-publishing) before it ships.\n\n\u003cWorkflowCallout\n  title=\"Questions sourced from where people ask them\"\n  page=\"FAQ Generator\"\n  href=\"/docs/dashboards/faq-generator\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Questions pulled from PAA, Reddit, Quora\", done: true },\n      { label: \"2 flagged for human review\", done: true },\n      { label: \"Off-topic questions dropped\", done: true },\n      { label: \"HTML and JSON-LD exported\", done: false },\n    ],\n  }}\n\u003e\n  The generator sources candidate questions from People Also Ask, Reddit, and Quora, then answers them strictly from what the page actually says. Anything it can't fully support from the page gets flagged for review, and exports come out as HTML for the visible block plus JSON-LD for the structured data.\n\u003c/WorkflowCallout\u003e\n\n## Measure whether the gap closed\n\nClosing a gap takes longer to show up than most content work. Three things have to happen in order: the assistant's search engine has to recrawl and re-rank the page, the page has to enter the results the assistant reads, and then a tracked prompt has to generate that search again and cite you. Two to six weeks is normal. A week is not enough data to judge anything.\n\nTrack it in that same order, be
2cause each stage tells you something different. If the page never enters the ranked results, the problem is the page. If it ranks but never gets cited, the problem is usually the passage, meaning the content is there but not in a shape a model wants to lift. Those are different fixes, and knowing which one you have saves a lot of guessing.\n\nKeep the original question list. The measurement is literally \"did these specific questions get better,\" and that comparison only works if you didn't rewrite the list halfway through. Add new gaps to the bottom as you find them instead of replacing the set.\n\n\u003cWorkflowCallout\n  title=\"Same questions, tracked nightly, before and after\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Gap questions with a ranked page\",\n    before: \"3 of 22\",\n    after: \"14 of 22\",\n    tone: \"positive\",\n    caption: \"9 pages updated, 2 new, measured over 6 weeks\",\n  }}\n\u003e\n  A project runs your prompt set nightly against a fixed start date, so the gap questions get re-checked without anyone remembering to. The margin of error stays visible on every metric, which keeps a two-point wobble from getting written up as a win.\n\u003c/WorkflowCallout\u003e\n\n## The questions were there the whole time\n\nThe best part of this workflow is that you're not guessing what to write. The assistants publish their homework. They tell you exactly which searches they ran before deciding who to recommend, and the answer to a question you can see is a lot easier to write than the answer to a keyword you inferred.\n\nStart with one prompt in your category and read what the model searched for. You'll find two or three questions you thought you'd covered and hadn't. Fix those first, keep the list, and let it grow. The gap list stops being a quarterly research project and turns into something you check on a Monday morning in about ten minutes.\n\n**Part of the Spyglasses workflow series.** This guide is one of five workflows for content teams. The rest are collected in the [AI visibility guides for content teams](/guides/ai-visibility-for-content-teams)."])</script>
2<script>self.__next_f.push([1,"7a:T524a,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var m=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},r=(n,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of y(e))!f.call(n,o)\u0026\u0026o!==a\u0026\u0026i(n,o,{get:()=\u003ee[o],enumerable:!(s=p(e,o))||s.enumerable});return n};var k=(n,e,a)=\u003e(a=n!=null?u(w(n)):{},r(e||!n||!n.__esModule?i(a,\"default\",{value:n,enumerable:!0}):a,n)),A=n=\u003er(i({},\"__esModule\",{value:!0}),n);var l=m((q,h)=\u003e{h.exports=_jsx_runtime});var v={};b(v,{default:()=\u003eg});var t=k(l());function d(n){let e={a:\"a\",annotation:\"annotation\",h2:\"h2\",math:\"math\",mi:\"mi\",mn:\"mn\",mo:\"mo\",mrow:\"mrow\",p:\"p\",semantics:\"semantics\",span:\"span\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:s}=e;return a||c(\"PullQuote\",!0),s||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To find content gaps from real AI questions, start with the grounding searches that ChatGPT, Gemini, Claude, and Perplexity run before they answer questions in your category, add the Google People Also Ask, Reddit, and Quora phrasings around those topics, then check each question against what you've already published. The ones with no good answer anywhere on your site are your gaps. Sort them by buying intent and how close your existing pages already are, close the top ones by adding a direct answer to the best page you already have, and track the same questions afterward to see whether the page starts ranking and then starts getting cited.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A single tracked prompt usually produces three to eight grounding searches, so 25 prompts will hand you 60 or more real questions in a week. About half of those gaps close with an added section rather than a new page, and a closed gap takes two to six weeks to show up in AI answers. The whole loop takes a couple of hours to set up and about thirty minutes a week to keep running.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most content calendars are built the other way around. Someone exports a keyword list, sorts by volume, picks the terms nobody on the team has written about yet, and calls those the gaps. That worked when the reader typed the query themselves. It works a lot less well now, because when someone asks ChatGPT or Gemini a question, the assistant doesn't search for what they typed. It writes its own searches first, and those searches are longer, more specific, and far more revealing than the phrase that started the conversation.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Those generated searches are the best content brief you'll get. They tell you what the model believes it needs to know before it's willing to recommend anyone. If your site can't answer one of them, you're not in that answer, no matter how well you rank for the topic overall.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Collect questions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Pulling grounding searches and community phrasings into one list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"40 or more real questions, not keyword stems\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Map coverage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Matching every question to a page, or to nothing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every question is marked answered, weak, or missing\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Sort the gaps\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"Scoring by intent, closeness, and difficulty\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A ranked shortlist you can work top down\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Answer it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adding the answer to the right existing page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The answer is findable without scrolling or clicking\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Measure\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Re-checking the same questions after publishing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The page enters the results, then starts getting cited\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Collect the questions AI is actually asking\"}),`\n`,(0,t.jsx)(e.p,{children:`Start with grounding searches, sometimes called fan-out queries. These are the web searches an assistant runs in the background while it's composing an answer. Ask ChatGPT to recommend project management software and it might search for six or seven things you'd never have written down, like \"project management software for agencies under 20 people\" or \"asana vs monday pricing 2026.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"You can see them a few ways. Some assistants show their sources and searches directly in the interface, so running your own category prompts and reading what the model looked for is a free start. A visibility platform records them automatically across every prompt it tracks, which is the version that scales past a dozen questions.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Then widen the net with two more sources. People Also Ask gives you the questions Google already associates with your topic, which matters because ChatGPT and Gemini both search Google underneath, while Claude searches Brave. Reddit and Quora give you something different and more valuable: the way buyers ask each other, before anyone has cleaned up the phrasing. That's where you find the objection nobody puts in a search box, like whether the tool is worth it for a team of three.\"}),`\n`,(0,t.jsx)(e.p,{children:`Write them down as full questions. Not \"agency pricing\" but \"how much do agencies charge for AI visibility work.\" The full question is what you're going to answer, and the phrasing carries information the stem throws away.`}),`\n`,(0,t.jsx)(s,{title:\"The searches assistants ran, with your rank on each\",page:\"AI Visibility Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"count\",label:\"Grounding searches recorded\",value:68,caption:\"from 25 tracked prompts across 5 assistants\"},children:(0,t.jsx)(e.p,{children:\"Every tracked prompt records the grounding searches each assistant ran and where your site placed in the results for them. The Has rank and No rank filters split the list into searches you already compete in and searches you're invisible for, which is your raw gap list before you've done any sorting.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Map the questions against what you've already published\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now check each question against your own site. The goal is one of three marks per question, and the middle one is where most of the value hides.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Answered well\"}),\" means a page states the question or something very close to it, and answers it in a passage you could lift out and quote on its own. \",(0,t.jsx)(e.strong,{children:\"Answered badly\"}),\" means the information is technically on your site, but it's a sentence buried in the middle of a page about something else, or split across three pages, or written in a way that only makes sense if you already read the two paragraphs above it. \",(0,t.jsx)(e.strong,{children:\"Not answered\"}),\" means exactly what it says.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Search your own site the way a machine would. Use a site search for the key nouns in the question, not for the question itself, and read what comes back as if you'd never seen the page. If you can't find a clean answer in about fifteen seconds, a retrieval system won't either.\"}),`\n`,(0,t.jsx)(e.p,{children:`The \"answered badly\" pile is usually the biggest, and it's the cheapest to fix. Those are pages that already have the authority, the links, and the crawl history. They just don't have a passage a model can extract. Fixing one of those is an afternoon; writing a new page that earns the same authority is a quarter.`}),`\n`,(0,t.jsx)(s,{title:\"A coverage grid that shows the holes\",page:\"Prompts\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"score\",label:\"Coverage score\",value:54,target:70},children:(0,t.jsx)(e.p,{children:\"The Coverage Matrix scores your tracked prompt set across buyer-journey stages and brand dimensions, and colors the thin cells red. A low score on comparison and decision-stage rows almost always predicts the same hole in the content, since those are the questions buyers ask right before they pick someone.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-find-content-gaps-from-real-ai-questions-quote.webp\",quote:\"A content gap usually isn't a topic you never covered. It's an answer you buried three scrolls down a page about something else.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-find-content-gaps-from-real-ai-questions\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Sort the gaps by what's worth writing\"}),`\n`,(0,t.jsx)(e.p,{children:\"You'll end up with more gaps than time. Score each one on three things before you decide what to work on.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Intent.\"}),' How close is this question to someone choosing a vendor? \"What is retrieval augmented generation\" and \"best AI visibility tools for small agencies\" are both real questions, but only one of them has a buyer attached. Decision-stage questions win almost every tiebreak.']}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Closeness.\"}),\" Do you already have a page that half answers this? A page sitting at position 12 for the query needs a rewrite. A page that doesn't exist needs a brief, a writer, and three months of patience.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Difficulty.\"}),\" Look at what's ranking for the question now. If the top results are all major publications or aggregator sites, that's a long fight. If they're thin blog posts and a Reddit thread, that's an opening.\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Gap type\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it looks like\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What to do\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Typical effort\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Buried answer\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You cover it, but it's mid-page and hedged\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewrite the passage so it stands alone\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1 to 2 hours\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Split answer\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Three pages each hold a third of it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Consolidate onto the strongest page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Half a day\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Wrong framing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You answer the topic, not the question\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Add a heading in the reader's words\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1 hour\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Real hole\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Nothing on the site touches it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"New page, if intent justifies it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1 to 3 weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Out of reach\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High intent, but authority sites own it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Skip for now, revisit after other wins\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Zero, deliberately\"})]})]})]}),`\n`,(0,t.jsxs)(e.p,{children:[\"That last row matters more than it looks. Deciding not to chase a question is a real answer, and writing it down keeps someone from re-proposing it every planning cycle. If you want the deeper version of picking one query and going all in on it, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-win-a-target-ai-grounding-search\",children:\"winning a target AI grounding search\"}),\" walks through that single-query approach end to end.\"]}),`\n`,(0,t.jsx)(s,{title:\"Gap opportunities, ranked before you touch a doc\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"checklist\",items:[{label:\"68 grounding searches pulled\",done:!0},{label:\"22 flagged as no rank\",done:!0},{label:\"9 matched to an existing page\",done:!0},{label:\"Top 5 assigned to writers\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"The SEO opportunities drill-down sorts tracked grounding searches by impact and flags the ones where competitors rank and you don't. Each row carries the competitor pages that do rank, so the brief writes itself from what's already winning.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Answer the question where people ask it\"}),`\n`,(0,t.jsx)(e.p,{children:`Write the answer as a passage that survives being pulled out of the page. That means it states the question or a close paraphrase in a heading, answers it in the first two sentences, and doesn't depend on anything above it to make sense. If your answer starts with \"as we mentioned earlier,\" a retrieval system just lost it.`}),`\n`,(0,t.jsxs)(e.p,{children:[`Keep the answer short and specific. Numbers, ranges, and plain nouns get quoted. Adjectives don't. \"Most agencies charge between `,(0,t.jsxs)(e.span,{className:\"katex\",children:[(0,t.jsx)(e.span,{className:\"katex-mathml\",children:(0,t.jsx)(e.math,{xmlns:\"http://www.w3.org/1998/Math/MathML\",children:(0,t.jsxs)(e.semantics,{children:[(0,t.jsxs)(e.mrow,{children:[(0,t.jsx)(e.mn,{children:\"2\"}),(0,t.jsx)(e.mo,{separator:\"true\",children:\",\"}),(0,t.jsx)(e.mn,{children:\"000\"}),(0,t.jsx)(e.mi,{children:\"a\"}),(0,t.jsx)(e.mi,{children:\"n\"}),(0,t.jsx)(e.mi,{children:\"d\"})]}),(0,t.jsx)(e.annotation,{encoding:\"application/x-tex\",children:\"2,000 and \"})]})})}),(0,t.jsx)(e.span,{className:\"katex-html\",\"aria-hidden\":\"true\",children:(0,t.jsxs)(e.span,{className:\"base\",children:[(0,t.jsx)(e.span,{className:\"strut\",style:{height:\"0.8889em\",verticalAlign:\"-0.1944em\"}}),(0,t.jsx)(e.span,{className:\"mord\",children:\"2\"}),(0,t.jsx)(e.span,{className:\"mpunct\",children:\",\"}),(0,t.jsx)(e.span,{className:\"mspace\",style:{marginRight:\"0.1667em\"}}),(0,t.jsx)(e.span,{className:\"mord\",children:\"000\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"an\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"d\"})]})})]}),'8,000 a month for this work\" is citable. \"Pricing varies based on scope and objectives\" is a sentence a model will skip past on its way to someone who answered.']}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then decide whether the page warrants a Q\u0026A block underneath. Sometimes it does, especially on product and pricing pages where buyers have a predictable set of follow-ups. Sourcing those questions from People Also Ask and community threads keeps them grounded in what people ask instead of what you wish they'd ask; that's what \",(0,t.jsx)(e.a,{href:\"/faq-generation\",children:\"FAQ generation\"}),\" is for.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Be careful here. Adding Q\u0026A to every page is one of the fastest ways to get flagged for Google's scaled content abuse policy, and that penalty lands at the site level, not just on the page you padded. Few, specific, and clearly connected to the page. Five tightly relevant questions on your best page beats a hundred broad ones spread across the site, and if you can't explain why a question belongs on a page, it doesn't.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"For gaps in pages that already get traffic, the mechanics of the rewrite are covered in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"optimizing existing content for AI citation\"}),\". For anything new, run it through a \",(0,t.jsx)(e.a,{href:\"/blog/how-to-check-a-draft-for-ai-citation-before-publishing\",children:\"pre-publish draft check\"}),\" before it ships.\"]}),`\n`,(0,t.jsx)(s,{title:\"Questions sourced from where people ask them\",page:\"FAQ Generator\",href:\"/docs/dashboards/faq-generator\",signal:{kind:\"checklist\",items:[{label:\"Questions pulled from PAA, Reddit, Quora\",done:!0},{label:\"2 flagged for human review\",done:!0},{label:\"Off-topic questions dropped\",done:!0},{label:\"HTML and JSON-LD exported\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"The generator sources candidate questions from People Also Ask, Reddit, and Quora, then answers them strictly from what the page actually says. Anything it can't fully support from the page gets flagged for review, and exports come out as HTML for the visible block plus JSON-LD for the structured data.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Measure whether the gap closed\"}),`\n`,(0,t.jsx)(e.p,{children:\"Closing a gap takes longer to show up than most content work. Three things have to happen in order: the assistant's search engine has to recrawl and re-rank the page, the page has to enter the results the assistant reads, and then a tracked prompt has to generate that search again and cite you. Two to six weeks is normal. A week is not enough data to judge anything.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Track it in that same order, be
2cause each stage tells you something different. If the page never enters the ranked results, the problem is the page. If it ranks but never gets cited, the problem is usually the passage, meaning the content is there but not in a shape a model wants to lift. Those are different fixes, and knowing which one you have saves a lot of guessing.\"}),`\n`,(0,t.jsx)(e.p,{children:`Keep the original question list. The measurement is literally \"did these specific questions get better,\" and that comparison only works if you didn't rewrite the list halfway through. Add new gaps to the bottom as you find them instead of replacing the set.`}),`\n`,(0,t.jsx)(s,{title:\"Same questions, tracked nightly, before and after\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"beforeAfter\",label:\"Gap questions with a ranked page\",before:\"3 of 22\",after:\"14 of 22\",tone:\"positive\",caption:\"9 pages updated, 2 new, measured over 6 weeks\"},children:(0,t.jsx)(e.p,{children:\"A project runs your prompt set nightly against a fixed start date, so the gap questions get re-checked without anyone remembering to. The margin of error stays visible on every metric, which keeps a two-point wobble from getting written up as a win.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The questions were there the whole time\"}),`\n`,(0,t.jsx)(e.p,{children:\"The best part of this workflow is that you're not guessing what to write. The assistants publish their homework. They tell you exactly which searches they ran before deciding who to recommend, and the answer to a question you can see is a lot easier to write than the answer to a keyword you inferred.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with one prompt in your category and read what the model searched for. You'll find two or three questions you thought you'd covered and hadn't. Fix those first, keep the list, and let it grow. The gap list stops being a quarterly research project and turns into something you check on a Monday morning in about ten minutes.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of five workflows for content teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-content-teams\",children:\"AI visibility guides for content teams\"}),\".\"]})]})}function g(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return A(v);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"25:[\"$\",\"$L10\",\"how-to-find-content-gaps-from-real-ai-questions\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$79\",\"title\":\"How to Find Content Gaps From Real AI Questions\",\"date\":\"2026-08-27\",\"image\":\"/images/blog/how-to-find-content-gaps-from-real-ai-questions.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Keyword tools tell you what people type into a search box. AI assistants ask their own questions before they answer, and those questions are a much better content brief. Here's how to collect them, find the ones you never answered, and close the gap.\",\"tags\":[\"Content\",\"How-to\",\"Workflows\",\"Content Strategy\",\"AI Search Visibility\",\"AI Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How is an AI content gap different from a normal SEO keyword gap?\",\"answer\":\"A keyword gap is a phrase you don't rank for. An AI content gap is a question an assistant asked on a user's behalf that your site had no clean answer for. The difference matters because the assistant writes its own search queries, and they're usually longer and more specific than anything in a keyword tool. You can rank well for the head term and still lose every one of the questions underneath it.\"},{\"question\":\"Where do the questions actually come from?\",\"answer\":\"Three places, and you want all three. Grounding searches are the web searches assistants run before they answer, so they show you what the model thinks it needs to know. People Also Ask gives you the phrasings Google already associates with your topic. Reddit and Quora give you how buyers ask each other, which is blunter and often closer to the real objection.\"},{\"question\":\"Do I need to write a new page for every gap I find?\",\"answer\":\"No, and that's the most common mistake. Most gaps close with a section or a short Q\u0026A block added to a page you already have. New pages are for gaps where you have nothing on the topic at all. Splitting one topic across two thin pages usually makes both of them harder to cite.\"},{\"question\":\"How many FAQs should I add to a page?\",\"answer\":\"A few, and only on pages that warrant them. Google polices scaled content abuse at the site level, so blanketing every page with generic Q\u0026A can hurt rankings everywhere, not just on the page you padded. A short block of questions the page really answers is worth more than a long block of questions it doesn't.\"},{\"question\":\"How long before I know whether closing a gap worked?\",\"answer\":\"Plan on two to six weeks. The assistant has to recrawl the page, the search engine behind it has to re-rank it, and then the query has to come up again in tracked prompts. Anything you measure in the first week is mostly crawl timing, not content performance.\"}],\"howTo\":{\"name\":\"How to find content gaps from real AI questions\",\"description\":\"A repeatable workflow for content teams that turns the questions AI assistants actually ask into a prioritized list of pages to write or fix, then measures whether the gap closed.\",\"steps\":[{\"name\":\"Collect the questions AI is actually asking\",\"text\":\"Gather the grounding searches assistants run on your topics, plus the People Also Ask, Reddit, and Quora phrasings around them, into one list of real questions instead of a keyword export.\"},{\"name\":\"Map the questions against what you've already published\",\"text\":\"Line every question up against your existing pages and mark each one as answered well, answered badly, or not answered at all.\"},{\"name\":\"Sort the gaps by what's worth writing\",\"text\":\"Score the unanswered questions on buying intent, how close you already are, and how hard the competition is, then work the top of the list instead of the whole thing.\"},{\"name\":\"Answer the question where people ask it\",\"text\":\"Write the answer as a direct, self-contained passage on the most relevant existing page, and add a short Q\u0026A block only where the page clearly warrants one.\"},{\"name\":\"Measure whether the gap closed\",\"text\":\"Track the same questions after publishing and watch for the page entering the ranked results and then showing up as a citation in AI answers.\"}]},\"_meta\":{\"filePath\":\"how-to-find-content-gaps-from-real-ai-questions.mdx\",\"fileName\":\"how-to-find-content-gaps-from-real-ai-questions.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-find-content-gaps-from-real-ai-questions\"},\"body\":\"$7a\",\"locale\":\"en\",\"path\":\"how-to-find-content-gaps-from-real-ai-questions\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"7b:T3768,"])</script>
2<script>self.__next_f.push([1,"To build a monthly AI visibility client report, decide up front which two or three questions the report has to answer, log every piece of work you ship as a dated annotation while you're doing it, put the data pull on an automatic monthly schedule so nobody has to remember it, line the metric movements up against the work you logged, and package the result as one white-labeled PDF or PPTX instead of a folder of screenshots. Four numbers carry most of these reports: share of voice, brand consistency, citation rate, and competitor rank, each measured across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews. Done this way, month-end assembly takes about an hour instead of half a day, and most of that hour is writing rather than gathering. The report answers the question every client eventually asks, which is not \"what are the numbers\" but \"what did the numbers do because of you.\"\n\nMost agency reporting on AI visibility goes the other way. Somebody opens six dashboards the afternoon before the call, screenshots whatever looks good, pastes it into last month's deck, and writes a summary paragraph from memory. It takes half a day, it reads like a status update, and it puts the client in the position of grading charts they don't fully understand. Then share of voice drops two points in March and nobody in the room can say whether that's the client's competitor publishing a comparison hub or the agency's work losing steam.\n\nThe fix isn't a better template. It's moving most of the work out of month-end and into the month itself.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Decide the questions | Naming what this report exists to answer | Two or three questions, written down, same every month |\n| 2. Log the work | Annotating publishes, pitches, and fixes as they ship | The log is current on the last day of the month |\n| 3. Schedule the pull | Automating the monthly data generation | Report lands in inboxes without anyone starting it |\n| 4. Connect the dots | Matching movements to logged work | Every chart in the report has a sentence attached |\n| 5. Build the deliverable | One white-labeled export, sent the same way monthly | Client knows where to look without being told |\n\n## Decide what the report has to answer\n\nStart by writing down what this specific client's report is for. Not the metrics; the questions. A B2B software client who hired you to show up in \"best [category] tools\" answers is asking a different question than a client in a regulated industry who mostly wants to know whether AI is describing them accurately.\n\nPick two or three and keep them the same every month. Something like: are we showing up more often in the answers that matter, are we gaining or losing ground against the two competitors we care about, and is the work we shipped this month connected to either. Those questions become the section headings of the report, and everything that doesn't serve them goes in an appendix or gets cut.\n\nThis step sounds soft and it's the one that saves the most time. When the questions are fixed, you stop rebuilding the report every month and start filling in a structure. It also sets what \"good\" means before you see the numbers, which keeps you from picking whichever metric happens to look best in a bad month.\n\nThe clients who need the most convincing here are usually the ones asking for \"everything you have.\" Show them a two-page report they read in full against a twenty-page report nobody opens past the summary, and the argument settles itself.\n\n\u003cWorkflowCallout\n  title=\"Goals, set once, reported every month\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Reporting questions agreed with client\", done: true },\n      { label: \"Project goals set to match\", done: true },\n      { label: \"Competitor set confirmed (2 tracked)\", done: true },\n      { label: \"Prompt tags mapped to each question\", done: false },\n    ],\n  }}\n\u003e\n  A project turns the client's questions into tracked goals with a defined start date, so the monthly report has a fixed thing to measure against instead of a fresh interpretation each time. Prompt tags let you slice the same data by theme when a client cares about one part of the category more than the rest.\n\u003c/WorkflowCallout\u003e\n\n## Log the month's work while it's happening\n\nThis is the step that makes the other four cheap. Every time you ship something that could move AI visibility, write it down with the date attached: a page published or rewritten, a technical fix, a pitch that landed, structured data added, a site migration, a pricing page change. Thirty seconds each, done the day it happens.\n\nLog the things you didn't do, too. A competitor launching a content hub, an AI platform changing how it cites, a client's PR team announcing something you weren't looped into. Those explain movements that have nothing to do with your work, and being able to point at them in month four is worth more than any chart in the deck.\n\nThe reason to do this daily instead of at month end is timing. AI visibility changes lag the work that caused them, often by one to three weeks. By the time a citation rate moves, you've shipped six other things and your memory of what happened when is already unreliable. A dated log turns a guess into a record.\n\n\u003cWorkflowCallout\n  title=\"A dated log that draws itself on every chart\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"count\",\n    label: \"Annotations logged this month\",\n    value: 11,\n    caption: \"7 content, 2 technical, 2 competitor moves\",\n  }}\n\u003e\n  Annotations mark dates on the time-series charts across the visibility, competitor, consistency, and citation dashboards. When a citation spike lines up with a diamond marker reading \"published category comparison guide,\" the causal story is already drawn for you.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-build-monthly-ai-visibility-client-reports-quote.webp\"\n  quote=\"A report that only shows numbers asks the client to grade your numbers. A report that shows the work next to the numbers asks them to grade the work.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-build-monthly-ai-visibility-client-reports\"\n/\u003e\n\n## Put the monthly pull on a schedule\n\nSet the data to generate itself on the same day every month. Pick a date a few days before the client call so you have room to read it, and add the client contacts as recipients so they've seen the headline numbers before anyone opens a deck.\n\nThat last part makes some agencies nervous. Sending clients the raw numbers ahead of the call feels like giving up control of the story. In practice it does the opposite. A client who's already seen the numbers spends the call asking what you're going to do about them, which is the conversation you want, instead of processing charts in real time while you talk.\n\nThe scheduling also fixes a quieter problem. Manually run reports drift. Someone runs it on the 3rd one month and the 11th the next, and now you're comparing a 29-day window to a 39-day one and calling the difference performance. Same day, every month, means the comparison is real.\n\n| Cadence | Best for | Watch out for |\n| :--- | :--- | :--- |\n| Weekly | Active campaigns, crisis windows, launch months | Weekly noise reads as movement when it isn't |\n| Monthly | Standard client reporting and the account team's own check-ins | One month is a short window for a trend claim |\n| Quarterly | Executive and board roll-ups | Too slow to catch a problem while it's still cheap to fix |\n\n\u003cWorkflowCallout\n  title=\"Same day, same window, no one has to remember\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Monthly schedule set (day 1)\", done: true },\n      { label: \"2 client recipients added\", done: true },\n      { label: \"White-label branding applied\", done: true },\n    ],\n  }}\n\u003e\n  The Reports tab schedules weekly, monthly, or quarterly runs at a fixed day and time, with recipients who don't need an account to receive them. On an agency plan those emails carry your branding instead of ours.\n\u003c/WorkflowCallout\u003e\n\n## Connect the numbers back to the work\n\nNow do the part that's actually your job. Open the month's data next to the annotation log and go line by line through the same four metrics every month: share of voice as a percentage, brand consistency as a score out of 100, citation rate as the share of answers citing one of the client's own pages, and competitor rank against the two or three rivals you track. Add the source mix behind those citations, since knowing that Reddit and G2 feed 40 percent of the answers in a category changes what you recommend next month. For each movement worth reporting, ask whether something in the log explains it.\n\nYou'll get three kinds of answers, and all three belong in the report:\n\n- **Explained movement.** The comparison guide published on the 8th, citations from that page started showing up on the 22nd, share of voice on the decision-stage prompts is up 3 points. Write the sentence and move on.\n- **Explained by someone else.** A competitor's new hub, a platform change, a client announcement you didn't run. Say so. This is why you log competitor moves.\n- **Unexplained.** Nothing in the log matches. Say that too, and say what you're going to check. Clients handle \"we don't know yet, here's how we'll find out\" far better than a confident story that falls apart next month.\n\nWatch the size of the move before you build a story on it. Daily prompt runs have real variance, and a one-point shift in share of voice across a small prompt set is often noise wearing a suit. Check the margin of error before you claim a win. If you also have server-side [AI traffic analytics](/ai-traffic-analytics) running on the client's site, real assistant visits are the strongest signal you have here, since they're counted rather than sampled.\n\n\u003cWorkflowCallout\n  title=\"Movement with the reason already attached\"\n  page=\"Brand Dashboard\"\n  href=\"/docs/dashboards/brand-dashboard\"\n  signal={{\n    kind: \"trend\",\n    label: \"Share of voice, 30 days\",\n    series: [18.2, 18.0, 18.6, 19.1, 18.9, 19.4, 20.2, 20.0, 20.8, 21.3, 21.1, 21.6],\n    change: 3.4,\n    suffix: \" pts\",\n  }}\n\u003e\n  The visibility trend lines carry confidence bands and annotation markers on the same chart, so you can see whether a move clears the noise floor and what you shipped right before it. Citation Intelligence answers the follow-up question of which sources fed the answers.\n\u003c/WorkflowCallout\u003e\n\n## Build one deliverable, not five screenshots\n\nPackage it as a single artifact, in the same shape every month: the narrative up front, the charts behind it. Two to four pages of writing answering the questions from step one, then an appendix with the supporting data for the client who wants to dig.\n\nExport it under your own branding. A white-labeled PDF or PPTX with your logo is the difference between handing a client a tool's output and handing them your agency's analysis. It matters more than it should, especially with clients whose executives will see the deck without you in the room to narrate it.\n\nSend it the same way every month. Same file type, same section order, same delivery day. Clients learn where to look, stop asking you to walk them through the layout, and start asking about the content. That's the point where reporting turns from an hour of overhead into the thing that renews the contract.\n\n| Report section | What goes in it | Where it comes from |\n| :--- | :--- | :--- |\n| Headline | The month in three sentences, including bad news | Your read of the data |\n| Question 1 to 3 | One section each, movement plus explanation | Metrics matched to the annotation log |\n| Work shipped | What you did, dated | The annotation log itself |\n| Next month | What you're doing about what you found | The account plan |\n| Appendix | Full charts, prompt-level detail, competitor tables | Exported dashboards |\n\n\u003cWorkflowCallout\n  title=\"White-labeled export, same package every month\"\n  page=\"AI Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Month-end assembly time\",\n    before: \"4.5 hrs\",\n    after: \"5
25 min\",\n    tone: \"positive\",\n    caption: \"annotations logged daily; scheduled pull; one export\",\n    lowerIsBetter: true,\n  }}\n\u003e\n  Reports and project details export as a shareable web link, PDF, or PPTX, all carrying agency branding on an agency plan. Per-goal influence rates come along with the export, so the connection between the work and the outcome is in the file itself.\n\u003c/WorkflowCallout\u003e\n\n## The report is the part the client actually sees\n\nEverything else you do for a client happens where they can't watch it. The monthly report is the artifact, and for a lot of clients it's the entire basis on which they decide whether the retainer is working. Treating it as the last hour before the call is how good work gets rated as average.\n\nMove the effort earlier. Fix the questions once, log the work as it ships, let the data pull run itself, and spend your month-end hour on the only part that needs a person: saying what happened and why. The month you have to explain a drop is the month this pays for itself.\n\nIf you're setting up a client from scratch, [baselining a brand's AI visibility](/blog/how-to-baseline-your-brands-ai-visibility) covers month zero, and [tracking AI visibility over time](/blog/how-to-track-ai-visibility-over-time) covers the daily tracking these reports read from. And when a strong month's report becomes the pitch for the next account, [prospecting new clients with AI visibility reports](/blog/how-to-prospect-new-clients-with-ai-visibility-reports) picks it up from there.\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"7c:T4d5e,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var i in e)r(n,i,{get:e[i],enumerable:!0})},s=(n,e,i,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let a of y(e))!f.call(n,a)\u0026\u0026a!==i\u0026\u0026r(n,a,{get:()=\u003ee[a],enumerable:!(o=u(e,a))||o.enumerable});return n};var v=(n,e,i)=\u003e(i=n!=null?p(m(n)):{},s(e||!n||!n.__esModule?r(i,\"default\",{value:n,enumerable:!0}):i,n)),x=n=\u003es(r({},\"__esModule\",{value:!0}),n);var l=w((T,h)=\u003e{h.exports=_jsx_runtime});var k={};b(k,{default:()=\u003eg});var t=v(l());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:i,WorkflowCallout:o}=e;return i||c(\"PullQuote\",!0),o||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:`To build a monthly AI visibility client report, decide up front which two or three questions the report has to answer, log every piece of work you ship as a dated annotation while you're doing it, put the data pull on an automatic monthly schedule so nobody has to remember it, line the metric movements up against the work you logged, and package the result as one white-labeled PDF or PPTX instead of a folder of screenshots. Four numbers carry most of these reports: share of voice, brand consistency, citation rate, and competitor rank, each measured across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews. Done this way, month-end assembly takes about an hour instead of half a day, and most of that hour is writing rather than gathering. The report answers the question every client eventually asks, which is not \"what are the numbers\" but \"what did the numbers do because of you.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"Most agency reporting on AI visibility goes the other way. Somebody opens six dashboards the afternoon before the call, screenshots whatever looks good, pastes it into last month's deck, and writes a summary paragraph from memory. It takes half a day, it reads like a status update, and it puts the client in the position of grading charts they don't fully understand. Then share of voice drops two points in March and nobody in the room can say whether that's the client's competitor publishing a comparison hub or the agency's work losing steam.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The fix isn't a better template. It's moving most of the work out of month-end and into the month itself.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Decide the questions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Naming what this report exists to answer\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Two or three questions, written down, same every month\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Log the work\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Annotating publishes, pitches, and fixes as they ship\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The log is current on the last day of the month\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Schedule the pull\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Automating the monthly data generation\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Report lands in inboxes without anyone starting it\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Connect the dots\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Matching movements to logged work\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every chart in the report has a sentence attached\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Build the deliverable\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One white-labeled export, sent the same way monthly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Client knows where to look without being told\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Decide what the report has to answer\"}),`\n`,(0,t.jsx)(e.p,{children:`Start by writing down what this specific client's report is for. Not the metrics; the questions. A B2B software client who hired you to show up in \"best [category] tools\" answers is asking a different question than a client in a regulated industry who mostly wants to know whether AI is describing them accurately.`}),`\n`,(0,t.jsx)(e.p,{children:\"Pick two or three and keep them the same every month. Something like: are we showing up more often in the answers that matter, are we gaining or losing ground against the two competitors we care about, and is the work we shipped this month connected to either. Those questions become the section headings of the report, and everything that doesn't serve them goes in an appendix or gets cut.\"}
2),`\n`,(0,t.jsx)(e.p,{children:`This step sounds soft and it's the one that saves the most time. When the questions are fixed, you stop rebuilding the report every month and start filling in a structure. It also sets what \"good\" means before you see the numbers, which keeps you from picking whichever metric happens to look best in a bad month.`}),`\n`,(0,t.jsx)(e.p,{children:'The clients who need the most convincing here are usually the ones asking for \"everything you have.\" Show them a two-page report they read in full against a twenty-page report nobody opens past the summary, and the argument settles itself.'}),`\n`,(0,t.jsx)(o,{title:\"Goals, set once, reported every month\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Reporting questions agreed with client\",done:!0},{label:\"Project goals set to match\",done:!0},{label:\"Competitor set confirmed (2 tracked)\",done:!0},{label:\"Prompt tags mapped to each question\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"A project turns the client's questions into tracked goals with a defined start date, so the monthly report has a fixed thing to measure against instead of a fresh interpretation each time. Prompt tags let you slice the same data by theme when a client cares about one part of the category more than the rest.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Log the month's work while it's happening\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that makes the other four cheap. Every time you ship something that could move AI visibility, write it down with the date attached: a page published or rewritten, a technical fix, a pitch that landed, structured data added, a site migration, a pricing page change. Thirty seconds each, done the day it happens.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Log the things you didn't do, too. A competitor launching a content hub, an AI platform changing how it cites, a client's PR team announcing something you weren't looped into. Those explain movements that have nothing to do with your work, and being able to point at them in month four is worth more than any chart in the deck.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The reason to do this daily instead of at month end is timing. AI visibility changes lag the work that caused them, often by one to three weeks. By the time a citation rate moves, you've shipped six other things and your memory of what happened when is already unreliable. A dated log turns a guess into a record.\"}),`\n`,(0,t.jsx)(o,{title:\"A dated log that draws itself on every chart\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"count\",label:\"Annotations logged this month\",value:11,caption:\"7 content, 2 technical, 2 competitor moves\"},children:(0,t.jsx)(e.p,{children:'Annotations mark dates on the time-series charts across the visibility, competitor, consistency, and citation dashboards. When a citation spike lines up with a diamond marker reading \"published category comparison guide,\" the causal story is already drawn for you.'})}),`\n`,(0,t.jsx)(i,{image:\"/images/blog/how-to-build-monthly-ai-visibility-client-reports-quote.webp\",quote:\"A report that only shows numbers asks the client to grade your numbers. A report that shows the work next to the numbers asks them to grade the work.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-build-monthly-ai-visibility-client-reports\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Put the monthly pull on a schedule\"}),`\n`,(0,t.jsx)(e.p,{children:\"Set the data to generate itself on the same day every month. Pick a date a few days before the client call so you have room to read it, and add the client contacts as recipients so they've seen the headline numbers before anyone opens a deck.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That last part makes some agencies nervous. Sending clients the raw numbers ahead of the call feels like giving up control of the story. In practice it does the opposite. A client who's already seen the numbers spends the call asking what you're going to do about them, which is the conversation you want, instead of processing charts in real time while you talk.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The scheduling also fixes a quieter problem. Manually run reports drift. Someone runs it on the 3rd one month and the 11th the next, and now you're comparing a 29-day window to a 39-day one and calling the difference performance. Same day, every month, means the comparison is real.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Cadence\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Best for\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Watch out for\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weekly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Active campaigns, crisis windows, launch months\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Weekly noise reads as movement when it isn't\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Monthly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Standard client reporting and the account team's own check-ins\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One month is a short window for a trend claim\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Quarterly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Executive and board roll-ups\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Too slow to catch a problem while it's still cheap to fix\"})]})]})]}),`\n`,(0,t.jsx)(o,{title:\"Same day, same window, no one has to remember\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"checklist\",items:[{label:\"Monthly schedule set (day 1)\",done:!0},{label:\"2 client recipients added\",done:!0},{label:\"White-label branding applied\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"The Reports tab schedules weekly, monthly, or quarterly runs at a fixed day and time, with recipients who don't need an account to receive them. On an agency plan those emails carry your branding instead of ours.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Connect the numbers back to the work\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now do the part that's actually your job. Open the month's data next to the annotation log and go line by line through the same four metrics every month: share of voice as a percentage, brand consistency as a score out of 100, citation rate as the share of answers citing one of the client's own pages, and competitor rank against the two or three rivals you track. Add the source mix behind those citations, since knowing that Reddit and G2 feed 40 percent of the answers in a category changes what you recommend next month. For each movement worth reporting, ask whether something in the log explains it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"You'll get three kinds of answers, and all three belong in the report:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Explained movement.\"}),\" The comparison guide published on the 8th, citations from that page started showing up on the 22nd, share of voice on the decision-stage prompts is up 3 points. Write the sentence and move on.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Explained by someone else.\"}),\" A competitor's new hub, a platform change, a client announcement you didn't run. Say so. This is why you log competitor moves.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Unexplained.\"}),` Nothing in the log matches. Say that too, and say what you're going to check. Clients handle \"we don't know yet, here's how we'll find out\" far better than a confident story that falls apart next month.`]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Watch the size of the move before you build a story on it. Daily prompt runs have real variance, and a one-point shift in share of voice across a small prompt set is often noise wearing a suit. Check the margin of error before you claim a win. If you also have server-side \",(0,t.jsx)(e.a,{href:\"/ai-traffic-analytics\",children:\"AI traffic analytics\"}),\" running on the client's site, real assistant visits are the strongest signal you have here, since they're counted rather than sampled.\"]}),`\n`,(0,t.jsx)(o,{title:\"Movement with the reason already attached\",page:\"Brand Dashboard\",href:\"/docs/dashboards/brand-dashboard\",signal:{kind:\"trend\",label:\"Share of voice, 30 days\",series:[18.2,18,18.6,19.1,18.9,19.4,20.2,20,20.8,21.3,21.1,21.6],change:3.4,suffix:\" pts\"},children:(0,t.jsx)(e.p,{children:\"The visibility trend lines carry confidence bands and annotation markers on the same chart, so you can see whether a move clears the noise floor and what you shipped right before it. Citation Intelligence answers the follow-up question of which sources fed the answers.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Build one deliverable, not five screenshots\"}),`\n`,(0,t.jsx)(e.p,{children:\"Package it as a single artifact, in the same shape every month: the narrative up front, the charts behind it. Two to four pages of writing answering the questions from step one, then an appendix with the supporting data for the client who wants to dig.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Export it under your own branding. A white-labeled PDF or PPTX with your logo is the difference between handing a client a tool's output and handing them your agency's analysis. It matters more than it should, especially with clients whose executives will see the deck without you in the room to narrate it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Send it the same way every month. Same file type, same section order, same delivery day. Clients learn where to look, stop asking you to walk them through the layout, and start asking about the content. That's the point where reporting turns from an hour of overhead into the thing that renews the contract.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Report section\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What goes in it\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Where it comes from\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Headline\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The month in three sentences, including bad news\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Your read of the data\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Question 1 to 3\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One section each, movement plus explanation\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Metrics matched to the annotation log\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Work shipped\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"What you did, dated\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The annotation log itself\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Next month\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"What you're doing about what you found\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The account plan\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Appendix\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full charts, prompt-level detail, competitor tables\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Exported dashboards\"})]})]})]}),`\n`,(0,t.jsx)(o,{title:\"White-labeled export, same package every month\",page:\"AI Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"beforeAfter\",label:\"Month-end assembly time\",before:\"4.5 hrs\",after:\"55 min\",tone:\"positive\",caption:\"annotations logged daily; scheduled pull; one export\",lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"Reports and project details export as a shareable web link, PDF, or PPTX, all carrying agency branding on an agency plan. Per-goal influence rates come along with the export, so the connection between the work and the outcome is in the file itself.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The report is the part the client actually sees\"}),`\n`,(0,t.jsx)(e.p,{children:\"Everything else you do for a client happens where they can't watch it. The monthly report is the artifact, and for a lot of clients it's the entire basis on which they decide whether the retainer is working. Treating it as the last hour before the call is how good work gets rated as average.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Move the effort earlier. Fix the questions once, log the work as it ships, let the data pull run itself, and spend your month-end hour on the only part that needs a person: saying what happened and why. The month you have to explain a drop is the month this pays for itself.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're setting up a client from scratch, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining a brand's AI visibility\"}),\" covers month zero, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"tracking AI visibility over time\"}),\" covers the daily tracking these reports read from. And when a strong month's report becomes the pitch for the next account, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-prospect-new-clients-with-ai-visibility-reports\",children:\"prospecting new clients with AI visibility reports\"}),\" picks it up from there.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function g(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return x(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"26:[\"$\",\"$L10\",\"how-to-build-monthly-ai-visibility-client-reports\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$7b\",\"title\":\"How to Build Monthly AI Visibility Client Reports\",\"date\":\"2026-08-26\",\"image\":\"/images/blog/how-to-build-monthly-ai-visibility-client-reports.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Most monthly AI visibility reports are a pile of screenshots assembled the day before the call. Here's how to build one that takes an hour, explains every movement on the chart, and survives the question every client eventually asks.\",\"tags\":[\"Agencies\",\"How-to\",\"Workflows\",\"Client Reporting\",\"AI Search Visibility\",\"AI Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How long should a monthly AI visibility report actually be?\",\"answer\":\"Shorter than you think. Two to four pages of narrative plus an appendix of charts covers almost every client. The length that gets read beats the length that looks thorough. If a chart doesn't connect to something you did or something a competitor did, it belongs in the appendix or nowhere.\"},{\"question\":\"What do I report in month one when there's no trend yet?\",\"answer\":\"Report the baseline and the plan. Month one has no movement to explain, so the deliverable is the starting position; share of voice, brand consistency, which competitors hold the answers today, and what you're going to work on first. Set the expectation on that first call that trends start in month two.\"},{\"question\":\"Should the report be monthly or quarterly?\",\"answer\":\"Monthly for the working team, quarterly for the executives. Daily prompt data has enough noise that a single month can move a couple of points for reasons nobody controls. A monthly cadence keeps the account team close to the work; a quarterly roll-up is where the trend is stable enough to make claims about.\"},{\"question\":\"What if the numbers went down this month?\",\"answer\":\"Report it in the first paragraph, with the reason if you have one and a note saying you're looking if you don't. A dip you explain builds more trust than a flat month you dress up. This is exactly what the annotation log is for, since it lets you separate \\\"a competitor published a comparison hub\\\" from \\\"our work stopped working.\\\"\"},{\"question\":\"Can I white-label the report so it goes out under our agency's brand?\",\"answer\":\"On an agency plan, yes. Scheduled report emails, shareable web links, and PDF and PPTX exports all carry your logo and company name instead of the platform's. Clients see your agency's deliverable, which is usually the difference between a tool your client could buy themselves and a service they're paying you for.\"}],\"howTo\":{\"name\":\"How to build monthly AI visibility client reports\",\"description\":\"A repeatable monthly reporting workflow for agencies that connects the work shipped to the AI visibility numbers it moved, and packages it as one white-labeled client deliverable.\",\"steps\":[{\"name\":\"Decide what the report has to answer\",\"text\":\"Pick the two or three questions this client's report exists to answer, and build every section around them instead of showing every metric you have access to.\"},{\"name\":\"Log the month's work while it's happening\",\"text\":\"Record each publish, pitch, technical fix, and competitor move as a dated annotation the day it happens, so month-end assembly is reading a log instead of reconstructing one.\"},{\"name\":\"Put the monthly pull on a schedule\",\"text\":\"Set the report to generate automatically on the same day every month with the client on the recipient list, so the data is waiting for you instead of the other way around.\"},{\"name\":\"Connect the numbers back to the work\",\"text\":\"Line the metric movements up against the annotation log and write the causal story where one exists, saying so plainly where it doesn't.\"},{\"name\":\"Build one deliverable, not five screenshots\",\"text\":\"Export a single white-labeled report with the narrative up front and the charts behind it, then send the same artifact every month so the client learns where to look.\"}]},\"_meta\":{\"filePath\":\"how-to-build-monthly-ai-visibility-client-reports.mdx\",\"fileName\":\"how-to-build-monthly-ai-visibility-client-reports.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-build-monthly-ai-visibility-client-reports\"},\"body\":\"$7c\",\"locale\":\"en\",\"path\":\"how-to-build-monthly-ai-visibility-client-reports\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"7d:T2e61,"])</script>
2<script>self.__next_f.push([1,"To optimize a press release for AI citation before it goes out, pick a real, tracked fan-out tied to the announcement, paste the embargoed draft into Spyglasses' Citation Optimizer Source step with the page type set to press release, and run it through ChatGPT's five-gate citation pipeline: surfacing, chunking, embedding and rerank, deep-read audition, and synthesis. Fix whatever gate fails, re-score for free, and stop once the readiness banner reads publish-ready or plateaued, typically within two revision rounds and a score move from the 30s into the 70s. Only then hand the cleared release to whoever sends it to the wire service, AP News, Business Wire, PR Newswire, or GlobeNewswire, so the version that syndicates is the version that already passed the check, not the one that finds its gaps out after distribution.\n\nA press release only gets one real shot. Once it's on the wire, it gets picked up, mirrored across syndication partners, and indexed with whatever it shipped with, quotes, dateline, and all. There's no equivalent of a website edit once that's happened. That makes the draft stage the only point where checking whether AI can actually find and cite the release still costs a revision instead of a correction nobody sends out.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Pick the fan-out | Choosing the real query the release should win | A tracked fan-out, not a guessed keyword |\n| 2. Paste the draft | Scoring the embargoed release with no live URL | Draft accepted, page type set to press release |\n| 3. Score gate by gate | Diagnosing exactly what would fail on the wire | A gate-by-gate score, not one number |\n| 4. Revise carefully | Fixing what's broken, leaving quotes and boilerplate alone | Readiness banner reads publish-ready |\n| 5. Export and clear | Getting sign-off from both the score and the comms team | Release cleared on both fronts before distribution |\n\n## Pick the fan-out the release needs to win\n\nBefore scoring anything, name the query the release is actually supposed to win. A launch release drafted around \"our company has news\" isn't chasing anything specific. A launch release drafted to win \"who just raised a Series B in [category]\" or \"[company] vs [competitor] funding\" is chasing something real, a question an AI assistant already runs a search for.\n\nPull that query from your property's tracked fan-outs rather than guessing. A fan-out is a search ChatGPT's own pipeline actually generated and captured in a prior AI Visibility report, so scoring against one tells you something a made-up keyword can't. If the announcement is in a category with no tracked fan-outs yet, generate discovery queries for that category first; a free-text query still scores, it's just labeled unverified until it's confirmed.\n\n\u003cWorkflowCallout\n  title=\"Real fan-outs, ranking gap already flagged\"\n  page=\"Discovery Queries\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Launch-tagged fan-outs tracked\",\n    value: 14,\n    caption: \"6 flagged as ranking gaps\",\n  }}\n\u003e\n  Discovery Queries lists your property's real, tracked fan-outs with the highest-impact ones and your ranking gaps flagged first, so the release targets a search AI actually runs instead of a phrase that sounds right in a pitch meeting.\n\u003c/WorkflowCallout\u003e\n\n## Paste the embargoed draft, not a link\n\nScore the release while it's still embargoed. Paste the raw draft, straight from the doc your team is circulating for approval, no live URL and no early leak required. Set the page type to press release on the way in, since that's what drives the rewrite template if the draft needs revising later; it's built around dateline, lead, quote, and boilerplate structure instead of the blog or landing-page templates.\n\nThis is also the step that catches a second problem PR teams run into: if the release covers ground close enough to a page already live on the site, an overlap flag shows up before the release competes with your own existing content for the same citation.\n\n\u003cWorkflowCallout\n  title=\"Press release page type, no embargo broken\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Draft pasted, no live URL\", done: true },\n      { label: \"Page type: press release\", done: true },\n      { label: \"No overlapping pages flagged\", done: true },\n    ],\n  }}\n\u003e\n  Source Step 2 accepts a pasted draft with no live URL, scored exactly the way a published wire release would be. Page type press release drives the rewrite template if revisions are needed later.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-optimize-a-press-release-for-ai-citation-quote.webp\"\n  quote=\"A press release doesn't get a second draft once it's on the wire. Score it while it's still a document on your desk, not after it's someone else's correction to chase.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-optimize-a-press-release-for-ai-citation\"\n/\u003e\n\n## Score it gate by gate before it goes to the wire\n\nRun the score. The citation pipeline checks the release across five gates before anything gets quoted: surfacing (would ChatGPT's search even return this release), chunking (is the specific passage that answers the query retrievable on its own), embedding and rerank (does that passage's meaning actually match the query's meaning), deep-read audition (does the passage survive a closer read against the other candidates), and synthesis readiness (is the passage specific and quotable enough to make the final answer). A release can read as tight, on-message copy to a comms review and still fail any one of these gates, which is exactly why the stoplight view matters more than a single pass or fail.\n\nScoring is free and unlimited, so there's no reason to skip it because the release \"looks ready\" after three rounds of internal edits. A release that scores well on the first pass tells you it's actually ready, not just approved.\n\n\u003cWorkflowCallout\n  title=\"The same gates a live wire release would face, run before it's live\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/methodology/citation-optimizer\"\n  signal={{\n    kind: \"score\",\n    label: \"Citation pipeline score\",\n    value: 34,\n    target: 70,\n  }}\n\u003e\n  Citation Optimizer scores the draft against the target fan-out using the same methods the live pipeline runs: re
2ciprocal rank fusion, chunk relevance, cosine similarity. Free and unlimited, so score the embargoed draft, not just the version about to ship.\n\u003c/WorkflowCallout\u003e\n\n## Revise without breaking wire-service formatting\n\nFix the gates that actually failed, not the whole release. If surfacing is the problem, the fix is usually the headline and the lead paragraph, since a passage that never surfaces never gets evaluated on anything downstream. If chunking fails but surfacing is fine, the direct answer to the target query probably needs to move higher in the release and get tighter, not longer.\n\nLeave quotes, attribution, and the standard boilerplate alone. The rewrite works only with what the release already supports; it doesn't invent facts, statistics, or a credential that isn't already in the draft. If a proposed change touches a direct quote or the boilerplate, that's worth a second look before accepting it, since those two sections are usually the ones legal and the executive's office signed off on separately.\n\n| Gate that failed | Usual fix | Not the fix |\n| :--- | :--- | :--- |\n| Surfacing | Rework the headline and lead paragraph | Adding more keywords throughout |\n| Chunking | Move the direct answer higher, tighten it | Making the release longer |\n| Relevance | Rewrite toward the fan-out's actual meaning | Repeating the query phrase verbatim |\n| Structured data / freshness | Add or correct NewsArticle JSON-LD and the dateline | Rewriting quotes or the boilerplate |\n\n\u003cWorkflowCallout\n  title=\"Free re-scoring, quotes and boilerplate untouched\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Citation pipeline score\",\n    before: \"34\",\n    after: \"71\",\n    tone: \"positive\",\n    caption: \"two revision rounds; cleared surfacing and synthesis\",\n  }}\n\u003e\n  Every re-score is free and unlimited, with a before/after diff and a change log tracing each edit back to the gate it fixed. The readiness banner tells you when to stop revising and export.\n\u003c/WorkflowCallout\u003e\n\n## Export and clear it for distribution\n\nOnce the banner clears, export the revision along with the revised headline, meta description, and NewsArticle structured data, and hand the package to whoever sends it to the wire. Treat the readiness banner as a hard gate the same way a legal review or a final proofread already is: nothing goes out until both clear, since the citation score answers a different question than the wording review does. One checks whether AI can find and cite the release; the other checks whether the release should say what it says at all.\n\nOnce it's out, log it the same way any other placement gets logged; a coverage group tracking the wire pickup and any resulting citations tells you afterward whether the pre-distribution work actually paid off in AI answers.\n\n\u003cWorkflowCallout\n  title=\"Readiness banner and comms sign-off, both required\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Readiness banner: publish-ready\", done: true },\n      { label: \"Structured data exported\", done: true },\n      { label: \"Comms sign-off logged\", done: true },\n    ],\n  }}\n\u003e\n  Export the revised markdown or HTML, plus title, meta description, and page-appropriate JSON-LD, then clear the release for the wire only once the readiness banner and the usual comms review both say go.\n\u003c/WorkflowCallout\u003e\n\n## Score before the wire, not after\n\nThe workflow doesn't replace anything comms teams already do before a release ships. It adds one check a normal review can't run: whether the exact passage an AI assistant would need to quote is actually retrievable and relevant to the query the release is supposed to win. Pick the real fan-out, paste the embargoed draft, score it gate by gate, revise what's actually broken without touching the quotes, and export once the banner clears. The release that goes out is the one that already passed the check, not the one that finds out it failed after it's already synced across the wire.\n\nThis is the same underlying workflow any content team runs before publishing a draft, just with the wire-format constraints a press release carries; [checking a draft for AI citation before publishing](/blog/how-to-check-a-draft-for-ai-citation-before-publishing) covers the general version. Once the release is out, [connecting earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility) covers tracking whether the resulting coverage actually gets cited, and [building a PR pitch list AI can see](/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see) covers the outlets worth targeting before you even draft the next one. If a release ever needs damage control instead of amplification, [running crisis communications when AI is repeating the story](/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story) picks up from there. A free [AI Visibility Report](/ai-visibility-report) is the fastest way to see which fan-outs are worth chasing in the first place.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"7e:T3ed3,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var m=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),b=(a,e)=\u003e{for(var i in e)s(a,i,{get:e[i],enumerable:!0})},o=(a,e,i,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of f(e))!w.call(a,n)\u0026\u0026n!==i\u0026\u0026s(a,n,{get:()=\u003ee[n],enumerable:!(r=p(e,n))||r.enumerable});return a};var v=(a,e,i)=\u003e(i=a!=null?u(y(a)):{},o(e||!a||!a.__esModule?s(i,\"default\",{value:a,enumerable:!0}):i,a)),k=a=\u003eo(s({},\"__esModule\",{value:!0}),a);var h=m((q,l)=\u003e{l.exports=_jsx_runtime});var x={};b(x,{default:()=\u003eg});var t=v(h());function d(a){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...a.components},{PullQuote:i,WorkflowCallout:r}=e;return i||c(\"PullQuote\",!0),r||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To optimize a press release for AI citation before it goes out, pick a real, tracked fan-out tied to the announcement, paste the embargoed draft into Spyglasses' Citation Optimizer Source step with the page type set to press release, and run it through ChatGPT's five-gate citation pipeline: surfacing, chunking, embedding and rerank, deep-read audition, and synthesis. Fix whatever gate fails, re-score for free, and stop once the readiness banner reads publish-ready or plateaued, typically within two revision rounds and a score move from the 30s into the 70s. Only then hand the cleared release to whoever sends it to the wire service, AP News, Business Wire, PR Newswire, or GlobeNewswire, so the version that syndicates is the version that already passed the check, not the one that finds its gaps out after distribution.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A press release only gets one real shot. Once it's on the wire, it gets picked up, mirrored across syndication partners, and indexed with whatever it shipped with, quotes, dateline, and all. There's no equivalent of a website edit once that's happened. That makes the draft stage the only point where checking whether AI can actually find and cite the release still costs a revision instead of a correction nobody sends out.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Pick the fan-out\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Choosing the real query the release should win\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A tracked fan-out, not a guessed keyword\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Paste the draft\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scoring the embargoed release with no live URL\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Draft accepted, page type set to press release\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Score gate by gate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Diagnosing exactly what would fail on the wire\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A gate-by-gate score, not one number\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Revise carefully\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fixing what's broken, leaving quotes and boilerplate alone\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Readiness banner reads publish-ready\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Export and clear\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Getting sign-off from both the score and the comms team\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Release cleared on both fronts before distribution\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick the fan-out the release needs to win\"}),`\n`,(0,t.jsx)(e.p,{children:`Before scoring anything, name the query the release is actually supposed to win. A launch release drafted around \"our 
2company has news\" isn't chasing anything specific. A launch release drafted to win \"who just raised a Series B in [category]\" or \"[company] vs [competitor] funding\" is chasing something real, a question an AI assistant already runs a search for.`}),`\n`,(0,t.jsx)(e.p,{children:\"Pull that query from your property's tracked fan-outs rather than guessing. A fan-out is a search ChatGPT's own pipeline actually generated and captured in a prior AI Visibility report, so scoring against one tells you something a made-up keyword can't. If the announcement is in a category with no tracked fan-outs yet, generate discovery queries for that category first; a free-text query still scores, it's just labeled unverified until it's confirmed.\"}),`\n`,(0,t.jsx)(r,{title:\"Real fan-outs, ranking gap already flagged\",page:\"Discovery Queries\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Launch-tagged fan-outs tracked\",value:14,caption:\"6 flagged as ranking gaps\"},children:(0,t.jsx)(e.p,{children:\"Discovery Queries lists your property's real, tracked fan-outs with the highest-impact ones and your ranking gaps flagged first, so the release targets a search AI actually runs instead of a phrase that sounds right in a pitch meeting.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Paste the embargoed draft, not a link\"}),`\n`,(0,t.jsx)(e.p,{children:\"Score the release while it's still embargoed. Paste the raw draft, straight from the doc your team is circulating for approval, no live URL and no early leak required. Set the page type to press release on the way in, since that's what drives the rewrite template if the draft needs revising later; it's built around dateline, lead, quote, and boilerplate structure instead of the blog or landing-page templates.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is also the step that catches a second problem PR teams run into: if the release covers ground close enough to a page already live on the site, an overlap flag shows up before the release competes with your own existing content for the same citation.\"}),`\n`,(0,t.jsx)(r,{title:\"Press release page type, no embargo broken\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"checklist\",items:[{label:\"Draft pasted, no live URL\",done:!0},{label:\"Page type: press release\",done:!0},{label:\"No overlapping pages flagged\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Source Step 2 accepts a pasted draft with no live URL, scored exactly the way a published wire release would be. Page type press release drives the rewrite template if revisions are needed later.\"})}),`\n`,(0,t.jsx)(i,{image:\"/images/blog/how-to-optimize-a-press-release-for-ai-citation-quote.webp\",quote:\"A press release doesn't get a second draft once it's on the wire. Score it while it's still a document on your desk, not after it's someone else's correction to chase.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-optimize-a-press-release-for-ai-citation\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Score it gate by gate before it goes to the wire\"}),`\n`,(0,t.jsx)(e.p,{children:\"Run the score. The citation pipeline checks the release across five gates before anything gets quoted: surfacing (would ChatGPT's search even return this release), chunking (is the specific passage that answers the query retrievable on its own), embedding and rerank (does that passage's meaning actually match the query's meaning), deep-read audition (does the passage survive a closer read against the other candidates), and synthesis readiness (is the passage specific and quotable enough to make the final answer). A release can read as tight, on-message copy to a comms review and still fail any one of these gates, which is exactly why the stoplight view matters more than a single pass or fail.\"}),`\n`,(0,t.jsx)(e.p,{children:`Scoring is free and unlimited, so there's no reason to skip it because the release \"looks ready\" after three rounds of internal edits. A release that scores well on the first pass tells you it's actually ready, not just approved.`}),`\n`,(0,t.jsx)(r,{title:\"The same gates a live wire release would face, run before it's live\",page:\"Citation Optimizer\",href:\"/docs/methodology/citation-optimizer\",signal:{kind:\"score\",label:\"Citation pipeline score\",value:34,target:70},children:(0,t.jsx)(e.p,{children:\"Citation Optimizer scores the draft against the target fan-out using the same methods the live pipeline runs: re
2ciprocal rank fusion, chunk relevance, cosine similarity. Free and unlimited, so score the embargoed draft, not just the version about to ship.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Revise without breaking wire-service formatting\"}),`\n`,(0,t.jsx)(e.p,{children:\"Fix the gates that actually failed, not the whole release. If surfacing is the problem, the fix is usually the headline and the lead paragraph, since a passage that never surfaces never gets evaluated on anything downstream. If chunking fails but surfacing is fine, the direct answer to the target query probably needs to move higher in the release and get tighter, not longer.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Leave quotes, attribution, and the standard boilerplate alone. The rewrite works only with what the release already supports; it doesn't invent facts, statistics, or a credential that isn't already in the draft. If a proposed change touches a direct quote or the boilerplate, that's worth a second look before accepting it, since those two sections are usually the ones legal and the executive's office signed off on separately.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Gate that failed\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Usual fix\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Not the fix\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Surfacing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rework the headline and lead paragraph\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adding more keywords throughout\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Chunking\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Move the direct answer higher, tighten it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Making the release longer\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Relevance\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewrite toward the fan-out's actual meaning\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Repeating the query phrase verbatim\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Structured data / freshness\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Add or correct NewsArticle JSON-LD and the dateline\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewriting quotes or the boilerplate\"})]})]})]}),`\n`,(0,t.jsx)(r,{title:\"Free re-scoring, quotes and boilerplate untouched\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"beforeAfter\",label:\"Citation pipeline score\",before:\"34\",after:\"71\",tone:\"positive\",caption:\"two revision rounds; cleared surfacing and synthesis\"},children:(0,t.jsx)(e.p,{children:\"Every re-score is free and unlimited, with a before/after diff and a change log tracing each edit back to the gate it fixed. The readiness banner tells you when to stop revising and export.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Export and clear it for distribution\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once the banner clears, export the revision along with the revised headline, meta description, and NewsArticle structured data, and hand the package to whoever sends it to the wire. Treat the readiness banner as a hard gate the same way a legal review or a final proofread already is: nothing goes out until both clear, since the citation score answers a different question than the wording review does. One checks whether AI can find and cite the release; the other checks whether the release should say what it says at all.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once it's out, log it the same way any other placement gets logged; a coverage group tracking the wire pickup and any resulting citations tells you afterward whether the pre-distribution work actually paid off in AI answers.\"}),`\n`,(0,t.jsx)(r,{title:\"Readiness banner and comms sign-off, both required\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"checklist\",items:[{label:\"Readiness banner: publish-ready\",done:!0},{label:\"Structured data exported\",done:!0},{label:\"Comms sign-off logged\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Export the revised markdown or HTML, plus title, meta description, and page-appropriate JSON-LD, then clear the release for the wire only once the readiness banner and the usual comms review both say go.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Score before the wire, not after\"}),`\n`,(0,t.jsx)(e.p,{children:\"The workflow doesn't replace anything comms teams already do before a release ships. It adds one check a normal review can't run: whether the exact passage an AI assistant would need to quote is actually retrievable and relevant to the query the release is supposed to win. Pick the real fan-out, paste the embargoed draft, score it gate by gate, revise what's actually broken without touching the quotes, and export once the banner clears. The release that goes out is the one that already passed the check, not the one that finds out it failed after it's already synced across the wire.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This is the same underlying workflow any content team runs before publishing a draft, just with the wire-format constraints a press release carries; \",(0,t.jsx)(e.a,{href:\"/blog/how-to-check-a-draft-for-ai-citation-before-publishing\",children:\"checking a draft for AI citation before publishing\"}),\" covers the general version. Once the release is out, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"connecting earned media to AI visibility\"}),\" covers tracking whether the resulting coverage actually gets cited, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see\",children:\"building a PR pitch list AI can see\"}),\" covers the outlets worth targeting before you even draft the next one. If a release ever needs damage control instead of amplification, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story\",children:\"running crisis communications when AI is repeating the story\"}),\" picks up from there. A free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the fastest way to see which fan-outs are worth chasing in the first place.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function g(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(d,{...a})}):d(a)}function c(a,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(x);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"27:[\"$\",\"$L10\",\"how-to-optimize-a-press-release-for-ai-citation\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$7d\",\"title\":\"How to Optimize a Press Release for AI Citation Before It Goes Out\",\"date\":\"2026-08-11\",\"image\":\"/images/blog/how-to-optimize-a-press-release-for-ai-citation.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A press release gets one shot before it hits the wire. Score the draft against a real AI query while it's still a document on your desk, not after it's synced, syndicated, and indexed with whatever weaknesses it shipped with.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"AI Citation\",\"Press Release\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Does this work on an embargoed release?\",\"answer\":\"Yes. Paste the raw draft before it's public; nothing needs a live URL and nothing needs to leak early. Score it, revise it, and only then hand the cleared version to whoever sends it to the wire.\"},{\"question\":\"What's the target query for a release that isn't chasing a specific competitive term?\",\"answer\":\"Use a fan-out from the announcement's own category anyway, a funding round, a product launch, a partnership, an executive hire. If nothing's tracked yet for that category, generate discovery queries for the announcement type before you score the draft, so you're checking against something real instead of guessing.\"},{\"question\":\"Does clearing the readiness banner replace legal or comms sign-off?\",\"answer\":\"No. It answers one narrow question, whether AI can find and cite this once it's live. Legal and comms sign-off still decide whether the wording itself is a good idea to publish. Both need to happen before distribution, not one instead of the other.\"},{\"question\":\"Does the rewrite touch quotes or the boilerplate?\",\"answer\":\"It shouldn't. The optimizer won't invent facts, statistics, or credentials, and it only works with what the draft already supports, so direct quotes and the standard company boilerplate should read the same after a revision as before. If a change shows up in either one, check that gate's recommendation closely before accepting it.\"},{\"question\":\"How is this different from checking a release after it's already on the wire?\",\"answer\":\"A release on the wire has already shipped whatever it shipped with. Wire syndication doesn't support edits after the fact, so checking after publication just tells you what to fix in the next release. Checking the draft catches the same gaps while a revision is still cheap, before syndication locks the version in.\"}],\"howTo\":{\"name\":\"How to optimize a press release for AI citation before it goes out\",\"description\":\"A pre-distribution workflow for PR teams to score a press release draft against a real AI search query, revise what fails, and clear it before it hits the wire.\",\"steps\":[{\"name\":\"Pick the fan-out the release needs to win\",\"text\":\"Choose a real, tracked fan-out tied to the announcement instead of writing toward a vague topic, so the release has something specific to beat.\"},{\"name\":\"Paste the embargoed draft, not a link\",\"text\":\"Score the raw release before it's public, with the page type set to press release, so nothing needs a live URL or an early leak.\"},{\"name\":\"Score it gate by gate before it goes to the wire\",\"text\":\"Run the draft through the citation pipeline against that fan-out and see exactly which gate it would fail if it shipped today.\"},{\"name\":\"Revise without breaking wire-service formatting\",\"text\":\"Fix the gates that actually failed while leaving quotes, attribution, and the boilerplate intact, then re-score for free.\"},{\"name\":\"Export and clear it for distribution\",\"text\":\"Treat the readiness banner as a hard gate alongside legal and comms sign-off, and only hand the release to the wire once both clear.\"}]},\"_meta\":{\"filePath\":\"how-to-optimize-a-press-release-for-ai-citation.mdx\",\"fileName\":\"how-to-optimize-a-press-release-for-ai-citation.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-optimize-a-press-release-for-ai-citation\"},\"body\":\"$7e\",\"locale\":\"en\",\"path\":\"how-to-optimize-a-press-release-for-ai-citation\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"7f:T2e74,"])</script>
2<script>self.__next_f.push([1,"To launch a product with AI visibility tracked from day one, create a separate property for the product in Add Property before it ships, fill in a manual Brand Snapshot since there's no live page yet, generate category-entry-point and comparison prompts in Discovery Queries tagged to the launch, add the actual competing products in Competitors, and start a nightly Project with the launch date marked by an Annotation. Do this before the public launch, not after, so the first AI answers about the product land inside a tracked project instead of going unmeasured for the first few weeks.\n\nMost product launches track everything: email opens, paid clicks, press pickup, search rankings. AI visibility usually isn't on that list, because there's nothing to measure until the product exists. That's backwards. The setup work, the property, the prompts, the competitors, can all happen before launch day, which means the day the product goes live is also the day the tracking starts, not the day someone remembers to set it up.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Give it its own property | Separating the product from the parent brand's history | A blank property, not a shared one |\n| 2. Fill in the snapshot | Describing the product manually, pre-launch | Features, pricing, differentiators entered |\n| 3. Generate the prompts | Building the queries buyers will actually type | Prompts tagged to the launch |\n| 4. Add competitors | Listing the products it'll actually compete against | The real comparison set, not the brand's usual one |\n| 5. Start a nightly project | Turning prompts into a running, annotated project | Nightly runs live; launch date annotated |\n| 6. Watch pickup | Checking recrawl and reading early results correctly | Zeros explained by indexing, not ignored |\n\n## Give the product its own property\n\nA property is what Spyglasses tracks: one property per brand, one set of prompts, one competitor list, one visibility history. If the new product gets folded into the parent brand's existing property, its numbers get averaged in with years of the parent brand's AI visibility, and you can't pull the product's own trend back out later.\n\nCreate a new property for the product instead. Pick \"Enter manually\" during setup rather than pointing at a live URL, since a pre-launch product usually doesn't have one yet, or has one nobody's supposed to find. A manual property starts with a blank snapshot, which is exactly what a pre-launch product should have: nothing assumed, nothing carried over.\n\n\u003cWorkflowCallout\n  title=\"A blank property, ready before the product's first public page\"\n  page=\"Properties\"\n  href=\"/docs/getting-started/overview\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Property created\", done: true },\n      { label: \"Enter manually selected\", done: true },\n      { label: \"Blank snapshot confirmed\", done: true },\n    ],\n  }}\n\u003e\n  Add Property supports a manual entry path built for exactly this: a product that doesn't have a live URL yet, or one that isn't meant to be found before launch day.\n\u003c/WorkflowCallout\u003e\n\n## Fill in the snapshot before there's anything to crawl\n\nWith no live page to read, Spyglasses can't auto-fill a brand snapshot the way it would for an existing site. That's fine. Enter it manually: the features, the pricing, the differentiators, and the specific problems the product solves. This is the same information a sales deck or a launch brief already has; it just needs to live in the snapshot too, since that's what shapes the prompts generated in the next step.\n\nTreat the snapshot as a draft that gets revised once real pages exist. The manual version doesn't need to be final copy. It needs to be accurate enough that the prompts and comparisons built from it actually reflect the product.\n\n\u003cWorkflowCallout\n  title=\"Manual snapshot fields, filled before the first crawl\"\n  page=\"Brand Snapshot\"\n  href=\"/docs/dashboards/brand-snapshot\"\n  signal={{\n    kind: \"score\",\n    label: \"Snapshot completeness\",\n    value: 82,\n    target: 100,\n  }}\n\u003e\n  Brand Snapshot accepts manual entry for properties with no live page yet: features, pricing, differentiators, and problems solved, the same fields it would otherwise pull from a crawl.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-launch-a-product-with-ai-visibility-from-day-one-quote.webp\"\n  quote=\"Pre-launch, AI has nothing to say about a product that doesn't exist yet. Zeros are correct then. The work is making sure they stop being correct on schedule.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-launch-a-product-with-ai-visibility-from-day-one\"\n/\u003e\n\n## Generate the prompts AI will actually ask\n\nOnce the snapshot is filled in, generate two kinds of prompts: category-entry-point prompts, the way a buyer would ask about the category before they know a specific product name, and comparison prompts, where the new product gets set against the alternatives a buyer would actually be weighing. Tag all of them with the launch so they're easy to isolate later, separate from any prompts already tracked for the parent brand or other products.\n\nPick prompts a real buyer would type, not ones written to flatter the product. \"Best project management tool for a 10-person team\" tells you something useful. \"Why is [product name] the best choice\" doesn't, be
2cause nobody searches that way before they've heard of the product.\n\n\u003cWorkflowCallout\n  title=\"Category and comparison prompts, tagged to the launch\"\n  page=\"Discovery Queries\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Launch-tagged prompts generated\",\n    value: 24,\n    caption: \"category entry point + comparison queries\",\n  }}\n\u003e\n  Discovery Queries generates category-entry-point and comparison prompts from the brand snapshot, and lets you tag a batch to a launch so they stay grouped and easy to report on separately.\n\u003c/WorkflowCallout\u003e\n\n## Add the competing products as competitors\n\nThe parent brand's usual competitor set almost never matches the new product's. A company entering a new product category is up against different names than the ones it competes with everywhere else. List the products that will actually show up next to this one in AI comparison answers, not the brand's default rivals.\n\nThis list feeds the comparison prompts from the previous step and the share-of-voice numbers later, so getting it right matters more here than it would for a routine competitor review. A short, accurate list beats a long, generic one.\n\n\u003cWorkflowCallout\n  title=\"The real comparison set, not the brand's usual one\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Competing products added\", done: true },\n      { label: \"Comparison prompts linked\", done: true },\n      { label: \"Coverage matrix ready\", done: true },\n    ],\n  }}\n\u003e\n  Competitors tracks products, not just parent brands, so a launch can carry its own comparison set separate from whatever the parent brand competes against elsewhere.\n\u003c/WorkflowCallout\u003e\n\n## Start a project that runs nightly from day one\n\nTurn the tagged prompts into a project and set it running nightly starting on the launch date. This is what turns a one-time snapshot into a trend: the same prompts run every night, so the visibility curve after launch is built from consistent data instead of whenever someone happens to check.\n\nAnnotate the launch date on the project the moment it goes live, and add another annotation for each coverage wave afterward, a press hit, a newsletter mention, a paid push. Those annotations are what let you look at a jump in the visibility curve three weeks later and know exactly what caused it.\n\n\u003cWorkflowCallout\n  title=\"Nightly runs from launch day, with the date marked on the chart\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Project created from launch-tagged prompts\", done: true },\n      { label: \"Nightly cadence set\", done: true },\n      { label: \"Launch date annotated\", done: true },\n    ],\n  }}\n\u003e\n  A new project runs the tagged prompt set nightly starting whatever date you set, and annotations pin specific events, the launch, a press wave, a paid push, directly onto the resulting chart.\n\u003c/WorkflowCallout\u003e\n\n## Watch pickup, and read the zeros correctly\n\nFor the first stretch after launch, expect zeros. AI models can only cite pages they've actually read, and a brand-new page usually hasn't been recrawled yet, let alone indexed deeply enough to show up in an answer. A zero mention count on day two isn't a failed launch. It's a page that hasn't been fetched yet.\n\nCheck recrawl status on the launch pages specifically, not just the site generally, since a slow-moving page can sit unindexed for longer than the rest of the site. Once recrawl confirms the pages have been fetched, watch the rankings for the launch-tagged prompts and the share-of-voice numbers for the product start moving off zero. That's the signal the launch is actually landing in AI answers, not just in the press.\n\n| Signal | What a zero means before recrawl | When it's worth investigating |\n| :--- | :--- | :--- |\n| Mentions | Expected; nothing's been read yet | Still zero a week after recrawl confirms indexing |\n| Rankings for launch prompts | Expected; no page to rank | Competitors rank but the product doesn't, post-recrawl |\n| Share of voice | Expected; nothing to attribute | Flat for two+ coverage waves after annotation |\n\n\u003cWorkflowCallout\n  title=\"From zero to first mentions, once recrawl catches up\"\n  page=\"AI Visibility Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Launch-tagged prompt mentions\",\n    before: \"0\",\n    after: \"11\",\n    tone: \"positive\",\n    caption: \"week 1 vs. week 3; recrawl confirmed on day 6\",\n  }}\n\u003e\n  AI Visibility Rankings shows where the product ranks for each launch-tagged prompt against the competitor list, and Recrawl confirms whether the launch pages have actually been fetched yet, so a zero is either explained or worth chasing.\n\u003c/WorkflowCallout\u003e\n\n## Track it the same way going forward\n\nNone of this is a one-time setup. The property, the prompts, and the project stay in place after launch week the same way they'd stay in place for any other tracked brand: nightly runs, new annotations for each coverage wave, and rankings checked against the competitor set as it evolves. The only thing specific to launch is doing the setup before the product exists instead of after, so the first data point isn't also the first time anyone looked.\n\nIf the parent brand doesn't already have its own baseline, [baselining its AI visibility](/blog/how-to-baseline-your-brands-ai-visibility) is worth doing alongside this, since a new product's numbers read differently next to a brand that's already being tracked. Once the launch project is running, [tracking AI visibility over time](/blog/how-to-track-ai-visibility-over-time) covers how to read the ongoing trend, and [measuring AI as a marketing channel](/blog/how-to-measure-ai-as-a-marketing-channel) covers connecting those mentions to actual traffic. Before any of that, a free [AI Visibility Report](/ai-visibility-report) is a fast way to check where the parent brand stands today, and an [AI Readiness Audit](/ai-readiness-audit) on the launch pages themselves catches indexing issues before recrawl ever gets a chance to matter.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"80:T3f06,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var b=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var a in e)o(n,a,{get:e[a],enumerable:!0})},s=(n,e,a,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let i of y(e))!m.call(n,i)\u0026\u0026i!==a\u0026\u0026o(n,i,{get:()=\u003ee[i],enumerable:!(r=g(e,i))||r.enumerable});return n};var v=(n,e,a)=\u003e(a=n!=null?u(f(n)):{},s(e||!n||!n.__esModule?o(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003es(o({},\"__esModule\",{value:!0}),n);var h=b((j,l)=\u003e{l.exports=_jsx_runtime});var x={};w(x,{default:()=\u003ep});var t=v(h());function d(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:r}=e;return a||c(\"PullQuote\",!0),r||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To launch a product with AI visibility tracked from day one, create a separate property for the product in Add Property before it ships, fill in a manual Brand Snapshot since there's no live page yet, generate category-entry-point and comparison prompts in Discovery Queries tagged to the launch, add the actual competing products in Competitors, and start a nightly Project with the launch date marked by an Annotation. Do this before the public launch, not after, so the first AI answers about the product land inside a tracked project instead of going unmeasured for the first few weeks.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most product launches track everything: email opens, paid clicks, press pickup, search rankings. AI visibility usually isn't on that list, because there's nothing to measure until the product exists. That's backwards. The setup work, the property, the prompts, the competitors, can all happen before launch day, which means the day the product goes live is also the day the tracking starts, not the day someone remembers to set it up.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Give it its own property\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Separating the product from the parent brand's history\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A blank property, not a shared one\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Fill in the snapshot\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Describing the product manually, pre-launch\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Features, pricing, differentiators entered\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Generate the prompts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Building the queries buyers will actually type\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Prompts tagged to the launch\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Add competitors\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Listing the products it'll actually compete against\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The real comparison set, not the brand's usual one\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Start a nightly project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Turning prompts into a running, annotated project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Nightly runs live; launch date annotated\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Watch pickup\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking recrawl and reading early results correctly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Zeros explained by indexing, not ignored\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Give the product its own property\"}),`\n`,(0,t.jsx)(e.p,{children:\"A property is what Spyglasses tracks: one property per brand, one set of prompts, one competitor list, one visibility history. If the new product gets folded into the parent brand's existing property, its numbers get averaged in with years of the parent brand's AI visibility, and you can't pull the product's own trend back out later.\"}),`\n`,(0,t.jsx)(e.p,{children:`Create a new property for the product instead. Pick \"Enter manually\" during setup rather than pointing at a live URL, since a pre-launch product usually doesn't have one yet, or has one nobody's supposed to find. A manual property starts with a blank snapshot, which is exactly what a pre-launch product should have: nothing assumed, nothing carried over.`}),`\n`,(0,t.jsx)(r,{title:\"A blank property, ready before the product's first public page\",page:\"Properties\",href:\"/docs/getting-started/overview\",signal:{kind:\"checklist\",items:[{label:\"Property created\",done:!0},{label:\"Enter manually selected\",done:!0},{label:\"Blank snapshot confirmed\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Add Property supports a manual entry path built for exactly this: a product that doesn't have a live URL yet, or one that isn't meant to be found before launch day.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Fill in the snapshot before there's anything to crawl\"}),`\n`,(0,t.jsx)(e.p,{children:\"With no live page to read, Spyglasses can't auto-fill a brand snapshot the way it would for an existing site. That's fine. Enter it manually: the features, the pricing, the differentiators, and the specific problems the product solves. This is the same information a sales deck or a launch brief already has; it just needs to live in the snapshot too, since that's what shapes the prompts generated in the next step.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Treat the snapshot as a draft that gets revised once real pages exist. The manual version doesn't need to be final copy. It needs to be accurate enough that the prompts and comparisons built from it actually reflect the product.\"}),`\n`,(0,t.jsx)(r,{title:\"Manual snapshot fields, filled before the first crawl\",page:\"Brand Snapshot\",href:\"/docs/dashboards/brand-snapshot\",signal:{kind:\"score\",label:\"Snapshot completeness\",value:82,target:100},children:(0,t.jsx)(e.p,{children:\"Brand Snapshot accepts manual entry for properties with no live page yet: features, pricing, differentiators, and problems solved, the same fields it would otherwise pull from a crawl.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-launch-a-product-with-ai-visibility-from-day-one-quote.webp\",quote:\"Pre-launch, AI has nothing to say about a product that doesn't exist yet. Zeros are correct then. The work is making sure they stop being correct on schedule.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-launch-a-product-with-ai-visibility-from-day-one\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Generate the prompts AI will actually ask\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once the snapshot is filled in, generate two kinds of prompts: category-entry-point prompts, the way a buyer would ask about the category before they know a specific product name, and comparison prompts, where the new product gets set against the alternatives a buyer would actually be weighing. Tag all of them with the launch so they're easy to isolate later, separate from any prompts already tracked for the parent brand or other products.\"}),`\n`,(0,t.jsx)(e.p,{children:`Pick prompts a real buyer would type, not ones written to flatter the product. \"Best project management tool for a 10-person team\" tells you something useful. \"Why is [product name] the best choice\" doesn't, be
2cause nobody searches that way before they've heard of the product.`}),`\n`,(0,t.jsx)(r,{title:\"Category and comparison prompts, tagged to the launch\",page:\"Discovery Queries\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Launch-tagged prompts generated\",value:24,caption:\"category entry point + comparison queries\"},children:(0,t.jsx)(e.p,{children:\"Discovery Queries generates category-entry-point and comparison prompts from the brand snapshot, and lets you tag a batch to a launch so they stay grouped and easy to report on separately.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Add the competing products as competitors\"}),`\n`,(0,t.jsx)(e.p,{children:\"The parent brand's usual competitor set almost never matches the new product's. A company entering a new product category is up against different names than the ones it competes with everywhere else. List the products that will actually show up next to this one in AI comparison answers, not the brand's default rivals.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This list feeds the comparison prompts from the previous step and the share-of-voice numbers later, so getting it right matters more here than it would for a routine competitor review. A short, accurate list beats a long, generic one.\"}),`\n`,(0,t.jsx)(r,{title:\"The real comparison set, not the brand's usual one\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"checklist\",items:[{label:\"Competing products added\",done:!0},{label:\"Comparison prompts linked\",done:!0},{label:\"Coverage matrix ready\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Competitors tracks products, not just parent brands, so a launch can carry its own comparison set separate from whatever the parent brand competes against elsewhere.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start a project that runs nightly from day one\"}),`\n`,(0,t.jsx)(e.p,{children:\"Turn the tagged prompts into a project and set it running nightly starting on the launch date. This is what turns a one-time snapshot into a trend: the same prompts run every night, so the visibility curve after launch is built from consistent data instead of whenever someone happens to check.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Annotate the launch date on the project the moment it goes live, and add another annotation for each coverage wave afterward, a press hit, a newsletter mention, a paid push. Those annotations are what let you look at a jump in the visibility curve three weeks later and know exactly what caused it.\"}),`\n`,(0,t.jsx)(r,{title:\"Nightly runs from launch day, with the date marked on the chart\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Project created from launch-tagged prompts\",done:!0},{label:\"Nightly cadence set\",done:!0},{label:\"Launch date annotated\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"A new project runs the tagged prompt set nightly starting whatever date you set, and annotations pin specific events, the launch, a press wave, a paid push, directly onto the resulting chart.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch pickup, and read the zeros correctly\"}),`\n`,(0,t.jsx)(e.p,{children:\"For the first stretch after launch, expect zeros. AI models can only cite pages they've actually read, and a brand-new page usually hasn't been recrawled yet, let alone indexed deeply enough to show up in an answer. A zero mention count on day two isn't a failed launch. It's a page that hasn't been fetched yet.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Check recrawl status on the launch pages specifically, not just the site generally, since a slow-moving page can sit unindexed for longer than the rest of the site. Once recrawl confirms the pages have been fetched, watch the rankings for the launch-tagged prompts and the share-of-voice numbers for the product start moving off zero. That's the signal the launch is actually landing in AI answers, not just in the press.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Signal\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What a zero means before recrawl\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"When it's worth investigating\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Mentions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Expected; nothing's been read yet\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Still zero a week after recrawl confirms indexing\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rankings for launch prompts\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Expected; no page to rank\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Competitors rank but the product doesn't, post-recrawl\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Share of voice\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Expected; nothing to attribute\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Flat for two+ coverage waves after annotation\"})]})]})]}),`\n`,(0,t.jsx)(r,{title:\"From zero to first mentions, once recrawl catches up\",page:\"AI Visibility Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"beforeAfter\",label:\"Launch-tagged prompt mentions\",before:\"0\",after:\"11\",tone:\"positive\",caption:\"week 1 vs. week 3; recrawl confirmed on day 6\"},children:(0,t.jsx)(e.p,{children:\"AI Visibility Rankings shows where the product ranks for each launch-tagged prompt against the competitor list, and Recrawl confirms whether the launch pages have actually been fetched yet, so a zero is either explained or worth chasing.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Track it the same way going forward\"}),`\n`,(0,t.jsx)(e.p,{children:\"None of this is a one-time setup. The property, the prompts, and the project stay in place after launch week the same way they'd stay in place for any other tracked brand: nightly runs, new annotations for each coverage wave, and rankings checked against the competitor set as it evolves. The only thing specific to launch is doing the setup before the product exists instead of after, so the first data point isn't also the first time anyone looked.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If the parent brand doesn't already have its own baseline, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining its AI visibility\"}),\" is worth doing alongside this, since a new product's numbers read differently next to a brand that's already being tracked. Once the launch project is running, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"tracking AI visibility over time\"}),\" covers how to read the ongoing trend, and \",(0,t.jsx)(e.a,{href:\"/blog/how-to-measure-ai-as-a-marketing-channel\",children:\"measuring AI as a marketing channel\"}),\" covers connecting those mentions to actual traffic. Before any of that, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is a fast way to check where the parent brand stands today, and an \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Audit\"}),\" on the launch pages themselves catches indexing issues before recrawl ever gets a chance to matter.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(x);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"28:[\"$\",\"$L10\",\"how-to-launch-a-product-with-ai-visibility-from-day-one\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$7f\",\"title\":\"How to Launch a Product With AI Visibility From Day One\",\"date\":\"2026-08-10\",\"image\":\"/images/blog/how-to-launch-a-product-with-ai-visibility-from-day-one.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A new product has no AI visibility history to compare against, so most teams wait until after launch to start tracking it. Set up the property, the prompts, and the competitors before launch day, and the first weeks of AI answers become measurable instead of anecdotal.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"Product Launch\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Should a new product get its own property, or live under the parent brand's?\",\"answer\":\"Give it its own property if the product has its own name, its own pages, and its own competitors. A shared property mixes the parent brand's existing AI visibility with the new product's, and you lose the ability to see the product's numbers on their own. A separate property also gives the launch a clean day-one baseline instead of one already muddied by years of brand history.\"},{\"question\":\"What if AI shows zero mentions for weeks after launch?\",\"answer\":\"That's expected, not broken. AI models can only mention what they've read, and most haven't recrawled or indexed a brand-new page yet. Zero before there's indexed content and zero after don't mean the same thing. Confirm the launch pages have actually been recrawled before treating a zero as a problem worth fixing.\"},{\"question\":\"When should the prompts and competitors get set up, before or after the public launch date?\",\"answer\":\"Before. Set up the property, the prompt set, and the competitor list while the product is still under wraps if you can. That way the very first data point AI produces after launch is already inside a tracked project, instead of the first few weeks passing before anyone starts watching.\"},{\"question\":\"Does this replace the standard product-marketing launch checklist?\",\"answer\":\"No. It runs next to it. A launch checklist covers positioning, pricing pages, sales enablement, and press. This workflow covers one channel inside that checklist, AI search, the same way a paid media plan or an SEO plan would get its own line item.\"},{\"question\":\"How is annotating the launch different from just noting the date on a calendar?\",\"answer\":\"An annotation lives on the same chart as the visibility data, so anyone looking at the mentions or share-of-voice trend later sees the launch date marked right where the curve starts moving. A calendar note doesn't travel with the chart, so the connection between the date and the result gets lost the first time someone looks at the data without also pulling up the calendar.\"}],\"howTo\":{\"name\":\"How to launch a product with AI visibility from day one\",\"description\":\"A pre-launch workflow for in-house marketing teams to set up AI visibility tracking for a new product before it ships, so the first weeks of AI answers are measurable instead of anecdotal.\",\"steps\":[{\"name\":\"Give the product its own property\",\"text\":\"Create a separate property for the product instead of folding it into the parent brand's, so its AI visibility numbers stay isolated from day one.\"},{\"name\":\"Fill in the snapshot before there's anything to crawl\",\"text\":\"Enter the product's features, pricing, differentiators, and the problems it solves manually, since there's no live page yet for Spyglasses to read.\"},{\"name\":\"Generate the prompts AI will actually ask\",\"text\":\"Build the category-entry-point and comparison prompts a buyer would type once the product exists, and tag them to the launch.\"},{\"name\":\"Add the competing products as competitors\",\"text\":\"List the products this one will actually be compared against in AI answers, not the parent brand's usual competitor set.\"},{\"name\":\"Start a project that runs nightly from day one\",\"text\":\"Turn the tracked prompts into a project running every night starting at launch, and annotate the launch date and each coverage wave that follows.\"},{\"name\":\"Watch pickup, and read the zeros correctly\",\"text\":\"Check recrawl status on the launch pages and watch rankings and share of voice move from zero, treating early zeros as expected instead of alarming.\"}]},\"_meta\":{\"filePath\":\"how-to-launch-a-product-with-ai-visibility-from-day-one.mdx\",\"fileName\":\"how-to-launch-a-product-with-ai-visibility-from-day-one.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-launch-a-product-with-ai-visibility-from-day-one\"},\"body\":\"$80\",\"locale\":\"en\",\"path\":\"how-to-launch-a-product-with-ai-visibility-from-day-one\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"81:T28f0,"])</script>
2<script>self.__next_f.push([1,"To check a draft for AI citation before publishing, pick the exact query the piece needs to win, paste the raw draft into Citation Optimizer's Source step with no live URL required, and run it through ChatGPT's five-gate citation pipeline: surfacing, chunking, embedding and rerank, deep-read audition, and synthesis. Fix whatever gate fails, re-score for free, and stop once the readiness banner reads publish-ready or plateaued, usually within one or two revision rounds. Publish only after that, so the draft passes the same check a live page would eventually need to pass, before a reader or a crawler ever sees it.\n\nMost editorial checklists catch what a human eye catches: typos, broken links, a claim that isn't sourced. None of that tells you whether an AI assistant would actually retrieve and cite the passage you're proudest of. A draft can read beautifully and still fail the parts of the pipeline that decide whether it gets surfaced at all. Catching that before publish is cheaper than catching it after, in the same way a spelling check before you hit send is cheaper than a correction after.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Pick the query | Choosing the exact search the draft should win | A specific target query, not a vague topic |\n| 2. Paste the draft | Scoring raw content with no live URL | The draft accepted and matched to a page type |\n| 3. Score gate by gate | Diagnosing exactly what would fail if it went live | A gate-by-gate score, not one number |\n| 4. Revise until ready | Fixing what's actually broken | Readiness banner reads publish-ready |\n| 5. Publish cleared | Shipping a draft that already passed the check | Live page, gate already cleared |\n\n## Pick the query the draft should win\n\nBefore a single word gets scored, name the target. A blog post drafted around \"how AI citation works\" is too broad to score against; a blog post drafted to win \"what makes a page citable by ChatGPT\" is a real target. If the piece already came out of a content brief, the target query is usually already written down somewhere in that brief. If it didn't, that's worth settling before you touch the scoring tool at all, since a score against nothing specific isn't measuring anything.\n\nPrefer a query that's already been observed rather than one you're guessing at. A tracked fan-out, a real search an AI assistant has actually run, is stronger evidence than a keyword you assume matters. A free-text query still scores, it's just an informed guess until it shows up as a tracked fan-out later.\n\n\u003cWorkflowCallout\n  title=\"Tracked fan-outs come with a ranking gap already flagged\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"count\",\n    label: \"Query impact score\",\n    value: 76,\n    caption: \"what makes a page citable by chatgpt · you: unranked · competitor: #1\",\n  }}\n\u003e\n  Citation Optimizer's first step lists your property's real, tracked fan-out queries with ranking gaps flagged, so the draft targets a search AI actually runs instead of a phrase you're hoping matters. A free-text query works too, clearly labeled unverified.\n\u003c/WorkflowCallout\u003e\n\n## Paste the draft, not a URL\n\nThis is the step that makes a pre-publish check possible instead of a post-mortem. The source doesn't have to be a live page. Paste the raw markdown or plain text of the draft itself, straight from your editor or CMS, and it scores exactly the same way a published URL would. Nothing needs to be online yet.\n\nPick a page type on the way in, blog post, landing page, guide, or press release, since the type drives the rewrite template if the draft needs revising later. This is also where a content team catches a second, quieter problem: if the draft covers a topic close enough to something already live on the site, an overlap flag shows up before you invest in a piece that'll end up competing with your own existing page for the same citation.\n\n\u003cWorkflowCallout\n  title=\"Raw markdown in, no live URL required\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Draft pasted, page type: blog post\", done: true },\n      { label: \"No overlapping pages flagged\", done: true },\n      { label: \"Matched to target query\", done: true },\n    ],\n  }}\n\u003e\n  Source Step 2 accepts a pasted draft with no live URL, scored the same way as an existing page or a competitor's placement. Pick a page type so the rewrite template later matches the format you're actually writing.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-check-a-draft-for-ai-citation-before-publishing-quote.webp\"\n  quote=\"Catching a citation gap before publish costs a revision. Catching it after costs a recrawl, a re-index, and a few weeks of pretending the page is working.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-check-a-draft-for-ai-citation-before-publishing\"\n/\u003e\n\n## Score it gate by gate\n\nRun the score. The citation pipeline checks a page across five distinct gates before anything gets quoted: surfacing (would ChatGPT's search even return this page), chunking (is the specific passage that answers the query retrievable on its own), embedding and rerank (does that passage's meaning actually match the query's meaning), deep-read audition (does the passage survive ChatGPT's closer read of the top candidates), and synthesis readiness (is the passage specific and quotable enough to make it into the final answer). A draft can fail any single one of these and still look complete to an editor reading it top to bottom, which is exactly why the gate-by-gate view matters more than a pass/fail verdict.\n\nScoring is free, so there's no reason to skip it just because the piece \"looks ready.\" A draft that scores well on the first pass tells you the piece is actually ready, not just readable.\n\n\u003cWorkflowCallout\n  title=\"The same gates a live page would face, run before it's live\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/methodology/citation-optimizer\"\n  signal={{\n    kind: \"score\",\n    label: \"Citation pipeline score\",\n    value: 39,\n    target: 70,\n  }}\n\u003e\n  Citation Optimizer scores a draft against the target query using the same methods the live pipeline runs: re
2ciprocal rank fusion, chunk relevance, cosine similarity. Free and unlimited, so score early drafts too, not just the one you think is final.\n\u003c/WorkflowCallout\u003e\n\n## Revise until the readiness banner clears\n\nFix the gates that actually failed, not the whole draft. If the surfacing gate is the problem, the fix is usually a heading and framing change near the top, since a passage that never surfaces never gets evaluated on anything downstream. If surfacing is fine but the chunking gate fails, the direct answer to the target query probably needs to move higher and get tighter, not get longer. Leave everything else alone; a gate that already passes doesn't need touching.\n\nRe-score after each revision round. Two rounds is typical. If the score is still well under target after that, the gap is usually structural, wrong page type, wrong query, or a topic the draft never really covers, not something a third small edit will fix. The readiness banner exists so you don't have to guess when to stop: publish-ready or plateaued both mean stop, since further revision rarely moves the number from there.\n\n| Gate that failed | Usual fix | Not the fix |\n| :--- | :--- | :--- |\n| Surfacing | Rework the heading and opening framing | Adding more keywords throughout |\n| Chunking | Move the direct answer higher, tighten it | Making the section longer |\n| Relevance | Rewrite toward the query's actual meaning | Repeating the query phrase verbatim |\n| Structured data / freshness | Add or correct JSON-LD and date signals | Rewriting body content |\n\n\u003cWorkflowCallout\n  title=\"Free re-scoring turns a guess into a loop\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Citation pipeline score\",\n    before: \"39\",\n    after: \"73\",\n    tone: \"positive\",\n    caption: \"two revision rounds; cleared surfacing and chunking\",\n  }}\n\u003e\n  Every re-score is free and unlimited, with a before/after diff and a change log tracing each edit back to the gate it fixed. The readiness banner tells you when to stop revising and export.\n\u003c/WorkflowCallout\u003e\n\n## Publish with the gate already cleared\n\nOnce the banner clears, export the revision, markdown or HTML, plus the revised title, meta description, and structured data together, and publish through your CMS as usual. Nothing about the publishing step itself changes. What's different is what you know going in: the draft already passed the check a live page would eventually have to pass, instead of finding that out weeks later when the rank never moves and nobody can say why.\n\nFor a piece that's especially high stakes, a press release or a launch page, treat the pre-publish score as a hard gate the same way a legal review or a final proofread would be: nothing ships until it clears.\n\n## Move the check earlier, not just add another one\n\nThe workflow isn't really a new step. It's an old step, the pre-publish review, done against a pipeline that a human editor can't evaluate by reading. Pick the query the draft is supposed to win, paste it in before it's live, score it gate by gate, revise what's actually broken, and publish once the banner clears. The cost of catching a citation gap goes down the earlier you catch it, and pasting a draft is about as early as it gets.\n\nIf you're checking content that's already live instead of still in draft, [optimizing existing content for AI citation](/blog/how-to-optimize-existing-content-for-ai-citation) covers that version of the same process. And if the piece was written to chase a specific search rather than reviewed after the fact, [winning a target AI grounding search](/blog/how-to-win-a-target-ai-grounding-search) starts from the query instead of the draft. Either way, a free [AI Visibility Report](/ai-visibility-report) is the fastest way to find out which queries are worth targeting in the first place.\n\n**Part of the Spyglasses workflow series.** This guide is one of five workflows for content teams. The rest are collected in the [AI visibility guides for content teams](/guides/ai-visibility-for-content-teams)."])</script>
2<script>self.__next_f.push([1,"82:T3959,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var b=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),m=(a,e)=\u003e{for(var i in e)s(a,i,{get:e[i],enumerable:!0})},o=(a,e,i,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of f(e))!w.call(a,n)\u0026\u0026n!==i\u0026\u0026s(a,n,{get:()=\u003ee[n],enumerable:!(r=p(e,n))||r.enumerable});return a};var v=(a,e,i)=\u003e(i=a!=null?u(y(a)):{},o(e||!a||!a.__esModule?s(i,\"default\",{value:a,enumerable:!0}):i,a)),k=a=\u003eo(s({},\"__esModule\",{value:!0}),a);var h=b((q,l)=\u003e{l.exports=_jsx_runtime});var x={};m(x,{default:()=\u003eg});var t=v(h());function d(a){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...a.components},{PullQuote:i,WorkflowCallout:r}=e;return i||c(\"PullQuote\",!0),r||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To check a draft for AI citation before publishing, pick the exact query the piece needs to win, paste the raw draft into Citation Optimizer's Source step with 
2no live URL required, and run it through ChatGPT's five-gate citation pipeline: surfacing, chunking, embedding and rerank, deep-read audition, and synthesis. Fix whatever gate fails, re-score for free, and stop once the readiness banner reads publish-ready or plateaued, usually within one or two revision rounds. Publish only after that, so the draft passes the same check a live page would eventually need to pass, before a reader or a crawler ever sees it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most editorial checklists catch what a human eye catches: typos, broken links, a claim that isn't sourced. None of that tells you whether an AI assistant would actually retrieve and cite the passage you're proudest of. A draft can read beautifully and still fail the parts of the pipeline that decide whether it gets surfaced at all. Catching that before publish is cheaper than catching it after, in the same way a spelling check before you hit send is cheaper than a correction after.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Pick the query\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Choosing the exact search the draft should win\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A specific target query, not a vague topic\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Paste the draft\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scoring raw content with no live URL\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"The draft accepted and matched to a page type\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Score gate by gate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Diagnosing exactly what would fail if it went live\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A gate-by-gate score, not one number\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Revise until ready\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fixing what's actually broken\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Readiness banner reads publish-ready\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Publish cleared\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Shipping a draft that already passed the check\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Live page, gate already cleared\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick the query the draft should win\"}),`\n`,(0,t.jsx)(e.p,{children:`Before a single word gets scored, name the target. A blog post drafted around \"how AI citation works\" is too broad to score against; a blog post drafted to win \"what makes a page citable by ChatGPT\" is a real target. If the piece already came out of a content brief, the target query is usually already written down somewhere in that brief. If it didn't, that's worth settling before you touch the scoring tool at all, since a score against nothing specific isn't measuring anything.`}),`\n`,(0,t.jsx)(e.p,{children:\"Prefer a query that's already been observed rather than one you're guessing at. A tracked fan-out, a real search an AI assistant has actually run, is stronger evidence than a keyword you assume matters. A free-text query still scores, it's just an informed guess until it shows up as a tracked fan-out later.\"}),`\n`,(0,t.jsx)(r,{title:\"Tracked fan-outs come with a ranking gap already flagged\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"count\",label:\"Query impact score\",value:76,caption:\"what makes a page citable by chatgpt \\xB7 you: unranked \\xB7 competitor: #1\"},children:(0,t.jsx)(e.p,{children:\"Citation Optimizer's first step lists your property's real, tracked fan-out queries with ranking gaps flagged, so the draft targets a search AI actually runs 
2instead of a phrase you're hoping matters. A free-text query works too, clearly labeled unverified.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Paste the draft, not a URL\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is the step that makes a pre-publish check possible instead of a post-mortem. The source doesn't have to be a live page. Paste the raw markdown or plain text of the draft itself, straight from your editor or CMS, and it scores exactly the same way a published URL would. Nothing needs to be online yet.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Pick a page type on the way in, blog post, landing page, guide, or press release, since the type drives the rewrite template if the draft needs revising later. This is also where a content team catches a second, quieter problem: if the draft covers a topic close enough to something already live on the site, an overlap flag shows up before you invest in a piece that'll end up competing with your own existing page for the same citation.\"}),`\n`,(0,t.jsx)(r,{title:\"Raw markdown in, no live URL required\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"checklist\",items:[{label:\"Draft pasted, page type: blog post\",done:!0},{label:\"No overlapping pages flagged\",done:!0},{label:\"Matched to target query\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Source Step 2 accepts a pasted draft with no live URL, scored the same way as an existing page or a competitor's placement. Pick a page type so the rewrite template later matches the format you're actually writing.\"})}),`\n`,(0,t.jsx)(i,{image:\"/images/blog/how-to-check-a-draft-for-ai-citation-before-publishing-quote.webp\",quote:\"Catching a citation gap before publish costs a revision. Catching it after costs a recrawl, a re-index, and a few weeks of pretending the page is working.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-check-a-draft-for-ai-citation-before-publishing\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Score it gate by gate\"}),`\n`,(0,t.jsx)(e.p,{children:\"Run the score. The citation pipeline checks a page across five distinct gates before anything gets quoted: surfacing (would ChatGPT's search even return this page), chunking (is the specific passage that answers the query retrievable on its own), embedding and rerank (does that passage's meaning actually match the query's meaning), deep-read audition (does the passage survive ChatGPT's closer read of the top candidates), and synthesis readiness (is the passage specific and quotable enough to make it into the final answer). A draft can fail any single one of these and still look complete to an editor reading it top to bottom, which is exactly why the gate-by-gate view matters more than a pass/fail verdict.\"}),`\n`,(0,t.jsx)(e.p,{children:`Scoring is free, so there's no reason to skip it just because the piece \"looks ready.\" A draft that scores well on the first pass tells you the piece is actually ready, not just readable.`}),`\n`,(0,t.jsx)(r,{title:\"The same gates a live page would face, run before it's live\",page:\"Citation Optimizer\",href:\"/docs/methodology/citation-optimizer\",signal:{kind:\"score\",label:\"Citation pipeline score\",value:39,target:70},children:(0,t.jsx)(e.p,{children:\"Citation Optimizer scores a draft against the target query using the same methods the live pipeline runs: reciprocal rank fusion, chunk relevance, cosine similarity. Free and unlimited, so score early drafts too, not just the one you think is final.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Revise until the readiness banner clears\"}),`\n`,(0,t.jsx)(e.p,{children:\"Fix the gates that actually failed, not the whole draft. If the surfacing gate is the problem, the fix is usually a heading and framing change near the top, since a passage that never surfaces never gets evaluated on anything downstream. If surfacing is fine but the chunking gate fails, the direct answer to the target query probably needs to move higher and get tighter, not get longer. Leave everything else alone; a gate that already passes doesn't need touching.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Re-score after each revision round. Two rounds is typical. If the score is still well under target after that, the gap is usually structural, wrong page type, wrong query, or a topic the draft never really covers, not something a third small edit will fix. The readiness banner exists so you don't have to guess when to stop: publish-ready or plateaued both mean stop, since further revision rarely moves the number from there.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Gate that failed\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Usual fix\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Not the fix\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Surfacing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rework the heading and opening framing\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Adding more keywords throughout\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Chunking\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Move the direct answer higher, tighten it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Making the section longer\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Relevance\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewrite toward the query's actual meaning\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Repeating the query phrase verbatim\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Structured data / freshness\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Add or correct JSON-LD and date signals\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewriting body content\"})]})]})]}),`\n`,(0,t.jsx)(r,{title:\"Free re-scoring turns a guess into a loop\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"beforeAfter\",label:\"Citation pipeline score\",before:\"39\",after:\"73\",tone:\"positive\",caption:\"two revision rounds; cleared surfacing and chunking\"},children:(0,t.jsx)(e.p,{children:\"Every re-score is free and unlimited, with a before/after diff and a change log tracing each edit back to the gate it fixed. The readiness banner tells you when to stop revising and export.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Publish with the gate already cleared\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once the banner clears, export the revision, markdown or HTML, plus the revised title, meta description, and structured data together, and publish through your CMS as usual. Nothing about the publishing step itself changes. What's different is what you know going in: the draft already passed the check a live page would eventually have to pass, instead of finding that out weeks later when the rank never moves and nobody can say why.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For a piece that's especially high stakes, a press release or a launch page, treat the pre-publish score as a hard gate the same way a legal review or a final proofread would be: nothing ships until it clears.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Move the check earlier, not just add another one\"}),`\n`,(0,t.jsx)(e.p,{children:\"The workflow isn't really a new step. It's an old step, the pre-publish review, done against a pipeline that a human editor can't evaluate by reading. Pick the query the draft is supposed to win, paste it in before it's live, score it gate by gate, revise what's actually broken, and publish once the banner clears. The cost of catching a citation gap goes down the earlier you catch it, and pasting a draft is about as early as it gets.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're checking content that's already live instead of still in draft, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"optimizing existing content for AI citation\"}),\" covers that version of the same process. And if the piece was written to chase a specific search rather than reviewed after the fact, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-win-a-target-ai-grounding-search\",children:\"winning a target AI grounding search\"}),\" starts from the query instead of the draft. Either way, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the fastest way to find out which queries are worth targeting in the first place.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}
2),\" This guide is one of five workflows for content teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-content-teams\",children:\"AI visibility guides for content teams\"}),\".\"]})]})}function g(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(d,{...a})}):d(a)}function c(a,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(x);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"29:[\"$\",\"$L10\",\"how-to-check-a-draft-for-ai-citation-before-publishing\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$81\",\"title\":\"How to Check a Draft for AI Citation Before Publishing\",\"date\":\"2026-08-09\",\"image\":\"/images/blog/how-to-check-a-draft-for-ai-citation-before-publishing.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A spelling check catches typos before a draft goes out. This is the same idea for AI citation. Paste a draft in before it's live, score it against the query it should win, and fix what's broken while it's still cheap to fix.\",\"tags\":[\"Content\",\"How-to\",\"Workflows\",\"AI Citation\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Do I need a live URL to run this check?\",\"answer\":\"No. Paste the draft itself, raw markdown or plain text, with no live page required. That's the point. Checking a page after it's published means the mistake is already live and probably already indexed.\"},{\"question\":\"What if the draft isn't written for a specific search query yet?\",\"answer\":\"Pick one anyway before you score. A draft scored against no target query isn't measuring anything real. If you really don't know what query the piece should win, that's worth settling with whoever assigned the piece before you spend time revising it.\"},{\"question\":\"How is this different from a normal editorial review?\",\"answer\":\"A normal review checks tone, accuracy, and grammar. This checks something a human editor can't eyeball - whether the exact passage that answers the target query is retrievable and reads as relevant to a retrieval system. A draft can pass every editorial check and still fail this one.\"},{\"question\":\"Does this replace an SEO checklist?\",\"answer\":\"No, it sits next to one. An SEO checklist covers things like meta tags, internal links, and keyword placement. This checks the AI citation pipeline specifically, which uses different scoring than a traditional search ranking and can fail for reasons an SEO checklist won't catch.\"},{\"question\":\"What content types work with this check?\",\"answer\":\"Any draft with a clear target query works. Blog posts, landing pages, guides, and press releases all use the same flow, just with a different page type selected so the rewrite template matches the format.\"}],\"howTo\":{\"name\":\"How to check a draft for AI citation before publishing\",\"description\":\"A pre-publish workflow for content teams to score a draft against its target AI search query before it goes live, and revise until it's ready.\",\"steps\":[{\"name\":\"Pick the query the draft should win\",\"text\":\"Settle on the exact search the piece needs to win before scoring anything, since a score against no target doesn't tell you whether the draft will get cited.\"},{\"name\":\"Paste the draft, not a URL\",\"text\":\"Score the raw draft directly, no live page needed, so the check happens before anything goes out instead of after.\"},{\"name\":\"Score it gate by gate\",\"text\":\"Run the draft through the citation pipeline against that query and see exactly which stage it would fail if it went live today.\"},{\"name\":\"Revise until the readiness banner clears\",\"text\":\"Fix the specific gates that failed, re-score for free, and stop once the banner says the draft is ready.\"},{\"name\":\"Publish with the gate already cleared\",\"text\":\"Ship the draft knowing it already passed the same check a live page would need to pass later, instead of finding out after it's indexed.\"}]},\"_meta\":{\"filePath\":\"how-to-check-a-draft-for-ai-citation-before-publishing.mdx\",\"fileName\":\"how-to-check-a-draft-for-ai-citation-before-publishing.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-check-a-draft-for-ai-citation-before-publishing\"},\"body\":\"$82\",\"locale\":\"en\",\"path\":\"how-to-check-a-draft-for-ai-citation-before-publishing\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"83:T2111,"])</script>
2<script>self.__next_f.push([1,"To prospect new clients with AI visibility reports, build a list of target domains, run them through a full AI visibility scan as one batch, then read each report for the single finding that makes the best opening line. Package the strongest findings into a white-labeled report and send it before the call, not after. That's the whole workflow: one batch, one read-through per prospect, one branded deliverable that starts the meeting for you.\n\nMost agency pitches lead with a capabilities deck. Slides about the team, past clients, a services list the prospect has already seen from two other agencies this month. It doesn't land, because it's about you, not them. A report that shows a prospect exactly how AI assistants describe their brand right now, and which competitor keeps showing up instead of them, lands every time. It's specific, it's about their business, and it's something they can't put together themselves in an afternoon.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Build your prospect list | Compiling target domains into one batch | A validated list, ready to run |\n| 2. Run reports at scale | Scanning the whole batch across AI platforms | Every prospect has a completed report |\n| 3. Turn reports into a pitch | Finding the one number that opens the call | A specific, competitor-named finding per prospect |\n| 4. Share the report | Packaging and sending the branded export | A white-labeled PDF or link in the prospect's inbox |\n\n## Build your prospect list\n\nStart with a list of domains, not one property at a time. If you're prospecting a vertical, pull ten or twenty target accounts from wherever your business development process already lives, a CRM exp
2ort, a conference attendee list, a referral pipeline, and get all of them into one batch. Comparing several prospects side by side on the same day, scanned the same way, gives you an apples-to-apples pitch instead of one-off snapshots built weeks apart.\n\nKeep the batch a manageable size. A batch that's too large slows down how fast any single report finishes, and you only need enough prospects to fill your pitch calendar for the next couple of weeks, not your entire target account list at once.\n\n\u003cWorkflowCallout\n  title=\"Paste a list, review it, then run the whole batch at once\"\n  page=\"Prospecting\"\n  href=\"/docs/dashboards/prospecting\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"17 domains ready to run\", done: true },\n      { label: \"2 invalid, needs a fix\", done: false },\n      { label: \"1 already a client, skip\", done: false },\n    ],\n  }}\n\u003e\n  Prospecting mode adds prospects as a separate view from your real clients, so a pitch list never clutters your client dashboard. Paste a list or upload a CSV, and every row gets validated before anything runs, so a typo'd domain gets caught before it burns a report.\n\u003c/WorkflowCallout\u003e\n\n## Run AI Visibility Reports at scale\n\nOnce the list is validated, run it. A full AI visibility report tests the brand across the major AI platforms in one pass: how consistently AI assistants describe the business, how often it shows up in discovery queries next to competitors, and which sources AI cites when it answers questions about that category. All of that comes from a domain name, no login or access to the prospect's own accounts required.\n\nA batch of reports takes real time to finish, sometimes a few hours for a full list, since each one runs its own set of platform queries. Start the batch in the morning and it's usually done well before your next round of pitch calls.\n\n\u003cWorkflowCallout\n  title=\"One batch, one scan per prospect, no manual setup\"\n  page=\"Prospecting\"\n  href=\"/docs/dashboards/prospecting\"\n  signal={{\n    kind: \"count\",\n    label: \"Reports in this batch\",\n    value: 17,\n    target: 20,\n    caption: \"10 free reports included this month\",\n  }}\n\u003e\n  Bulk add runs a full AI Visibility Report for every validated row, in parallel, and tracks the batch with a progress banner. A completion email lands once every report in the batch is done, so there's no reason to keep the tab open and wait.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-prospect-new-clients-with-ai-visibility-reports-quote.webp\"\n  quote=\"Nobody remembers a capabilities deck. Everybody remembers the meeting where you showed them exactly where they were losing ground.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-prospect-new-clients-with-ai-visibility-reports\"\n/\u003e\n\n## Turn each report into a pitch\n\nA full report has a lot in it: consistency scores, share of voice, discovery queries, citation sources, competitor mentions. Don't hand a prospect all of it and hope something lands. Read each report looking for one finding, the single number or comparison that makes the meeting worth taking.\n\nThe strongest opening finding is usually a named competitor. \"ChatGPT recommends [competitor] for this exact search and never mentions you\" is a sentence a prospect remembers. A low consistency score works too, especially paired with a specific wrong detail: an outdated price, a discontinued product, a description that reads like it's about a different company. Save the rest of the report, the discovery query breakdown, the full citation list, for after they've agreed to the meeting.\n\n\u003cWorkflowCallout\n  title=\"The score that opens the conversation\"\n  page=\"AI Visibility Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"score\",\n    label: \"Consistency score\",\n    value: 38,\n    target: 75,\n  }}\n\u003e\n  Every report scores brand consistency from 0 to 100, so a prospect scoring in the 30s or 40s is an immediate, specific talking point: AI doesn't understand this business yet, and here's the proof. The report viewer breaks the score down by platform and by which detail AI got wrong.\n\u003c/WorkflowCallout\u003e\n\n## Share the white-labeled report\n\nOnce you know 
2which finding leads the pitch, package it. Download the report as a white-labeled PDF or PowerPoint with your agency's branding, not Spyglasses', and send it ahead of the call, or hand it over live as a leave-behind. A prospect looking at a polished, branded deliverable with their own brand's data on it reads it as evidence you already understand their problem, before you've said a word.\n\nSend it before the call if you can. A prospect who's already opened a report showing a competitor beating them shows up to the meeting with a question, not a blank stare, and that question is the one you wanted them to ask.\n\n\u003cWorkflowCallout\n  title=\"From report to inbox in three exports\"\n  page=\"AI Visibility Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signalCaption=\"Ready to send\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"White-labeled PDF exported\", done: true },\n      { label: \"PowerPoint deck exported\", done: true },\n      { label: \"Shareable link live\", done: true },\n    ],\n  }}\n\u003e\n  Reports export to white-labeled PDF and PowerPoint on an agency plan, with your branding in place of ours. A shareable link works too, if you'd rather send something the prospect can open on their phone before the call.\n\u003c/WorkflowCallout\u003e\n\n## A pitch built on their data closes faster than a pitch built on yours\n\nThe workflow doesn't change much once you've run it a few times: build the batch, run the scan, read for the one finding that stings, send the branded report before you ask for the meeting. The step teams skip most often is the read-through, sending the full raw report instead of leading with a single sharp finding, and it's the step that makes the difference between a prospect who skims and a prospect who calls you back.\n\nIf the prospect signs, the property doesn't start over. It's already a real property with its own report history, so the next step is [baselining it properly](/blog/how-to-baseline-your-brands-ai-visibility) and correcting the brand profile everything else builds on. From there, [tracking visibility over time](/blog/how-to-track-ai-visibility-over-time) turns the one-time report you pitched with into the ongoing number you report against.\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"84:T2c39,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var s=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var m=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),w=(i,e)=\u003e{for(var n in e)s(i,n,{get:e[n],enumerable:!0})},a=(i,e,n,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of b(e))!y.call(i,r)\u0026\u0026r!==n\u0026\u0026s(i,r,{get:()=\u003ee[r],enumerable:!(o=g(e,r))||o.enumerable});return i};var v=(i,e,n)=\u003e(n=i!=null?u(f(i)):{},a(e||!i||!i.__esModule?s(n,\"default\",{value:i,enumerable:!0}):n,i)),k=i=\u003ea(s({},\"__esModule\",{value:!0}),i);var h=m((I,l)=\u003e{l.exports=_jsx_runtime});var A={};w(A,{default:()=\u003ep});var t=v(h());function d(i){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...i.components},{PullQuote:n,WorkflowCallout:o}=e;return n||c(\"PullQuote\",!0),o||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To prospect new clients with AI visibility reports, build a list of target domains, run them through a full AI visibility scan as one batch, then read each report for the single finding that makes the best opening line. Package the strongest findings into a white-labeled report and send it before the call, not after. That's the whole workflow: one batch, one read-through per prospect, one branded deliverable that starts the meeting for you.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most agency pitches lead with a capabilities deck. Slides about the team, past clients, a services list the prospect has already seen from two other agencies this month. It doesn't land, because it's about you, not them. A report that shows a prospect exactly how AI assistants describe their brand right now, and which competitor keeps showing up instead of them, lands every time. It's specific, it's about their business, and it's something they can't put together themselves in an afternoon.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Build your prospect list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Compiling target domains into one batch\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A validated list, ready to run\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Run reports at scale\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scanning the whole batch across AI platforms\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every prospect has a completed report\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Turn reports into a pitch\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Finding the one number that opens the call\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A specific, competitor-named finding per prospect\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Share the report\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Packaging and sending the branded export\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A white-labeled PDF or link in the prospect's inbox\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Build your prospect list\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with a list of domains, not one property at a time. If you're prospecting a vertical, pull ten or twenty target accounts from wherever your business development process already lives, a CRM exp
2ort, a conference attendee list, a referral pipeline, and get all of them into one batch. Comparing several prospects side by side on the same day, scanned the same way, gives you an apples-to-apples pitch instead of one-off snapshots built weeks apart.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Keep the batch a manageable size. A batch that's too large slows down how fast any single report finishes, and you only need enough prospects to fill your pitch calendar for the next couple of weeks, not your entire target account list at once.\"}),`\n`,(0,t.jsx)(o,{title:\"Paste a list, review it, then run the whole batch at once\",page:\"Prospecting\",href:\"/docs/dashboards/prospecting\",signal:{kind:\"checklist\",items:[{label:\"17 domains ready to run\",done:!0},{label:\"2 invalid, needs a fix\",done:!1},{label:\"1 already a client, skip\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Prospecting mode adds prospects as a separate view from your real clients, so a pitch list never clutters your client dashboard. Paste a list or upload a CSV, and every row gets validated before anything runs, so a typo'd domain gets caught before it burns a report.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Run AI Visibility Reports at scale\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once the list is validated, run it. A full AI visibility report tests the brand across the major AI platforms in one pass: how consistently AI assistants describe the business, how often it shows up in discovery queries next to competitors, and which sources AI cites when it answers questions about that category. All of that comes from a domain name, no login or access to the prospect's own accounts required.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A batch of reports takes real time to finish, sometimes a few hours for a full list, since each one runs its own set of platform queries. Start the batch in the morning and it's usually done well before your next round of pitch calls.\"}),`\n`,(0,t.jsx)(o,{title:\"One batch, one scan per prospect, no manual setup\",page:\"Prospecting\",href:\"/docs/dashboards/prospecting\",signal:{kind:\"count\",label:\"Reports in this batch\",value:17,target:20,caption:\"10 free reports included this month\"},children:(0,t.jsx)(e.p,{children:\"Bulk add runs a full AI Visibility Report for every validated row, in parallel, and tracks the batch with a progress banner. A completion email lands once every report in the batch is done, so there's no reason to keep the tab open and wait.\"})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-prospect-new-clients-with-ai-visibility-reports-quote.webp\",quote:\"Nobody remembers a capabilities deck. Everybody remembers the meeting where you showed them exactly where they were losing ground.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-prospect-new-clients-with-ai-visibility-reports\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn each report into a pitch\"}),`\n`,(0,t.jsx)(e.p,{children:\"A full report has a lot in it: consistency scores, share of voice, discovery queries, citation sources, competitor mentions. Don't hand a prospect all of it and hope something lands. Read each report looking for one finding, the single number or comparison that makes the meeting worth taking.\"}),`\n`,(0,t.jsx)(e.p,{children:`The strongest opening finding is usually a named competitor. \"ChatGPT recommends [competitor] for this exact search and never mentions you\" is a sentence a prospect remembers. A low consistency score works too, especially paired with a specific wrong detail: an outdated price, a discontinued product, a description that reads like it's about a different company. Save the rest of the report, the discovery query breakdown, the full citation list, for after they've agreed to the meeting.`}),`\n`,(0,t.jsx)(o,{title:\"The score that opens the conversation\",page:\"AI Visibility Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"score\",label:\"Consistency score\",value:38,target:75},children:(0,t.jsx)(e.p,{children:\"Every report scores brand consistency from 0 to 100, so a prospect scoring in the 30s or 40s is an immediate, specific talking point: AI doesn't understand this business yet, and here's the proof. The report viewer breaks the score down by platform and by which detail AI got wrong.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Share the white-labeled report\"}
2),`\n`,(0,t.jsx)(e.p,{children:\"Once you know which finding leads the pitch, package it. Download the report as a white-labeled PDF or PowerPoint with your agency's branding, not Spyglasses', and send it ahead of the call, or hand it over live as a leave-behind. A prospect looking at a polished, branded deliverable with their own brand's data on it reads it as evidence you already understand their problem, before you've said a word.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Send it before the call if you can. A prospect who's already opened a report showing a competitor beating them shows up to the meeting with a question, not a blank stare, and that question is the one you wanted them to ask.\"}),`\n`,(0,t.jsx)(o,{title:\"From report to inbox in three exports\",page:\"AI Visibility Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signalCaption:\"Ready to send\",signal:{kind:\"checklist\",items:[{label:\"White-labeled PDF exported\",done:!0},{label:\"PowerPoint deck exported\",done:!0},{label:\"Shareable link live\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Reports export to white-labeled PDF and PowerPoint on an agency plan, with your branding in place of ours. A shareable link works too, if you'd rather send something the prospect can open on their phone before the call.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"A pitch built on their data closes faster than a pitch built on yours\"}),`\n`,(0,t.jsx)(e.p,{children:\"The workflow doesn't change much once you've run it a few times: build the batch, run the scan, read for the one finding that stings, send the branded report before you ask for the meeting. The step teams skip most often is the read-through, sending the full raw report instead of leading with a single sharp finding, and it's the step that makes the difference between a prospect who skims and a prospect who calls you back.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If the prospect signs, the property doesn't start over. It's already a real property with its own report history, so the next step is \",(0,t.jsx)(e.a,{href:\"/blog/how-to-baseline-your-brands-ai-visibility\",children:\"baselining it properly\"}),\" and correcting the brand profile everything else builds on. From there, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"tracking visibility over time\"}),\" turns the one-time report you pitched with into the ongoing number you report against.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function p(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(d,{...i})}):d(i)}function c(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"2a:[\"$\",\"$L10\",\"how-to-prospect-new-clients-with-ai-visibility-reports\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$83\",\"title\":\"How to Prospect New Clients with AI Visibility Reports\",\"date\":\"2026-08-08\",\"image\":\"/images/blog/how-to-prospect-new-clients-with-ai-visibility-reports.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A cold pitch deck gets skimmed. A report showing exactly where a prospect is losing ground in AI search gets read twice. Here's the four-step workflow for turning a list of domains into a batch of pitch-ready AI visibility reports.\",\"tags\":[\"Agencies\",\"New Business\",\"How-to\",\"Workflows\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How many prospects can I run through this workflow at once?\",\"answer\":\"Cap a single batch at a size your pitch calendar can actually use. Most tools that support bulk prospecting cap a single import around 20 domains, since each one triggers a full report and a huge batch just slows every report down. Run a second batch next week for anything you didn't get to.\"},{\"question\":\"Does running a report on a prospect's site require their permission?\",\"answer\":\"No. A visibility report reads public information, the prospect's own website and how AI assistants already talk about them. It's no different from running an SEO audit on a competitor's public site. Treat it like any other prospecting research, for a real pitch, not for anything else.\"},{\"question\":\"What's the single most important thing to include in the pitch?\",\"answer\":\"One specific, competitor-named finding, not the full report. \\\"AI recommends your competitor for this exact search and never mentions you\\\" is a sentence a prospect remembers. A full breakdown of every metric is something they skim and forget.\"},{\"question\":\"What happens to the property if the prospect becomes a client?\",\"answer\":\"Nothing has to change. A prospect is already a full property under the hood, just flagged separately so it doesn't clutter your client list. If they sign, you switch the flag and keep going, no new setup, no lost report history.\"},{\"question\":\"Should I run one report at a time or always in batches?\",\"answer\":\"Batch it whenever you're comparing more than one prospect for the same pitch cycle, since running them the same day on the same scan keeps every comparison apples-to-apples. A single hot lead that comes in outside a batch is fine to run on its own.\"}],\"howTo\":{\"name\":\"How to prospect new clients with AI visibility reports\",\"description\":\"A step-by-step workflow for turning a list of prospect domains into pitch-ready AI visibility reports, from building the batch to sharing the white-labeled export that opens the meeting.\",\"steps\":[{\"name\":\"Build your prospect list\",\"text\":\"Compile the domains you want to pitch and add them as a batch instead of one property at a time, so every prospect gets the same scan on the same day.\"},{\"name\":\"Run AI Visibility Reports at scale\",\"text\":\"Send the whole batch through a full AI visibility scan at once, testing brand consistency, share of voice, and citations across the major AI platforms.\"},{\"name\":\"Turn each report into a pitch\",\"text\":\"Read each report for the one finding that actually opens a conversation, usually a competitor winning a query the prospect should own, not a full breakdown of every metric.\"},{\"name\":\"Share the white-labeled report\",\"text\":\"Package the strongest findings into a branded PDF or slide deck and send it before the call, so the meeting starts with your name already on their screen.\"}]},\"_meta\":{\"filePath\":\"how-to-prospect-new-clients-with-ai-visibility-reports.mdx\",\"fileName\":\"how-to-prospect-new-clients-with-ai-visibility-reports.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-prospect-new-clients-with-ai-visibility-reports\"},\"body\":\"$84\",\"locale\":\"en\",\"path\":\"how-to-prospect-new-clients-with-ai-visibility-reports\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"85:T2e2e,"])</script>
2<script>self.__next_f.push([1,"To build a pitch list AI can actually see, score every candidate outlet's AI Placement Value before you add it to the list, not after the story runs. Price the placement you're negotiating for while it's still hypothetical, so you know which terms are worth pushing on. Once the story publishes, rescore the live URL and compare it against what you negotiated. Then roll every placement into one tracked group so the list's AI value shows up as a single number instead of a row-by-row guess.\n\nMost media lists are still built the old way: masthead reputation, past coverage, a relationship with the right reporter. None of that tells you whether ChatGPT, Gemini, or Perplexity can read the story once it runs. A [study of the top 51 U.S. news outlets](/blog/is-ai-blocking-your-best-media-placements) found that 61% block AI crawlers outright, which means a placement that looks great in a traditional media list can be structurally invisible to AI before you even write the pitch. On a typical 40-outlet target list, that screen alone can knock out a third of the names before you draft a single pitch. A list built on reach alone will always include outlets like this. A list scored for AI value catches them before you spend the outreach.\n\nThis guide works with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Score outlets | Checking AI Placement Value before pitching | Every candidate outlet has a tier, not just a reputation |\n| 2. Price the ask | Scoring a hypothetical placement before you negotiate | A target score for position, link type, and placement type |\n| 3. Score the result | Rescoring the live URL after it publishes | A real PQS to compare against what you negotiated |\n| 4. Track the list | Grouping placements into one tracked goal | One AI value number for the whole list, updated automatically |\n\n## Score prospective outlets with Publisher Lookup\n\nBefore an outlet earns a spot on your pitch list, look it up. The AI Placement Value Score (AIPVS) combines a domain's organic authority with how accessible its content actually is to AI crawlers, so you get one number that answers the question a coverage report never asks: can AI even see this outlet.\n\nThe tiers give you a fast filter for a long candidate list.\n\n| Tier | AIPVS range | What it means | Pitch priority |\n| :--- | :--- | :--- | :--- |\n| Premium | 75-100 | High organic authority and AI assistants can read and cite it | Pitch first, worth negotiating hard on position |\n| Strong | 50-74 | Solid on authority or accessibility, not maxed out on both | A good target, worth the outreach |\n| Moderate | 25-49 | A real gap in authority or AI access | Pitch selectively; check per-platform access first |\n| Limited | 0-24 | Little organic authority, or AI mostly can't reach it | Skip unless the relationship matters for another reason |\n\nDon't stop at the composite score. A Strong-tier outlet that's fully open to every major AI crawler can end up doing more work for you than a Premium-tier outlet that blocks half of them, so check the per-platform breakdown before you cross an outlet off the list.\n\nAdd the outlets that clear the bar to a [pitch list](/docs/dashboards/pitch-lists) instead of a spreadsheet. Each row keeps a status and a note for the angle, and a share link sends the whole list to the client for approval before outreach starts.\n\n\u003cWorkflowCallout\n  title=\"Look up any domain, add the ones worth pitching to a pitch list\"\n  page=\"Publisher Lookup\"\n  href=\"/docs/dashboards/publisher-lookup\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"14 candidate outlets scored via Publisher Lookup\", done: true },\n      { label: \"6 added to the pitch list\", done: true },\n      { label: \"2 outlets flagged Limited tier (mostly AI-blocked)\", done: false },\n    ],\n  }}\n\u003e\n  Publisher Lookup scores any domain against the context of the brand or product you're tracking, including category relevance and training-data uplift, and shows the full three-layer breakdown: organic authority, AI citation access per platform, and AI training influence. On a 14-outlet candidate list this typically s
2orts into something like 3 Premium, 6 Strong, 3 Moderate, and 2 Limited, so the Limited-tier names get dropped before outreach starts. Add the outlets you're actively considering to a pitch list, where each one keeps a status, a note, and a count of how often AI already cites it for your prompts.\n\u003c/WorkflowCallout\u003e\n\n## Price the placement before you negotiate\n\nOnce an outlet clears the Publisher Lookup bar, the next question is what you're actually asking for. A prospective placement lets you score a hypothetical mention (its position in the article, the link type, whether it's a dedicated feature or a passing reference) before anything is written, so you walk into the negotiation knowing exactly which term moves the score the most.\n\nThis is where a pitch-list workflow earns its keep. The scoring engine can show a \"what if you negotiated better terms\" preview: what the score looks like if the mention moves from the middle third to the lead paragraph, or from a passing reference to a dedicated article, or from a nofollow link to dofollow. That turns a vague ask like \"can we get a better placement\" into a specific one backed by a number.\n\n\u003cWorkflowCallout\n  title=\"See the score lift before you ask for it\"\n  page=\"Placements\"\n  href=\"/docs/dashboards/placements\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Prospective PQS\",\n    before: \"51\",\n    after: \"74\",\n    tone: \"positive\",\n    caption: \"moved the ask from a mid-article mention to a dedicated-article lead position\",\n  }}\n\u003e\n  Prospective mode scores a hypothetical placement instantly from publisher, placement type, editorial control, and link attribute, no URL required. The negotiation preview re-scores the same placement under upgraded terms, so you can quantify exactly what a better slot is worth before you ask for it.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see-quote.webp\"\n  quote=\"A pitch list ranked by reach alone can still land you outlets AI can't read. Score the outlet before you pitch it, not after the story runs.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-build-a-pr-pitch-list-ai-can-actually-see\"\n/\u003e\n\n## Score the placement after it publishes\n\nA negotiated term is a promise, not a placement. Once the story runs, rescore the live URL and compare the real PQS against what you negotiated toward. Spyglasses fetches the page, locates the brand mention, and evaluates the same factors the prospective score used, position, chunk containment, link attribute, placement type, and sentiment, so the comparison is apples to apples.\n\nGaps between the negotiated ask and the published result are common and worth tracking. A writer might bury a promised lead mention in the second half of the piece during a final edit, or a CMS default might ship a nofollow link where dofollow was agreed. Catching that isn't about assigning blame; it's a specific, factual note for the next pitch to that same outlet or reporter.\n\n\u003cWorkflowCallout\n  title=\"What was promised vs. what actually published\"\n  page=\"Placements\"\n  href=\"/docs/dashboards/placements\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"PQS: negotiated ask vs. published\",\n    before: \"74\",\n    after: \"68\",\n    tone: \"negative\",\n    caption: \"link attribute shipped as nofollow instead of the dofollow agreed in negotiation\",\n  }}\n\u003e\n  Retrospective scoring fetches the live page, isolates the article content, and locates the brand mention automatically, then walks through the same five factors used in prospective scoring. If the publisher is AIPVS-enriched, the panel also shows the Total Placement Value: AIPVS × PQS ÷ 100, the combined answer to \"is this outlet worth it and is this specific mention well-positioned.\"\n\u003c/WorkflowCallout\u003e\n\nA Premium-tier publisher doesn't automatically win. A weak mention on a strong domain and a strong mention on a merely solid domain can land close to each other once you multiply the two scores together:\n\n| Publisher | AIPVS | Placement | PQS | Total Placement Value |\n| :--- | :--- | :--- | :--- | :--- |\n| Major national outlet, blocks some AI crawlers | 85 (Premium) | Mid-article passing mention | 55 | 47 |\n| Trade publication, fully AI-accessible | 65 (Strong) | Dedicated article, lead position | 90 | 59 |\n\nThe trade publication wins here, even with the lower-tier domain, because the placement itself is positioned 
2so much better. That's the kind of comparison a reach-only media list can't make, and it's the argument for scoring the placement, not just the outlet.\n\n## Roll placements into a tracked coverage group\n\nA pitch list isn't static. Outlets get added, placements run, and the whole thing needs to answer one question over time: is this list actually delivering AI-visible coverage. Checking each placement by hand doesn't scale once a campaign produces more than a handful of hits, so add scored placements to a coverage group and let it track the list as a whole.\n\nA coverage group ties every placement to a project goal with a single influence number: what share of your tracked prompts' AI citations came from this list. New placements can be added at any time, and the group picks up citation matches retroactively, so a URL added this week still gets credit for citations that happened before it joined the group. This is the same mechanism covered in [how to connect earned media to AI visibility](/blog/how-to-connect-earned-media-to-ai-visibility), applied here to the prospecting side of the work instead of a single campaign's results.\n\n\u003cWorkflowCallout\n  title=\"Every placement in one tracked list, one value number\"\n  page=\"Coverage Groups\"\n  href=\"/docs/dashboards/coverage-groups\"\n  signal={{\n    kind: \"trend\",\n    label: \"Average Total Placement Value, 6 weeks\",\n    series: [34, 38, 41, 45, 47, 52],\n    change: 18,\n    suffix: \" pts\",\n  }}\n\u003e\n  Coverage Groups link to Placements automatically, so pasting a list of pitched-and-landed URLs creates and scores a placement for each one. The group shows every item's AIPQS alongside its publisher's AIPVS in one table, and attaching the group to a project turns it into a tracked goal with its own citation count.\n\u003c/WorkflowCallout\u003e\n\n## The list only works if AI can see what's on it\n\nA pitch list built on reputation alone is still a guess about AI visibility, even when it's a well-informed guess. Score outlets before you pitch them, price the placement before you negotiate, confirm the real score once the story runs, and track the whole list as one group instead of a stack of one-off wins. The gap between a negotiated ask and a published result is where most of the value quietly leaks out, and it only shows up if you check.\n\nIf you're deciding whether an outlet is even worth the outreach in the first place, [is AI blocking your best media placements](/blog/is-ai-blocking-your-best-media-placements) covers how common crawler blocking actually is across major publishers. Once a pitch turns into an actual draft, [structuring a press release the way AI reads content](/blog/how-to-write-a-press-release-chatgpt-will-cite) is the other half of getting it cited. And if you haven't checked how AI currently describes the brand at all, a free [AI Visibility Report](/ai-visibility-report) is the fastest way to see where you're starting from before the next pitch list goes out.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"86:T42f8,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var l=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var b=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),w=(i,e)=\u003e{for(var n in e)l(i,n,{get:e[n],enumerable:!0})},r=(i,e,n,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of f(e))!y.call(i,o)\u0026\u0026o!==n\u0026\u0026l(i,o,{get:()=\u003ee[o],enumerable:!(a=g(e,o))||a.enumerable});return i};var A=(i,e,n)=\u003e(n=i!=null?p(m(i)):{},r(e||!i||!i.__esModule?l(n,\"default\",{value:i,enumerable:!0}):n,i)),k=i=\u003er(l({},\"__esModule\",{value:!0}),i);var h=b((P,s)=\u003e{s.exports=_jsx_runtime});var v={};w(v,{default:()=\u003eu});var t=A(h());function c(i){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...i.components},{PullQuote:n,WorkflowCallout:a}=e;return n||d(\"PullQuote\",!0),a||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To build a pitch list AI can actually see, score every candidate outlet's AI Placement Value before you add it to the list, not after the story runs. Price the placement you're negotiating for while it's still hypothetical, so you know which terms are worth pushing on. Once the story publishes, rescore the live URL and compare it against what you negotiated. Then roll every placement into one tracked group so the list's AI value shows up as a single number instead of a row-by-row guess.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Most media lists are still built the old way: masthead reputation, past coverage, a relationship with the right reporter. None of that tells you whether ChatGPT, Gemini, or Perplexity can read the story once it runs. A \",(0,t.jsx)(e.a,{href:\"/blog/is-ai-blocking-your-best-media-placements\",children:\"study of the top 51 U.S. news outlets\"}),\" found that 61% block AI crawlers outright, which means a placement that looks great in a traditional media list can be structurally invisible to AI before you even write the pitch. On a typical 40-outlet target list, that screen alone can knock out a third of the names before you draft a single pitch. A list built on reach alone will always include outlets like this. A list scored for AI value catches them before you spend the outreach.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Score outlets\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking AI Placement Value before pitching\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every candidate outlet has a tier, not just a reputation\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Price the ask\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scoring a hypothetical placement before you negotiate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A target score for position, link type, and placement type\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Score the result\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rescoring the live URL after it publishes\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A real PQS to compare against what you negotiated\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Track the list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Grouping placements into one tracked goal\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One AI value number for the whole list, updated automatically\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Score prospective outlets with Publisher Lookup\"}),`\n`,(0,t.jsx)(e.p,{children:\"Before an outlet earns a spot on your pitch list, look it up. The AI Placement Value Score (AIPVS) comb
2ines a domain's organic authority with how accessible its content actually is to AI crawlers, so you get one number that answers the question a coverage report never asks: can AI even see this outlet.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The tiers give you a fast filter for a long candidate list.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Tier\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"AIPVS range\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Pitch priority\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Premium\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"75-100\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High organic authority and AI assistants can read and cite it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Pitch first, worth negotiating hard on position\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Strong\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"50-74\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Solid on authority or accessibility, not maxed out on both\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A good target, worth the outreach\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Moderate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"25-49\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A real gap in authority or AI access\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Pitch selectively; check per-platform access first\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"0-24\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Little organic authority, or AI mostly can't reach it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Skip unless the relationship matters for another reason\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Don't stop at the composite score. A Strong-tier outlet that's fully open to every major AI crawler can end up doing more work for you than a Premium-tier outlet that blocks half of them, so check the per-platform breakdown before you cross an outlet off the list.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Add the outlets that clear the bar to a \",(0,t.jsx)(e.a,{href:\"/docs/dashboards/pitch-lists\",children:\"pitch list\"}),\" instead of a spreadsheet. Each row keeps a status and a note for the angle, and a share link sends the whole list to the client for approval before outreach starts.\"]}),`\n`,(0,t.jsx)(a,{title:\"Look up any domain, add the ones worth pitching to a pitch list\",page:\"Publisher Lookup\",href:\"/docs/dashboards/publisher-lookup\",signal:{kind:\"checklist\",items:[{label:\"14 candidate outlets scored via Publisher Lookup\",done:!0},{label:\"6 added to the pitch list\",done:!0},{label:\"2 outlets flagged Limited tier (mostly AI-blocked)\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Publisher Lookup scores any domain against the context of the brand or product you're tracking, including category relevance and training-data uplift, and shows the full three-layer breakdown: organic authority, AI citation access per platform, and AI training influence. On a 14-outlet candidate list this typically sorts into something like 3 Premium, 6 Strong, 3 Moderate, and 2 Limited, so the Limited-tier names get dropped before outreach starts. Add the outlets you're actively considering to a pitch list, where each one keeps a status, a note, and a count of how often AI already cites it for your prompts.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Price the placement before you negotiate\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once an outlet clears the Publisher Lookup bar, the next question is what you're actually asking for. A prospective placement lets you score a hypothetical mention (its position in the article, the link type, whether it's a dedicated feature or a passing reference) before anything is written, so you walk into the negotiation knowing exactly which term moves the score the most.\"}),`\n`,(0,t.jsx)(e.p,{children:'This is where a pitch-list workflow earns its keep. The scoring engine can show a \"what if you negotiated better terms\" preview: what the score looks like if the mention moves from the middle third to the lead paragraph, or from a passing reference to a dedicated article, or from a nofollow link to dofollow. That turns a vague ask like \"can we get a better placement\" into a specific one backed by a number.'}),`\n`,(0,t.jsx)(a,{title:\"See the score lift before you ask for it\",page:\"Placements\",href:\"/docs/dashboards/placements\",signal:{kind:\"beforeAfter\",label:\"Prospective PQS\",before:\"51\",after:\"74\",tone
2:\"positive\",caption:\"moved the ask from a mid-article mention to a dedicated-article lead position\"},children:(0,t.jsx)(e.p,{children:\"Prospective mode scores a hypothetical placement instantly from publisher, placement type, editorial control, and link attribute, no URL required. The negotiation preview re-scores the same placement under upgraded terms, so you can quantify exactly what a better slot is worth before you ask for it.\"})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see-quote.webp\",quote:\"A pitch list ranked by reach alone can still land you outlets AI can't read. Score the outlet before you pitch it, not after the story runs.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-build-a-pr-pitch-list-ai-can-actually-see\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Score the placement after it publishes\"}),`\n`,(0,t.jsx)(e.p,{children:\"A negotiated term is a promise, not a placement. Once the story runs, rescore the live URL and compare the real PQS against what you negotiated toward. Spyglasses fetches the page, locates the brand mention, and evaluates the same factors the prospective score used, position, chunk containment, link attribute, placement type, and sentiment, so the comparison is apples to apples.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Gaps between the negotiated ask and the published result are common and worth tracking. A writer might bury a promised lead mention in the second half of the piece during a final edit, or a CMS default might ship a nofollow link where dofollow was agreed. Catching that isn't about assigning blame; it's a specific, factual note for the next pitch to that same outlet or reporter.\"}),`\n`,(0,t.jsx)(a,{title:\"What was promised vs. what actually published\",page:\"Placements\",href:\"/docs/dashboards/placements\",signal:{kind:\"beforeAfter\",label:\"PQS: negotiated ask vs. published\",before:\"74\",after:\"68\",tone:\"negative\",caption:\"link attribute shipped as nofollow instead of the dofollow agreed in negotiation\"},children:(0,t.jsx)(e.p,{children:'Retrospective scoring fetches the live page, isolates the article content, and locates the brand mention automatically, then walks through the same five factors used in prospective scoring. If the publisher is AIPVS-enriched, the panel also shows the Total Placement Value: AIPVS \\xD7 PQS \\xF7 100, the combined answer to \"is this outlet worth it and is this specific mention well-positioned.\"'})}),`\n`,(0,t.jsx)(e.p,{children:\"A Premium-tier publisher doesn't automatically win. A weak mention on a strong domain and a strong mention on a merely solid domain can land close to each other once you multiply the two scores together:\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Publisher\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"AIPVS\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Placement\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"PQS\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Total Placement Value\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Major national outlet, blocks some AI crawlers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"85 (Premium)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Mid-article passing mention\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"55\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"47\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Trade publication, fully AI-accessible\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"65 (Strong)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Dedicated article, lead position\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"90\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"59\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"The trade publication wins here, even with the lower-tier domain, because the placement itself is positioned 
2so much better. That's the kind of comparison a reach-only media list can't make, and it's the argument for scoring the placement, not just the outlet.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Roll placements into a tracked coverage group\"}),`\n`,(0,t.jsx)(e.p,{children:\"A pitch list isn't static. Outlets get added, placements run, and the whole thing needs to answer one question over time: is this list actually delivering AI-visible coverage. Checking each placement by hand doesn't scale once a campaign produces more than a handful of hits, so add scored placements to a coverage group and let it track the list as a whole.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"A coverage group ties every placement to a project goal with a single influence number: what share of your tracked prompts' AI citations came from this list. New placements can be added at any time, and the group picks up citation matches retroactively, so a URL added this week still gets credit for citations that happened before it joined the group. This is the same mechanism covered in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-connect-earned-media-to-ai-visibility\",children:\"how to connect earned media to AI visibility\"}),\", applied here to the prospecting side of the work instead of a single campaign's results.\"]}),`\n`,(0,t.jsx)(a,{title:\"Every placement in one tracked list, one value number\",page:\"Coverage Groups\",href:\"/docs/dashboards/coverage-groups\",signal:{kind:\"trend\",label:\"Average Total Placement Value, 6 weeks\",series:[34,38,41,45,47,52],change:18,suffix:\" pts\"},children:(0,t.jsx)(e.p,{children:\"Coverage Groups link to Placements automatically, so pasting a list of pitched-and-landed URLs creates and scores a placement for each one. The group shows every item's AIPQS alongside its publisher's AIPVS in one table, and attaching the group to a project turns it into a tracked goal with its own citation count.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The list only works if AI can see what's on it\"}),`\n`,(0,t.jsx)(e.p,{children:\"A pitch list built on reputation alone is still a guess about AI visibility, even when it's a well-informed guess. Score outlets before you pitch them, price the placement before you negotiate, confirm the real score once the story runs, and track the whole list as one group instead of a stack of one-off wins. The gap between a negotiated ask and a published result is where most of the value quietly leaks out, and it only shows up if you check.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're deciding whether an outlet is even worth the outreach in the first place, \",(0,t.jsx)(e.a,{href:\"/blog/is-ai-blocking-your-best-media-placements\",children:\"is AI blocking your best media placements\"}),\" covers how common crawler blocking actually is across major publishers. Once a pitch turns into an actual draft, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-write-a-press-release-chatgpt-will-cite\",children:\"structuring a press release the way AI reads content\"}),\" is the other half of getting it cited. And if you haven't checked how AI currently describes the brand at all, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the fastest way to see where you're starting from before the next pitch list goes out.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function u(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(c,{...i})}):c(i)}function d(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(v);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"2b:[\"$\",\"$L10\",\"how-to-build-a-pr-pitch-list-ai-can-actually-see\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$85\",\"title\":\"How to Build a PR Pitch List AI Can Actually See\",\"date\":\"2026-08-07\",\"image\":\"/images/blog/how-to-build-a-pr-pitch-list-ai-can-actually-see.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A media list ranked by reach can still be full of outlets AI never reads. Here's how to score outlets before you pitch, price the placement before you negotiate, and confirm the value after the story runs.\",\"tags\":[\"PR\",\"How-to\",\"Workflows\",\"Earned Media\",\"Placements\"],\"published\":true,\"faq\":[{\"question\":\"What's the difference between AIPVS and PQS?\",\"answer\":\"AIPVS scores a whole publisher domain, combining its organic authority with how accessible its content is to AI crawlers. PQS scores one specific placement on one specific page, looking at where the mention sits, whether the surrounding text reads as a self-contained chunk, the link type, and the sentiment. A domain can carry a high AIPVS and still host a placement with a low PQS if the mention is a passing reference buried on page three.\"},{\"question\":\"Should I only pitch outlets with a high AIPVS?\",\"answer\":\"Not automatically. A Strong-tier outlet that's fully open to AI crawlers can outperform a Premium-tier outlet that blocks most of them. Check the per-platform access breakdown before ruling an outlet out; a lower composite score sometimes hides full access on the exact platforms your prompts run on.\"},{\"question\":\"How much does negotiating a better placement position actually change the score?\",\"answer\":\"It depends on where you're starting, but moving a mention from a passing reference to a dedicated article, or from the final third of the page to the lead paragraph, usually produces the biggest single jump. Prospective scoring shows the exact lift for each change before you ask for it, so you know which term is worth pushing for in the negotiation.\"},{\"question\":\"What if the placement runs and it's worse than what we negotiated?\",\"answer\":\"Rescore the live URL and compare it against the prospective number you negotiated toward. If the writer buried the mention lower than promised or shipped a nofollow link instead of the agreed dofollow, the retrospective PQS shows it directly. That gap is useful feedback for the next pitch to that outlet, not just a one-time correction.\"},{\"question\":\"Does this replace traditional media-list criteria like beat relevance or past coverage?\",\"answer\":\"No. AIPVS and PQS add a layer traditional criteria don't cover, whether AI can actually read and cite the placement. Keep evaluating outlets on relevance, audience fit, and relationship, then use the AI scores as a second filter on top of that, not a replacement for it.\"}],\"howTo\":{\"name\":\"How to build a PR pitch list AI can actually see\",\"description\":\"A step-by-step guide for PR teams to score prospective outlets, price a placement before negotiating, confirm the score after it runs, and track the whole list's AI value together.\",\"steps\":[{\"name\":\"Score prospective outlets with Publisher Lookup\",\"text\":\"Check a domain's AI Placement Value Score before adding it to your pitch list, since reach alone doesn't tell you whether AI assistants can actually read what's published there.\"},{\"name\":\"Price the placement before you negotiate\",\"text\":\"Score a hypothetical placement's position, link type, and editorial control before you agree to terms, so you know exactly which upgrade is worth pushing for.\"},{\"name\":\"Score the placement after it publishes\",\"text\":\"Rescore the live URL once the story runs and compare it against what you negotiated, since a promised lead mention doesn't always survive the edit.\"},{\"name\":\"Roll placements into a tracked coverage group\",\"text\":\"Add scored placements to a coverage group so the whole list's AI value and citation activity show up as one number instead of a spreadsheet of one-off scores.\"}]},\"_meta\":{\"filePath\":\"how-to-build-a-pr-pitch-list-ai-can-actually-see.mdx\",\"fileName\":\"how-to-build-a-pr-pitch-list-ai-can-actually-see.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-build-a-pr-pitch-list-ai-can-actually-see\"},\"body\":\"$86\",\"locale\":\"en\",\"path\":\"how-to-build-a-pr-pitch-list-ai-can-actually-see\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"87:T2c60,"])</script>
2<script>self.__next_f.push([1,"To find and fix AI citation blockers, run a full-site audit that scores every page across the dimensions AI actually cares about, then triage the findings by scoring weight instead of raw count. Fix the highest-weight issues on your highest-priority pages first, turn those pages into a tracked project, and score a few of them against a real search query to confirm the fix would actually win a citation. Re-audit the same pages afterward and compare the numbers directly; that's the only way to know the fix landed instead of just looking right in the CMS.\n\nMost sites accumulate these blockers by accident. Nobody sets out to render pricing pages entirely in JavaScript or ship a blog post with no author byline. It happens one CMS default, one theme update, one migration at a time, and none of it shows up in a normal SEO checklist because none of it is really about ranking in Google. It's about whether an AI crawler can even parse the page in the first place.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-readiness-audit).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Run the audit | Scoring every page across seven dimensions | A completed audit with per-page findings |\n| 2. Triage findings | Sorting by weight and page importance | A short, ranked priority list, not a raw findings dump |\n| 3. Fix the blockers | Resolving the highest-weight issues first | Dimension scores rising on your priority pages |\n| 4. Track and sharpen | Turning fixed pages into a project, scoring against a real query | A project tracking the pages, a passing pipeline score |\n| 5. Re-audit | Confirming the fix in a fresh crawl | Site score up, same findings gone |\n\n## Run a full-site audit\n\nStart with a full crawl, not a spot check. A citation blocker on your homepage and the same blocker on a product page you never look at both cost you the same way: AI can't cite either one. An audit that scores every page (or a representative slice of every page type) is the only way to find blockers you didn't know to look for.\n\nA useful audit scores each page across several independent dimensions rather than producing one vague number. At minimum you want: how much content renders without JavaScript (GPTBot, ClaudeBot, and Googlebot for Gemini all skip client-side rendering by default), whether the right structured data is present, whether the content is actually structured for an AI system to lift a passage from, how fast the page responds, whether it carries trust signals like an author and a date, whether it's written at a readable level, and whether it follows basic accessibility practices. A page can look fine to a person and still fail several of these silently.\n\n\u003cWorkflowCallout\n  title=\"One crawl, seven dimensions, a finding for every issue\"\n  page=\"AI Readiness Audit\"\n  href=\"/docs/dashboards/ai-readiness-audit\"\n  signal={{\n    kind: \"count\",\n    label: \"Site score\",\n    value: 58,\n    target: 75,\n    caption: \"46 pages audited · 9 critical findings\",\n  }}\n\u003e\n  The AI Readiness Audit crawls every page you select and scores it across seven weighted dimensions, from static content ratio to structured data to E-E-A-T. Each page gets a full findings list with a specific recommendation attached, not just a score.\n\u003c/WorkflowCallout\u003e\n\n## Triage the findings by impact\n\nA full-site audit can easily return hundreds of findings. Fixing them in the order they appear on the page is a bad plan; some findings barely move the needle and some are the whole reason a page never gets cited. Triage by two things: how much weight that dimension carries in the overall score, and how important the page itself is to your business.\n\n| Dimension | Typical weight | What a low score usually means | Fix effort |\n| :--- | :--- | :--- | :--- |\n| Static content | 22% | JavaScript-only rendering; crawlers see a blank page | Needs engineering (SSR/SSG) |\n| Citation readiness | 20% | No extractable answer near the top of the page | Content rewrite |\n| Structured data | 18% | Missing or wrong JSON-LD schema for the page type | Fast, often no-code |\n| Performance | 14% | Server response above 2 seconds to a crawler request | Needs engineering |\n| E-E-A-T signals | 14% | No author byline, no publish or modified date | Fast, often no-code |\n| Readability | 10% | Sentences and sections too dense to summarize cleanly | Content rewrite |\n| Accessibility | 10% | Missing alt text, broken heading order | Fast, often no-code |\n\nStatic content, citation readiness, and structured data carry the most weight, so a critical finding in any of those three is worth more of your attention than ten minor accessibility warnings. Cross-reference that against which pages actually matter: a critical finding on your top product page outranks the same finding on an old archived post, even though the audit lists them side by side.\n\n\u003cWorkflowCallout\n  title=\"Findings grouped by type, not buried in a per-page list\"\n  page=\"AI Readiness Audit\"\n  href=\"/docs/dashboards/ai-readiness-audit\"\n  signalCaption=\"Top blockers found\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Static content ratio critical on 14 pages\", done: false },\n      { label: \"Structured data missing on all product pages\", done: false },\n      { label: \"No author byline on 22 blog posts\", done: false },\n    ],\n  }}\n\u003e\n  The summary panel groups findings by type across the whole audit, so \"16 pages have a citation issue\" is a single line you can act on instead of something you'd have to notice one page at a time. Filter the results table by score range to pull just the critical pages.\
2n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-find-and-fix-ai-citation-blockers-quote.webp\"\n  quote=\"A site audit tells you what's broken. A tracked project tells you whether fixing it actually got you cited.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-find-and-fix-ai-citation-blockers\"\n/\u003e\n\n## Fix the blockers on your priority pages\n\nWork the list top to bottom: highest-weight dimension, highest-priority page, first. A server-rendering fix that resolves a critical static-content finding across your whole product catalog is worth more than a week of small accessibility tweaks spread across the long tail. Route findings to the right owner as you go; some are a content edit you can make directly in the CMS, and some need an engineering ticket, so don't let the ones you can't fix yourself block the ones you can.\n\nDon't try to clear every finding on every page in one pass. A focused fix on the pages that actually drive citations and revenue beats a shallow pass across the entire site, and it gives you a clean before-and-after to point to when you re-audit.\n\n\u003cWorkflowCallout\n  title=\"A fix shows up as a dimension score, not a vibe\"\n  page=\"AI Readiness Audit\"\n  href=\"/docs/dashboards/ai-readiness-audit\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Static content ratio\",\n    before: \"34\",\n    after: \"81\",\n    tone: \"positive\",\n    caption: \"server-rendered the pricing and product pages\",\n  }}\n\u003e\n  The page detail panel shows before (static HTML) and after (JavaScript-rendered) screenshots side by side, so you can see exactly what a crawler was missing. Re-run the audit on the fixed pages and the dimension score moves with the fix.\n\u003c/WorkflowCallout\u003e\n\n## Track the fix and sharpen priority pages against real queries\n\nOnce your priority pages are fixed, don't let the work disappear back into a spreadsheet. Turn the page group you just worked through into a tracked project so any AI citation on those pages going forward is attributed to this specific effort, not lost in y
2our site-wide averages.\n\nWhile you're there, take your highest-priority fixed pages one step further. A page can pass every audit dimension and still lose the actual search that matters to a competitor's page. Score your top pages against a real, tracked search query to see whether they'd survive AI's retrieval pipeline for that exact query, not just score well in general. This is the same query-first check used in [how to win a target AI grounding search](/blog/how-to-win-a-target-ai-grounding-search); running it here confirms the fix holds up against a real search, not just a general score.\n\n\u003cWorkflowCallout\n  title=\"One click turns an audit into a tracked project\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"count\",\n    label: \"Priority pages in project\",\n    value: 12,\n    target: 12,\n    caption: \"created from the audit's Critical + Warning pages\",\n  }}\n\u003e\n  The folder icon on a completed audit creates a page group from every audited page and drops you straight into a new SEO project with that group pre-selected. Add your target prompts and the fix is tracked from here forward, with an alert the moment any of these pages gets cited.\n\u003c/WorkflowCallout\u003e\n\n## Re-audit to confirm the fix landed\n\nA fix isn't done when it ships; it's done when the next crawl agrees with you. CMS previews and staging environments don't always match what a crawler actually sees in production, and a deploy that looked clean can still leave the old static HTML cached at the edge. Re-run the audit against the same page group you started with and compare the numbers directly, not from memory.\n\nExpect most of the movement in the dimensions you actually touched. A structured-data fix should show up as a structured-data score jump, not a vague overall bump. If a dimension you fixed didn't move, the fix probably didn't ship the way you think it did, and it's worth checking the live page before moving on.\n\n\u003cWorkflowCallout\n  title=\"Same page group, same dimensions, a real before and after\"\n  page=\"AI Readiness Audit\"\n  href=\"/docs/dashboards/ai-readiness-audit\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Site score\",\n    before: \"58\",\n    after: \"79\",\n    tone: \"positive\",\n    caption: \"re-audited the same page group two weeks later\",\n    series: [58, 61, 64, 68, 71, 74, 77, 79],\n  }}\n\u003e\n  Saved page groups make this a one-click re-run against the exact same pages, so the comparison is apples to apples. The audit history keeps every run, so you can point to the specific date the score moved.\n\u003c/WorkflowCallout\u003e\n\n## Blockers are found in a crawl, not a checklist\n\nThe pattern holds regardless of which tool runs the crawl: audit broadly, triage by weight and page importance, fix the pages that matter first, track the fix so it doesn't get lost, and re-audit before you call it done. Skipping the triage step is the most common way this goes wrong; teams burn a sprint on accessibility warnings while a critical structured-data gap sits untouched on the page that actually drives pipeline.\n\nIf you're optimizing pages you already have rather than starting from a site-wide audit, [optimizing existing content for AI citation](/blog/how-to-optimize-existing-content-for-ai-citation) covers that page-first version of the work. And if you haven't run a baseline audit yet, a free [AI Readiness Audit](/ai-readiness-audit) shows you exactly where your site stands before you fix anything.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"88:T404a,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var w=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),b=(i,e)=\u003e{for(var n in e)s(i,n,{get:e[n],enumerable:!0})},o=(i,e,n,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of f(e))!m.call(i,r)\u0026\u0026r!==n\u0026\u0026s(i,r,{get:()=\u003ee[r],enumerable:!(a=p(e,r))||a.enumerable});return i};var x=(i,e,n)=\u003e(n=i!=null?u(y(i)):{},o(e||!i||!i.__esModule?s(n,\"default\",{value:i,enumerable:!0}):n,i)),A=i=\u003eo(s({},\"__esModule\",{value:!0}),i);var d=w((S,l)=\u003e{l.exports=_jsx_runtime});var k={};b(k,{default:()=\u003eg});var t=x(d());function h(i){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...i.components},{PullQuote:n,WorkflowCallout:a}=e;return n||c(\"PullQuote\",!0),a||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To find and fix AI citation blockers, run a full-site audit that scores every page across the dimensions AI actually cares about, then triage the findings by scoring weight instead of raw count. Fix the highest-weight issues on your highest-priority pages first, turn those pages into a tracked project, and score a few of them against a real search query to confirm the fix would actually win a citation. Re-audit the same pages afterward and compare the numbers directly; that's the only way to know the fix landed instead of just looking right in the CMS.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most sites accumulate these blockers by accident. Nobody sets out to render pricing pages entirely in JavaScript or ship a blog post with no author byline. It happens one CMS default, one theme update, one migration at a time, and none of it shows up in a normal SEO checklist because none of it is really about ranking in Google. It's about whether an AI crawler can even parse the page in the first place.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Run the audit\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scoring every page across seven dimensions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"A completed audit with per-page findings\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Triage findings\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Sorting by weight and page importance\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A short, ranked priority list, not a raw findings dump\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Fix the blockers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Resolving the highest-weight issues first\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Dimension scores rising on your priority pages\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Track and sharpen\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Turning fixed pages into a project, scoring against a real query\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A project tracking the pages, a passing pipeline score\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Re-audit\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Confirming the fix in a fresh crawl\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Site score up, same findings gone\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Run a full-site audit\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with a full crawl, not a spot check. A citation blocker on your homepage and the same blocker on a product page you never look at both cost you the same way: AI can't cite either one. An audit that scores every page (or a representative slice of every page type) is the only way to find blockers you didn't know to look for.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A useful audit scores each page across several independent dimensions rather than producing one vague number. At minimum you want: how much content renders without JavaScript (GPTBot, ClaudeBot, and Googlebot for Gemini all skip client-side rendering by default), whether the right structured data is present, whether the content is actually structured for an AI system to lift a passage from, how fast the page responds, whether it carries trust signals like an author and a date, whether it's written at a readable level, and whether it follows basic accessibility practices. A page can look fine to a person and still fail several of these silently.\"}),`\n`,(0,t.jsx)(a,{title:\"One crawl, seven dimensions, a finding for every issue\",page:\"AI Readiness Audit\",href:\"/docs/dashboards/ai-readiness-audit\",signal:{kind:\"count\",label:\"Site score\",value:58,target:75,caption:\"46 pages audited \\xB7 9 critical findings\"},children:(0,t.jsx)(e.p,{children:\"The AI Readiness Audit crawls every page you select and scores it across seven weighted dimensions, from static content ratio to structured data to E-E-A-T. Each page gets a full findings list with a specific recommendation attached, not just a score.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Triage the findings by impact\"}),`\n`,(0,t.jsx)(e.p,{children:\"A full-site audit can easily return hundreds of findings. Fixing them in the order they appear on the page is a bad plan; some findings barely move the needle and some are the whole reason a page never gets cited. Triage by two things: how much weight that dimension carries in the overall score, and how important the page itself is to your business.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Dimension\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Typical weight\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What a low score usually means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Fix effort\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Static content\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"22%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"JavaScript-only rendering; crawlers see a blank page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Needs engineering (SSR/SSG)\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Citation readiness\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"20%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"No extractable answer near the top of the page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Content rewrite\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Structured data\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"18%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Missing or wrong JSON-LD schema for the page type\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fast, often no-code\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Performance\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"14%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Server response above 2 seconds to a crawler request\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Needs engineering\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"E-E-A-T signals\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"14%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"No author byline, no publish or modified date\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fast, often no-code\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Readability\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"10%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Sentences and sections too dense to summarize cleanly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Content rewrite\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Accessibility\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"10%\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Missing alt text, broken heading order\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fast, often no-code\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Static content, citation readiness, and structured data carry the most weight, so a critical finding in any of those three is worth more of your attention than ten minor accessibility warnings. Cross-reference that against which pages actually matter: a critical finding on your top product page outranks the same finding on an old archived post, even though the audit lists them side by side.\"}),`\n`,(0,t.jsx)(a,{title:\"Findings grouped by type, not buried in a per-page list\",page:\"AI Readiness Audit\",href:\"/docs/dashboards/ai-readiness-audit\",signalCaption:\"Top blockers found\",signal:{kind:\"checklist\",items:[{label:\"Static content ratio critical on 14 pages\",done:!1},{label:\"Structured data missing on all product pages\",done:!1},{label:\"No author byline on 22 blog posts\",done:!1}]},children:(0,t.jsx)(e.p,{children:`The summary panel groups findings by type across the whole audit, so \"16 pages have a citation issue\" is a single line you can act on instead of something you'd have to notice one page at a time. Filter the results table by score range to pull just the critical pages.`})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-find-and-fix-ai-citation-blockers-quote.webp\",quote:\"A site audit tells you what's broken. A tracked project tells you whether fixing it actually got you cited.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-find-and-fix-ai-citation-blockers\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Fix the blockers on your priority pages\"}),`\n`,(0,t.jsx)(e.p,{children:\"Work the list top to bottom: highest-weight dimension, highest-priority page, first. A server-rendering fix that resolves a critical static-content finding across your whole product catalog is worth more than a week of small accessibility tweaks spread across the long tail. Route findings to the right owner as you go; some are a content edit you can make directly in the CMS, and some need an engineering ticket, so don't let the ones you can't fix yourself block the ones you can.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Don't try to clear every finding on every page in one pass. A focused fix on the pages that actually drive citations and revenue beats a shallow pass across the entire site, and it gives you a clean before-and-after to point to when you re-audit.\"}),`\n`,(0,t.jsx)(a,{title:\"A fix shows up as a dimension score, not a vibe\",page:\"AI Readiness Audit\",href:\"/docs/dashboards/ai-readiness-audit\",signal:{kind:\"beforeAfter\",label:\"Static content ratio\",before:\"34\",after:\"81\",tone:\"positive\",caption:\"server-rendered the pricing and product pages\"},children:(0,t.jsx)(e.p,{children:\"The page detail panel shows before (static HTML) and after (JavaScript-rendered) screenshots side by side, so you can see exactly what a crawler was missing. Re-run the audit on the fixed pages and the dimension score moves with the fix.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Track the fix and sharpen priority pages against real queries\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once your priority pages are fixed, don't let the work disappear back into a spreadsheet. Turn the page group you just worked through into a tracked project so any AI citation on those pages going forward is attributed to this specific effort, not lost in y
2our site-wide averages.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"While you're there, take your highest-priority fixed pages one step further. A page can pass every audit dimension and still lose the actual search that matters to a competitor's page. Score your top pages against a real, tracked search query to see whether they'd survive AI's retrieval pipeline for that exact query, not just score well in general. This is the same query-first check used in \",(0,t.jsx)(e.a,{href:\"/blog/how-to-win-a-target-ai-grounding-search\",children:\"how to win a target AI grounding search\"}),\"; running it here confirms the fix holds up against a real search, not just a general score.\"]}),`\n`,(0,t.jsx)(a,{title:\"One click turns an audit into a tracked project\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"count\",label:\"Priority pages in project\",value:12,target:12,caption:\"created from the audit's Critical + Warning pages\"},children:(0,t.jsx)(e.p,{children:\"The folder icon on a completed audit creates a page group from every audited page and drops you straight into a new SEO project with that group pre-selected. Add your target prompts and the fix is tracked from here forward, with an alert the moment any of these pages gets cited.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Re-audit to confirm the fix landed\"}),`\n`,(0,t.jsx)(e.p,{children:\"A fix isn't done when it ships; it's done when the next crawl agrees with you. CMS previews and staging environments don't always match what a crawler actually sees in production, and a deploy that looked clean can still leave the old static HTML cached at the edge. Re-run the audit against the same page group you started with and compare the numbers directly, not from memory.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Expect most of the movement in the dimensions you actually touched. A structured-data fix should show up as a structured-data score jump, not a vague overall bump. If a dimension you fixed didn't move, the fix probably didn't ship the way you think it did, and it's worth checking the live page before moving on.\"}),`\n`,(0,t.jsx)(a,{title:\"Same page group, same dimensions, a real before and after\",page:\"AI Readiness Audit\",href:\"/docs/dashboards/ai-readiness-audit\",signal:{kind:\"beforeAfter\",label:\"Site score\",before:\"58\",after:\"79\",tone:\"positive\",caption:\"re-audited the same page group two weeks later\",series:[58,61,64,68,71,74,77,79]},children:(0,t.jsx)(e.p,{children:\"Saved page groups make this a one-click re-run against the exact same pages, so the comparison is apples to apples. The audit history keeps every run, so you can point to the specific date the score moved.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Blockers are found in a crawl, not a checklist\"}),`\n`,(0,t.jsx)(e.p,{children:\"The pattern holds regardless of which tool runs the crawl: audit broadly, triage by weight and page importance, fix the pages that matter first, track the fix so it doesn't get lost, and re-audit before you call it done. Skipping the triage step is the most common way this goes wrong; teams burn a sprint on accessibility warnings while a critical structured-data gap sits untouched on the page that actually drives pipeline.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're optimizing pages you already have rather than starting from a site-wide audit, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"optimizing existing content for AI citation\"}),\" covers that page-first version of the work. And if you haven't run a baseline audit yet, a free \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Audit\"}),\" shows you exactly where your site stands before you fix anything.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function g(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(h,{...i})}):h(i)}function c(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return A(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"2c:[\"$\",\"$L10\",\"how-to-find-and-fix-ai-citation-blockers\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$87\",\"title\":\"How to Find and Fix AI Citation Blockers\",\"date\":\"2026-08-06\",\"image\":\"/images/blog/how-to-find-and-fix-ai-citation-blockers.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A full-site audit hands you a list of a hundred things wrong with your pages. Not all of them are stopping AI from citing you. Here's how to tell the difference, fix what actually matters, and prove the fix worked.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"AI Citation\",\"Site Audit\"],\"published\":true,\"faq\":[{\"question\":\"What actually counts as a \\\"citation blocker\\\"?\",\"answer\":\"Anything that stops an AI crawler from reading, trusting, or lifting a passage from your page. That covers a wide range, content that only renders after JavaScript, missing or broken structured data, no author byline or publish date, a slow server response, or a heading structure that hides where the actual answer is. Some are a five-minute schema fix. Others need a rendering change from engineering. A seven-dimension audit catches most of them in one pass; sorting them by real impact is the harder part.\"},{\"question\":\"How do I know which audit findings to fix first?\",\"answer\":\"Weight and severity, not gut feel. Static content, structured data, and citation readiness carry the most weight in the overall score, so a critical finding in one of those three moves the needle more than ten minor findings in accessibility. Inside a single page, fix critical findings before warnings, and fix the pages your audit already flagged as high-traffic or high-intent before the long tail.\"},{\"question\":\"What's the difference between the site audit and the Citation Optimizer?\",\"answer\":\"The audit is a broad diagnostic. It scores every page you crawl across seven dimensions and tells you what's generally wrong. The Citation Optimizer is narrow and specific. It scores one page against one real search query and shows exactly which pipeline stage that page fails for that query. Run the audit to find your blockers site-wide, then run the optimizer on your fixed priority pages to confirm they'd actually win a specific search, not just score better in general.\"},{\"question\":\"Do I need engineering help to fix most of these?\",\"answer\":\"Some findings, yes. Server-rendering JavaScript content or fixing Time to First Byte usually needs a developer. Most others don't. Adding a meta description, writing an author byline, adding FAQ schema, or restructuring a page's headings are edits a marketer can make directly in most CMSs. Sort your findings by who needs to fix them, and get the no-code list moving while you file a ticket for the rest.\"}],\"howTo\":{\"name\":\"How to find and fix AI citation blockers\",\"description\":\"A step-by-step guide for in-house marketing teams to audit a site for AI citation blockers, prioritize the fixes that matter, and verify the fix actually worked.\",\"steps\":[{\"name\":\"Run a full-site audit\",\"text\":\"Crawl your site and score every page across the dimensions that determine whether AI can read, trust, and cite it, instead of guessing which pages have a problem.\"},{\"name\":\"Triage the findings by impact\",\"text\":\"Sort findings by scoring weight and page importance so you fix the handful of issues actually blocking citations, not the longest list of minor warnings.\"},{\"name\":\"Fix the blockers on your priority pages\",\"text\":\"Work through the highest-weight findings on your highest-priority pages first, since a handful of targeted fixes usually beats a broad pass across every page.\"},{\"name\":\"Track the fix and sharpen priority pages against real queries\",\"text\":\"Turn the pages you just fixed into a tracked project, then score the most important ones against a real target query to confirm they'd actually win it.\"},{\"name\":\"Re-audit to confirm the fix landed\",\"text\":\"Run the audit again on the same pages and compare scores directly, since a fix that looks right in the CMS doesn't count until it shows up in the next crawl.\"}]},\"_meta\":{\"filePath\":\"how-to-find-and-fix-ai-citation-blockers.mdx\",\"fileName\":\"how-to-find-and-fix-ai-citation-blockers.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-find-and-fix-ai-citation-blockers\"},\"body\":\"$88\",\"locale\":\"en\",\"path\":\"how-to-find-and-fix-ai-citation-blockers\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"89:T2317,"])</script>
2<script>self.__next_f.push([1,"Four days ago we published a study on our own prompt generator and ended it with a bet. If a synthetic prompt panel were built to match how real buyers actually phrase things, sub-intent by sub-intent, the data said it should mirror a human panel at every level. We pre-registered that test, froze the panels before collecting anything, and committed to publishing whatever came back.\n\nHalf the bet paid. The half that failed turned out to be the more useful result.\n\n## Key takeaways\n\n- Synthetic prompts matched to real human sub-intent produced answers that are statistically indistinguishable from human prompts, overlapping at 0.516 against a human to human baseline of 0.517.\n- That same panel still missed the human brand share vector by 8.9 percentage points, against the 5 point equivalence band registered in advance.\n- The disagreement is about frequency, not membership. Both panels surfaced the same six brands in nearly the same order, with a rank correlation of 0.87.\n- Within a single use case, 82 percent of human prompts and 72 percent of synthetic prompts surfaced Apple at least once, but 9.5 percent versus 0 percent surfaced it in all five daily runs.\n- Letting a brand name its own use cases does not repair the percentage. Restricting the comparison to prompts sharing a use case left the gap at 0.085, against 0.089 unrestricted.\n- Synthetic prompts are as self consistent as human prompts when re run, so the gap is systematic rather than random noise.\n- Accuracy depends on rank. The two best known brands came back within 6 percent of their real numbers, the fifth and sixth were off by 33 and 46 percent, and several smaller brands never appeared in the synthetic panel at all.\n\n## What we did\n\nWe took 143 prompts that real people wrote for one buying intent, headphones as a travel gift, from SparkToro's survey data. Then we generated a synthetic panel built to match that human panel's profile across six dimensions of how people ask: travel context, music use, budget limits, named recipients, form factor, and wireless. A second synthetic panel got no matching at all, as a control. All three ran against ChatGPT every day for five days. 1,230 runs evaluated in this study.\n\nThe hypotheses, the equivalence bands, the panels, and the analysis code were frozen before we collected a single answer. [The full study is on our research site](https://research.spyglasses.io/articles/subintent-matched-panels), including the complete text of both synthetic panels so anyone can re run them and check us.\n\n## What we found\n\n**The prompts themselves are now interchangeable with human ones.** Pick a synthetic prompt and a human prompt at random, compare the two answers, and they agree as much as two differently worded human prompts agree with each other. The overlap was 0.516 against a human baseline of 0.517. Our equivalence band was 0.10 and the difference came in at 0.001. This is the closest match to human phrasing we have measured, and it beat our own prediction.\n\n**The panel's percentages still missed.** Averaged across the six brands humans mention most, the matched panel sat 8.9 points away from the human panel. Better than the unmatched control at 13.7, better than last month's neutral panel at 11.2, and still outside the 5 point band we committed to. The prediction failed and we are reporting it as a failure.\n\n**But \"the percentages missed\" describes something narrower than it sounds.** A share figure pools a yes or no per answer, so being off by 8.9 points can mean two very different things. Either the panel surfaces different brands, or it surfaces the same brands at different rates. We split the statistic to find out.\n\nWithin the travel use case, the panels agree on which brands belong. Counting prompts that surfaced each brand at least once across their five runs: Sony 99 percent of human prompts and 96 percent of synthetic, Bose 95 and 96, Sennheiser 94 and 89, Anker 91 and 100. Even the worst case, Apple, was 82 against 72. Both panels returned the same six brand consideration set in nearly the same order.\n\nWhere they part company is how often. Apple came back in all five runs for 9.5 percent of human prompts and none of the synthetic ones. Sennheiser, 59 percent against 22. The two panels see the same market and report it at different volumes.\n\n**How far off the percentage runs depends on where you sit in the ranking.** The panel is nearly exact at the top and drifts badly toward the bottom. Measured against each brand's own human number:\n\n| Brand | Rank in the human panel | How far the synthetic panel was off |\n|---|---|---|\n| Bose | 2 | 0.6 percent |\
2n| Sony | 1 | 6.4 percent |\n| Anker | 4 | 12.0 percent |\n| Sennheiser | 3 | 13.2 percent |\n| JBL | 6 | 33.1 percent |\n| Apple | 5 | 45.8 percent |\n\nBelow those six it gets worse. Several brands that real prompts surfaced in 2 to 4 percent of answers never showed up in the synthetic panel at all, including Bowers and Wilkins, Sonos, Focal, and Beyerdynamic. Two went the other way, with Shokz appearing 2.6 times more often in the synthetic panel than real prompts produced.\n\nThat direction matters for how you read your own number. It is not that smaller brands get undercounted. It is that below the top few, the number stops being reliable in either direction.\n\n**Naming your own use cases will not fix the percentage.** The intuitive workaround is to have a brand list the use cases it cares about and generate prompts for those, sidestepping the need to match a mix at all. We tested it by comparing only prompts that carried the same use case. The gap did not move: 0.085 within travel, against 0.089 for the unrestricted comparison. You get a realistic brand list either way, and 
2you do not get a trustworthy percentage.\n\n**Synthetic prompts are not flaky, which cuts against what we published last month.** Re run five times, a synthetic prompt is as self consistent as a human one. Our previous study measured all three of its synthetic panels as materially noisier than the human panel and concluded that synthetic prompts occupy a less stable region of the response space. This study could not replicate that. The two studies' intervals overlap, so this is a failure to replicate rather than a refutation, but the general claim does not survive. We are reporting it because a research program built on registering predictions in advance has to publish the numbers that cut against it first.\n\n## What this means for reading your dashboard\n\n- **Read the ordering, not the percentage.** If a share of voice figure comes from a synthetic panel, the brand list and the rough ranking are the parts this evidence supports. The percentage is softer than it looks.\n- **The consideration set is the reliable output.** \"Who am I competing with for this use case, and roughly where do I stand\" is a question synthetic panels answer well, and it is enough to drive content planning and competitive positioning.\n- **Ask what your panel never asks.** Our matched panel hit all six dimensions it was told to match and stayed silent on nine others. It never asked about watching films on a plane, which appeared in 31 percent of human prompts, or the recipient's age, or how many options to return. It reproduced 13 percent of the distinct ways real people combined those dimensions. Coverage of the combinations your buyers actually use is the thing worth interrogating.\n- **Be most careful if you are not one of the category leaders.** The two best known brands in our study came back within 6 percent of their real numbers. The fifth and sixth were off by 33 and 46 percent, and brands below them were often missing entirely or, in two cases, substantially overstated. If you are the challenger in a category, your specific number is the least reliable one on the page, and it can err in your favor as easily as against you.\n\n## What this changes in Spyglasses\n\nWe ran this study on our own methodology, so the obligations land on us first.\n\n- **We are separating the two questions in the product.** \"Which brands compete for this use case, and where do you rank\" is what the evidence supports, so that is what gets the prominent treatment. Percentage share of voice keeps its place, with the ordering carrying the interpretation.\n- **Phrasing coverage becomes a reported number, not an internal one.** The share of distinct buyer phrasing profiles a panel reproduces was 13 percent here. That is a measurable property of any panel and we would rather show it than have it sit unexamined.\n- **We publish our own instrument's errors.** The audit for this study found our brand extractor counts brands used as platform references, which inflated the single largest gap in the article by roughly 18 percent, in the direction that made our own headline look better. It is in the study, with the corrected numbers.\n\n[Read the full study, the pre-registered predictions, and both datasets](https://research.spyglasses.io/articles/subintent-matched-panels)."])</script>
2<script>self.__next_f.push([1,"8a:T3128,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var y=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)s(n,a,{get:e[a],enumerable:!0})},h=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of m(e))!f.call(n,r)\u0026\u0026r!==a\u0026\u0026s(n,r,{get:()=\u003ee[r],enumerable:!(i=u(e,r))||i.enumerable});return n};var w=(n,e,a)=\u003e(a=n!=null?p(g(n)):{},h(e||!n||!n.__esModule?s(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003eh(s({},\"__esModule\",{value:!0}),n);var d=y((x,o)=\u003e{o.exports=_jsx_runtime});var k={};b(k,{default:()=\u003ec});var t=w(d());function l(n){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Four days ago we published a study on our own prompt generator and ended it with a bet. If a synthetic prompt panel were built to match how real buyers actually phrase things, sub-intent by sub-intent, the data said it should mirror a human panel at every level. We pre-registered that test, froze the panels before collecting anything, and committed to publishing whatever came back.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Half the bet paid. The half that failed turned out to be the more useful result.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Key takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Synthetic prompts matched to real human sub-intent produced answers that are statistically indistinguishable from human prompts, overlapping at 0.516 against a human to human baseline of 0.517.\"}),`\n`,(0,t.jsx)(e.li,{children:\"That same panel still missed the human brand share vector by 8.9 percentage points, against the 5 point equivalence band registered in advance.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The disagreement is about frequency, not membership. Both panels surfaced the same six brands in nearly the same order, with a rank correlation of 0.87.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Within a single use case, 82 percent of human prompts and 72 percent of synthetic prompts surfaced Apple at least once, but 9.5 percent versus 0 percent surfaced it in all five daily runs.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Letting a brand name its own use cases does not repair the percentage. Restricting the comparison to prompts sharing a use case left the gap at 0.085, against 0.089 unrestricted.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Synthetic prompts are as self consistent as human prompts when re run, so the gap is systematic rather than random noise.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Accuracy depends on rank. The two best known brands came back within 6 percent of their real numbers, the fifth and sixth were off by 33 and 46 percent, and several smaller brands never appeared in the synthetic panel at all.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"What we did\"}),`\n`,(0,t.jsx)(e.p,{children:\"We took 143 prompts that real people wrote for one buying intent, headphones as a travel gift, from SparkToro's survey data. Then we generated a synthetic panel built to match that human panel's profile across six dimensions of how people ask: travel context, music use, budget limits, named recipients, form factor, and wireless. A second synthetic panel got no matching at all, as a control. All three ran against ChatGPT every day for five days. 1,230 runs evaluated in this study.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The hypotheses, the equivalence bands, the panels, and the analysis code were frozen before we collected a single answer. \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/subintent-matched-panels\",children:\"The full study is on our research site\"}),\", including the complete text of both synthetic panels so anyone can re run them and check us.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"What we found\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The prompts themselves are now interchangeable with human ones.\"}),\" Pick a synthetic prompt and a human prompt at random, compare the two answers, and they agree as much as two differently worded human prompts agree with each other. The overlap was 0.516 against a human baseline of 0.517. Our equivalence band was 0.10 and the difference came in at 0.001. This is the closest match to human phrasing we have measured, and it beat our own prediction.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The panel's percentages still missed.\"}),\" Averaged across the six brands humans mention most, the matched panel sat 8.9 points away from the human panel. Better than the unmatched control at 13.7, better than last month's neutral panel at 11.2, and still outside the 5 point band we committed to. The prediction failed and we are reporting it as a failure.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:'But \"the percentages missed\" describes something narrower than 
2it sounds.'}),\" A share figure pools a yes or no per answer, so being off by 8.9 points can mean two very different things. Either the panel surfaces different brands, or it surfaces the same brands at different rates. We split the statistic to find out.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Within the travel use case, the panels agree on which brands belong. Counting prompts that surfaced each brand at least once across their five runs: Sony 99 percent of human prompts and 96 percent of synthetic, Bose 95 and 96, Sennheiser 94 and 89, Anker 91 and 100. Even the worst case, Apple, was 82 against 72. Both panels returned the same six brand consideration set in nearly the same order.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Where they part company is how often. Apple came back in all five runs for 9.5 percent of human prompts and none of the synthetic ones. Sennheiser, 59 percent against 22. The two panels see the same market and report it at different volumes.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"How far off the percentage runs depends on where you sit in the ranking.\"}),\" The panel is nearly exact at the top and drifts badly toward the bottom. Measured against each brand's own human number:\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{children:\"Brand\"}),(0,t.jsx)(e.th,{children:\"Rank in the human panel\"}),(0,t.jsx)(e.th,{children:\"How far the synthetic panel was off\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:\"Bose\"}),(0,t.jsx)(e.td,{children:\"2\"}),(0,t.jsx)(e.td,{children:\"0.6 percent\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:\"Sony\"}),(0,t.jsx)(e.td,{children:\"1\"}),(0,t.jsx)(e.td,{children:\"6.4 percent\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:\"Anker\"}),(0,t.jsx)(e.td,{children:\"4\"}),(0,t.jsx)(e.td,{children:\"12.0 percent\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:\"Sennheiser\"}),(0,t.jsx)(e.td,{children:\"3\"}),(0,t.jsx)(e.td,{children:\"13.2 percent\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:\"JBL\"}),(0,t.jsx)(e.td,{children:\"6\"}),(0,t.jsx)(e.td,{children:\"33.1 percent\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{children:\"Apple\"}),(0,t.jsx)(e.td,{children:\"5\"}),(0,t.jsx)(e.td,{children:\"45.8 percent\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:\"Below those six it gets worse. Several brands that real prompts surfaced in 2 to 4 percent of answers never showed up in the synthetic panel at all, including Bowers and Wilkins, Sonos, Focal, and Beyerdynamic. Two went the other way, with Shokz appearing 2.6 times more often in the synthetic panel than real prompts produced.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That direction matters for how you read your own number. It is not that smaller brands get undercounted. It is that below the top few, the number stops being reliable in either direction.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Naming your own use cases will not fix the percentage.\"}),\" The intuitive workaround is to have a brand list the use cases it cares about and generate prompts for those, sidestepping the need to match a mix at all. We tested it by comparing only prompts that carried the same use case. The gap did not move: 0.085 within travel, against 0.089 for the unrestricted comparison. You get a realistic brand list either way, and 
2you do not get a trustworthy percentage.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Synthetic prompts are not flaky, which cuts against what we published last month.\"}),\" Re run five times, a synthetic prompt is as self consistent as a human one. Our previous study measured all three of its synthetic panels as materially noisier than the human panel and concluded that synthetic prompts occupy a less stable region of the response space. This study could not replicate that. The two studies' intervals overlap, so this is a failure to replicate rather than a refutation, but the general claim does not survive. We are reporting it because a research program built on registering predictions in advance has to publish the numbers that cut against it first.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"What this means for reading your dashboard\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Read the ordering, not the percentage.\"}),\" If a share of voice figure comes from a synthetic panel, the brand list and the rough ranking are the parts this evidence supports. The percentage is softer than it looks.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The consideration set is the reliable output.\"}),' \"Who am I competing with for this use case, and roughly where do I stand\" is a question synthetic panels answer well, and it is enough to drive content planning and competitive positioning.']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Ask what your panel never asks.\"}),\" Our matched panel hit all six dimensions it was told to match and stayed silent on nine others. It never asked about watching films on a plane, which appeared in 31 percent of human prompts, or the recipient's age, or how many options to return. It reproduced 13 percent of the distinct ways real people combined those dimensions. Coverage of the combinations your buyers actually use is the thing worth interrogating.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Be most careful if you are not one of the category leaders.\"}),\" The two best known brands in our study came back within 6 percent of their real numbers. The fifth and sixth were off by 33 and 46 percent, and brands below them were often missing entirely or, in two cases, substantially overstated. If you are the challenger in a category, your specific number is the least reliable one on the page, and it can err in your favor as easily as against you.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"What this changes in Spyglasses\"}),`\n`,(0,t.jsx)(e.p,{children:\"We ran this study on our own methodology, so the obligations land on us first.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"We are separating the two questions in the product.\"}),' \"Which brands compete for this use case, and where do you rank\" is what the evidence supports, so that is what gets the prominent treatment. Percentage share of voice keeps its place, with the ordering carrying the interpretation.']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Phrasing coverage becomes a reported number, not an internal one.\"}),\" The share of distinct buyer phrasing profiles a panel reproduces was 13 percent here. That is a measurable property of any panel and we would rather show it than have it sit unexamined.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"We publish our own instrument's errors.\"}),\" The audit for this study found our brand extractor counts brands used as platform references, which inflated the single largest gap in the article by roughly 18 percent, in the direction that made our own headline look better. It is in the study, with the corrected numbers.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/subintent-matched-panels\",children:\"Read the full study, the pre-registered predictions, and both datasets\"}),\".\"]})]})}function c(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}return v(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"2d:[\"$\",\"$L10\",\"we-matched-synthetic-prompts-to-human-intent\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$89\",\"title\":\"We Matched Synthetic Prompts to Real Human Intent. The Brand List Transferred. The Percentages Didn't.\",\"date\":\"2026-08-06\",\"image\":\"/images/blog/we-matched-synthetic-prompts-to-human-intent.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Four days ago we published a bet. Match a synthetic prompt panel to how real buyers actually ask, and it should mirror a human panel completely. We ran the test with the predictions registered in advance. Half the bet paid, and the half that failed turns out to be the more useful result.\",\"tags\":[\"Research\",\"AI Search Visibility\",\"Prompt Tracking\",\"Share of Voice\",\"Methodology\"],\"published\":true,\"faq\":[{\"question\":\"Can I trust the share of voice percentage in my AI visibility dashboard?\",\"answer\":\"Treat the ordering as the signal and the percentage as soft. In our study a synthetic panel matched to real buyer intent reproduced the same brands in nearly the same order, with a rank correlation of 0.87, while its per brand percentages sat 8.9 points away from what real human prompts produced. Who you are competing with is the reliable part.\"},{\"question\":\"What can a synthetic prompt panel tell me reliably?\",\"answer\":\"Which brands appear for a given use case, and roughly where you stand among them. Both panels in our study returned the same six brand consideration set. Within one use case, 82 percent of human prompts and 72 percent of synthetic prompts surfaced the same brand at least once.\"},{\"question\":\"Does it help if I tell the tool which use cases I care about?\",\"answer\":\"It helps the brand list and not the percentage. We tested exactly this by comparing only human and synthetic prompts that carried the same use case. The share gap stayed where it was, at 0.085 against 0.089 for the unrestricted comparison. Naming your own use cases is a reasonable thing to do, but it does not turn the percentage into a census.\"},{\"question\":\"Are synthetic prompts less consistent than real ones when you re run them?\",\"answer\":\"No, and this surprised us. Re run five times, synthetic prompts were as self consistent as human prompts, with both differences inside our equivalence band. Our previous study found the opposite and we could not replicate it. The gap between synthetic and human panels is systematic rather than random noise.\"}],\"_meta\":{\"filePath\":\"we-matched-synthetic-prompts-to-human-intent.mdx\",\"fileName\":\"we-matched-synthetic-prompts-to-human-intent.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"we-matched-synthetic-prompts-to-human-intent\"},\"body\":\"$8a\",\"locale\":\"en\",\"path\":\"we-matched-synthetic-prompts-to-human-intent\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"8b:T2a02,"])</script>
2<script>self.__next_f.push([1,"To win a target AI grounding search, start from the query itself, ideally a tracked fan-out with a ranking gap flagged, not from a page you already have. Match that query to your strongest existing page (or start a fresh draft if nothing fits), score it gate by gate through the citation pipeline, revise the specific stages that fail, and re-score for free until it clears your target. Publish, confirm the recrawl, then track the query's rank over the following weeks.\n\nThis is a different starting point than optimizing content you already have. A content brief, a client request, or a competitor gap usually hands you the query first: \"we need to win 'best ultralight tent under 3 pounds.'\" You don't yet know which page, if any, is your best shot at it. That's a query-first process, and it needs a different first move than scanning your site for near-misses.\n\nThis guide works with any AI visibility workflow; the callouts show how each step runs in [Spyglasses](/ai-readiness-audit).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Pick the query | Choosing a real, high-payoff target | A tracked fan-out or specific keyword with a clear ranking gap |\n| 2. Choose the source | Matching the query to a page | One page matched, no overlap flags |\n| 3. Score gate by gate | Diagnosing the exact failure point | A gate-by-gate score, not one number |\n| 4. Revise and export | Fixing what's actually broken | Score clears your target |\n| 5. Publish and track | Confirming the real-world result | Recrawl confirmed, rank climbing |\n\n## Pick the query you want to win\n\nEvery query-first optimization starts with picking a real target instead of an assumed one. A grounding search is the actual query an AI assistant runs behind the scenes before it answers a user, which is often narrower and more specific than what the user typed. Someone asks \"what tent should I buy for backpacking,\" and the assistant might run three or four grounding searches from that, like \"best ultralight tent under 3 pounds\" or \"2-person backpacking tent comparison 2026.\" Winning that underlying search is what actually gets you cited.\n\nThe strongest targets are tracked fan-outs: queries AI has actually been observed running, with a ranking gap already flagged, meaning a competitor holds a spot you don't. A free-text keyword works too if the query isn't tracked yet, but treat it as an informed guess rather than a confirmed target. Prioritize by payoff: a high-impact query where you're unranked and a named competitor sits in a top spot is worth more than a low-traffic query where nobody's really competing.\n\n\u003cWorkflowCallout\n  title=\"Ranking gaps come with the competitor already named\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"count\",\n    label: \"Query impact score\",\n    value: 82,\n    caption: \"best ultralight tents under $400 · you: unranked · competitor: #2\",\n  }}\n\u003e\n  Citation Optimizer's first step lists your tracked fan-outs with ranking gaps flagged, so you're picking from real, observed queries instead of guessing at phrasing. A free-text keyword works the same way if the query isn't tracked yet.\n\u003c/WorkflowCallout\u003e\n\n## Choose your best source page\n\nWith a query picked, find the page that gives you the best shot at winning it. Spyglasses suggests your closest-matching pages automatically, but the judgment call is the same either way: does an existing page already cover this topic well enough to be worth revising, or would forcing the query onto an unrelated page do more harm than good.\n\nWatch for overlap. If two pages on your site both plausibly match the same query, they can end up competing with each other instead of either one winning, which is worse than having just one candidate. Resolve that before you invest revision time in either page. If nothing on the site is a real match, don't stretch a loosely related page to cover it; that usually scores worse than a page written for the topic from the start, and it's a sign the query belongs on your content calendar as new content instead.\n\n| Signal | What it means | What to do |\n| :--- | :--- | :--- |\n| A page already covers the topic closely | Fastest path to a win | Revise that page |\n| Two pages both plausibly match | Risk of cannibalizing each other | Resolve the overlap flag before revising either |\n| Nothing on the site is a real match | This is a content gap, not an optimization | Draft new content instead of stretching a page |\n\n\u003cWorkflowCallout\n  title=\"Matching flags overlap before you invest in the wrong page\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"/guides/ultralight-tents matched\", done: true },\n      { label: \"No overlapping pages flagged\", done: true },\n      { label: \"Content indexed Jul 12\", done: true },\n    ],\n  }}\n\u003e\n  The optimizer suggests your best-matching pages for the target query and flags it if a second page on your site is close enough to compete with the one you pick. Resolving the flag first keeps you from splitting the win between two pages that never gets the citation.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-win-a-target-ai-grounding-search-quote.webp\"\n  quote=\"Starting from the query instead of the page changes the first question you ask. Not 'how do I improve this page,' but 'what's actually my best shot at winning this search.'\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-win-a-target-ai-grounding-search\"\n/\u003e\n\n## Score it gate by gate\n\nNow score the page against the exact query you picked. The citation pipeline runs a page through several distinct stages before anything gets quoted: whether the page would surface for the query at all, whether the passage containing the answer is retrievable on its own, whether that passage's meaning actually matches the query's meaning, and whether structured data and freshness signals back up what the content claims. A page can read well to a person and still fail any one of these stages, so the gate-by-gate breakdown matters more than a single number.\n\nScoring is free, so run it before you touch a word. The result tells you exactly which stage is the actual problem, which saves a revision cycle spent guessing.\n\n\u003cWorkflowCallout\n  title=\"Deterministic gates, not a guess\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/methodology/citation-optimizer\"\n  signal={{\n    kind: \"score\",\n    label: \"Citation pipeline score\",\n    value: 42,\n    target: 70,\n  }}\n\u003e\n  Citation Optimizer scores your page against the target query using the same methods the pipeline actually runs on: reciprocal rank fusion, chunk relevance, cosine similarity. Free and unlimited, so score before and after every change.\n\u003c/WorkflowCallout\u003e\n\n## Revise and export\n\nFix the gates that actually failed, not the whole page. A page that fails the surfacing gate needs a heading and framing fix before anything else matters, since a page that never surfaces never reaches the later gates regardless of how well it would score there. A page that surfaces fine but fails the chunking gate usually needs the direct answer moved higher and tightened, not a longer article. Keep your original voice and structure wherever a gate doesn't require touching it.\n\nRe-score after each round. Two revisions is usually enough; if the score is still well short of your target after that, the gap is probably in the content itself, and a third round of small tweaks won't close it. Once the score clears your target, export the revision (markdown, HTML, title, meta, and JSON-LD together) instead of hand-copying the fix into your CMS.\n\n\u003cWorkflowCallout\n  title=\"Free re-scoring turns iteration into a fast loop\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Citation pipeline score\",\n    before: \"42\",\n    after: \"74\",\n    tone: \"positive\",\n    caption: \"two revision rounds; cleared chunking and structured data\",\n  }}\n\u003e\n  Every re-score is free and unlimited, with a before/after diff and a change log so you can see exactly what moved the number. Export the revision once the banner clears, ready to publish through your CMS.\n\u003c/WorkflowCallout\u003e\n\n## Publish and track the rank\n\nPublishing is the handoff, not the finish line. Confirm the page has actually been recrawled before drawing any conclusion from its rank; recrawl cadence varies by site and even by section of the same site, so a page that hasn't moved yet might just not have been refetched.\n\nOnce recrawl is confirmed, watch the query's rank over the following two weeks rather than checking once and calling it done. Movement is rarely instant, and a single day's rank can bounce even after a real improvement. Add the page to an SEO project and annotate the publish date, so the climb is attributable to the work instead of a coincidence.\n\n\u003cWorkflowCallout\n  title=\"The rank is the payoff check\"\n  page=\"AI Visibility Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Rank for target query\",\n    before: \"Unranked\",\n    after: \"#5\",\n    tone: \"positive\",\n    caption: \"entered the top 30 two days after publishing · goal: #1\",\n    series: [31, 31, 28, 24, 20, 18, 14, 12, 9, 8, 7, 6, 5, 5],\n    lowerIsBetter: true,\n  }}\n\u003e\n  Once the page is recrawled, AI Visibility Rankings tracks its position for the target query day over day. Adding the page to an SEO project keeps the win on the record 
2instead of scattered across individual checks.\n\u003c/WorkflowCallout\u003e\n\n## Start from the search, not the page\n\nQuery-first optimization changes the order of the work, not the tool. Instead of scanning your site for pages that are almost winning, you're starting from a target someone handed you and working backward to the best page for the job, or to the conclusion that no page exists yet and it belongs on the content calendar. Pick a real query, match it to a page that actually covers it, score before you edit, and confirm the recrawl before you call it done.\n\nIf you're more often starting from your own content than from a handed-down target, [optimizing existing content for AI citation](/blog/how-to-optimize-existing-content-for-ai-citation) covers the page-first version of this same process. And before either workflow, a free [AI Visibility Report](/ai-visibility-report) shows which queries you're already close on, which is often where your next target query comes from in the first place.\n\n**Part of the Spyglasses workflow series.** This guide is one of five workflows for content teams. The rest are collected in the [AI visibility guides for content teams](/guides/ai-visibility-for-content-teams)."])</script>
2<script>self.__next_f.push([1,"8c:T3953,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var w=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),b=(i,e)=\u003e{for(var n in e)o(i,n,{get:e[n],enumerable:!0})},s=(i,e,n,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of p(e))!m.call(i,r)\u0026\u0026r!==n\u0026\u0026o(i,r,{get:()=\u003ee[r],enumerable:!(a=f(e,r))||a.enumerable});return i};var k=(i,e,n)=\u003e(n=i!=null?u(y(i)):{},s(e||!i||!i.__esModule?o(n,\"default\",{value:i,enumerable:!0}):n,i)),v=i=\u003es(o({},\"__esModule\",{value:!0}),i);var l=w((q,h)=\u003e{h.exports=_jsx_runtime});var x={};b(x,{default:()=\u003eg});var t=k(l());function c(i){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...i.components},{PullQuote:n,WorkflowCallout:a}=e;return n||d(\"PullQuote\",!0),a||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To win a target AI grounding search, start from the query itself, ideally a tracked fan-out with a ranking gap flagged, not from a page you already have. Match that query to your strongest existing page (or start a fresh draft if nothing fits), score it gate by gate through the citation pipeline, revise the specific stages that fail, and re-score for free until it clears your target. Publish, confirm the recrawl, then track the query's rank over the following weeks.\"}),`\n`,(0,t.jsx)(e.p,{children:`This is a different starting point than optimizing content you already have. A content brief, a client request, or a competitor gap usually hands you the query first: \"we need to win 'best ultralight tent under 3 pounds.'\" You don't yet know which page, if any, is your best shot at it. That's a query-first process, and it needs a different first move than scanning your site for near-misses.`}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide works with any AI visibility workflow; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Pick the query\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Choosing a real, high-payoff target\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A tracked fan-out or specific keyword with a clear ranking gap\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Choose the source\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Matching the query to a page\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One page matched, no overlap flags\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Score gate by gate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Diagnosing the exact failure point\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A gate-by-gate score, not one number\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Revise and export\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fixing what's actually broken\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Score clears your target\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Publish and track\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Confirming the real-world result\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Recrawl confirmed, rank climbing\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Pick the query you want to win\"}),`\n`,(0,t.jsx)(e.p,{children:'Every query-first optimization starts with picking a real target instead of an assumed one. A grounding search is the actual query an AI assistant runs behind the scenes before it answers a user, which is often narrower and more specific than what the user typed. Someone asks \"what tent should I buy for backpacking,\" and the assistant might run three or four grounding searches from that, like \"best ultralight tent under 3 pounds\" or \"2-person backpacking tent comparison 2026.\" Winning that underlying search is what actually gets you cited.'}),`\n`,(0,t.jsx)(e.p,{children:\"The strongest targets are tracked fan-outs: queries AI has actually been observed running, with a ranking gap already flagged, meaning a competitor holds a 
2spot you don't. A free-text keyword works too if the query isn't tracked yet, but treat it as an informed guess rather than a confirmed target. Prioritize by payoff: a high-impact query where you're unranked and a named competitor sits in a top spot is worth more than a low-traffic query where nobody's really competing.\"}),`\n`,(0,t.jsx)(a,{title:\"Ranking gaps come with the competitor already named\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"count\",label:\"Query impact score\",value:82,caption:\"best ultralight tents under $400 \\xB7 you: unranked \\xB7 competitor: #2\"},children:(0,t.jsx)(e.p,{children:\"Citation Optimizer's first step lists your tracked fan-outs with ranking gaps flagged, so you're picking from real, observed queries instead of guessing at phrasing. A free-text keyword works the same way if the query isn't tracked yet.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Choose your best source page\"}),`\n`,(0,t.jsx)(e.p,{children:\"With a query picked, find the page that gives you the best shot at winning it. Spyglasses suggests your closest-matching pages automatically, but the judgment call is the same either way: does an existing page already cover this topic well enough to be worth revising, or would forcing the query onto an unrelated page do more harm than good.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Watch for overlap. If two pages on your site both plausibly match the same query, they can end up competing with each other instead of either one winning, which is worse than having just one candidate. Resolve that before you invest revision time in either page. If nothing on the site is a real match, don't stretch a loosely related page to cover it; that usually scores worse than a page written for the topic from the start, and it's a sign the query belongs on your content calendar as new content instead.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Signal\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What to do\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A page already covers the topic closely\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fastest path to a win\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Revise that page\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Two pages both plausibly match\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Risk of cannibalizing each other\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Resolve the overlap flag before revising either\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Nothing on the site is a real match\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"This is a content gap, not an optimization\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Draft new content instead of stretching a page\"})]})]})]}),`\n`,(0,t.jsx)(a,{title:\"Matching flags overlap before you invest in the wrong page\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"checklist\",items:[{label:\"/guides/ultralight-tents matched\",done:!0},{label:\"No overlapping pages flagged\",done:!0},{label:\"Content indexed Jul 12\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"The optimizer suggests your best-matching pages for the target query and flags it if a second page on your site is close enough to compete with the one you pick. Resolving the flag first keeps you from splitting the win between two pages that never gets the citation.\"})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-win-a-target-ai-grounding-search-quote.webp\",quote:\"Starting from the query instead of the page changes the first question you ask. Not 'how do I improve this page,' but 'what's actually my best shot at winning this search.'\",attribution:\"Spyglasses\",utmCampaign:\"how-to-win-a-target-ai-grounding-search\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Score it gate by gate\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now score the page against the exact query you picked. The citation pipeline runs a page through several distinct stages before anything gets quoted: whether the page would surface for the query at all, whether the passage containing the answer is retrievable on its own, whether that passage's meaning actually matches the query's meaning, and whether structured data and freshness signals back up what the content claims. A page can read well to a person and still fail any one of these stages, so the gate-by-gate breakdown matters more than a single number.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Scoring is free, so run it before you touch a word. The result tells you exactly which stage is the actual problem, which saves a revision cycle spent guessing.\"}),`\n`,(0,t.jsx)(a,{title:\"Deterministic gates, not a guess\",page:\"Citation Optimizer\",href:\"/docs/methodology/citation-optimizer\",signal:{kind:\"score\",label:\"Citation pipeline score\",value:42,target:70},children:(0,t.jsx)(e.p,{children:\"Citation Optimizer scores your page against the target query using the same methods the pipeline actually runs on: reciprocal rank fusion, chunk relevance, cosine similarity. Free and unlimited, so score before and after every change.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Revise and export\"}),`\n`,(0,t.jsx)(e.p,{children:\"Fix the gates that actually failed, not the whole page. A page that fails the surfacing gate needs a heading and framing fix before anything else matters, since a page that never surfaces never reaches the later gates regardless of how well it would score there. A page that surfaces fine but fails the chunking gate usually needs the direct answer moved higher and tightened, not a longer article. Keep your original voice and structure wherever a gate doesn't require touching it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Re-score after each round. Two revisions is usually enough; if the score is still well short of your target after that, the gap is probably in the content itself, and a third round of small tweaks won't close it. Once the score clears your target, export the revision (markdown, HTML, title, meta, and JSON-LD together) instead of hand-copying the fix into your CMS.\"}),`\n`,(0,t.jsx)(a,{title:\"Free re-scoring turns iteration into a fast loop\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"beforeAfter\",label:\"Citation pipeline score\",before:\"42\",after:\"74\",tone
2:\"positive\",caption:\"two revision rounds; cleared chunking and structured data\"},children:(0,t.jsx)(e.p,{children:\"Every re-score is free and unlimited, with a before/after diff and a change log so you can see exactly what moved the number. Export the revision once the banner clears, ready to publish through your CMS.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Publish and track the rank\"}),`\n`,(0,t.jsx)(e.p,{children:\"Publishing is the handoff, not the finish line. Confirm the page has actually been recrawled before drawing any conclusion from its rank; recrawl cadence varies by site and even by section of the same site, so a page that hasn't moved yet might just not have been refetched.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once recrawl is confirmed, watch the query's rank over the following two weeks rather than checking once and calling it done. Movement is rarely instant, and a single day's rank can bounce even after a real improvement. Add the page to an SEO project and annotate the publish date, so the climb is attributable to the work instead of a coincidence.\"}),`\n`,(0,t.jsx)(a,{title:\"The rank is the payoff check\",page:\"AI Visibility Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"beforeAfter\",label:\"Rank for target query\",before:\"Unranked\",after:\"#5\",tone:\"positive\",caption:\"entered the top 30 two days after publishing \\xB7 goal: #1\",series:[31,31,28,24,20,18,14,12,9,8,7,6,5,5],lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"Once the page is recrawled, AI Visibility Rankings tracks its position for the target query day over day. Adding the page to an SEO project keeps the win on the record instead of scattered across individual checks.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Start from the search, not the page\"}),`\n`,(0,t.jsx)(e.p,{children:\"Query-first optimization changes the order of the work, not the tool. Instead of scanning your site for pages that are almost winning, you're starting from a target someone handed you and working backward to the best page for the job, or to the conclusion that no page exists yet and it belongs on the content calendar. Pick a real query, match it to a page that actually covers it, score before you edit, and confirm the recrawl before you call it done.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're more often starting from your own content than from a handed-down target, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"optimizing existing content for AI citation\"}),\" covers the page-first version of this same process. And before either workflow, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" shows which queries you're already close on, which is often where your next target query comes from in the first place.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of five workflows for content teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-content-teams\",children:\"AI visibility guides for content teams\"}),\".\"]})]})}function g(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(c,{...i})}):c(i)}function d(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(x);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"2e:[\"$\",\"$L10\",\"how-to-win-a-target-ai-grounding-search\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$8b\",\"title\":\"How to Win a Target AI Grounding Search\",\"date\":\"2026-08-05\",\"image\":\"/images/blog/how-to-win-a-target-ai-grounding-search.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A content brief that says \\\"we need to win this query\\\" starts in a different place than a page you're already trying to fix. Here's the query-first process for picking the right page, scoring it against the exact search AI runs, and revising until it actually ranks.\",\"tags\":[\"Content\",\"How-to\",\"Workflows\",\"AI Citation\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What's a grounding search, exactly?\",\"answer\":\"It's the actual search query an AI assistant runs behind the scenes before it answers a user. A person might type \\\"best tent for backpacking,\\\" and the assistant might run three or four grounding searches based on that, like \\\"ultralight tent under 3 pounds\\\" or \\\"best 2-person backpacking tent 2026.\\\" Winning the grounding search is what gets you cited; the user's original wording barely matters.\"},{\"question\":\"Do I have to start from a tracked fan-out, or can I use any keyword?\",\"answer\":\"A tracked fan-out is one AI actually generated, which is stronger evidence you're optimizing for a real search. A free-text keyword works too and scores the same way, but treat it as an informed guess rather than a confirmed target until you see it show up as a tracked fan-out later.\"},{\"question\":\"What if none of my existing pages are a good match for the target query?\",\"answer\":\"Then this becomes a content-gap problem, not an optimization problem. Don't force a loosely related page to cover a topic it wasn't written for; that usually scores worse than starting fresh. Route it to your content calendar instead.\"},{\"question\":\"How is this different from scanning my site for pages that are almost ranking?\",\"answer\":\"Different starting point, same tool. Scanning your existing content for near-misses starts from a page and asks which query it could win. This starts from a query, usually one a client, a brief, or a competitor gap already handed you, and asks which page (or new draft) is the best shot at winning it.\"},{\"question\":\"How many revision rounds should I expect before a page clears?\",\"answer\":\"Usually one or two. If a page still scores well short of your target after two solid revisions, the gap is probably in the content itself, not a gate you can patch, and it's worth treating as a rewrite instead of a third round of small edits.\"}],\"howTo\":{\"name\":\"How to win a target AI grounding search\",\"description\":\"A query-first playbook for c
2ontent teams to pick a page, score it against the exact search AI runs, and revise until it ranks for that query.\",\"steps\":[{\"name\":\"Pick the query you want to win\",\"text\":\"Start from a real target, ideally a tracked fan-out with a ranking gap, rather than a page you already have and a guess about what it might rank for.\"},{\"name\":\"Choose your best source page\",\"text\":\"Match the query to your strongest existing page, or start a fresh draft if nothing on the site is close enough to be worth stretching.\"},{\"name\":\"Score it gate by gate\",\"text\":\"Run the page through the citation pipeline against that exact query and see which specific stage it fails, instead of a single vague score.\"},{\"name\":\"Revise and export\",\"text\":\"Fix the failing gates, re-score for free until the number clears your target, then export the page ready to publish.\"},{\"name\":\"Publish and track the rank\",\"text\":\"Confirm the recrawl, then watch the query's rank climb (or not) over the following weeks, with the page added to a tracking project.\"}]},\"_meta\":{\"filePath\":\"how-to-win-a-target-ai-grounding-search.mdx\",\"fileName\":\"how-to-win-a-target-ai-grounding-search.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-win-a-target-ai-grounding-search\"},\"body\":\"$8c\",\"locale\":\"en\",\"path\":\"how-to-win-a-target-ai-grounding-search\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"8d:T29d4,"])</script>
2<script>self.__next_f.push([1,"To baseline a brand's AI visibility, run one scan across every major AI platform (ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews), then correct the auto-built brand profile before anything else reads from it. That corrected, verified snapshot is the baseline: a fixed point every future report gets measured against.\n\nA new client signs, or a prospect takes your call, and the first real question is the same either way. How visible is this brand in AI search right now? Not a guess from typing one prompt into ChatGPT last week. An actual number, checked across the platforms buyers use, that you can put a stake in the ground with.\n\nSkip the baseline and every future report compares against nothing. This guide walks through the five steps that turn a domain name into a complete baseline: add the property, run the scan, fix the profile the report builds itself around, read the results the right way, and hand over something the client or prospect can actually use. It works with any AI visibility tool; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n**Key takeaways**\n\n- A baseline is a fixed point, not proof of progress. It's a corrected, verified snapshot every future report gets measured against.\n- Test every platform in one run. ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews disagree with each other, so a manual check of one tool misses real gaps.\n- Correct the brand profile first. It feeds every prompt and mention match generated after it, so a wrong category or stale differentiator skews everything downstream.\n- Read for the gap, not the score. A named competitor beating you on specific questions is a stronger pitch than an isolated percentage.\n- Package it under your own name. A raw dashboard export doesn't close a deal; a branded PDF or deck does.\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Add the property | Creating a property for the brand, or a batch of prospects | Property appears with a scan already queued |\n| 2. Run the scan | Testing the brand across ChatGPT, Gemini, Claude, Perplexity, AI Overviews | Report status moves to complete |\n| 3. Correct the profile | Fixing the auto-built brand summary before anything downstream reads it | Category, audience, and differentiators all match reality |\n| 4. Read the baseline | Pulling share of voice, consistency, and the competitive gap out of the noise | You can name the single biggest gap in one sentence |\n| 5. Package it | Exporting a branded, client-ready version | A PDF or deck is ready to send under your name |\n\n## Add the property you're baselining\n\nEverything starts with a property, the record a baseline gets attached to. For an existing client this is a five-second step. For new business it's usually more than one brand at a time, since a pitch rarely rests on a single competitor comparison.\n\nIf you're evaluating a list, don't add domains one at a time. Paste the list, run it as a batch, and let every prospect scan on the same schedule so the numbers you're about to compare were all pulled under the same conditions. That consistency matters more than it sounds; a report run today and one run three weeks ago aren't measuring the same AI landscape.\n\n\u003cWorkflowCallout\n  title=\"A batch of prospects becomes one pipeline view\"\n  page=\"Prospecting\"\n  href=\"/docs/dashboards/prospecting\"\n  signal={{\n    kind: \"count\",\n    label: \"Prospect domains in this batch\",\n    value: 14,\n    target: 20,\n    caption: \"6 rows flagged: already had a property in this org\",\n  }}\n\u003e\n  Paste or upload a list of domains and Spyglasses creates a property for each one, validates the row, and kicks off a full report automatically. Prospects live in a separate view from your real clients, so a pitch list never clutters the properties you're actively managing.\n\u003c/WorkflowCallout\u003e\n\n## Run a full AI visibility scan\n\nOne scan tests the brand across every major AI platform at once instead of you opening five tabs and typing the same question five times. That matters because platforms don't agree with each other. A brand can be well described on Gemini and nearly invisible on Perplexity, and a manual spot check across one or tw
2o tools will never catch that gap.\n\nA single property's scan usually finishes in a few minutes. A batch of prospects takes longer, sometimes a few hours, since each one runs its own full set of checks rather than sharing a queue. Kick it off, move on to something else, and come back when it's done instead of watching a progress bar.\n\n\u003cWorkflowCallout\n  title=\"One run, every platform tested\"\n  page=\"AI Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"14 reports queued\", done: true },\n      { label: \"11 reports completed\", done: true },\n      { label: \"Completion email sent for the full batch\", done: false },\n    ],\n  }}\n\u003e\n  Spyglasses tests brand consistency, share of voice, mentions, and citations across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews in a single run. The first report for a new property is free, so starting a baseline costs nothing to try.\n\u003c/WorkflowCallout\u003e\n\n## Correct the brand profile everything else builds on\n\nHere's the step agencies skip, and it's the one that costs the most later. When a scan runs, it crawls the site and writes a working profile of the brand: category, audience, differentiators, competitors. Everything generated after this point (the prompts tested, the mentions matched, the competitors compared against) reads from that profile.\n\nThe profile is a good first draft, not a finished one. A crawler can miss a recent repositioning, misread a multi-product company as single-category, or lift a differentiator from stale homepage copy. None of that is a dealbreaker, but it's worth five minutes to check before you build a client narrative on top of it. Fix the category if it's wrong. Sharpen a differentiator if the site undersells it. Confirm the audience is who the brand actually serves, not who they're hoping to serve someday.\n\n\u003cWorkflowCallout\n  title=\"Edits here change every prompt generated after\"\n  page=\"Brand Snapshot\"\n  href=\"/docs/dashboards/brand-snapshot\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Category corrected: mis-tagged as generic SaaS\", done: true },\n      { label: \"Two stale differentiators removed\", done: true },\n      { label: \"Primary audience field still generic\", done: false },\n    ],\n  }}\n\u003e\n  The Brand Snapshot arrives pre-filled from the crawl, and every field stays editable. Your corrections persist even when the snapshot rebuilds on a future report, so this is a fix-once job, not something you redo every quarter.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-baseline-your-brands-ai-visibility-quote.webp\"\n  quote=\"A baseline nobody corrected is just a photo of whatever the crawler guessed. Fix the profile before you trust the number.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-baseline-your-brands-ai-visibility\"\n/\u003e\n\n## Read the baseline like an analyst, not a scoreboard\n\nA finished report has a lot on the page: consistency score, share of voice, per-platform breakdown, competitor rankings, citation sources, a list of recommendations. Reading all of it top to bottom for every prospect isn't a baseline, it's an afternoon lost. Go in with a question instead: where is this brand losing ground, and to whom?\n\nStart with the competitive comparison. A brand can look fine in isolation and still be trailing badly the moment you check who AI mentions ahead of it for the same questions. That gap, named specifically, is worth more in a pitch than any score on its own. \"You're at 17% share of voice\" is a number. \"A named competitor gets mentioned first in 3 out of 5 comparison questions\" is a reason to hire you.\n\n\u003cWorkflowCallout\n  title=\"Competitor rankings turn a score into a gap to close\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"score\",\n    label: \"Share of voice vs. top named competitor\",\n    value: 17,\n    target: 29,\n  }}\n\u003e\n  The Competitors dashboard shows share of voice ranked against every tracked rival, not just an isolated score for the brand. Auto-seeded from co-mentions in the first report, so a real competitive set is visible before you edit a single name.\n\u003c/WorkflowCallout\u003e\n\n## Package the baseline for a client or prospect\n\nA raw dashboard export doesn't close a deal or hold up in a client kickoff. Whoever receives the baseline needs something that reads like a deliverable: your agency's name on it, not a vendor's, and a format they can open without a login.\n\nTwo exports cover most situations. PDF for anything going over email or into a shared drive. Slides for anything landing in front of a room, a pitch meeting or a client's quarterly review. Set the branding once and it applies to every export after, so this isn't a step you repeat per client.\n\n\u003cWorkflowCallout\n  title=\"Your logo, not the vendor's\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Report branding on export\",\n    before: \"Spyglasses logo\",\n    after: \"Your agency's logo\",\n    tone: \"positive\",\n    caption: \"toggled once in Settings, applied to every future export automatically\",\n  }}\n\u003e\n  Agency plans white-label every PDF and PowerPoint export by default, on scheduled reports and one-off downloads alike. A prospect sees your name on the deliverable, not the tool you built it with.\n\u003c/WorkflowCallout\u003e\n\n## The baseline is the starting line, not the finish\n\nA baseline doesn't prove anything moved. That's not its job. Its job is giving you a fixed point, corrected and verified, that every future report can be measured against. Add the property, run the scan, fix the profile before it feeds anything downstream, read for the gap that actually matters, and hand it over looking like your own work.\n\nOnce a client is signed on the strength of a baseline, the next move is turning that single snapshot into something that runs every night. [Tracking AI visibility over time](/blog/how-to-track-ai-visibility-over-time) picks up exactly where this guide ends, with the competitor list, prompt coverage, and monitoring project a real engagement needs. If the brand's AI visibility has never been checked at all, a free [AI Visibility Report](/ai-visibility-report) is the fastest way to get the first number on the board.\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"8e:T36f8,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var b=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),v=(i,e)=\u003e{for(var n in e)a(i,n,{get:e[n],enumerable:!0})},s=(i,e,n,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of u(e))!y.call(i,o)\u0026\u0026o!==n\u0026\u0026a(i,o,{get:()=\u003ee[o],enumerable:!(r=f(e,o))||r.enumerable});return i};var w=(i,e,n)=\u003e(n=i!=null?g(m(i)):{},s(e||!i||!i.__esModule?a(n,\"default\",{value:i,enumerable:!0}):n,i)),k=i=\u003es(a({},\"__esModule\",{value:!0}),i);var d=b((P,l)=\u003e{l.exports=_jsx_runtime});var A={};v(A,{default:()=\u003ep});var t=w(d());function h(i){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...i.components},{PullQuote:n,WorkflowCallout:r}=e;return n||c(\"PullQuote\",!0),r||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To baseline a brand's AI visibility, run one scan across every major AI platform (ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews), then correct the auto-built brand profile before anything else reads from it. That corrected, verified snapshot is the baseline: a fixed point every future report gets measured against.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A new client signs, or a prospect takes your call, and the first real question is the same either way. How visible is this brand in AI search right now? Not a guess from typing one prompt into ChatGPT last week. An actual number, checked across the platforms buyers use, that you can put a stake in the ground with.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Skip the baseline and every future report compares against nothing. This guide walks through the five steps that turn a domain name into a complete baseline: add the property, run the scan, fix the profile the report builds itself around, read the results the right way, and hand over something the client or prospect can actually use. It works with any AI visibility tool; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key takeaways\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"A baseline is a fixed point, not proof of progress. It's a corrected, verified snapshot every future report gets measured against.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Test every platform in one run. ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews disagree with each other, so a manual check of one tool misses real gaps.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Correct the brand profile first. It feeds every prompt and mention match generated after it, so a wrong category or stale differentiator skews everything downstream.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Read for the gap, not the score. A named competitor beating you on specific questions is a stronger pitch than an isolated percentage.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Package it under your own name. A raw dashboard export doesn't close a deal; a branded PDF or deck does.\"}),`\n`]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Add the property\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Creating a property for the brand, or a batch of prospects\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Property appears with a scan already queued\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Run the scan\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Testing the brand across ChatGPT, Gemini, Claude, Perplexity, AI Overviews\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Report status moves to complete\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Correct the profile\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fixing the auto-built brand summary before anything downstream reads it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Category, audience, and differentiators all match reality\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Read the baseline\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Pulling share of voice, consistency, and the competitive gap out of the noise\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You can name the single biggest gap in one sentence\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Package it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Exporting a branded, client-ready version\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A PDF or deck is ready to send under your name\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Add the property you're baselining\"}),`\n`,(0,t.jsx)(e.p,{children:\"Everything starts with a property, the record a baseline gets attached to. For an existing client this is a five-second step. For new business it's usually more than one brand at a time, since a pitch rarely rests on a single competitor comparison.\"}),`\n`,(0,t.jsx)(e.p,{children:\"If you're evaluating a list, don't add domains one at a time. Paste the list, run it as a batch, and let every prospect scan on the same schedule so the numbers you're about to compare were all pulled under the same conditions. That consistency matters more than it sounds; a report run today and one run three weeks ago aren't measuring the same AI landscape.\"}),`\n`,(0,t.jsx)(r,{title:\"A batch of prospects becomes one pipeline view\",page:\"Prospecting\",href:\"/docs/dashboards/prospecting\",signal:{kind:\"count\",label:\"Prospect domains in this batch\",value:14,target:20,caption:\"6 rows flagged: already had a property in this org\"},children:(0,t.jsx)(e.p,{children:\"Paste or upload a list of domains and Spyglasses creates a property for each one, validates the row, and kicks off a full report automatically. Prospects live in a separate view from your real clients, so a pitch list never clutters the properties you're actively managing.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Run a full AI visibility scan\"}),`\n`,(0,t.jsx)(e.p,{children:\"One scan tests the brand across every major AI platform at once instead of you opening five tabs and typing the same question five times. That matters because platforms don't agree with each other. A brand can be well described on Gemini and nearly invisible on Perplexity, and a manual spot check across one or tw
2o tools will never catch that gap.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A single property's scan usually finishes in a few minutes. A batch of prospects takes longer, sometimes a few hours, since each one runs its own full set of checks rather than sharing a queue. Kick it off, move on to something else, and come back when it's done instead of watching a progress bar.\"}),`\n`,(0,t.jsx)(r,{title:\"One run, every platform tested\",page:\"AI Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"checklist\",items:[{label:\"14 reports queued\",done:!0},{label:\"11 reports completed\",done:!0},{label:\"Completion email sent for the full batch\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Spyglasses tests brand consistency, share of voice, mentions, and citations across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews in a single run. The first report for a new property is free, so starting a baseline costs nothing to try.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Correct the brand profile everything else builds on\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the step agencies skip, and it's the one that costs the most later. When a scan runs, it crawls the site and writes a working profile of the brand: category, audience, differentiators, competitors. Everything generated after this point (the prompts tested, the mentions matched, the competitors compared against) reads from that profile.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The profile is a good first draft, not a finished one. A crawler can miss a recent repositioning, misread a multi-product company as single-category, or lift a differentiator from stale homepage copy. None of that is a dealbreaker, but it's worth five minutes to check before you build a client narrative on top of it. Fix the category if it's wrong. Sharpen a differentiator if the site undersells it. Confirm the audience is who the brand actually serves, not who they're hoping to serve someday.\"}),`\n`,(0,t.jsx)(r,{title:\"Edits here change every prompt generated after\",page:\"Brand Snapshot\",href:\"/docs/dashboards/brand-snapshot\",signal:{kind:\"checklist\",items:[{label:\"Category corrected: mis-tagged as generic SaaS\",done:!0},{label:\"Two stale differentiators removed\",done:!0},{label:\"Primary audience field still generic\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"The Brand Snapshot arrives pre-filled from the crawl, and every field stays editable. Your corrections persist even when the snapshot rebuilds on a future report, so this is a fix-once job, not something you redo every quarter.\"})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-baseline-your-brands-ai-visibility-quote.webp\",quote:\"A baseline nobody corrected is just a photo of whatever the crawler guessed. Fix the profile before you trust the number.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-baseline-your-brands-ai-visibility\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Read the baseline like an analyst, not a scoreboard\"}),`\n`,(0,t.jsx)(e.p,{children:\"A finished report has a lot on the page: consistency score, share of voice, per-platform breakdown, competitor rankings, citation sources, a list of recommendations. Reading all of it top to bottom for every prospect isn't a baseline, it's an afternoon lost. Go in with a question instead: where is this brand losing ground, and to whom?\"}),`\n`,(0,t.jsx)(e.p,{children:`Start with the competitive comparison. A brand can look fine in isolation and still be trailing badly the moment you check who AI mentions ahead of it for the same questions. That gap, named specifically, is worth more in a pitch than any score on its own. \"You're at 17% share of voice\" is a number. \"A named competitor gets mentioned first in 3 out of 5 comparison questions\" is a reason to hire you.`}),`\n`,(0,t.jsx)(r,{title:\"Competitor rankings turn a score into a gap to close\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"score\",label:\"Share of voice vs. top named competitor\",value:17,target:29},children:(0,t.jsx)(e.p,{children:\"The Competitors dashboard shows share of voice ranked against every tracked rival, not just an isolated score for the brand. Auto-seeded from co-mentions in the first report, so a real competitive set is visible before you edit a single name.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Package the baseline for a client or prospect\"}),`\n`,(0,t.jsx)(e.p,{children:\"A raw dashboard export doesn't close a deal or hold up in a client kickoff. Whoever receives the baseline needs something that reads like a deliverable: your agency's name on it, not a vendor's, and a format they can open without a login.\"}
2),`\n`,(0,t.jsx)(e.p,{children:\"Two exports cover most situations. PDF for anything going over email or into a shared drive. Slides for anything landing in front of a room, a pitch meeting or a client's quarterly review. Set the branding once and it applies to every export after, so this isn't a step you repeat per client.\"}),`\n`,(0,t.jsx)(r,{title:\"Your logo, not the vendor's\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"beforeAfter\",label:\"Report branding on export\",before:\"Spyglasses logo\",after:\"Your agency's logo\",tone:\"positive\",caption:\"toggled once in Settings, applied to every future export automatically\"},children:(0,t.jsx)(e.p,{children:\"Agency plans white-label every PDF and PowerPoint export by default, on scheduled reports and one-off downloads alike. A prospect sees your name on the deliverable, not the tool you built it with.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The baseline is the starting line, not the finish\"}),`\n`,(0,t.jsx)(e.p,{children:\"A baseline doesn't prove anything moved. That's not its job. Its job is giving you a fixed point, corrected and verified, that every future report can be measured against. Add the property, run the scan, fix the profile before it feeds anything downstream, read for the gap that actually matters, and hand it over looking like your own work.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Once a client is signed on the strength of a baseline, the next move is turning that single snapshot into something that runs every night. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"Tracking AI visibility over time\"}),\" picks up exactly where this guide ends, with the competitor list, prompt coverage, and monitoring project a real engagement needs. If the brand's AI visibility has never been checked at all, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the fastest way to get the first number on the board.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function p(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(h,{...i})}):h(i)}function c(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"2f:[\"$\",\"$L10\",\"how-to-baseline-your-brands-ai-visibility\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$8d\",\"title\":\"How to Baseline Your Brand's AI Visibility\",\"date\":\"2026-08-04\",\"image\":\"/images/blog/how-to-baseline-your-brands-ai-visibility.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A new client signs, or a prospect takes your call, and the first real question is the same either way. How visible is this brand in AI search right now? Here's the five-step playbook for turning a domain name into a baseline that holds up.\",\"tags\":[\"Agencies\",\"AI Visibility Baseline\",\"How-to\",\"Workflows\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What's the fastest way to baseline a brand that's never been checked for AI visibility?\",\"answer\":\"Add the property, run one full scan across the major AI platforms, and read the report. That's a same-day baseline. Ongoing tracking is a separate, later step; don't wait for a \\\"complete\\\" prompt list before you get a first real number.\"},{\"question\":\"Should I baseline one prospect at a time or in a batch?\",\"answer\":\"Batch it if you're evaluating a list for new business. Running several domains through the same scan keeps your pitch comparisons apples-to-apples and saves you from repeating the setup five separate times.\"},{\"question\":\"Do I need to fix the brand profile before I trust the baseline number?\",\"answer\":\"Fix it as soon as the first scan finishes, before you generate anything else from it. The profile feeds every prompt and every mention match downstream, so a wrong category or a stale differentiator quietly skews everything that comes after, not just the report you're looking at.\"},{\"question\":\"How is a baseline different from ongoing tracking?\",\"answer\":\"A baseline is one scan at a fixed point in time, good for a pitch or a starting line. Tracking runs a defined prompt set on a schedule and shows whether the number moves. Build the baseline first, then decide whether the engagement calls for tracking.\"},{\"question\":\"What should I actually show the client or prospect from the baseline?\",\"answer\":\"Lead with the single clearest gap, not every metric on the page. A prospect wants to know one thing, where they're losing ground to a named competitor and whether it's fixable. Save the full breakdown for the appendix.\"}],\"howTo\":{\"name\":\"How to baseline your brand's AI visibility\",\"description\":\"A step-by-step playbook for turning a brand-new property into a complete AI visibility baseline, from adding it and running the scan to correcting the profile it's built on and handing over something a client or prospect can act on.\",\"steps\":[{\"name\":\"Add the property you're baselining\",\"text\":\"Create a property for the brand, or add a batch at once if you're comparing several prospects for new business.\"},{\"name\":\"Run a full AI visibility scan\",\"text\":\"Test the brand across the major AI platforms in one pass instead of checking each one by hand.\"},{\"name\":\"Correct the brand profile everything else builds on\",\"text\":\"The scan writes a working profile of the brand automatically. Fix it before anything downstream reads from it.\"},{\"name\":\"Read the baseline like an analyst, not a scoreboard\",\"text\":\"Pull out the one or two numbers that actually matter, starting with where a named competitor is beating you and why.\"},{\"name\":\"Package the baseline for a client or prospect\",\"text\":\"Turn the report into something with your name on it, not a raw dashboard export nobody outside your team can parse.\"}]},\"_meta\":{\"filePath\":\"how-to-baseline-your-brands-ai-visibility.mdx\",\"fileName\":\"how-to-baseline-your-brands-ai-visibility.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-baseline-your-brands-ai-visibility\"},\"body\":\"$8e\",\"locale\":\"en\",\"path\":\"how-to-baseline-your-brands-ai-visibility\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"8f:T2f86,"])</script>
2<script>self.__next_f.push([1,"To connect earned media to AI visibility, collect every placement URL from a campaign into one tracked list, score each one on a 0-100 scale for AI accessibility and citation quality, then check which URLs ChatGPT, Gemini, and Perplexity are actually citing in live answers. Attach the list to a project that runs nightly, and report the campaign's influence rate: the share of an AI answer's sources that came from your placements, not just the coverage you landed.\n\nPR teams already know how to prove a campaign worked in traditional terms: impressions, reach, tone, share of voice. None of that tells you whether ChatGPT, Gemini, or Perplexity ever read the story. A study of the top 51 U.S. news outlets found 61% block AI crawlers entirely, so a Tier 1 placement that looks great in a coverage deck can be completely invisible to AI, while a smaller outlet that's fully open to crawlers quietly does more work in AI answers. The only way to know which is which is to check, placement by placement, and roll the results up into one number a client understands: a 40-placement campaign might land 8 to 12 citations once the AI-accessible outlets are separated from the blocked ones.\n\nThis guide walks through that process end to end. It's written to work with any AI visibility setup; the callouts show how each step runs in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Build a coverage list | Collecting every placement URL into one tracked group | All URLs imported, syndicated copies included |\n| 2. Score for AI value | Checking accessibility and positioning, not just tone | Every placement has a quality score |\n| 3. Check what AI cites | Comparing cited placements against the full list | You know which URLs AI is using and why |\n| 4. Track influence over time | Attaching the group to a nightly-run project | One influence rate, updated automatically |\n| 5. Report the result | Translating the data for a client or executive | A document that answers \"did this work?\" |\n\n## Build a coverage group from the campaign's placements\n\nStart by pulling every URL the campaign generated: the original story, plus every syndicated copy. If a piece ran on a local news site and got picked up by two aggregators, all three URLs matter, because AI platforms cite syndicated copies often and each one only matches itself exactly.\n\nTreat this as one tracked list, not a spreadsheet of individual placements you'll check by hand later. That distinction matters once a campaign runs past a handful of hits; a client-facing PR effort can easily produce dozens to hundreds of placements a month, and scoring them one at a time doesn't scale.\n\nGroup placements the way you'll want to report on them. A single campaign group shows total AI influence for that push. Monthly groups make month-over-month comparisons easy for a retainer client. Pick whichever matches your reporting cadence, and don't mix the two inside one group.\n\n\u003cWorkflowCallout\n  title=\"One paste imports the whole campaign\"\n  page=\"Coverage Groups\"\n  href=\"/docs/dashboards/coverage-groups\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"42 placement URLs imported\", done: true },\n      { label: \"3 syndicated copies expanded automatically\", done: true },\n      { label: \"Group attached to a PR project\", done: false },\n    ],\n  }}\n\u003e\n  Coverage Groups let you paste an entire placement list at once. URLs are normalized so tracking parameters and www. variants can't create duplicates, and pasting the list also creates and scores a placement for every URL automatically.\n\u003c/WorkflowCallout\u003e\n\n## Score each placement for AI value\n\nA placement report answers \"did the story run.\" AI citation scoring answers a different question: is this specific mention positioned so an AI system can find it and judge it worth quoting. That comes down to a few concrete factors, not gut feel.\n\n| Factor | What it checks | Why it moves the score |\n| :--- | :--- | :--- |\n| Position in the article | Where the mention sits in the document | A lead mention is easier for an AI to extract than one buried in paragraph 3
20 |\n| Surrounding context | Whether the chunk of text around the mention stands on its own | AI reads content in chunks; a self-contained chunk is more citable |\n| Placement type | Dedicated article vs. roundup mention vs. passing reference | A dedicated article carries more weight than a one-line mention in a listicle |\n| Link attribute | Dofollow vs. nofollow, and whether the link points at the brand | Some AI retrieval signals weight link attribution the way search ranking does |\n| Sentiment | How favorably the surrounding text reads | A strongly negative mention gets discounted even if every other factor scores well |\n\nNone of this replaces the traditional read on a placement. It adds a second lens: not \"is this a good story\" but \"can AI actually use it.\" A placement can score well on both, well on one and poorly on the other, or poorly on both, and each combination changes what you do next.\n\n\u003cWorkflowCallout\n  title=\"Every imported URL gets scored automatically\"\n  page=\"Placements\"\n  href=\"/docs/dashboards/placements\"\n  signal={{\n    kind: \"count\",\n    label: \"Placements scored\",\n    value: 42,\n    target: 42,\n    caption: \"Average PQS 58; 9 rated Premium, 14 rated Strong\",\n  }}\n\u003e\n  Spyglasses scores position, chunk containment, placement type, link attribute, and sentiment into an AI Placement Quality Score (PQS), then combines it with the publisher's own AI Placement Value Score (AIPVS) for a Total Placement Value: is this domain worth it, and is this specific mention well-positioned.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-connect-earned-media-to-ai-visibility-quote.webp\"\n  quote=\"A great placement and a placement AI can actually see are not always the same thing. Score both before you report the win.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-connect-earned-media-to-ai-visibility\"\n/\u003e\n\n## Check which placements AI actually cites\n\nScoring tells you which placements are well-positioned to be cited. It doesn't tell you which ones actually were. For that, compare the full coverage list against the citations showing up in your tracked AI answers, and look at the gap between the two groups.\n\nMost campaigns show a funnel: every URL was imported, a smaller set was actually fetched or considered by an AI assistant while composing an answer, and a smaller set still was referenced directly in the answer text. Each stage of that funnel points at a different fix. A placement AI never touches at all is usually an accessibility problem: a blocked crawler, a slow page, thin content. A placement AI considers but doesn't cite is usually a content problem: the chunk around the mention isn't self-contained enough to quote.\n\nOnce you have real citation data, compare the cited group against the rest. If cited placements skew toward higher scores, longer articles, or more recent publish dates, that's a specific brief for the next round of pitching, not a vague note to \"get better coverage.\"\n\n\u003cWorkflowCallout\n  title=\"A funnel from imported to cited, with the comparison built in\"\n  page=\"AI Citations\"\n  href=\"/docs/dashboards/coverage-groups\"\n  signal={{\n    kind: \"count\",\n    label: \"Placements cited by AI so far\",\n    value: 11,\n    target: 42,\n    caption: \"6 cited inline, 5 as an evaluated source; the other 31 haven't been fetched yet\",\n  }}\n\u003e\n  The coverage group's AI Citations page shows a funnel from imported URLs to cited placements, plus a side-by-side comparison of cited vs. not-cited: average score, word count, content age, and which authors get picked up most, so you know what to pitch for next.\n\u003c/WorkflowCallout\u003e\n\n## Track the campaign's influence on AI visibility\n\nA single \"11 out of 42 cited\" snapshot is useful, but campaigns run for weeks and citations keep arriving after you've already sent the first report. Checking each placement by hand every week doesn't scale, and it's easy to miss a citation that landed after your last manual pass.\n\nAttach the coverage group to a project that runs your tracked prompts nightly instead. Every new citation gets matched against the group automatically, and the project reports one number: what share of the AI answers' sources, across every tracked prompt and platform, came from this campaign's placements. That's the number that answers the question a client actually asks, which isn't \"how many placements did we get\" but \"is our earned media showing up when someone asks AI about us.\"\n\n\u003cWorkflowCallout\n  title=\"One influence rate, updated every night\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"trend\",\n    label: \"Campaign influence rate, 6 weeks\",\n    series: [2, 3, 4, 6, 8, 9],\n    change: 7,\n    suffix: \" pts\",\n  }}\n\u003e\n  Attaching a coverage group to a project turns it into a tracked goal with its own influence rate: the share of the project's citations that come from this campaign's placements. New citations get matched automatically on every nightly run, including retroactive matches against citations that already happened before the group was attached.\n\u003c/WorkflowCallout\u003e\n\n## Package the results in a client-ready report\n\nThe data only does its job once someone outside the team reads it. Translate the placement list, the citation funnel, and the influence rate into a document built for a client or an executive, not a dashboard screenshot with no context.\n\nA useful package usually has three parts: the headline influence number with a plain-language explanation, the funnel showing how many placements AI can see versus cite, and a short list of what to do differently next round based on what the cited placements had in common. Keep it to a page or two. The goal is a document that survives being forwarded to a board member without a follow-up call to explain it.\n\n\u003cWorkflowCallout\n  title=\"The dataset becomes the report\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Influence rate c
2alculated for the reporting window\", done: true },\n      { label: \"Cited vs. not-cited comparison pulled\", done: true },\n      { label: \"White-labeled PDF export generated\", done: false },\n    ],\n  }}\n\u003e\n  Every project exports to a white-labeled PDF or PowerPoint: trend lines, the coverage group's funnel, and the influence rate in one client-ready document, with your agency's or company's branding instead of a generic dashboard export.\n\u003c/WorkflowCallout\u003e\n\n## The report changes once you can see AI reading it\n\nEarned media has always needed proof it worked. AI visibility just adds a new, checkable layer to that proof: not just did the story run, but can the systems shaping how people find your brand actually see it. Build the coverage list, score it for AI access instead of assuming reach equals visibility, check what's actually getting cited, and track the influence rate instead of re-counting placements by hand every week.\n\nThe same coverage-group approach works outside of proving a single campaign, too. It's the same mechanism a comms team uses to [track whether corrective coverage is displacing a negative story](/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story), and the accessibility check matters most before you pitch: [61% of major outlets block AI crawlers outright](/blog/is-ai-blocking-your-best-media-placements), which is worth knowing before you build a media list, not after the placements run. If you're drafting the pitch itself, [structuring it the way AI actually reads content](/blog/how-to-write-a-press-release-chatgpt-will-cite) is the other half of this problem. And if you haven't checked how AI describes the brand at all yet, a free [AI Visibility Report](/ai-visibility-report) is the fastest way to see where you stand before the next campaign starts.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"90:T40f2,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var a in e)r(n,a,{get:e[a],enumerable:!0})},l=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of m(e))!f.call(n,o)\u0026\u0026o!==a\u0026\u0026r(n,o,{get:()=\u003ee[o],enumerable:!(i=g(e,o))||i.enumerable});return n};var A=(n,e,a)=\u003e(a=n!=null?p(y(n)):{},l(e||!n||!n.__esModule?r(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003el(r({},\"__esModule\",{value:!0}),n);var c=w((I,s)=\u003e{s.exports=_jsx_runtime});var k={};b(k,{default:()=\u003eu});var t=A(c());function h(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:a,WorkflowCallout:i}=e;return a||d(\"PullQuote\",!0),i||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To connect earned media to AI visibility, collect every placement URL from a campaign into one tracked list, score each one on a 0-100 scale for AI accessibility and citation quality, then check which URLs ChatGPT, Gemini, and Perplexity are actually citing in live answers. Attach the list to a project that runs nightly, and report the campaign's influence rate: the share of an AI answer's sources that came from your placements, not just the coverage you landed.\"}),`\n`,(0,t.jsx)(e.p,{children:\"PR teams already know how to prove a campaign worked in traditional terms: impressions, reach, tone, share of voice. None of that tells you whether ChatGPT, Gemini, or Perplexity ever read the story. A study of the top 51 U.S. news outlets found 61% block AI crawlers entirely, so a Tier 1 placement that looks great in a coverage deck can be completely invisible to AI, while a smaller outlet that's fully open to crawlers quietly does more work in AI answers. The only way to know which is which is to check, placement by placement, and roll the results up into one number a client understands: a 40-placement campaign might land 8 to 12 citations once the AI-accessible outlets are separated from the blocked ones.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide walks through that process end to end. It's written to work with any AI visibility setup; the callouts show how each step runs in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Build a coverage list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Collecting every placement URL into one tracked group\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"All URLs imported, syndicated copies included\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Score for AI value\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking accessibility and positioning, not just tone\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every placement has a quality score\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Check what AI cites\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Comparing cited placements against the full list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"You know which URLs AI is using and why\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Track influence over time\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Attaching the group to a nightly-run project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One influence rate, updated automatically\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Report the result\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Translating the data for a client or executive\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'A document that answers \"did this work?\"'})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Build a coverage group from the campaign's placements\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start by pulling every URL the campaign generated: the original story, plus every syndicated copy. If a piece ran on a local news site and got picked up by two aggregators, all three URLs matter, because AI platforms cite syndicated copies often and each one only matches itself exactly.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Treat this as one tracked list, not a spreadsheet of individual placements you'll check by hand later. That distinction matters once a campaign runs past a handful of hits; a client-facing PR effort can easily produce dozens to hundreds of placements a month, and scoring them one at a time doesn't scale.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Group placements the way you'll want to report on them. A single campaign group shows total AI influence for that push. Monthly groups make month-over-month comparisons easy for a retainer client. Pick whichever matches your reporting cadence, and don't mix the two inside one group.\"}),`\n`,(0,t.jsx)(i,{title:\"One paste imports the whole campaign\",page:\"Coverage Groups\",href:\"/docs/dashboards/coverage-groups\",signal:{kind:\"checklist\",items:[{label:\"42 placement URLs imported\",done:!0},{label:\"3 syndicated copies expanded automatically\",done:!0},{label:\"Group attached to a PR project\",done:!1}]},children:(0,t.jsxs)(e.p,{children:[\"Coverage Groups let you paste an entire placement list at once. URLs are normalized so tracking parameters and \",(0,t.jsx)(e.a,{href:\"http://www\",children:\"www\"}),\". variants can't create duplicates, and pasting the list also creates and scores a placement for every URL automatically.\"]})}),`\n`,(0,t.jsx)(e.h2,{children:\"Score each placement for AI value\"}),`\n`,(0,t.jsx)(e.p,{children:'A placement report answers \"did the story run.\" AI citation scoring answers a different question: is this specific mention positioned 
2so an AI system can find it and judge it worth quoting. That comes down to a few concrete factors, not gut feel.'}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Factor\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it checks\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Why it moves the score\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Position in the article\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Where the mention sits in the document\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A lead mention is easier for an AI to extract than one buried in paragraph 30\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Surrounding context\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Whether the chunk of text around the mention stands on its own\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI reads content in chunks; a self-contained chunk is more citable\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Placement type\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Dedicated article vs. roundup mention vs. passing reference\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A dedicated article carries more weight than a one-line mention in a listicle\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Link attribute\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Dofollow vs. nofollow, and whether the link points at the brand\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Some AI retrieval signals weight link attribution the way search ranking does\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Sentiment\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"How favorably the surrounding text reads\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A strongly negative mention gets discounted even if every other factor scores well\"})]})]})]}),`\n`,(0,t.jsx)(e.p,{children:'None of this replaces the traditional read on a placement. It adds a second lens: not \"is this a good story\" but \"can AI actually use it.\" A placement can score well on both, well on one and poorly on the other, or poorly on both, and each combination changes what you do next.'}),`\n`,(0,t.jsx)(i,{title:\"Every imported URL gets scored automatically\",page:\"Placements\",href:\"/docs/dashboards/placements\",signal:{kind:\"count\",label:\"Placements scored\",value:42,target:42,caption:\"Average PQS 58; 9 rated Premium, 14 rated Strong\"},children:(0,t.jsx)(e.p,{children:\"Spyglasses scores position, chunk containment, placement type, link attribute, and sentiment into an AI Placement Quality Score (PQS), then combines it with the publisher's own AI Placement Value Score (AIPVS) for a Total Placement Value: is this domain worth it, and is this specific mention well-positioned.\"})}),`\n`,(0,t.jsx)(a,{image:\"/images/blog/how-to-connect-earned-media-to-ai-visibility-quote.webp\",quote:\"A great placement and a placement AI can actually see are not always the same thing. Score both before you report the win.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-connect-earned-media-to-ai-visibility\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Check which placements AI actually cites\"}),`\n`,(0,t.jsx)(e.p,{children:\"Scoring tells you which placements are well-positioned to be cited. It doesn't tell you which ones actually were. For that, compare the full coverage list against the citations showing up in your tracked AI answers, and look at the gap between the two groups.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most campaigns show a funnel: every URL was imported, a smaller set was actually fetched or considered by an AI assistant while composing an answer, and a smaller set still was referenced directly in the answer text. Each stage of that funnel points at a different fix. A placement AI never touches at all is usually an accessibility problem: a blocked crawler, a slow page, thin content. A placement AI considers but doesn't cite is usually a content problem: the chunk around the mention isn't self-contained enough to quote.\"}),`\n`,(0,t.jsx)(e.p,{children:`Once you have real citation data, compare the cited group against the rest. If cited placements skew toward higher scores, longer articles, or more recent publish dates, that's a specific brief for the next round of pitching, not a vague note to \"get better coverage.\"`}),`\n`,(0,t.jsx)(i,{title:\"A funnel from imported to cited, with the comparison built in\",page:\"AI Citations\",href:\"/docs/dashboards/coverage-groups\",signal:{kind:\"count\",label:\"Placements cited by AI so far\",value:11,target:42,caption:\"6 cited inline, 5 as an evaluated source; the other 31 haven't been fetched yet\"},children:(0,t.jsx)(e.p,{children:\"The coverage group's AI Citations page shows a funnel from imported URLs to cited placements, plus a side-by-side comparison of cited vs. not-cited: average score, word count, content age, and which authors get picked up most, so you know 
2what to pitch for next.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Track the campaign's influence on AI visibility\"}),`\n`,(0,t.jsx)(e.p,{children:`A single \"11 out of 42 cited\" snapshot is useful, but campaigns run for weeks and citations keep arriving after you've already sent the first report. Checking each placement by hand every week doesn't scale, and it's easy to miss a citation that landed after your last manual pass.`}),`\n`,(0,t.jsx)(e.p,{children:`Attach the coverage group to a project that runs your tracked prompts nightly instead. Every new citation gets matched against the group automatically, and the project reports one number: what share of the AI answers' sources, across every tracked prompt and platform, came from this campaign's placements. That's the number that answers the question a client actually asks, which isn't \"how many placements did we get\" but \"is our earned media showing up when someone asks AI about us.\"`}),`\n`,(0,t.jsx)(i,{title:\"One influence rate, updated every night\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"trend\",label:\"Campaign influence rate, 6 weeks\",series:[2,3,4,6,8,9],change:7,suffix:\" pts\"},children:(0,t.jsx)(e.p,{children:\"Attaching a coverage group to a project turns it into a tracked goal with its own influence rate: the share of the project's citations that come from this campaign's placements. New citations get matched automatically on every nightly run, including retroactive matches against citations that already happened before the group was attached.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Package the results in a client-ready report\"}),`\n`,(0,t.jsx)(e.p,{children:\"The data only does its job once someone outside the team reads it. Translate the placement list, the citation funnel, and the influence rate into a document built for a client or an executive, not a dashboard screenshot with no context.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A useful package usually has three parts: the headline influence number with a plain-language explanation, the funnel showing how many placements AI can see versus cite, and a short list of what to do differently next round based on what the cited placements had in common. Keep it to a page or two. The goal is a document that survives being forwarded to a board member without a follow-up call to explain it.\"}),`\n`,(0,t.jsx)(i,{title:\"The dataset becomes the report\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Influence rate calculated for the reporting window\",done:!0},{label:\"Cited vs. not-cited comparison pulled\",done:!0},{label:\"White-labeled PDF export generated\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Every project exports to a white-labeled PDF or PowerPoint: trend lines, the coverage group's funnel, and the influence rate in one client-ready document, with your agency's or company's branding instead of a generic dashboard export.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The report changes once you can see AI reading it\"}),`\n`,(0,t.jsx)(e.p,{children:\"Earned media has always needed proof it worked. AI visibility just adds a new, checkable layer to that proof: not just did the story run, but can the systems shaping how people find your brand actually see it. Build the coverage list, score it for AI access instead of assuming reach equals visibility, check what's actually getting cited, and track the influence rate instead of re-counting placements by hand every week.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The same coverage-group approach works outside of proving a single campaign, too. It's the same mechanism a comms team uses to \",(0,t.jsx)(e.a,{href:\"/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story\",children:\"track whether corrective coverage is displacing a negative story\"}),\", and the accessibility check matters most before you pitch: \",(0,t.jsx)(e.a,{href:\"/blog/is-ai-blocking-your-best-media-placements\",children:\"61% of major outlets block AI crawlers outright\"}),\", which is worth knowing before you build a media list, not after the placements run. If you're drafting the pitch itself, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-write-a-press-release-chatgpt-will-cite\",children:\"structuring it the way AI actually reads content\"}),\" is the other half of this problem. And if you haven't checked how AI describes the brand at all yet, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the fastest way to see where you stand before the next campaign starts.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}function d(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"30:[\"$\",\"$L10\",\"how-to-connect-earned-media-to-ai-visibility\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$8f\",\"title\":\"How to Connect Earned Media to AI Visibility\",\"date\":\"2026-08-02\",\"image\":\"/images/blog/how-to-connect-earned-media-to-ai-visibility.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A placement report says the story ran. It doesn't say whether AI ever read it. Here's how to connect a campaign's earned media to what AI assistants actually cite, and report the number that proves the work.\",\"tags\":[\"PR\",\"Earned Media\",\"How-to\",\"Workflows\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Does a great placement automatically count as AI visibility?\",\"answer\":\"No. A placement's traditional value (masthead, reach, tone) and its AI value (can an assistant read it and cite it) are separate questions. Some Tier 1 outlets block AI crawlers outright, so a placement that reads well in a coverage report may never reach an AI answer.\"},{\"question\":\"What if the outlet blocks AI crawlers entirely?\",\"answer\":\"Then that placement can't influence AI answers no matter how well it's written or how prominent the mention is. Score it anyway so you know, then weight your next pitch list toward outlets that are actually AI-accessible.\"},{\"question\":\"How is AI citation value different from domain authority?\",\"answer\":\"Domain authority measures backlink strength for traditional search rankings. AI citation value measures whether an assistant's retrieval pipeline can fetch the page, find the mention, and judge it worth quoting. A high-authority domain can still score poorly here if it blocks crawlers or buries the mention deep in a long article.\"},{\"question\":\"How long after a placement goes live before it might get cited?\",\"answer\":\"It depends on how often AI platforms recrawl that outlet, which varies by site. Check citations weekly rather than the day after publish; a placement with zero citations in week one isn't necessarily a dead placement, it may just not be recrawled yet.\"},{\"question\":\"What's the difference between scoring one placement and tracking a whole campaign?\",\"answer\":\"A single placement score tells you if that one URL is well-positioned. A campaign view (a group of placement URLs tracked together) tells you what share of an AI answer's sources came from your work overall, which is the number that actually goes in a client report.\"}],\"howTo\":{\"name\":\"How to connect earned media to AI visibility\",\"description\":\"A step-by-step guide for PR teams to find out whether AI assistants can see, read, and cite a campaign's earned media placements, and to report the result in terms a client understands.\",\"steps\":[{\"name\":\"Build a coverage group from the campaign's placements\",\"text\":\"Collect every placement URL from the campaign, including syndicated copies, into one tracked list instead of scoring hits one at a time.\"},{\"name\":\"Score each placement for AI value\",\"text\":\"Run each URL through a placement-quality check that looks at position, link type, and whether the AI can even reach the page, not just whether the story ran.\"},{\"name\":\"Check which placements AI actually cites\",\"text\":\"Compare the full coverage list against the URLs AI assistants are actually citing in answers, and see what separates the two groups.\"},{\"name\":\"Track the campaign's influence on AI visibility\",\"text\":\"Attach the coverage list to a project that runs nightly, so you get one influence number instead of checking each placement by hand.\"},{\"name\":\"Package the results in a client-ready report\",\"text\":\"Turn the placement list, the citation data, and the influence number into a document a client or executive can read without translation.\"}]},\"_meta\":{\"filePath\":\"how-to-connect-earned-media-to-ai-visibility.mdx\",\"fileName\":\"how-to-connect-earned-media-to-ai-visibility.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-connect-earned-media-to-ai-visibility\"},\"body\":\"$90\",\"locale\":\"en\",\"path\":\"how-to-connect-earned-media-to-ai-visibility\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"91:T183f,"])</script>
2<script>self.__next_f.push([1,"Every AI visibility tool, ours included, tracks brands by running prompts that a person never typed. Critics have a fair question about that: if no human wrote these prompts, what exactly do the numbers describe? A widely shared list of 31 methodology questions for vendors put the burden of proof on us. So did SparkToro's research on how wildly real people vary their phrasing.\n\nWe think the burden of proof argument is right. So we pointed the test at our own product.\n\n## Key takeaways\n\n- A prompt panel generated from a brand's own website measures that brand's home field, the buying situations its positioning claims. It is not a measurement of the overall market.\n- The most reliable signal from a brand-anchored panel is losing on it. Winning there is the expected outcome; a competitor beating you on prompts built from your own positioning is the finding to act on.\n- Competitive gaps read off an anchored panel are biased against your rivals, not inflated for you. Swapping the anchor brand moved the measured gap between two competitors by 41 points.\n- Scenario-generated synthetic prompts produced answers statistically indistinguishable from real human prompts, and when a synthetic and a human prompt shared the same sub-intent, their answers matched completely.\n- Matching a synthetic panel's sub-intent mix to real buyer behavior is a testable recipe for market-representative tracking. We pre-registered that test and it is collecting data now.\n\n## What we did\n\nWe took 143 real prompts that real people wrote for one buying intent (headphones as a travel gift, from SparkToro's survey data) and ran them against ChatGPT every day for five days. Alongside them, we ran three synthetic panels: two generated by our own production prompt generator pointed at bose.com and soundcore.com, and one generated from the buying scenario alone with no brand involved. Same platform, same days, 1,325 runs evaluated in this study.\n\nThe hypotheses, the statistical bands, and the analysis code were all frozen before we collected a single response. Whatever came out, we committed to publishing it. [The full study is now live on our research site](https://research.spyglasses.io/articles/synthetic-prompt-coverage), including the complete text of every synthetic prompt so anyone can re-run the panels and check us.\n\n## What we found\n\n**A prompt panel generated from your website doesn't measure the market. It measures your home field.** The generator builds prompts from what your site promotes: your features, your segments, your product lines. Those prompts ask the questions your positioning claims to win. When we reweighted the human panel to ask the same mix of questions the Bose panel asked, the humans saw nearly the same market the panel saw. The panel isn't broken. It's answering a narrower question than the label on the dashboard suggests.\n\n**The home field doesn't flatter you, and that's the useful part.** Neither anchored panel inflated its own brand above what real humans saw. And Bose still lost to Sony on every panel we ran, including the one generated from bose.com. That asymmetry is the practical takeaway: winning on your own panel is the expected outcome. Losing on your own panel is the alarm that should reorganize your content plan.\n\n**Competitive gaps from an anchored panel are the number to distrust.** Swapping the generator's anchor from one brand to its rival moved the measured gap between them by 41 points. Not because either panel puffed up its own brand; because each panel failed to surface the rival. If your dashboard says you're beating a competitor on prompts anchored to your own site, the competitor's number is the one most likely to be wrong.\n\n**And the good news: there's a real path to synthetic panels that mirror humans.** The neutral, scenario-generated panel produced answers statistically indistinguishable from human-prompt answers. Its one remaining failure was the mix: it over-sampled some sub-intents and missed others, like budget limits and named recipients. When we compared only prompts that shared a sub-intent, synthetic and human answers matched completely. Authorship didn't matter. The sub-intent did.\n\nThat last finding is a recipe, not just a result. If you generate scenario prompts and match their sub-intent mix to how real buyers actually ask, the data says the panel should mirror the human one at every level. We've already launched the follow-up experiment to test exactly that, with the predictions registered publicly before any data arrives.\n\n## What this changes in Spyglasses\n\nWe ran this study on our own generator, so the obligations land on us first:\n\n- **Share of voice from brand-anchored prompts gets labeled as what it is**: your standing in the conversations your positioning claims. We already exclude awareness-stage prompts from share of voice; the label makes the rest of the story explicit.\n- **Panel generation is moving scenario-first.** The neutral generation frame is the one that survived contact with real humans, so it becomes the default path, with brand anchoring reserved for the home-field question it actually answers.\n- **Phrasing diversity beats prompt volume.** Real people state budgets, name the recipient, and ask for \"top 5 with reviews.\" Panels that never do those things sample a narrower market no matter how many prompts they run. We're building those behaviors into generation rather than adding more prompts that ask the same question.\n\nThis is also why we've always said measurement is the proof layer, not the work itself. Prompt tracking tells you where you stand on the questions you chose to ask. Moving the answer happens in the retrieval pipeline: the searches AI runs, the sources it can read, the pages it cites. That part is measurable and improvable regardless of which panel you track.\n\n## Check our work\n\nThe [full study](https://research.spyglasses.io/articles/synthetic-prompt-coverage) has every number, the pre-registered spec, both datasets, and the complete synthetic prompt text under a CC BY license. If you work at another AI visibility vendor: the human baseline is obtainable, the method is documented, and we'd like to see your number next to ours."])</script>
2<script>self.__next_f.push([1,"92:T20a0,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var c=Object.create;var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var b=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var a in e)o(n,a,{get:e[a],enumerable:!0})},i=(n,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of m(e))!g.call(n,r)\u0026\u0026r!==a\u0026\u0026o(n,r,{get:()=\u003ee[r],enumerable:!(s=u(e,r))||s.enumerable});return n};var f=(n,e,a)=\u003e(a=n!=null?c(y(n)):{},i(e||!n||!n.__esModule?o(a,\"default\",{value:n,enumerable:!0}):a,n)),v=n=\u003ei(o({},\"__esModule\",{value:!0}),n);var l=b((T,h)=\u003e{h.exports=_jsx_runtime});var k={};w(k,{default:()=\u003ep});var t=f(l());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Every AI visibility tool, ours included, tracks brands by running prompts that a person never typed. Critics have a fair question about that: if no human wrote these prompts, what exactly do the numbers describe? A widely shared list of 31 methodology questions for vendors put the burden of proof on us. So did SparkToro's research on how wildly real people vary their phrasing.\"}),`\n`,(0,t.jsx)(e.p,{children:\"We think the burden of proof argument is right. So we pointed the test at our own product.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Key takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"A prompt panel generated from a brand's own website measures that brand's home field, the buying situations its positioning claims. It is not a measurement of the overall market.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The most reliable signal from a brand-anchored panel is losing on it. Winning there is the expected outcome; a competitor beating you on prompts built from your own positioning is the finding to act on.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Competitive gaps read off an anchored panel are biased against your rivals, not inflated for you. Swapping the anchor brand moved the measured gap between two competitors by 41 points.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Scenario-generated synthetic prompts produced answers statistically indistinguishable from real human prompts, and when a synthetic and a human prompt shared the same sub-intent, their answers matched completely.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Matching a synthetic panel's sub-intent mix to real buyer behavior is a testable recipe for market-representative tracking. We pre-registered that test and it is collecting data now.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"What we did\"}),`\n`,(0,t.jsx)(e.p,{children:\"We took 143 real prompts that real people wrote for one buying intent (headphones as a travel gift, from SparkToro's survey data) and ran them against ChatGPT every day for five days. Alongside them, we ran three synthetic panels: two generated by our own production prompt generator pointed at bose.com and soundcore.com, and one generated from the buying scenario alone with no brand involved. Same platform, same days, 1,325 runs evaluated in this study.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The hypotheses, the statistical bands, and the analysis code were all frozen before we collected a single response. Whatever came out, we committed to publishing it. \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/synthetic-prompt-coverage\",children:\"The full study is now live on our research site\"}),\", including the complete text of every synthetic prompt so anyone can re-run the panels and check us.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"What we found\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"A prompt panel generated from your website doesn't measure the market. It measures your home field.\"}),\" The generator builds prompts from what your site promotes: your features, your segments, your product lines. Those prompts ask the questions your positioning claims to win. When we reweighted the human panel to ask the same mix of questions the Bose panel asked, the humans saw nearly the same market the panel saw. The panel isn't broken. It's answering a narrower question than the label on the dashboard suggests.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The home field doesn't flatter you, and that's the useful part.\"}),\" Neither anchored panel inflated its own brand above what real humans saw. And Bose still lost to Sony on every panel we ran, including the one generated from bose.com. That asymmetry is the practical takeaway: winning on your own panel is the expected outcome. Losing on your own panel is the alarm that should reorganize your content plan.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Competitive gaps from an anchored panel are the number to distrust.\"}),\" Swapping the generator's anchor from one brand to its rival moved the measured gap between them by 41 points. Not because either panel puffed up its own brand; because each panel failed to surface the rival. If your dashboard says you're beating a competitor on prompts anchored to your own site, the competitor's number is the one most likely to be wrong.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"And the good news: there's a real path to synthetic panels that mirror humans.\"}),\" The neutral, scenario-generated panel produced answers statistically indistinguishable from human-prompt answers. Its one remaining failure was the mix: it over-sampled some sub-intents and missed others, like budget limits and named recipients. When we compared only prompts that shared a sub-intent, synthetic and human answers matched completely. Authorship didn't matter. The sub-intent did.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"That last finding is a recipe, not just a result. If you generate scenario prompts and match their sub-intent mix to how real buyers actually ask, the data says the panel should mirror the human one at every level. We've already launched the follow-up experiment to test exactly that, with the predictions registered publicly before any data arrives.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What this changes in Spyglasses\"}),`\n`,(0,t.jsx)(e.p,{children:\"We ran this study on our own generator, so the obligations land on us first:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Share of voice from brand-anchored prompts gets labeled as what it is\"}),\": your standing in the conversations your positioning claims. We already exclude awareness-stage prompts from share of voice; the label makes the rest of the story explicit.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Panel generation is moving scenario-first.\"}),\" The neutral generation frame is the one that survived contact with real humans, so it becomes the default path, with brand anchoring reserved for the home-field question it actually answers.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Phrasing diversity beats prompt volume.\"}),` Real people state budgets, name the recipient, and ask for \"top 5 with reviews.\" Panels that never do those things sample a narrower market no matter how many prompts they run. We're building those behaviors into generation rather than adding more prompts that ask the same question.`]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"This is also why we've always said measurement is the proof layer, not the work itself. Prompt tracking tells you where you stand on the questions you chose to ask. Moving the answer happens in the retrieval pipeline: the searches AI runs, the sources it can read, the pages it cites. That part is measurable and improvable regardless of which panel you track.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Check our work\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/synthetic-prompt-coverage\",children:\"full study\"}),\" has every number, the pre-registered spec, both datasets, and the complete synthetic prompt text under a CC BY license. If you work at another AI visibility vendor: the human baseline is obtainable, the method is documented, and we'd like to see your number next to ours.\"]})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}return v(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"31:[\"$\",\"$L10\",\"we-tested-our-own-synthetic-prompts-against-143-humans\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$91\",\"title\":\"We Tested Our Own Synthetic Prompts Against 143 Real Humans\",\"date\":\"2026-08-02\",\"image\":\"/images/blog/we-tested-our-own-synthetic-prompts-against-143-humans.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Critics say AI share of voice from synthetic prompts measures nothing real. Instead of arguing, we ran the test on our own prompt generator, against 143 prompts written by real people, and published every number. What we found changes how you should read your dashboard.\",\"tags\":[\"Research\",\"AI Search Visibility\",\"Prompt Tracking\",\"Share of Voice\",\"Methodology\"],\"published\":true,\"faq\":[{\"question\":\"Does this mean AI share of voice numbers are wrong?\",\"answer\":\"It means they answer a specific question. A panel generated from your own website measures your standing in the buying situations your positioning claims, not the whole market. That's a useful number when it's labeled correctly, and a misleading one when it's sold as a market census.\"},{\"question\":\"What's the most reliable signal from a brand-anchored prompt panel?\",\"answer\":\"Losing on it. The panel is built from your own strengths, so strong numbers are the expected outcome. If a competitor still beats you on prompts derived from your own positioning, that's the finding worth acting on. In our study, Bose trailed Sony even on the panel generated from bose.com.\"},{\"question\":\"Should I trust competitive gaps from my tracked prompts?\",\"answer\":\"Be careful. The bias we measured lands on your rivals' numbers, not yours. A panel anchored on your brand under-surfaced the rival brand by almost 40 points while leaving the anchor's own number in line with the human baseline. For competitive comparisons, use a neutral, scenario-generated panel.\"},{\"question\":\"Can synthetic prompts ever represent real human asking behavior?\",\"answer\":\"The evidence says yes, with a recipe. Scenario-generated prompts were statistically indistinguishable from human ones at the response level, and when a synthetic prompt and a human prompt shared the same sub-intent, their answers matched completely. We're now testing whether matching the full sub-intent mix closes the gap entirely, with predictions registered before any data came in.\"}],\"_meta\":{\"filePath\":\"we-tested-our-own-synthetic-prompts-against-143-humans.mdx\",\"fileName\":\"we-tested-our-own-synthetic-prompts-against-143-humans.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"we-tested-our-own-synthetic-prompts-against-143-humans\"},\"body\":\"$92\",\"locale\":\"en\",\"path\":\"we-tested-our-own-synthetic-prompts-against-143-humans\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"93:T2a1d,"])</script>
2<script>self.__next_f.push([1,"To measure AI chatbots as a marketing channel, detect AI agent traffic at the server (a browser-based tag can't see it), then report two separate numbers: AI bot visits, when an assistant cites your content, and AI-referred visits, when a person actually clicks through afterward. Forward the qualified visits into the analytics tool your team already uses, and judge results against your site's real recrawl cadence instead of a next-morning check.\n\nMost marketing dashboards have a row for paid, a row for organic, a row for email, and a row for social. AI doesn't have a row. Not because it isn't sending traffic or driving citations, but because nobody wired it into the reporting yet. So it sits outside the numbers everyone else looks at, treated like a rumor instead of a channel.\n\nThat's a measurement problem, not an AI problem, and it has a fix. This guide walks through building that row: detecting AI agent traffic in the first place, telling a citation apart from an actual visit, getting the data into the analytics tool your team already trusts, and using crawl data to set realistic expectations for when content changes will show up. It's written to work with any analytics stack. The callouts show how each step runs if you're doing it in [Spyglasses](/ai-traffic-analytics).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Detect AI traffic | Classifying visits by bot type at the server | AI assistant visits show up as their own category, not \"unknown\" |\n| 2. Split bot vs. referred | Reporting citations and clickthroughs separately | Two numbers on the dashboard, not one blended count |\
2n| 3. Forward to analytics | Sending qualified AI visits into GA4 or your BI tool | AI appears as a channel next to paid, organic, and email |\n| 4. Match publishing to recrawl | Checking crawl cadence before judging results | Content changes get evaluated on a realistic timeline, not day one |\n\n## Set up a way to detect AI agent traffic\n\nA standard analytics tag can't see this. ChatGPT, Perplexity, and Gemini don't run your JavaScript the way a browser does, and even when they do fetch a page, their requests carry different signals than a human's. If your only instrumentation is a client-side tag, AI visits either don't register at all or land in a generic \"bot\" bucket next to spam crawlers and scrapers, which is functionally the same as not measuring it.\n\nThe fix is server-side classification: something that inspects every incoming request, matches it against known AI assistant signatures, and logs it as its own category before it ever hits your normal analytics pipeline. That distinction matters because there are several kinds of non-human traffic hitting your site, and they don't mean the same thing.\n\n| Visitor type | What it's doing | Why it matters |\n| :--- | :--- | :--- |\n| AI assistants (ChatGPT, Claude, Gemini, Perplexity) | Fetching your content to answer a live user question | This is AI visibility happening in real time |\n| AI model trainers (GPTBot, ClaudeBot, Google-Extended) | Collecting content for future model training | Different purpose; not tied to today's visibility |\n| Search crawlers (Googlebot, Bingbot) | Indexing content for traditional search | Feeds search rankings, and Bing's index also feeds Copilot |\n| Scrapers and other bots | General-purpose fetching, legitimate or not | Rarely relevant to AI visibility measurement |\n\n\u003cWorkflowCallout\n  title=\"The plugin classifies every visit as it happens\"\n  page=\"AI Traffic Analytics\"\n  href=\"/docs/dashboards/ai-traffic-analytics\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Tracking plugin installed on the production site\", done: true },\n      { label: \"First AI assistant visit logged and classified\", done: true },\n      { label: \"GA4 forwarding not yet connected\", done: false },\n    ],\n  }}\n\u003e\n  Spyglasses installs a lightweight server-side plugin that classifies every incoming request into AI assistants, AI model trainers, search crawlers, or other bots, and starts logging AI visits immediately. Nothing to configure before you see your first classified visit.\n\u003c/WorkflowCallout\u003e\n\n## Split AI bot visits from AI-referred clicks\n\nOnce you can see AI traffic, resist the urge to collapse it into one number. An AI bot visit and an AI-referred visit answer two different questions, and reporting them as a single metric hides the more useful one.\n\nAn AI bot visit means an assistant fetched your content to build an answer to someone's question. That's a citation event: proof your content was found, judged relevant, and used. An AI-referred visit means a person read that answer and clicked through to your site anyway. That's a much rarer event, typically 0.5% to 2% of bot visits, because most AI conversations already give the user what they came for without a click.\n\nDon't read that low percentage as failure. A prompt tracker would tell you a mention happened; this tells you whether it turned into anything a person did. Judge the channel on both signals: is AI citing you for the right questions, and are the clicks it does send converting at a rate worth reporting on.\n\n\u003cWorkflowCallout\n  title=\"Citations and clickthroughs, reported side by side\"\n  page=\"AI Traffic Analytics\"\n  href=\"/docs/dashboards/ai-traffic-analytics\"\n  signal={{\n    kind: \"count\",\n    label: \"AI bot visits, last 7 days\",\n    value: 934,\n    caption: \"261 AI-referred visits over the same period; a 28% clickthrough of bot visits would be unusual, this is normal\",\n  }}\n\u003e\n  The AI Traffic Analytics dashboard reports AI Bot Visits and AI-Referred Visits as two separate trend lines, broken down by platform, page, and intent, so you can see exactly which content gets cited and which citations turn into a real visitor.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-measure-ai-as-a-marketing-channel-quote.webp\"\n  quote=\"An AI bot visit is a page view your team can't see in the tool it already trusts. Measure it like one.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-measure-ai-as-a-marketing-channel\"\n/\u003e\n\n## Forward AI visits into your existing analytics\n\nA separate dashboard for AI traffic is a good start and a bad ending point. If AI visibility only ever lives in its own tool, it stays a side project instead of a channel, and it gets left out of the board deck, the monthly report, and the budget conversation. The fix is getting the qualified AI-referred visits into the analytics stack your team already opens every day.\n\nFor most teams that means Google Analytics 4. Connect a measurement ID and API secret, and AI-referred visits start arriving as `page_view` events alongside everything else you already track. There's one wrinkle worth knowing up front: these events don't carry a session ID the way a browser visit does, since GA4 requires that to come from its own client-side script. That means 
2session-based reports (acquisition, engagement, user journeys) may not show the data, while events reports, realtime views, and custom explorations built around the event itself will. Build one custom report around the AI event parameter and you're set; don't expect it to show up automatically everywhere else does.\n\n\u003cWorkflowCallout\n  title=\"AI shows up as a channel, not a side project\"\n  page=\"Google Analytics\"\n  href=\"/docs/dashboards/google-analytics\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"GA4 Measurement ID connected\", done: true },\n      { label: \"API secret verified\", done: true },\n      { label: \"Custom GA4 report built for session-less AI events\", done: false },\n    ],\n  }}\n\u003e\n  Once connected, Spyglasses forwards AI-referred visits to GA4 via the Measurement Protocol automatically. It only sends AI Assistant traffic, not model trainers or generic bots, so the data stays focused on visibility that actually happened.\n\u003c/WorkflowCallout\u003e\n\n## Time your publishing to your actual recrawl cadence\n\nHere's a mistake that burns real credibility: publishing a fix, checking AI traffic the next morning, seeing nothing, and reporting that the change didn't work. It might have worked fine. AI just hasn't looked at the page again yet.\n\nRecrawl frequency varies a lot, both by site and by section of the same site. A homepage might get refetched daily; a guide three folders deep might go untouched for weeks. Before you draw any conclusion, good or bad, from a traffic number, check whether the page has actually been recrawled since you changed it. If it hasn't, the accurate answer is \"too early to tell,\" not \"no measurable channel.\"\n\nThis cuts the other way too. Once you know your average cadence, you can time publishing to it: push meaningful updates on the days crawlers already tend to be active on your site, instead of fighting an unfavorable schedule.\n\n\u003cWorkflowCallout\n  title=\"Recrawl cadence sets a realistic timeline\"\n  page=\"Recrawl Frequency\"\n  href=\"/docs/dashboards/recrawl-frequency\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Average days between recrawls, blog section\",\n    before: \"Every 11 days\",\n    after: \"Every 4 days\",\n    tone: \"positive\",\n    caption: \"after moving major publishes to the midweek window where bot visits already spike\",\n  }}\n\u003e\n  Recrawl Frequency shows how often search engines and AI platforms refetch your content, broken down by page and by bot. Use it to set expectations before a launch and to confirm a page was actually revisited before you judge the results.\n\u003c/WorkflowCallout\u003e\n\n## AI is a channel once you measure it like one\n\nNothing here requires treating AI as a mystery. It's a channel with its own detection requirements, its own metrics, and its own timing quirks, the same way paid search and email each had their own learning curve once. Detect the traffic, keep bot visits and referred visits as separate numbers, get the data into the report your team already reads, and give content the time its actual recrawl cadence requires before judging it.\n\nOnce that plumbing is in place, the same signals show up in other workflows. Server-side detection is also what tells you [who's crawling your site at all](/blog/how-to-track-ai-visibility-over-time), and a page that isn't getting recrawled is often the same page that's [failing a citation gate for content reasons](/blog/how-to-optimize-existing-content-for-ai-citation), not just a timing issue. If you haven't measured AI visibility at all yet, a free [AI Visibility Report](/ai-visibility-report) is the fastest way to see where you stand before you build out the full traffic picture.\n\n**Part of the Spyglasses workflow series.** This guide is one of nine workflows for in-house marketing teams. The rest are collected in the [AI visibility guides for in-house marketing teams](/guides/ai-visibility-for-in-house-teams)."])</script>
2<script>self.__next_f.push([1,"94:T39b7,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var w=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),b=(i,e)=\u003e{for(var n in e)r(i,n,{get:e[n],enumerable:!0})},o=(i,e,n,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let s of y(e))!m.call(i,s)\u0026\u0026s!==n\u0026\u0026r(i,s,{get:()=\u003ee[s],enumerable:!(a=f(e,s))||a.enumerable});return i};var A=(i,e,n)=\u003e(n=i!=null?g(p(i)):{},o(e||!i||!i.__esModule?r(n,\"default\",{value:i,enumerable:!0}):n,i)),v=i=\u003eo(r({},\"__esModule\",{value:!0}),i);var d=w((x,l)=\u003e{l.exports=_jsx_runtime});var I={};b(I,{default:()=\u003eu});var t=A(d());function c(i){let e={a:\"a\",code:\"code\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...i.components},{PullQuote:n,WorkflowCallout:a}=e;return n||h(\"PullQuote\",!0),a||h(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To measure AI chatbots as a marketing channel, detect AI agent traffic at the server (a browser-based tag can't see it), then report two separate numbers: AI bot visits, when an assistant cites your content, and AI-referred visits, when a person actually clicks through afterward. Forward the qualified visits into the analytics tool your team already uses, and judge results against your site's real recrawl cadence instead of a next-morning check.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most marketing dashboards have a row for paid, a row for organic, a row for email, and a row for social. AI doesn't have a row. Not because it isn't sending traffic or driving citations, but because nobody wired it into the reporting yet. So it sits outside the numbers everyone else looks at, treated like a rumor instead of a channel.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"That's a measurement problem, not an AI problem, and it has a fix. This guide walks through building that row: detecting AI agent traffic in the first place, telling a citation apart from an actual visit, getting the data into the analytics tool your team already trusts, and using crawl data to set realistic expectations for when content changes will show up. It's written to work with any analytics stack. The callouts show how each step runs if you're doing it in \",(0,t.jsx)(e.a,{href:\"/ai-traffic-analytics\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Detect AI traffic\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Classifying visits by bot type at the server\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'AI assistant visits show up as their own category, not \"unknown\"'})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Split bot vs. referred\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reporting citations and clickthroughs separately\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Two numbers on the dashboard, not one blended count\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Forward to analytics\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Sending qualified AI visits into GA4 or your BI tool\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI appears as a channel next to paid, organic, and email\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Match publishing to recrawl\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Checking crawl cadence before judging results\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Content changes get evaluated on a realistic timeline, not day one\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Set up a way to detect AI agent traffic\"}),`\n`,(0,t.jsx)(e.p,{children:`A standard analytics tag can't see this. ChatGPT, Perplexity, and Gemini don't run your JavaScript the way a browser does, and even when they do fetch a page, the
2ir requests carry different signals than a human's. If your only instrumentation is a client-side tag, AI visits either don't register at all or land in a generic \"bot\" bucket next to spam crawlers and scrapers, which is functionally the same as not measuring it.`}),`\n`,(0,t.jsx)(e.p,{children:\"The fix is server-side classification: something that inspects every incoming request, matches it against known AI assistant signatures, and logs it as its own category before it ever hits your normal analytics pipeline. That distinction matters because there are several kinds of non-human traffic hitting your site, and they don't mean the same thing.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Visitor type\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it's doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Why it matters\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI assistants (ChatGPT, Claude, Gemini, Perplexity)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fetching your content to answer a live user question\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"This is AI visibility happening in real time\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI model trainers (GPTBot, ClaudeBot, Google-Extended)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Collecting content for future model training\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Different purpose; not tied to today's visibility\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Search crawlers (Googlebot, Bingbot)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Indexing content for traditional search\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Feeds search rankings, and Bing's index also feeds Copilot\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Scrapers and other bots\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"General-purpose fetching, legitimate or not\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rarely relevant to AI visibility measurement\"})]})]})]}),`\n`,(0,t.jsx)(a,{title:\"The plugin classifies every visit as it happens\",page:\"AI Traffic Analytics\",href:\"/docs/dashboards/ai-traffic-analytics\",signal:{kind:\"checklist\",items:[{label:\"Tracking plugin installed on the production site\",done:!0},{label:\"First AI assistant visit logged and classified\",done:!0},{label:\"GA4 forwarding not yet connected\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Spyglasses installs a lightweight server-side plugin that classifies every incoming request into AI assistants, AI model trainers, search crawlers, or other bots, and starts logging AI visits immediately. Nothing to configure before you see your first classified visit.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Split AI bot visits from AI-referred clicks\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once you can see AI traffic, resist the urge to collapse it into one number. An AI bot visit and an AI-referred visit answer two different questions, and reporting them as a single metric hides the more useful one.\"}),`\n`,(0,t.jsx)(e.p,{children:\"An AI bot visit means an assistant fetched your content to build an answer to someone's question. That's a citation event: proof your content was found, judged relevant, and used. An AI-referred visit means a person read that answer and clicked through to your site anyway. That's a much rarer event, typically 0.5% to 2% of bot visits, because most AI conversations already give the user what they came for without a click.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Don't read that low percentage as failure. A prompt tracker would tell you a mention happened; this tells you whether it turned into anything a person did. Judge the channel on both signals: is AI citing you for the right questions, and are the clicks it does send convert
2ing at a rate worth reporting on.\"}),`\n`,(0,t.jsx)(a,{title:\"Citations and clickthroughs, reported side by side\",page:\"AI Traffic Analytics\",href:\"/docs/dashboards/ai-traffic-analytics\",signal:{kind:\"count\",label:\"AI bot visits, last 7 days\",value:934,caption:\"261 AI-referred visits over the same period; a 28% clickthrough of bot visits would be unusual, this is normal\"},children:(0,t.jsx)(e.p,{children:\"The AI Traffic Analytics dashboard reports AI Bot Visits and AI-Referred Visits as two separate trend lines, broken down by platform, page, and intent, so you can see exactly which content gets cited and which citations turn into a real visitor.\"})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-measure-ai-as-a-marketing-channel-quote.webp\",quote:\"An AI bot visit is a page view your team can't see in the tool it already trusts. Measure it like one.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-measure-ai-as-a-marketing-channel\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Forward AI visits into your existing analytics\"}),`\n`,(0,t.jsx)(e.p,{children:\"A separate dashboard for AI traffic is a good start and a bad ending point. If AI visibility only ever lives in its own tool, it stays a side project instead of a channel, and it gets left out of the board deck, the monthly report, and the budget conversation. The fix is getting the qualified AI-referred visits into the analytics stack your team already opens every day.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"For most teams that means Google Analytics 4. Connect a measurement ID and API secret, and AI-referred visits start arriving as \",(0,t.jsx)(e.code,{children:\"page_view\"}),\" events alongside everything else you already track. There's one wrinkle worth knowing up front: these events don't carry a session ID the way a browser visit does, since GA4 requires that to come from its own client-side script. That means session-based reports (acquisition, engagement, user journeys) may not show the data, while events reports, realtime views, and custom explorations built around the event itself will. Build one custom report around the AI event parameter and you're set; don't expect it to show up automatically everywhere else does.\"]}),`\n`,(0,t.jsx)(a,{title:\"AI shows up as a channel, not a side project\",page:\"Google Analytics\",href:\"/docs/dashboards/google-analytics\",signal:{kind:\"checklist\",items:[{label:\"GA4 Measurement ID connected\",done:!0},{label:\"API secret verified\",done:!0},{label:\"Custom GA4 report built for session-less AI events\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Once connected, Spyglasses forwards AI-referred visits to GA4 via the Measurement Protocol automatically. It only sends AI Assistant traffic, not model trainers or generic bots, so the data stays focused on visibility that actually happened.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Time your publishing to your actual recrawl cadence\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's a mistake that burns real credibility: publishing a fix, checking AI traffic the next morning, seeing nothing, and reporting that the change didn't work. It might have worked fine. AI just hasn't looked at the page again yet.\"}),`\n`,(0,t.jsx)(e.p,{children:`Recrawl frequency varies a lot, both by site and by section of the same site. A homepage might get refetched daily; a guide three folders deep might go untouched for weeks. Before you draw any conclusion, good or bad, from a traffic number, check whether the page has actually been recrawled since you changed it. If it hasn't, the accurate answer is \"too early to tell,\" not \"no measurable channel.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"This cuts the other way too. Once you know your average cadence, you can time publishing to it: push meaningful updates on the days crawlers already tend to be active on your site, instead of fighting an unfavorable schedule.\"}),`\n`,(0,t.jsx)(a,{title:\"Recrawl cadence sets a realistic timeline\",page:\"Recrawl Frequency\",href:\"/docs/dashboards/recrawl-frequency\",signal:{kind:\"beforeAfter\",label:\"Average days between recrawls, blog section\",before:\"Every 11 days\",after:\"Every 4 days\",tone:\"positive\",caption:\"after mov
2ing major publishes to the midweek window where bot visits already spike\"},children:(0,t.jsx)(e.p,{children:\"Recrawl Frequency shows how often search engines and AI platforms refetch your content, broken down by page and by bot. Use it to set expectations before a launch and to confirm a page was actually revisited before you judge the results.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"AI is a channel once you measure it like one\"}),`\n`,(0,t.jsx)(e.p,{children:\"Nothing here requires treating AI as a mystery. It's a channel with its own detection requirements, its own metrics, and its own timing quirks, the same way paid search and email each had their own learning curve once. Detect the traffic, keep bot visits and referred visits as separate numbers, get the data into the report your team already reads, and give content the time its actual recrawl cadence requires before judging it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Once that plumbing is in place, the same signals show up in other workflows. Server-side detection is also what tells you \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"who's crawling your site at all\"}),\", and a page that isn't getting recrawled is often the same page that's \",(0,t.jsx)(e.a,{href:\"/blog/how-to-optimize-existing-content-for-ai-citation\",children:\"failing a citation gate for content reasons\"}),\", not just a timing issue. If you haven't measured AI visibility at all yet, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the fastest way to see where you stand before you build out the full traffic picture.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of nine workflows for in-house marketing teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-in-house-teams\",children:\"AI visibility guides for in-house marketing teams\"}),\".\"]})]})}function u(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(c,{...i})}):c(i)}function h(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return v(I);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"32:[\"$\",\"$L10\",\"how-to-measure-ai-as-a-marketing-channel\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$93\",\"title\":\"How to Measure AI as a Marketing Channel\",\"date\":\"2026-08-01\",\"image\":\"/images/blog/how-to-measure-ai-as-a-marketing-channel.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Your dashboard has a line for paid, organic, email, and social. It probably doesn't have one for AI, so the channel is invisible even when it's working. Here's how to build that line, using the traffic you already have.\",\"tags\":[\"In-house\",\"How-to\",\"Workflows\",\"AI Traffic\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"What's the difference between an AI bot visit and an AI-referred visit?\",\"answer\":\"An AI bot visit is an AI assistant fetching your page to build an answer. An AI-referred visit is a real person clicking through from that answer to your site. The first measures whether AI is using your content. The second measures whether it sent you a human. You need both numbers, and they're not the same metric.\"},{\"question\":\"Why is my AI-referred visit count so much lower than my AI bot visit count?\",\"answer\":\"That's normal, not a problem. Most AI conversations answer the question directly in the chat, so there's nothing left to click through for. AI-referred visits typically run 0.5% to 2% of AI bot visits. Judge the channel on whether it's citing you accurately and whether the visits it does send convert, not on raw volume.\"},{\"question\":\"Can I just track this in Google Analytics?\",\"answer\":\"Not on its own. AI assistant visits don't carry a session ID the way a browser visit does, so a lot of standard GA4 reports quietly drop them. You need a detection layer that classifies the visit first, then forwards the qualified ones into GA4 as events you can build a custom report around.\"},{\"question\":\"How often should I check AI traffic data?\",\"answer\":\"Weekly is enough for most teams. Check daily right after a launch, a big content push, or a change to how you're blocking bots, since that's when you'd expect the numbers to move fastest.\"},{\"question\":\"Does blocking AI crawlers affect this measurement?\",\"answer\":\"Yes, directly. Block the assistants themselves (not just the model-training bots) and you lose citation visibility entirely, not just traffic. Deciding who to block is its own workflow; do it deliberately, with the traffic data in front of you, not by accident.\"}],\"howTo\":{\"name\":\"How to measure AI as a marketing channel\",\"description\":\"A step-by-step guide to detecting AI agent traffic, separating citation events from human clickthroughs, folding the data into your existing analytics, and timing content updates to when AI actually recrawls your site.\",\"steps\":[{\"name\":\"Set up a way to detect AI agent traffic\",\"text\":\"Install a server-side detection layer that classifies visits by bot type. AI assistants use their own user agents, and standard web analytics can't tell them apart from a regular browser.\"},{\"name\":\"Split AI bot visits from AI-referred clicks\",\"text\":\"Report two separate numbers, not one. How often AI cites your content in an answer, and how often a person actually clicks through afterward. They measure different things.\"},{\"name\":\"Forward AI visits into your existing analytics\",\"text\":\"Send the AI-referred visits into the analytics stack your team already reports from, so AI shows up next to paid, organic, and email instead of living in a tool nobody opens.\"},{\"name\":\"Time your publishing to your actual recrawl cadence\",\"text\":\"Check how often AI platforms actually refetch your pages before drawing conclusions from a lack of movement, and line up major publishes with when crawlers are already active.\"}]},\"_meta\":{\"filePath\":\"how-to-measure-ai-as-a-marketing-channel.mdx\",\"fileName\":\"how-to-measure-ai-as-a-marketing-channel.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-measure-ai-as-a-marketing-channel\"},\"body\":\"$94\",\"locale\":\"en\",\"path\":\"how-to-measure-ai-as-a-marketing-channel\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"95:T3312,"])</script>
2<script>self.__next_f.push([1,"Most content teams treat AI citation like a writing problem. Write more, write better, publish more often, and eventually ChatGPT, Perplexity, and Google AI Overviews start mentioning you. That instinct isn't wrong, but it points you at the wrong pile of work first.\n\nHere's the pile that actually pays off faster: pages you've already published. A page sitting at position 11 to 20 in Google for a topic you already cover well is often one or two fixable gaps away from getting picked up by ChatGPT, not a whole new article away. The gap might be a missing direct answer in the first two sentences, a page that reads fine to a person but chunks badly for a model, or schema that never got added. None of that requires new research or a new angle. It requires diagnosis, then a targeted fix.\n\nThis guide walks through that process: how to find the pages worth the effort, how to figure out exactly why AI is skipping them, how to fix the actual problem instead of guessing, and how to confirm the fix worked. It's written to work with any content workflow. The callouts show how each step runs if you're doing it in [Spyglasses](/ai-readiness-audit).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Find candidates | Prioritizing by payoff, not gut feel | A shortlist of queries with high Impact Score and a near-match page |\n| 2. Diagnose | Finding the specific failing gate | A gate-by-gate score, not a single number |\n| 3. Fix the gates | Targeted edits, not a rewrite | Each failing gate addressed with its specific recommendation |\n| 4. Re-score | Confirming the fix before you ship it | Score clears your target |\n| 5. Confirm and watch | Verifying the real-world result | Recrawl confirmed; rank climbing over two weeks |\n| 6. Prove it and repeat | Turning a one-off win into a process | Result tracked; next candidate already queued |\n\n## Find your best candidates for optimization\n\nNot every underperforming page deserves the same attention. The pages worth fixing share three things: a real query behind them, decent payoff if you win it, and content that's already close. That last part matters most. A page that's a good topical match but ranks nowhere is a fix. A topic you've never covered is a different project entirely; that's new content, not optimization.\n\nRank your candidates by two numbers: how much a query is worth (its Impact Score, a function of search volume and how often it shows up across AI platforms), and how far your existing page is from ranking for it. For example, a query like \"best ultralight tents under $400\" with a competitor sitting at rank 2 and your own page unranked is a textbook high-value, small-gap candidate. High value plus no page at all goes on a separate content-gap list; don't burn optimization time trying to stretch a page to cover a topic it was never written for.\n\n| Signal | What it means | What to do |\n| :--- | :--- | :--- |\n| High Impact Score, you're unranked, page exists on topic | Fastest win available | Optimize this page first |\n| High Impact Score, no page exists on the topic | Real gap, not a fix | Route to your content calendar as new content |\n| Low Impact Score, any rank | Low payoff either way | Skip for now |\n\n\u003cWorkflowCallout\n  title=\"AI Visibility Rankings flags where you're already close\"\n  page=\"AI Visibility Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"count\",\n    label: \"Queries flagged, existing page nearby\",\n    value: 6,\n    caption: \"\\\"best ultralight tents under $400\\\" · you: unranked · competitor: #2\",\n  }}\n\u003e\n  AI Visibility Rankings sorts your tracked fan-out queries by Impact Score and shows who holds each rank today. Cross-referencing against your existing pages surfaces the near-misses: content you already have that just isn't winning yet.\n\u003c/WorkflowCallout\u003e\n\n## Diagnose why AI isn't citing the page\n\nOnce you've picked a page, don't start editing yet. First find out exactly why it's losing. \"The content isn't good enough\" is rarely the real answer, and guessing wastes a revision cycle on the wrong fix.\n\nThe citation pipeline runs a page through several distinct stages before it ever gets quoted: whether it would surface for the query at all, whether the chunk containing the answer is retrievable on its own, whether that chunk's meaning actually matches the query's meaning, and whether structured data and freshness signals back up what the content claims. A page can be well-written and still fail any one of these stages. Scoring the page against the query shows you which stage it's actually failing, gate by gate, instead of a single opaque number.\n\n| Gate | What it checks | Common fix |\n| :--- | :--- | :--- |\n| Search relevance | Would the page surface for this query at all | Match the query's phrasing pattern in a heading |\n| Chunking | Is the answer retrievable as one self-contained piece | Move the direct answer above the supporting detail |\n| Relevance scoring | Does the chunk's meaning match the query's meaning | Rewrite for meaning-match, not just keyword match |\n| Structured data | Does schema confirm what the page claims | Add or correct JSON-LD |\n| Freshness and authority | Does the page read as current and credible | Update dates, add an author, cite sources |\n\n\u003cWorkflowCallout\n  title=\"One score, broken down gate by gate\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/methodology/citation-optimizer\"\n  signal={{\n    kind: \"score\",\n    label: \"Citation pipeline score\",\n    value: 42,\n    target: 70,\n  }}\n\u003e\n  Citation Optimizer scores your page against the target query using the same methods the pipeline actually uses: reciprocal rank fusion, chunk relevance, cosine similarity. Scoring is free, so run it before you touch a word.\n\u003c/WorkflowCallout\u003e\n\n## Fix the highest-impact gates first\n\nNow you know 
2which stages are failing, so fix those, and only those. This is the part where a lot of content teams overcorrect: a page fails one gate and gets a full rewrite anyway, which costs more time and risks breaking the parts that were already working.\n\nWork down the list in order of impact. A page that fails search relevance needs a heading and framing fix before anything else matters, because a page that never surfaces never gets to the later gates regardless of how well it would score there. A page that surfaces fine but fails chunking usually needs the direct answer moved higher and tightened, not a longer article. Structured data and freshness gates are often the fastest fixes of all: adding schema or an author byline doesn't touch the prose at all.\n\nKeep your original voice and structure wherever a gate doesn't require touching it. The goal is the smallest edit that clears the failing gates, not a fresh draft.\n\n\u003cWorkflowCallout\n  title=\"Recommendations point at the gate, not the whole page\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Chunking gate: answer moved above the fold\", done: true },\n      { label: \"Structured data gate: FAQ schema added\", done: true },\n      { label: \"Freshness gate: author and date updated\", done: false },\n    ],\n  }}\n\u003e\n  Each failing gate comes with a specific recommendation, not a generic \"improve your content\" note. Work the list, and leave the gates that already pass alone.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-optimize-existing-content-for-ai-citation-quote.webp\"\n  quote=\"The page you need probably already exists. It's usually one or two fixable gaps away from getting cited, not a blank page away.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-optimize-existing-content-for-ai-citation\"\n/\u003e\n\n## Re-score before you publish\n\nDon't publish on faith. Re-run the score after every revision round and check it against the specific gates you targeted, not just the overall number. A page can gain ten points from an easy fix and still fail the gate that actually matters for this query.\n\nTwo rounds is usually enough. If the score is still well short of your target after two solid attempts, that's a signal the underlying content doesn't answer the question completely yet, and no amount of gate-chasing will fix that. Treat it as a rewrite candidate instead of a third patch. This is also the point where the [AI Readiness Site Audit](/ai-readiness-audit) is worth a second look, since a page can fail a citation gate for the same underlying reason it's flagged in a broader audit; thin extractable copy, missing structured data, weak E-E-A-T signals all show up in both places.\n\n\u003cWorkflowCallout\n  title=\"Re-scoring is free, so iterate until the banner clears\"\n  page=\"Citation Optimizer\"\n  href=\"/docs/dashboards/citation-optimizer\"\n  signal={{\n    kind: \"beforeAfter\",\n    label: \"Citation pipeline score\",\n    before: \"42\",\n    after: \"74\",\n    tone: \"positive\",\n    caption: \"two revision rounds; cleared chunking and structured data\",\n  }}\n\u003e\n  Every re-score is free and unlimited, with a before/after diff and a change log so you can see exactly what moved the number. Export markdown, HTML, and the title, meta, and JSON-LD together once the banner clears.\n\u003c/WorkflowCallout\u003e\n\n## Confirm the recrawl and watch the rank\n\nPublishing isn't the finish line. AI can only use what it has actually recrawled, and recrawl cadence varies a lot by site and even by section of the same site. Check that the updated page has been picked up before you draw any conclusions from the rank.\n\nOnce it's confirmed, watch the query's rank for the next two weeks rather than checking once and moving on. Movement is rarely instant, and a single day's answer can bounce around even after a real improvement. The shape to look for is a rank that steadily climbs, not a single good day. If two weeks pass with 
2no movement at all and the recrawl is confirmed, that's worth a second diagnostic pass, not more patience.\n\n\u003cWorkflowCallout\n  title=\"AI Visibility Rankings shows the payoff\"\n  page=\"AI Visibility Rankings\"\n  href=\"/docs/dashboards/ai-visibility-rankings\"\n  signal={{\n    kind: \"trend\",\n    label: \"Rank for target query, 14 days\",\n    series: [31, 30, 27, 23, 19, 17, 14, 12, 10, 9, 8, 7, 6, 5],\n    change: -26,\n    suffix: \" spots\",\n    lowerIsBetter: true,\n  }}\n\u003e\n  Once the page is recrawled, AI Visibility Rankings tracks its position for the target query day over day. Annotate the publish date so the climb is attributable to the work, not coincidence.\n\u003c/WorkflowCallout\u003e\n\n## Prove the win and make it a habit\n\nOne page climbing a rank is a nice result. A repeatable process is the actual goal. Add the page to a tracking project so the win is on the record with a before-and-after you can point to, the same way you'd want to [measure a broader content refresh](/blog/measuring-ai-visibility-before-after-content-refresh).\n\nThen queue the next candidate. This works best as a standing cadence, not a one-time push: check your Impact Score shortlist monthly, pick the top two or three near-misses, run them through the same steps. Teams that treat this like ongoing [visibility tracking](/blog/how-to-track-ai-visibility-over-time) instead of a single sprint see the gains compound, because each fixed page also teaches you which gates your site tends to fail, which makes the next diagnosis faster.\n\n\u003cWorkflowCallout\n  title=\"A project turns one win into an ongoing practice\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Page group tracking 14 optimized pages\", done: true },\n      { label: \"Monthly candidate review scheduled\", done: true },\n      { label: \"Publish dates annotated\", done: false },\n    ],\n  }}\n\u003e\n  An SEO project tracks your optimized pages together, so the rank changes are attributable and exportable, not scattered across individual page checks. The same project structure works whether you're optimizing one page or fourteen.\n\u003c/WorkflowCallout\u003e\n\n## The content you need probably already exists\n\nIt's tempting to treat AI citation as a reason to write more. Sometimes that's true. But the fastest visibility gains usually come from the content already sitting on your site, ranking on page two, one or two fixable gaps away from getting picked up. Diagnose before you rewrite, fix the gate that's actually failing, and confirm the result before you call it done.\n\nIf you want a starting shortlist, a free [AI Visibility Report](/ai-visibility-report) shows how your brand shows up in AI answers today, including the queries where you're close but not quite there. And if the content gap is really a missing-questions problem rather than an existing-page problem, [FAQ generation](/faq-generation) is the faster fix on a property with its own crawlable site; that's a different workflow, but it's worth knowing which one you're actually running before you start.\n\n**Part of the Spyglasses workflow series.** This guide is one of five workflows for content teams. The rest are collected in the [AI visibility guides for content teams](/guides/ai-visibility-for-content-teams)."])</script>
2<script>self.__next_f.push([1,"96:T4871,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var m=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),b=(i,e)=\u003e{for(var n in e)o(i,n,{get:e[n],enumerable:!0})},s=(i,e,n,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of p(e))!w.call(i,r)\u0026\u0026r!==n\u0026\u0026o(i,r,{get:()=\u003ee[r],enumerable:!(a=f(e,r))||a.enumerable});return i};var x=(i,e,n)=\u003e(n=i!=null?u(y(i)):{},s(e||!i||!i.__esModule?o(n,\"default\",{value:i,enumerable:!0}):n,i)),k=i=\u003es(o({},\"__esModule\",{value:!0}),i);var h=m((I,l)=\u003e{l.exports=_jsx_runtime});var A={};b(A,{default:()=\u003eg});var t=x(h());function d(i){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...i.components},{PullQuote:n,WorkflowCallout:a}=e;return n||c(\"PullQuote\",!0),a||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Most content teams treat AI citation like a writing problem. Write more, write better, publish more often, and eventually ChatGPT, Perplexity, and Google AI Overviews start mentioning you. That instinct isn't wrong, but it points you at the wrong pile of work first.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the pile that actually pays off faster: pages you've already published. A page sitting at position 11 to 20 in Google for a topic you already cover well is often one or two fixable gaps away from getting picked up by ChatGPT, not a whole new article away. The gap might be a missing direct answer in the first two sentences, a page that reads fine to a person but chunks badly for a model, or schema that never got added. None of that requires new research or a new angle. It requires diagnosis, then a targeted fix.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This guide walks through that process: how to find the pages worth the effort, how to figure out exactly why AI is skipping them, how to fix the actual problem instead of guessing, and how to confirm the fix worked. It's written to work with any content workflow. The callouts show how each step runs if you're doing it in \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Find candidates\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Prioritizing by payoff, not gut feel\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A shortlist of queries with high Impact Score and a near-match page\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Diagnose\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Finding the specific failing gate\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"A gate-by-gate score, not a single number\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Fix the gates\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Targeted edits, not a rewrite\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Each failing gate addressed with its specific recommendation\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Re-score\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Confirming the fix before you ship it\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Score clears your target\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Confirm and watch\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Verifying the real-world result\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Recrawl confirmed; rank climbing over two weeks\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Prove it and repeat\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Turning a one-off win into a process\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Result tracked; next candidate already queued\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Find your best candidates for optimization\"}),`\n`,(0,t.jsx)(e.p,{children:\"Not every underperforming page deserves the same attention. The pages worth fixing share three things: a real query behind them, decent payoff if you win it, and content that's already close. That last part matters most. A page that's a good topical match but ranks nowhere is a fix. A topic you've never covered is a different project entirely; that's new content, not optimization.\"}
2),`\n`,(0,t.jsx)(e.p,{children:`Rank your candidates by two numbers: how much a query is worth (its Impact Score, a function of search volume and how often it shows up across AI platforms), and how far your existing page is from ranking for it. For example, a query like \"best ultralight tents under $400\" with a competitor sitting at rank 2 and your own page unranked is a textbook high-value, small-gap candidate. High value plus no page at all goes on a separate content-gap list; don't burn optimization time trying to stretch a page to cover a topic it was never written for.`}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Signal\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it means\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What to do\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High Impact Score, you're unranked, page exists on topic\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fastest win available\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Optimize this page first\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High Impact Score, no page exists on the topic\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Real gap, not a fix\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Route to your content calendar as new content\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Low Impact Score, any rank\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Low payoff either way\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Skip for now\"})]})]})]}),`\n`,(0,t.jsx)(a,{title:\"AI Visibility Rankings flags where you're already close\",page:\"AI Visibility Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"count\",label:\"Queries flagged, existing page nearby\",value:6,caption:'\"best ultralight tents under $400\" \\xB7 you: unranked \\xB7 competitor: #2'},children:(0,t.jsx)(e.p,{children:\"AI Visibility Rankings sorts your tracked fan-out queries by Impact Score and shows who holds each rank today. Cross-referencing against your existing pages surfaces the near-misses: content you already have that just isn't winning yet.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Diagnose why AI isn't citing the page\"}),`\n`,(0,t.jsx)(e.p,{children:`Once you've picked a page, don't start editing yet. First find out exactly why it's losing. \"The content isn't good enough\" is rarely the real answer, and guessing wastes a revision cycle on the wrong fix.`}),`\n`,(0,t.jsx)(e.p,{children:\"The citation pipeline runs a page through several distinct stages before it ever gets quoted: whether it would surface for the query at all, whether the chunk containing the answer is retrievable on its own, whether that chunk's meaning actually matches the query's meaning, and whether structured data and freshness signals back up what the content claims. A page can be well-written and still fail any one of these stages. Scoring the page against the query shows you which stage it's actually failing, gate by gate, instead of a single opaque number.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Gate\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What it checks\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Common fix\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Search relevance\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Would the page surface for this query at all\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Match the query's phrasing pattern in a heading\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Chunking\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Is the answer retrievable as one self-contained piece\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Move the direct answer above the supporting detail\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Relevance scoring\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Does the chunk's meaning match the query's meaning\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Rewrite for meaning-match, not just keyword match\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Structured data\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Does schema confirm what the page claims\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Add or correct JSON-LD\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Freshness and authority\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Does the page read as current and credible\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Update dates, add an author, cite sources\"})]})]})]}),`\n`,(0,t.jsx)(a,{title:\"One score, broken down gate by gate\",page:\"Citation Optimizer\",href:\"/docs/methodology/citation-optimizer\",signal:{kind:\"score\",label:\"Citation pipeline score\",value:42,target:70},children:(0,t.jsx)(e.p,{children:\"Citation Optimizer scores your page against the target query using the same methods the pipeline actually uses: reciprocal rank fusion, chunk relevance, cosine similarity. Scoring is free, so run it before you touch a word.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Fix the highest-impact gates first\"}
2),`\n`,(0,t.jsx)(e.p,{children:\"Now you know which stages are failing, so fix those, and only those. This is the part where a lot of content teams overcorrect: a page fails one gate and gets a full rewrite anyway, which costs more time and risks breaking the parts that were already working.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Work down the list in order of impact. A page that fails search relevance needs a heading and framing fix before anything else matters, because a page that never surfaces never gets to the later gates regardless of how well it would score there. A page that surfaces fine but fails chunking usually needs the direct answer moved higher and tightened, not a longer article. Structured data and freshness gates are often the fastest fixes of all: adding schema or an author byline doesn't touch the prose at all.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Keep your original voice and structure wherever a gate doesn't require touching it. The goal is the smallest edit that clears the failing gates, not a fresh draft.\"}),`\n`,(0,t.jsx)(a,{title:\"Recommendations point at the gate, not the whole page\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"checklist\",items:[{label:\"Chunking gate: answer moved above the fold\",done:!0},{label:\"Structured data gate: FAQ schema added\",done:!0},{label:\"Freshness gate: author and date updated\",done:!1}]},children:(0,t.jsx)(e.p,{children:'Each failing gate comes with a specific recommendation, not a generic \"improve your content\" note. Work the list, and leave the gates that already pass alone.'})}),`\n`,(0,t.jsx)(n,{image:\"/images/blog/how-to-optimize-existing-content-for-ai-citation-quote.webp\",quote:\"The page you need probably already exists. It's usually one or two fixable gaps away from getting cited, not a blank page away.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-optimize-existing-content-for-ai-citation\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Re-score before you publish\"}),`\n`,(0,t.jsx)(e.p,{children:\"Don't publish on faith. Re-run the score after every revision round and check it against the specific gates you targeted, not just the overall number. A page can gain ten points from an easy fix and still fail the gate that actually matters for this query.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Two rounds is usually enough. If the score is still well short of your target after two solid attempts, that's a signal the underlying content doesn't answer the question completely yet, and no amount of gate-chasing will fix that. Treat it as a rewrite candidate instead of a third patch. This is also the point where the \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" is worth a second look, since a page can fail a citation gate for the same underlying reason it's flagged in a broader audit; thin extractable copy, missing structured data, weak E-E-A-T signals all show up in both places.\"]}),`\n`,(0,t.jsx)(a,{title:\"Re-scoring is free, so iterate until the banner clears\",page:\"Citation Optimizer\",href:\"/docs/dashboards/citation-optimizer\",signal:{kind:\"beforeAfter\",label:\"Citation pipeline score\",before:\"42\",after:\"74\",tone:\"positive\",caption:\"two revision rounds; cleared chunking and structured data\"},children:(0,t.jsx)(e.p,{children:\"Every re-score is free and unlimited, with a before/after diff and a change log so you can see exactly what moved the number. Export markdown, HTML, and the title, meta, and JSON-LD together once the banner clears.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Confirm the recrawl and watch the rank\"}),`\n`,(0,t.jsx)(e.p,{children:\"Publishing isn't the finish line. AI can only use what it has actually recrawled, and recrawl cadence varies a lot by site and even by section of the same site. Check that the updated page has been picked up before you draw any conclusions from the rank.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once it's confirmed, watch the query's rank for the next two weeks rather than checking once and moving on. Movement is rarely instant, and a single day's answer can bounce around even after a real improvement. The shape to look for is a rank that steadily climbs, not a single good day. If two weeks pass with 
2no movement at all and the recrawl is confirmed, that's worth a second diagnostic pass, not more patience.\"}),`\n`,(0,t.jsx)(a,{title:\"AI Visibility Rankings shows the payoff\",page:\"AI Visibility Rankings\",href:\"/docs/dashboards/ai-visibility-rankings\",signal:{kind:\"trend\",label:\"Rank for target query, 14 days\",series:[31,30,27,23,19,17,14,12,10,9,8,7,6,5],change:-26,suffix:\" spots\",lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"Once the page is recrawled, AI Visibility Rankings tracks its position for the target query day over day. Annotate the publish date so the climb is attributable to the work, not coincidence.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Prove the win and make it a habit\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"One page climbing a rank is a nice result. A repeatable process is the actual goal. Add the page to a tracking project so the win is on the record with a before-and-after you can point to, the same way you'd want to \",(0,t.jsx)(e.a,{href:\"/blog/measuring-ai-visibility-before-after-content-refresh\",children:\"measure a broader content refresh\"}),\".\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then queue the next candidate. This works best as a standing cadence, not a one-time push: check your Impact Score shortlist monthly, pick the top two or three near-misses, run them through the same steps. Teams that treat this like ongoing \",(0,t.jsx)(e.a,{href:\"/blog/how-to-track-ai-visibility-over-time\",children:\"visibility tracking\"}),\" instead of a single sprint see the gains compound, because each fixed page also teaches you which gates your site tends to fail, which makes the next diagnosis faster.\"]}),`\n`,(0,t.jsx)(a,{title:\"A project turns one win into an ongoing practice\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Page group tracking 14 optimized pages\",done:!0},{label:\"Monthly candidate review scheduled\",done:!0},{label:\"Publish dates annotated\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"An SEO project tracks your optimized pages together, so the rank changes are attributable and exportable, not scattered across individual page checks. The same project structure works whether you're optimizing one page or fourteen.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The content you need probably already exists\"}),`\n`,(0,t.jsx)(e.p,{children:\"It's tempting to treat AI citation as a reason to write more. Sometimes that's true. But the fastest visibility gains usually come from the content already sitting on your site, ranking on page two, one or two fixable gaps away from getting picked up. Diagnose before you rewrite, fix the gate that's actually failing, and confirm the result before you call it done.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you want a starting shortlist, a free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" shows how your brand shows up in AI answers today, including the queries where you're close but not quite there. And if the content gap is really a missing-questions problem rather than an existing-page problem, \",(0,t.jsx)(e.a,{href:\"/faq-generation\",children:\"FAQ generation\"}),\" is the faster fix on a property with its own crawlable site; that's a different workflow, but it's worth knowing which one you're actually running before you start.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of five workflows for content teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-content-teams\",children:\"AI visibility guides for content teams\"}),\".\"]})]})}function g(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(d,{...i})}):d(i)}function c(i,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+i+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"33:[\"$\",\"$L10\",\"how-to-optimize-existing-content-for-ai-citation\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$95\",\"title\":\"How to Optimize Existing Content for AI Citation\",\"date\":\"2026-07-31\",\"image\":\"/images/blog/how-to-optimize-existing-content-for-ai-citation.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Most of your citation opportunity isn't in content you haven't written yet. It's sitting on your site already, one fixable gate away from getting picked up. A step-by-step playbook for finding those pages, diagnosing why AI skips them, and fixing what's actually broken.\",\"tags\":[\"Content\",\"How-to\",\"Workflows\",\"AI Citation\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How do I know which page to optimize first?\",\"answer\":\"Start with fan-out queries where your Impact Score is high, a competitor already holds the rank, and you already have a page close to the topic. Fixing an existing page beats writing a new one; it's faster to publish and faster to measure.\"},{\"question\":\"Is this different from regular SEO content optimization?\",\"answer\":\"Related, but not the same thing. SEO optimizes for search rankings. The citation pipeline is a separate process AI runs after search to decide what to actually read and quote. Good SEO habits like clear headings and answer-first structure help both, but you're now also optimizing for how a model chunks your page and scores it for meaning, not just how a crawler indexes it.\"},{\"question\":\"How long before the rank actually moves after I republish?\",\"answer\":\"It depends on how often AI recrawls the page, which varies by site and section. Some pages get picked up in days, others take a few weeks. Check your recrawl cadence before you set expectations with a client or a boss.\"},{\"question\":\"What if the score won't clear even after a couple of revisions?\",\"answer\":\"That usually means the content itself doesn't answer the question well enough yet, not that a gate needs a small patch. At that point you're better off treating it as a rewrite than a third round of tweaks.\"},{\"question\":\"Should every page on the site get this treatment?\",\"answer\":\"No. Spend the effort on pages tied to queries with real payoff. A perfectly optimized page for a query nobody asks isn't worth the time.\"}],\"howTo\":{\"name\":\"How to optimize existing content for AI citation\",\"description\":\"A step-by-step playbook for finding pages that are close to getting cited by AI, diagnosing why they aren't, and fixing what's actually broken.\",\"steps\":[{\"name\":\"Find your best candidates for optimization\",\"text\":\"Look for fan-out queries with a high Impact Score where a competitor already ranks and you already have a page close to the topic. That's your fastest win.\"},{\"name\":\"Diagnose why AI isn't citing the page\",\"text\":\"Score the page against the query through the citation pipeline. The gate-by-gate breakdown tells you exactly where it falls out, instead of leaving you guessing.\"},{\"name\":\"Fix the highest-impact gates first\",\"text\":\"Work the specific recommendations tied to each failing gate. Don't rewrite the whole page when only one or two stages are the problem.\"},{\"name\":\"Re-score before you publish\",\"text\":\"Re-run the score after each revision. Iterate until it clears your target, then export the revision instead of hand-copying the fix into your CMS.\"},{\"name\":\"Confirm the recrawl and watch the rank\",\"text\":\"Publish, check that AI has actually recrawled the page, then track the query's rank over the following two weeks.\"},{\"name\":\"Prove the win and make it a habit\",\"text\":\"Add the page to a tracking project so the rank change is on the record, then repeat the process on a schedule instead of a one-off.\"}]},\"_meta\":{\"filePath\":\"how-to-optimize-existing-content-for-ai-citation.mdx\",\"fileName\":\"how-to-optimize-existing-content-for-ai-citation.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-optimize-existing-content-for-ai-citation\"},\"body\":\"$96\",\"locale\":\"en\",\"path\":\"how-to-optimize-existing-content-for-ai-citation\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"97:T38e3,"])</script>
2<script>self.__next_f.push([1,"A negative story is breaking. Your media list is handled, the statement is drafted, and the team is watching coverage. But there's a channel most crisis plans still skip: people are asking AI about it.\n\nJournalists background-check with ChatGPT before they call you. Customers ask Perplexity whether the story is true. Investors ask Gemini what it means. All of the major assistants, ChatGPT, Gemini, Perplexity, Claude, and Google's AI Overviews, handle current-events questions the same way: they run live web searches, pick a handful of top sources, and summarize them into an answer with citations. If the only sources are the negative story, then the negative story is the answer.\n\nThat's uncomfortable, but it's also workable. The mechanism is retrieval-augmented generation, and unlike the model's training data, it updates as fast as the web does. You can't edit the answer, but you can find out what it says, trace which sources feed it, and change that mix. This guide walks through the playbook step by step. It's written for comms teams generally; the callouts show how each step works if you run it in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Capture both narratives | Defining what to measure | Claims and counter-messages written down |\n| 2. List the questions | Building the monitoring set | Questions cover story, record, and buying intent |\n| 3. Daily monitoring | Getting a daily read | Data flowing from day one |\n| 4. Log the timeline | Making movement explainable | Every statement and story dated |\n| 5. Watch the decay | Judging the trend | Negative surfacing falls day over day |\n| 6. Trace the sources | Finding the leverage | Ranked list of sources to fix |\n| 7. Track displacement | Measuring the response | AI starts citing your side |\n| 8. Stand down | Closing the loop | Surfacing back at baseline, retrospective done |\n\n## Capture both narratives in writing\n\nBefore you measure anything, write down what you're measuring. Two lists:\n\n1. **The crisis claims.** Each harmful statement, phrased the way it actually spreads. \"The recall was hidden from regulators,\" not \"negative recall coverage.\"\n2. **The counter-narrative.** The specific messages you need to land. \"The company self-reported within 24 hours,\" and so on.\n\nKeep each one short and concrete. You're going to check AI answers against these lists daily, and vague entries produce vague answers. This also forces a useful internal conversation early: agreeing on exactly which claims you're fighting is harder, and more clarifying, than most teams expect.\n\n\u003cWorkflowCallout\n  title=\"Key messages do the pattern matching for you\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"3 negative claims captured\", done: true },\n      { label: \"2 counter-messages captured\", done: true },\n    ],\n  }}\n\u003e\n  The crisis claims go in as negative key messages and your response as positive ones. Matching is semantic, so a paraphrased version of the claim still counts as a hit. Every dashboard can then split the crisis view from business as usual.\n\u003c/WorkflowCallout\u003e\n\n## List the questions people will ask AI\n\nNobody types your press release headline into ChatGPT. They ask questions. Draft the set a concerned person would actually ask:\n\n- **About the story:** \"What happened with [brand] and the recall?\" \"Is the [brand] story true?\"\n- **About the record:** \"Has [brand] had safety problems before?\" \"Is [brand] trustworthy?\"\n- **About the decision:** \"Should I still buy from [brand]?\" \"Is it safe to use [brand]?\"\n\nThat last group matters most and gets forgotten first. Story questions spike and fade with the news cycle. Decision questions are where the crisis quietly costs you revenue for months, because they're asked by people at the moment of purchase.\n\nAim for eight to twelve questions across all three groups. Fewer and you'll miss angles; many more and you'll drown in noise.\n\n\u003cWorkflowCallout\n  title=\"Prompts, tagged so the crisis has its own view\"\n  page=\"Prompts\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"count\",\n    label: \"Prompts tagged crisis\",\n    value: 9,\n    caption: \"across story, record, and decision questions\",\n  }}\n\u003e\n  Each question becomes a tracked prompt, tagged with the incident name. The tag lets every chart filter down to just the crisis set, and the same prompts keep running after stand-down as an early-warning system.\n\u003c/WorkflowCallout\u003e\n\n## Put monitoring on a daily cadence\n\nChecking AI answers once, by hand, tells you what one platform said one time. AI answers are nondeterministic; the same question can produce different answers in different sessions. What you need is a daily, repeatable read across platforms, starting the day the story breaks.\n\nDay one matters because it's your baseline. If you don't know how often the claim surfaced on Tuesday, you can't say whether Friday's statement helped. Run every question, on every platform you care about, every day, and record whether each answer repeats a crisis claim, carries your counter-message, and which sources it cites.\n\nDo the math on the manual version: ten questions across four platforms is 40 answers to collect and classify every day, 280 a week, before anyone analyzes anything. Automate it or assign it, but don't sample it.\n\n\u003cWorkflowCallout\n  title=\"A project puts the crisis prompts on a nightly run\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Project active\", done: true },\n      { label: \"9 prompts running nightly\", done: true },\n      { label: \"Margin of error: Directional (8-15%)\", done: true },\n    ],\n  }}\n\u003e\n  A General project runs the crisis-tagged prompts nightly across platforms from day one. The Data Accuracy card keeps the margin of error visible, so you know 
2whether a movement is signal or noise before you report it upstairs.\n\u003c/WorkflowCallout\u003e\n\n## Log every statement and story as it happens\n\nCrisis timelines get reconstructed badly after the fact. Keep the record as you go: the initial story, your first statement, the CEO interview, each major follow-up, every correction you win. Date and one line each.\n\nThis isn't housekeeping. It's what turns your monitoring data into an argument. \"Negative surfacing dropped nine points\" is a chart. \"Negative surfacing dropped nine points starting the day after the CEO statement\" is proof your response worked, and it's the sentence that goes in front of the board.\n\n\u003cWorkflowCallout\n  title=\"Annotations pin events to every trend line\"\n  page=\"Annotations\"\n  href=\"/docs/dashboards/annotations\"\n  signal={{\n    kind: \"count\",\n    label: \"Events annotated\",\n    value: 4,\n    caption: \"latest: CEO statement, Jul 16\",\n  }}\n\u003e\n  Each logged event becomes a marker on every chart. When the narrative moves, you can point at what moved it, and the markers survive into the exported retrospective.\n\u003c/WorkflowCallout\u003e\n\n## Watch the narrative decay, not the daily noise\n\nHere's the shape of a normal crisis in AI answers: a spike in the first few days as coverage lands and gets indexed, then a decay as the news cycle moves on and other sources re-enter the mix. Your job isn't to prevent the spike. By the time you're reading this, it happened. Your job is to steepen the decay.\n\nSo judge two trend lines, not any single day's answers:\n\n1. **Negative surfacing:** what share of answers repeat at least one crisis claim. Expect it high early. Watch the slope.\n2. **Counter-message pull-through:** what share carry your side. This should climb as statements and corrections get picked up.\n\nA bad day inside a good week doesn't need a war-room meeting. A flat week does, because a narrative that isn't decaying has sources actively sustaining it. In the example below, negative surfacing peaks at 37% of tracked answers on day 5 and falls to 16% by day 14; that slope, not any single day, is the number to report. If it flattens for a week, that's your cue for the next step.\n\n\u003cWorkflowCallout\n  title=\"One chart, filtered to the crisis tag\"\n  page=\"Visibility\"\n  href=\"/docs/dashboards/discovery-queries#custom-tags\"\n  signal={{\n    kind: \"trend\",\n    label: \"Negative narrative surfacing, 14 days\",\n    series: [9, 17, 26, 34, 37, 35, 33, 30, 28, 25, 22, 20, 17, 16],\n    change: -9.4,\n    suffix: \" pts\",\n    lowerIsBetter: true,\n  }}\n\u003e\n  The visibility drill-down filtered to the crisis tag shows negative surfacing and message pull-through side by side, with your annotations on the timeline. The spike-and-decay curve is the whole story at a glance.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story-quote.webp\"\n  quote=\"You can't stop AI from answering questions about a crisis. You can control whether your side of the story is in the sources it reads.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-run-crisis-communications-when-ai-is-repeating-the-story\"\n/\u003e\n\n## Trace the sources feeding AI's answers\n\nAI answers cite their sources, and that's your leverage. Collect the citations behind every answer that repeats a crisis claim. You'll usually find a short list, five to ten sources, doing most of the damage: the original story, a few syndications, sometimes an old forum thread or a stale wiki page that predates the crisis entirely.\n\nThen rank them, because they are not equal. A correction at a source AI leans on changes answers. A correction at an outlet AI can't even crawl changes nothing, no matter how prestigious the masthead. Many major publications [block AI crawlers entirely](/blog/is-ai-blocking-your-best-media-placements), which cuts both ways in a crisis: their negative story may not reach AI answers at all, and neither will their correction.\n\n| Source situation | Priority | The move |\n| :--- | :--- | :--- |\n| High AI influence, factual error | Highest | Request correction today, with documentation |\n| High AI influence, accurate but one-sided | High | Pitch the follow-up; offer the spokesperson |\n| Stale page (old wiki, forum thread) | Medium | Update or respond where possible; publish the authoritative page it should cite instead |\n| Low AI influence or blocked to AI crawlers | Low | Handle for traditional reasons; it won't move AI answers |\n\n\u003cWorkflowCallout\n  title=\"Citation Intelligence names the sources; Publisher Lookup ranks them\"\n  page=\"Citation Intelligence\"\n  href=\"/docs/dashboards/citation-intelligence\"\n  signal={{\n    kind: \"count\",\n    label: \"Sources carrying the narrative\",\n    value: 6,\n    caption: \"2 rated Premium in Publisher Lookup\",\n  }}\n\u003e\n  Citation Intelligence lists every source behind the crisis answers with answer-level context. Each one carries an AI Placement Value Score, so correction outreach is ordered by how much the source actually influences AI, not by masthead prestige.\n\u003c/WorkflowCallout\u003e\n\n## Track whether your response is displacing the story\n\nYour response generates its own artifacts: statements, an FAQ page, corrective stories, follow-up coverage with your framing. Treat them as a portfolio and track them the way you tracked the negative sources. Are they getting indexed? Are they being cited? Are they showing up in answers where the original story used to be alone?\n\nThis is the metric that closes the loop. Negative surfacing falling is good; your sources being cited in its place is better, because displacement is durable. The next time the topic comes up, the retrieval mix includes your side by default. It also tells you what to write more of; if the [press release built for citation](/blog/how-to-write-a-press-release-chatgpt-will-cite) is getting picked up and the FAQ page isn't, that's next week's content plan.\n\n\u003cWorkflowCallout\n  title=\"Coverage groups measure the displacement\"\n  page=\"Coverage Groups\"\n  href=\"/docs/dashboards/coverage-groups\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"12 URLs in the group\", done: true },\n      { label: \"Placements scored\", done: true },\n      { label: \"4 cited by AI so far\", done: false },\n    ],\n  }}\n\u003e\n  Import the corrective coverage and your own statements as a coverage group. Its AI Citations funnel shows which pieces AI can see, which it cites, and in which answers, so you can watch your side displace the original sources.\n\u003c/WorkflowCallout\u003e\n\n## Stand down and write the retrospective\n\nWhen negative surfacing is back near baseline and your counter-message holds 
2steady, stand down. Two things before the team moves on:\n\n1. **Keep a tripwire.** Leave a small set of the decision-stage questions running on a schedule. Crisis narratives resurface; anniversaries, lawsuits, and copycat stories all re-trigger the same claims. You want to know in a day, not a quarter.\n2. **Write the retrospective while the data is fresh.** How far did the narrative spread, per platform? Which statement moved the trend? Which outlets mattered, and which prestige placements turned out to be invisible to AI? That last finding usually changes the media strategy going forward, well beyond the crisis.\n\n\u003cWorkflowCallout\n  title=\"Completing the project freezes the record\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Surfacing back near baseline\", done: true },\n      { label: \"Retrospective exported\", done: false },\n    ],\n  }}\n\u003e\n  Marking the project complete freezes the dataset, and the white-labeled PDF export is the retrospective: the trend lines, the annotations, and the source analysis in one client-ready document.\n\u003c/WorkflowCallout\u003e\n\n## The channel is new; the discipline isn't\n\nComms teams already know how to run this playbook against traditional media: define the message, monitor coverage, work the sources, measure the shift. AI answers are the same discipline pointed at a new channel, with one advantage the old channel never offered: the answers cite their sources. You can see exactly which pages are feeding the narrative, and that turns crisis response from spray-and-pray into a ranked worklist.\n\nIf you want the monitoring side handled, a [free AI Visibility Report](/ai-visibility-report) shows how AI describes your brand today, before you need the answer under pressure.\n\n**Part of the Spyglasses workflow series.** This guide is one of twelve workflows for PR and communications teams. The rest are collected in the [AI visibility guides for PR and communications teams](/guides/ai-visibility-for-pr-teams)."])</script>
2<script>self.__next_f.push([1,"98:T4eee,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var a=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var s in e)a(n,s,{get:e[s],enumerable:!0})},o=(n,e,s,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of p(e))!f.call(n,r)\u0026\u0026r!==s\u0026\u0026a(n,r,{get:()=\u003ee[r],enumerable:!(i=y(e,r))||i.enumerable});return n};var v=(n,e,s)=\u003e(s=n!=null?g(m(n)):{},o(e||!n||!n.__esModule?a(s,\"default\",{value:n,enumerable:!0}):s,n)),A=n=\u003eo(a({},\"__esModule\",{value:!0}),n);var h=w((I,l)=\u003e{l.exports=_jsx_runtime});var k={};b(k,{default:()=\u003eu});var t=v(h());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components},{PullQuote:s,WorkflowCallout:i}=e;return s||c(\"PullQuote\",!0),i||c(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"A negative story is breaking. Your media list is handled, the statement is drafted, and the team is watching coverage. But there's a channel most crisis plans still skip: people are asking AI about it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Journalists background-check with ChatGPT before they call you. Customers ask Perplexity whether the story is true. Investors ask Gemini what it means. All of the major assistants, ChatGPT, Gemini, Perplexity, Claude, and Google's AI Overviews, handle current-events questions the same way: they run live web searches, pick a handful of top sources, and summarize them into an answer with citations. If the only sources are the negative story, then the negative story is the answer.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"That's uncomfortable, but it's also workable. The mechanism is retrieval-augmented generation, and unlike the model's training data, it updates as fast as the web does. You can't edit the answer, but you can find out what it says, trace which sources feed it, and change that mix. This guide walks through the playbook step by step. It's written for comms teams generally; the callouts show how each step works if you run it in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Capture both narratives\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Defining what to measure\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Claims and counter-messages written down\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. List the questions\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Building the monitoring set\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Questions cover story, record, and buying intent\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Daily monitoring\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Getting a daily read\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Data flowing from day one\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Log the timeline\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Making movement explainable\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Every statement and story dated\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"5. Watch the decay\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Judging the trend\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Negative surfacing falls day over day\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Trace the sources\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Finding the leverage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Ranked list of sources to fix\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"7. Track displacement\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Measuring the response\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"AI starts citing your side\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"8. Stand down\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Closing the loop\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Surfacing back at baseline, retrospective done\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Capture both narratives in writing\"}),`\n`,(0,t.jsx)(e.p,{children:\"Before you measure anything, write down what you're measuring. Two lists:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The crisis claims.\"}),' Each harmful statement, phrased the way it actually spreads. \"The recall was hidden from regulators,\" not \"negative recall coverage.\"']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The counter-narrative.\"}),' The specific messages you need to land. \"The company self-reported within 24 hours,\" and so on.']}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Keep each one short and concrete. You're going to check AI answers against these lists daily, and vague entr
2ies produce vague answers. This also forces a useful internal conversation early: agreeing on exactly which claims you're fighting is harder, and more clarifying, than most teams expect.\"}),`\n`,(0,t.jsx)(i,{title:\"Key messages do the pattern matching for you\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"checklist\",items:[{label:\"3 negative claims captured\",done:!0},{label:\"2 counter-messages captured\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"The crisis claims go in as negative key messages and your response as positive ones. Matching is semantic, so a paraphrased version of the claim still counts as a hit. Every dashboard can then split the crisis view from business as usual.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"List the questions people will ask AI\"}),`\n`,(0,t.jsx)(e.p,{children:\"Nobody types your press release headline into ChatGPT. They ask questions. Draft the set a concerned person would actually ask:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"About the story:\"}),' \"What happened with [brand] and the recall?\" \"Is the [brand] story true?\"']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"About the record:\"}),' \"Has [brand] had safety problems before?\" \"Is [brand] trustworthy?\"']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"About the decision:\"}),' \"Should I still buy from [brand]?\" \"Is it safe to use [brand]?\"']}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"That last group matters most and gets forgotten first. Story questions spike and fade with the news cycle. Decision questions are where the crisis quietly costs you revenue for months, because they're asked by people at the moment of purchase.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Aim for eight to twelve questions across all three groups. Fewer and you'll miss angles; many more and you'll drown in noise.\"}),`\n`,(0,t.jsx)(i,{title:\"Prompts, tagged so the crisis has its own view\",page:\"Prompts\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"count\",label:\"Prompts tagged crisis\",value:9,caption:\"across story, record, and decision questions\"},children:(0,t.jsx)(e.p,{children:\"Each question becomes a tracked prompt, tagged with the incident name. The tag lets every chart filter down to just the crisis set, and the same prompts keep running after stand-down as an early-warning system.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Put monitoring on a daily cadence\"}),`\n`,(0,t.jsx)(e.p,{children:\"Checking AI answers once, by hand, tells you what one platform said one time. AI answers are nondeterministic; the same question can produce different answers in different sessions. What you need is a daily, repeatable read across platforms, starting the day the story breaks.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Day one matters because it's your baseline. If you don't know how often the claim surfaced on Tuesday, you can't say whether Friday's statement helped. Run every question, on every platform you care about, every day, and record whether each answer repeats a crisis claim, carries your counter-message, and which sources it cites.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Do the math on the manual version: ten questions across four platforms is 40 answers to collect and classify every day, 280 a week, before anyone analyzes anything. Automate it or assign it, but don't sample it.\"}),`\n`,(0,t.jsx)(i,{title:\"A project puts the crisis prompts on a nightly run\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Project active\",done:!0},{label:\"9 prompts running nightly\",done:!0},{label:\"Margin of error: Directional (8-15%)\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"A General project runs the crisis-tagged prompts nightly across platforms from day one. The Data Accuracy card keeps the margin of error visible, so you know whether a movement is signal or noise before you report it upstairs.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Log every statement and story as it happens\"}),`\n`,(0,t.jsx)(e.p,{children:\"Crisis timelines get reconstructed badly after the fact. Keep the record as you go: the initial story, your first statement, the CEO interview, each major follow-up, every correction you win. Date and one line each.\"}),`\n`,(0,t.jsx)(e.p,{children:`This isn't housekeeping. It's what turns your monitoring data into an argument. \"Negative surfacing dropped nine points\" is a chart. \"Negative surfacing dropped nine points starting the day after the CEO statement\" is proof your response worked, and it's the sentence that goes in front of the board.`}),`\n`,(0,t.jsx)(i,{title:\"Annotations pin events to every trend line\",page:\"Annotations\",href:\"/docs/dashboards/annotations\",signal:{kind:\"count\",label:\"Events annotated\",value:4,caption:\"latest: CEO statement, Jul 16\"},children:(0,t.jsx)(e.p,{children:\"Each logged event becomes a marker on every chart. When the narrative moves, you can point at what moved it, and the markers survive into the exported retrospective.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch the narrative decay, not the daily noise\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the shape of a normal crisis in AI answers: a spike in the first few days as coverage lands and gets indexed, then a decay as the news cycle moves on and other sources re-enter the mix. Your job isn't to prevent the spike. By the time you're reading this, it happened. Your job is to steepen the decay.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So judge two trend lines, not any single day's answers:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Negative surfacing:\"}),\" what share of answers repeat at least one crisis claim. Expect it high early. Watch the slope.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Counter-message pull-through:\"}
2),\" what share carry your side. This should climb as statements and corrections get picked up.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"A bad day inside a good week doesn't need a war-room meeting. A flat week does, because a narrative that isn't decaying has sources actively sustaining it. In the example below, negative surfacing peaks at 37% of tracked answers on day 5 and falls to 16% by day 14; that slope, not any single day, is the number to report. If it flattens for a week, that's your cue for the next step.\"}),`\n`,(0,t.jsx)(i,{title:\"One chart, filtered to the crisis tag\",page:\"Visibility\",href:\"/docs/dashboards/discovery-queries#custom-tags\",signal:{kind:\"trend\",label:\"Negative narrative surfacing, 14 days\",series:[9,17,26,34,37,35,33,30,28,25,22,20,17,16],change:-9.4,suffix:\" pts\",lowerIsBetter:!0},children:(0,t.jsx)(e.p,{children:\"The visibility drill-down filtered to the crisis tag shows negative surfacing and message pull-through side by side, with your annotations on the timeline. The spike-and-decay curve is the whole story at a glance.\"})}),`\n`,(0,t.jsx)(s,{image:\"/images/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story-quote.webp\",quote:\"You can't stop AI from answering questions about a crisis. You can control whether your side of the story is in the sources it reads.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-run-crisis-communications-when-ai-is-repeating-the-story\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Trace the sources feeding AI's answers\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI answers cite their sources, and that's your leverage. Collect the citations behind every answer that repeats a crisis claim. You'll usually find a short list, five to ten sources, doing most of the damage: the original story, a few syndications, sometimes an old forum thread or a stale wiki page that predates the crisis entirely.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Then rank them, because they are not equal. A correction at a source AI leans on changes answers. A correction at an outlet AI can't even crawl changes nothing, no matter how prestigious the masthead. Many major publications \",(0,t.jsx)(e.a,{href:\"/blog/is-ai-blocking-your-best-media-placements\",children:\"block AI crawlers entirely\"}),\", which cuts both ways in a crisis: their negative story may not reach AI answers at all, and neither will their correction.\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Source situation\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Priority\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"The move\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High AI influence, factual error\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Highest\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Request correction today, with documentation\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High AI influence, accurate but one-sided\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"High\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Pitch the follow-up; offer the spokesperson\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Stale page (old wiki, forum thread)\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Medium\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Update or respond where possible; publish the authoritative page it should cite instead\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Low AI influence or blocked to AI crawlers\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Low\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Handle for traditional reasons; it won't move AI answers\"})]})]})]}),`\n`,(0,t.jsx)(i,{title:\"Citation Intelligence names the sources; Publisher Lookup ranks them\",page:\"Citation Intelligence\",href:\"/docs/dashboards/citation-intelligence\",signal:{kind:\"count\",label:\"Sources carrying the narrative\",value:6,caption:\"2 rated Premium in Publisher Lookup\"},children:(0,t.jsx)(e.p,{children:\"Citation Intelligence lists every source behind the crisis answers with answer-level context. Each one carries an AI Placement Value Score, so correction outreach is ordered by how much the source actually influences AI, not by masthead prestige.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Track whether your response is displacing the story\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your response generates its own artifacts: statements, an FAQ page, corrective stories, follow-up coverage with your framing. Treat them as a portfolio and track them the way you tracked the negative sources. Are they getting indexed? Are they being cited? Are they showing up in answers where the original story used to be alone?\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"This is the metric that closes the loop. Negative surfacing falling is good; your sources being cited in its place is better, because displacement is durable. The next time the topic comes up, the retrieval mix includes your side by default. It also tells you what to write more of; if the \",(0,t.jsx)(e.a,{href:\"/blog/how-to-write-a-press-release-chatgpt-will-cite\",children:\"press release built for citation\"}),\" is getting picked up and the FAQ page isn't, that's next week's content plan.\"]}),`\n`,(0,t.jsx)(i,{title:\"Coverage groups measure the displacement\",page:\"Coverage Groups\",href:\"/docs/dashboards/coverage-groups\",signal:{kind:\"checklist\",items:[{label:\"12 URLs in the group\",done:!0},{label:\"Placements scored\",done:!0},{label:\"4 cited by AI so far\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Import the corrective coverage and your own statements as a coverage group. Its AI Citations funnel shows which pieces AI can see, which it cites, and in which answers, so you can watch your side displace the original sources.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Stand down and write the retrospective\"}),`\n`,(0,t.jsx)(e.p,{children:\"When negative surfacing is back near baseline and your counter-message holds 
2steady, stand down. Two things before the team moves on:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Keep a tripwire.\"}),\" Leave a small set of the decision-stage questions running on a schedule. Crisis narratives resurface; anniversaries, lawsuits, and copycat stories all re-trigger the same claims. You want to know in a day, not a quarter.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Write the retrospective while the data is fresh.\"}),\" How far did the narrative spread, per platform? Which statement moved the trend? Which outlets mattered, and which prestige placements turned out to be invisible to AI? That last finding usually changes the media strategy going forward, well beyond the crisis.\"]}),`\n`]}),`\n`,(0,t.jsx)(i,{title:\"Completing the project freezes the record\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Surfacing back near baseline\",done:!0},{label:\"Retrospective exported\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Marking the project complete freezes the dataset, and the white-labeled PDF export is the retrospective: the trend lines, the annotations, and the source analysis in one client-ready document.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The channel is new; the discipline isn't\"}),`\n`,(0,t.jsx)(e.p,{children:\"Comms teams already know how to run this playbook against traditional media: define the message, monitor coverage, work the sources, measure the shift. AI answers are the same discipline pointed at a new channel, with one advantage the old channel never offered: the answers cite their sources. You can see exactly which pages are feeding the narrative, and that turns crisis response from spray-and-pray into a ranked worklist.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you want the monitoring side handled, a \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"free AI Visibility Report\"}),\" shows how AI describes your brand today, before you need the answer under pressure.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of twelve workflows for PR and communications teams. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-pr-teams\",children:\"AI visibility guides for PR and communications teams\"}),\".\"]})]})}function u(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}function c(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return A(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"34:[\"$\",\"$L10\",\"how-to-run-crisis-communications-when-ai-is-repeating-the-story\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$97\",\"title\":\"How to Run Crisis Communications When AI Is Repeating the Story\",\"date\":\"2026-07-30\",\"image\":\"/images/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"When a negative story breaks, people don't just read the news. They ask AI about it. A step-by-step playbook for comms teams to find out what AI is saying, trace where it comes from, and measure whether the response is landing.\",\"tags\":[\"PR\",\"Crisis Communications\",\"How-to\",\"Workflows\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"Do AI assistants really repeat negative news stories?\",\"answer\":\"Yes. For current-events questions, assistants like ChatGPT, Gemini, and Perplexity search the web and summarize what they find. If the top sources for a question about your brand carry a negative story, the answer will too, usually with citations back to those sources.\"},{\"question\":\"How fast do AI answers change during a crisis?\",\"answer\":\"Faster than most teams expect, because the answers are built from live web search. When the mix of sources changes, the answers change. That's also the opportunity; corrective coverage and strong statements can shift answers within days, not months.\"},{\"question\":\"Can we get an AI assistant to remove or correct a claim?\",\"answer\":\"There's no takedown process for an AI answer built on retrieval. The claim lives in the sources, not the model. The reliable path is changing the source mix; corrections at the outlets AI actually reads, plus your own authoritative statement pages.\"},{\"question\":\"Which AI platforms should we monitor during a crisis?\",\"answer\":\"At minimum, the ones your stakeholders use to ask questions; ChatGPT, Google AI Overviews and Gemini, Perplexity, and Claude. Coverage differs by platform because each one searches and selects sources differently, so check more than one.\"}],\"howTo\":{\"name\":\"How to run crisis communications when AI is repeating the story\",\"description\":\"A step-by-step playbook for monitoring and countering a negative narrative in AI assistant answers.\",\"steps\":[{\"name\":\"Capture both narratives in writing\",\"text\":\"Write the crisis claims down as short, specific statements, and write the counter-narrative you want to land the same way. These become your measurement targets.\"},{\"name\":\"List the questions people will ask AI\",\"text\":\"Draft the questions a concerned customer, journalist, or investor would type into an AI assistant about the story, the brand's record, and whether to keep buying.\"},{\"name\":\"Put monitoring on a daily cadence\",\"text\":\"Run those questions against the major AI platforms every day, starting immediately, so you have a daily read on the narrative instead of anecdotes.\"},{\"name\":\"Log every statement and story as it happens\",\"text\":\"Keep a timeline of statements, corrections, and major coverage so every movement in the data has an explanation attached.\"},{\"name\":\"Watch the narrative decay, not the daily noise\",\"text\":\"Judge progress by the trend in how often the negative claims surface, and whether your counter-message is appearing. Expect a spike; measure the decay.\"},{\"name\":\"Trace the sources feeding AI's answers\",\"text\":\"Collect the citations behind the negative answers and rank the sources by how much they influence AI, then aim corrections at the ones that matter.\"},{\"name\":\"Track whether your response is displacing the story\",\"text\":\"Treat your statements and the corrective coverage as a portfolio, and check whether AI has started citing your side instead of the original story.\"},{\"name\":\"Stand down and write the retrospective\",\"text\":\"When surfacing returns to baseline, close out the effort and write up how far the narrative spread, what pulled it back, and which outlets mattered.\"}]},\"_meta\":{\"filePath\":\"how-to-run-crisis-communications-when-ai-is-repeating-the-story.mdx\",\"fileName\":\"how-to-run-crisis-communications-when-ai-is-repeating-the-story.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-run-crisis-communications-when-ai-is-repeating-the-story\"},\"body\":\"$98\",\"locale\":\"en\",\"path\":\"how-to-run-crisis-communications-when-ai-is-repeating-the-story\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"99:T2f4a,"])</script>
2<script>self.__next_f.push([1,"A new client signs, you run the baseline report, and the deck looks great. Then three weeks pass and someone asks: \"is it working?\" A single report can't answer that question. It's a snapshot, not a trend line, and a trend line is the only thing that proves visibility moved because of the work and not because AI gave a different answer on a different day.\n\nThat's the gap between a report and tracking. A report tells you where a brand stands right now. Tracking tells you whether it's getting better, and whether you can point at what caused it. This guide walks through setting that up, step by step. It applies to any AI visibility platform; the callouts show how each step works if you run it in [Spyglasses](/ai-visibility-report).\n\n| Step | What you're doing | What tells you it's working |\n| :--- | :--- | :--- |\n| 1. Confirm your baseline | Fixing the starting point | One completed report, reviewed for accuracy |\n| 2. Revise competitors | Measuring against the right list | 4+ competitors the client actually names |\n| 3. Expand prompt coverage | Covering the buyer journey | Coverage score above 60 |\n| 4. Decide the messages | Defining what \"on-message\" means | Positive and negative claims captured |\n| 5. Turn it into a project | Getting a nightly cadence | Project active, margin of error reliable |\n| 6. Schedule reports | Automating the recap | Recurring schedule with recipients set |\n| 7. Watch the trend | Reading movement correctly | Slope tracked over weeks, events annotated |\n\n## Confirm your baseline is solid\n\nEverything downstream compares back to the first report, so it's worth a second look before you build on it. Skim the summary and the per-platform breakdown across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, plus the recommendations. If the report crawled and generated a brand snapshot automatically, check that the category, positioning, and competitor list actually match how the client describes themselves. A wrong category quietly skews the prompts and mention matching that come next.\n\nThis is also the moment to decide what \"improved\" will mean for this client. Is the goal more mentions, a better share of voice against a named rival, or cleaner brand consistency across platforms? Write it down. You'll want it in three weeks when someone asks whether the numbers moved.\n\n\u003cWorkflowCallout\n  title=\"The baseline report seeds everything else\"\n  page=\"AI Reports\"\n  href=\"/docs/dashboards/ai-visibility-reports\"\n  signal={{\n    kind: \"count\",\n    label: \"Completed reports\",\n    value: 1,\n    target: 1,\n    caption: \"baseline captured Jul 21\",\n  }}\n\u003e\n  Running the report builds the Brand Snapshot, seeds a starter competitor list, and generates a handful of prompts automatically. Review and correct the snapshot before moving on; prompt generation and mention matching both read from it.\n\u003c/WorkflowCallout\u003e\n\n## Revise your competitor set\n\nAuto-seeded competitor lists come from whoever gets co-mentioned in the first batch of answers. That catches some real rivals and some noise; a review site that happened to come up once, a brand from an adjacent category, a company the client hasn't thought about in years. None of that is who you're actually measuring against.\n\nGo through the list with the client's own reporting in hand. Prune what doesn't matter, add the names they use in their board deck, and set aliases for companies that go by more than one name or domain. Share of voice is only useful if it's measured against the competitors the client cares about.\n\n\u003cWorkflowCallout\n  title=\"Competitors are a list you edit, not one you inherit\"\n  page=\"Competitors\"\n  href=\"/docs/dashboards/competitors\"\n  signal={{\n    kind: \"count\",\n    label: \"Competitors tracked\",\n    value: 5,\n    target: 4,\n    caption: \"2 auto-seeded, 3 added by you\",\n  }}\n\u003e\n  Prune, add, and set aliases here. Aliases merge alternate names and domains into one entity, so \"Acme\" and \"Acme Outdoor Co.\" don't split a competitor's mentions into two rows.\n\u003c/WorkflowCallout\u003e\n\n## Expand your prompt coverage\n\nFive or six starter prompts are enough to prove a first report works. They're not enough to track anything. Real coverage spans the questions a buyer actually asks across a full journey: brand-identity questions (\"who is Acme Outdoor\"), c
2omparison questions (\"Acme vs. SummitGear\"), category questions (\"best tents for alpine conditions\"), and decision-stage questions (\"should I buy from Acme\").\n\nBuild the set with a mix of methods. Generate prompts from a framework built for this (category entry points, jobs-to-be-done, buyer's-journey stages), import any prompt list the client already tracks elsewhere, and fill obvious gaps by hand. Aim for coverage across all four question types, not just volume in one.\n\n\u003cWorkflowCallout\n  title=\"Coverage score turns 'more prompts' into 'the right prompts'\"\n  page=\"Prompts\"\n  href=\"/docs/dashboards/discovery-queries\"\n  signal={{\n    kind: \"score\",\n    label: \"Coverage score\",\n    value: 68,\n    target: 60,\n  }}\n\u003e\n  The Coverage Matrix flags gaps by prompt type so you're not guessing whether the set actually spans a buyer's journey. Generation frameworks and bulk import both feed the same matrix, and tags let every downstream chart filter to just the prompts that matter for a given report.\n\u003c/WorkflowCallout\u003e\n\n## Decide what messages you want to see win\n\nShare of voice tells you how often a brand gets mentioned. It doesn't tell you whether AI is saying the right things about it. That's a separate question, and it needs its own input: the specific claims the client wants to see repeated, written down as short, concrete statements instead of a general sense of \"good coverage.\"\n\nPositive key messages might be a differentiator, a guarantee, or a category claim the client wants to own. Negative ones are anything the client wants to catch early, an outdated claim, a discontinued product, an old executive's name. Once these are captured, matching is semantic; a paraphrased version of the message still counts as a hit, so you don't need to predict the exact wording AI will use.\n\n\u003cWorkflowCallout\n  title=\"Key messages light up Share of Influence\"\n  page=\"Key Messages\"\n  href=\"/docs/dashboards/key-messages\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"3 positive key messages added\", done: true },\n      { label: \"Share of Influence tracking live\", done: false },\n    ],\n  }}\n\u003e\n  Positive messages measure Share of Influence, whether your framing shows up before a brand is even named. It's a different metric than mention-stage share of voice, and it's the earliest signal that content and PR work are landing.\n\u003c/WorkflowCallout\u003e\n\n## Turn tracking into a running project\n\nNone of the above runs on its own. Prompts only get tested on a schedule inside a project, so this is the step that actually turns a static list into tracking. Pick a project type that matches the goal: an SEO project if you're measuring the effect of new content or site changes, a PR project if you're measuring earned media, or a general project if you just want the trend line.\n\nAuto-select prompts from the set you built, then check the margin of error before you move on. A project running 12 prompts nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews produces a much tighter confidence band, often under 8%, than five prompts run once, which can sit closer to 15%. That gap is what separates a real change from noise in next month's report.\n\n\u003cWorkflowCallout\n  title=\"A project is what puts prompts on a nightly cadence\"\n  page=\"Projects\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Project type chosen\", done: true },\n      { label: \"12 prompts assigned\", done: true },\n      { label: \"Margin of error: Reliable (\u003c8%)\", done: true },\n    ],\n  }}\n\u003e\n  The Data Accuracy card shows the margin of error live as you assign prompts, so you know before you launch whether the set is tight enough to report movement with confidence.\n\u003c/WorkflowCallout\u003e\n\n\u003cPullQuote\n  image=\"/images/blog/how-to-track-ai-visibility-over-time-quote.webp\"\n  quote=\"A report tells a client where they stand today. A project run nightly is what tells them whether the work is moving the number.\"\n  attribution=\"Spyglasses\"\n  utmCampaign=\"how-to-track-ai-visibility-over-time\"\n/\u003e\n\n## Put reports on a 
2schedule\n\nTracking that only you can see doesn't help a client relationship. Automate the recap so it lands in an inbox on its own, weekly, monthly, or quarterly depending on how the engagement is structured. Add the client's actual stakeholders as recipients, not just the day-to-day contact; visibility data has a way of becoming a board-level topic once it's been running a few months.\n\nThis also protects the relationship from the \"what have you been doing\" conversation. A recurring report in someone's inbox is proof of ongoing work even in a month where nothing dramatic happened.\n\n\u003cWorkflowCallout\n  title=\"Recurring reports land in the inbox without anyone remembering\"\n  page=\"Settings\"\n  href=\"/docs/dashboards/settings\"\n  signal={{\n    kind: \"checklist\",\n    items: [\n      { label: \"Monthly schedule set\", done: true },\n      { label: \"2 recipients added\", done: true },\n    ],\n  }}\n\u003e\n  Set the cadence once on the Reports tab and add recipients outside the workspace. The export renders the same trend lines and annotations you're tracking day to day, so nothing needs to be rebuilt by hand each month.\n\u003c/WorkflowCallout\u003e\n\n## Watch the trend, not the daily noise\n\nOnce nightly data starts flowing, resist the urge to react to any single day. AI answers are nondeterministic;
2 the same prompt can come back with a different answer on the same platform two nights in a row. One good or bad night is not a signal. A slope held over two or three weeks is.\n\nTwo habits make the trend readable. First, annotate anything that might move the numbers: a new page published, a press hit, a competitor's rebrand. Second, check the trend against the margin of error before calling a change real. A three-point jump in share of voice matters a lot if your confidence band is one point wide, and means very little if it's six. In the chart below, share of voice on ChatGPT and Gemini climbs from 17.2% to 23.1% over 14 days, a 5.9-point move well outside an 8% margin of error on a 12-prompt project, so it reads as a real trend, not noise. If you want to see this discipline applied under real pressure, [the crisis communications playbook](/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story) covers the same monitoring loop on a compressed timeline.\n\n\u003cWorkflowCallout\n  title=\"Daily runs become a trend line\"\n  page=\"Visibility\"\n  href=\"/docs/dashboards/projects\"\n  signal={{\n    kind: \"trend\",\n    label: \"Share of voice, 14 days\",\n    series: [17.2, 17.8, 18.5, 19.1, 19.6, 19.9, 20.4, 20.8, 21.1, 21.6, 21.9, 22.3, 22.6, 23.1],\n    change: 2.1,\n    suffix: \" pts\",\n  }}\n\u003e\n  The chart plots share of voice, consistency, and citations against your annotation timeline, so a jump or a dip has a reason attached before it ever reaches the client.\n\u003c/WorkflowCallout\u003e\n\n## From snapshot to system\
2n\nA baseline report is a fine pitch and a bad way to run an engagement. The value in AI visibility work shows up over weeks, in a trend line that separates real movement from the noise built into how AI generates answers. Get the competitor list right, get prompt coverage right, and put it all on a nightly cadence with someone checking the trend, and the report writes itself every month instead of becoming a scramble the day before a client call.\n\nOnce the tracking system is running, the next question is usually whether visibility is actually sending traffic. [AI Traffic Analytics](/ai-traffic-analytics) picks up there, measuring real AI-driven visits instead of estimating them from the outside.\n\n**Part of the Spyglasses workflow series.** This guide is one of eight workflows for marketing agencies. The rest are collected in the [AI visibility guides for marketing agencies](/guides/ai-visibility-for-marketing-agencies)."])</script>
2<script>self.__next_f.push([1,"9a:T3d2c,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var b=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var i in e)a(n,i,{get:e[i],enumerable:!0})},s=(n,e,i,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of u(e))!f.call(n,r)\u0026\u0026r!==i\u0026\u0026a(n,r,{get:()=\u003ee[r],enumerable:!(o=m(e,r))||o.enumerable});return n};var v=(n,e,i)=\u003e(i=n!=null?g(y(n)):{},s(e||!n||!n.__esModule?a(i,\"default\",{value:n,enumerable:!0}):i,n)),k=n=\u003es(a({},\"__esModule\",{value:!0}),n);var h=b((j,l)=\u003e{l.exports=_jsx_runtime});var A={};w(A,{default:()=\u003ep});var t=v(h());function c(n){let e={a:\"a\",h2:\"h2\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",...n.components},{PullQuote:i,WorkflowCallout:o}=e;return i||d(\"PullQuote\",!0),o||d(\"WorkflowCallout\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:`A new client signs, you run the baseline report, and the deck looks great. Then three weeks pass and someone asks: \"is it working?\" A single report can't answer that question. It's a snapshot, not a trend line, and a trend line is the only thing that proves visibility moved because of the work and not because AI gave a different answer on a different day.`}),`\n`,(0,t.jsxs)(e.p,{children:[\"That's the gap between a report and tracking. A report tells you where a brand stands right now. Tracking tells you whether it's getting better, and whether you can point at what caused it. This guide walks through setting that up, step by step. It applies to any AI visibility platform; the callouts show how each step works if you run it in \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses\"}),\".\"]}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Step\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What you're doing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"What tells you it's working\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"1. Confirm your baseline\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Fixing the starting point\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"One completed report, reviewed for accuracy\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"2. Revise competitors\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Measuring against the right list\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4+ competitors the client actually names\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"3. Expand prompt coverage\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Covering the buyer journey\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Coverage score above 60\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"4. Decide the messages\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:'Defining what \"on-message\" means'}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Positive and negative claims captured\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"}
2,children:\"5. Turn it into a project\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Getting a nightly cadence\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Project active, margin of error reliable\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"6. Schedule reports\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Automating the recap\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Recurring schedule with recipients set\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"7. Watch the trend\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Reading movement correctly\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Slope tracked over weeks, events annotated\"})]})]})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Confirm your baseline is solid\"}),`\n`,(0,t.jsx)(e.p,{children:\"Everything downstream compares back to the first report, so it's worth a second look before you build on it. Skim the summary and the per-platform breakdown across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews, plus the recommendations. If the report crawled and generated a brand snapshot automatically, check that the category, positioning, and competitor list actually match how the client describes themselves. A wrong category quietly skews the prompts and mention matching that come next.\"}),`\n`,(0,t.jsx)(e.p,{children:`This is also the moment to decide what \"improved\" will mean for this client. Is the goal more mentions, a better share of voice against a named rival, or cleaner brand consistency across platforms? Write it down. You'll want it in three weeks when someone asks whether the numbers moved.`}),`\n`,(0,t.jsx)(o,{title:\"The baseline report seeds everything else\",page:\"AI Reports\",href:\"/docs/dashboards/ai-visibility-reports\",signal:{kind:\"count\",label:\"Completed reports\",value:1,target:1,caption:\"baseline captured Jul 21\"},children:(0,t.jsx)(e.p,{children:\"Running the report builds the Brand Snapshot, seeds a starter competitor list, and generates a handful of prompts automatically. Review and correct the snapshot before moving on; prompt generation and mention matching both read from it.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Revise your competitor set\"}),`\n`,(0,t.jsx)(e.p,{children:\"Auto-seeded competitor lists come from whoever gets co-mentioned in the first batch of answers. That catches some real rivals and some noise; a review site that happened to come up once, a brand from an adjacent category, a company the client hasn't thought about in years. None of that is who you're actually measuring against.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Go through the list with the client's own reporting in hand. Prune what doesn't matter, add the names they use in their board deck, and set aliases for companies that go by more than one name or domain. Share of voice is only useful if it's measured against the competitors the client cares about.\"}),`\n`,(0,t.jsx)(o,{title:\"Competitors are a list you edit, not one you inherit\",page:\"Competitors\",href:\"/docs/dashboards/competitors\",signal:{kind:\"count\",label:\"Competitors tracked\",value:5,target:4,caption:\"2 auto-seeded, 3 added by you\"},children:(0,t.jsx)(e.p,{children:`Prune, add, and set aliases here. Aliases merge alternate names and domains into one entity, so \"Acme\" and \"Acme Outdoor Co.\" don't split a competitor's mentions into two rows.`})}),`\n`,(0,t.jsx)(e.h2,{children:\"Expand your prompt coverage\"}),`\n`,(0,t.jsx)(e.p,{children:`Five or six starter prompts are enough to prove a first report works. They're not enough to track anything. Real coverage spans the questions a buyer actually asks across a full journey: brand-identity questions (\"who is Acme Outdoor\"), comparison questions (\"Acme vs. SummitGear\"), category questions (\"best tents for alpine conditions\"), and decision-stage questions (\"should I buy from Acme\").`}),`\n`,(0,t.jsx)(e.p,{children:\"Build the set with a mix of methods. Generate prompts from a framework built for this (category entry points, jobs-to-be-done, buyer's-journey stages), import any prompt list the client already tracks elsewhere, and fill obvious gaps by hand. Aim for coverage across all four question types, not just volume in one.\"}),`\n`,(0,t.jsx)(o,{title:\"Coverage score turns 'more prompts' into 'the right prompts'\",page:\"Prompts\",href:\"/docs/dashboards/discovery-queries\",signal:{kind:\"score\",label:\"Coverage score\",value:68,target:60},children:(0,t.jsx)(e.p,{children:\"The Coverage Matrix flags gaps by prompt type so you're not guessing whether the set actually spans a buyer's journey. Generation frameworks and bulk import both feed the same matrix, and tags let every downstream chart filter to just the prompts that matter for a given report.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Decide what messages you want to see win\"}),`\n`,(0,t.jsx)(e.p,{children:`Share of voice tells you how often a brand gets mentioned. It doesn't tell you whether AI is saying the right things about it. That's a separate question, and it needs its own input: the specific claims the client wants to see repeated, written down as short, concrete statements instead of a general sense of \"good coverage.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"Positive key messages might be a differentiator, a guarantee, or a category claim the client wants to own. Negative ones are anything the client wants to catch early, an outdated claim, a discontinued product, an old executive's name. Once these are captured, matching is semantic; a paraphrased version of the message still counts as a hit, so you don't need to predict the exact wording AI will use.\"}),`\n`,(0,t.jsx)(o,{title:\"Key messages light up Share of Influence\",page:\"Key Messages\",href:\"/docs/dashboards/key-messages\",signal:{kind:\"checklist\",items:[{label:\"3 positive key messages added\",done:!0},{label:\"Share of Influence tracking live\",done:!1}]},children:(0,t.jsx)(e.p,{children:\"Positive messages measure Share of Influence, whether your framing shows up before a brand is even named. It's a different metric than mention-stage share of voice, and it's the earliest signal that c
2ontent and PR work are landing.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Turn tracking into a running project\"}),`\n`,(0,t.jsx)(e.p,{children:\"None of the above runs on its own. Prompts only get tested on a schedule inside a project, so this is the step that actually turns a static list into tracking. Pick a project type that matches the goal: an SEO project if you're measuring the effect of new content or site changes, a PR project if you're measuring earned media, or a general project if you just want the trend line.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Auto-select prompts from the set you built, then check the margin of error before you move on. A project running 12 prompts nightly across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews produces a much tighter confidence band, often under 8%, than five prompts run once, which can sit closer to 15%. That gap is what separates a real change from noise in next month's report.\"}),`\n`,(0,t.jsx)(o,{title:\"A project is what puts prompts on a nightly cadence\",page:\"Projects\",href:\"/docs/dashboards/projects\",signal:{kind:\"checklist\",items:[{label:\"Project type chosen\",done:!0},{label:\"12 prompts assigned\",done:!0},{label:\"Margin of error: Reliable (\u003c8%)\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"The Data Accuracy card shows the margin of error live as you assign prompts, so you know before you launch whether the set is tight enough to report movement with confidence.\"})}),`\n`,(0,t.jsx)(i,{image:\"/images/blog/how-to-track-ai-visibility-over-time-quote.webp\",quote:\"A report tells a client where they stand today. A project run nightly is what tells them whether the work is moving the number.\",attribution:\"Spyglasses\",utmCampaign:\"how-to-track-ai-visibility-over-time\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Put reports on a schedule\"}),`\n`,(0,t.jsx)(e.p,{children:\"Tracking that only you can see doesn't help a client relationship. Automate the recap so it lands in an inbox on its own, weekly, monthly, or quarterly depending on how the engagement is structured. Add the client's actual stakeholders as recipients, not just the day-to-day contact; visibility data has a way of becoming a board-level topic once it's been running a few months.\"}),`\n`,(0,t.jsx)(e.p,{children:`This also protects the relationship from the \"what have you been doing\" conversation. A recurring report in someone's inbox is proof of ongoing work even in a month where nothing dramatic happened.`}),`\n`,(0,t.jsx)(o,{title:\"Recurring reports land in the inbox without anyone remembering\",page:\"Settings\",href:\"/docs/dashboards/settings\",signal:{kind:\"checklist\",items:[{label:\"Monthly schedule set\",done:!0},{label:\"2 recipients added\",done:!0}]},children:(0,t.jsx)(e.p,{children:\"Set the cadence once on the Reports tab and add recipients outside the workspace. The export renders the same trend lines and annotations you're tracking day to day, so nothing needs to be rebuilt by hand each month.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"Watch the trend, not the daily noise\"}),`\n`,(0,t.jsx)(e.p,{children:\"Once nightly data starts flowing, resist the urge to react to any single day. AI answers are nondeterministic;
2 the same prompt can come back with a different answer on the same platform two nights in a row. One good or bad night is not a signal. A slope held over two or three weeks is.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Two habits make the trend readable. First, annotate anything that might move the numbers: a new page published, a press hit, a competitor's rebrand. Second, check the trend against the margin of error before calling a change real. A three-point jump in share of voice matters a lot if your confidence band is one point wide, and means very little if it's six. In the chart below, share of voice on ChatGPT and Gemini climbs from 17.2% to 23.1% over 14 days, a 5.9-point move well outside an 8% margin of error on a 12-prompt project, so it reads as a real trend, not noise. If you want to see this discipline applied under real pressure, \",(0,t.jsx)(e.a,{href:\"/blog/how-to-run-crisis-communications-when-ai-is-repeating-the-story\",children:\"the crisis communications playbook\"}),\" covers the same monitoring loop on a compressed timeline.\"]}),`\n`,(0,t.jsx)(o,{title:\"Daily runs become a trend line\",page:\"Visibility\",href:\"/docs/dashboards/projects\",signal:{kind:\"trend\",label:\"Share of voice, 14 days\",series:[17.2,17.8,18.5,19.1,19.6,19.9,20.4,20.8,21.1,21.6,21.9,22.3,22.6,23.1],change:2.1,suffix:\" pts\"},children:(0,t.jsx)(e.p,{children:\"The chart plots share of voice, consistency, and citations against your annotation timeline, so a jump or a dip has a reason attached before it ever reaches the client.\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"From snapshot to system\"}),`\n`,(0,t.jsx)(e.p,{children:\"A baseline report is a fine pitch and a bad way to run an engagement. The value in AI visibility work shows up over weeks, in a trend line that separates real movement from the noise built into how AI generates answers. Get the competitor list right, get prompt coverage right, and put it all on a nightly cadence with someone checking the trend, and the report writes itself every month instead of becoming a scramble the day before a client call.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Once the tracking system is running, the next question is usually whether visibility is actually sending traffic. \",(0,t.jsx)(e.a,{href:\"/ai-traffic-analytics\",children:\"AI Traffic Analytics\"}),\" picks up there, measuring real AI-driven visits instead of estimating them from the outside.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Part of the Spyglasses workflow series.\"}),\" This guide is one of eight workflows for marketing agencies. The rest are collected in the \",(0,t.jsx)(e.a,{href:\"/guides/ai-visibility-for-marketing-agencies\",children:\"AI visibility guides for marketing agencies\"}),\".\"]})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}function d(n,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"35:[\"$\",\"$L10\",\"how-to-track-ai-visibility-over-time\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$99\",\"title\":\"How to Track Your Brand's AI Visibility Over Time\",\"date\":\"2026-07-30\",\"image\":\"/images/blog/how-to-track-ai-visibility-over-time.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A one-time report tells a client where they stand today. Tracking is what proves your work moved the needle. A step-by-step playbook for turning a baseline AI visibility snapshot into a nightly system that catches real movement, not noise.\",\"tags\":[\"Agencies\",\"AI Visibility Tracking\",\"How-to\",\"Workflows\",\"AI Search Visibility\"],\"published\":true,\"faq\":[{\"question\":\"How often should we check AI visibility for a client?\",\"answer\":\"Nightly, once tracking is set up. AI answers shift as the web changes underneath them, so a weekly or monthly spot check misses most of the movement. The daily read is what lets you separate a real trend from one odd answer on one platform.\"},{\"question\":\"How many prompts do we need before the data means anything?\",\"answer\":\"There's no fixed number, but five or six prompts from a first report isn't enough. Aim for a set that spans brand, comparison, category, and decision-stage questions, then check the margin of error on your tracking project before you report a change as real.\"},{\"question\":\"What's the difference between a report and a project?\",\"answer\":\"A report is a one-time snapshot; useful for a baseline or a pitch. A project runs a defined prompt set every night and tracks change over time, which is what you need to show a client their visibility moved because of the work, not because of random variation.\"},{\"question\":\"Do we need to redo the competitor list for every client?\",\"answer\":\"Yes, at least a light pass. Auto-seeded competitor lists come from co-mentions in early answers, which catches some noise and misses brands the client actually competes with in the market. Five minutes pruning and adding names saves weeks of measuring share of voice against the wrong set.\"},{\"question\":\"What counts as a meaningful change in share of voice?\",\"answer\":\"One that's bigger than the margin of error for your prompt count. A project running 12 prompts nightly across five platforms has a much tighter confidence band than five prompts run once. Check the Data Accuracy card before calling a bump in the numbers a win.\"}],\"howTo\":{\"name\":\"How to track your brand's AI visibility over time\",\"description\":\"A step-by-step playbook for turning a one-time AI visibility snapshot into a nightly tracking system with a real competitor set, prompt coverage, and a monitoring project.\",\"steps\":[{\"name\":\"Confirm your baseline is solid\",\"text\":\"Before you track change, you need a fixed point to measure from. Run a full AI visibility report and treat it as the baseline, not a one-off deliverable.\"},{\"name\":\"Revise your competitor set\",\"text\":\"Prune the brands that got auto-seeded from co-mentions but don't actually compete, and add the ones the client names in their own reporting.\"},{\"name\":\"Expand your prompt coverage\",\"text\":\"A handful of starter prompts proves the pipeline works. Real tracking needs a set that spans brand, comparison, category, and decision-stage questions.\"},{\"name\":\"Decide what messages you want to see win\",\"text\":\"Define the specific claims you want AI to repeat about the brand, so you can measure pull-through instead of just guessing at tone.\"},{\"name\":\"Turn tracking into a running project\",\"text\":\"Prompts only run on a schedule inside a project. Set one up, scoped to a goal, so results land automatically every night.\"},{\"name\":\"Put reports on a schedule\",\"text\":\"Automate the recap so the client sees progress in their inbox without anyone remembering to export a PDF.\"},{\"name\":\"Watch the trend, not the daily noise\",\"text\":\"Judge the slope over two or three weeks, not any single day's numbers, and mark real-world events so movement has an explanation.\"}]},\"_meta\":{\"filePath\":\"how-to-track-ai-visibility-over-time.mdx\",\"fileName\":\"how-to-track-ai-visibility-over-time.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-track-ai-visibility-over-time\"},\"body\":\"$9a\",\"locale\":\"en\",\"path\":\"how-to-track-ai-visibility-over-time\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"9b:T37ba,"])</script>
2<script>self.__next_f.push([1,"There's a growing genre of articles from respected names in SEO and marketing that are skeptical of AI visibility tools. Some are measured. Some are outright skeptical. [One is even from us](/blog/youre-wasting-money-on-prompt-tracking). The most useful one so far is a recent piece posing [31 methodology questions](https://www.linkedin.com/pulse/31-methodology-questions-ai-visibility-platforms-david-mcsweeney-bjfye/) for prompt tracking platforms, on the theory that vendors are making the positive claim, so vendors carry the burden of proof.\n\nThat's correct. We do.\n\nSo this is a defense of prompt tracking, but a modest one. Modest because the critics are right about a lot. There are snake oil sellers in this category. There is no industry standard for how data gets collected or reported. There are dashboards showing three-point share-of-voice movements as wins to clients who have no way to know the number's margin of error is wider than the movement. If you sell AI visibility software and none of that stings, you're not paying attention.\n\nBut \"this industry has real problems\" and \"this measurement is worthless\" are different claims. The first is true. The second doesn't jive with how every other measurement tool marketers trust actually works.\n\n## Key Takeaways\n\n- The data sources SEO professionals trust (SERPs, Search Console, GA4, Ahrefs, Semrush) can be served cheaply at scale because they're cached. AI answers can't be cached, so every observation costs a fresh generation. That's a structural difference, not a maturity gap, and it's a big part of why these tools are expensive, which is another frequent criticism.\n- Those trusted sources are also built on sampling and modeling. The difference is they've had years to normalize their caveats.\n- Nobody in this industry has first-party prompt data, and nobody should want the versions of it that are for sale.\n- We scored ourselves against all 31 methodology questions: some answered with published research, some being tested right now, some answered by disclosure, and some that can never be claimed by anyone.\n\n## Cache rules everything around me\n\nStart with the question underneath the whole debate: why does AI visibility data feel so much shakier than the SEO data everyone already trusts?\n\nBecause the SEO data you trust is cached.\n\nA SERP is generated once and served millions of times. Google Search Console hands you a pre-aggregated export of things that already happened. GA4 processes events into tables long before you open a report. Ahrefs and Semrush crawl, process, and store the web's link graph and ranking data so that your query hits a database, not the live web. Caching is what makes those products cheap, fast, and consistent. Ask the same question twice, hit the same stored answer twice, and the data feels solid.\n\nAI answers don't work that way. Every response is generated fresh, per request, at real compute cost. There is no stored answer to check your brand against. The only way to observe how an assistant talks about your category is to ask it, pay for the generation, and record what came back. Ask again and you may get something different, because the system itself is nondeterministic.\n\nThis has two consequences the critics usually treat as vendor failures when they're actually physics:\n\n1. **Every AI visibility number is a sample.** There's no census to compare against, because the population of \"answers ChatGPT would give\" doesn't exist until each answer is generated.\n2. **Scale costs real money.** A rank tracker can check 10,000 keywords for pennies against cached indexes. Ten thousand AI prompt runs are ten thousand paid generations, per platform, per day.\n\nSo AI visibility tools sample. The defensible ones say so, publish the math, and show you the confidence interval. The indefensible ones report a single daily run as if it were a fact. The difference between those two isn't the data source. It's the discipline.\n\n## The tools you trust are sampled too\n\nThe cached sources our industry relies on are also samples, and often heavily modeled ones.\n\nGA4 applies sampling to complex reports and thresholding to small segments; it also models conversions and behavior where consent or identity gaps exist. Search Console filters low-volume queries for privacy and caps exported rows; the \"total\" you see is not the total that happened. Ahrefs and Semrush estimate search volume and traffic from clickstream panels and models; two tools will confidently give you two different \"monthly search volumes\" for the same keyword, and neither is an observation. It's an estimate built on a panel that skews toward whoever installed the panel's software.\n\nNone of this makes those tools bad. They're useful because they're directionally right, methodologically stable, and increasingly upfront about their limits. But the industry's trust in them was earned over years of practitioners learning where the numbers bend. Nobody writes \"31 methodology questions for rank trackers\" anymore, not because rank trackers answered them all, but because the caveats got absorbed into professional common knowledge.\n\nAI visibility measurement is at the beginning of that same curve, with a harder problem (no cache, nondeterministic output) and less accumulated trust. The right response to that isn't to declare the category unmeasurable. It's to move through the curve faster by publishing methodology and running the studies critics keep asking for.\n\n## The first-party data nobody has\n\nThe strongest single objection in the skeptical articles is this one: no vendor has first-party data on what real users actually type into AI assistants, what answers they receive, or what the assistant's memory knows about them. Panels of tracked prompts are a stand-in for a population nobody can observe.\n\nWe're not going to argue with that. It's true, it will stay true for as long as this industry exists, and any vendor implying otherwise should be asked where their data comes from.\n\nThat last question matters more than it seems, because there *is* prompt data for sale. It comes from free VPNs, browser extensions, and \"free\" analytics tools that record what their users type into AI assistants and resell it. Some tools in our category buy it and present the result as observed demand.\
2n\nWe won't. Not because the data would be useless, but because of how it's gathered. People typing into a chat box have a reasonable expectation that the conversation stays between them and the assistant. Harvesting those conversations through a free utility whose users never meaningfully agreed to be a data source is not a data strategy we'll participate in, as a buyer or a seller. Our [data provenance commitment](/docs/methodology/ai-visibility-data-collection#our-commitment-to-data-provenance) is written into our methodology docs: every prompt we run is one you explicitly asked us to run, the raw answers are inspectable and exportable, and we don't buy harvested conversations or inflate seed prompts into fake \"demand\" data.\n\nIf that means our picture of user behavior is a panel rather than a population, we'll take the panel. At least we can tell you exactly what's in it.\n\n## Scoring ourselves against the 31 questions\n\nThe 31 questions deserve better than a vibes-based response, so we mapped every one of them against where we actually stand. Four buckets came out of that exercise.\n\n### Answered with published research\n\nSome of the questions are empirical, and we've already run the studies. Our research site publishes them with pre-registered specs, frozen before data collection, with the raw derived datasets released under CC BY.\n\n- **\"What's the run-to-run variance? When is one run per prompt enough?\" (Q8, Q18):** We re-ran [143 human-written prompts against ChatGPT daily for a week](https://research.spyglasses.io/articles/prompt-phrasing-consistency) and measured exactly how much the same prompt's answer moves between runs, at every layer: brands recommended, sources cited, searches run.\n- **\"Does daily movement mean anything or is it noise?\" (Q12):** Same study. Across seven daily waves we found no day-to-day drift in the underlying retrieval layer; the variance is run-to-run, not date-to-date.\n- **\"Doesn't phrasing determine the result?\" (parts of Q3 and Q7):** Yes, and we published that finding against our own expectation. We pre-registered the hypothesis that phrasing wouldn't matter beyond noise. The data rejected it. Rewording a same-intent prompt moves brand recommendations more than the model's own randomness does, and we said so, because the point of pre-registration is that you don't get to bury the result you didn't want.\n\n### Being tested right now\n\nThe hardest questions in the article are about representativeness: do synthetic prompt panels resemble what real people ask (Q3), does panel configuration predetermine the result (Q6), does more volume add validity or just precision (Q7), and what does generated prompt text actually represent (Q17)?\n\nAs this post goes out, we have a pre-registered experiment in the field testing exactly those four questions, using our own prompt generator as the test subject, against the hardest baseline available: real human phrasings of the same intent, collected the same week, on the same platform. The spec was frozen in a public repo before the first response came back, which means we've already committed to publishing the result whether it flatters our product or not. We've done that before (see the phrasing study above), and it's the only version of \"trust us\" we think this industry should accept.\n\nCross-vendor agreement (Q19) is on the same roadmap, and it really should be an industry exercise. If any other vendor wants to run the same prompts, same week, and compare outputs in public, our inbox is open.\n\n### Answered by disclosure\n\nA large cluster of the questions aren't research questions at all. They're \"show your work\" questions: what exactly counts as a mention, how is share of voice calculated, what's the unit of counting, what counts as a citation, what happens when a model refuses, can customers audit the raw data, what happens to history when methodology changes (Q1, Q5, Q20 through Q26).\n\nThese get answered by documentation or they don't get answered at all, so we publish [the entire collection and calculation methodology](/docs/methodology/ai-visibility-data-collection): which platforms run through anonymous logged-out sessions versus APIs and why cross-platform comparison is therefore asymmetric, the exact formula behind every headline metric, why our share of voice is a presence rate that deliberately doesn't sum to 100%, how mention detection stays deterministic so any number we show can be found in the raw answer text, how alias changes recalculate your full history instead of leaving a silent discontinuity, and which signals we refuse to ship because we can't make them stable (sentiment on regenerated answers, cross-platform position averages).\n\nOne disclosure worth calling out, because it answers the article's uncertainty questions (Q9, Q10) directly: we show you the margin of error before you spend anything. When you pick prompts to track, the platform displays the observation count, the confidence interval, and a plain quality rating while you're still choosing. Ten prompts tracked daily gives you roughly ±4.7% at 90% confidence; three prompts gives you ±8.7%, and we label that directional rather than letting you present it as precise. The [calculator and formula are public](/is-your-ai-visibility-data-reliable).\n\n### What nobody can claim\n\nAnd then there's the bucket where the only defensible answer is \"no one can know this, including us.\"\n\n- **Personalized, logged-in behavior (Q16).** We measure logged-out, memory-free sessions because they're the only measurable and comparable baseline. Real users have history, memory, and personalization, and no vendor can observe those sessions. Logged-out is a proxy, not a mirror, and our docs say so in those words.\n- **Population-level representativeness (Q2).** Without first-party usage data, no panel can be proven to represent \"the market.\" A tracked panel measures the panel. Movements within it are evidence about the panel first and the world second.\n- **Causal chains to revenue (Q27, Q29).** \"Your visibility score went up, therefore the content change worked, therefore revenue\" is a chain nobody in this category has demonstrated with controls. We do have one advantage here, as do several other, larger platforms in our space: our traffic analytics detect actual AI assistant visits server-side, which gives brands a first-party outcome to correlate against instead of a score validating itself. But correlation with controls is a study we still owe, not a claim we get to make today.\n\n## The modest defense\n\nPrompt tracking is a legitimate instrument with a narrower job than most of its sellers admit and more real utility than its critics allow.\n\nRun a fixed panel on a schedule and you have a drift detector: it tells you when something materially changed. Might be a model update, a competitor move, or your own work changed how assistants answer in your category. Even if the source isn't something we can infer and report, it's a signal to investigate.\n\nPair it with periodic broad sweeps of varied phrasings and you can measure your actual presence and audit whether your panel runs hot or cold. Ground it in the retrieval layer (the searches assistants actually run, and where you rank in them) and the noisy output metric gains a deterministic layer underneath that you can act on.\n\nWhat prompt tracking is not: a census of user behavior, a mirror of personalized sessions, or a benchmark of market truth. Any vendor presenting it that way is exaggerating at minimum.\n\nThe critics asking hard methodology questions are doing this industry a favor. The snake oil they're reacting to is real, and the fastest way to separate from it is boring: publish your methodology, pre-register your studies, release your data, state your margins of error before the invoice, and put the limitations in writing where clients will actually read them.\n\nThat's the standard we're holding ourselves to. We'd be glad if it became the industry's."])</script>
2<script>self.__next_f.push([1,"9c:T450b,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var w=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),f=(a,e)=\u003e{for(var s in e)r(a,s,{get:e[s],enumerable:!0})},i=(a,e,s,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of m(e))!g.call(a,n)\u0026\u0026n!==s\u0026\u0026r(a,n,{get:()=\u003ee[n],enumerable:!(o=p(e,n))||o.enumerable});return a};var b=(a,e,s)=\u003e(s=a!=null?u(y(a)):{},i(e||!a||!a.__esModule?r(s,\"default\",{value:a,enumerable:!0}):s,a)),v=a=\u003ei(r({},\"__esModule\",{value:!0}),a);var l=w((x,h)=\u003e{h.exports=_jsx_runtime});var k={};f(k,{default:()=\u003ec});var t=b(l());function d(a){let e={a:\"a\",em:\"em\",h2:\"h2\",h3:\"h3\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",ul:\"ul\",...a.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(e.p,{children:[\"There's a growing genre of articles from respected names in SEO and marketing that are skeptical of AI visibility tools. Some are measured. Some are outright skeptical. \",(0,t.jsx)(e.a,{href:\"/blog/youre-wasting-money-on-prompt-tracking\",children:\"One is even from us\"}),\". The most useful one so far is a recent piece posing \",(0,t.jsx)(e.a,{href:\"https://www.linkedin.com/pulse/31-methodology-questions-ai-visibility-platforms-david-mcsweeney-bjfye/\",children:\"31 methodology questions\"}),\" for prompt tracking platforms, on the theory that vendors are making the positive claim, so vendors carry the burden of proof.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"That's correct. We do.\"}),`\n`,(0,t.jsx)(e.p,{children:\"So this is a defense of prompt tracking, but a modest one. Modest because the critics are right about a lot. There are snake oil sellers in this category. There is no industry standard for how data gets collected or reported. There are dashboards showing three-point share-of-voice movements as wins to clients who have no way to know the number's margin of error is wider than the movement. If you sell AI visibility software and none of that stings, you're not paying attention.\"}),`\n`,(0,t.jsx)(e.p,{children:`But \"this industry has real problems\" and \"this measurement is worthless\" are different claims. The first is true. The second doesn't jive with how every other measurement tool marketers trust actually works.`}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"The data sources SEO professionals trust (SERPs, Search Console, GA4, Ahrefs, Semrush) can be served cheaply at scale because they're cached. AI answers can't be cached, so every observation costs a fresh generation. That's a structural difference, not a maturity gap, and it's a big part of why these tools are expensive, which is another frequent criticism.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Those trusted sources are also built on sampling and modeling. The difference is they've had years to normalize their caveats.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Nobody in this industry has first-party prompt data, and nobody should want the versions of it that are for sale.\"}),`\n`,(0,t.jsx)(e.li,{children:\"We scored ourselves against all 31 methodology questions: some answered with published research, some being tested right now, some answered by disclosure, and some that can never be claimed by anyone.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Cache rules everything around me\"}),`\n`,(0,t.jsx)(e.p,{children:\"Start with the question underneath the whole debate: why does AI visibility data feel so much shakier than the SEO data everyone already trusts?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Because the SEO data you trust is cached.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A SERP is generated once and served millions of times. Google Search Console hands you a pre-aggregated export of things that already happened. GA4 processes events into tables long before you open a report. Ahrefs and Semrush crawl, process, and store the web's link graph and ranking data so that your query hits a database, not the live web. Caching is what makes those products cheap, fast, and consistent. Ask the same question t
2wice, hit the same stored answer twice, and the data feels solid.\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI answers don't work that way. Every response is generated fresh, per request, at real compute cost. There is no stored answer to check your brand against. The only way to observe how an assistant talks about your category is to ask it, pay for the generation, and record what came back. Ask again and you may get something different, because the system itself is nondeterministic.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This has two consequences the critics usually treat as vendor failures when they're actually physics:\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Every AI visibility number is a sample.\"}),` There's no census to compare against, because the population of \"answers ChatGPT would give\" doesn't exist until each answer is generated.`]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Scale costs real money.\"}),\" A rank tracker can check 10,000 keywords for pennies against cached indexes. Ten thousand AI prompt runs are ten thousand paid generations, per platform, per day.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"So AI visibility tools sample. The defensible ones say so, publish the math, and show you the confidence interval. The indefensible ones report a single daily run as if it were a fact. The difference between those two isn't the data source. It's the discipline.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The tools you trust are sampled too\"}),`\n`,(0,t.jsx)(e.p,{children:\"The cached sources our industry relies on are also samples, and often heavily modeled ones.\"}),`\n`,(0,t.jsx)(e.p,{children:`GA4 applies sampling to complex reports and thresholding to small segments; it also models conversions and behavior where consent or identity gaps exist. Search Console filters low-volume queries for privacy and caps exported rows; the \"total\" you see is not the total that happened. Ahrefs and Semrush estimate search volume and traffic from clickstream panels and models; two tools will confidently give you two different \"monthly search volumes\" for the same keyword, and neither is an observation. It's an estimate built on a panel that skews toward whoever installed the panel's software.`}),`\n`,(0,t.jsx)(e.p,{children:`None of this makes those tools bad. They're useful because they're directionally right, methodologically stable, and increasingly upfront about their limits. But the industry's trust in them was earned over years of practitioners learning where the numbers bend. Nobody writes \"31 methodology questions for rank trackers\" anymore, not because rank trackers answered them all, but because the caveats got absorbed into professional common knowledge.`}),`\n`,(0,t.jsx)(e.p,{children:\"AI visibility measurement is at the beginning of that same curve, with a harder problem (no cache, nondeterministic output) and less accumulated trust. The right response to that isn't to declare the category unmeasurable. It's to move through the curve faster by publishing methodology and running the studies critics keep asking for.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The first-party data nobody has\"}),`\n`,(0,t.jsx)(e.p,{children:\"The strongest single objection in the skeptical articles is this one: no vendor has first-party data on what real users actually type into AI assistants, what answers they receive, or what the assistant's memory knows about them. Panels of tracked prompts are a stand-in for a population nobody can observe.\"}),`\n`,(0,t.jsx)(e.p,{children:\"We're not going to argue with that. It's true, it will stay true for as long as this industry exists, and any vendor implying otherwise should be asked where their data comes from.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"That last question matters more than it seems, because there \",(0,t.jsx)(e.em,{children:\"is\"}),' prompt data for sale. It comes from free VPNs, browser extensions, and \"free\" analytics tools that record what their users type into AI assistants and resell it. Some tools in our category buy it and present the result as observed demand.']}),`\n`,(0,t.jsxs)(e.p,{children:[\"We won't. Not because the data would be useless, but because of how it's gathered. People typing into a chat box have a reasonable expectation that the conversation stays between them and the assistant. Harvesting those conversations through a free utility whose users never meaningfully agreed to be a data source is not a data strategy we'll participate in, as a buyer or a seller. Our \",(0,t.jsx)(e.a,{href:\"/docs/methodology/ai-visibility-data-collection#our-commitment-to-data-provenance\",children:\"data provenance commitment\"}),` is written into our methodology docs: every prompt we run is one you explicitly asked us to run, the raw answers are inspectable and exportable, and we don't buy harvested conversations or inflate seed prompts into fake \"demand\" data.`]}),`\n`,(0,t.jsx)(e.p,{children:\"If that means our picture of user behavior is a panel rather than a population, we'll take the panel. At least we can tell you exactly what's in it.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Scoring ourselves against the 31 questions\"}),`\n`,(0,t.jsx)(e.p,{children:\"The 31 questions deserve better than a vibes-based response, so we mapped every one of them against where we actually stand. Four buckets came out of that exercise.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Answered with published research\"}),`\n`,(0,t.jsx)(e.p,{children:\"Some of the questions are empirical, and we've already run the studies. Our research site publishes them with pre-registered specs, frozen before data collection, with the raw derived datasets released under CC BY.\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:`\"What's the run-to-run variance? When is one run per prompt enough?\" (Q8, Q18):`}),\" We re-ran \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/prompt-phrasing-consistency\",children:\"143 human-written prompts against ChatGPT daily for a 
2week\"}),\" and measured exactly how much the same prompt's answer moves between runs, at every layer: brands recommended, sources cited, searches run.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:'\"Does daily movement mean anything or is it noise?\" (Q12):'}),\" Same study. Across seven daily waves we found no day-to-day drift in the underlying retrieval layer; the variance is run-to-run, not date-to-date.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:`\"Doesn't phrasing determine the result?\" (parts of Q3 and Q7):`}),\" Yes, and we published that finding against our own expectation. We pre-registered the hypothesis that phrasing wouldn't matter beyond noise. The data rejected it. Rewording a same-intent prompt moves brand recommendations more than the model's own randomness does, and we said so, because the point of pre-registration is that you don't get to bury the result you didn't want.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.h3,{children:\"Being tested right now\"}),`\n`,(0,t.jsx)(e.p,{children:\"The hardest questions in the article are about representativeness: do synthetic prompt panels resemble what real people ask (Q3), does panel configuration predetermine the result (Q6), does more volume add validity or just precision (Q7), and what does generated prompt text actually represent (Q17)?\"}),`\n`,(0,t.jsx)(e.p,{children:`As this post goes out, we have a pre-registered experiment in the field testing exactly those four questions, using our own prompt generator as the test subject, against the hardest baseline available: real human phrasings of the same intent, collected the same week, on the same platform. The spec was frozen in a public repo before the first response came back, which means we've already committed to publishing the result whether it flatters our product or not. We've done that before (see the phrasing study above), and it's the only version of \"trust us\" we think this industry should accept.`}),`\n`,(0,t.jsx)(e.p,{children:\"Cross-vendor agreement (Q19) is on the same roadmap, and it really should be an industry exercise. If any other vendor wants to run the same prompts, same week, and compare outputs in public, our inbox is open.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Answered by disclosure\"}),`\n`,(0,t.jsx)(e.p,{children:`A large cluster of the questions aren't research questions at all. They're \"show your work\" questions: what exactly counts as a mention, how is share of voice calculated, what's the unit of counting, what counts as a citation, what happens when a model refuses, can customers audit the raw data, what happens to history when methodology changes (Q1, Q5, Q20 through Q26).`}),`\n`,(0,t.jsxs)(e.p,{children:[\"These get answered by documentation or they don't get answered at all, so we publish \",(0,t.jsx)(e.a,{href:\"/docs/methodology/ai-visibility-data-collection\",children:\"the entire collection and calculation methodology\"}),\": which platforms run through anonymous logged-out sessions versus APIs and why cross-platform comparison is therefore asymmetric, the exact formula behind every headline metric, why our share of voice is a presence rate that deliberately doesn't sum to 100%, how mention detection stays deterministic so any number we show can be found in the raw answer text, how alias changes recalculate your full history instead of leaving a silent discontinuity, and which signals we refuse to ship because we can't make them stable (sentiment on regenerated answers, cross-platform position averages).\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"One disclosure worth calling out, because it answers the article's uncertainty questions (Q9, Q10) directly: we show you the margin of error before you spend anything. When you pick prompts to track, the platform displays the observation count, the confidence interval, and a plain quality rating while you're still choosing. Ten prompts tracked daily gives you roughly \\xB14.7% at 90% confidence; three prompts gives you \\xB18.7%, and we label that directional rather than letting you present it as precise. The \",(0,t.jsx)(e.a,{href:\"/is-your-ai-visibility-data-reliable\",children:\"calculator and formula are public\"}),\".\"]}),`\n`,(0,t.jsx)(e.h3,{children:\"What nobody can claim\"}),`\n`,(0,t.jsx)(e.p,{children:`And then there's the bucket where the only defensible answer is \"no one can know this, including us.\"`}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Personalized, logged-in behavior (Q16).\"}),\" We measure logged-out, memory-free sessions because they're the only measurable and comparable baseline. Real users have history, memory, and personalization, and no vendor can observe those sessions. Logged-out is a proxy, not a mirror, and our docs say so in those words.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Population-level representativeness (Q2).\"}),' Without first-party usage data, no panel can be proven to represent \"the market.\" A tracked panel measures the panel. Movements within it are evidence about the panel first and the world second.']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Causal chains to revenue (Q27, Q29).\"}),' \"Your visibility score went up, therefore the content change worked, therefore revenue\" is a chain nobody in this category has demonstrated with controls. We do have one advantage here, as do several other, larger platforms in our space: our traffic analytics detect actual AI assistant visits server-side, which gives brands a first-party outcome to correlate against instead of a score validating itself. But correlation with controls is a study we still owe, not a claim we get to make today.']}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"The modest defense\"}),`\n`,(0,t.jsx)(e.p,{children:\"Prompt tracking is a legitimate instrument with a narrower job than most of its sellers admit and more real utility than its critics allow.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Run a fixed panel on a schedule and you have a drift detector: it tells you when something materially changed. Might be a model update, a competitor move, or your own work changed how assistants answer in your category. Even if the source isn't something we can infer and report, it's a signal to investigate.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Pair it with periodic broad sweeps of varied phrasings and you can measure your actual presence and audit whether your panel runs hot or cold. Ground it in the retrieval layer (the searches assistants actually run, and where you rank in them) and the noisy output metric gains a deterministic layer underneath that you can act on.\"}),`\n`,(0,t.jsx)(e.p,{children:\"What prompt tracking is not: a census of user behavior, a mirror of personalized sessions, or a benchmark of market truth. Any vendor presenting it that way is exaggerating at minimum.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The critics asking hard methodology questions are doing this industry a favor. The snake oil they're reacting to is real, and the fastest way to separate from it is boring: publish your methodology, pre-register your studies, release your data, state your margins of error before the invoice, and put the limitations in writing where clients will actually read them.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That's the standard we're holding ourselves to. We'd be glad if it became the industry's.\"})]})}function c(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(d,{...a})}):d(a)}return v(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"36:[\"$\",\"$L10\",\"a-modest-defense-of-prompt-tracking\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$9b\",\"title\":\"A Modest Defense of Prompt Tracking\",\"date\":\"2026-07-29\",\"image\":\"/images/blog/a-modest-defense-of-prompt-tracking.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"The critics of AI visibility tools are right about more than our industry wants to admit. Here's what a defensible version of prompt tracking looks like, question by question.\",\"tags\":[\"prompt tracking\",\"AI visibility\",\"GEO\",\"AEO\",\"methodology\"],\"published\":true,\"_meta\":{\"filePath\":\"a-modest-defense-of-prompt-tracking.mdx\",\"fileName\":\"a-modest-defense-of-prompt-tracking.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"a-modest-defense-of-prompt-tracking\"},\"body\":\"$9c\",\"locale\":\"en\",\"path\":\"a-modest-defense-of-prompt-tracking\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"9d:T2719,"])</script>
2<script>self.__next_f.push([1,"**Summary:** Spyglasses Research extended SparkToro's January 2026 prompt-consistency study by re-running their 143 de-identified, human-written headphone prompts against ChatGPT (via DataForSEO's LLM scraper, en-US, web search on) once a day for seven days. Category leaders Sony, Bose, and Sennheiser appeared in 80 to 90% of answers regardless of wording, replicating SparkToro's finding on a single platform. But prompt phrasing changed the rest of the recommendation set more than ChatGPT's own run-to-run randomness: same-prompt reruns overlapped at 74% (Jaccard 0.74) while differently worded same-intent prompts overlapped at 54%. Much of that gap traces to sub-intents. A stated dollar budget dropped Bose 36 points and lifted JBL 31; travel framing lifted Anker 23; music framing lifted Sennheiser 23. For measurement, phrasing variety beat run frequency: 70 varied prompts run once estimated true mention rate about twice as accurately as 10 prompts run daily for a week.\n\n## Key takeaways\n\n- Market leaders are close to wording-proof; mid-tier brands live or die by how the question is phrased.\n- Rewording a same-intent prompt swaps roughly one brand per shortlist, beyond the model's own noise.\n- Concrete prompt attributes (budget, recipient, use case) act like separate markets with separate leaderboards.\n- A fixed prompt panel measures drift well but can't tell you your true mention rate; a periodic broad sweep can, and it audits the panel too.\n\nAsk ChatGPT for headphone recommendations the way you'd word it, and the way your neighbor would word it, and you'll often get a different shortlist. Not a different market leader; a different shortlist. That gap is the single most useful thing we learned from our latest study, and it changes how you should think about every AI visibility number you look at.\n\nQuick background. In January 2026, SparkToro published [a study](https://sparktoro.com/blog/new-research-ais-are-highly-inconsistent-when-recommending-brands-or-products-marketers-should-take-care-when-tracking-ai-visibility/) built on a great idea: instead of guessing what \"the typical prompt\" looks like, they asked over 142 real people how each of them would ask an AI for headphone advice, ran every prompt, and compared the answers. Same brands kept showing up. But each prompt ran once, spread across seven different AI platforms, so wording effects and platform effects were tangled together.\n\nWith their blessing (thanks, Rand), we took their exact prompts and untangled it: one platform, ChatGPT, every prompt re-run daily for a week. 1,001 headphone answers evaluated in this study, plus a control set. Full methods and data are on our research site.\n\n## What held steady, and what didn't\n\nThe leaders are close to wording-proof. Sony appeared in 90% of answers, Bose in 82%, Sennheiser in 80%, across 143 different people's phrasings, every day, all week. If you're the category leader, the \"is my prompt representative?\" worry mostly isn't your worry.\n\nBelow the podium, it's a different story. We went in expecting wording not to matter once intent was the same; we even pre-registered that prediction. The data said otherwise. Two runs of the same prompt agree on about 74% of recommended brands. Two differently worded prompts, same intent, same day: 54%. Wording costs about one brand per shortlist, and that's after accounting for ChatGPT's natural run-to-run variation.\n\nHere's the part you can act on. Much of that \"wording effect\" isn't mysterious at all. It's sub-intent: concrete attributes people bake into how they ask.\n\n\u003cFigure\n  src=\"/images/blog/prompt-consistency-budget-flip.webp\"\n  alt=\"Grouped bar chart comparing brand mention rates for prompts with and without a specific dollar budget. Bose drops from 88% to 52% and Sennheiser from 83% to 66% when a budget is stated, while JBL rises from 12% to 43%.\"\n  caption=\"Prompts that name a specific dollar budget get a different market. Bose drops 36 points, JBL more than triples.\"\n/\u003e\n\nWhen someone names a dollar amount, Bose drops 36 points and JBL gains 31. Mention travel, and Anker climbs 23 points. Frame it around music listening, and Sennheiser climbs 23. These aren't vibes; each of those effects held up under the same statistical checks as the main study. Some didn't, and we say so in the research article: mentioning noise cancelling moved nothing (it's table stakes in this category), and asking for a specific output format was too rare in the prompt set to test.\n\nSo \"prompt wording matters\" decomposes into something a marketer can actually use. A budget-framed question is a different market than a premium-framed one, with a different leaderboard. You can't enumerate every way a customer might phrase a question. You can absolutely enumerate the frames: price-conscious, gift-buying, use-case-specific, feature-led. And you can find out which of those frames include you and which shut you out.\n\nAnd these segments aren't just a pattern in the answers. We checked the layer underneath, and prompts that share a frame also run more similar web searches inside ChatGPT and cite more similar sources. Two travel-framed prompts overlap far more in their grounding searches than a travel prompt paired with a non-travel one. For budgets, the segment turns out to be the amount itself: prompts naming similar dollar figures converge on similar brands, while a \\$100 prompt and a \\$400 prompt behave like two different markets. The segments are real all the way down the pipeline, which is what makes them worth targeting.\n\n## What this means for your tracking\n\nIf you track AI visibility with a fixed set of prompts (most tools work this way, ours included), your mention rate is a precise measurement of those exact phrasings. Run them more often and the number gets more stable. It doesn't get more representative, because the wording effects are stable too. A panel that happens to over-sample budget-framed wording will understate a premium brand every single day, consistently, convincingly.\n\n\u003cFigure\n  src=\"/images/blog/prompt-consistency-panel-moe.webp\"\n  alt=\"Line chart showing the margin of error on estimated mention rate versus the number of distinct phrasings in a panel. Error falls steeply as phrasings are added;
2 running the same phrasings daily for a week improves accuracy only modestly despite seven times the cost.\"\n  caption=\"Simulated from our study grid: adding differently worded prompts improves accuracy fast. Re-running the same prompts all week barely does.\"\n/\u003e\n\nIn our simulation, 70 differently worded prompts run once pinned down a brand's true mention rate about twice as tightly as 10 prompts run daily for a week. Same total cost. Variety wins.\n\nDoes that mean scheduled tracking is a waste? No, and this matters: our study also found zero day-to-day drift across the week. A fixed panel is a clean yardstick for change. When a model update lands or your campaign ships, the panel is what tells you something moved. It's the right tool for exactly that job, and the wrong tool for estimating your overall presence.\n\nThe design that follows, and the one we're building toward, is what we call a pulse model. Keep a small, fixed panel running on a schedule to catch drift. Periodically, run a broad sweep: a large, one-shot batch of prompts deliberately varied across the frames above. The sweep tells you your true rate per segment and which frames exclude you (that's your content and PR target list). It also calibrates the panel: if the sweep says 45% and your panel says 60%, you now know your panel reads 15 points hot, and every daily number after that gets more honest.\n\n## Limitations of our study\n\nThis was one buying intent (headphones as a travel gift), one platform, in English, over one week. It also covers exactly one kind of user: an anonymous, free-tier session with no personalization, which is what the scraper sees. Logged-in accounts, paid tiers, and personalized histories could all behave differently, and we can't claim these numbers carry over to them. The pattern of leaders-stable-and-shortlists-moving is the kind of mechanism we'd expect to travel to other categories, but we haven't proven it travels. The sub-intent effects and the panel simulation are exploratory analyses, clearly labeled as such in the full write-up. Don't stretch them further than we do.\n\nThe full methodology, the pre-registered spec, every statistical test, and a downloadable dataset live on our research site: [We pre-registered \"prompt phrasing barely matters.\" ChatGPT proved us wrong.](https://research.spyglasses.io/articles/prompt-phrasing-consistency)\n\n## A follow-up, thanks to a reader\n\nAfter this study went out, a reader asked whether our \"rank isn't stable\" comment was something we'd computed or just an impression. Fair question; it was an impression. So we computed it, and the answer surprised us enough to earn [its own write-up](https://research.spyglasses.io/articles/rank-stability-chatgpt). Short version: the order of the brands two answers share is much steadier than the folklore says. Re-run the same prompt and the shared brands come back in the exact same order almost half the time. What's genuinely unstable is the top slot: across different phrasings, which brand gets mentioned first is statistically a coin flip weighted by how often each brand gets named first in answers overall. So when a dashboard shows you slipped from #1 to #3 on one prompt, that's usually weather, not news. A brand leaving the list entirely is news.\n\n## Find out which frames include you\n\nThe first question this study should make you ask isn't \"what's my mention rate?\" It's \"which ways of asking include me, and which don't?\" The [Spyglasses AI Visibility Report](/ai-visibility-report) is the fast way to start: it runs your brand across ChatGPT, Gemini, Claude, and Perplexity and shows you what they say, what they cite, and how consistent it is. From there, you'll know whether the wording gap is costing you answers you should be in."])</script>
2<script>self.__next_f.push([1,"9e:T2fe7,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var c=Object.create;var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var w=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),g=(a,e)=\u003e{for(var r in e)s(a,r,{get:e[r],enumerable:!0})},i=(a,e,r,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of m(e))!y.call(a,n)\u0026\u0026n!==r\u0026\u0026s(a,n,{get:()=\u003ee[n],enumerable:!(o=u(e,n))||o.enumerable});return a};var b=(a,e,r)=\u003e(r=a!=null?c(f(a)):{},i(e||!a||!a.__esModule?s(r,\"default\",{value:a,enumerable:!0}):r,a)),k=a=\u003ei(s({},\"__esModule\",{value:!0}),a);var h=w((S,d)=\u003e{d.exports=_jsx_runtime});var T={};g(T,{default:()=\u003ep});var t=b(h());function l(a){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...a.components},{Figure:r}=e;return r||v(\"Figure\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Summary:\"}),\" Spyglasses Research extended SparkToro's January 2026 prompt-consistency study by re-running their 143 de-identified, human-written headphone prompts against ChatGPT (via DataForSEO's LLM scraper, en-US, web search on) once a day for seven days. Category leaders Sony, Bose, and Sennheiser appeared in 80 to 90% of answers regardless of wording, replicating SparkToro's finding on a single platform. But prompt phrasing changed the rest of the recommendation set more than ChatGPT's own run-to-run randomness: same-prompt reruns overlapped at 74% (Jaccard 0.74) while differently worded same-intent prompts overlapped at 54%. Much of that gap traces to sub-intents. A stated dollar budget dropped Bose 36 points and lifted JBL 31; travel framing lifted Anker 23; music framing lifted Sennheiser 23. For measurement, phrasing variety beat run frequency: 70 varied prompts run once estimated true mention rate about twice as accurately as 10 prompts run daily for a week.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Market leaders are close to wording-proof; mid-tier brands live or die by how the question is phrased.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Rewording a same-intent prompt swaps roughly one brand per shortlist, beyond the model's own noise.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Concrete prompt attributes (budget, recipient, use case) act like separate markets with separate leaderboards.\"}),`\n`,(0,t.jsx)(e.li,{children:\"A fixed prompt panel measures drift well but can't tell you your true mention rate; a periodic broad sweep can, and it audits the panel too.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Ask ChatGPT for headphone recommendations the way you'd word it, and the way your neighbor would word it, and you'll often get a different shortlist. Not a different market leader; a different shortlist. That gap is the single most useful thing we learned from our latest study, and it changes how you should think about every AI visibility number you look at.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Quick background. In January 2026, SparkToro published \",(0,t.jsx)(e.a,{href:\"https://sparktoro.com/blog/new-research-ais-are-highly-inconsistent-when-recommending-brands-or-products-marketers-should-take-care-when-tracking-ai-visibility/\",children:\"a study\"}),' built on a great idea: instead of guessing what \"the typical prompt\" looks like, they asked over 142 real people how each of them would ask an AI for headphone advice, ran every prompt, and compared the answers. Same brands kept showing up. But each prompt ran once, spread across seven different AI platforms, so wording effects and platform effects were tangled together.']}),`\n`,(0,t.jsx)(e.p,{children:\"With their blessing (thanks, Rand), we took their exact prompts and untangled it: one platform, ChatGPT, every prompt re-run daily for a week. 1,001 headphone answers evaluated in this study, plus a control set. Full methods and data are on our research site.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What held steady, and what didn't\"}),`\n`,(0,t.jsx)(e.p,{children:`The leaders are close to wording-proof. Sony appeared in 90% of answers, Bose in 82%, Sennheiser in 80%, across 143 different people's phrasings, every day, all week. If you're the category leader, the \"is my prompt representative?\" worry mostly isn't your worry.`}),`\n`,(0,t.jsx)(e.p,{children:\"Below the podium, it's a different story. We went in expecting wording not to matter once intent was the same; we even pre-registered that prediction. The data said otherwise. Two runs of the same prompt agree on about 74% of recommended brands. Two differently worded prompts, same intent, same day: 54%. Wording costs about one brand per shortlist, and that's after accounting for ChatGPT's natural run-to-run variation.\"}),`\n`,(0,t.jsx)(e.p,{children:`Here's the part you can act on. Much of that \"wording effect\" isn't mysterious at all. It's sub-intent: concrete attributes people bake into how they ask.`}),`\n`,(0,t.jsx)(r,{src:\"/images/blog/prompt-consistency-budget-flip.webp\",alt:\"Grouped bar chart comparing brand mention rates for prompts with and without a specific dollar budget. Bose drops from 88% to 52% and Sennheiser from 83% to 66% when a budget is stated, while JBL rises from 12% to 43%.\",caption:\"Prompts that name a specific dollar budget get a different market. Bose drops 36 points, JBL more than triples.\"}),`\n`,(0,t.jsx)(e.p,{children:\"When someone names a dollar amount, Bose drops 36 points and JBL gains 31. Mention travel, and Anker climbs 23 points. Frame it around music listening, and Sennheiser climbs 23. These aren't vibes; each of those effects held up under the same statistical checks as the main study. Some didn't, and we say so in the research article: mentioning noise cancelling moved nothing (it's table stakes in this category), and asking for a specific output format was too rare in the prompt set to test.\"}),`\n`,(0,t.jsx)(e.p,{children:`So \"prompt wording matters\" decomposes into something a marketer can actually use. A budget-framed question is a different market than a premium-framed one, with a different leaderboard. You can't enumerate every way a customer might phrase a question. You can absolutely enumerate the frames: price-conscious, gift-buying, use-case-specific, feature-led. And you can find out which of those frames include you and which shut you out.`}),`\n`,(0,t.jsx)(e.p,{children:\"And these segments aren't just a pattern in the answers. We checked the layer underneath, and prompts that share a frame also run more similar web searches inside ChatGPT and cite more similar sources. Two travel-framed prompts overlap far more in their grounding searches than a travel prompt paired with a non-travel one. For budgets, the segment turns out to be the amount itself: prompts naming similar dollar figures converge on similar brands, while a $100 prompt and a $400 prompt behave like two different markets. The segments are real all the way down the pipeline, which is what makes them worth targeting.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What this means for your tracking\"}),`\n`,(0,t.jsx)(e.p,{children:\"If you track AI visibility with a fixed set of prompts (most tools work this way, ours included), your mention rate is a precise measurement of those exact phrasings. Run them more often and the number gets more stable. It doesn't get more representative, because the wording effects are stable too. A panel that happens to over-sample budget-framed wording will understate a premium brand every single day, consistently, convincingly.\"}),`\n`,(0,t.jsx)(r,{src:\"/images/blog/prompt-consistency-panel-moe.webp\",alt:\"Line chart showing the margin of error on estimated mention rate versus the number of distinct phrasings in a panel. Error falls steeply as phrasings are added;
2 running the same phrasings daily for a week improves accuracy only modestly despite seven times the cost.\",caption:\"Simulated from our study grid: adding differently worded prompts improves accuracy fast. Re-running the same prompts all week barely does.\"}),`\n`,(0,t.jsx)(e.p,{children:\"In our simulation, 70 differently worded prompts run once pinned down a brand's true mention rate about twice as tightly as 10 prompts run daily for a week. Same total cost. Variety wins.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Does that mean scheduled tracking is a waste? No, and this matters: our study also found zero day-to-day drift across the week. A fixed panel is a clean yardstick for change. When a model update lands or your campaign ships, the panel is what tells you something moved. It's the right tool for exactly that job, and the wrong tool for estimating your overall presence.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The design that follows, and the one we're building toward, is what we call a pulse model. Keep a small, fixed panel running on a schedule to catch drift. Periodically, run a broad sweep: a large, one-shot batch of prompts deliberately varied across the frames above. The sweep tells you your true rate per segment and which frames exclude you (that's your content and PR target list). It also calibrates the panel: if the sweep says 45% and your panel says 60%, you now know your panel reads 15 points hot, and every daily number after that gets more honest.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Limitations of our study\"}),`\n`,(0,t.jsx)(e.p,{children:\"This was one buying intent (headphones as a travel gift), one platform, in English, over one week. It also covers exactly one kind of user: an anonymous, free-tier session with no personalization, which is what the scraper sees. Logged-in accounts, paid tiers, and personalized histories could all behave differently, and we can't claim these numbers carry over to them. The pattern of leaders-stable-and-shortlists-moving is the kind of mechanism we'd expect to travel to other categories, but we haven't proven it travels. The sub-intent effects and the panel simulation are exploratory analyses, clearly labeled as such in the full write-up. Don't stretch them further than we do.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The full methodology, the pre-registered spec, every statistical test, and a downloadable dataset live on our research site: \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/prompt-phrasing-consistency\",children:'We pre-registered \"prompt phrasing barely matters.\" ChatGPT proved us wrong.'})]}),`\n`,(0,t.jsx)(e.h2,{children:\"A follow-up, thanks to a reader\"}),`\n`,(0,t.jsxs)(e.p,{children:[`After this study went out, a reader asked whether our \"rank isn't stable\" comment was something we'd computed or just an impression. Fair question; it was an impression. So we computed it, and the answer surprised us enough to earn `,(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/rank-stability-chatgpt\",children:\"its own write-up\"}),\". Short version: the order of the brands two answers share is much steadier than the folklore says. Re-run the same prompt and the shared brands come back in the exact same order almost half the time. What's genuinely unstable is the top slot: across different phrasings, which brand gets mentioned first is statistically a coin flip weighted by how often each brand gets named first in answers overall. So when a dashboard shows you slipped from #1 to #3 on one prompt, that's usually weather, not news. A brand leaving the list entirely is news.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Find out which frames include you\"}),`\n`,(0,t.jsxs)(e.p,{children:[`The first question this study should make you ask isn't \"what's my mention rate?\" It's \"which ways of asking include me, and which don't?\" The `,(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses AI Visibility Report\"}),\" is the fast way to start: it runs your brand across ChatGPT, Gemini, Claude, and Perplexity and shows you what they say, what they cite, and how consistent it is. From there, you'll know whether the wording gap is costing you answers you should be in.\"]})]})}function p(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(l,{...a}
2)}):l(a)}function v(a,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(T);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"37:[\"$\",\"$L10\",\"prompt-wording-changes-ai-recommendations\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$9d\",\"title\":\"How People Word a Prompt Changes Whether AI Recommends You\",\"date\":\"2026-07-23\",\"image\":\"/images/blog/prompt-wording-changes-ai-recommendations.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"We re-ran SparkToro's prompt study with 143 real people's prompts against ChatGPT, daily for a week. The market leaders showed up no matter how people asked. Everyone else's fate depended on the wording. Here's what to do about it.\",\"tags\":[\"prompt tracking\",\"AI visibility\",\"ChatGPT\",\"brand mentions\",\"research\",\"AEO\"],\"published\":true,\"faq\":[{\"question\":\"Does prompt wording change which brands ChatGPT recommends?\",\"answer\":\"Yes, more than ChatGPT's own randomness does. In our study, two runs of the same prompt agreed on about 74% of the recommended brands. Two differently worded prompts with the same intent agreed on only 54%. That's roughly one brand swapped in or out of the shortlist because of wording alone.\"},{\"question\":\"Are AI brand recommendations completely random then?\",\"answer\":\"No. The category leaders in our study showed up in 80 to 90% of answers no matter how the question was phrased. The wording effect concentrates on mid-tier brands, where specific attributes in the prompt (like a stated budget) decide whether the brand appears at all.\"},{\"question\":\"How many prompts do you need to track to measure AI visibility accurately?\",\"answer\":\"Variety matters more than volume or frequency. In our simulation, 70 differently worded prompts run once estimated a brand's true mention rate about twice as accurately as 10 prompts run daily for a week, at the same total cost. A small fixed panel is still the right tool for spotting change over time.\"},{\"question\":\"What is a sub-intent in AI search?\",\"answer\":\"It's a version of the same buying question with a different frame baked into the wording, like naming a dollar budget, a gift recipient, or a use case. In our study these frames acted almost like separate markets. Stating a specific budget dropped one premium brand by 36 points and lifted a value brand by 31.\"}],\"_meta\":{\"filePath\":\"prompt-wording-changes-ai-recommendations.mdx\",\"fileName\":\"prompt-wording-changes-ai-recommendations.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"prompt-wording-changes-ai-recommendations\"},\"body\":\"$9e\",\"locale\":\"en\",\"path\":\"prompt-wording-changes-ai-recommendations\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"9f:T1761,"])</script>
2<script>self.__next_f.push([1,"\u003e **Update, July 2026:** We wrote this post when Spyglasses had just launched, back when AI traffic analytics was our only product. Our thinking has sharpened since then, and our own research now puts numbers on it. Scheduled prompt tracking isn't wasted money; it's just doing a narrower job than most tools admit. A fixed prompt panel run on a schedule is a solid instrument for measuring drift: it tells you when a model update, a competitor move, or your own work changed something. What it can't do is tell you your true mention rate, because how a prompt is worded shifts the answer more than the model's own randomness does. For that you need a periodic \"pulse\": a broad, one-time sweep of deliberately varied phrasings that measures your real presence, surfaces the wording variations that include or exclude you, and audits whether your core panel runs hot or cold. We tested this directly by re-running SparkToro's 143 human-written prompts against ChatGPT daily for a week. [Read the full study](https://research.spyglasses.io/articles/prompt-phrasing-consistency). The original post continues below.\n\nIf you're paying for a prompt tracker, you're paying to watch a number go up and down without knowing why. Mention rate, share of voice, citation count. These metrics tell you where you stand. They don't tell you what to change. And the numbers themselves are built on a foundation that shifts every time you measure it.\n\nThat's not a reporting problem. It's a structural one. The way prompt tracking works makes it nearly impossible to separate signal from noise, and even when the signal is clear, it doesn't point to a next step.\n\nThere's a better way to spend that money. But first, it helps to understand why the current approach has a ceiling.\n\n## Key Takeaways\n\n- AI outputs are nondeterministic. You'd need roughly 271 runs of a single prompt to reach 90% confidence in the result, at about $100 per model.\n- Query fan-out means many different prompts map to the same small set of underlying web searches. Tracking hundreds of prompts often means tracking the same 30 searches over and over.\n- The API that prompt trackers use produces different results than the web interface real users see.\n- The real opportunity isn't in measuring outputs. It's in optimizing the deterministic pipeline that produces them.\n\n## The Nondeterminism Problem\n\nAI doesn't give the same answer twice. Ask ChatGPT the same question ten minutes apart and you'll get different responses. Different sources cited, different brands mentioned, different structure. This is called nondeterminism, and it's built into how large language models work.\n\nFor prompt tracking, this creates a math problem. To be 90% confident (with a 5% margin of error) that a mention rate is accurate, you need about 271 runs of that exact prompt. At roughly $0.37 per API call, that's about $100 per prompt, per model. For five models across 50 prompts, the cost of statistically meaningful data is enormous. Most tools don't run anywhere near that many times. They run each prompt once or a few times a day and report the result as though it's stable. It isn't.\n\nThis means the scores you're watching can swing 10 or 15 points between runs without anything changing on your end. That's not a trend. It's noise.\n\n## Query Fan-Out Makes It Worse\n\nWhen a user types a prompt into ChatGPT or Perplexity, the AI doesn't search the web with that exact text. It breaks the prompt into several shorter, overlapping searches and runs them in parallel. This process is called [query fan-out](https://www.searchenginejournal.com/google-query-fan-out-patent/547983/), and it's based on a Google patent.\n\nFan-out actually reduces variability at the search layer. Many different prompts produce the same small set of underlying web searches. A tool tracking 150 prompts might generate only 30 unique fan-out queries after you remove duplicates. That means you're paying to track 150 prompts when the real surface area is a fraction of that.\n\nThis is useful to understand, but it also reveals the core issue. The prompts themselves are the wrong unit to track. The fan-out queries and the content they return are where the action is.\n\n## Where the Money Should Go\n\nIf prompt tracking metrics are noisy, expensive, and disconnected from action, what's the alternative?\n\nFor website content, the answer is in the pipeline. For the types of queries that matter most to brands (product research, comparisons, recommendations) AI responses involve a RAG process: retrieval-augmented generation. The AI runs web searches, ranks the results, reads page content, and scores which pieces are most relevant to cite. Each of those steps follows known algorithms. Unlike the final response, which varies, the pipeline stages are consistent and measurable.\n\nThis is where money produces returns. Tools that audit how ready your content is for AI citation, that score your pages against the factors AI actually evaluates, and that show you where your content falls out of the pipeline give you something prompt trackers can't: a specific, measurable action to take and a way to verify the impact.\n\nWhen prompt tracking is t
2ied to specific projects with defined goals, and focused on surfacing statistically significant changes rather than daily noise, it serves a useful purpose. It becomes the proof layer that confirms the optimization work is paying off. But it can't be the whole strategy. Watching a score isn't a strategy. Changing the score is.\n\n## The Shift\n\nThe AI visibility market is full of tools that got good at measuring something unreliable. More prompts, more frequent runs, more dashboards. The competition is over who can measure the most, not who can help you improve the most.\n\nIf you're evaluating where to spend your AEO budget, ask a simple question: does this tool help me understand what to change, or does it just show me a number? If the answer is just a number, you're paying for a window when you need a door."])</script>
2<script>self.__next_f.push([1,"a0:T2c25,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var d=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),w=(n,e)=\u003e{for(var a in e)s(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of u(e))!y.call(n,r)\u0026\u0026r!==a\u0026\u0026s(n,r,{get:()=\u003ee[r],enumerable:!(i=p(e,r))||i.enumerable});return n};var b=(n,e,a)=\u003e(a=n!=null?d(g(n)):{},o(e||!n||!n.__esModule?s(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003eo(s({},\"__esModule\",{value:!0}),n);var l=f((T,h)=\u003e{h.exports=_jsx_runtime});var v={};w(v,{default:()=\u003ec});var t=b(l());function m(n){let e={a:\"a\",annotation:\"annotation\",blockquote:\"blockquote\",h2:\"h2\",li:\"li\",math:\"math\",mi:\"mi\",mn:\"mn\",mo:\"mo\",mrow:\"mrow\",msup:\"msup\",p:\"p\",semantics:\"semantics\",span:\"span\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(e.blockquote,{children:[`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Update, July 2026:\"}),` We wrote this post when Spyglasses had just launched, back when AI traffic analytics was our only product. Our thinking has sharpened since then, and our own research now puts numbers on it. Scheduled prompt tracking isn't wasted money; it's just doing a narrower job than most tools admit. A fixed prompt panel run on a schedule is a solid instrument for measuring drift: it tells you when a model update, a competitor move, or your own work changed something. What it can't do is tell you your true mention rate, because how a prompt is worded shifts the answer more than the model's own randomness does. For that you need a periodic \"pulse\": a broad, one-time sweep of deliberately varied phrasings that measures your real presence, surfaces the wording variations that include or exclude you, and audits whether your core panel runs hot or cold. We tested this directly by re-running SparkToro's 143 human-written prompts against ChatGPT daily for a week. `,(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/prompt-phrasing-consistency\",children:\"Read the full study\"}),\". The original post continues below.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"If you're paying for a prompt tracker, you're paying to watch a number go up and down without knowing why. Mention rate, share of voice, citation count. These metrics tell you where you stand. They don't tell you what to change. And the numbers themselves are built on a foundation that shifts every time you measure it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That's not a reporting problem. It's a structural one. The way prompt tracking works makes it nearly impossible to separate signal from noise, and even when the signal is clear, it doesn't point to a next step.\"}),`\n`,(0,t.jsx)(e.p,{children:\"There's a better way to spend that money. But first, it helps to understand why the current approach has a ceiling.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"AI outputs are nondeterministic. You'd need roughly 271 runs of a single prompt to reach 90% confidence in the result, at about $100 per model.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Query fan-out means many different prompts map to the same small set of underlying web searches. Tracking hundreds of prompts often means tracking the same 30 searches over and over.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The API that prompt trackers use produces different results than the web interface real users see.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The real opportunity isn't in measuring outputs. It's in optimizing the deterministic pipeline that produces them.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"The Nondeterminism Problem\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI doesn't give the same answer twice. Ask ChatGPT the same question ten minutes apart and you'll get different responses. Different sources cited, different brands mentioned, different structure. This is called nondeterminism, and it's built into how large language models work.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"For prompt tracking, this creates a math problem. To be 90% confident (with a 5% margin of error) that a mention rate is accurate, you need about 271 runs of that exact prompt. At roughly \",(0,t.jsxs)(e.span,{className:\"katex\",children:[(0,t.jsx)(e.span,{className:\"katex-mathml\",children:(0,t.jsx)(e.math,{xmlns:\"http://www.w3.org/1998/Math/MathML\",children:(0,t.jsxs)(e.semantics,{children:[(0,t.jsxs)(e.mrow,{children:[(0,t.jsx)(e.mn,{children:\"0.37\"}),(0,t.jsx)(e.mi,{children:\"p\"}),(0,t.jsx)(e.mi,{children:\"e\"}),(0,t.jsx)(e.mi,{children:\"r\"}),(0,t.jsx)(e.mi,{children:\"A\"}),(0,t.jsx)(e.mi,{children:\"P\"}),(0,t.jsx)(e.mi,{children:\"I\"}),(0,t.jsx)(e.mi,{children:\"c\"}),(0,t.jsx)(e.mi,{children:\"a\"}),(0,t.jsx)(e.mi,{children:\"l\"}),(0,t.jsx)(e.mi,{children:\"l\"}),(0,t.jsx)(e.mo,{separator:\"true\",children:\",\"}),(0,t.jsx)(e.mi,{children:\"t\"}),(0,t.jsx)(e.mi,{children:\"h\"}),(0,t.jsx)(e.mi,{children:\"a\"}),(0,t.jsxs)(e.msup,{children:[(0,t.jsx)(e.mi,{children:\"t\"}),(0,t.jsx)(e.mo,{mathvariant:\"normal\",lspace:\"0em\",rspace:\"0em\",children:\"\\u2032\"})]}),(0,t.jsx)(e.mi,{children:\"s\"}),(0,t.jsx)(e.mi,{children:\"a\"}),(0,t.jsx)(e.mi,{children:\"b\"}),(0,t.jsx)(e.mi,{children:\"o\"}),(0,t.jsx)(e.mi,{children:\"u\"}),(0,t.jsx)(e.mi,{children:\"t\"})]}),(0,t.jsx)(e.annotation,{encoding:\"application/x-tex\",children:\"0.37 per API call, that's about \"})]})})}),(0,t.jsx)(e.span,{className:\"katex-html\",\"aria-hidden\":\"true\",children:(0,t.jsxs)(e.span,{className:\"base\",children:[(0,t.jsx)(e.span,{className:\"strut\",style:{height:\"0.9463em\",verticalAlign:\"-0.1944em\"}}),(0,t.jsx)(e.span,{className:\"mord\",children:\"0.37\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"p\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",style:{marginRight:\"0.02778em\"},children:\"er\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"A\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",style:{marginRight:\"0.13889em\"},children:\"P\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",style:{marginRight:\"0.07847em\"},children:\"I\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"c\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"a\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",style:{marginRight:\"0.01968em\"},children:\"ll\"}),(0,t.jsx)(e.span,{className:\"mpunct\",children:\",\"}),(0,t.jsx)(e.span,{className:\"mspace\",style:{marginRight:\"0.1667em\"}}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"t\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"ha\"}),(0,t.jsxs)(e.span,{className:\"mord\",children:[(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"t\"}),(0,t.jsx)(e.span,{className:\"msupsub\",children:(0,t.jsx)(e.span,{className:\"vlist-t\",children:(0,t.jsx)(e.span,{className:\"vlist-r\",children:(0,t.jsx)(e.span,{className:\"vlist\",style:{height:\"0.7519em\"}
2,children:(0,t.jsxs)(e.span,{style:{top:\"-3.063em\",marginRight:\"0.05em\"},children:[(0,t.jsx)(e.span,{className:\"pstrut\",style:{height:\"2.7em\"}}),(0,t.jsx)(e.span,{className:\"sizing reset-size6 size3 mtight\",children:(0,t.jsx)(e.span,{className:\"mord mtight\",children:(0,t.jsx)(e.span,{className:\"mord mtight\",children:\"\\u2032\"})})})]})})})})})]}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"s\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"ab\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"o\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"u\"}),(0,t.jsx)(e.span,{className:\"mord mathnormal\",children:\"t\"})]})})]}),\"100 per prompt, per model. For five models across 50 prompts, the cost of statistically meaningful data is enormous. Most tools don't run anywhere near that many times. They run each prompt once or a few times a day and report the result as though it's stable. It isn't.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"This means the scores you're watching can swing 10 or 15 points between runs without anything changing on your end. That's not a trend. It's noise.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Query Fan-Out Makes It Worse\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"When a user types a prompt into ChatGPT or Perplexity, the AI doesn't search the web with that exact text. It breaks the prompt into several shorter, overlapping searches and runs them in parallel. This process is called \",(0,t.jsx)(e.a,{href:\"https://www.searchenginejournal.com/google-query-fan-out-patent/547983/\",children:\"query fan-out\"}),\", and it's based on a Google patent.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Fan-out actually reduces variability at the search layer. Many different prompts produce the same small set of underlying web searches. A tool tracking 150 prompts might generate only 30 unique fan-out queries after you remove duplicates. That means you're paying to track 150 prompts when the real surface area is a fraction of that.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is useful to understand, but it also reveals the core issue. The prompts themselves are the wrong unit to track. The fan-out queries and the content they return are where the action is.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Where the Money Should Go\"}),`\n`,(0,t.jsx)(e.p,{children:\"If prompt tracking metrics are noisy, expensive, and disconnected from action, what's the alternative?\"}),`\n`,(0,t.jsx)(e.p,{children:\"For website content, the answer is in the pipeline. For the types of queries that matter most to brands (product research, comparisons, recommendations) AI responses involve a RAG process: retrieval-augmented generation. The AI runs web searches, ranks the results, reads page content, and scores which pieces are most relevant to cite. Each of those steps follows known algorithms. Unlike the final response, which varies, the pipeline stages are consistent and measurable.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is where money produces returns. Tools that audit how ready your content is for AI citation, that score your pages against the factors AI actually evaluates, and that show you where your content falls out of the pipeline give you something prompt trackers can't: a specific, measurable action to take and a way to verify the impact.\"}),`\n`,(0,t.jsx)(e.p,{children:\"When prompt tracking is tied to specific projects with defined goals, and focused on surfacing statistically significant changes rather than daily noise, it serves a useful purpose. It becomes the proof layer that confirms the optimization work is paying off. But it can't be the whole strategy. Watching a score isn't a strategy. Changing the score is.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Shift\"}),`\n`,(0,t.jsx)(e.p,{children:\"The AI visibility market is full of tools that got good at measuring something unreliable. More prompts, more frequent runs, more dashboards. The competition is over who can measure the most, not who can help you improve the most.\"}),`\n`,(0,t.jsx)(e.p,{children:\"If you're evaluating where to spend your AEO budget, ask a simple question: does this tool help me understand what to change, or does it just show me a number? If the answer is just a number, you're paying for a window when you need a door.\"})]})}function c(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(m,{...n})}):m(n)}return k(v);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"38:[\"$\",\"$L10\",\"youre-wasting-money-on-prompt-tracking\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$9f\",\"title\":\"You're Wasting Money on Prompt Tracking (Updated for 2026)\",\"date\":\"2026-07-23\",\"image\":\"/images/blog/ai-prompt-tracking-waste-of-money.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"If all you're doing is tracking prompts, you're paying to see data you can't act on. Here's what to focus on instead.\",\"tags\":[\"prompt tracking\",\"AI SEO\",\"GEO\",\"AEO\",\"AI Search Visibility\"],\"published\":true,\"_meta\":{\"filePath\":\"youre-wasting-money-on-prompt-tracking.mdx\",\"fileName\":\"youre-wasting-money-on-prompt-tracking.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"youre-wasting-money-on-prompt-tracking\"},\"body\":\"$a0\",\"locale\":\"en\",\"path\":\"youre-wasting-money-on-prompt-tracking\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"a1:T14be,"])</script>
2<script>self.__next_f.push([1,"When an AI answer cites a YouTube video, does it point people to the part that actually answers their question? Or does it just drop a link to the whole video and leave them to scrub through it?\n\nFor most AI answer engines, the question doesn't even come up. They rarely put a video in the answer at all. But one engine does something the others don't: it links straight to the exact second. We pulled the numbers, and the gap between the leaders is bigger than we expected.\n\n## The finding\n\nWe looked at 5,405 YouTube videos cited by Google AI Overviews (evaluated in this study) and compared them with the videos cited by ChatGPT, Gemini, and Perplexity. Then we checked a simple thing: did the citation link include a timestamp, the kind that jumps you to `2:18` instead of the start of the video?\n\nGoogle AI Overviews attached a timestamp to **44% of the YouTube videos it cited**. The other three engines attached one to basically none.\n\n\u003cFigure\n  src=\"/images/blog/youtube-moment-citations.webp\"\n  alt=\"Bar chart showing the share of cited YouTube videos with a timestamp: ChatGPT 0%, Gemini 0%, Perplexity 0%, and Google AI Overviews 44%.\"\n  caption=\"Google AI Overviews is the only major AI answer engine we tracked that deep-links to a moment inside a YouTube video.\"\n/\u003e\n\nThat Gemini shows the same flat zero is the part that surprised us. Gemini is a Google product. If any assistant were set up to inherit YouTube's own understanding of a video, it would be Gemini. It doesn't. Whatever produces these moment links lives in the Search and AI Overviews pipeline specifically, not in \"Google\" as a whole.\n\nFor anyone managing brand visibility in AI, that's the headline: if a video answers a buyer's question, Google's AI is currently the one surface that will carry people to the right spot in it.\n\n## Why the obvious playbook is wrong\n\nHere's what most teams would guess about which videos get that treatment: the big channels, the ones with millions of subscribers and views. Authority wins, right?\n\nThe data says the opposite. Among the videos Google cited, the ones from smaller channels were a little more likely to get the moment link, not less. Less-viewed videos, too. When Google reaches for a precise moment, it's often reaching past the popular channels and into a specific answer buried inside a smaller creator's longer video.\n\nThe strongest predictor by far was simply length. Long videos got the moment treatment far more often than short ones.\n\n\u003cFigure\n  src=\"/images/blog/youtube-moment-duration.webp\"\n  alt=\"A chart showing moment-citation rate rising with video duration, from about 13% for the shortest videos to about 60% for the longest.\"\n  caption=\"The longer the video, the more likely Google is to deep-link a moment inside it. A short clip largely is the moment; a long one has many.\"\n/\u003e\n\nAnd the moments aren't coming from the chapters creators add to their descriptions. Only about 8% of the timestamps Google cited matched a chapter marker. The other 92% pointed at seconds the creator never labeled. Google is reading into the content of the video itself, not copying the signposts anyone could read.\n\n## What to do this quarter\n\nIf video is part of your or your clients' AI visibility plan, three moves follow from this.\n\n**Stop treating length as the enemy.** The long, thorough video is exactly what gets deep-linked. If the goal is to be the source an AI answer points into, a comprehensive video with a genuinely useful middle beats a tight clip. That runs against the \"cut everything to 60 seconds\" instinct, and for AI discovery it should.\n\n**Don't wait to be the biggest channel.** Google's moment links reach into smaller creators' videos at least as readily as large ones. A focused, expert video from a modest channel can win the moment. You don't need a million subscribers first.\n\n**Make the content legible to machines, not just the description.** Chapters are fine hygiene, but they weren't the lever, and Google mostly isn't citing the moments you'd mark anyway. What matters is that the actual content is clear second by second: a clear spoken answer to a real question, and captions or an accurate transcript so the machine can read it.\n\n## A caveat\n\nThis measures the videos Google already chose to cite. It tells you which of those get the moment treatment; it doesn't prove that length or a smaller channel helps a video get cited in the first place. And only Google does this today. That could change as other engines catch up, which is exactly why it's worth watching now rather than after everyone does it.\n\nThe full write-up, with the method, the equivalence tests, and a downloadable dataset, lives on our research site: [Only one AI surface deep-links to the moment inside a YouTube video](https://research.spyglasses.io/articles/youtube-moment-citations).\n\n## See what AI says about your brand\n\nVideo is one channel in a bigger picture. Before you invest in it, it helps to know whether AI answers surface your brand at all, and where they're pulling their sources from. The [Spyglasses AI Visibility Report](/ai-visibility-report) runs your brand across ChatGPT, Gemini, Claude, and Perplexity and shows you what they s
2ay and cite. It's the fastest way to find out if the work you're doing is showing up where buyers now ask their questions."])</script>
2<script>self.__next_f.push([1,"a2:T1cec,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var w=(o,e)=\u003e()=\u003e(e||o((e={exports:{}}).exports,e),e.exports),v=(o,e)=\u003e{for(var n in e)s(o,n,{get:e[n],enumerable:!0})},r=(o,e,n,a)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let i of p(e))!y.call(o,i)\u0026\u0026i!==n\u0026\u0026s(o,i,{get:()=\u003ee[i],enumerable:!(a=m(e,i))||a.enumerable});return o};var f=(o,e,n)=\u003e(n=o!=null?u(g(o)):{},r(e||!o||!o.__esModule?s(n,\"default\",{value:o,enumerable:!0}):n,o)),b=o=\u003er(s({},\"__esModule\",{value:!0}),o);var l=w((T,h)=\u003e{h.exports=_jsx_runtime});var A={};v(A,{default:()=\u003ec});var t=f(l());function d(o){let e={a:\"a\",code:\"code\",h2:\"h2\",p:\"p\",strong:\"strong\",...o.components},{Figure:n}=e;return n||k(\"Figure\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"When an AI answer cites a YouTube video, does it point people to the part that actually answers their question? Or does it just drop a link to the whole video and leave them to scrub through it?\"}),`\n`,(0,t.jsx)(e.p,{children:\"For most AI answer engines, the question doesn't even come up. They rarely put a video in the answer at all. But one engine does something the others don't: it links straight to the exact second. We pulled the numbers, and the gap between the leaders is bigger than we expected.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The finding\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"We looked at 5,405 YouTube videos cited by Google AI Overviews (evaluated in this study) and compared them with the videos cited by ChatGPT, Gemini, and Perplexity. Then we checked a simple thing: did the citation link include a timestamp, the kind that jumps you to \",(0,t.jsx)(e.code,{children:\"2:18\"}),\" instead of the start of the video?\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Google AI Overviews attached a timestamp to \",(0,t.jsx)(e.strong,{children:\"44% of the YouTube videos it cited\"}),\". The other three engines attached one to basically none.\"]}),`\n`,(0,t.jsx)(n,{src:\"/images/blog/youtube-moment-citations.webp\",alt:\"Bar chart showing the share of cited YouTube videos with a timestamp: ChatGPT 0%, Gemini 0%, Perplexity 0%, and Google AI Overviews 44%.\",caption:\"Google AI Overviews is the only major AI answer engine we tracked that deep-links to a moment inside a YouTube video.\"}),`\n`,(0,t.jsx)(e.p,{children:`That Gemini shows the same flat zero is the part that surprised us. Gemini is a Google product. If any assistant were set up to inherit YouTube's own understanding of a video, it would be Gemini. It doesn't. Whatever produces these moment links lives in the Search and AI Overviews pipeline specifically, not in \"Google\" as a whole.`}),`\n`,(0,t.jsx)(e.p,{children:\"For anyone managing brand visibility in AI, that's the headline: if a video answers a buyer's question, Google's AI is currently the one surface that will carry people to the right spot in it.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why the obvious playbook is wrong\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's what most teams would guess about which videos get that treatment: the big channels, the ones with millions of subscribers and views. Authority wins, right?\"}),`\n`,(0,t.jsx)(e.p,{children:\"The data says the opposite. Among the videos Google cited, the ones from smaller channels were a little more likely to get the moment link, not less. Less-viewed videos, too. When Google reaches for a precise moment, it's often reaching past the popular channels and into a specific answer buried inside a smaller creator's longer video.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The strongest predictor by far was simply length. Long videos got the moment treatment far more often than short ones.\"}),`\n`,(0,t.jsx)(n,{src:\"/images/blog/youtube-moment-duration.webp\",alt:\"A chart showing moment-citation rate rising with video duration, from about 13% for the shortest videos to about 60% for the longest.\",caption:\"The longer the video, the more likely Google is to deep-link a moment inside it. A short clip largely is the moment; a long one has many.\"}),`\n`,(0,t.jsx)(e.p,{children:\"And the moments aren't coming from the chapters creators add to their descriptions. Only about 8% of the timestamps Google cited matched a chapter marker. The other 92% pointed at seconds the creator never labeled. Google is reading into the content of the video itself, not copying the signposts anyone could read.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What to do this quarter\"}),`\n`,(0,t.jsx)(e.p,{children:\"If video is part of your or your clients' AI visibility plan, three moves follow from this.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Stop treating length as the enemy.\"}),' The long, thorough video is exactly what gets deep-linked. If the goal is to be the source an AI answer points into, a comprehensive video with a genuinely useful middle beats a tight clip. That runs against the \"cut everything to 60 seconds\" instinct, and for AI discovery it should.']}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Don't wait to be the biggest channel.\"}),\" Google's moment links reach into smaller creators' videos at least as readily as large ones. A focused, expert video from a modest channel can win the moment. You don't need a million subscribers first.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Make the content legible to machines, not just the description.\"}),\" Chapters are fine hygiene, but they weren't the lever, and Google mostly isn't citing the moments you'd mark anyway. What matters is that the actual content is clear second by second: a clear spoken answer to a real question, and captions or an accurate transcript so the machine can read it.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"A caveat\"}),`\n`,(0,t.jsx)(e.p,{children:\"This measures the videos Google already chose to cite. It tells you which of those get the moment treatment; it doesn't prove that length or a smaller channel helps a video get cited in the first place. And only Google does this today. That could change as other engines catch up, which is exactly why it's worth watching now rather than after everyone does it.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The full write-up, with the method, the equivalence tests, and a downloadable dataset, lives on our research site: \",(0,t.jsx)(e.a,{href:\"https://research.spyglasses.io/articles/youtube-moment-citations\",children:\"Only one AI surface deep-links to the moment inside a YouTube video\"}),\".\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"See what AI says about your brand\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Video is one channel in a bigger picture. Before you invest in it, it helps to know whether AI answers surface your brand at all, and where they're pulling their sources from. The \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Spyglasses AI Visibility Report\"}),\" runs your brand across ChatGPT, Gemini, Claude, and Perplexity and shows you what they s
2ay and cite. It's the fastest way to find out if the work you're doing is showing up where buyers now ask their questions.\"]})]})}function c(o={}){let{wrapper:e}=o.components||{};return e?(0,t.jsx)(e,{...o,children:(0,t.jsx)(d,{...o})}):d(o)}function k(o,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+o+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return b(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"39:[\"$\",\"$L10\",\"only-google-cites-youtube-moments\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$a1\",\"title\":\"Only One AI Answer Engine Points People to the Right Moment in Your Video\",\"date\":\"2026-07-13\",\"image\":\"/images/blog/only-google-cites-youtube-moments.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"A new Spyglasses study found that Google AI Overviews deep-links to the exact second in a YouTube video 44% of the time. ChatGPT, Gemini, and Perplexity never do. Here's what that means for video in your AI visibility plan.\",\"tags\":[\"YouTube\",\"Google AI Overviews\",\"video SEO\",\"AI visibility\",\"citations\",\"PR\"],\"published\":true,\"faq\":[{\"question\":\"Which AI answer engines cite YouTube videos with a timestamp?\",\"answer\":\"In our study, only Google AI Overviews did. It attached a timestamp to 44% of the YouTube videos it cited, sending users to a specific moment. Gemini, ChatGPT, and Perplexity attached a timestamp to essentially none of the YouTube videos they cited.\"},{\"question\":\"Does having a big YouTube channel help you get cited by AI?\",\"answer\":\"Not for these moment citations. Among videos Google already cited, ones from smaller channels were slightly more likely to get the deep-link treatment, not less. Depth and relevance mattered more than audience size for pointing to a specific moment.\"},{\"question\":\"Do YouTube chapters help AI cite the right moment?\",\"answer\":\"They look like they help until you account for video length, and then the effect fades. Only about 8% of the moments Google cited lined up with a chapter marker in the video description. Google appears to derive the moment from the video's actual content, not from the chapters a creator sets.\"},{\"question\":\"What should I do to make my videos more useful to AI answers?\",\"answer\":\"Publish thorough, well-structured videos and don't be afraid of length; longer videos got the moment treatment far more often. Make sure captions or accurate transcripts are available so machines can read the content. Track whether AI answers actually surface your brand with a tool like the Spyglasses AI Visibility Report.\"}],\"_meta\":{\"filePath\":\"only-google-cites-youtube-moments.mdx\",\"fileName\":\"only-google-cites-youtube-moments.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"only-google-cites-youtube-moments\"},\"body\":\"$a2\",\"locale\":\"en\",\"path\":\"only-google-cites-youtube-moments\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"a3:T2cbf,"])</script>
2<script>self.__next_f.push([1,"Before an AI model answers a single question about your brand, it's already made up its mind about which websites it trusts. That call was made during training, long before anyone typed a prompt. And it was shaped, in large part, by a free public dataset most marketers have never heard of: Common Crawl.\n\nThis matters for anyone who runs earned media. A placement on a site the AI treats as authoritative can echo through thousands of AI answers. A placement on a site the AI barely notices can be invisible in that same channel. The difference isn't about traffic or old-school prestige. It's about where a site sits in the structure of the web itself.\n\nThe good news? That structure is measurable. There's a number that predicts it well, and you can look yours up in seconds with our free [Common Crawl Rank Checker](/common-crawl-rank-checker).\n\n## Key Takeaways\n\n- Common Crawl is one of the largest sources of AI training data. Some studies estimate GPT-3 drew over 80% of its training tokens from filtered Common Crawl content.\n- Common Crawl uses a metric called Harmonic Centrality to decide which sites to crawl most often. High-centrality sites show up more in the data models learn from.\n- Harmonic Centrality is a strong proxy for how authoritative an AI model treats a site, because it rewards being deeply connected in the web, not just heavily linked.\n- For PR and marketing leaders, this adds a new dimension to earned media value. The authority of the host site in the web graph shapes how much an AI-era placement is worth.\n- You can improve your standing over time. Wikidata, Wikipedia, and earned links with brand mentions from highly authoritative sites all move the needle.\n\n## What Common Crawl Actually Is\n\nCommon Crawl is a nonprofit that's been crawling the public web since 2008. Every month it visits billions of pages, saves what it finds, and publishes the whole thing as a free, open dataset. Anyone can download it. Researchers use it. Startups use it. And the companies building large language models lean on it hard.\n\nHow hard? When OpenAI trained GPT-3, filtered Common Crawl data made up most of the training tokens. Other major models use it heavily too. When people say an AI model was \"trained on the internet,\" Common Crawl is a big chunk of what they mean by \"the internet.\"\n\nThe crawler that does this work is called CCBot. If you've ever wondered whether it visits your site, you can read its full profile in our [bot directory entry for CCBot](/bots/ccbot). It's one of the most important bots on the web that almost nobody outside the field talks about.\n\nHere's the part that matters for you. Common Crawl can't crawl every page every month; the web's just too big. So it has to choose. And how it chooses is where authority comes in.\n\n## The Number That Decides Who Gets Crawled\n\nTo decide what to crawl, Common Crawl builds a map of the web called a web graph. Every website is a dot. Every link between sites is a line connecting two dots. Do that across the whole web and you get a giant network with hundreds of millions of dots.\n\nFrom this map, Common Crawl calculates a score for each site called Harmonic Centrality. The math is involved, but the idea is simple. Harmonic Centrality measures how central a site is in the web's neighborhood. It asks: starting from everywhere else on the web, how many short paths lead to your door?\n\nThink of it like a city. A shop on the main square, one you can reach quickly from every direction, is central. A shop down a dead-end road on the edge of town isn't, even if a lot of people happen to live on that one road. Harmonic Centrality rewards the shop on the square.\n\nThere's a second, related number you'll also see: PageRank. It's the same idea Google made famous. PageRank measures authority based on the quality and quantity of links pointing at you. It's useful, but it has a weakness. Because it c
2ounts links, it can be inflated by link farms and other tricks. Harmonic Centrality is harder to fake, because it depends on your position in the whole network, not just how many arrows point your way. That's why it's such a trustworthy signal of real authority.\n\n\u003cFigure\n  src=\"/images/blog/common-crawl-rank-diagram.webp\"\n  alt=\"A conceptual subway map of the web. Colored transit lines converge on a glowing downtown 'Core' where well-connected sites cluster, while sparse lines trail off to faint 'Peripheral sites' at the edges. One 'Highlighted site' station sits near the center, close to downtown. A legend explains that Harmonic Centrality is like a station's position on the map and its distance to downtown, while PageRank is the number of arrows pointing in to a station.\"\n  caption=\"Think of the web as a transit map. Harmonic Centrality is how close your station sits to downtown; PageRank is how many lines point into it. Central stations get reached from everywhere.\"\n/\u003e\n\nNow connect the two ideas. 
2Common Crawl crawls high-centrality sites more often. Those sites therefore show up more in the data AI models train on. The more a model sees a site during training, the more familiar and authoritative that site feels when the model later writes an answer. Central sites get a head start that compounds.\n\nIt's no coincidence that the sites at the very top of the web graph, like Wikipedia, YouTube, and major news outlets, are also the sites AI models cite most often. They were central, so they got crawled, so they got learned, so they're trusted.\n\n## Why This Belongs on a PR Leader's Radar\n\nFor years, the value of an earned media placement came down to a few familiar things. Reach. Domain authority. The prestige of the outlet. Whether the coverage was positive. Those still matter, and they always will.\n\nBut AI has added a new variable, and it's one traditional coverage reports miss completely. When a customer asks an AI assistant for recommendations, the assistant leans on what it learned during training and on what it can find in real time. Both of those channels favor sites that are central in the web graph. A story about your brand on a highly central site doesn't just reach that site's readers. It becomes part of the raw material AI uses to describe your category.\n\nThat reframes a question every PR leader should be asking. Not just \"did we get the placement?\" but \"is the site we got it on one that AI treats as authoritative?\" Two placements that look identical on a coverage report can carry very different value in the AI channel, purely because of where each host site sits in the web graph.\n\nThis is exactly the gap our [AI Placement Value Score](/ai-placement-value-score) was built to close. It combines a site's organic authority, which includes the same Common Crawl PageRank signal we've been talking about, with how accessible the site is to AI crawlers and how much weight it carries in AI training data. Your Common Crawl rank is one of the core inputs. A strong rank tends to lift the placement value of any coverage you earn on that domain.\n\n## How to Improve Your Standing\n\nHere's the encouraging part. Your position in the web graph isn't fixed. It reflects the choices you and your team make over time. You can't buy your way to the center of the web, but you can earn your way there. A few moves matter most.\n\n**Claim and maintain your Wikidata entity.** Wikidata is the structured database behind Wikipedia that feeds knowledge across the web, including into AI systems. An accurate, complete Wikidata entry for your brand connects you to the highly central knowledge core of the web. It's one of the most direct ways to become part of the neighborhood AI already trusts. And if you qualify for a Wikipedia article, that helps even more.\n\n**Chase authority, not volume.** This is the single biggest shift in thinking. Link topology beats link volume. One link from a site that sits deep in the web's core can do more for your Harmonic Centrality than dozens of links from isolated, low-centrality pages. One story in a major, deeply connected publication outweighs a hundred mentions on sites nobody links to. It's about the quality of your neighborhood, not the number of your links.\n\n**Run earned media that lands real coverage on central sites.** This is where PR and this metric meet head-on. When your earned media lands brand mentions and links on authoritative, well-connected outlets, you're not just reaching their audience. You're strengthening your own position in the web graph, which feeds forward into how AI sees you. Every placement on a central site is a small deposit into your long-term AI authority.\n\n**Be consistent about your brand entity.** Use the same brand name, the same core facts, and consistent structured data across the sites you control and the coverage you earn. Consistency helps both the web graph and AI models connect all your mentions to a single, recognizable entity.\n\nNone of this happens overnight. Centrality builds over months and quarters, the same way reputation does. But that's also why it's defensible. A competitor can't buy their way past it in a week.\n\n## See Where You Stand\n\nYou don't have to guess where your brand sits in all this. Our free [Common Crawl Rank Checker](/common-crawl-rank-checker) looks up any domain in the Common Crawl web graph and shows you three things in seconds: where you land as a percentile of the whole web, your Harmonic Centrality and PageRank, and a plain-language authority tier from Elite to Emerging. It also runs a full AI Placement Value Score, so you can see not just where you stand, but what your standing is worth in the AI channel.\n\nCheck your own domain. Then check the sites where your best coverage has landed. The results will tell you which of your placements are working hardest in the channel that increasingly shapes how buyers find brands. And when you're ready to turn that insight into a plan, a [free Spyglasses account](https://www.spyglasses.io/auth/signup) lets you check any domain and build an earned media strategy around the sites that actually move AI.\n\n## Glossary\n\n### What is Common Crawl?\n\nCommon Crawl is a nonprofit that crawls the public web and releases the results as free, open datasets. Because the data is free and enormous, it's become one of the primary sources of training data for large language models. If an AI model was \"trained on the web,\" Common Crawl is a big part of what that means.\n\n### What is Harmonic Centrality?\n\nHarmonic Centrality is a network science metric that measures how central a node is in a graph. On the web, it measures how easily a website can be reached from all other websites through short link paths. A high score means the site is deeply connected to the rest of the web. It's harder to manipulate than link-count metrics, which makes it a strong signal of real authority.\n\n### What is PageRank?\n\nPageRank is a metric that scores a page's authority based on the number and quality of links pointing to it. It's the algorithm that originally powered Google Search. Common Crawl publishes a PageRank value for domains in its web graph. It's useful, but because it's based on link counts, it can be inflated by artificial linking.\n\n### What is CCBot?\n\nCCBot is the web crawler Common Crawl uses to gather content from the web. When it visits your site, the pages it collects can end up in the datasets that train AI models. You can read its full profile, including how it identifies itself, in our [CCBot directory entry](/bots/ccbot)."])</script>
2<script>self.__next_f.push([1,"a4:T384b,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var g=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),f=(a,e)=\u003e{for(var n in e)i(a,n,{get:e[n],enumerable:!0})},s=(a,e,n,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of w(e))!p.call(a,o)\u0026\u0026o!==n\u0026\u0026i(a,o,{get:()=\u003ee[o],enumerable:!(r=m(e,o))||r.enumerable});return a};var b=(a,e,n)=\u003e(n=a!=null?u(y(a)):{},s(e||!a||!a.__esModule?i(n,\"default\",{value:a,enumerable:!0}):n,a)),k=a=\u003es(i({},\"__esModule\",{value:!0}),a);var l=g((I,h)=\u003e{h.exports=_jsx_runtime});var v={};f(v,{default:()=\u003ec});var t=b(l());function d(a){let e={a:\"a\",h2:\"h2\",h3:\"h3\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...a.components},{Figure:n}=e;return n||C(\"Figure\",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Before an AI model answers a single question about your brand, it's already made up its mind about which websites it trusts. That call was made during training, long before anyone typed a prompt. And it was shaped, in large part, by a free public dataset most marketers have never heard of: Common Crawl.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This matters for anyone who runs earned media. A placement on a site the AI treats as authoritative can echo through thousands of AI answers. A placement on a site the AI barely notices can be invisible in that same channel. The difference isn't about traffic or old-school prestige. It's about where a site sits in the structure of the web itself.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The good news? That structure is measurable. There's a number that predicts it well, and you can look yours up in seconds with our free \",(0,t.jsx)(e.a,{href:\"/common-crawl-rank-checker\",children:\"Common Crawl Rank Checker\"}),\".\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Common Crawl is one of the largest sources of AI training data. Some studies estimate GPT-3 drew over 80% of its training tokens from filtered Common Crawl content.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Common Crawl uses a metric called Harmonic Centrality to decide which sites to crawl most often. High-centrality sites show up more in the data models learn from.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Harmonic Centrality is a strong proxy for how authoritative an AI model treats a site, because it rewards being deeply connected in the web, not just heavily linked.\"}),`\n`,(0,t.jsx)(e.li,{children:\"For PR and marketing leaders, this adds a new dimension to earned media value. The authority of the host site in the web graph shapes how much an AI-era placement is worth.\"}),`\n`,(0,t.jsx)(e.li,{children:\"You can improve your standing over time. Wikidata, Wikipedia, and earned links with brand mentions from highly authoritative sites all move the needle.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"What Common Crawl Actually Is\"}),`\n`,(0,t.jsx)(e.p,{children:\"Common Crawl is a nonprofit that's been crawling the public web since 2008. Every month it visits billions of pages, saves what it finds, and publishes the whole thing as a free, open dataset. Anyone can download it. Researchers use it. Startups use it. And the companies building large language models lean on it hard.\"}),`\n`,(0,t.jsx)(e.p,{children:'How hard? When OpenAI trained GPT-3, filtered Common Crawl data made up most of the training tokens. Other major models use it heavily too. When people say an AI model was \"trained on the internet,\" Common Crawl is a big chunk of what they mean by \"the internet.\"'}),`\n`,(0,t.jsxs)(e.p,{children:[\"The crawler that does this work is called CCBot. If you've ever wondered whether it visits your site, you can read its full profile in our \",(0,t.jsx)(e.a,{href:\"/bots/ccbot\",children:\"bot directory entry for CCBot\"}),\". It's one of the most important bots on the web that almost nobody outside the field talks about.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the part that matters for you. Common Crawl can't crawl every page every month; the web's just too big. So it has to choose. And how it chooses is where authority comes in.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Number That Decides Who Gets Crawled\"}),`\n`,(0,t.jsx)(e.p,{children:\"To decide what to crawl, Common Crawl builds a map of the web called a web graph. Every website is a dot. Every link between sites is a line connecting two dots. Do that across the whole web and you get a giant network with hundreds of millions of dots.\"}),`\n`,(0,t.jsx)(e.p,{children:\"From this map, Common Crawl calculates a score for each site called Harmonic Centrality. The math is involved, but the idea is simple. Harmonic Centrality measures how central a site is in the web's neighborhood. It asks: starting from everywhere else on the web, how many short paths lead to your door?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Think of it like a city. A shop on the main square, one you can reach quickly from every direction, is central. A shop down a dead-end road on the edge of town isn't, even if a lot of people happen to live on that one road. Harmonic Centrality rewards the shop on the square.\"}),`\n`,(0,t.jsx)(e.p,{children:\"There's a second, related number you'll also see: PageRank. It's the same idea Google made famous. PageRank measures authority based on the quality and quantity of links pointing at you. It's useful, but it has a weakness. Because it c
2ounts links, it can be inflated by link farms and other tricks. Harmonic Centrality is harder to fake, because it depends on your position in the whole network, not just how many arrows point your way. That's why it's such a trustworthy signal of real authority.\"}),`\n`,(0,t.jsx)(n,{src:\"/images/blog/common-crawl-rank-diagram.webp\",alt:\"A conceptual subway map of the web. Colored transit lines converge on a glowing downtown 'Core' where well-connected sites cluster, while sparse lines trail off to faint 'Peripheral sites' at the edges. One 'Highlighted site' station sits near the center, close to downtown. A legend explains that Harmonic Centrality is like a station's position on the map and its distance to downtown, while PageRank is the number of arrows pointing in to a station.\",caption:\"Think of the web as a transit map. Harmonic Centrality is how close your station sits to downtown; PageRank is how many lines point into it. Central stations get reached from everywhere.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Now connect the two ideas. 
2Common Crawl crawls high-centrality sites more often. Those sites therefore show up more in the data AI models train on. The more a model sees a site during training, the more familiar and authoritative that site feels when the model later writes an answer. Central sites get a head start that compounds.\"}),`\n`,(0,t.jsx)(e.p,{children:\"It's no coincidence that the sites at the very top of the web graph, like Wikipedia, YouTube, and major news outlets, are also the sites AI models cite most often. They were central, so they got crawled, so they got learned, so they're trusted.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why This Belongs on a PR Leader's Radar\"}),`\n`,(0,t.jsx)(e.p,{children:\"For years, the value of an earned media placement came down to a few familiar things. Reach. Domain authority. The prestige of the outlet. Whether the coverage was positive. Those still matter, and they always will.\"}),`\n`,(0,t.jsx)(e.p,{children:\"But AI has added a new variable, and it's one traditional coverage reports miss completely. When a customer asks an AI assistant for recommendations, the assistant leans on what it learned during training and on what it can find in real time. Both of those channels favor sites that are central in the web graph. A story about your brand on a highly central site doesn't just reach that site's readers. It becomes part of the raw material AI uses to describe your category.\"}),`\n`,(0,t.jsx)(e.p,{children:'That reframes a question every PR leader should be asking. Not just \"did we get the placement?\" but \"is the site we got it on one that AI treats as authoritative?\" Two placements that look identical on a coverage report can carry very different value in the AI channel, purely because of where each host site sits in the web graph.'}),`\n`,(0,t.jsxs)(e.p,{children:[\"This is exactly the gap our \",(0,t.jsx)(e.a,{href:\"/ai-placement-value-score\",children:\"AI Placement Value Score\"}),\" was built to close. It combines a site's organic authority, which includes the same Common Crawl PageRank signal we've been talking about, with how accessible the site is to AI crawlers and how much weight it carries in AI training data. Your Common Crawl rank is one of the core inputs. A strong rank tends to lift the placement value of any coverage you earn on that domain.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"How to Improve Your Standing\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the encouraging part. Your position in the web graph isn't fixed. It reflects the choices you and your team make over time. You can't buy your way to the center of the web, but you can earn your way there. A few moves matter most.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Claim and maintain your Wikidata entity.\"}),\" Wikidata is the structured database behind Wikipedia that feeds knowledge across the web, including into AI systems. An accurate, complete Wikidata entry for your brand connects you to the highly central knowledge core of the web. It's one of the most direct ways to become part of the neighborhood AI already trusts. And if you qualify for a Wikipedia article, that helps even more.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Chase authority, not volume.\"}),\" This is the single biggest shift in thinking. Link topology beats link volume. One link from a site that sits deep in the web's core can do more for your Harmonic Centrality than dozens of links from isolated, low-centrality pages. One story in a major, deeply connected publication outweighs a hundred mentions on sites nobody links to. It's about the quality of your neighborhood, not the number of your links.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Run earned media that lands real coverage on central sites.\"}),\" This is where PR and this metric meet head-on. When your earned media lands brand mentions and links on authoritative, well-connected outlets, you're not just reaching their audience. You're strengthening your own position in the web graph, which feeds forward into how AI sees you. Every placement on a central site is a small deposit into your long-term AI authority.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Be consistent about your brand entity.\"}),\" Use the same brand name, the same core facts, and consistent structured data across the sites you control and the coverage you earn. Consistency helps both the web graph and AI models connect all your mentions to a single, recognizable entity.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"None of this happens overnight. Centrality builds over months and quarters, the same way reputation does. But that's also why it's defensible. A competitor can't buy their way past it in a week.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"See Where You Stand\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"You don't have to guess where your brand sits in all this. Our free \",(0,t.jsx)(e.a,{href:\"/common-crawl-rank-checker\",children:\"Common Crawl Rank Checker\"}),\" looks up any domain in the Common Crawl web graph and shows you three things in seconds: where you land as a percentile of the whole web, your Harmonic Centrality and PageRank, and a plain-language authority tier from Elite to Emerging. It also runs a full AI Placement Value Score, so you can see not just where you stand, but what your standing is worth in the AI channel.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"Check your own domain. Then check the sites where your best coverage has landed. The results will tell you which of your placements are working hardest in the channel that increasingly shapes how buyers find brands. And when you're ready to turn that insight into a plan, a \",(0,t.jsx)(e.a,{href:\"https://www.spyglasses.io/auth/signup\",children:\"free Spyglasses account\"}),\" lets you check any domain and build an earned media strategy around the sites that actually move AI.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Glossary\"}),`\n`,(0,t.jsx)(e.h3,{children:\"What is Common Crawl?\"}),`\n`,(0,t.jsx)(e.p,{children:`Common Crawl is a nonprofit that crawls the public web and releases the results as free, open datasets. Because the data is free and enormous, it's become one of the primary sources of training data for large language models. If an AI model was \"trained on the web,\" Common Crawl is a big part of what that means.`}),`\n`,(0,t.jsx)(e.h3,{children:\"What is Harmonic Centrality?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Harmonic Centrality is a network science metric that measures how central a node is in a graph. On the web, it measures how easily a website can be reached from all other websites through short link paths. A high score means the site is deeply connected to the rest of the web. It's harder to manipulate than link-count metrics, which makes it a strong signal of real authority.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"What is PageRank?\"}),`\n`,(0,t.jsx)(e.p,{children:\"PageRank is a metric that scores a page's authority based on the number and quality of links pointing to it. It's the algorithm that originally powered Google Search. Common Crawl publishes a PageRank value for domains in its web graph. It's useful, but because it's based on link counts, it can be inflated by artificial linking.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"What is CCBot?\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"CCBot is the web crawler Common Crawl uses to gather content from the web. When it visits your site, the pages it collects can end up in the datasets that train AI models. You can read its full profile, including how it identifies itself, in our \",(0,t.jsx)(e.a,{href:\"/bots/ccbot\",children:\"CCBot directory entry\"}),\".\"]})]})}function c(a={}){let{wrapper:e}=a.components||{};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(d,{...a})}):d(a)}function C(a,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+a+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return k(v);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"3a:[\"$\",\"$L10\",\"common-crawl-rank-ai-authority\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$a3\",\"title\":\"The Authority Signal AI Learned Before It Ever Heard of Your Brand\",\"date\":\"2026-07-01\",\"image\":\"/images/blog/common-crawl-rank-ai-authority.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Before an AI model ever answers a question about your brand, it's already decided which websites it trusts. That call comes from Common Crawl, and one number predicts it well. Here's what PR and marketing leaders need to know.\",\"tags\":[\"common crawl\",\"AI training data\",\"earned media\",\"harmonic centrality\",\"PageRank\",\"PR\",\"AI visibility\"],\"published\":true,\"faq\":[{\"question\":\"What is Common Crawl?\",\"answer\":\"Common Crawl is a nonprofit that crawls the public web and publishes the results as free, open datasets. It's one of the largest single sources of training data for large language models. GPT-3, for example, drew most of its training tokens from filtered Common Crawl data.\"},{\"question\":\"What is Harmonic Centrality?\",\"answer\":\"Harmonic Centrality measures how central a website is in the web's link graph, based on how easily it can be reached from every other site through short link paths. Sites that many well-connected pages can reach in just a few hops score high. It's harder to game than raw link counts, which makes it a strong proxy for real authority.\"},{\"question\":\"How can I improve my domain's Common Crawl rank?\",\"answer\":\"Earn links and brand mentions from sites that are themselves deeply connected in the web's core, like major publishers and institutions. Link topology beats link volume. Keep an accurate Wikidata entity and Wikipedia presence, and run earned media that lands authoritative coverage. These signals compound over months, not days.\"},{\"question\":\"Does a high Common Crawl rank guarantee AI will cite me?\",\"answer\":\"No. A strong rank improves the odds that AI models treat your domain as authoritative, but real-time citation also depends on whether your pages are accessible to AI crawlers and whether your content answers the question. Rank is one important input, not the whole picture.\"}],\"_meta\":{\"filePath\":\"common-crawl-rank-ai-authority.mdx\",\"fileName\":\"common-crawl-rank-ai-authority.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"common-crawl-rank-ai-authority\"},\"body\":\"$a4\",\"locale\":\"en\",\"path\":\"common-crawl-rank-ai-authority\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"a5:T2109,"])</script>
2<script>self.__next_f.push([1,"To optimize content for AI citations, write it the way ChatGPT actually reads a page: lead with a clear, self-contained answer, break the page into short passages of about 200 tokens, and put the specific facts, names, numbers, and dates up top where they match the question. That is the core 2026 SEO strategy for earning AI answers, and you can verify a draft against it before you publish using AI visibility data from the Spyglasses AI Search Citation Optimizer.\n\nChatGPT doesn't answer research questions from memory. It searches the web, ranks the results, reads the top pages, splits each one into ~200-token passages, scores them, and builds its answer from the passages it trusts. Your page has to clear that whole gauntlet. This guide walks you through eight steps to write a release that does, then shows you how to check the draft before you hit publish.\n\n## Key takeaways\n\n- **ChatGPT cites passages, not whole pages.** It reads in windows of about 200 tokens and lifts the strongest one.\n- **The passage it lifts leads with the answer.** It's packed with specific names, numbers, and dates. Vague or buried copy gets passed over.\n- **No search, no citation.** ChatGPT answers broad how-to questions from memory. The \"best of,\" \"vs,\" product-comparison, and category-research questions send it searching, and those are the ones you can win.\n- **Check it before you publish.** The Spyglasses AI Search Citation Optimizer scores a draft against the eight gates, marks each green, yellow, or red, and rewrites the weak spots, with unlimited re-scoring.\n\n## Contents\n\n- [Why ChatGPT cites some pages and skips others](#why-chatgpt-cites-some-pages-and-skips-others)\n- [Eight steps to a citable press release](#eight-steps-to-a-citable-press-release)\n- [The catch most guides skip](#the-catch-most-guides-skip)\n- [Test the draft before you publish](#test-the-draft-before-you-publish)\n- [Frequently asked questions](#frequently-asked-questions)\n\n## Why ChatGPT cites some pages and skips others\n\nChatGPT cites a page when that page ranks in the top results, breaks into clean ~200-token passages, matches what the question means, and leads with its answer. For research questions it uses retrieval-augmented generation: it runs a search, ranks the results, grabs the top pages, splits each into passages of roughly 200 tokens, scores those passages for relevance, reads the strongest one closely, then builds its answer from the passages it trusts. Every step is a filter.\n\nMost of those steps follow published, repeatable rules, so you can write for them instead of guessing. A release that ranks in the top 30, chunks into clean passages, and leads with its answer has a real shot at getting quoted. One that buries the news under adjectives doesn't.\n\nYour single best passage does the heavy lifting. Your strongest lines have to beat the other pages competing for the same spot, not just sit on your page.\n\n## Eight steps to a citable press release\n\n![A diagram of the eight gates ChatGPT runs between a question and a citation](/images/blog/the-8-chatgpt-citation-gates.webp)\n\nWork through these in order. Each one targets a specific gate in the pipeline.\n\n1. **Put the news and the keyword in the headline.** ChatGPT reads the headline first, so lead with the company, what actually happened, and the exact phrase someone would search. Save the clever wordplay for somewhere else.\n2. **Front-load the lead.** Your first sentence needs to stand on its own: who did what, when, where, and why, with the company named right there. ChatGPT lifts the top passage, so the whole claim belongs in the opening paragraph, not buried three down.\n3. **Add three to five Qu
2ick Facts.** A short \"Quick Facts\" or \"Key Takeaways\" block hands the model clean, liftable lines. Keep it to one self-contained fact per bullet, each with a number, a date, or a specific name.\n4. **Make every quote count.** Swap \"we're thrilled\" for a quote that says something concrete and names the company. A definite quote can drop straight into an answer. An excited one can't.\n5. **Keep your boilerplate consistent.** Your \"About\" paragraph should define the company in its first sentence: what it is, what it does, who it's for, and where it operates. Use the same sentence every time, so the model keeps seeing the same description and learns to trust it.\n6. **Use real data, not adjectives.** Numbers, dates, and percentages are citable. \"Market-leading\" and \"best-in-class\" aren't, and they get skipped. If you can't back up a superlative, cut it, and name the partners, customers, figures, and dates instead.\n7. **Keep sentences short and skip the em dashes.** Aim for eight to fifteen words, in active voice. Short passages chunk cleanly. Long, unbroken blocks get split mid-thought, and a fragment reads as out of context.\n8. **Add structured data.** Drop NewsArticle and Organization schema onto the page, plus FAQPage schema if you've got a Q\u0026A section. It won't guarantee a citation, but it helps machines understand what your page is about.\n\n## The catch most guides skip\n\n**The question has to trigger a search.** ChatGPT only cites a source when it actually goes looking for one. Plenty of questions, especially broad how-to ones, it answers straight from memory, with no search and no citation. When that happens, there's no citation to win, no matter how good your release is.\n\nThe releases that get cited show up on questions where ChatGPT needs current or specific information: product comparisons, \"best of\" and \"vs\" searches, category research, and news about what's new. So do both. Write the release to be citable, and point it at the real questions your buyers ask, not just generic how-to phrasing.\n\n## Test the draft before you publish\n\nYou don't have to guess whether a draft clears these bars. The Spyglasses AI Search Citation Optimizer scores it against the eight gates ChatGPT runs between a question and a citation. It marks each gate green, yellow, or red, tells you what to fix, and rewrites the weak passages for you, with unlimited re-scoring until the draft's ready. Run it on the Spyglasses site, or as an MCP connector right inside AI assistants like Claude Cowork, Claude Code, and OpenAI Codex.\n\nIt comes down to this: stop publishing releases and hoping AI notices. Write for the pipeline, test the draft, and ship the version that clears the gates.\n\n## Frequently asked questions\n\n### How do I optimize content for AI citations?\n\nWrite it the way ChatGPT reads a page. Lead with a clear, self-contained answer in the first sentence or tw
2o, pack it with specific names, numbers, and dates, break the page into clean ~200-token passages, and add Article or NewsArticle plus FAQPage schema. Then point the page at questions ChatGPT actually searches for, like \"best of,\" \"vs,\" and product comparisons.\n\n### Why does ChatGPT ignore some press releases?\n\nUsually because the release buries its news, reads like vague marketing copy, or targets a question ChatGPT just answers from memory. No search means no citation. It can also rank too low to make it into the pages ChatGPT fetches and reranks.\n\n### How long should a citable press release be?\n\nLong enough to state the facts, short enough to stay tight. Lead with the key claim, then back it up. Wire services often cap releases around 1,500 words, which is plenty of room.\n\n### What's the best way to check a release before publishing?\n\nScore it against the retrieval pipeline. The Spyglasses AI Search Citation Optimizer flags each of the eight gates and rewrites the weak passages, so you can fix the problems before the release goes out.\n\n### Does structured data help AI cite a press release?\n\nIt helps machines parse your page, which supports retrieval. Add NewsArticle and Organization schema, plus FAQPage schema if you've got a Q\u0026A section. Think of it as a helpful nudge, not a guarantee.\n\n## Why this matters\n\nMost brands publish into AI search blind. They can't see which questions trigger a search, which passages get lifted, or why a competitor gets cited when they don't. Spyglasses is an AI visibility platform that closes that gap. It scores and optimizes your content for the same algorithms AI uses to find, evaluate, and cite web pages, then turns what it learns into a 2026 content strategy you can act on. Score a draft against the eight gates, fix the weak passages, and ship the version ChatGPT can quote. Learn more at [spyglasses.io](https://www.spyglasses.io)."])</script>
2<script>self.__next_f.push([1,"a6:T2d84,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var m=(s,e)=\u003e()=\u003e(e||s((e={exports:{}}).exports,e),e.exports),y=(s,e)=\u003e{for(var a in e)i(s,a,{get:e[a],enumerable:!0})},o=(s,e,a,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of u(e))!f.call(s,n)\u0026\u0026n!==a\u0026\u0026i(s,n,{get:()=\u003ee[n],enumerable:!(r=g(e,n))||r.enumerable});return s};var b=(s,e,a)=\u003e(a=s!=null?p(w(s)):{},o(e||!s||!s.__esModule?i(a,\"default\",{value:s,enumerable:!0}):a,s)),k=s=\u003eo(i({},\"__esModule\",{value:!0}),s);var c=m((C,h)=\u003e{h.exports=_jsx_runtime});var T={};y(T,{default:()=\u003ed});var t=b(c());function l(s){let e={a:\"a\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",ul:\"ul\",...s.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"To optimize content for AI citations, write it the way ChatGPT actually reads a page: lead with a clear, self-contained answer, break the page into short passages of about 200 tokens, and put the specific facts, names, numbers, and dates up top where they match the question. That is the core 2026 SEO strategy for earning AI answers, and you can verify a draft against it before you publish using AI visibility data from the Spyglasses AI Search Citation Optimizer.\"}),`\n`,(0,t.jsx)(e.p,{children:\"ChatGPT doesn't answer research questions from memory. It searches the web, ranks the results, reads the top pages, splits each one into ~200-token passages, scores them, and builds its answer from the passages it trusts. Your page has to clear that whole gauntlet. This guide walks you through eight steps to write a release that does, then shows you how to check the draft before you hit publish.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Key takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"ChatGPT cites passages, not whole pages.\"}),\" It reads in windows of about 200 tokens and lifts the strongest one.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"The passage it lifts leads with the answer.\"}),\" It's packed with specific names, numbers, and dates. Vague or buried copy gets passed over.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"No search, no citation.\"}),' ChatGPT answers broad how-to questions from memory. The \"best of,\" \"vs,\" product-comparison, and category-research questions send it searching, and those are the ones you can win.']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Check it before you publish.\"}),\" The Spyglasses AI Search Citation Optimizer scores a draft against the eight gates, marks each green, yellow, or red, and rewrites the weak spots, with unlimited re-scoring.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Contents\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:(0,t.jsx)(e.a,{href:\"#why-chatgpt-cites-some-pages-and-skips-others\",children:\"Why ChatGPT cites some pages and skips others\"})}),`\n`,(0,t.jsx)(e.li,{children:(0,t.jsx)(e.a,{href:\"#eight-steps-to-a-citable-press-release\",children:\"Eight steps to a citable press release\"})}),`\n`,(0,t.jsx)(e.li,{children:(0,t.jsx)(e.a,{href:\"#the-catch-most-guides-skip\",children:\"The catch most guides skip\"})}),`\n`,(0,t.jsx)(e.li,{children:(0,t.jsx)(e.a,{href:\"#test-the-draft-before-you-publish\",children:\"Test the draft before you publish\"})}),`\n`,(0,t.jsx)(e.li,{children:(0,t.jsx)(e.a,{href:\"#frequently-asked-questions\",children:\"Frequently asked questions\"})}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Why ChatGPT cites some pages and skips others\"}),`\n`,(0,t.jsx)(e.p,{children:\"ChatGPT cites a page when that page ranks in the top results, breaks into clean ~200-token passages, matches what the question means, and leads with its answer. For research questions it uses retrieval-augmented generation: it runs a search, ranks the results, grabs the top pages, splits each into passages of roughly 200 tokens, scores those passages for relevance, reads the strongest one closely, then builds its answer from the passages it trusts. Every step is a filter.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most of those steps follow published, repeatable rules, so you can write for them instead of guessing. A release that ranks in the top 30, chunks into clean passages, and leads with its answer has a real shot at getting quoted. One that bur
2ies the news under adjectives doesn't.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your single best passage does the heavy lifting. Your strongest lines have to beat the other pages competing for the same spot, not just sit on your page.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Eight steps to a citable press release\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/the-8-chatgpt-citation-gates.webp\",alt:\"A diagram of the eight gates ChatGPT runs between a question and a citation\"})}),`\n`,(0,t.jsx)(e.p,{children:\"Work through these in order. Each one targets a specific gate in the pipeline.\"}),`\n`,(0,t.jsxs)(e.ol,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Put the news and the keyword in the headline.\"}),\" ChatGPT reads the headline first, so lead with the company, what actually happened, and the exact phrase someone would search. Save the clever wordplay for somewhere else.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Front-load the lead.\"}),\" Your first sentence needs to stand on its own: who did what, when, where, and why, with the company named right there. ChatGPT lifts the top passage, so the whole claim belongs in the opening paragraph, not buried three down.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Add three to five Qu
2ick Facts.\"}),' A short \"Quick Facts\" or \"Key Takeaways\" block hands the model clean, liftable lines. Keep it to one self-contained fact per bullet, each with a number, a date, or a specific name.']}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Make every quote count.\"}),` Swap \"we're thrilled\" for a quote that says something concrete and names the company. A definite quote can drop straight into an answer. An excited one can't.`]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Keep your boilerplate consistent.\"}),` Your \"About\" paragraph should define the company in its first sentence: what it is, what it does, who it's for, and where it operates. Use the same sentence every time, so the model keeps seeing the same description and learns to trust it.`]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Use real data, not adjectives.\"}),` Numbers, dates, and percentages are citable. \"Market-leading\" and \"best-in-class\" aren't, and they get skipped. If you can't back up a superlative, cut it, and name the partners, customers, figures, and dates instead.`]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Keep sentences short and skip the em dashes.\"}),\" Aim for eight to fifteen words, in active voice. Short passages chunk cleanly. Long, unbroken blocks get split mid-thought, and a fragment reads as out of context.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Add structured data.\"}),\" Drop NewsArticle and Organization schema onto the page, plus FAQPage schema if you've got a Q\u0026A section. It won't guarantee a citation, but it helps machines understand what your page is about.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"The catch most guides skip\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The question has to trigger a search.\"}),\" ChatGPT only cites a source when it actually goes looking for one. Plenty of questions, especially broad how-to ones, it answers straight from memory, with no search and no citation. When that happens, there's no citation to win, no matter how good your release is.\"]}),`\n`,(0,t.jsx)(e.p,{children:`The releases that get cited show up on questions where ChatGPT needs current or specific information: product comparisons, \"best of\" and \"vs\" searches, category research, and news about what's new. So do both. Write the release to be citable, and point it at the real questions your buyers ask, not just generic how-to phrasing.`}),`\n`,(0,t.jsx)(e.h2,{children:\"Test the draft before you publish\"}),`\n`,(0,t.jsx)(e.p,{children:\"You don't have to guess whether a draft clears these bars. The Spyglasses AI Search Citation Optimizer scores it against the eight gates ChatGPT runs between a question and a citation. It marks each gate green, yellow, or red, tells you what to fix, and rewrites the weak passages for you, with unlimited re-scoring until the draft's ready. Run it on the Spyglasses site, or as an MCP connector right inside AI assistants like Claude Cowork, Claude Code, and OpenAI Codex.\"}),`\n`,(0,t.jsx)(e.p,{children:\"It comes down to this: stop publishing releases and hoping AI notices. Write for the pipeline, test the draft, and ship the version that clears the gates.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Frequently asked questions\"}),`\n`,(0,t.jsx)(e.h3,{children:\"How do I optimize content for AI citations?\"}),`\n`,(0,t.jsx)(e.p,{children:'Write it the way ChatGPT reads a page. Lead with a clear, self-contained answer in the first sentence or tw
2o, pack it with specific names, numbers, and dates, break the page into clean ~200-token passages, and add Article or NewsArticle plus FAQPage schema. Then point the page at questions ChatGPT actually searches for, like \"best of,\" \"vs,\" and product comparisons.'}),`\n`,(0,t.jsx)(e.h3,{children:\"Why does ChatGPT ignore some press releases?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Usually because the release buries its news, reads like vague marketing copy, or targets a question ChatGPT just answers from memory. No search means no citation. It can also rank too low to make it into the pages ChatGPT fetches and reranks.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"How long should a citable press release be?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Long enough to state the facts, short enough to stay tight. Lead with the key claim, then back it up. Wire services often cap releases around 1,500 words, which is plenty of room.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"What's the best way to check a release before publishing?\"}),`\n`,(0,t.jsx)(e.p,{children:\"Score it against the retrieval pipeline. The Spyglasses AI Search Citation Optimizer flags each of the eight gates and rewrites the weak passages, so you can fix the problems before the release goes out.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Does structured data help AI cite a press release?\"}),`\n`,(0,t.jsx)(e.p,{children:\"It helps machines parse your page, which supports retrieval. Add NewsArticle and Organization schema, plus FAQPage schema if you've got a Q\u0026A section. Think of it as a helpful nudge, not a guarantee.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why this matters\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Most brands publish into AI search blind. They can't see which questions trigger a search, which passages get lifted, or why a competitor gets cited when they don't. Spyglasses is an AI visibility platform that closes that gap. It scores and optimizes your content for the same algorithms AI uses to find, evaluate, and cite web pages, then turns what it learns into a 2026 content strategy you can act on. Score a draft against the eight gates, fix the weak passages, and ship the version ChatGPT can quote. Learn more at \",(0,t.jsx)(e.a,{href:\"https://www.spyglasses.io\",children:\"spyglasses.io\"}),\".\"]})]})}function d(s={}){let{wrapper:e}=s.components||{};return e?(0,t.jsx)(e,{...s,children:(0,t.jsx)(l,{...s})}):l(s)}return k(T);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"3b:[\"$\",\"$L10\",\"how-to-write-a-press-release-chatgpt-will-cite\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$a5\",\"title\":\"How to Write a Press Release ChatGPT Will Cite (2026 Guide)\",\"date\":\"2026-06-29\",\"image\":\"/images/blog/how-to-write-a-press-release-chatgpt-will-cite.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Use AI visibility data to optimize content for AI citations: the 8 gates ChatGPT runs before quoting a page, plus how to test a draft pre-publish.\",\"tags\":[\"AI citations\",\"AI search\",\"press release\",\"GEO\",\"AEO\",\"content optimization\",\"ChatGPT\"],\"published\":true,\"faq\":[{\"question\":\"How do I optimize content for AI citations?\",\"answer\":\"Write it the way ChatGPT reads a page. Lead with a clear, self-contained answer in the first sentence or tw
2o, pack it with specific names, numbers, and dates, break the page into clean ~200-token passages, and add Article or NewsArticle plus FAQPage schema. Then point the page at questions ChatGPT actually searches for, like 'best of,' 'vs,' and product comparisons.\"},{\"question\":\"Why does ChatGPT ignore some press releases?\",\"answer\":\"Usually because the release buries its news, reads like vague marketing copy, or targets a question ChatGPT just answers from memory. No search means no citation. It can also rank too low to make it into the pages ChatGPT fetches and reranks.\"},{\"question\":\"How long should a citable press release be?\",\"answer\":\"Long enough to state the facts, short enough to stay tight. Lead with the key claim, then back it up. Wire services often cap releases around 1,500 words, which is plenty of room.\"},{\"question\":\"What's the best way to check a release before publishing?\",\"answer\":\"Score it against the retrieval pipeline. The Spyglasses AI Search Citation Optimizer flags each of the eight gates and rewrites the weak passages, so you can fix the problems before the release goes out.\"},{\"question\":\"Does structured data help AI cite a press release?\",\"answer\":\"It helps machines parse your page, which supports retrieval. Add NewsArticle and Organization schema, plus FAQPage schema if you've got a Q\u0026A section. Think of it as a helpful nudge, not a guarantee.\"}],\"_meta\":{\"filePath\":\"how-to-write-a-press-release-chatgpt-will-cite.mdx\",\"fileName\":\"how-to-write-a-press-release-chatgpt-will-cite.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-write-a-press-release-chatgpt-will-cite\"},\"body\":\"$a6\",\"locale\":\"en\",\"path\":\"how-to-write-a-press-release-chatgpt-will-cite\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"a7:T43c7,"])</script>
2<script>self.__next_f.push([1,"We analyzed the robots.txt policies of the 51 largest U.S. news websites by monthly traffic. The results should matter to anyone who values earned media placements. 61% of these sites actively block AI assistants like ChatGPT and Claude from citing their content. That means when a user asks an AI chat tool a question, content from those sites won't appear in the answer. Another 18% block AI model trainers but still allow citations. Only 22% have no AI restrictions at all. Together, the sites that block AI assistants represent over 2.6 billion monthly visits. For PR professionals and marketers, this raises an important question. If a placement lands on a site that blocks AI, does it still reach the growing audience that discovers brands through AI chat?\n\n## Key Takeaways\n\n- 31 of the top 51 U.S. news sites (61%) block AI assistants from citing their content in chat responses\n- These blocked sites account for 71% of total monthly traffic across all 51 sites (2.68 billion visits)\n- 8 of the top 10 news sites by traffic block AI assistants\n- Anthropic (Claude) is the most commonly blocked AI assistant, restricted on 30 of 51 sites. OpenAI (ChatGPT) is blocked on 24\n- 78% of all sites block at least AI model trainers, meaning content won't contribute to future AI training data\n- Blocking AI doesn't erase the value of earned media. Authority, credibility, and traditional search benefits still compound. But AI visibility is a growing channel worth considering\n\n## How We Ran This Study\n\nSpyglasses tracks over [600 known AI agents, bots, crawlers, and scrapers](/bots) as part of its [AI Traffic Analytics](https://www.spyglasses.io/en/ai-traffic-analytics) platform. Our free tool, [Is This Site Blocking AI?](https://www.spyglasses.io/en/ai-access-checker), evaluates a website's robots.txt policy in real time and identifies any AI assistants or model trainers that the site blocks.\n\nFor this study we took the top 51 websites classified as \"News\" in [Similarweb's dataset](https://www.similarweb.com), sorted by monthly visits as of January 2026. We then fetched each site's robots.txt file and evaluated it against two categories of AI bots. The first is AI Assistants, the bots that fetch content for AI chat tools. The second is AI Model Trainers, the bots that crawl content to train future AI models.\n\nWe classified each site using a simple system:\n\n- 🔴 **Blocks AI assistants** - one or more AI assistant bots are blocked. Content from this site won't be cited in AI chat responses from the blocked platforms.\n- 🟡 **Blocks model trainers only** - AI assistants can still cite content, but the site blocks bots that crawl for model training purposes.\n- 🟢 **All clear** - no AI-related blocks found.\n\nA few notes on methodology. The robots.txt spec allows partial blocks, where a site blocks access to specific directories while allowing everything else. We treated partial blocks as blocks for this study. One site, drudgereport.com, does not publish a robots.txt file in a known location. We treated this as \"all clear.\" Some AI assistants, like those from Bing Copilot, Grok, and Deepseek, [do not use a consistent, recognizable identifier](https://think.resoneo.com/sentinel/geo-llm-crawler-report.html). They also do not respect robots.txt rules. We excluded these from the study.\n\n## What Did We Find?\n\nOf the 51 sites studied, 31 (61%) block at least one AI assistant. These sites account for 2.68 billion of the 3.75 billion total monthly visits, or 71% of all traffic.\n\nOnly 11 sites (22%) have no AI restrictions at all. Nine sites (18%) take a middle path; they block model trainers but still allow AI assistants to cite their content.\n\nHere's a visual breakdown:\n\n| Classification | Sites | % of Total | Monthly Traffic | % of Traffic |\n|:--|:--|:--|:--|:--|\n| 🔴 Blocks AI Assistants | 31 | 61% | 2.68B | 71% |\n| 🟡 Blocks Trainers Only | 9 | 18% | 417M | 11% |\n| 🟢 All Clear | 11 | 22% | 653M | 17% |\n\n## Which AI Assistants Are Blocked Most Often?\n\nNot all AI platforms are treated equally. Anthropic's Claude is the most commonly blocked assistant, restricted on 30 of the 51 sites. OpenAI's ChatGPT is close behind at 24 sites. Mistral is blocked on 8 sites, Google's AI assistant on 5, and Perplexity on just 2.\n\nThis means Claude users are the most likely to miss content from top news outlets. ChatGPT users face a similar gap. Perplexity users, on the other hand, can access content from nearly all of these sites.\n\nFor PR professionals, this matters because different audiences prefer different AI tools. A placement that's invisible in Claude might still appear in Perplexity or Google's AI results.\n\n## What About AI Model Training?\n\nEven sites that allow AI citations may still block model trainers. 78% of all 51 sites (40 total) block at least one model training bot.\n\nThis distinction is important. A site that blocks only model trainers will still show up in AI chat responses today. But because the content won't be included in future training data, the AI won't \"learn\" from it long-term. That means a brand mention on that site might appear when an AI searches the web in real time. But it won't be part of what the AI already knows when a user asks without web search enabled.\n\nFor a deeper look at how AI assistants and model trainers differ, see the glossary at the end of this article.\n\n## How Do the Biggest Sites Stack Up?\n\nThe top of the traffic chart tells a clear story. Of the ten most-visited news sites, eight block AI assistants. The only green lights are Fox News (252M monthly visits) and Google News (96M).\n\nThe most aggressive blockers restrict nearly every AI platform. Startribune.com blocks six different AI assistants, including Anthropic, Google, LangChain, Mistral, OpenAI, and Perplexity. Politico blocks five, including Perplexity, which most other sites allow.\n\nHere's the full table. Each domain links directly to the site's robots.txt file so you can review the policy yourself.\n\n| Policy | Site | Monthly Visits | Blocked AI Assistants | Blocked AI Model Trainers |\n|:--|:--|:--|:--|:--|\n| 🔴 | [nytimes.c
2om](https://nytimes.com/robots.txt) | 494.7M | Anthropic, OpenAI (ChatGPT) | Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [cnn.com](https://cnn.com/robots.txt) | 308.4M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, OpenAI |\n| 🟢 | [foxnews.com](https://foxnews.com/robots.txt) | 252.2M | | |\n| 🔴 | [msn.com](https://msn.com/robots.txt) | 151.4M | Anthropic, Mistral, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [people.com](https://people.com/robots.txt) | 147.2M | Anthropic, OpenAI (ChatGPT) | Anthropic, Common Crawl, OpenAI |\n| 🔴 | [finance.yahoo.com](https://finance.yahoo.com/robots.txt) | 135.6M | Anthropic, OpenAI (ChatGPT) | Anthropic, ByteDance, Common Crawl, OpenAI |\n| 🔴 | [bbc.com](https://bbc.com/robots.txt) | 124.6M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [usatoday.com](https://usatoday.com/robots.txt) | 117.9M | Anthropic, Mistral, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [apnews.com](https://apnews.com/robots.txt) | 98.1M | Anthropic | Amazon, Anthropic, Apple, Common Crawl, OpenAI |\n| 🟢 | [news.google.com](https://news.google.com/robots.txt) | 96.1M | | |\n| 🟢 | [substack.com](https://substack.com/robots.txt) | 95.5M | | |\n| 🟡 | [theguardian.com](https://theguardian.com/robots.txt) | 92.1M | | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta |\n| 🔴 | [nbcnews.com](https://nbcnews.com/robots.txt) | 89.4M | Anthropic, Mistral, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🟡 | [cbsnews.com](https://cbsnews.com/robots.txt) | 87.6M | | OpenAI |\n| 🔴 | [nypost.com](https://nypost.com/robots.txt) | 87.4M | Anthropic | Anthropic, Apple, ByteDance, Common Crawl, Meta |\n| 🔴 | [cnbc.com](https://cnbc.com/robots.txt) | 87.3M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🔴 | [news.yaho
2o.com](https://news.yahoo.com/robots.txt) | 73.9M | Anthropic, OpenAI (ChatGPT) | Anthropic, ByteDance, Common Crawl, OpenAI |\n| 🔴 | [wsj.com](https://wsj.com/robots.txt) | 72.2M | Anthropic | Anthropic, Apple, ByteDance, Common Crawl, Meta |\n| 🔴 | [dailymail.co.uk](https://dailymail.co.uk/robots.txt) | 70.4M | Anthropic, Google, Mistral, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [washingtonpost.com](https://washingtonpost.com/robots.txt) | 69.2M | Anthropic | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta |\n| 🔴 | [npr.org](https://npr.org/robots.txt) | 63.7M | Anthropic, OpenAI (ChatGPT) | Anthropic, Apple, ByteDance, Common Crawl, OpenAI |\n| 🟡 | [forbes.com](https://forbes.com/robots.txt) | 60.1M | | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🔴 | [abcnews.go.com](https://abcnews.go.com/robots.txt) | 53.5M | OpenAI (ChatGPT) | ByteDance, Common Crawl, OpenAI |\n| 🟡 | [businessinsider.com](https://businessinsider.com/robots.txt) | 52.3M | | Anthropic, ByteDance, Common Crawl |\n| 🔴 | [thehill.com](https://thehill.com/robots.txt) | 51.0M | Anthropic, OpenAI (ChatGPT) | Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [politico.com](https://politico.com/robots.txt) | 48.1M | Anthropic, Google, Mistral, OpenAI (ChatGPT), Perplexity AI | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [reuters.com](https://reuters.com/robots.txt) | 46.1M | Anthropic, Google, Mistral | Anthropic, Apple, ByteDance, Common Crawl, Google, Meta |\n| 🔴 | [newsweek.com](https://newsweek.com/robots.txt) | 45.2M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, OpenAI |\n| 🟢 | drudgereport.com | 44.8M | | |\n| 🔴 | [buzzfeed.com](https://buzzfeed.com/robots.txt) | 40.0M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🟢 | [the-sun.com](https://the-sun.com/robots.txt) | 39.0M | | |\n| 🔴 | [huffpost.com](https://huffpost.com/robots.txt) | 34.2M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🟡 | [axios.com](https://axios.com/robots.txt) | 31.8M | | Amazon, ByteDance, Common Crawl |\n| 🔴 | [newsbreak.com](https://newsbreak.com/robots.txt) | 31.1M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🟢 | [indiatimes.com](https://indiatimes.com/robots.txt) | 28.1M | | |\n| 🟢 | [breitbart.com](https://breitbart.com/robots.txt) | 28.1M | | |\n| 🔴 | [theatlantic.com](https://theatlantic.com/robots.txt) | 26.4M | Anthropic | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta |\n| 🟡 | [patch.com](https://patch.com/robots.txt) | 24.8M | | Common Crawl |\n| 🟡 | [thegatewaypundit.com](https://thegatewaypundit.com/robots.txt) | 24.1M | | Amazon, Common Crawl |\n| 🔴 | [bloomberg.com](https://bloomberg.com/robots.txt) | 23.9M | Anthropic, OpenAI (ChatGPT) | Amazon, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🟡 | [newsmax.com](https://newsmax.com/robots.txt) | 23.2M | | OpenAI |\n| 🟡 | [latimes.com](https://latimes.com/robots.txt) | 20.9M | | Anthropic, ByteDance, OpenAI |\n| 🔴 | [usnews.com](https://usnews.com/robots.txt) | 20.4M | Anthropic, Google, Mistral, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🟢 | [independent.co.uk](https://independent.co.uk/robots.txt) | 19.5M | | |\n| 🔴 | [variety.com](https://variety.com/robots.txt) | 18.5M | Anthropic, OpenAI (ChatGPT) | Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🔴 | [sfgate.com](https://sfgate.com/robots.txt) | 18.5M | Anthropic | Anthropic, Apple, ByteDance, Common Crawl |\n| 🟢 | [ksl.com](https://ksl.com/robots.txt) | 17.1M | | |\n| 🟢 | [thedailybeast.com](https://thedailybeast.com/robots.txt) | 16.8M | | |\n| 🔴 | [startribune.com](https://startribune.com/robots.txt) | 16.3M | Anthropic, Google, LangChain, Mistral, OpenAI (ChatGPT), Perplexity AI | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI |\n| 🔴 | [al.com](https://al.com/robots.txt) | 15.8M | Anthropic, OpenAI (ChatGPT) | Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI |\n| 🟢 | [theepochtimes.com](https://theepochtimes.com/robots.txt) | 15.7M | | |\n\n## Does This Mean Earned Media Is Less Valuable?\n\nNo. And this is an important caveat.\n\nA placement in the New York Times, CNN, or the Wall Street Journal still carries enormous value. These outlets have high domain authority. They build credibility with human audie
2nces. They influence traditional search rankings. A Tier 1 placement can shape perception, drive direct traffic, and signal trust to both customers and investors.\n\nWhat this data shows is that there's now an additional dimension to consider. If 61% of top news sites block AI assistants, a growing share of potential audience members won't see that placement. They won't encounter it when they ask AI for recommendations, research, or news summaries.\n\nThe authority and credibility derived from being featured in major media compounds over time. AI visibility is one factor among many, not the only one.\n\n## Should PR Teams Factor AI Policy Into Placement Strategy?\n\nIt depends on the goals. If the primary objective is brand credibility and traditional media impact, the site's AI policy is secondary. A feature in Reuters or Bloomberg carries weight regardless of robots.txt settings.\n\nBut if the goal includes visibility in AI-powered discovery channels, then yes, it's worth knowing. A placement on Forbes (which blocks trainers but allows assistants) will show up in AI chat results. A placement on the New York Times (which blocks both Anthropic and OpenAI assistants) likely won't.\n\nThis doesn't mean avoiding blocked sites. It means understanding the trade-offs and planning accordingly. A strong PR strategy might target a mix of both: high-authority blocked sites for traditional credibility, and AI-friendly sites for discoverability.\n\n## What Can Marketers Do With This Information?\n\nThere are a few practical steps.\n\nFirst, check the AI policies of the sites where you've already been placed. You can visit the site's robots.txt file directly. Every domain link in the table above goes straight to theirs. Or use Spyglasses' free [Is This Site Blocking AI?](https://www.spyglasses.io/en/ai-access-checker) tool for a quick classification.\n\nSecond, factor AI access into your earned media scoring. Not as the primary metric, but as a weighted signal alongside domain authority, audience fit, and other criteria.\n\nThird, consider diversifying. If your existing placements are concentrated on sites that block AI, look for opportunities on AI-friendly outlets that still have strong traffic and authority. Substack (95.5M monthly visits, all clear), Forbes (60.1M, allows assistants), and The Guardian (92.1M, allows assistants) are strong options.\n\n## Will These Policies Change?\n\nMaybe. Robots.txt policies are not permanent. Sites update them as business models evolve and licensing deals are struck with AI companies. The economics of AI traffic are still being figured out.\n\nSeveral major publishers have signed licensing agreements with OpenAI and other AI companies. These deals may lead to more permissive policies over time. On the other hand, some outlets may tighten restrictions as they seek to protect subscription revenue and content exclusivity.\n\nThis is a snapshot as of early 2026. We plan to re-run this study periodically and track how policies shift.\n\n## Glossary\n\n### What is robots.txt?\n\nRobots.txt is a text file that sits at the root of a website (e.g., nytimes.com/robots.txt). It tells web crawlers and bots what they're allowed to access and what they should stay away from. It's been the standard for controlling bot behavior since 1994. It's not a firewall; it's more like a \"please don't\" sign. But reputable bots, including those from Google, OpenAI, and Anthropic, follow these rules.\n\n### What are AI Assistants?\n\nAI assistants are the bots that tools like ChatGPT, Claude, Gemini, Perplexity, and Copilot use to fetch content from websites in real time. When you see an AI tool say \"Searching the web...\" this is what's happening. These bots visit web pages, pull content, and bring it back so the AI can include it in its response. If a site blocks an AI assistant bot, that AI tool won't cite the site's content when answering user questions. All major AI assistant bots respect robots.txt directives.\n\n### What are AI Model Trainers?\n\nAI model trainers are bots that crawl websites to gather content for training future AI models. This is different from real-time citation. Training data becomes part of what the AI \"knows\" without needing to search the web. There are valid reasons for a publisher to block this type of use. If your brand placement is on a site that blocks model trainers, the page can still be cited in an AI chat response. But it won't 
2contribute to the AI's baseline knowledge of your brand."])</script>
2<script>self.__next_f.push([1,"a8:T9596,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var A=Object.create;var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var x=(l,t)=\u003e()=\u003e(t||l((t={exports:{}}).exports,t),t.exports),m=(l,t)=\u003e{for(var n in t)s(l,n,{get:t[n],enumerable:!0})},o=(l,t,n,r)=\u003e{if(t\u0026\u0026typeof t==\"object\"||typeof t==\"function\")for(let i of y(t))!p.call(l,i)\u0026\u0026i!==n\u0026\u0026s(l,i,{get:()=\u003et[i],enumerable:!(r=f(t,i))||r.enumerable});return l};var b=(l,t,n)=\u003e(n=l!=null?A(g(l)):{},o(t||!l||!l.__esModule?s(n,\"default\",{value:l,enumerable:!0}):n,l)),w=l=\u003eo(s({},\"__esModule\",{value:!0}),l);var d=x((C,h)=\u003e{h.exports=_jsx_runtime});var u={};m(u,{default:()=\u003ea});var e=b(d());function c(l){let t={a:\"a\",h2:\"h2\",h3:\"h3\",li:\"li\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...l.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.p,{children:\"We analyzed the robots.txt policies of the 51 largest U.S. news websites by monthly traffic. The results should matter to anyone who values earned media placements. 61% of these sites actively block AI assistants like ChatGPT and Claude from citing their content. That means when a user asks an AI chat tool a question, content from those sites won't appear in the answer. Another 18% block AI model trainers but still allow citations. Only 22% have no AI restrictions at all. Together, the sites that block AI assistants represent over 2.6 billion monthly visits. For PR professionals and marketers, this raises an important question. If a placement lands on a site that blocks AI, does it still reach the growing audience that discovers brands through AI chat?\"}),`\n`,(0,e.jsx)(t.h2,{children:\"Key Takeaways\"}),`\n`,(0,e.jsxs)(t.ul,{children:[`\n`,(0,e.jsx)(t.li,{children:\"31 of the top 51 U.S. news sites (61%) block AI assistants from citing their content in chat responses\"}),`\n`,(0,e.jsx)(t.li,{children:\"These blocked sites account for 71% of total monthly traffic across all 51 sites (2.68 billion visits)\"}),`\n`,(0,e.jsx)(t.li,{children:\"8 of the top 10 news sites by traffic block AI assistants\"}),`\n`,(0,e.jsx)(t.li,{children:\"Anthropic (Claude) is the most commonly blocked AI assistant, restricted on 30 of 51 sites. OpenAI (ChatGPT) is blocked on 24\"}),`\n`,(0,e.jsx)(t.li,{children:\"78% of all sites block at least AI model trainers, meaning content won't contribute to future AI training data\"}),`\n`,(0,e.jsx)(t.li,{children:\"Blocking AI doesn't erase the value of earned media. Authority, credibility, and traditional search benefits still compound. But AI visibility is a growing channel worth considering\"}),`\n`]}),`\n`,(0,e.jsx)(t.h2,{children:\"How We Ran This Study\"}),`\n`,(0,e.jsxs)(t.p,{children:[\"Spyglasses tracks over \",(0,e.jsx)(t.a,{href:\"/bots\",children:\"600 known AI agents, bots, crawlers, and scrapers\"}),\" as part of its \",(0,e.jsx)(t.a,{href:\"https://www.spyglasses.io/en/ai-traffic-analytics\",children:\"AI Traffic Analytics\"}),\" platform. Our free tool, \",(0,e.jsx)(t.a,{href:\"https://www.spyglasses.io/en/ai-access-checker\",children:\"Is This Site Blocking AI?\"}),\", evaluates a website's robots.txt policy in real time and identifies any AI assistants or model trainers that the site blocks.\"]}),`\n`,(0,e.jsxs)(t.p,{children:['For this study we took the top 51 websites classified as \"News\" in ',(0,e.jsx)(t.a,{href:\"https://www.similarweb.com\",children:\"Similarweb's dataset\"}),\", sorted by monthly visits as of January 2026. We then fetched each site's robots.txt file and evaluated it against two categories of AI bots. The first is AI Assistants, the bots that fetch content for AI chat tools. The second is AI Model Trainers, the bots that crawl content to train future AI models.\"]}),`\n`,(0,e.jsx)(t.p,{children:\"We classified each site using a simple system:\"}),`\n`,(0,e.jsxs)(t.ul,{children:[`\n`,(0,e.jsxs)(t.li,{children:[\"\\u{1F534} \",(0,e.jsx)(t.strong,{children:\"Blocks AI assistants\"}),\" - one or more AI assistant bots are blocked. Content from this site won't be cited in AI chat responses from the blocked platforms.\"]}),`\n`,(0,e.jsxs)(t.li,{children:[\"\\u{1F7E1} \",(0,e.jsx)(t.strong,{children:\"Blocks model trainers only\"}),\" - AI assistants can still cite content, but the site blocks bots that crawl for model training purposes.\"]}),`\n`,(0,e.jsxs)(t.li,{children:[\"\\u{1F7E2} \",(0,e.jsx)(t.strong,{children:\"All clear\"}
2),\" - no AI-related blocks found.\"]}),`\n`]}),`\n`,(0,e.jsxs)(t.p,{children:['A few notes on methodology. The robots.txt spec allows partial blocks, where a site blocks access to specific directories while allowing everything else. We treated partial blocks as blocks for this study. One site, drudgereport.com, does not publish a robots.txt file in a known location. We treated this as \"all clear.\" Some AI assistants, like those from Bing Copilot, Grok, and Deepseek, ',(0,e.jsx)(t.a,{href:\"https://think.resoneo.com/sentinel/geo-llm-crawler-report.html\",children:\"do not use a consistent, recognizable identifier\"}),\". They also do not respect robots.txt rules. We excluded these from the study.\"]}),`\n`,(0,e.jsx)(t.h2,{children:\"What Did We Find?\"}),`\n`,(0,e.jsx)(t.p,{children:\"Of the 51 sites studied, 31 (61%) block at least one AI assistant. These sites account for 2.68 billion of the 3.75 billion total monthly visits, or 71% of all traffic.\"}),`\n`,(0,e.jsx)(t.p,{children:\"Only 11 sites (22%) have no AI restrictions at all. Nine sites (18%) take a middle path; they block model trainers but still allow AI assistants to cite their content.\"}),`\n`,(0,e.jsx)(t.p,{children:\"Here's a visual breakdown:\"}),`\n`,(0,e.jsxs)(t.table,{children:[(0,e.jsx)(t.thead,{children:(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Classification\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Sites\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"% of Total\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Monthly Traffic\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"% of Traffic\"})]})}),(0,e.jsxs)(t.tbody,{children:[(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534} Blocks AI Assistants\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"31\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"61%\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"2.68B\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"71%\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1} Blocks Trainers Only\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"9\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"18%\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"417M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"11%\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2} All Clear\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"11\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"22%\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"653M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"17%\"})]})]})]}),`\n`,(0,e.jsx)(t.h2,{children:\"Which AI Assistants Are Blocked Most Often?\"}),`\n`,(0,e.jsx)(t.p,{children:\"Not all AI platforms are treated equally. Anthropic's Claude is the most commonly blocked assistant, restricted on 30 of the 51 sites. OpenAI's ChatGPT is close behind at 24 sites. Mistral is blocked on 8 sites, Google's AI assistant on 5, and Perplexity on just 2.\"}),`\n`,(0,e.jsx)(t.p,{children:\"This means Claude users are the most likely to miss content from top news outlets. ChatGPT users face a similar gap. Perplexity users, on the other hand, can access content from nearly all of these sites.\"}),`\n`,(0,e.jsx)(t.p,{children:\"For PR professionals, this matters because different audiences prefer different AI tools. A placement that's invisible in Claude might still appear in Perplexity or Google's AI results.\"}),`\n`,(0,e.jsx)(t.h2,{children:\"What About AI Model Training?\"}),`\n`,(0,e.jsx)(t.p,{children:\"Even sites that allow AI citations may still block model trainers. 78% of all 51 sites (40 total) block at least one model training bot.\"}),`\n`,(0,e.jsx)(t.p,{children:`This distinction is important. A site that blocks only model trainers will still show up in AI chat responses today. But because the content won't be included in future training data, the AI won't \"learn\" from it long-term. That means a brand mention on that site might appear when an AI searches the web in real time. But it won't be part of what the AI already knows when a user asks without web search enabled.`}),`\n`,(0,e.jsx)(t.p,{children:\"For a deeper look at how AI assistants and model trainers differ, see the glossary at the end of this article.\"}),`\n`,(0,e.jsx)(t.h2,{children:\"How Do the Biggest Sites Stack Up?\"}),`\n`,(0,e.jsx)(t.p,{children:\"The top of the traffic chart tells a clear story. Of the ten most-visited news sites, eight block AI assistants. The only green lights are Fox News (252M monthly visits) and Google News (96M).\"}),`\n`,(0,e.jsx)(t.p,{children:\"The most aggressive blockers restrict nearly every AI platform. Startribune.com blocks six different AI assistants, including Anthropic, Google, LangChain, Mistral, OpenAI, and Perplexity. Politico blocks five, including Perplexity, which most other sites allow.\"}),`\n`,(0,e.jsx)(t.p,{children:\"Here's the full table. Each domain links directly to the site's robots.txt file so you can review the policy yourself.\"}),`\n`,(0,e.jsxs)(t.table,{children:[(0,e.jsx)(t.thead,{children:(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Policy\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Site\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Monthly Visits\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Blocked AI Assistants\"}),(0,e.jsx)(t.th,{style:{textAlign:\"left\"},children:\"Blocked AI Model Trainers\"})]})}),(0,e.jsxs)(t.tbody,{children:[(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}
2,children:(0,e.jsx)(t.a,{href:\"https://nytimes.com/robots.txt\",children:\"nytimes.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"494.7M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://cnn.com/robots.txt\",children:\"cnn.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"308.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://foxnews.com/robots.txt\",children:\"foxnews.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"252.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://msn.com/robots.txt\",children:\"msn.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"151.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Mistral, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://people.com/robots.txt\",children:\"people.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"147.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://finance.yahoo.com/robots.txt\",children:\"finance.yahoo.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"135.6M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, ByteDance, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://bbc.com/robots.txt\",children:\"bbc.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"124.6M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://usatoday.com/robots.txt\",children:\"usatoday.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"117.9M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Mistral, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://apnews.com/robots.txt\",children:\"apnews.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"98.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://news.google.com/robots.txt\",children:\"news.google.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"96.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://substack.com/robots.txt\",children:\"substack.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"95.5M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://theguardian.com/robots.txt\",children:\"theguardian.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"92.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://nbcnews.com/robots.txt\",children:\"nbcnews.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"89.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Mistral, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://cbsnews.com/robots.txt\",children:\"cbsnews.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"87.6M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://nypost.com/robots.txt\",children:\"nyp
2ost.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"87.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, Meta\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://cnbc.com/robots.txt\",children:\"cnbc.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"87.3M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://news.yahoo.com/robots.txt\",children:\"news.yahoo.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"73.9M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, ByteDance, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://wsj.com/robots.txt\",children:\"wsj.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"72.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, Meta\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://dailymail.co.uk/robots.txt\",children:\"dailymail.co.uk\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"70.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Google, Mistral, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://washingtonpost.com/robots.txt\",children:\"washingtonpost.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"69.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://npr.org/robots.txt\",children:\"npr.org\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"63.7M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://forbes.com/robots.txt\",children:\"forbes.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"60.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://abcnews.go.com/robots.txt\",children:\"abcnews.go.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"53.5M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"ByteDance, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://businessinsider.com/robots.txt\",children:\"businessinsider.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"52.3M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, ByteDance, Common Crawl\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://thehill.com/robots.txt\",children:\"thehill.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"51.0M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://politico.com/robots.txt\",children:\"politico.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"48.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Google, Mistral, OpenAI (ChatGPT), Perplexity AI\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://reuters.com/robots.txt\",children:\"reuters.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"46.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Google, Mistral\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, Google, Meta\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://newsweek.com/robots.txt\",children:\"newsweek.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"45.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"drudgereport.com\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"44.8M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://buzzfeed.com/robots.txt\",children:\"buzzfeed.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"40.0M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://the-sun.com/robots.txt\",children:\"the-sun.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"39.0M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://huffpost.com/robots.txt\",children:\"huffpost.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"34.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://axios.com/robots.txt\",children:\"axios.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"31.8M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, ByteDance, Common Crawl\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://newsbreak.com/robots.txt\",children:\"newsbreak.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"31.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://indiatimes.com/robots.txt\",children:\"indiatimes.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"28.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://breitbart.com/robots.txt\",children:\"breitbart.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"28.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://theatlantic.com/robots.txt\",children:\"theatlantic.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"26.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://patch.com/robots.txt\",children:\"patch.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"24.8M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Common Crawl\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://thegatewaypundit.com/robots.txt\",children:\"thegatewaypundit.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"24.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Common Crawl\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://bloomberg.com/robots.txt\",children:\"bloomberg.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"23.9M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://newsmax.com/robots.txt\",children:\"newsmax.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"23.2M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E1}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}
2,children:(0,e.jsx)(t.a,{href:\"https://latimes.com/robots.txt\",children:\"latimes.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"20.9M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, ByteDance, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://usnews.com/robots.txt\",children:\"usnews.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"20.4M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Google, Mistral, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://independent.co.uk/robots.txt\",children:\"independent.co.uk\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"19.5M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://variety.com/robots.txt\",children:\"variety.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"18.5M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://sfgate.com/robots.txt\",children:\"sfgate.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"18.5M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Apple, ByteDance, Common Crawl\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://ksl.com/robots.txt\",children:\"ksl.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"17.1M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://thedailybeast.com/robots.txt\",children:\"thedailybeast.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"16.8M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://startribune.com/robots.txt\",children:\"startribune.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"16.3M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, Google, LangChain, Mistral, OpenAI (ChatGPT), Perplexity AI\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Google, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F534}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://al.com/robots.txt\",children:\"al.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"15.8M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Anthropic, OpenAI (ChatGPT)\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"Amazon, Anthropic, Apple, ByteDance, Common Crawl, Meta, OpenAI\"})]}),(0,e.jsxs)(t.tr,{children:[(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"\\u{1F7E2}\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:(0,e.jsx)(t.a,{href:\"https://theepochtimes.com/robots.txt\",children:\"theepochtimes.com\"})}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"},children:\"15.7M\"}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}}),(0,e.jsx)(t.td,{style:{textAlign:\"left\"}})]})]})]}),`\n`,(0,e.jsx)(t.h2,{children:\"Does This Mean Earned Media Is Less Valuable?\"}),`\n`,(0,e.jsx)(t.p,{children:\"No. And this is an important caveat.\"}),`\n`,(0,e.jsx)(t.p,{children:\"A placement in the New York Times, CNN, or the Wall Street Journal still carries enormous value. These outlets have high domain authority. They build credibility with human audie
2nces. They influence traditional search rankings. A Tier 1 placement can shape perception, drive direct traffic, and signal trust to both customers and investors.\"}),`\n`,(0,e.jsx)(t.p,{children:\"What this data shows is that there's now an additional dimension to consider. If 61% of top news sites block AI assistants, a growing share of potential audience members won't see that placement. They won't encounter it when they ask AI for recommendations, research, or news summaries.\"}),`\n`,(0,e.jsx)(t.p,{children:\"The authority and credibility derived from being featured in major media compounds over time. AI visibility is one factor among many, not the only one.\"}),`\n`,(0,e.jsx)(t.h2,{children:\"Should PR Teams Factor AI Policy Into Placement Strategy?\"}),`\n`,(0,e.jsx)(t.p,{children:\"It depends on the goals. If the primary objective is brand credibility and traditional media impact, the site's AI policy is secondary. A feature in Reuters or Bloomberg carries weight regardless of robots.txt settings.\"}),`\n`,(0,e.jsx)(t.p,{children:\"But if the goal includes visibility in AI-powered discovery channels, then yes, it's worth knowing. A placement on Forbes (which blocks trainers but allows assistants) will show up in AI chat results. A placement on the New York Times (which blocks both Anthropic and OpenAI assistants) likely won't.\"}),`\n`,(0,e.jsx)(t.p,{children:\"This doesn't mean avoiding blocked sites. It means understanding the trade-offs and planning accordingly. A strong PR strategy might target a mix of both: high-authority blocked sites for traditional credibility, and AI-friendly sites for discoverability.\"}),`\n`,(0,e.jsx)(t.h2,{children:\"What Can Marketers Do With This Information?\"}),`\n`,(0,e.jsx)(t.p,{children:\"There are a few practical steps.\"}),`\n`,(0,e.jsxs)(t.p,{children:[\"First, check the AI policies of the sites where you've already been placed. You can visit the site's robots.txt file directly. Every domain link in the table above goes straight to theirs. Or use Spyglasses' free \",(0,e.jsx)(t.a,{href:\"https://www.spyglasses.io/en/ai-access-checker\",children:\"Is This Site Blocking AI?\"}),\" tool for a quick classification.\"]}),`\n`,(0,e.jsx)(t.p,{children:\"Second, factor AI access into your earned media scoring. Not as the primary metric, but as a weighted signal alongside domain authority, audience fit, and other criteria.\"}),`\n`,(0,e.jsx)(t.p,{children:\"Third, consider diversifying. If your existing placements are concentrated on sites that block AI, look for opportunities on AI-friendly outlets that still have strong traffic and authority. Substack (95.5M monthly visits, all clear), Forbes (60.1M, allows assistants), and The Guardian (92.1M, allows assistants) are strong options.\"}),`\n`,(0,e.jsx)(t.h2,{children:\"Will These Policies Change?\"}),`\n`,(0,e.jsx)(t.p,{children:\"Maybe. Robots.txt policies are not permanent. Sites update them as business models evolve and licensing deals are struck with AI companies. The economics of AI traffic are still being figured out.\"}),`\n`,(0,e.jsx)(t.p,{children:\"Several major publishers have signed licensing agreements with OpenAI and other AI companies. These deals may lead to more permissive policies over time. On the other hand, some outlets may tighten restrictions as they seek to protect subscription revenue and content exclusivity.\"}),`\n`,(0,e.jsx)(t.p,{children:\"This is a snapshot as of early 2026. We plan to re-run this study periodically and track how policies shift.\"}),`\n`,(0,e.jsx)(t.h2,{children:\"Glossary\"}),`\n`,(0,e.jsx)(t.h3,{children:\"What is robots.txt?\"}),`\n`,(0,e.jsx)(t.p,{children:`Robots.txt is a text file that sits at the root of a website (e.g., nytimes.com/robots.txt). It tells web crawlers and bots what they're allowed to access and what they should stay away from. It's been the standard for controlling bot behavior since 1994. It's not a firewall; it's more like a \"please don't\" sign. But reputable bots, including those from Google, OpenAI, and Anthropic, follow these rules.`}),`\n`,(0,e.jsx)(t.h3,{children:\"What are AI Assistants?\"}),`\n`,(0,e.jsx)(t.p,{children:`AI assistants are the bots that tools like ChatGPT, Claude, Gemini, Perplexity, and Copilot use to fetch content from websites in real time. When you see an AI tool say \"Searching the web...\" this is what's happening. These bots visit web pages, pull content, and bring it back so the AI can include it in its response. If a site blocks an AI assistant bot, that AI tool won't cite the site's content when answering user questions. All major AI assistant bots respect robots.txt directives.`}),`\n`,(0,e.jsx)(t.h3,{children:\"What are AI Model Trainers?\"}),`\n`,(0,e.jsx)(t.p,{children:`AI model trainers are bots that crawl websites to gather content for training future AI models. This is different from real-time citation. Training data becomes part of what the AI \"knows\" without needing to search the web. There are valid reasons for a publisher to block this type of use. If your brand placement is on a site that blocks model trainers, the page can still be cited in an AI chat response. But it won't 
2contribute to the AI's baseline knowledge of your brand.`})]})}function a(l={}){let{wrapper:t}=l.components||{};return t?(0,e.jsx)(t,{...l,children:(0,e.jsx)(c,{...l})}):c(l)}return w(u);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"3c:[\"$\",\"$L10\",\"is-ai-blocking-your-best-media-placements\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$a7\",\"title\":\"Is AI Blocking Your Best Media Placements?\",\"date\":\"2026-03-04\",\"image\":\"/images/blog/is-ai-blocking-your-best-media-placements.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"We checked the robots.txt policies of the top 51 U.S. news outlets. 61% block AI assistants from citing their content. Here's what that means for your earned media strategy.\",\"tags\":[\"AI visibility\",\"robots.txt\",\"earned media\",\"PR\",\"AI search\",\"news outlets\",\"AI policy\"],\"published\":true,\"_meta\":{\"filePath\":\"is-ai-blocking-your-best-media-placements.mdx\",\"fileName\":\"is-ai-blocking-your-best-media-placements.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"is-ai-blocking-your-best-media-placements\"},\"body\":\"$a8\",\"locale\":\"en\",\"path\":\"is-ai-blocking-your-best-media-placements\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"a9:T1878,"])</script>
2<script>self.__next_f.push([1,"Content refreshes are one of the most common AEO activities. Rewriting a key page. Adding an FAQ section. Improving structured data. Increasing the text density on a product page. The work is familiar to any SEO or content team.\n\nMeasuring the SEO impact of that work is standard practice. Rankings, impressions, traffic. But measuring whether the refresh made the page easier for AI to cite? Most teams skip that step entirely.\n\nAn [AI Readiness Site Audit](/ai-readiness-audit) run on the refreshed pages, before and after the work, fills that gap. The per-page, per-factor scoring shows exactly which changes moved the needle and by how much.\n\n## Key Takeaways\n\n- Content refreshes often improve AI citation readiness and SEO at the same time, but the AI side usually goes unmeasured.\n- Running the Site Audit on just the refreshed pages gives a focused, page-level before/after comparison.\n- The per-factor breakdown shows which specific changes drove the improvement.\n- This is the lowest-effort way to add AI visibility measurement to content work you're already doing.\n\n## What a Content Refresh Changes from AI's Perspective\n\nNot every content change affects AI readiness equally. Understanding the connection between common refresh actions and audit factors helps teams prioritize.\n\n**Adding FAQ sections** improves citation readiness directly. FAQ content gives AI clear, extractable question-and-answer pairs. If the FAQ includes JSON-LD schema, the structured data score improves too. This is one of the highest-impact single changes a team can make. Tools like the [Spyglasses FAQ Generator](/faq-generation) source questions from Google's People Also Ask, Reddit, and Quora, and export them with schema markup included.\n\n**Rewriting for clarity** helps readability and often improves citation readiness. Shorter paragraphs, clearer headings, and direct language make content easier for AI to parse and extract. AI doesn't read the way humans do. It scans for chunks of text that answer a specific question. Content organized around clear answers scores higher.\n\n**Adding structured data** has an obvious and immediate effect on the structured data factor. Adding JSON-LD for products, FAQs, how-to content, or organization info gives AI explicit signals about what the page contains. This factor tends to move in large jumps, from incomplete to complete, rather than gradual improvement.\n\n**Reducing JavaScript dependency** for key content improves the static content ratio. If a product description or pricing table only renders after JavaScript loads, AI can't see it. Moving that content into the initial HTML makes it visible. This is a technical change, but content teams often drive the decision about what content matters enough to be server-rendered.\n\n## Scoping the Audit\n\nYou don't need to audit the whole site for a content refresh. Run the audit on just the pages being updated.\n\nThis keeps the comparison focused and the results clean. If you refreshed eight blog posts and three product pages, audit those eleven pages before the work and after. The results show exactly what changed on the pages you touched, without noise from the rest of the site.\n\nIf you're still deciding *which* pages to refresh, work backwards from the searches AI actually runs. The [AI Visibility Rankings dashboard](/docs/dashboards/ai-visibility-rankings) lists the grounding searches behind your reports, ranked by impact, alongside the competitor pages that rank for each one. The pages closest to competing on a high-impact search are the ones where a refresh has somewhere to go.\n\nOn [Agency Core plans](/pricing), 2,500 pages per month covers even large-scale refresh projects easily. On Single Brand plans, 250 pages per month is more than enough for targeted work. Either way, the cost of running the audit is small compared to the value of proving the impact.\n\n## Reading the Results\n\nThe overall score is a good starting point, but the per-factor breakdown tells the real story.\n\nLook for the factors that moved the most. A page that went from 35% to 80% on structured data after adding JSON-LD is a clear, attributable win. A page where citation readiness climbed 15 points after rewriting the content into scannable sections is a more subtle improvement, but still measurable and tied to specific work.\n\nSome factors are harder to move with content changes alone. E-E-A-T signals, for example, depend partly on brand authority and external mentions. A content refresh won't move that factor much. That's fine. The audit shows what moved and what didn't, which helps teams set expectations and plan next steps.\n\nWatch for surprises too. Sometimes a refresh unintentionally hurts a factor. A redesigned section that replaced static text with a dynamic component could lower the static content ratio. The audit catches these regressions at the page level so they can be fixed quickly.\n\n## Reporting to Clients\n\nThe before/after results make a strong client deliverable with minimal extra effort.\n\nExport the audit to PDF or PowerPoint. On [Agency Core plans](/pricing), these exports are white-labeled with the agency's brand. Show the before and after scores at the page level and factor level. Call out the changes that drove the biggest gains.\n\nThis turns a content refresh from \"we updated your pages\" into \"we improved AI citation readiness by an average of 22 points across nine pages, driven by these specific changes.\" That's a concrete result tied to specific work. Clients understand it immediately.\n\nIt also opens the door to a larger conversation. If the audit shows that citation readiness improved but static content ratio is still low across the site, that's a natural next engagement. The proof from the refresh builds the trust to scope something bigger.\n\n## The Easiest Win in AEO Measurement\n\nContent refreshes are already happening. The work is already being done. Measuring the AI impact takes one extra step: run the audit before and after.\n\nThe cost is low. The effort is minimal. And the output is a scored, page-level comparison that proves the work moved the needle in AI, not just in traditional search.\n\nFor teams looking to add AI visibility to their reporting without adding a major new workflow, this is where to start."])</script>
2<script>self.__next_f.push([1,"aa:T21e0,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),v=(n,e)=\u003e{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},s=(n,e,a,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of u(e))!f.call(n,r)\u0026\u0026r!==a\u0026\u0026i(n,r,{get:()=\u003ee[r],enumerable:!(o=g(e,r))||o.enumerable});return n};var y=(n,e,a)=\u003e(a=n!=null?p(m(n)):{},s(e||!n||!n.__esModule?i(a,\"default\",{value:n,enumerable:!0}):a,n)),b=n=\u003es(i({},\"__esModule\",{value:!0}),n);var c=w((x,h)=\u003e{h.exports=_jsx_runtime});var A={};v(A,{default:()=\u003el});var t=y(c());function d(n){let e={a:\"a\",em:\"em\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Content refreshes are one of the most common AEO activities. Rewriting a key page. Adding an FAQ section. Improving structured data. Increasing the text density on a product page. The work is familiar to any SEO or content team.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Measuring the SEO impact of that work is standard practice. Rankings, impressions, traffic. But measuring whether the refresh made the page easier for AI to cite? Most teams skip that step entirely.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"An \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" run on the refreshed pages, before and after the work, fills that gap. The per-page, per-factor scoring shows exactly which changes moved the needle and by how much.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Content refreshes often improve AI citation readiness and SEO at the same time, but the AI side usually goes unmeasured.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Running the Site Audit on just the refreshed pages gives a focused, page-level before/after comparison.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The per-factor breakdown shows which specific changes drove the improvement.\"}),`\n`,(0,t.jsx)(e.li,{children:\"This is the lowest-effort way to add AI visibility measurement to content work you're already doing.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"What a Content Refresh Changes from AI's Perspective\"}),`\n`,(0,t.jsx)(e.p,{children:\"Not every content change affects AI readiness equally. Understanding the connection between common refresh actions and audit factors helps teams prioritize.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Adding FAQ sections\"}),\" improves citation readiness directly. FAQ content gives AI clear, extractable question-and-answer pairs. If the FAQ includes JSON-LD schema, the structured data score improves too. This is one of the highest-impact single changes a team can make. Tools like the \",(0,t.jsx)(e.a,{href:\"/faq-generation\",children:\"Spyglasses FAQ Generator\"}),\" source questions from Google's People Also Ask, Reddit, and Quora, and export them with schema markup included.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Rewriting for clarity\"}),\" helps readability and often improves citation readiness. Shorter paragraphs, clearer headings, and direct language make content easier for AI to parse and extract. AI doesn't read the way humans do. It scans for chunks of text that answer a specific question. Content organized around clear answers scores higher.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Adding structured data\"}),\" has an obvious and immediate effect on the structured data factor. Adding JSON-LD for products, FAQs, how-to content, or organization info gives AI explicit signals about what the page contains. This factor tends to move in large jumps, from incomplete to complete, rather than gradual improvement.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Reducing JavaScript dependency\"}),\" for key content improves the static content ratio. If a product description or pricing table only renders after JavaScript loads, AI can't see it. Moving that content into the initial HTML makes it visible. This is a technical change, but content teams often drive the decision about what content matters enough to be server-rendered.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Scoping the Audit\"}),`\n`,(0,t.jsx)(e.p,{children:\"You don't need to audit the whole site for a content refresh. Run the audit on just the pages being updated.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This keeps the comparison focused and the results clean. If you refreshed eight blog posts and three product pages, audit those eleven pages before the work and after. The results show exactly what changed on the pages you touched, without noise from the rest of the site.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"If you're still deciding \",(0,t.jsx)(e.em,{children:\"which\"}),\" pages to refresh, work backwards from the searches AI actually runs. The \",(0,t.jsx)(e.a,{href:\"/docs/dashboards/ai-visibility-rankings\",children:\"AI Visibility Rankings dashboard\"}),\" lists the grounding searches behind your reports, ranked by impact, alongside the competitor pages that rank for each one. The pages closest to competing on a high-impact search are the ones where a refresh has somewhere to go.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"On \",(0,t.jsx)(e.a,{href:\"/pricing\",children:\"Agency Core plans\"}),\", 2,500 pages per month covers even large-scale refresh projects easily. On Single Brand plans, 250 pages per month is more than enough for targeted work. Either way, the cost of running the audit is small compared to the value of proving the impact.\"]}
2),`\n`,(0,t.jsx)(e.h2,{children:\"Reading the Results\"}),`\n`,(0,t.jsx)(e.p,{children:\"The overall score is a good starting point, but the per-factor breakdown tells the real story.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Look for the factors that moved the most. A page that went from 35% to 80% on structured data after adding JSON-LD is a clear, attributable win. A page where citation readiness climbed 15 points after rewriting the content into scannable sections is a more subtle improvement, but still measurable and tied to specific work.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Some factors are harder to move with content changes alone. E-E-A-T signals, for example, depend partly on brand authority and external mentions. A content refresh won't move that factor much. That's fine. The audit shows what moved and what didn't, which helps teams set expectations and plan next steps.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Watch for surprises too. Sometimes a refresh unintentionally hurts a factor. A redesigned section that replaced static text with a dynamic component could lower the static content ratio. The audit catches these regressions at the page level so they can be fixed quickly.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Reporting to Clients\"}),`\n`,(0,t.jsx)(e.p,{children:\"The before/after results make a strong client deliverable with minimal extra effort.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Export the audit to PDF or PowerPoint. On \",(0,t.jsx)(e.a,{href:\"/pricing\",children:\"Agency Core plans\"}),\", these exports are white-labeled with the agency's brand. Show the before and after scores at the page level and factor level. Call out the changes that drove the biggest gains.\"]}),`\n`,(0,t.jsx)(e.p,{children:`This turns a content refresh from \"we updated your pages\" into \"we improved AI citation readiness by an average of 22 points across nine pages, driven by these specific changes.\" That's a concrete result tied to specific work. Clients understand it immediately.`}),`\n`,(0,t.jsx)(e.p,{children:\"It also opens the door to a larger conversation. If the audit shows that citation readiness improved but static content ratio is still low across the site, that's a natural next engagement. The proof from the refresh builds the trust to scope something bigger.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Easiest Win in AEO Measurement\"}),`\n`,(0,t.jsx)(e.p,{children:\"Content refreshes are already happening. The work is already being done. Measuring the AI impact takes one extra step: run the audit before and after.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The cost is low. The effort is minimal. And the output is a scored, page-level comparison that proves the work moved the needle in AI, not just in traditional search.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For teams looking to add AI visibility to their reporting without adding a major new workflow, this is where to start.\"})]})}function l(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}return b(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"3d:[\"$\",\"$L10\",\"measuring-ai-visibility-before-after-content-refresh\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$a9\",\"title\":\"Measuring AI Visibility Before and After a Content Refresh\",\"date\":\"2026-03-02\",\"image\":\"/images/blog/ai-visibility-content-refresh.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"Content refreshes often improve AI readiness and SEO at the same time, but the AI impact usually goes unmeasured. Here's how to change that.\",\"tags\":[\"AEO\",\"AI Readiness\",\"Content Strategy\",\"Site Audit\",\"Content Refresh\"],\"published\":true,\"_meta\":{\"filePath\":\"measuring-ai-visibility-before-after-content-refresh.mdx\",\"fileName\":\"measuring-ai-visibility-before-after-content-refresh.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"measuring-ai-visibility-before-after-content-refresh\"},\"body\":\"$aa\",\"locale\":\"en\",\"path\":\"measuring-ai-visibility-before-after-content-refresh\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"ab:T175d,"])</script>
2<script>self.__next_f.push([1,"SEO improvements and AI citation readiness share more common ground than most teams realize. Better page structure, cleaner HTML, stronger content, and proper schema markup all help both search engines and AI systems. The overlap is significant.\n\nBut most SEO projects only measure the SEO side. Rankings, traffic, impressions. The AI readiness gains go unreported, which means agencies leave proof on the table and miss a chance to show broader impact.\n\nAn [AI Readiness Site Audit](/ai-readiness-audit) run before and after SEO work captures that impact. It gives agencies a second set of results from the same engagement, and it positions the team as thinking about the full search picture rather than just traditional rankings.\n\n## Key Takeaways\n\n- Many common SEO improvements also improve AI citation readiness. Better structure, cleaner markup, and stronger content help both.\n- The Site Audit's seven factors overlap heavily with SEO best practices, making it a natural addition to SEO reporting.\n- AI readiness scores can show progress right away, even when ranking changes are still building.\n- The citation readiness factor is the closest current stand-in for RAG pipeline performance, giving teams a head start on deeper AI optimization.\n\n## Where SEO and AI Readiness Overlap\n\nThe overlap between traditional SEO work and AI readiness is larger than it first appears. Most of what makes a page rank well in search also makes it easier for AI to cite.\n\n**Technical SEO** maps directly to several audit factors. Page speed optimization and clean HTML improve the performance for AI score. Server-side rendering and reducing JavaScript dependency improve static content ratio. Fixing crawl issues and improving site structure helps both search engines and AI crawlers find content.\n\n**On-page SEO** hits the factors AI cares about most. Adding JSON-LD structured data improves the structured data score. Writing clear headings and organized content improves citation readiness. Improving content quality and depth helps readability and E-E-A-T signals. These are standard on-page tasks that most SEO teams already do.\n\n**Authority building** shows up in the E-E-A-T signals factor. Earning quality backlinks, building brand mentions across authoritative sources, and improving author credibility all contribute. This factor moves slower than the technical ones, but it's where long-term SEO work and AI readiness converge.\n\nThe key point is that SEO teams are already doing work that moves these scores. They just haven't been measuring it in AI terms.\n\n## Where They Don't Overlap\n\nBeing honest about the gaps matters. A strong SEO profile doesn't guarantee strong AI readiness. There are specific cases where the two diverge.\n\nA page can rank well in Google and still score poorly on static content ratio. This happens when the page relies on client-side JavaScript for key content. Google can render JavaScript. Most AI systems can't, or don't. A page that ranks first for a competitive keyword might be invisible to ChatGPT because the main content only loads after JavaScript executes.\n\nSimilarly, a well-linked page might lack the FAQ content or clear section structure that makes it easy for AI to extract specific answers. High domain authority helps with rankings but doesn't help AI decide which paragraph to cite.\n\nThese gaps are real, and they're the reason AI readiness scores add value on top of SEO metrics rather than duplicating them. The audit reveals blind spots that SEO dashboards miss.\n\n## Adding AI Readiness to SEO Reporting\n\nThe workflow is the same before/after model that applies to [redesigns](/blog/adding-ai-readiness-audit-to-website-redesign) and [content refreshes](/blog/measuring-ai-visibility-before-after-content-refresh).\n\nRun the audit at the start of an SEO engagement. Include the AI readiness baseline in the kickoff report. Run it again at project milestones or at the end of the engagement. Include the comparison alongside traditional SEO metrics.\n\nThis is especially useful early in an engagement when ranking improvements are still building. Google can take weeks or months to reflect the impact of technical and on-page changes. But page-level readiness scores improve the moment the changes go live. Structured data is either there or it isn't. Static content ratio reflects what's on the page today.\n\nFor agencies, this matters. Clients want to see progress. Showing AI readiness gains in the first month, while ranking gains are still developing, keeps the client confident that the work is on track. It also expands the reporting narrative from \"we're improving your rankings\" to \"we're improving how you show up across search and AI.\"\n\n## The Bridge to Deeper AI Work\n\nThe citation readiness factor in the Site Audit measures how well content is structured for AI to find, read, and cite. It looks at content organization, answer density, and how extractable the information is.\n\nThis factor is the closest current stand-in for how content performs in the full AI RAG pipeline. The RAG pipeline is the process AI uses to search the web, rank results, read page content, and decide which pieces to include in a response. Each step follows known algorithms. Citation readiness captures the content-side inputs to that pipeline.\n\nFor SEO teams, this creates a natural bridge. Improving citation readiness scores through standard SEO work builds the foundation for deeper AI optimization. Teams that track it now are positioning themselves to offer RAG pipeline optimization as the tooling matures. \n\n## Two Proof Points from One Engagement\n\nSEO work and AI readiness gains come from the same effort. The audit just makes the AI side visible.\n\nRunning it before and after doubles the proof from a single engagement. It shows clients a broader picture. And it positions the agency as a team that sees the full search landscape, not just the traditional rankings.\n\nFor the cost of a few extra clicks, that's a strong return."])</script>
2<script>self.__next_f.push([1,"ac:T200f,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),v=(n,e)=\u003e{for(var a in e)r(n,a,{get:e[a],enumerable:!0})},o=(n,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let i of m(e))!f.call(n,i)\u0026\u0026i!==a\u0026\u0026r(n,i,{get:()=\u003ee[i],enumerable:!(s=g(e,i))||s.enumerable});return n};var A=(n,e,a)=\u003e(a=n!=null?p(u(n)):{},o(e||!n||!n.__esModule?r(a,\"default\",{value:n,enumerable:!0}):a,n)),k=n=\u003eo(r({},\"__esModule\",{value:!0}),n);var c=w((y,h)=\u003e{h.exports=_jsx_runtime});var b={};v(b,{default:()=\u003el});var t=A(c());function d(n){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"SEO improvements and AI citation readiness share more common ground than most teams realize. Better page structure, cleaner HTML, stronger content, and proper schema markup all help both search engines and AI systems. The overlap is significant.\"}),`\n`,(0,t.jsx)(e.p,{children:\"But most SEO projects only measure the SEO side. Rankings, traffic, impressions. The AI readiness gains go unreported, which means agencies leave proof on the table and miss a chance to show broader impact.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"An \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" run before and after SEO work captures that impact. It gives agencies a second set of results from the same engagement, and it positions the team as thinking about the full search picture rather than just traditional rankings.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Many common SEO improvements also improve AI citation readiness. Better structure, cleaner markup, and stronger content help both.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The Site Audit's seven factors overlap heavily with SEO best practices, making it a natural addition to SEO reporting.\"}),`\n`,(0,t.jsx)(e.li,{children:\"AI readiness scores can show progress right away, even when ranking changes are still building.\"}),`\n`,(0,t.jsx)(e.li,{children:\"The citation readiness factor is the closest current stand-in for RAG pipeline performance, giving teams a head start on deeper AI optimization.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Where SEO and AI Readiness Overlap\"}),`\n`,(0,t.jsx)(e.p,{children:\"The overlap between traditional SEO work and AI readiness is larger than it first appears. Most of what makes a page rank well in search also makes it easier for AI to cite.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Technical SEO\"}),\" maps directly to several audit factors. Page speed optimization and clean HTML improve the performance for AI score. Server-side rendering and reducing JavaScript dependency improve static content ratio. Fixing crawl issues and improving site structure helps both search engines and AI crawlers find content.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"On-page SEO\"}),\" hits the factors AI cares about most. Adding JSON-LD structured data improves the structured data score. Writing clear headings and organized content improves citation readiness. Improving content quality and depth helps readability and E-E-A-T signals. These are standard on-page tasks that most SEO teams already do.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Authority building\"}),\" shows up in the E-E-A-T signals factor. Earning quality backlinks, building brand mentions across authoritative sources, and improving author credibility all contribute. This factor moves slower than the technical ones, but it's where long-term SEO work and AI readiness converge.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"The key point is that SEO teams are already doing work that moves these scores. They just haven't been measuring it in AI terms.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Where They Don't Overlap\"}),`\n`,(0,t.jsx)(e.p,{children:\"Being honest about the gaps matters. A strong SEO profile doesn't guarantee strong AI readiness. There are specific cases where the two diverge.\"}),`\n`,(0,t.jsx)(e.p,{children:\"A page can rank well in Google and still score poorly on static content ratio. This happens when the page relies on client-side JavaScript for key content. Google can render JavaScript. Most AI systems can't, or don't. A page that ranks first for a competitive keyword might be invisible to ChatGPT because the main content only loads after JavaScript executes.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Similarly, a well-linked page might lack the FAQ content or clear section structure that makes it easy for AI to extract specific answers. High domain authority helps with rankings but doesn't help AI decide which paragraph to cite.\"}),`\n`,(0,t.jsx)(e.p,{children:\"These gaps are real, and they're the reason AI readiness scores add value on top of SEO metrics rather than duplicating them. The audit reveals blind spots that SEO dashboards miss.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Adding AI Readiness to SEO Reporting\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The workflow is the same before/after model that applies to \",(0,t.jsx)(e.a,{href:\"/blog/adding-ai-readiness-audit-to-website-redesign\",children:\"redesigns\"}),\" and \",(0,t.jsx)(e.a,{href:\"/blog/measuring-ai-visibility-before-after-content-refresh\",children:\"content refreshes\"}),\".\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Run the audit at the start of an SEO engagement. Include the AI readiness baseline in the kickoff report. Run it again at project milestones or at the end of the engagement. Include the comparison alongside traditional SEO metrics.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This is especially useful early in an engagement when ranking improvements are still building. Google can take weeks or months to reflect the impact of technical and on-page changes. But page-level readiness scores improve the moment the changes go live. Structured data is either there or it isn't. Static content ratio reflects what's on the page today.\"}),`\n`,(0,t.jsx)(e.p,{children:`For agencies, this matters. Clients want to see progress. Showing AI readiness gains in the first month, while ranking gains are still developing, keeps the client confident that the work is on track. It also expands the reporting narrative from \"we're improving your rankings\" to \"we're improving how you show up across search and AI.\"`}),`\n`,(0,t.jsx)(e.h2,{children:\"The Bridge to Deeper AI Work\"}),`\n`,(0,t.jsx)(e.p,{children:\"The citation readiness factor in the Site Audit measures how well content is structured for AI to find, read, and cite. It looks at content organization, answer density, and how extractable the information is.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This factor is the closest current stand-in for how content performs in the full AI RAG pipeline. The RAG pipeline is the process AI uses to search the web, rank results, read page content, and decide which pieces to include in a response. Each step follows known algorithms. Citation readiness captures the content-side inputs to that pipeline.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For SEO teams, this creates a natural bridge. Improving citation readiness scores through standard SEO work builds the foundation for deeper AI optimization. Teams that track it now are positioning themselves to offer RAG pipeline optimization as the tooling matures.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Two Proof Points from One Engagement\"}),`\n`,(0,t.jsx)(e.p,{children:\"SEO work and AI readiness gains come from the same effort. The audit just makes the AI side visible.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Running it before and after doubles the proof from a single engagement. It shows clients a broader picture. And it positions the agency as a team that sees the full search landscape, not just the traditional rankings.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For the cost of a few extra clicks, that's a strong return.\"})]})}function l(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(d,{...n})}):d(n)}return k(b);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"3e:[\"$\",\"$L10\",\"using-ai-readiness-scores-to-validate-seo\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$ab\",\"title\":\"Using AI Readiness Scores to Validate SEO Work\",\"date\":\"2026-03-02\",\"image\":\"/images/blog/ai-readiness-validate-seo.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"Good SEO work often improves AI citation readiness as a side effect. Running an AI Readiness Audit before and after proves it.\",\"tags\":[\"AEO\",\"AI Readiness\",\"SEO\",\"Site Audit\",\"Agency Reporting\"],\"published\":true,\"_meta\":{\"filePath\":\"using-ai-readiness-scores-to-validate-seo.mdx\",\"fileName\":\"using-ai-readiness-scores-to-validate-seo.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"using-ai-readiness-scores-to-validate-seo\"},\"body\":\"$ac\",\"locale\":\"en\",\"path\":\"using-ai-readiness-scores-to-validate-seo\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"ad:T183e,"])</script>
2<script>self.__next_f.push([1,"Website redesigns get evaluated on three things: how they look, how fast they load, and whether SEO held up. That list is missing something. As AI-driven discovery grows, whether a site's content is easy for AI to find, read, and cite matters too.\n\nMost redesign projects don't measure this. They should. A redesign can improve Google PageSpeed scores while making the site harder for AI to cite. The two don't always move together.\n\nAn [AI Readiness Site Audit](/ai-readiness-audit) run before and after a redesign shows exactly what changed. For agencies, that's a deliverable most competitors don't include. For in-house teams hiring an agency, it's an independent way to verify the work.\n\n## Key Takeaways\n\n- Website redesigns can improve or damage AI citation readiness, and most teams never measure the difference.\n- An AI Readiness Audit scores pages across seven factors, each with specific redesign implications.\n- Running the audit before and after creates a scored comparison clients can see and understand right away.\n- In-house marketing teams can run the same audit on their own to evaluate whether a redesign helped or hurt AI visibility.\n\n## Why Redesigns Break AI Visibility\n\nSome of the most common redesign decisions carry hidden costs for AI readiness. Understanding the patterns helps teams catch problems before launch, not after.\n\n**Framework migrations.** Moving from server-rendered HTML to a JavaScript-heavy framework is the most common culprit. If key content only appears after JavaScript runs, AI can't see it. The static content ratio, which measures how much content is visible without JavaScript, can drop sharply after a migration. A page that scored 90 before might score 30 after, even though it looks identical to a human visitor.\n\n**Template changes.** New page templates often don't carry over the structured data from the old ones. If the previous design included JSON-LD for products, FAQs, or organization info, and the new templates don't, that structured data score drops to zero on every page that used the old template.\n\n**Design-first decisions.** Visual redesigns sometimes reduce text density in favor of images, animations, or whitespace. This can lower citation readiness and readability scores. AI needs text to cite. A page that replaces a detailed product description with a hero image and a tagline gives AI less to work with.\n\nNone of these are hypothetical. They happen on most redesign projects. And none of them show up in a standard SEO audit.\n\n## The Before/After Workflow\n\nThe process takes three steps.\n\n**Before the redesign:** Run the Site Audit on the pages being redesigned. If it's a full site redesign, audit the whole site. If it's a section or template change, audit the affected pages. Save the results as your baseline.\n\n**During the redesign:** Use the baseline scores to flag potential issues in staging. If the new template drops structured data, catch it before launch. If a framework change tanks static content ratio on key pages, the team can address it while they still have time.\n\n**After launch:** Run the audit again on the same pages. Compare the results. The output shows which factors improved, which declined, and by how much, at both the page level and the site level.\n\nOn [Agency Core plans](pricing), 2,500 audit pages per month means even large site redesigns are covered without overage concerns. The per-page view is especially useful here. It catches regressions on individual pages that might be hidden by an overall score that looks fine.\n\n## The Seal of AI Quality\n\nThe before/after comparison isn't just a quality check. It's a deliverable.\n\nAgencies can present the scored comparison as part of the redesign handoff. \"We didn't just improve your site's design and performance. We also improved its AI citation readiness by 23 points on average across your top 40 pages.\" That's a result the client can see, understand, and share internally.\n\nThink of it as a seal of quality for the AI side of the redesign. Most agencies don't offer this, which makes it a clear point of difference.\n\nFor clients who care about AI visibility, this deliverable answers a question they might not have thought to ask. For clients who don't yet care, it introduces the topic in a way that's tied to work they already paid for.\n\n**For in-house teams:** The same audit works as a verification tool. If you hired an agency for a redesign and want to know whether it helped or hurt your AI readiness, you can run it yourself. The scores are the same regardless of who runs the audit. This creates a healthy accountability loop where both sides can see the impact.\n\n## Which Factors Matter Most in a Redesign\n\nNot every audit factor is equally sensitive to redesign changes. Knowing where to look saves time.\n\n**Static Content Ratio** moves the most. Framework changes can swing this by 50 or more points in either direction. This is the single most important factor to watch during a redesign.\n\n**Structured Data** is binary on a per-schema basis. Either the JSON-LD is present and correct, or it isn't. Template changes tend to create all-or-nothing shifts here.\n\n**Performance for AI** can improve or decline depending on the new tech stack. Lighter frameworks and better caching help. Heavy JavaScript bundles and client-side rendering hurt.\n\n**Citation Readiness** changes when the content structure changes. Reorganizing content into clear sections with descriptive headings tends to help. Reducing text in favor of visual elements tends to hurt.\n\n**E-E-A-T Signals, Readability, and Accessibility** are less likely to shift in a redesign unless the content itself is being rewritten. These factors are more sensitive to content strategy changes than to design and template changes.\n\n## Redesigns Should Measure What AI Sees\n\nAI citation readiness should be part of how every redesign is evaluated. The audit makes it measurable in a few clicks. For agencies, it's a deliverable that sets you apart. For in-house teams, it's a way to verify that a redesign didn't create a new problem while solving an old one.\n\nEither way, it takes a redesign from \"looks great and loads fast\" to \"looks great, loads fast, and works for AI.\""])</script>
2<script>self.__next_f.push([1,"ae:T2272,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var w=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),y=(n,e)=\u003e{for(var i in e)s(n,i,{get:e[i],enumerable:!0})},o=(n,e,i,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let a of u(e))!f.call(n,a)\u0026\u0026a!==i\u0026\u0026s(n,a,{get:()=\u003ee[a],enumerable:!(r=p(e,a))||r.enumerable});return n};var v=(n,e,i)=\u003e(i=n!=null?g(m(n)):{},o(e||!n||!n.__esModule?s(i,\"default\",{value:n,enumerable:!0}):i,n)),b=n=\u003eo(s({},\"__esModule\",{value:!0}),n);var d=w((I,h)=\u003e{h.exports=_jsx_runtime});var A={};y(A,{default:()=\u003el});var t=v(d());function c(n){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Website redesigns get evaluated on three things: how they look, how fast they load, and whether SEO held up. That list is missing something. As AI-driven discovery grows, whether a site's content is easy for AI to find, read, and cite matters too.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most redesign projects don't measure this. They should. A redesign can improve Google PageSpeed scores while making the site harder for AI to cite. The two don't always move together.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"An \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" run before and after a redesign shows exactly what changed. For agencies, that's a deliverable most competitors don't include. For in-house teams hiring an agency, it's an independent way to verify the work.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Website redesigns can improve or damage AI citation readiness, and most teams never measure the difference.\"}),`\n`,(0,t.jsx)(e.li,{children:\"An AI Readiness Audit scores pages across seven factors, each with specific redesign implications.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Running the audit before and after creates a scored comparison clients can see and understand right away.\"}),`\n`,(0,t.jsx)(e.li,{children:\"In-house marketing teams can run the same audit on their own to evaluate whether a redesign helped or hurt AI visibility.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Why Redesigns Break AI Visibility\"}),`\n`,(0,t.jsx)(e.p,{children:\"Some of the most common redesign decisions carry hidden costs for AI readiness. Understanding the patterns helps teams catch problems before launch, not after.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Framework migrations.\"}),\" Moving from server-rendered HTML to a JavaScript-heavy framework is the most common culprit. If key content only appears after JavaScript runs, AI can't see it. The static content ratio, which measures how much content is visible without JavaScript, can drop sharply after a migration. A page that scored 90 before might score 30 after, even though it looks identical to a human visitor.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Template changes.\"}),\" New page templates often don't carry over the structured data from the old ones. If the previous design included JSON-LD for products, FAQs, or organization info, and the new templates don't, that structured data score drops to zero on every page that used the old template.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Design-first decisions.\"}),\" Visual redesigns sometimes reduce text density in favor of images, animations, or whitespace. This can lower citation readiness and readability scores. AI needs text to cite. A page that replaces a detailed product description with a hero image and a tagline gives AI less to work with.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"None of these are hypothetical. They happen on most redesign projects. And none of them show up in a standard SEO audit.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Before/After Workflow\"}),`\n`,(0,t.jsx)(e.p,{children:\"The process takes three steps.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Before the redesign:\"}),\" Run the Site Audit on the pages being redesigned. If it's a full site redesign, audit the whole site. If it's a section or template change, audit the affected pages. Save the results as your baseline.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"During the redesign:\"}),\" Use the baseline scores to flag potential issues in staging. If the new template drops structured data, catch it before launch. If a framework change tanks static content ratio on key pages, the team can address it while they still have time.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"After launch:\"}),\" Run the audit again on the same pages. Compare the results. The output shows which factors improved, which declined, and by how much, at both the page level and the site level.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"On \",(0,t.jsx)(e.a,{href:\"pricing\",children:\"Agency Core plans\"}),\", 2,500 audit pages per month means even large site redesigns are covered without overage concerns. The per-page view is especially useful here. It catches regressions on individual pages that might be hidden by an overall score that looks fine.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"The Seal of AI Quality\"}),`\n`,(0,t.jsx)(e.p,{children:\"The before/after comparison isn't just a quality check. It's a deliverable.\"}),`\n`,(0,t.jsx)(e.p,{children:`Agencies can present the scored comparison as part of the redesign handoff. \"We didn't just improve your site's design and performance. We also improved its AI citation readiness by 23 points on average across your top 40 pages.\" That's a result the client can see, understand, and share internally.`}),`\n`,(0,t.jsx)(e.p,{children:\"Think of it as a seal of quality for the AI side of the redesign. Most agencies don't offer this, which makes it a clear point of difference.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For clients who care about AI visibility, this deliverable answers a question they might not have thought to ask. For clients who don't yet care, it introduces the topic in a way that's tied to work they already paid for.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"For in-house teams:\"}),\" The same audit works as a verification tool. If you hired an agency for a redesign and want to know whether it helped or hurt your AI readiness, you can run it yourself. The scores are the same regardless of who runs the audit. This creates a healthy accountability loop where both sides can see the impact.\"]}
2),`\n`,(0,t.jsx)(e.h2,{children:\"Which Factors Matter Most in a Redesign\"}),`\n`,(0,t.jsx)(e.p,{children:\"Not every audit factor is equally sensitive to redesign changes. Knowing where to look saves time.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Static Content Ratio\"}),\" moves the most. Framework changes can swing this by 50 or more points in either direction. This is the single most important factor to watch during a redesign.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Structured Data\"}),\" is binary on a per-schema basis. Either the JSON-LD is present and correct, or it isn't. Template changes tend to create all-or-nothing shifts here.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Performance for AI\"}),\" can improve or decline depending on the new tech stack. Lighter frameworks and better caching help. Heavy JavaScript bundles and client-side rendering hurt.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Citation Readiness\"}),\" changes when the content structure changes. Reorganizing content into clear sections with descriptive headings tends to help. Reducing text in favor of visual elements tends to hurt.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"E-E-A-T Signals, Readability, and Accessibility\"}),\" are less likely to shift in a redesign unless the content itself is being rewritten. These factors are more sensitive to content strategy changes than to design and template changes.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"Redesigns Should Measure What AI Sees\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI citation readiness should be part of how every redesign is evaluated. The audit makes it measurable in a few clicks. For agencies, it's a deliverable that sets you apart. For in-house teams, it's a way to verify that a redesign didn't create a new problem while solving an old one.\"}),`\n`,(0,t.jsx)(e.p,{children:'Either way, it takes a redesign from \"looks great and loads fast\" to \"looks great, loads fast, and works for AI.\"'})]})}function l(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(c,{...n})}):c(n)}return b(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"3f:[\"$\",\"$L10\",\"adding-ai-readiness-audit-to-website-redesign\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$ad\",\"title\":\"Adding an AI Readiness Audit to Your Website Redesign Deliverables\",\"date\":\"2026-03-01\",\"image\":\"/images/blog/ai-readiness-audit-website-redesign.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"Website redesigns can help or hurt AI citation readiness. A scored before/after audit shows which, and gives agencies a deliverable most rivals don't offer.\",\"tags\":[\"AEO\",\"AI Readiness\",\"Site Audit\",\"Website Redesign\",\"Agency Deliverables\"],\"published\":true,\"_meta\":{\"filePath\":\"adding-ai-readiness-audit-to-website-redesign.mdx\",\"fileName\":\"adding-ai-readiness-audit-to-website-redesign.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"adding-ai-readiness-audit-to-website-redesign\"},\"body\":\"$ae\",\"locale\":\"en\",\"path\":\"adding-ai-readiness-audit-to-website-redesign\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"af:T13f4,"])</script>
2<script>self.__next_f.push([1,"Most agency pitches start with a capabilities deck. Slides about the team, past clients, and a list of services. The prospect has seen this before. Probably three times this month.\n\nAI visibility data flips the pitch. Instead of talking about what you can do, you walk in with specific findings about the prospect's brand. How AI platforms describe them. Where they show up in discovery queries. Where they do not. Which rivals appear instead.\n\nThat is not a pitch. That is a conversation the prospect did not know they needed.\n\n## Key Takeaways\n\n- A free AI Visibility Report preview generates prospect-specific insights in minutes from just a domain name.\n- Brand consistency gaps and competitive blind spots are the strongest opening data points for a new business conversation.\n- An AI Readiness Site Audit turns \"here is your problem\" into \"here is our proposal\" by surfacing specific, scored issues at the page level.\n- The workflow costs almost nothing and produces a deliverable the prospect can share with their team.\n\n## The Two-Minute Prospect Audit\n\nThe [Visibility Report preview](/ai-visibility-report) on the Spyglasses marketing site is free to run. Enter a domain name. In a few minutes, you have a snapshot of how AI platforms represent that brand.\n\nIt includes brand consistency scores across AI platforms, competitive positioning in discovery queries, citation source analysis, and technical site metrics. For a prospect meeting, this is often enough to start the conversation. You can show the prospect how ChatGPT describes their brand versus their own website copy. You can point to the discovery queries where their competitors appear and they do not.\n\nThe grounding search rankings in the report go further. You can say \"when someone asks ChatGPT for the best product in your category, your competitor ranks third in the underlying search. You rank eleventh.\" That is a specific, concrete pain point. It's hard to ignore.\n\n## Turning Insights into a Proposal\n\nOnce the prospect is engaged, the conversation needs to move from \"here is your problem\" to \"here is what we would fix.\" This is where the [AI Readiness Site Audit](/ai-readiness-audit) comes in.\n\nRun the audit on the prospect's top five to ten pages. The seven-factor scoring shows which pages have the biggest gaps and which factors need work. Static content ratio reveals whether key content is hidden behind JavaScript. Structured data scores show whether JSON-LD schemas are present and complete. Citation readiness scores show how well the content is organized for AI to extract and cite.\n\nThis turns into a proposal grounded in the prospect's own site. Instead of \"we offer AEO services,\" the pitch becomes \"your three highest-traffic product pages score below 40 on citation readiness. Your main landing page loads most of its content through JavaScript, which AI cannot read. We would start there.\"\n\nThat level of specificity is hard to match with a generic capabilities deck.\n\n## What Makes This Different from a Free SEO Audit\n\nFree SEO audits are everywhere. Tools like SEMRush and Ahrefs offer them, and most prospects have seen several. The novelty's worn off.\n\nAI visibility data is still new enough that most prospects haven't seen it before. Many don't know that AI platforms describe their brand at all, let alone that they can measure how accurately.\n\nMore importantly, AI readiness scores measure something different from SEO scores. A page can rank well in Google and still be invisible to AI. This happens when the page loads content through JavaScript, lacks structured data, or has low citation readiness. A strong SEO score does not guarantee a strong AI readiness score. That gap is a real finding, not a repackaged version of something the prospect already knows.\n\nFor agencies, this is the key point. AI visibility data opens a conversation that no other audit tool can start.\n\n## Making It Repeatable\n\nA good sales tool only works if the team actually uses it. The workflow needs to be fast and low-cost enough to run for every qualified prospect, not just the high-priority ones.\n\nOn a Spyglasses [Agency plan](/pricing) you can run multiple AI Visibility reports and audit up to 2,500 pages per month. It pays for itself with the first new client you land. \n\nA few ways to build this into a regular process: prep a report before every scheduled discovery call. For in-person meetings, send the shareable web page link or send the PDF ahead of the meeting so the prospect arrives with context.For Zoom presentations you can share the report in real-time. After the call, follow up with the Site Audit findings as a scoping document.\n\n## The Strongest Pitch Is Their Own Data\n\nThe best sales tool is 
2information the prospect does not have about their own brand. AI visibility data provides that. The Visibility Report shows where they stand in AI. The Site Audit shows what is holding them back. Together, they turn a cold introduction into a scoped, data-backed proposal.\n\nThe agency that shows up with the prospect's own data wins the conversation. The one that shows up with a deck does not."])</script>
2<script>self.__next_f.push([1,"b0:T1bd9,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var l=Object.create;var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var m=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),y=(i,e)=\u003e{for(var n in e)o(i,n,{get:e[n],enumerable:!0})},a=(i,e,n,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let s of w(e))!f.call(i,s)\u0026\u0026s!==n\u0026\u0026o(i,s,{get:()=\u003ee[s],enumerable:!(r=u(e,s))||r.enumerable});return i};var b=(i,e,n)=\u003e(n=i!=null?l(g(i)):{},a(e||!i||!i.__esModule?o(n,\"default\",{value:i,enumerable:!0}):n,i)),v=i=\u003ea(o({},\"__esModule\",{value:!0}),i);var c=m((k,h)=\u003e{h.exports=_jsx_runtime});var A={};y(A,{default:()=\u003ep});var t=b(c());function d(i){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",ul:\"ul\",...i.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"Most agency pitches start with a capabilities deck. Slides about the team, past clients, and a list of services. The prospect has seen this before. Probably three times this month.\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI visibility data flips the pitch. Instead of talking about what you can do, you walk in with specific findings about the prospect's brand. How AI platforms describe them. Where they show up in discovery queries. Where they do not. Which rivals appear instead.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That is not a pitch. That is a conversation the prospect did not know they needed.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"A free AI Visibility Report preview generates prospect-specific insights in minutes from just a domain name.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Brand consistency gaps and competitive blind spots are the strongest opening data points for a new business conversation.\"}),`\n`,(0,t.jsx)(e.li,{children:'An AI Readiness Site Audit turns \"here is your problem\" into \"here is our proposal\" by surfacing specific, scored issues at the page level.'}),`\n`,(0,t.jsx)(e.li,{children:\"The workflow costs almost nothing and produces a deliverable the prospect can share with their team.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"The Two-Minute Prospect Audit\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Visibility Report preview\"}),\" on the Spyglasses marketing site is free to run. Enter a domain name. In a few minutes, you have a snapshot of how AI platforms represent that brand.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"It includes brand consistency scores across AI platforms, competitive positioning in discovery queries, citation source analysis, and technical site metrics. For a prospect meeting, this is often enough to start the conversation. You can show the prospect how ChatGPT describes their brand versus their own website copy. You can point to the discovery queries where their competitors appear and they do not.\"}),`\n`,(0,t.jsx)(e.p,{children:`The grounding search rankings in the report go further. You can say \"when someone asks ChatGPT for the best product in your category, your competitor ranks third in the underlying search. You rank eleventh.\" That is a specific, concrete pain point. It's hard to ignore.`}),`\n`,(0,t.jsx)(e.h2,{children:\"Turning Insights into a Proposal\"}),`\n`,(0,t.jsxs)(e.p,{children:['Once the prospect is engaged, the conversation needs to move from \"here is your problem\" to \"here is what we would fix.\" This is where the ',(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" comes in.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Run the audit on the prospect's top five to ten pages. The seven-factor scoring shows which pages have the biggest gaps and which factors need work. Static content ratio reveals whether key content is hidden behind JavaScript. Structured data scores show whether JSON-LD schemas are present and complete. Citation readiness scores show how well the content is organized for AI to extract and cite.\"}),`\n`,(0,t.jsx)(e.p,{children:`This turns into a proposal grounded in the prospect's own site. Instead of \"we offer AEO services,\" the pitch becomes \"your three highe
2st-traffic product pages score below 40 on citation readiness. Your main landing page loads most of its content through JavaScript, which AI cannot read. We would start there.\"`}),`\n`,(0,t.jsx)(e.p,{children:\"That level of specificity is hard to match with a generic capabilities deck.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What Makes This Different from a Free SEO Audit\"}),`\n`,(0,t.jsx)(e.p,{children:\"Free SEO audits are everywhere. Tools like SEMRush and Ahrefs offer them, and most prospects have seen several. The novelty's worn off.\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI visibility data is still new enough that most prospects haven't seen it before. Many don't know that AI platforms describe their brand at all, let alone that they can measure how accurately.\"}),`\n`,(0,t.jsx)(e.p,{children:\"More importantly, AI readiness scores measure something different from SEO scores. A page can rank well in Google and still be invisible to AI. This happens when the page loads content through JavaScript, lacks structured data, or has low citation readiness. A strong SEO score does not guarantee a strong AI readiness score. That gap is a real finding, not a repackaged version of something the prospect already knows.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For agencies, this is the key point. AI visibility data opens a conversation that no other audit tool can start.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Making It Repeatable\"}),`\n`,(0,t.jsx)(e.p,{children:\"A good sales tool only works if the team actually uses it. The workflow needs to be fast and low-cost enough to run for every qualified prospect, not just the high-priority ones.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"On a Spyglasses \",(0,t.jsx)(e.a,{href:\"/pricing\",children:\"Agency plan\"}),\" you can run multiple AI Visibility reports and audit up to 2,500 pages per month. It pays for itself with the first new client you land.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"A few ways to build this into a regular process: prep a report before every scheduled discovery call. For in-person meetings, send the shareable web page link or send the PDF ahead of the meeting so the prospect arrives with context.For Zoom presentations you can share the report in real-time. After the call, follow up with the Site Audit findings as a scoping document.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Strongest Pitch Is Their Own Data\"}),`\n`,(0,t.jsx)(e.p,{children:\"The best sales tool is information the prospect does not have about their own brand. AI visibility data provides that. The Visibility Report shows where they stand in AI. The Site Audit shows what is holding them back. Together, they turn a cold introduction into a scoped, data-backed proposal.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The agency that shows up with the prospect's own data wins the conversation. The one that shows up with a deck does not.\"})]})}function p(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(d,{...i})}):d(i)}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"40:[\"$\",\"$L10\",\"how-to-use-ai-visibility-data-to-win-new-clients\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$af\",\"title\":\"How to Use AI Visibility Data to Win New Clients\",\"date\":\"2026-02-28\",\"image\":\"/images/blog/ai-visibility-data-win-clients.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"Generate prospect-specific AI visibility insights in minutes from a domain name. Turn a cold pitch into a data-backed conversation.\",\"tags\":[\"AEO\",\"AI Visibility\",\"Agency Growth\",\"Lead Generation\",\"Sales\"],\"published\":true,\"_meta\":{\"filePath\":\"how-to-use-ai-visibility-data-to-win-new-clients.mdx\",\"fileName\":\"how-to-use-ai-visibility-data-to-win-new-clients.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-to-use-ai-visibility-data-to-win-new-clients\"},\"body\":\"$b0\",\"locale\":\"en\",\"path\":\"how-to-use-ai-visibility-data-to-win-new-clients\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"b1:T166f,"])</script>
2<script>self.__next_f.push([1,"The biggest gap in most AEO offerings sits between \"here is your score\" and \"here is what we changed.\" AI visibility reports show how a brand appears across platforms today. AI readiness audits show why, surfacing the page-level issues that hold back citations.\n\nWhen agencies pair these two tools, they get a clear before-and-after. One that ties specific work to scored, measured progress.\n\nThis article covers four ways agencies apply this pairing. Each one follows the same pattern: measure the current state, do the work, measure again, show the change.\n\n## Key Takeaways\n\n- An AI Visibility Report shows how AI platforms represent a brand. An AI Readiness Site Audit shows why, scoring pages across seven factors.\n- Together they create a before/after framework for any AEO project.\n- Agencies use the pairing for lead generation, project scoping, and proof of impact.\n- In-house marketing teams can apply the same approach to verify agency work or track internal projects.\n\n## Two Tools, One Framework\n\nAn [AI Visibility Report](/ai-visibility-report) is the outside view. It shows how AI platforms describe a brand and where that brand appears in discovery queries. It includes brand consistency scores, grounding search rankings, and citation source breakdowns by type and authority. This goes well beyond basic mention tracking.\n\nAn [AI Readiness Site Audit](/ai-readiness-audit) is the inside view. It scores individual pages across seven weighted factors: static content ratio, citation readiness, structured data, AI performance, E-E-A-T signals, readability, and accessibility. Each factor measures something specific. A page either has JSON-LD schema or it does not. The static content ratio is a number, not a guess.\n\nThink of AI visibility as a series of gates. AI has to find your content, read it, then score it as relevant before citing it. The Visibility Report shows the end result of that process. The Site Audit shows what happens at each gate.\n\nUsed alone, both tools are helpful. Used together, they show cause and effect.\n\n## The Before/After Model\n\n![An abstract image showing how to use audits as part of a structured, experiment-based AEO framework](/images/blog/before-and-after-comparison-ai-audit.webp)\n\nThe core framework is simple. Run both tools before a project starts. Do the work. Run them again. Compare.\n\nThis works because the audit factors are stable. Prompt tracking metrics shift between runs because AI outputs vary. But the Site Audit scores the page itself. Structured data is present or missing. Reading level is a fixed value. Static content ratio is concrete.\n\nThat stability makes the before/after comparison reliable. Say an agency shows that citation readiness went from 42 to 78 on five priority pages. That number reflects real changes to real pages. It will not look different next week because the AI gave a different answer.\n\nThe model works for any project type. Redesign, content refresh, SEO project, or new pages. Capture the baseline, do the work, measure the delta.\n\n## Four Ways Agencies Apply This\n\n### Winning new business\n\nA free [Visibility Report preview](/ai-visibility-report) takes minutes to generate from just a domain name. It shows how AI platforms describe the brand and which rivals appear instead. That is not a generic pitch. It is a data-driven conversation the prospect did not know they needed.\n\nThe Site Audit deepens the pitch. Run it on the top pages and you get a ranked list of issues to fix. The report opens the door. The audit scopes the proposal. [Read the full workflow.](/blog/how-to-use-ai-visibility-data-to-win-new-clients)\n\n### Website redesign validation\n\nRedesigns often affect AI citation readiness in ways teams do not expect. Moving to a JavaScript-heavy framework can tank static content scores. New templates might drop the schema markup the old ones had.\n\nRun the audit before the redesign and after launch, on the same pages. The scored comparison shows what improved and what slipped. For agencies, this is a deliverable most competitors do not offer. In-house teams can run the same audit on their own site to verify the impact. [See the full approach.](/blog/adding-ai-readiness-audit-to-website-redesign)\n\n### Content refresh measurement\n\nWhen teams rewrite key pages, add FAQ sections, or add structured data, the audit captures the impact. Run it on only the changed pages, before and after.\n\nThe per-factor breakdown shows which changes drove the gains. White-labeled exports make the results client-ready. [Here is how to set it up.](/blog/measuring-ai-visibility-before-after-content-refresh)\n\n### SEO work validation\n\nGood SEO work often lifts AI readiness as a side benefit. Better page structure, cleaner markup, and stronger content all help AI find and cite pages more easily.\n\nRunning the audit before and after SEO work gives agencies a second proof point from the same effort. Page-level readiness scores improve right away, even when ranking gains take months. The citation readiness factor also serves as the closest current stand-in for full RAG pipeline performance. Agencies tracking it now are building toward deeper work. [Learn the details.](/blog/u
2sing-ai-readiness-scores-to-validate-seo)\n\n## Moving from Scores to Results\n\nMost AI visibility tools report on the outcome. They track prompts, count mentions, and show a score. Useful, but it stops short of helping clients improve.\n\nThe framework here closes that gap. A Visibility Report paired with a Site Audit connects real work to scored, measured change. That is the difference between \"here is your visibility score\" and \"here is what we changed and here is the proof.\"\n\nFor agencies building an AEO practice, that difference wins and retains clients."])</script>
2<script>self.__next_f.push([1,"b2:T1fdf,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var m=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),b=(i,e)=\u003e{for(var a in e)r(i,a,{get:e[a],enumerable:!0})},o=(i,e,a,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of u(e))!w.call(i,n)\u0026\u0026n!==a\u0026\u0026r(i,n,{get:()=\u003ee[n],enumerable:!(s=f(e,n))||s.enumerable});return i};var y=(i,e,a)=\u003e(a=i!=null?p(g(i)):{},o(e||!i||!i.__esModule?r(a,\"default\",{value:i,enumerable:!0}):a,i)),k=i=\u003eo(r({},\"__esModule\",{value:!0}),i);var c=m((T,h)=\u003e{h.exports=_jsx_runtime});var v={};b(v,{default:()=\u003el});var t=y(c());function d(i){let e={a:\"a\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",p:\"p\",ul:\"ul\",...i.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:'The biggest gap in most AEO offerings sits between \"here is your score\" and \"here is what we changed.\" AI visibility reports show how a brand appears across platforms today. AI readiness audits show why, surfacing the page-level issues that hold back citations.'}),`\n`,(0,t.jsx)(e.p,{children:\"When agencies pair these two tools, they get a clear before-and-after. One that ties specific work to scored, measured progress.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This article covers four ways agencies apply this pairing. Each one follows the same pattern: measure the current state, do the work, measure again, show the change.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"An AI Visibility Report shows how AI platforms represent a brand. An AI Readiness Site Audit shows why, scoring pages across seven factors.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Together they create a before/after framework for any AEO project.\"}),`\n`,(0,t.jsx)(e.li,{children:\"Agencies use the pairing for lead generation, project scoping, and proof of impact.\"}),`\n`,(0,t.jsx)(e.li,{children:\"In-house marketing teams can apply the same approach to verify agency work or track internal projects.\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Two Tools, One Framework\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"An \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" is the outside view. It shows how AI platforms describe a brand and where that brand appears in discovery queries. It includes brand consistency scores, grounding search rankings, and citation source breakdowns by type and authority. This goes well beyond basic mention tracking.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"An \",(0,t.jsx)(e.a,{href:\"/ai-readiness-audit\",children:\"AI Readiness Site Audit\"}),\" is the inside view. It scores individual pages across seven weighted factors: static content ratio, citation readiness, structured data, AI performance, E-E-A-T signals, readability, and accessibility. Each factor measures something specific. A page either has JSON-LD schema or it does not. The static content ratio is a number, not a guess.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Think of AI visibility as a series of gates. AI has to find your content, read it, then score it as relevant before citing it. The Visibility Report shows the end result of that process. The Site Audit shows what happens at each gate.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Used alone, both tools are helpful. Used together, they show cause and effect.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Before/After Model\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/before-and-after-comparison-ai-audit.webp\",alt:\"An abstract image showing how to use audits as part of a structured, experiment-based AEO framework\"})}),`\n`,(0,t.jsx)(e.p,{children:\"The core framework is simple. Run both tools before a project starts. Do the work. Run them again. Compare.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This works because the audit factors are stable. Prompt tracking metrics shift between runs because AI outputs vary. But the Site Audit scores the page itself. Structured data is present or missing. Reading level is a fixed value. Static content ratio is concrete.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That stability makes the before/after comparison reliable. Say an agency shows that citation readiness went from 42 to 78 on five priority pages. That number reflects real changes to real pages. It will not look different next week because the AI gave a different answer.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The model works for any project type. Redesign, content refresh, SEO project, or new pages. Capture the baseline, do the work, measure the delta.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Four Ways Agencies Apply This\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Winning new business\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"A free \",(0,t.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"Visibility Report preview\"}),\" takes minutes to generate from just a domain name. It shows how AI platforms describe the brand and which rivals appear instead. That is not a generic pitch. It is a data-driven conversation the prospect did not know they needed.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"The Site Audit deepens the pitch. Run it on the top pages and you get a ranked list of issues to fix. The report opens the door. The audit scopes the proposal. \",(0,t.jsx)(e.a,{href:\"/blog/how-to-use-ai-visibility-data-to-win-new-clients\",children:\"Read the full workflow.\"})]}),`\n`,(0,t.jsx)(e.h3,{children:\"Website redesign validation\"}),`\n`,(0,t.jsx)(e.p,{children:\"Redesigns often affect AI citation readiness in ways teams do not expect. Moving to a JavaScript-heavy framework can tank static content scores. New templates might drop the schema markup the old ones had.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Run the audit before the redesign and after launch, on the same pages. The scored comparison shows what improved and what slipped. For agencies, this is a deliverable most competitors do not offer. In-house teams can run the same audit on their own site to verify the impact. \",(0,t.jsx)(e.a,{href:\"/blog/adding-ai-readiness-audit-to-website-redesign\",children:\"See the full approach.\"})]}),`\n`,(0,t.jsx)(e.h3,{children:\"Content refresh measurement\"}),`\n`,(0,t.jsx)(e.p,{children:\"When teams rewrite key pages, add FAQ sections, or add structured data, the audit captures the impact. Run it on only the changed pages, before and after.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"The per-factor breakdown shows which changes drove the gains. White-labeled exports make the results client-ready. \",(0,t.jsx)(e.a,{href:\"/blog/measuring-ai-visibility-before-after-content-refresh\",children:\"Here is how to set it up.\"})]}),`\n`,(0,t.jsx)(e.h3,{children:\"SEO work validation\"}),`\n`,(0,t.jsx)(e.p,{children:\"Good SEO work often lifts AI readiness as a side benefit. Better page structure, cleaner markup, and stronger content all help AI find and cite pages more easily.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"Running the audit before and after SEO work gives agencies a second proof point from the same effort. Page-level readiness scores improve right away, even when ranking gains take months. The citation readiness factor also serves as the closest current stand-in for full RAG pipeline performance. Agencies tracking it now are building toward deeper work. \",(0,t.jsx)(e.a,{href:\"/blog/using-ai-readiness-scores-to-validate-seo\",children:\"Learn the details.\"})]}),`\n`,(0,t.jsx)(e.h2,{children:\"Moving from Scores to Results\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most AI visibility tools report on the outcome. They track prompts, count mentions, and show a score. Useful, but it stops short of helping clients improve.\"}),`\n`,(0,t.jsx)(e.p,{children:'The framework here closes that gap. A Visibility Report paired with a Site Audit connects real work to 
2scored, measured change. That is the difference between \"here is your visibility score\" and \"here is what we changed and here is the proof.\"'}),`\n`,(0,t.jsx)(e.p,{children:\"For agencies building an AEO practice, that difference wins and retains clients.\"})]})}function l(i={}){let{wrapper:e}=i.components||{};return e?(0,t.jsx)(e,{...i,children:(0,t.jsx)(d,{...i})}):d(i)}return k(v);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"41:[\"$\",\"$L10\",\"how-agencies-use-ai-audits-to-win-retain-clients\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$b1\",\"title\":\"How Agencies Use AI Audits to Win and Retain Clients\",\"date\":\"2026-02-27\",\"image\":\"/images/blog/how-agencies-use-ai-audits.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"excerpt\":\"The gap between AI visibility scores and client results is where agencies lose deals. Two tools close that gap.\",\"tags\":[\"AEO\",\"AI Visibility\",\"Agency Growth\",\"AI Readiness\",\"Site Audit\"],\"published\":true,\"_meta\":{\"filePath\":\"how-agencies-use-ai-audits-to-win-retain-clients.mdx\",\"fileName\":\"how-agencies-use-ai-audits-to-win-retain-clients.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"how-agencies-use-ai-audits-to-win-retain-clients\"},\"body\":\"$b2\",\"locale\":\"en\",\"path\":\"how-agencies-use-ai-audits-to-win-retain-clients\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"b3:T49d8,"])</script>
2<script>self.__next_f.push([1,"PR firms face a growing challenge. Clients want to know how their brands appear in AI search results. But most AI visibility tools are built for SEO agencies. They focus on keyword rankings and organic traffic. These metrics matter less for PR teams who need to track brand reputation, message accuracy, and share of voice.\n\nThis guide reviews the best AI visibility tools for PR firms. We tested each platform against eight criteria that matter most to communications teams. These criteria cover everything from brand accuracy to client reporting.\n\n## The Evaluation Framework\n\nPR firms need more than basic mention tracking. The eight criteria below show what communications teams should look for. These features help protect brand reputation, prove ROI, and guide strategic decisions.\n\n| Evaluation Criteria                         | Why It Matters for PR Firms                                                                |\n| :------------------------------------------ | :----------------------------------------------------------------------------------------- |\n| **Brand Consistency Scoring**               | Ensures accurate brand representation across AI models and web searches                    |\n| **Multi-Platform Coverage**                 | Monitors all major AI assistants, not just one or two platforms                            |\n| **Feature \\\u0026 Differentiator Accuracy**      | Validates that AI platforms correctly describe product features and competitive advantages |\n| **Discovery Query Tracking**                | Identifies which questions trigger brand mentions to inform content strategy               |\n| **Compet
2itive Benchmarking**                | Tracks multiple competitors simultaneously with customizable lists                         |\n| **White-Labeling \\\u0026 Workflow Integration**  | Exports data into presentation-ready formats like PDF and PowerPoint                       |\n| **Historical Trending \\\u0026 Change Detection** | Measures visibility shifts after PR campaigns, launches, or crises                         |\n| **Category Entry Point Analysis**           | Identifies buying situations and use cases where brands appear                             |\n\n---\n\n## Platform Comparison Chart\n\n| Tool                     | Brand Consistency | Multi-Platform | Feature Accuracy | Query Tracking | Competitive Benchmarking | White-Labeling | Historical Trends | Category Entry Points | Pricing | **Overall** |\n| :----------------------- | :---------------- | :------------- | :--------------- | :------------- | :----------------------- | :------------- | :---------------- | :-------------------- | :------ | :---------- |\n| **Spyglasses**           | Full              | Full           | Full             | Full           | Full                     | Full           | Full              | Full                  | $$      | **8/8**     |\n| **Meltwater GenAI Lens** | Full              | Full           | Full             | Full           | Full                     | Full           | Full              | Limited               | $$$$$   | **7.5/8**   |\n| **Profound**             | Full              | Full           | Full             | Full           | Full                     | Full           | Full              | Full                  | $$$$$   | **8/8**     |\n| **Peec AI**              | Limited           | Full           | Limited          | Full           | Full                     | Limited        | Full              | None                  | $$      | **5/8**     |\n| **Gumshoe AI**           | Limited           | Full           | Limited          | Full           | Full                     | Limited        | Full              | Full                  | $$$     | **5.5/8**   |\n| **Scrunch AI**           | Full              | Full           | Full             | Full           | Full                     | Full           | Full              | Full                  | $$$$    | **8/8**     |\n| **Otterly.AI**           | Limited           | Full           | Limited          | Full           | Limited                  | Limited        | Full              | None                  | $       | **4/8**     |\n| **SEMRush AI Toolkit**   | Limited           | Full           | Limited          | Full           | Full                     | Full           | Full              | Limited               | $$$     | **5.5/8**   |\n\n**NOTE: Because pricing can depend on several factors we use a price classification rather than list specifics:** \\$ = Under \\$50/mo | $$ = \\$50-250/mo | $$$ = \\$250-500/mo | $$$$ = \\$500-1,000/mo | $$$$$ = \\$1,000+/mo or enterprise pricing\n\n![A comparison chart showing 8 AI Visibility platforms and their support for features important to PR firms](/images/blog/ai-visibility-tool-selection-chart.webp)\n\n---\n\n## Detailed Platform Analysis\n\n### Spyglasses\n\n**Overall Score: 8/8** | **Pricing: $$**\n\nSpyglasses is an AI visibility platform built for PR firms first. The platform combines brand consistency scoring with competitive analysis. It also offers white-label reporting at an accessible price.\n\n**Key Strengths:**\n\n- **Brand Consistency Scoring**: Measures how each AI platform describes your brand. Covers ChatGPT, Claude, Perplexity, and Google Gemini. Shows consistency gaps so you know where messaging needs work.\n- **Multi-Platform Coverage**: Tracks all major AI assistants. This includes ChatGPT, Google AI Overviews, Claude, Perplexity, and Google Gemini. Works with both standard and web-browsing modes.\n- **Feature \u0026 Differentiator Accuracy**: Checks if AI platforms describe your product features correctly. Compares AI descriptions against your actual brand messaging.\n- **Discovery Query Tracking**: Shows which prompts trigger brand mentions. Tracks share of voice, mentions, and citation sources.\n- **Compet
2itive Benchmarking**: Monitors multiple competitors with custom lists. Shows how often competitors appear in AI responses.\n- **White-Label Reports**: Creates presentation-ready PDF reports branded for your agency. Reports include executive summaries and competitor comparisons.\n- **Historical Trending**: Tracks changes over time. Helps measure the impact of PR campaigns, launches, or crisis response.\n- **Category Entry Point Analysis**: Shows buying situations where brands appear. Tracks how customer journeys surface brand mentions.\n- **Agency-Friendly Pricing**: Starts at $199/month for agency plans. Uses usage-based pricing. No enterprise minimums or long contracts required.\n\n**Limitations:**\n\n- **Newer Platform**: Less established than enterprise tools like Meltwater.\n- **Limited Traditional Media Integration**: Focuses on AI visibility rather than traditional media monitoring.\n\n**Best For**: PR firms who need brand consistency, share of voice, and other PR-focused metrics along with white-label reporting at a price point that doesn't erode margins.\n\n---\n\n### Meltwater GenAI Lens\n\n**Overall Score: 7.5/8** | **Pricing: $$$$$**\n\nMeltwater has added AI visibility tracking to its media monitoring platform. The GenAI Lens serves organizations that already use Meltwater's tools.\n\n**Key Strengths:**\n\n- **Unified Dashboard**: Shows AI visibility metrics alongside traditional media and social listening data. Everything lives in one interface.\n- **Multi-Platform Coverage**: Monitors ChatGPT, Claude, Gemini, Perplexity, Grok, and DeepSeek. Provides real-time monitoring.\n- **Competitive Intelligence**: Tracks competitor mentions across AI platforms. Includes share-of-voice analysis.\n- **Risk Detection**: Finds misinformation and sentiment shifts across AI platforms.\n- **Exportable Insights**: Includes sentiment, emotion, keywords, and source links for stakeholder reports.\n\n**Limitations:**\n\n- **Category Entry Point Analysis**: Tracks prompts and topics. Does not generate prompts based on buying situations.\n- **Enterprise Pricing**: Starts well above $1,000/month. This makes it less accessible to smaller PR firms.\n- **Bundled Product**: AI visibility is part of a larger platform. You may pay for features you don't need.\n\n**Best For**: Large PR agencies that already use Meltwater. Good for teams that want AI visibility added to existing media monitoring.\n\n---\n\n### Profound\n\n**Overall Score: 8/8** | **Pricing: $$$$$**\n\nProfound is a venture-funded platform built for AI visibility tracking. It captures data from actual AI interfaces rather than relying only on API calls. It primarily focuses on marketing teams at larger organizations.\n\n**Key Strengths:**\n\n- **Direct Interface Monitoring**: Queries AI search engine front-ends like ChatGPT with browsing and Perplexity's real-time search.\n- **Multi-System Intelligence**: Aggregates results from 10+ AI engines. This includes ChatGPT, Claude, Perplexity, Gemini, Copilot, DeepSeek, Grok, and Meta AI.\n- **Brand Consistency Scoring**: Includes sentiment analysis and context tracking.\n- **Prompt Volume Data**: Uses real user prompt data to recommend valuable queries to track.\n- **Competitive Benchmarking**: Provides competitor analysis with citation tracking.\n- **Historical Trending**: Tracks changes with daily or weekly monitoring.\n\n**Limitations:**\n\n- **Enterprise Pricing**: Starts at \\$4,000 - \\$15,000/month.\n- **Data Freshness**: Some users report data updates may lag several days.\n- **Complexity**: Has a steep learning curve for non-technical users.\n\n**Best For**: Internal marketing teams that also handle PR and have technical staff and budget for enterprise-level tools.\n\n---\n\n### Peec AI\n\n**Overall Score: 5/8** | **Pricing: $$**\n\nPeec AI offers a mid-range option focused on simplicity. It works well for marketing teams tracking AI search visibility.\n\n**Key Strengths:**\n\n- **Multi-Platform Coverage**: Monitors ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews. Runs prompts daily.\n- **Discovery Query Tracking**: Has a prompt management system. Suggests prompts based on website content.\n- **Compet
2itive Benchmarking**: Tracks share of voice and competitor movement.\n- **Sentiment Tracking**: Includes brand sentiment analysis.\n- **Quick Setup**: Fast setup with suggested prompts and onboarding help.\n\n**Limitations:**\n\n- **Brand Consistency**: No scoring or accuracy checking for brand descriptions.\n- **Feature Accuracy**: Limited ability to verify if AI platforms describe products correctly.\n- **White-Labeling**: Basic export only. No dedicated white-labeling for client presentations.\n- **Category Entry Points**: No automated analysis of buying situations.\n- **Historical Data**: Only 30 days of history on lower-tier plans.\n\n**Best For**: Marketing agencies who need simple AI visibility tracking without enterprise cost.\n\n---\n\n### Gumshoe AI\n\n**Overall Score: 5.5/8** | **Pricing: $$$**\n\nGumshoe uses persona-based tracking. It shows how different audience groups see brands in AI search results.\n\n**Key Strengths:**\n\n- **Persona-Based Tracking**: Creates buyer personas like CTOs or marketing directors. Tracks how AI shows your brand to each group.\n- **Multi-Platform Coverage**: Tracks ChatGPT, Gemini, AI Overviews, Perplexity, Claude, Grok, and DeepSeek.\n- **Category Entry Point Analysis**: Shows which buying situations trigger brand mentions for different personas.\n- **Discovery Query Tracking**: Runs conversations with AI models to find which prompts mention your brand.\n- **Competitive Benchmarking**: \"Share of LLM\" metric shows how often brands get mentioned versus competitors.\n\n**Limitations:**\n\n- **Brand Consistency**: No sentiment analysis. Shows mentions but not if they're positive or negative.\n- **White-Labeling**: Limited export and reporting for client presentations.\n- **Workflow Integration**: Works mainly as a standalone monitoring tool.\n- **Feature Accuracy**: Does not check if AI platforms describe product features correctly.\n\n**Best For**: B2B marketing agencies focused on how different stakeholder groups see their brand. Works well for complex sales cycles.\n\n---\n\n### Scrunch AI\n\n**Overall Score: 8/8** | **Pricing: $$$$**\n\nScrunch AI is an enterprise platform with broad AI engine coverage. It offers advanced features for large organizations.\n\n**Key Strengths:**\n\n- **Multi-Platform Coverage**: Monitors ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews, AI Mode, Meta AI, and Copilot.\n- **Brand Consistency Scoring**: Includes sentiment analysis and attribute tracking.\n- **Competitive Benchmarking**: Side-by-side competitor comparison with share-of-voice tracking.\n- **White-Labeling \u0026 Integration**: SOC 2 compliant. Has API access, custom dashboards, and exportable reports.\n- **Historical Trending**: Daily updates for recent prompts. Has 3-day standard refresh cycles.\n- **Category Entry Point Analysis**: Persona and geography-based tracking. Generates prompts for different customer journey stages.\n\n**Limitations:**\n\n- **Pricing**: Starts at $300/month. Enterprise tiers cost more.\n- **Complexity**: Steep learning curve. May be more than smaller PR firms need.\n- **Prompt Limits**: Each AI engine counts against prompt limits. This can be confusing.\n\n**Best For**: Enterprise marketing agencies and large teams managing multiple brands.\n\n---\n\n### Otterly.AI\n\n**Overall Score: 4/8** | **Pricing: $**\n\nOtterly.AI provides affordable AI search monitoring. It focuses on simplicity for smaller teams.\n\n**Key Strengths:**\n\n- **Affordable Entry Point**: Starts at $29/month with a 14-day free trial.\n- **Multi-Platform Coverage**: Tracks Google AI Overviews, ChatGPT, Perplexity, Gemini, Copilot, and AI Mode.\n- **Discovery Query Tracking**: Finds relevant search prompts based on keywords or URLs.\n- **Daily Monitoring**: Tracks search prompts daily across platforms.\n- **Brand Reports**: Shows mentions, coverage, and domain citations.\n\n**Limitations:**\n\n- **Brand Consistency**: No scoring or accuracy checking.\n- **Competitive Benchmarking**: Limited competitor tracking compared to other tools.\n- **White-Labeling**: Basic export only. No white-labeling features.\n- **Historical Trending**: Weekly trendlines. Limited historical data on lower tiers.\n- **Category Entry Points**: No analysis of buying situations.\n\n**Best For**: Small marketing agencies, startups, and solo practitioners who need basic tracking at low cost.\n\n---\n\n### SEMRush AI Visibility Toolkit\n\n**Overall Score: 5.5/8** | **Pricing: $$$**\n\nSEMRush has added AI visibility tracking to its SEO platform. This creates a hybrid option for teams already using SEMRush tools.\n\n**Key Strengths:**\n\n- **Unified Platform**: Comb
2ines SEO tools with AI visibility tracking in one interface.\n- **Multi-Platform Coverage**: Tracks ChatGPT, Google AI Overviews, AI Mode, Perplexity, and Gemini.\n- **Competitive Benchmarking**: Visibility Gap Analysis finds prompts where competitors appear but you don't.\n- **White-Labeling**: White-label PDF reports and Looker Studio integration for agencies.\n- **Historical Trending**: Daily prompt tracking with historical data.\n- **Discovery Query Tracking**: Finds real user queries with volume and difficulty metrics.\n\n**Limitations:**\n\n- **Brand Consistency**: Limited scoring and accuracy checking.\n- **Feature Accuracy**: No verification of product descriptions.\n- **Category Entry Points**: Keyword-level tracking rather than buying situation analysis.\n- **SEO Focus**: Built for SEO professionals. May feel overwhelming for PR teams.\n- **Bundled Product**: Requires existing SEMRush subscription.\n\n**Best For**: Marketing agencies and PR firms already using SEMRush who want to add AI visibility without adopting a separate platform.\n\n---\n\n## Key Insights for PR Firms\n\n### The Enterprise vs. Accessibility Divide\n\nThe AI visibility market splits into two tiers.\n\n**Enterprise Tier** (Meltwater, Profound, Scrunch): These tools offer full features, SOC 2 compliance, API access, and white-labeling. They start at \\$300/month and often reach \\$4,000 - \\$15,000/month. They serve large organizations or large agencies with multiple enterprise clients.\n\n**Mid-Market Tier** (Spyglasses, Peec, Gumshoe, Otterly, SEMRush): These range from \\$29 - \\$250/month. Spyglasses delivers enterprise-level features at mid-market pricing. Peec and Otterly focus on simplicity. Gumshoe offers persona-based insights. SEMRush works best for teams already in its system.\n\n### Critical Gap: Brand Consistency Scoring\n\nMost tools track whether you get mentioned. Few check how accurately AI platforms describe your brand. Spyglasses, Meltwater, Profound, and Scrunch lead here with sentiment analysis and source tracking. PR firms should pick platforms that can spot when AI mis-states product features or brand positioning. This matters for reputation management.\n\n### Workflow Integration Remains Immature\n\nDespite promises of white-labeling and export features, most platforms struggle to deliver presentation-ready insights. PR firms should test export functions during trials. Make sure data can become client-ready reports without manual reformatting.\n\n### Category Entry Point Analysis: A Strategic Resource\n\nOnly Spyglasses, Profound, Scrunch, and Gumshoe offer automated category entry point analysis. This shows which buying situations trigger brand mentions. It transforms AI visibility from a monitoring tool into a strategic planning resource. It reveals content gaps and PR opportunities tied to customer journeys.\n\n---\n\n## Recommendations by Use Case\n\n**For PR Agencies Seeking Value**: Choose **Spyglasses**. It offers full feature coverage at \\$199/month for agency plans. That's a fraction of enterprise pricing.\n\n**For Enterprise PR Agencies with Large Budgets**: Consider **Scrunch AI** or **Meltwater GenAI Lens**. Scrunch offers broad platform coverage, though its data is presented in an SEO context. Meltwater integrates with traditional media monitoring.\n\n**For Firms Willing to Adapt SEO-Focused Outputs**: **Peec AI** balances features and cost. **Gumshoe AI** offers persona insights for B2B clients.\n\n**For Budget-Conscious Teams**: **Otterly.AI** offers basic monitoring at \\$29/month. You lose competitive depth and brand consistency features.\n\n**For SEMRush Users**: The **AI Visibility Toolkit** integrates with existing SEO workflows. Good for teams already in the platform.\n\n---\n\n## Wrapping Up\n\nAI visibility tracking has become essential for PR teams. The best platforms do more than count mentions. They provide strategic intelligence that shapes content strategy, media outreach, and crisis preparedness.\n\nFor most PR firms, Spyglasses offers the best mix of features and pricing. It covers all eight evaluation criteria at a price that works for agencies of any size. Enterprise teams with larger budgets may prefer Scrunch or Meltwater for added integrations and compliance features.\n\nNo matter which tool you choose, start establishing AI visibility baselines now. How your clients' brands appear across AI platforms will matter more each year as these systems influence more buying decisions."])</script>
2<script>self.__next_f.push([1,"b4:T8b17,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var g=Object.create;var l=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var p=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),A=(n,e)=\u003e{for(var i in e)l(n,i,{get:e[i],enumerable:!0})},o=(n,e,i,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of y(e))!u.call(n,r)\u0026\u0026r!==i\u0026\u0026l(n,r,{get:()=\u003ee[r],enumerable:!(s=m(e,r))||s.enumerable});return n};var b=(n,e,i)=\u003e(i=n!=null?g(f(n)):{},o(e||!n||!n.__esModule?l(i,\"default\",{value:n,enumerable:!0}):i,n)),x=n=\u003eo(l({},\"__esModule\",{value:!0}),n);var d=p((k,c)=\u003e{c.exports=_jsx_runtime});var w={};A(w,{default:()=\u003eh});var t=b(d());function a(n){let e={h2:\"h2\",h3:\"h3\",hr:\"hr\",img:\"img\",li:\"li\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.p,{children:\"PR firms face a growing challenge. Clients want to know how their brands appear in AI search results. But most AI visibility tools are built for SEO agencies. They focus on keyword rankings and organic traffic. These metrics matter less for PR teams who need to track brand reputation, message accuracy, and share of voice.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This guide reviews the best AI visibility tools for PR firms. We tested each platform against eight criteria that matter most to communications teams. These criteria cover everything from brand accuracy to client reporting.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Evaluation Framework\"}),`\n`,(0,t.jsx)(e.p,{children:\"PR firms need more than basic mention tracking. The eight criteria below show what communications teams should look for. These features help protect brand reputation, prove ROI, and guide strategic decisions.\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Evaluation Criteria\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Why It Matters for PR Firms\"})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Brand Consistency Scoring\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Ensures accurate brand representation across AI models and web searches\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Monitors all major AI assistants, not just one or two platforms\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Feature \u0026 Differentiator Accuracy\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Validates that AI platforms correctly describe product features and competitive advantages\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Discovery Query Tracking\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Identifies which questions trigger brand mentions to inform content strategy\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Tracks multiple competitors simultaneously with customizable lists\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"White-Labeling \u0026 Workflow Integration\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Exports data into presentation-ready formats like PDF and PowerPoint\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Historical Trending \u0026 Change Detection\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Measures visibility shifts after PR campaigns, launches, or crises\"})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Category Entry Point Analysis\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Identifies buying situations and use cases where brands appear\"})]})]})]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h2,{children:\"Platform Comparison Chart\"}),`\n`,(0,t.jsxs)(e.table,{children:[(0,t.jsx)(e.thead,{children:(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Tool\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Brand Consistency\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Multi-Platform\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Feature Accuracy\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Query Tracking\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Competitive Benchmarking\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"White-Labeling\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Historical Trends\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Category Entry Points\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:\"Pricing\"}),(0,t.jsx)(e.th,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Overall\"})})]})}),(0,t.jsxs)(e.tbody,{children:[(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Spyglasses\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"8/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Meltwater GenAI Lens\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$$$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"7.5/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Profound\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$$$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"8/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Peec AI\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"None\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"5/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Gumshoe AI\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"5.5/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Scrunch AI\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"8/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"Otterly.AI\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"None\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"4/8\"})})]}),(0,t.jsxs)(e.tr,{children:[(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"SEMRush AI Toolkit\"})}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Full\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"Limited\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:\"$$$\"}),(0,t.jsx)(e.td,{style:{textAlign:\"left\"},children:(0,t.jsx)(e.strong,{children:\"5.5/8\"})})]})]})]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"NOTE: Because pricing can depend on several factors we use a price classification rather than list specifics:\"}),\" $ = Under $50/mo | $$ = $50-250/mo | $$$ = $250-500/mo | $$$$ = $500-1,000/mo | $$$$$ = $1,000+/mo or enterprise pricing\"]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.img,{src:\"/images/blog/ai-visibility-tool-selection-chart.webp\",alt:\"A comparison chart showing 8 AI Visibility platforms and their support for features important to PR firms\"})}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h2,{children:\"Detailed Platform Analysis\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Spyglasses\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 8/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Spyglasses is an AI visibility platform built for PR firms first. The platform combines brand consistency scoring with competitive analysis. It also offers white-label reporting at an accessible price.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency Scoring\"}),\": Measures how each AI platform describes your brand. Covers ChatGPT, Claude, Perplexity, and Google Gemini. Shows consistency gaps so you know 
2where messaging needs work.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Tracks all major AI assistants. This includes ChatGPT, Google AI Overviews, Claude, Perplexity, and Google Gemini. Works with both standard and web-browsing modes.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Feature \u0026 Differentiator Accuracy\"}),\": Checks if AI platforms describe your product features correctly. Compares AI descriptions against your actual brand messaging.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Discovery Query Tracking\"}),\": Shows which prompts trigger brand mentions. Tracks share of voice, mentions, and citation sources.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),\": Monitors multiple competitors with custom lists. Shows how often competitors appear in AI responses.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"White-Label Reports\"}),\": Creates presentation-ready PDF reports branded for your agency. Reports include executive summaries and competitor comparisons.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Historical Trending\"}),\": Tracks changes over time. Helps measure the impact of PR campaigns, launches, or crisis response.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Point Analysis\"}),\": Shows buying situations where brands appear. Tracks how customer journeys surface brand mentions.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Agency-Friendly Pricing\"}),\": Starts at $199/month for agency plans. Uses usage-based pricing. No enterprise minimums or long contracts required.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Newer Platform\"}),\": Less established than enterprise tools like Meltwater.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Limited Traditional Media Integration\"}),\": Focuses on AI visibility rather than traditional media monitoring.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}),\": PR firms who need brand consistency, share of voice, and other PR-focused metrics along with white-label reporting at a price point that doesn't erode margins.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"Meltwater GenAI Lens\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 7.5/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$$$$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Meltwater has added AI visibility tracking to its media monitoring platform. The GenAI Lens serves organizations that already use Meltwater's tools.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Unified Dashboard\"}),\": Shows AI visibility metrics alongside traditional media and social listening data. Everything lives in one interface.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Monitors ChatGPT, Claude, Gemini, Perplexity, Grok, and DeepSeek. Provides real-time monitoring.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Intelligence\"}),\": Tracks competitor mentions across AI platforms. Includes share-of-voice analysis.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Risk Detection\"}),\": Finds misinformation and sentiment shifts across AI platforms.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Exportable Insights\"}),\": Includes sentiment, emotion, keywords, and source links for stakeholder reports.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Point Analysis\"}),\": Tracks prompts and topics. Does not generate prompts based on buying situations.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Enterprise Pricing\"}),\": Starts well above $1,000/month. This makes it less accessible to smaller PR firms.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Bundled Product\"}),\": AI visibility is part of a larger platform. You may pay for features you don't need.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}
2),\": Large PR agencies that already use Meltwater. Good for teams that want AI visibility added to existing media monitoring.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"Profound\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 8/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$$$$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Profound is a venture-funded platform built for AI visibility tracking. It captures data from actual AI interfaces rather than relying only on API calls. It primarily focuses on marketing teams at larger organizations.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Direct Interface Monitoring\"}),\": Queries AI search engine front-ends like ChatGPT with browsing and Perplexity's real-time search.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-System Intelligence\"}),\": Aggregates results from 10+ AI engines. This includes ChatGPT, Claude, Perplexity, Gemini, Copilot, DeepSeek, Grok, and Meta AI.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency Scoring\"}),\": Includes sentiment analysis and context tracking.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Prompt Volume Data\"}),\": Uses real user prompt data to recommend valuable queries to track.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),\": Provides competitor analysis with citation tracking.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Historical Trending\"}),\": Tracks changes with daily or weekly monitoring.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Enterprise Pricing\"}),\": Starts at $4,000 - $15,000/month.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Data Freshness\"}),\": Some users report data updates may lag several days.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Complexity\"}),\": Has a steep learning curve for non-technical users.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}),\": Internal marketing teams that also handle PR and have technical staff and budget for enterprise-level tools.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"Peec AI\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 5/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Peec AI offers a mid-range option focused on simplicity. It works well for marketing teams tracking AI search visibility.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Monitors ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews. Runs prompts daily.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Discovery Query Tracking\"}),\": Has a prompt management system. Suggests prompts based on website content.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),\": Tracks share of voice and competitor movement.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Sentiment Tracking\"}),\": Includes brand sentiment analysis.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Quick Setup\"}),\": Fast setup with suggested prompts and onboarding help.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency\"}),\": No scoring or accuracy checking for brand descriptions.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Feature Accuracy\"}),\": Limited ability to verify if AI platforms describe products correctly.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"White-Labeling\"}),\": Basic export only. No dedicated white-labeling for client presentations.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Points\"}),\": No automated analysis of buying situations.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Historical Data\"}),\": Only 30 days of history on lower-tier plans.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}
2),\": Marketing agencies who need simple AI visibility tracking without enterprise cost.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"Gumshoe AI\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 5.5/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Gumshoe uses persona-based tracking. It shows how different audience groups see brands in AI search results.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Persona-Based Tracking\"}),\": Creates buyer personas like CTOs or marketing directors. Tracks how AI shows your brand to each group.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Tracks ChatGPT, Gemini, AI Overviews, Perplexity, Claude, Grok, and DeepSeek.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Point Analysis\"}),\": Shows which buying situations trigger brand mentions for different personas.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Discovery Query Tracking\"}),\": Runs conversations with AI models to find which prompts mention your brand.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),': \"Share of LLM\" metric shows how often brands get mentioned versus competitors.']}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency\"}),\": No sentiment analysis. Shows mentions but not if they're positive or negative.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"White-Labeling\"}),\": Limited export and reporting for client presentations.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Workflow Integration\"}),\": Works mainly as a standalone monitoring tool.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Feature Accuracy\"}),\": Does not check if AI platforms describe product features correctly.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}),\": B2B marketing agencies focused on how different stakeholder groups see their brand. Works well for complex sales cycles.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"Scrunch AI\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 8/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$$$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Scrunch AI is an enterprise platform with broad AI engine coverage. It offers advanced features for large organizations.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Monitors ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews, AI Mode, Meta AI, and Copilot.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency Scoring\"}),\": Includes sentiment analysis and attribute tracking.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),\": Side-by-side competitor comparison with share-of-voice tracking.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"White-Labeling \u0026 Integration\"}),\": SOC 2 compliant. Has API access, custom dashboards, and exportable reports.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Historical Trending\"}),\": Daily updates for recent prompts. Has 3-day standard refresh cycles.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Point Analysis\"}),\": Persona and geography-based tracking. Generates prompts for different customer journey stages.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Pricing\"}),\": Starts at $300/month. Enterprise tiers cost more.\"]}
2),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Complexity\"}),\": Steep learning curve. May be more than smaller PR firms need.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Prompt Limits\"}),\": Each AI engine counts against prompt limits. This can be confusing.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}),\": Enterprise marketing agencies and large teams managing multiple brands.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"Otterly.AI\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 4/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"Otterly.AI provides affordable AI search monitoring. It focuses on simplicity for smaller teams.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Affordable Entry Point\"}),\": Starts at $29/month with a 14-day free trial.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Tracks Google AI Overviews, ChatGPT, Perplexity, Gemini, Copilot, and AI Mode.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Discovery Query Tracking\"}),\": Finds relevant search prompts based on keywords or URLs.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Daily Monitoring\"}),\": Tracks search prompts daily across platforms.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Reports\"}),\": Shows mentions, coverage, and domain citations.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency\"}),\": No scoring or accuracy checking.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),\": Limited competitor tracking compared to other tools.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"White-Labeling\"}),\": Basic export only. No white-labeling features.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Historical Trending\"}),\": Weekly trendlines. Limited historical data on lower tiers.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Points\"}),\": No analysis of buying situations.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}),\": Small marketing agencies, startups, and solo practitioners who need basic tracking at low cost.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h3,{children:\"SEMRush AI Visibility Toolkit\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Overall Score: 5.5/8\"}),\" | \",(0,t.jsx)(e.strong,{children:\"Pricing: $$$\"})]}),`\n`,(0,t.jsx)(e.p,{children:\"SEMRush has added AI visibility tracking to its SEO platform. This creates a hybrid option for teams already using SEMRush tools.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Key Strengths:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Unified Platform\"}),\": Combines SEO tools with AI visibility tracking in one interface.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Multi-Platform Coverage\"}),\": Tracks ChatGPT, Google AI Overviews, AI Mode, Perplexity, and Gemini.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Competitive Benchmarking\"}),\": Visibility Gap Analysis finds prompts where competitors appear but you don't.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"White-Labeling\"}),\": White-label PDF reports and Looker Studio integration for agencies.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Historical Trending\"}),\": Daily prompt tracking with historical data.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Discovery Query Tracking\"}),\": Finds real user queries with volume and difficulty metrics.\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Limitations:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Brand Consistency\"}),\": Limited scoring and accuracy checking.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Feature Accuracy\"}),\": No verification of product descriptions.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Category Entry Points\"}),\": Keyword-level tracking rather than buying situation analysis.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"SEO Focus\"}),\": Built for SEO professionals. May feel overwhelming for PR teams.\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Bundled Product\"}),\": Requires existing SEMRush subscription.\"]}),`\n`]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Best For\"}
2),\": Marketing agencies and PR firms already using SEMRush who want to add AI visibility without adopting a separate platform.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h2,{children:\"Key Insights for PR Firms\"}),`\n`,(0,t.jsx)(e.h3,{children:\"The Enterprise vs. Accessibility Divide\"}),`\n`,(0,t.jsx)(e.p,{children:\"The AI visibility market splits into two tiers.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Enterprise Tier\"}),\" (Meltwater, Profound, Scrunch): These tools offer full features, SOC 2 compliance, API access, and white-labeling. They start at $300/month and often reach $4,000 - $15,000/month. They serve large organizations or large agencies with multiple enterprise clients.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Mid-Market Tier\"}),\" (Spyglasses, Peec, Gumshoe, Otterly, SEMRush): These range from $29 - $250/month. Spyglasses delivers enterprise-level features at mid-market pricing. Peec and Otterly focus on simplicity. Gumshoe offers persona-based insights. SEMRush works best for teams already in its system.\"]}),`\n`,(0,t.jsx)(e.h3,{children:\"Critical Gap: Brand Consistency Scoring\"}),`\n`,(0,t.jsx)(e.p,{children:\"Most tools track whether you get mentioned. Few check how accurately AI platforms describe your brand. Spyglasses, Meltwater, Profound, and Scrunch lead here with sentiment analysis and source tracking. PR firms should pick platforms that can spot when AI mis-states product features or brand positioning. This matters for reputation management.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Workflow Integration Remains Immature\"}),`\n`,(0,t.jsx)(e.p,{children:\"Despite promises of white-labeling and export features, most platforms struggle to deliver presentation-ready insights. PR firms should test export functions during trials. Make sure data can become client-ready reports without manual reformatting.\"}),`\n`,(0,t.jsx)(e.h3,{children:\"Category Entry Point Analysis: A Strategic Resource\"}),`\n`,(0,t.jsx)(e.p,{children:\"Only Spyglasses, Profound, Scrunch, and Gumshoe offer automated category entry point analysis. This shows which buying situations trigger brand mentions. It transforms AI visibility from a monitoring tool into a strategic planning resource. It reveals content gaps and PR opportunities tied to customer journeys.\"}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h2,{children:\"Recommendations by Use Case\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"For PR Agencies Seeking Value\"}),\": Choose \",(0,t.jsx)(e.strong,{children:\"Spyglasses\"}),\". It offers full feature coverage at $199/month for agency plans. That's a fraction of enterprise pricing.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"For Enterprise PR Agencies with Large Budgets\"}),\": Consider \",(0,t.jsx)(e.strong,{children:\"Scrunch AI\"}),\" or \",(0,t.jsx)(e.strong,{children:\"Meltwater GenAI Lens\"}),\". Scrunch offers broad platform coverage, though its data is presented in an SEO context. Meltwater integrates with traditional media monitoring.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"For Firms Willing to Adapt SEO-Focused Outputs\"}),\": \",(0,t.jsx)(e.strong,{children:\"Peec AI\"}),\" balances features and cost. \",(0,t.jsx)(e.strong,{children:\"Gumshoe AI\"}),\" offers persona insights for B2B clients.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"For Budget-Conscious Teams\"}),\": \",(0,t.jsx)(e.strong,{children:\"Otterly.AI\"}),\" offers basic monitoring at $29/month. You lose competitive depth and brand consistency features.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"For SEMRush Users\"}),\": The \",(0,t.jsx)(e.strong,{children:\"AI Visibility Toolkit\"}),\" integrates with existing SEO workflows. Good for teams already in the platform.\"]}),`\n`,(0,t.jsx)(e.hr,{}),`\n`,(0,t.jsx)(e.h2,{children:\"Wrapping Up\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI visibility tracking has become essential for PR teams. The best platforms do more than count mentions. They provide strategic intelligence that shapes content strategy, media outreach, and crisis preparedness.\"}),`\n`,(0,t.jsx)(e.p,{children:\"For most PR firms, Spyglasses offers the best mix of features and pricing. It covers all eight evaluation criteria at a price that works for agencies of any size. Enterprise teams with larger budgets may prefer Scrunch or Meltwater for added integrations and compliance features.\"}),`\n`,(0,t.jsx)(e.p,{children:\"No matter which tool you choose, start establishing AI visibility baselines now. How your clients' brands appear across AI platforms will matter more each year as these systems influence more buying decisions.\"})]})}function h(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(a,{...n})}):a(n)}return x(w);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"42:[\"$\",\"$L10\",\"the-best-ai-visibility-tools-for-pr-firms-in-2026\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$b3\",\"title\":\"The Best AI Visibility Tools for PR Firms in 2026\",\"date\":\"2026-01-12\",\"image\":\"/images/blog/best-ai-visibility-tools-for-pr-firms.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Demonstrating the ROI of PR means more than just tracking share of voice in prompts.\",\"tags\":[\"PR\",\"SOV\",\"How-to\",\"AI Search Visibility\",\"Comparison\"],\"published\":true,\"_meta\":{\"filePath\":\"the-best-ai-visibility-tools-for-pr-firms-in-2026.mdx\",\"fileName\":\"the-best-ai-visibility-tools-for-pr-firms-in-2026.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"the-best-ai-visibility-tools-for-pr-firms-in-2026\"},\"body\":\"$b4\",\"locale\":\"en\",\"path\":\"the-best-ai-visibility-tools-for-pr-firms-in-2026\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"b5:T1eb2,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- ChatGPT gets 3.2 billion monthly visits with 89% of users getting complete answers without clicking any website\n- Your comprehensive guides train AI to recommend competitors who optimized for AI visibility, not whoever created the best content\n- Long-form content actually hurts you now. AI extracts key insights in milliseconds and serves them without attribution\n- Content that gets AI citations is concise (500-800 words), fact-heavy, structured for extraction, and citation-worthy\n- Replace content marketing budget with AI-optimized fact sheets, brand mention campaigns, industry authority building, and AI analytics\n- Companies creating short, citation-optimized content see 300% more brand mentions in AI responses\n\nWhile your team creates comprehensive guides and detailed blog posts targeting long-tail keywords, AI systems use that content to answer user questions without crediting your brand.\n\n Your best-performing article about \"choosing project management software\" doesn't drive leads anymore. It trains ChatGPT to recommend three other companies as industry leaders.\n\nThe reality is, every dollar in your 2026 content marketing budget is creating free research for AI systems that boost whoever optimized for AI visibility, not whoever created the best original content.\n\n## The Content Paradox That's Killing ROI\n\nLet's start with the numbers that explain why traditional content marketing budgets produce diminishing returns. Content teams spend an average of $150,000 annually creating blog posts, guides, and resources designed to rank on Google and drive organic traffic.\n\nBut here's what actually happens to that content: ChatGPT receives 3.2 billion monthly visits, with 89% of users getting complete answers without clicking through to any website. Your detailed buying guides become training data for AI systems that synthesize your insights into recommendations that mention competitors.\n\nThey're **your** criteria, but they're promoting the companies that ChatGPT knows more about.\n\nMeanwhile, organic search traffic to most B2B websites declined 12% last quarter while AI platform usage grew 67%. Your content ranks perfectly for keywords that fewer people search each month.\n\nWe're witnessing the fastest disruption in content distribution since social media launched. Yet most 2026 content marketing budgets still chase Google rankings instead of AI visibility.\n\n## Your Content Team is Training Your Competition\n\nHere's the most painful part of modern content marketing: your strategy succeeds at educating AI systems about your industry while failing to position your brand as the solution.\n\nEvery comprehensive comparison you publish becomes training data for ChatGPT, Claude, and Perplexity, on top of being indexed by Google. Every detailed FAQ you optimize teaches AI systems to answer questions about your space. Every industry guide you create helps AI understand your market landscape.\n\nBut unless you specifically optimize for AI citation and recommendation, those systems use your research to recommend competitors who invested in AI visibility strategies.\n\n## Why Long-Form Content Actually Hurts You Now\n\nTraditional content marketing wisdom says longer, more comprehensive content performs better. That advice is now actively harmful for brand visibility.\n\nAI systems don't care about your 5,000-word ultimate guides. They extract specific facts and insights, then synthesize them into answers that may not include your brand at all. The more comprehensive your content, the more likely AI systems use it without attribution.\n\n**The cruel math:** Your team spends 40 hours creating an ultimate guide. AI systems extract the key insights in 40 milliseconds and serve them to users who never know your brand existed.\n\nMeanwhile, companies creating short, citation-optimized content designed specifically for AI consumption see 300% more brand mentions in AI responses.\n\nYour content budget optimizes for yesterday's discovery patterns while customers research on platforms where comprehensive doesn't mean visible.\n\n## The Content That Actually Gets AI Citations\n\nThe pages that AI systems cite most frequently break every traditional content marketing rule:\n\n**They're concise, not comprehensive.** 500-800 words that answer specific questions directly, not 3,000-word guides that cover everything.\n\n**They're fact-heavy, not narrative-driven.** Clear statistics, specific data points, and quotable insights instead of storytelling and brand messaging.\n\n**They're structured for extraction, not engagement.** Bullet points, numbered lists, and clear headings that AI systems can easily parse and cite.\n\n**They're citation-worthy, not conversion-focused.** Instead of pushing readers toward contact forms, they provide authoritative information that AI systems confidently reference.\n\nYour content marketing team probably creates the opposite: long, engaging, conversion-optimized content that AI systems struggle to extract and cite.\n\n## The $0 Content Marketing Strategy That Actually Works\n\nYou should allocate zero dollars to traditional content marketing in 2026.\n\nNot because content doesn't matter. But because the content you need for AI visibility requires a completely different approach and budget allocation.\n\n**Instead of content marketing budget, invest in:**\n\n**AI-Optimized Fact Sheets ($25,000):** Create short, citation-worthy pages that answer specific questions in your industry. Focus on being quotable, not comprehensive.\n\n**Brand Mention Campaigns ($40,000):** Get your company mentioned and quoted in publications that AI systems crawl for training data. Every mention increases recommendation probability.\n\n**Industry Authority Building ($20,000):** Position executives as sources for journalists and analysts. Third-party mentions carry more weight with AI systems than self-published content.\n\n**AI Search Analytics ($15,000):** Monitor when and how AI systems mention your brand, then optimize your digital footprint based on that ground truth.\n\n**This beats a $100,000 content marketing budget because:**\n- AI systems actually cite and recommend your brand\n- Your insights reach customers through AI recommendations\n- You build authority in AI training data, not just search rankings\n- You capture customers while competitors chase declining organic traffic\n\n## The Mental Shift Required for Success\n\nEvery marketing team has editorial calendars, keyword research tools, and content creation processes. Every content manager measures success through organic traffic, rankings, and engagement metrics. Not every team has a trash can big enough to fit them in\n\nMaking the shift to AI-first content strategy means acknowledging difficult truths:\n- Your best-performing blog posts might generate zero business value\
2n- Content quality matters less than AI citability\n- Organic traffic optimization targets a shrinking customer segment\n\nBut here's the massive opportunity: your biggest competitors struggle with the same mental transition. They're also invested in content strategies that built their current success.\n\nThat resistance creates your competitive advantage. While they optimize content for search engines that fewer customers use, you can dominate AI recommendations where research actually happens.\n\n## The Last Chance for First-Mover Advantage\n\nYour competitors will spend 2026 creating beautiful, comprehensive content for search engines. Perfect keyword optimization. Detailed buyer's guides. Thought leadership articles that rank well and generate modest organic traffic.\n\nStop creating content for the customers you used to reach. Start optimizing for the customers you actually want to influence. If you publish zero blog posts in 2026 but AI systems recommend your business first, you've made the smartest content investment of your business' history."])</script>
2<script>self.__next_f.push([1,"b6:T2b5b,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var i in e)o(n,i,{get:e[i],enumerable:!0})},a=(n,e,i,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of g(e))!p.call(n,r)\u0026\u0026r!==i\u0026\u0026o(n,r,{get:()=\u003ee[r],enumerable:!(s=m(e,r))||s.enumerable});return n};var w=(n,e,i)=\u003e(i=n!=null?u(y(n)):{},a(e||!n||!n.__esModule?o(i,\"default\",{value:n,enumerable:!0}):i,n)),v=n=\u003ea(o({},\"__esModule\",{value:!0}),n);var h=f((k,c)=\u003e{c.exports=_jsx_runtime});var A={};b(A,{default:()=\u003ed});var t=w(h());function l(n){let e={h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"ChatGPT gets 3.2 billion monthly visits with 89% of users getting complete answers without clicking any website\"}),`\n`,(0,t.jsx)(e.li,{children:\"Your comprehensive guides train AI to recommend competitors who optimized for AI visibility, not whoever created the best content\"}),`\n`,(0,t.jsx)(e.li,{children:\"Long-form content actually hurts you now. AI extracts ke
2y insights in milliseconds and serves them without attribution\"}),`\n`,(0,t.jsx)(e.li,{children:\"Content that gets AI citations is concise (500-800 words), fact-heavy, structured for extraction, and citation-worthy\"}),`\n`,(0,t.jsx)(e.li,{children:\"Replace content marketing budget with AI-optimized fact sheets, brand mention campaigns, industry authority building, and AI analytics\"}),`\n`,(0,t.jsx)(e.li,{children:\"Companies creating short, citation-optimized content see 300% more brand mentions in AI responses\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"While your team creates comprehensive guides and detailed blog posts targeting long-tail keywords, AI systems use that content to answer user questions without crediting your brand.\"}),`\n`,(0,t.jsx)(e.p,{children:`Your best-performing article about \"choosing project management software\" doesn't drive leads anymore. It trains ChatGPT to recommend three other companies as industry leaders.`}),`\n`,(0,t.jsx)(e.p,{children:\"The reality is, every dollar in your 2026 content marketing budget is creating free research for AI systems that boost whoever optimized for AI visibility, not whoever created the best original content.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Content Paradox That's Killing ROI\"}),`\n`,(0,t.jsx)(e.p,{children:\"Let's start with the numbers that explain why traditional content marketing budgets produce diminishing returns. Content teams spend an average of $150,000 annually creating blog posts, guides, and resources designed to rank on Google and drive organic traffic.\"}),`\n`,(0,t.jsx)(e.p,{children:\"But here's what actually happens to that content: ChatGPT receives 3.2 billion monthly visits, with 89% of users getting complete answers without clicking through to any website. Your detailed buying guides become training data for AI systems that synthesize your insights into recommendations that mention competitors.\"}),`\n`,(0,t.jsxs)(e.p,{children:[\"They're \",(0,t.jsx)(e.strong,{children:\"your\"}),\" criteria, but they're promoting the companies that ChatGPT knows more about.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Meanwhile, organic search traffic to most B2B websites declined 12% last quarter while AI platform usage grew 67%. Your content ranks perfectly for keywords that fewer people search each month.\"}),`\n`,(0,t.jsx)(e.p,{children:\"We're witnessing the fastest disruption in content distribution since social media launched. Yet most 2026 content marketing budgets still chase Google rankings instead of AI visibility.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Your Content Team is Training Your Competition\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the most painful part of modern content marketing: your strategy succeeds at educating AI systems about your industry while failing to position your brand as the solution.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every comprehensive comparison you publish becomes training data for ChatGPT, Claude, and Perplexity, on top of being indexed by Google. Every detailed FAQ you optimize teaches AI systems to answer questions about your space. Every industry guide you create helps AI understand your market landscape.\"}),`\n`,(0,t.jsx)(e.p,{children:\"But unless you specifically optimize for AI citation and recommendation, those systems use your research to recommend competitors who invested in AI visibility strategies.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why Long-Form Content Actually Hurts You Now\"}),`\n`,(0,t.jsx)(e.p,{children:\"Traditional content marketing wisdom says longer, more comprehensive content performs better. That advice is now actively harmful for brand visibility.\"}),`\n`,(0,t.jsx)(e.p,{children:\"AI systems don't care about your 5,000-word ultimate guides. They extract specific facts and insights, then synthesize them into answers that may not include your brand at all. The more comprehensive your content, the more likely AI systems use it without attribution.\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"The cruel math:\"}),\" Your team spends 40 hours creating an ultimate guide. AI systems extract the key insights in 40 milliseconds and serve them to users who never know your brand existed.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Meanwhile, companies creating short, citation-optimized content designed specifically for AI consumption see 300% more brand mentions in AI responses.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your content budget optimizes for yesterday's discovery patterns while customers research on platforms where comprehensive doesn't mean visible.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Content That Actually Gets AI Citations\"}),`\n`,(0,t.jsx)(e.p,{children:\"The pages that AI systems cite most frequently break every traditional content marketing rule:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're concise, not comprehensive.\"}),\" 500-800 words that answer specific questions directly, not 3,000-word guides that cover everything.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're fact-heavy, not narrative-driven.\"}),\" Clear statistics, specific data points, and quotable insights instead of storytelling and brand messaging.\"]}
2),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're structured for extraction, not engagement.\"}),\" Bullet points, numbered lists, and clear headings that AI systems can easily parse and cite.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're citation-worthy, not conversion-focused.\"}),\" Instead of pushing readers toward contact forms, they provide authoritative information that AI systems confidently reference.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Your content marketing team probably creates the opposite: long, engaging, conversion-optimized content that AI systems struggle to extract and cite.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The $0 Content Marketing Strategy That Actually Works\"}),`\n`,(0,t.jsx)(e.p,{children:\"You should allocate zero dollars to traditional content marketing in 2026.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Not because content doesn't matter. But because the content you need for AI visibility requires a completely different approach and budget allocation.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Instead of content marketing budget, invest in:\"})}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI-Optimized Fact Sheets ($25,000):\"}),\" Create short, citation-worthy pages that answer specific questions in your industry. Focus on being quotable, not comprehensive.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Brand Mention Campaigns ($40,000):\"}),\" Get your company mentioned and quoted in publications that AI systems crawl for training data. Every mention increases recommendation probability.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Industry Authority Building ($20,000):\"}),\" Position executives as sources for journalists and analysts. Third-party mentions carry more weight with AI systems than self-published content.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI Search Analytics ($15,000):\"}),\" Monitor when and how AI systems mention your brand, then optimize your digital footprint based on that ground truth.\"]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"This beats a $100,000 content marketing budget because:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"AI systems actually cite and recommend your brand\"}),`\n`,(0,t.jsx)(e.li,{children:\"Your insights reach customers through AI recommendations\"}),`\n`,(0,t.jsx)(e.li,{children:\"You build authority in AI training data, not just search rankings\"}),`\n`,(0,t.jsx)(e.li,{children:\"You capture customers while competitors chase declining organic traffic\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"The Mental Shift Required for Success\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every marketing team has editorial calendars, keyword research tools, and content creation processes. Every content manager measures success through organic traffic, rankings, and engagement metrics. Not every team has a trash can big enough to fit them in\"}),`\n`,(0,t.jsx)(e.p,{children:\"Making the shift to AI-first content strategy means acknowledging difficult truths:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Your best-performing blog posts might generate zero business value\"}),`\n`,(0,t.jsx)(e.li,{children:\"Content quality matters less than AI citability\"}),`\n`,(0,t.jsx)(e.li,{children:\"Organic traffic optimization targets a shrinking customer segment\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"But here's the massive opportunity: your biggest competitors struggle with the same mental transition. They're also invested in content strategies that built their current success.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That resistance creates your competitive advantage. While they optimize content for search engines that fewer customers use, you can dominate AI recommendations where research actually happens.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Last Chance for First-Mover Advantage\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your competitors will spend 2026 creating beautiful, comprehensive content for search engines. Perfect keyword optimization. Detailed buyer's guides. Thought leadership articles that rank well and generate modest organic traffic.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Stop creating content for the customers you used to reach. Start optimizing for the customers you actually want to influence. If you publish zero blog posts in 2026 but AI systems recommend your business first, you've made the smartest content investment of your business' history.\"})]})}function d(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(l,{...n})}):l(n)}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"43:[\"$\",\"$L10\",\"your-2026-content-marketing-budget-should-be-0\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$b5\",\"title\":\"Your 2026 Content Marketing Budget Should Be $0\",\"date\":\"2026-01-12\",\"image\":\"/images/blog/content-marketing-budget-cover.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"What if you built an SEO article for a long-tail keyword with 33 Rank Difficulty, and nobody came?\",\"tags\":[\"content marketing\",\"marketing budget\",\"AI optimization\",\"SEO\",\"content strategy\"],\"published\":true,\"_meta\":{\"filePath\":\"your-2026-content-marketing-budget-should-be-0.mdx\",\"fileName\":\"your-2026-content-marketing-budget-should-be-0.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"your-2026-content-marketing-budget-should-be-0\"},\"body\":\"$b6\",\"locale\":\"en\",\"path\":\"your-2026-content-marketing-budget-should-be-0\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"b7:T1e36,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- 89% of ChatGPT interactions end without a single website click. Nine out of ten potential customers never see your redesign\n- Every animation, video background, and interactive element makes it harder for AI to understand and recommend you\n- Websites that get cited by AI load in under 2 seconds, present information clearly, and focus on content over design\n- The website you need for AI visibility is probably 90% of what you already have. Just clean it up and make it fast\n- Replace redesign budget with AI-friendly content optimization, digital PR campaigns, and technical performance improvements\n- If your website looks the same in December 2026 but AI systems recommend you first, you've made the smartest investment\n\nYour customers stopped visiting websites six months ago. You just don't know it yet.\n\nWhile you plan another $50,000 website redesign with smooth animations and perfect user experiences, 73% of your target customers ask ChatGPT \"what's the best project management software?\" They get comprehensive answers without ever seeing your beautiful landing page. Your design team debates hero sections and call-to-action buttons while Claude recommends your competitors to users who never click through to any website.\n\nThe truth is, every dollar in your 2026 website redesign budget is money stolen from the channel where customers actually research and buy. Your customers moved to AI platforms. Your design budget should follow them there.\n\n## The Death of Website Traffic (And Why Redesigns Won't Save It)\n\nLet's start with numbers that should terrify every web designer and marketing director. ChatGPT receives 3.2 billion visits per month. That's more traffic (by visits) than Amazon and Netflix combined. But the part that kills your 2026 web strategy is that 89% of those interactions end without a single website click.\n\nThink about your conversion funnel. Nine out of ten potential customers research your industry, compare solutions, and make purchase decisions on AI platforms. All without seeing your carefully designed website.\n\nMeanwhile, Perplexity grew 67% in traffic last quarter while most B2B websites lost 12% of their organic visitors. Google's AI Overviews now appear on 84% of search queries—and reduce website click-through rates by 42%.\n\nWe're watching the most dramatic shift in customer behavior since mobile browsing took over. Yet most website strategies still optimize for user journeys that fewer people take each month.\n\n## Every Animation Makes You More Invisible\n\nHere's the irony of modern web design: every fancy feature you're planning makes AI systems ignore your business.\n\nEvery smooth animation, every video background, every interactive element makes it harder for AI systems to understand and recommend you. While your design team creates beautiful user experiences for humans, AI crawlers struggle to extract clear information from pages loaded with JavaScript and visual effects.\n\nWebsites that get cited by AI systems have a few key things in common:\n* They load in under 2 seconds\n* They present information clearly\n* They focus on content over design. \n\nNone of these sites will ever win a Webby.They're functional, text-centric, and optimized for AI. Spending $75,000 on a website redesign is like building the most beautiful store on a street that's being shut down\n\nThe math is brutal: your stunning new homepage might get 10,000 human visitors next year. But if AI can't parse your value proposition easily, you'll miss 100,000 customers who ask AI for product recommendations.\n\n## The Websites That Actually Win in AI\n\nThe most successfully cited websites break every modern design rule:\n\n**They're fast, not fancy.** No loading animations. No video backgrounds. Just information that loads instantly.\n\n**They're structured, not stylish.** Clear headings. Simple navigation. Content organized for easy scanning by both humans and AI.\n\n**They're text-heavy, not visual.** Detailed product descriptions. Clear pricing. Specific features and benefits spelled out in plain language.\n\n**They're citation-worthy, not conversion-optimized.** Instead of pushing visitors toward contact forms, they provide comprehensive information that AI systems can confidently quote.\n\nYour beautiful 2025 website probably fails on all these criteria. And that's exactly why AI systems recommend your competitors instead of you.\n\n## The $0 Redesign Strategy That Actually Works\n\nYou should allocate zero dollars to website redesigns in 2026.\n\nNot because websites don't matter. But because the website you need for AI visibility is probably 90% of what you already have. Clean it up. Make it fast. Structure information clearly. Stop there.\n\n**Instead of redesign budget, invest in:**\n\n**AI-Friendly Content Optimization ($30,000):** Rewrite your key pages for machine readability. Clear headings, simple language, structured information that AI can easily extract and cite.\n\n**Digital PR and Mention Campaigns ($35,000):** Get your brand mentioned in publications that AI systems crawl. Every mention increases the chance AI recommends you.\n\n**Technical Performance Improvements ($15,000):** Make your site lightning-fast and easily crawlable. Remove unnecessary JavaScript and optimize for AI access.\n\n**This beats a $80,000 redesign because:**\n- AI systems can actually understand your content\n- Your brand gets mentioned in AI training data\n- Users discover you through AI recommendations\n- You capture market share while competitors focus on visual design\n\n## Why This Requires Courage, Not Just Budget\n\nThe hardest part isn't learning AI optimization. It's admitting that beautiful web design might be irrelevant.\n\nEvery marketing team has a website redesign on their roadmap. Every creative director wants to showcase stunning visual work. Every agency sells beautiful mockups and user experience improvements. \"Beauty sells\" has been true in marketing since the beginning of marketing. But AI doesn't know 
2what beauty is.\n\nHere's the opportunity though: your biggest competitors face the same mental struggle. They're also hesitant to abandon visual design principles that built their current success.\n\nThat hesitation is your competitive advantage. While they spend 2026 perfecting user interfaces that fewer people see, you can dominate AI recommendations where customers actually make decisions.\n\n## Three Questions Before You Approve That Redesign Budget\n\nBefore you sign off on website redesign expenses, ask yourself:\n\n**When you research products, do you visit multiple company websites to compare options?** Or do you ask ChatGPT or Claude to summarize your choices? Be honest about your own behavior.\n\n**If AI had to recommend three companies in your space based on easily accessible information, would you be one of them?** Not because you have a beautiful website, but because your value proposition is clear and citation-worthy.\n\n**Are you optimizing for the customer journey you want or the one that actually drives sales in your market today?**\n\n## The Competitive Advantage Hidden in Plain Sight\n\nYour competitors will spend 2026 optimizing for yesterday's web users. Beautiful designs. Smooth animations. Perfect user experiences for the 11% of researchers who still click through from AI to websites.\n\nYou have exactly 12 months to capture market share in AI recommendations while they're distracted by visual metrics that don't drive revenue anymore.\n\nStop designing for the customers you used to have. Start optimizing for the customers you actually want to reach. If your website looks exactly the same in December 2026 but AI systems recommend your business first, you've made the smartest design investment of your company's history."])</script>
2<script>self.__next_f.push([1,"b8:T2ad9,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var i in e)o(n,i,{get:e[i],enumerable:!0})},a=(n,e,i,s)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of y(e))!g.call(n,r)\u0026\u0026r!==i\u0026\u0026o(n,r,{get:()=\u003ee[r],enumerable:!(s=m(e,r))||s.enumerable});return n};var w=(n,e,i)=\u003e(i=n!=null?u(p(n)):{},a(e||!n||!n.__esModule?o(i,\"default\",{value:n,enumerable:!0}):i,n)),v=n=\u003ea(o({},\"__esModule\",{value:!0}),n);var l=f((I,c)=\u003e{c.exports=_jsx_runtime});var A={};b(A,{default:()=\u003ed});var t=w(l());function h(n){let e={h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"89% of ChatGPT interactions end without a single website click. Nine out of ten potential customers never see your redesign\"}),`\n`,(0,t.jsx)(e.li,{children:\"Every animation, video background, and interactive element makes it harder for AI to understand and recommend you\"}),`\n`,(0,t.jsx)(e.li,{children:\"Websites that get cited by AI load in under 2 seconds, present information clearly, and focus on content over design\"}),`\n`,(0,t.jsx)(e.li,{children:\"The website you need for AI visibility is probably 90% of what you already have. Just clean it up and make it fast\"}),`\n`,(0,t.jsx)(e.li,{children:\"Replace redesign budget with AI-friendly content optimization, digital PR campaigns, and technical performance improvements\"}),`\n`,(0,t.jsx)(e.li,{children:\"If your website looks the same in December 2026 but AI systems recommend you first, you've made the smartest investment\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"Your customers stopped visiting websites six months ago. You just don't know it yet.\"}),`\n`,(0,t.jsx)(e.p,{children:`While you plan another $50,000 website redesign with smooth animations and perfect user experiences, 73% of your target customers ask ChatGPT \"what's the best project management software?\" They get comprehensive answers without ever seeing your beautiful landing page. Your design team debates hero sections and call-to-action buttons while Claude recommends your competitors to users who never click through to any website.`}),`\n`,(0,t.jsx)(e.p,{children:\"The truth is, every dollar in your 2026 website redesign budget is money stolen from the channel where customers actually research and buy. Your customers moved to AI platforms. Your design budget should follow them there.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Death of Website Traffic (And Why Redesigns Won't Save It)\"}),`\n`,(0,t.jsx)(e.p,{children:\"Let's start with numbers that should terrify every web designer and marketing director. ChatGPT receives 3.2 billion visits per month. That's more traffic (by visits) than Amazon and Netflix combined. But the part that kills your 2026 web strategy is that 89% of those interactions end without a single website click.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Think about your conversion funnel. Nine out of ten potential customers research your industry, compare solutions, and make purchase decisions on AI platforms. All without seeing your carefully designed website.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Meanwhile, Perplexity grew 67% in traffic last quarter while most B2B websites lost 12% of their organic visitors. Google's AI Overviews now appear on 84% of search queries\\u2014and reduce website click-through rates by 42%.\"}),`\n`,(0,t.jsx)(e.p,{children:\"We're watching the most dramatic shift in customer behavior since mobile browsing took over. Yet most website strategies still optimize for user journeys that fewer people take each month.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Every Animation Makes You More Invisible\"}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the irony of modern web design: every fancy feature you're planning makes AI systems ignore your business.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Every smooth animation, every video background, every interactive element makes it harder for AI systems to understand and recommend you. While your design team creates beautiful user experiences for humans, AI crawlers struggle to extract clear information from pages loaded with JavaScript and visual effects.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Websites that get cited by AI systems have a few key things in common:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"They load in under 2 seconds\"}),`\n`,(0,t.jsx)(e.li,{children:\"They present information clearly\"}
2),`\n`,(0,t.jsx)(e.li,{children:\"They focus on content over design.\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"None of these sites will ever win a Webby.They're functional, text-centric, and optimized for AI. Spending $75,000 on a website redesign is like building the most beautiful store on a street that's being shut down\"}),`\n`,(0,t.jsx)(e.p,{children:\"The math is brutal: your stunning new homepage might get 10,000 human visitors next year. But if AI can't parse your value proposition easily, you'll miss 100,000 customers who ask AI for product recommendations.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Websites That Actually Win in AI\"}),`\n`,(0,t.jsx)(e.p,{children:\"The most successfully cited websites break every modern design rule:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're fast, not fancy.\"}),\" No loading animations. No video backgrounds. Just information that loads instantly.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're structured, not stylish.\"}),\" Clear headings. Simple navigation. Content organized for easy scanning by both humans and AI.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're text-heavy, not visual.\"}),\" Detailed product descriptions. Clear pricing. Specific features and benefits spelled out in plain language.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They're citation-worthy, not conversion-optimized.\"}),\" Instead of pushing visitors toward contact forms, they provide comprehensive information that AI systems can confidently quote.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"Your beautiful 2025 website probably fails on all these criteria. And that's exactly why AI systems recommend your competitors instead of you.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The $0 Redesign Strategy That Actually Works\"}),`\n`,(0,t.jsx)(e.p,{children:\"You should allocate zero dollars to website redesigns in 2026.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Not because websites don't matter. But because the website you need for AI visibility is probably 90% of what you already have. Clean it up. Make it fast. Structure information clearly. Stop there.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Instead of redesign budget, invest in:\"})}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"AI-Friendly Content Optimization ($30,000):\"}),\" Rewrite your key pages for machine readability. Clear headings, simple language, structured information that AI can easily extract and cite.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Digital PR and Mention Campaigns ($35,000):\"}),\" Get your brand mentioned in publications that AI systems crawl. Every mention increases the chance AI recommends you.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Technical Performance Improvements ($15,000):\"}),\" Make your site lightning-fast and easily crawlable. Remove unnecessary JavaScript and optimize for AI access.\"]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"This beats a $80,000 redesign because:\"})}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"AI systems can actually understand your content\"}),`\n`,(0,t.jsx)(e.li,{children:\"Your brand gets mentioned in AI training data\"}),`\n`,(0,t.jsx)(e.li,{children:\"Users discover you through AI recommendations\"}),`\n`,(0,t.jsx)(e.li,{children:\"You capture market share while competitors focus on visual design\"}),`\n`]}),`\n`,(0,t.jsx)(e.h2,{children:\"Why This Requires Courage, Not Just Budget\"}),`\n`,(0,t.jsx)(e.p,{children:\"The hardest part isn't learning AI optimization. It's admitting that beautiful web design might be irrelevant.\"}),`\n`,(0,t.jsx)(e.p,{children:`Every marketing team has a website redesign on their roadmap. Every creative director wants to showcase stunning visual work. Every agency sells beautiful mockups and user experience improvements. \"Beauty sells\" has been true in marketing since the beginning of marketing. But AI doesn't know what beauty is.`}),`\n`,(0,t.jsx)(e.p,{children:\"Here's the opportunity though: your biggest competitors face the same mental struggle. They're also hesitant to abandon visual design principles that built the
2ir current success.\"}),`\n`,(0,t.jsx)(e.p,{children:\"That hesitation is your competitive advantage. While they spend 2026 perfecting user interfaces that fewer people see, you can dominate AI recommendations where customers actually make decisions.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Three Questions Before You Approve That Redesign Budget\"}),`\n`,(0,t.jsx)(e.p,{children:\"Before you sign off on website redesign expenses, ask yourself:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"When you research products, do you visit multiple company websites to compare options?\"}),\" Or do you ask ChatGPT or Claude to summarize your choices? Be honest about your own behavior.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"If AI had to recommend three companies in your space based on easily accessible information, would you be one of them?\"}),\" Not because you have a beautiful website, but because your value proposition is clear and citation-worthy.\"]}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Are you optimizing for the customer journey you want or the one that actually drives sales in your market today?\"})}),`\n`,(0,t.jsx)(e.h2,{children:\"The Competitive Advantage Hidden in Plain Sight\"}),`\n`,(0,t.jsx)(e.p,{children:\"Your competitors will spend 2026 optimizing for yesterday's web users. Beautiful designs. Smooth animations. Perfect user experiences for the 11% of researchers who still click through from AI to websites.\"}),`\n`,(0,t.jsx)(e.p,{children:\"You have exactly 12 months to capture market share in AI recommendations while they're distracted by visual metrics that don't drive revenue anymore.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Stop designing for the customers you used to have. Start optimizing for the customers you actually want to reach. If your website looks exactly the same in December 2026 but AI systems recommend your business first, you've made the smartest design investment of your company's history.\"})]})}function d(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}return v(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"44:[\"$\",\"$L10\",\"your-2026-website-redesign-budget-should-be-0\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$b7\",\"title\":\"Your 2026 Website Redesign Budget Should Be $0\",\"date\":\"2026-01-12\",\"image\":\"/images/blog/website-redesign-budget-cover.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"ChatGPT gets 3.2B visits monthly with 89% never clicking through. Your $100K website redesign optimizes for customers who aren't coming. Here's where they actually are.\",\"tags\":[\"website redesign\",\"marketing budget\",\"AI optimization\",\"web design\",\"ROI\"],\"published\":true,\"_meta\":{\"filePath\":\"your-2026-website-redesign-budget-should-be-0.mdx\",\"fileName\":\"your-2026-website-redesign-budget-should-be-0.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"your-2026-website-redesign-budget-should-be-0\"},\"body\":\"$b8\",\"locale\":\"en\",\"path\":\"your-2026-website-redesign-budget-should-be-0\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"b9:T1f4f,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- Google AI Mode uses \"query fan-out\" to analyze your content more extensively than traditional search—without generating clicks\n- Search Console now includes AI Mode data, but only tracks interactions that could result in clicks to your website\n- AI Mode doesn't require a new SEO strategy. Tt requires executing traditional SEO more thoroughly\n- Focus on comprehensive content, clear structure, specific details, accurate information, and E-A-T signals\n- Search Console can't show AI research without clicks, competitive comparisons, brand mentions, or decision influence\n- Use AI-specific analytics tools to track the full picture of how AI Mode affects your business\n\nGoogle's AI Mode has officially rolled out to every US search user, and as of this week, it's finally showing up in your Search Console data. If you've noticed unexplained changes in your traffic metrics lately, that's probably why. But here's what Google isn't telling you: the clicks you can see in Search Console represent only a tiny fraction of how AI Mode actually affects your business.\n\nEvery time someone asks AI Mode about your industry, your competitors, or the problems you solve, your business might be mentioned, compared, or completely ignored—and you'll never know which one happened. Traditional analytics only show you what happens after someone clicks through to your website. But most AI conversations end without any clicks at all.\n\nThis creates a massive blind spot that's about to get much bigger. AI Mode uses Google's \"query fan-out\" technique, issuing multiple related searches concurrently across subtopics and multiple data sources, which means it's accessing and analyzing your content far more extensively than traditional search ever did. The question isn't whether AI Mode will impact your business—it's whether you'll be able to measure and optimize for that impact.\n\n## How AI Mode Actually Works (And Why It Matters for Your Business)\n\nUnlike AI Overviews, which show up at the top of regular search results, AI Mode is Google's most powerful AI search experience with more advanced reasoning and multimodal capabilities. Users can ask complex, multi-part questions and get comprehensive answers without ever leaving Google's interface.\n\nHere's what makes AI Mode different from traditional search: when someone asks \"What's the best project management software for remote teams under $50 per month?\", AI Mode doesn't just return a list of links. Instead, it uses Google's \"query fan-out\" technique, issuing multiple related searches concurrently across subtopics within Google's existing search index to create a complete comparison and recommendation.\n\nYour business might be thoroughly analyzed and either recommended or dismissed during this process based on your indexed content. But unless the user clicks through to your website, you'll have no idea it happened.\n\n## What Shows Up in Search Console vs. What Actually Happens\n\nAs of June 17, Google confirmed that both AI Overviews and AI Mode now contribute to the Web category in Search Console. This means each time your content appears as a clickable source in AI Mode, it counts as an impression, and if someone clicks, it counts as a click.\n\nBut here's the limitation: Search Console only tracks the interactions that result in potential clicks to your website. It doesn't track:\n\n- **AI Research Without Clicks**: When AI Mode analyzes your content to answer questions but users don't click through to your site\n- **Competitive Comparisons**: When your business gets compared to competitors within AI Mode conversations\n- **Brand Mentions**: When AI Mode references your company, products, or services in responses\n- **Decision Influence**: When AI Mode recommendations steer users toward or away from your business\n\nThere's no separate \"AI\" appearance in the Search Console performance report. It's just merged in with everything else under \"Web.\" This creates what digital marketing consultant Glenn Gabe describes as making it \"very hard to glean insights about how AI Mode is impacting traffic\" without dedicated tracking.\n\n## The SEO Strategy That Actually Works for AI Mode\n\nHere's the critical insight that most businesses are missing: **AI Mode doesn't require a fundamentally different SEO strategy—it requires executing traditional SEO much more thoroughly.**\n\nAI Mode uses Google's existing search index and ranking systems as its data source. AI Mode expands what AI Overviews can do with more advanced reasoning and ways of interacting, but it's still built on the same foundation of web content that Google already crawls and indexes.\n\nThis means the best way to \"rank\" for AI Mode is to optimize for Google's search crawler like you always have:\n\n- **Create Comprehensive Content**: AI Mode analyzes content at scale, so superficial pages won't provide the depth AI needs for recommendations\n- **Use Clear Structure**: Headers, lists, and organized information help AI understand and extract key details\n- **Include Specific Details**: AI Mode excels at comparisons, so specific features, benefits, and use cases matter more than generic descriptions\n- **Maintain Accurate Information**: AI Mode pulls from multiple sources, so inconsistent information across your site can confuse AI analysis\n- **Focus on E-A-T**: Expertise, Authority, and Trustworthiness become even more important when AI systems evaluate your content for recommendations\n\n## How to Track AI Mode Impact When Analytics Can't\n\nSince there's no separate view, no clear breakdown of what came from traditional search versus what came from a chatbot, traditional analytics leave you blind to most AI Mode activity. But there are ways to get visibility into this growing traffic source.\n\n**Monitor Traffic Patterns**: The best approach is to annotate changes in traffic starting mid-June and watch for unexplained shifts in performance. Sudden increases or decreases in organic traffic might be related to AI Mode rather than traditional ranking changes.\n\n**Track Brand Searches**: If AI Mode mentions your business positively, you might see increases in branded search traffic as users look up your company after learning about it through AI conversations.\n\n**Use AI-Specific Analytics*
2*: Tools like Spyglasses can detect when AI systems access your content and track clickthroughs from AI Mode specifically. This gives you visibility into both the AI mentions you can't see in Search Console and the clicks that do convert.\n\n## The Real Opportunity (And Why Most Businesses Will Miss It)\n\nThe businesses that succeed with AI Mode won't be the ones that try to game the system or create AI-specific content. They'll be the ones that recognize AI Mode as an amplification of existing SEO principles, not a replacement for them.\n\nAI Mode represents a massive opportunity for businesses with strong fundamentals. If your content clearly explains your value proposition, your website structure helps visitors and crawlers understand your offerings, and your business information is comprehensive and current, AI Mode becomes a powerful discovery engine for your business.\n\nBut most businesses will miss this opportunity because they're waiting for AI-specific optimization tactics instead of executing basic SEO well. They'll focus on the 10% of AI Mode that's new instead of the 90% that's built on traditional search infrastructure.\n\nThe window for competitive advantage is still open. Right now, most of your competitors can't measure AI Mode impact and don't understand how it works. They're optimizing for yesterday's search experience while AI Mode reshapes how customers discover businesses today.\n\n**The question isn't whether AI Mode will change how customers find you—it's whether you'll have the data to optimize for that change or be left guessing while competitors pull ahead.**\n\nStart tracking your AI Mode traffic now, because the businesses that can see what's happening will have a massive advantage over those that can't."])</script>
2<script>self.__next_f.push([1,"ba:T2a9d,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var g=(t,e)=\u003e()=\u003e(e||t((e={exports:{}}).exports,e),e.exports),w=(t,e)=\u003e{for(var s in e)i(t,s,{get:e[s],enumerable:!0})},a=(t,e,s,r)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of m(e))!f.call(t,o)\u0026\u0026o!==s\u0026\u0026i(t,o,{get:()=\u003ee[o],enumerable:!(r=p(e,o))||r.enumerable});return t};var A=(t,e,s)=\u003e(s=t!=null?u(y(t)):{},a(e||!t||!t.__esModule?i(s,\"default\",{value:t,enumerable:!0}):s,t)),I=t=\u003ea(i({},\"__esModule\",{value:!0}),t);var l=g((M,c)=\u003e{c.exports=_jsx_runtime});var b={};w(b,{default:()=\u003ed});var n=A(l());function h(t){let e={h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:'Google AI Mode uses \"query fan-out\" to analyze your content more extensively than traditional search\\u2014without generating clicks'}),`\n`,(0,n.jsx)(e.li,{children:\"Search Console now includes AI Mode data, but only tracks interactions that could result in clicks to your website\"}),`\n`,(0,n.jsx)(e.li,{children:\"AI Mode doesn't require a new SEO strategy. Tt requires executing traditional SEO more thoroughly\"}),`\n`,(0,n.jsx)(e.li,{children:\"Focus on comprehensive content, clear structure, specific details, accurate information, and E-A-T signals\"}),`\n`,(0,n.jsx)(e.li,{children:\"Search Console can't show AI research without clicks, competitive comparisons, brand mentions, or decision influence\"}),`\n`,(0,n.jsx)(e.li,{children:\"Use AI-specific analytics tools to track the full picture of how AI Mode affects your business\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"Google's AI Mode has officially rolled out to every US search user, and as of this week, it's finally showing up in your Search Console data. If you've noticed unexplained changes in your traffic metrics lately, that's probably why. But here's what Google isn't telling you: the clicks you can see in Search Console represent only a tiny fraction of how AI Mode actually affects your business.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Every time someone asks AI Mode about your industry, your competitors, or the problems you solve, your business might be mentioned, compared, or completely ignored\\u2014and you'll never know which one happened. Traditional analytics only show you what happens after someone clicks through to your website. But most AI conversations end without any clicks at all.\"}),`\n`,(0,n.jsx)(e.p,{children:`This creates a massive blind spot that's about to get much bigger. AI Mode uses Google's \"query fan-out\" technique, issuing multiple related searches concurrently across subtopics and multiple data sources, which means it's accessing and analyzing your content far more extensively than traditional search ever did. The question isn't whether AI Mode will impact your business\\u2014it's whether you'll be able to measure and optimize for that impact.`}),`\n`,(0,n.jsx)(e.h2,{children:\"How AI Mode Actually Works (And Why It Matters for Your Business)\"}),`\n`,(0,n.jsx)(e.p,{children:\"Unlike AI Overviews, which show up at the top of regular search results, AI Mode is Google's most powerful AI search experience with more advanced reasoning and multimodal capabilities. Users can ask complex, multi-part questions and get comprehensive answers without ever leaving Google's interface.\"}),`\n`,(0,n.jsx)(e.p,{children:`Here's what makes AI Mode different from traditional search: when someone asks \"What's the best project management software for remote teams under $50 per month?\", AI Mode doesn't just return a list of links. Instead, it uses Google's \"query fan-out\" technique, issuing multiple related searches concurrently across subtopics within Google's existing search index to create a complete comparison and recommendation.`}),`\n`,(0,n.jsx)(e.p,{children:\"Your business might be thoroughly anal
2yzed and either recommended or dismissed during this process based on your indexed content. But unless the user clicks through to your website, you'll have no idea it happened.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"What Shows Up in Search Console vs. What Actually Happens\"}),`\n`,(0,n.jsx)(e.p,{children:\"As of June 17, Google confirmed that both AI Overviews and AI Mode now contribute to the Web category in Search Console. This means each time your content appears as a clickable source in AI Mode, it counts as an impression, and if someone clicks, it counts as a click.\"}),`\n`,(0,n.jsx)(e.p,{children:\"But here's the limitation: Search Console only tracks the interactions that result in potential clicks to your website. It doesn't track:\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"AI Research Without Clicks\"}),\": When AI Mode analyzes your content to answer questions but users don't click through to your site\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Competitive Comparisons\"}),\": When your business gets compared to competitors within AI Mode conversations\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Brand Mentions\"}),\": When AI Mode references your company, products, or services in responses\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Decision Influence\"}),\": When AI Mode recommendations steer users toward or away from your business\"]}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:`There's no separate \"AI\" appearance in the Search Console performance report. It's just merged in with everything else under \"Web.\" This creates what digital marketing consultant Glenn Gabe describes as making it \"very hard to glean insights about how AI Mode is impacting traffic\" without dedicated tracking.`}),`\n`,(0,n.jsx)(e.h2,{children:\"The SEO Strategy That Actually Works for AI Mode\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Here's the critical insight that most businesses are missing: \",(0,n.jsx)(e.strong,{children:\"AI Mode doesn't require a fundamentally different SEO strategy\\u2014it requires executing traditional SEO much more thoroughly.\"})]}),`\n`,(0,n.jsx)(e.p,{children:\"AI Mode uses Google's existing search index and ranking systems as its data source. AI Mode expands what AI Overviews can do with more advanced reasoning and ways of interacting, but it's still built on the same foundation of web content that Google already crawls and indexes.\"}),`\n`,(0,n.jsx)(e.p,{children:`This means the best way to \"rank\" for AI Mode is to optimize for Google's search crawler like you always have:`}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Create Comprehensive Content\"}),\": AI Mode analyzes content at scale, so superficial pages won't provide the depth AI needs for recommendations\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Use Clear Structure\"}),\": Headers, lists, and organized information help AI understand and extract key details\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Include Specific Details\"}),\": AI Mode excels at comparisons, so specific features, benefits, and use cases matter more than generic descriptions\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Maintain Accurate Information\"}),\": AI Mode pulls from multiple sources, so inconsistent information across your site can confuse AI analysis\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Focus on E-A-T\"}),\": Expertise, Authority, and Trustworthiness become even more important when AI systems evaluate your content for recommendations\"]}),`\n`]}),`\n`,(0,n.jsx)(e.h2,{children:\"How to Track AI Mode Impact When Analytics Can't\"}),`\n`,(0,n.jsx)(e.p,{children:\"Since there's no separate view, no clear breakdown of what came from traditional search versus what came from a chatbot, traditional analytics leave you blind to most AI Mode activity. But there are ways to get visibility into this growing traffic source.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Monitor Traffic Patterns\"}),\": The best approach is to annotate changes in traffic starting mid-June and watch for unexplained shifts in performance. Sudden increases or decreases in organic traffic might be related to AI Mode rather than traditional ranking changes.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Track Brand Searches\"}),\": If AI Mode mentions your business positively, you might see increases in branded search traffic as users look up your company after learning about it through AI conversations.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Use AI-Specific Analytics\"}),\": Tools like Spyglasses can detect when AI systems access your content and track clickthroughs from AI Mode specifically. This gives you visibility into both the AI mentions you can't see in Search Console and the clicks that do convert.\"]}),`\n`,(0,n.jsx)(e.h2,{children:\"The Real Opportunity (And Why Most Businesses Will Miss It)\"}),`\n`,(0,n.jsx)(e.p,{children:\"The businesses that succeed with AI Mode won't be the ones that try to game the system or create AI-specific content. They'll be the ones that recognize AI Mode as an amplification of existing SEO principles, not a replacement for them.\"}),`\n`,(0,n.jsx)(e.p,{children:\"AI Mode represents a massive opportunity for businesses with strong fundamentals. If your content clearly explains your value proposition, your website structure helps visitors and crawlers understand your offerings, and your business information is comprehensive and current, AI Mode becomes a powerful discovery engine for your business.\"}),`\n`,(0,n.jsx)(e.p,{children:\"But most businesses will miss this opportunity because they're waiting for AI-specific optimization tactics instead of executing basic SEO well. They'll focus on the 10% of AI Mode that's new instead of the 90% that's built on traditional search infrastru
2cture.\"}),`\n`,(0,n.jsx)(e.p,{children:\"The window for competitive advantage is still open. Right now, most of your competitors can't measure AI Mode impact and don't understand how it works. They're optimizing for yesterday's search experience while AI Mode reshapes how customers discover businesses today.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"The question isn't whether AI Mode will change how customers find you\\u2014it's whether you'll have the data to optimize for that change or be left guessing while competitors pull ahead.\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Start tracking your AI Mode traffic now, because the businesses that can see what's happening will have a massive advantage over those that can't.\"})]})}function d(t={}){let{wrapper:e}=t.components||{};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(h,{...t})}):h(t)}return I(b);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"45:[\"$\",\"$L10\",\"google-ai-mode-what-businesses-need-to-know\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$b9\",\"title\":\"What To Do Differently Now That Google's AI Mode Is Now Live\",\"date\":\"2026-01-10\",\"image\":\"/images/blog/google-ai-mode-analytics-cover.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Google's AI Mode has rolled out to all US users and now counts in Search Console data. But the most important metric—how often AI mentions your business without sending clicks—remains invisible.\",\"tags\":[\"Google AI Mode\",\"search analytics\",\"AI traffic\",\"SEO\",\"Google Search Console\"],\"published\":true,\"_meta\":{\"filePath\":\"google-ai-mode-what-businesses-need-to-know.mdx\",\"fileName\":\"google-ai-mode-what-businesses-need-to-know.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"google-ai-mode-what-businesses-need-to-know\"},\"body\":\"$ba\",\"locale\":\"en\",\"path\":\"google-ai-mode-what-businesses-need-to-know\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"bb:T17ac,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- Track whether your brand appears as a source AND in the summarized AI results. Most users focus on the main answer, not citations\n- Cover the full \"query fan-out\"; all sub-questions AI breaks complex queries into when researching\n- Verify brand consistency: pricing, features, and positioning must be accurate across AI platforms\n- Monitor third-party sites that AI frequently cites. They shape how AI describes your brand\n- Build processes to detect AI misrepresentation quickly and correct inaccuracies through source updates\n- Ask these questions regularly, not just once. Systematic monitoring reveals trends over time\n\nAre you tracking keyword rankings while your customers are increasingly asking AI assistants for recommendations?\n\nAre you monitoring how ChatGPT, Claude, and Perplexity represent your brand? \n\nIf AI SEO isn't a focus in 2025, you're missing where buying decisions actually happen.\n\nHere are the essential questions every AI SEO strategy must answer.\n\n## AI Citation Tracking\n\n![AI citation tracking](/images/blog/ai-seo-citation-tracking.webp)\n\n**Does your brand show up as a source for queries that you expect your customers to use, and at what position?**\n\nWhen potential customers ask AI assistants about your industry, your brand should appear in relevant answers. Position matters because being mentioned fifth is different from being the first recommendation. Test this by asking AI systems the questions your customers would ask.\n\n**If you are included as a source, do you show up in the summarized results too?**\n\nAI systems often cite multiple sources but only highlight a few in their main answer. Your website might be listed in citations while competitors get featured in the actual response text. Most users focus on the main answer, not the source list.\n\n**Are you covering the full \"query fan-out\" - all the sub-questions AI breaks complex queries into?**\n\nAI systems break complex questions into smaller components. When someone asks about marketing tools, AI might research pricing, features, support, and integrations separately. Your content needs to address not just the main question but all related sub-questions AI asks behind the scenes.\n\n## Brand Consistency\n\n![AI SEO brand consistency checking](/images/blog/ai-seo-brand-consistency.webp)\n\n**Do AI searches for your brand accurately reflect it? Is the content accurate? Are prices, if listed, correct and consistent?**\n\nSearch for your company name directly in different AI systems. Check whether descriptions match your current positioning. Verify that product information, pricing, and features are correct. AI systems sometimes blend old and new information, creating confusion for potential customers.\n\n**If compared against competitors, is your differentiation clear in the output?**\n\nAI systems frequently create comparison tables when users ask about multiple options. Test queries like \"compare [your product] vs [competitor]\" to see how your unique value comes through. How you appear in these comparisons shapes customer perception more than isolated brand mentions.\n\n## Search Volume\n\n![AI search volume metrics](/images/blog/ai-seo-search-volume.webp)\n\n**How often does your brand actually appear in chats for a given timeframe and platform?**\n\nTrack mention frequency across multiple AI platforms and query types. Different platforms have different user bases. Your brand might appear often on ChatGPT but rarely on Claude. Look for patterns in when and how your brand gets mentioned to understand your AI visibility.\n\n**What percentage of those appearances result in a referred visit to your site?**\n\nBeing mentioned without generating traffic means AI systems might provide enough information that users don't need to visit your site. Monitor referral traffic from AI platforms and compare it to mention frequency. Low conversion suggests you need better reasons for users to click through.\n\n## Reputation, Authority \u0026 Trust Signals\n\n![AI SEO authority and trust signals](/images/blog/ai-seo-reputation-authority-and-trust-signals.webp)\n\n**Do third-party sites often used as sources for AI know about you, and is what they know accurate?**\n\nResearch which websites AI systems frequently cite in your industry. These might include trade publications, review sites, or expert blogs. Ensure these sources have accurate, current information about your business. If key industry sources don't mention you, focus on getting coverage there.\n\n## Response Agility\n\n![Detection and correction processes for AI misrepresentation](/images/blog/ai-seo-response-agility.webp)\n\n**How quickly can you detect when AI systems misrepresent your brand?**\n\nManual checking doesn't scale for ongoing monitoring. Set up systems to track how AI platforms describe your brand over time. Sudden shifts in description, pricing, or competitive positioning deserve immediate attention before they influence customer decisions.\n\n**Do you have a process for correcting inaccurate AI outputs?**\n\nYou can't directly control AI responses like search results. Correction requires updating the sources AI systems reference. Develop relationships with key industry publications and review sites. When corrections are needed, you want efficient ways to update information across trusted sources.\n\n**How quickly can you update source material when your brand's information changes?**\n\nProduct launches, pricing changes, and strategy shifts need to spread through sources that feed AI systems. Create a checklist of sites to update whenever important information changes. Plan for lag time between updating sources and seeing changes in AI responses.\n\n## Start With These Questions\n\nAsk these questions regularly, not just once. Manual testing works for initial assessment, but systematic monitoring reveals trends and opportunities over time.\n\nThe businesses that answer these questions consistently will dominate AI search in their industries. Those that ignore them will become invisible to customers who rely on AI assistants for research and recommendations."])</script>
2<script>self.__next_f.push([1,"bc:T22e3,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var d=Object.create;var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var f=(t,e)=\u003e()=\u003e(e||t((e={exports:{}}).exports,e),e.exports),b=(t,e)=\u003e{for(var s in e)i(t,s,{get:e[s],enumerable:!0})},a=(t,e,s,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of m(e))!g.call(t,r)\u0026\u0026r!==s\u0026\u0026i(t,r,{get:()=\u003ee[r],enumerable:!(o=p(e,r))||o.enumerable});return t};var w=(t,e,s)=\u003e(s=t!=null?d(y(t)):{},a(e||!t||!t.__esModule?i(s,\"default\",{value:t,enumerable:!0}):s,t)),A=t=\u003ea(i({},\"__esModule\",{value:!0}),t);var u=f((v,c)=\u003e{c.exports=_jsx_runtime});var I={};b(I,{default:()=\u003el});var n=w(u());function h(t){let e={h2:\"h2\",img:\"img\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Track whether your brand appears as a source AND in the summarized AI results. Most users focus on the main answer, not citations\"}),`\n`,(0,n.jsx)(e.li,{children:'Cover the full \"query fan-out\"; all sub-questions AI breaks complex queries into when researching'}),`\n`,(0,n.jsx)(e.li,{children:\"Verify brand consistency: pricing, features, and positioning must be accurate across AI platforms\"}),`\n`,(0,n.jsx)(e.li,{children:\"Monitor third-party sites that AI frequently cites. They shape how AI describes your brand\"}),`\n`,(0,n.jsx)(e.li,{children:\"Build processes to detect AI misrepresentation quickly and correct inaccuracies through source updates\"}),`\n`,(0,n.jsx)(e.li,{children:\"Ask these questions regularly, not just once. Systematic monitoring reveals trends over time\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"Are you tracking keyword rankings while your customers are increasingly asking AI assistants for recommendations?\"}),`\n`,(0,n.jsx)(e.p,{children:\"Are you monitoring how ChatGPT, Claude, and Perplexity represent your brand?\"}),`\n`,(0,n.jsx)(e.p,{children:\"If AI SEO isn't a focus in 2025, you're missing where buying decisions actually happen.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Here are the essential questions every AI SEO strategy must answer.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"AI Citation Tracking\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{src:\"/images/blog/ai-seo-citation-tracking.webp\",alt:\"AI citation tracking\"})}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Does your brand show up as a source for queries that you expect your customers to use, and at what position?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"When potential customers ask AI assistants about your industry, your brand should appear in relevant answers. Position matters because being mentioned fifth is different from being the first recommendation. Test this by asking AI systems the questions your customers would ask.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"If you are included as a source, do you show up in the summarized results too?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"AI systems often cite multiple sources but only highlight a few in their main answer. Your website might be listed in citations while competitors get featured in the actual response text. Most users focus on the main answer, not the source list.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:'Are you covering the full \"query fan-out\" - all the sub-questions AI breaks complex queries into?'})}),`\n`,(0,n.jsx)(e.p,{children:\"AI systems break complex questions into smaller components. When someone asks about marketing tools, AI might research pricing, features, support, and integrations separately. Your content needs to address not just the main question but all related sub-questions AI asks behind the scenes.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"Brand Consistency\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{src:\"/images/blog/ai-seo-brand-consistency.webp\",alt:\"AI SEO brand consistency checking\"})}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Do AI searches for your brand accurately reflect it? Is the content accurate? Are prices, if listed, correct and consistent?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Search for your company name directly in different AI systems. Check whether descriptions match your current positioning. Verify that product information, pricing, and features are correct. AI systems sometimes blend old and new information, creating confusion for potential customers.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"If compared against competitors, is y
2our differentiation clear in the output?\"})}),`\n`,(0,n.jsx)(e.p,{children:'AI systems frequently create comparison tables when users ask about multiple options. Test queries like \"compare [your product] vs [competitor]\" to see how your unique value comes through. How you appear in these comparisons shapes customer perception more than isolated brand mentions.'}),`\n`,(0,n.jsx)(e.h2,{children:\"Search Volume\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{src:\"/images/blog/ai-seo-search-volume.webp\",alt:\"AI search volume metrics\"})}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"How often does your brand actually appear in chats for a given timeframe and platform?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Track mention frequency across multiple AI platforms and query types. Different platforms have different user bases. Your brand might appear often on ChatGPT but rarely on Claude. Look for patterns in when and how your brand gets mentioned to understand your AI visibility.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"What percentage of those appearances result in a referred visit to your site?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Being mentioned without generating traffic means AI systems might provide enough information that users don't need to visit your site. Monitor referral traffic from AI platforms and compare it to mention frequency. Low conversion suggests you need better reasons for users to click through.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"Reputation, Authority \u0026 Trust Signals\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{src:\"/images/blog/ai-seo-reputation-authority-and-trust-signals.webp\",alt:\"AI SEO authority and trust signals\"})}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Do third-party sites often used as sources for AI know about you, and is what they know accurate?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Research which websites AI systems frequently cite in your industry. These might include trade publications, review sites, or expert blogs. Ensure these sources have accurate, current information about your business. If key industry sources don't mention you, focus on getting coverage there.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"Response Agility\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{src:\"/images/blog/ai-seo-response-agility.webp\",alt:\"Detection and correction processes for AI misrepresentation\"})}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"How quickly can you detect when AI systems misrepresent your brand?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Manual checking doesn't scale for ongoing monitoring. Set up systems to track how AI platforms describe your brand over time. Sudden shifts in description, pricing, or competitive positioning deserve immediate attention before they influence customer decisions.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Do you have a process for correcting inaccurate AI outputs?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"You can't directly control AI responses like search results. Correction requires updating the sources AI systems reference. Develop relationships with key industry publications and review sites. When corrections are needed, you want efficient ways to update information across trusted sources.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"How quickly can you update source material when your brand's information changes?\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Product launches, pricing changes, and strategy shifts need to spread through sources that feed AI systems. Create a checklist of sites to update whenever important information changes. Plan for lag time between updating sources and seeing changes in AI responses.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"Start With These Questions\"}),`\n`,(0,n.jsx)(e.p,{children:\"Ask these questions regularly, not just once. Manual testing works for initial assessment, but systematic monitoring reveals trends and opportunities over time.\"}),`\n`,(0,n.jsx)(e.p,{children:\"The businesses that answer these questions consistently will dominate AI search in their industries. Those that ignore them will become invisible to customers who rely on AI assistants for research and recommendations.\"})]})}function l(t={}){let{wrapper:e}=t.components||{};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(h,{...t})}):h(t)}
2return A(I);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"46:[\"$\",\"$L10\",\"11-questions-your-ai-seo-strategy-should-answer\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$bb\",\"title\":\"11 Questions Your AI SEO Strategy Should Answer\",\"date\":\"2026-01-09\",\"image\":\"/images/blog/ai-seo-strategy-questions.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"11 essential questions to ask yourself to measure if your AI SEO strategy is actually effective.\",\"tags\":[\"AI SEO\",\"brand visibility\",\"ChatGPT\",\"Claude\",\"Perplexity\",\"AI strategy\",\"search optimization\"],\"published\":true,\"_meta\":{\"filePath\":\"11-questions-your-ai-seo-strategy-should-answer.mdx\",\"fileName\":\"11-questions-your-ai-seo-strategy-should-answer.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"11-questions-your-ai-seo-strategy-should-answer\"},\"body\":\"$bc\",\"locale\":\"en\",\"path\":\"11-questions-your-ai-seo-strategy-should-answer\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"bd:T26ff,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- AI visibility metrics differ from SEO: there's no page two. You're either in the answer or invisible\n- Track five key metrics: brand mention frequency, share of voice, response position, query coverage, and platform spread\n- Focus on five strategic prompt categories: Best in Category, Segment-Specific, Use Case Solution, Budget-Conscious, and Solution Comparison\n- Traditional analytics miss AI traffic because AI assistants don't execute JavaScript when citing your pages\n- Implementation takes 2-4 weeks: discovery, tool selection, then optimization and reporting\n- Avoid tracking too many prompts—different variations often trigger the same underlying grounding searches\n\nAI search visibility measures how often your brand appears when people ask ChatGPT, Claude, Perplexity, and other AI systems for recommendations. [Gartner predicts 25% of search queries will shift to AI-driven interfaces by 2026](https://www.gartner.com/en/newsroom/press-releases/2024-02-19-gartner-predicts-search-engine-volume-will-drop-25-percent-by-2026-due-to-ai-chatbots-and-other-virtual-agents), making AI visibility tracking a mandatory part of your toolkit. These tools show you where your brand ranks in AI responses and what drives those rankings.\n\n## What AI Search Visibility Really Means\n\nVisibility in AI search differs fundamentally from traditional SEO rankings. There's no page two. You're either part of the answer or you don't exist.\n\n**Key visibility metrics:**\n\n- **Brand mention frequency**: How often AI systems reference your brand\n- **Share of voice**: Your mentions versus competitor mentions\n- **Response position**: Where you appear in AI-generated answers\n- **Query coverage**: The range of questions that trigger your brand\n- **Platform spread**: Visibility across different AI systems\n\n\u003e Over half (58%) of consumers have replaced traditional search engines with Gen AI tools for product recommendations, up significantly from 25% in 2023, according to Capgemini Research Institute's 2025 consumer trends report. If you're not measuring AI visibility, you're flying blind.\n\n## How AI Search Changed Measurement Needs\n\nTraditional analytics track page views and clicks. AI search often generates zero clicks while heavily influencing buying decisions.\n\nSomeone asks Claude \"best project management tools for remote teams.\" The AI provides a detailed comparison of five products. The user makes a shortlist without visiting any websites. Traditional analytics show nothing happened.\n\n**The new visibility metrics that matter:**\n\n| Traditional SEO Metric | AI Search Equivalent | Why It's Different |\n|------------------------|---------------------|-------------------|\n| Keyword rankings | Query trigger rate | Thousands of question variations, not fixed keywords |\n| Click-through rate | Mention-to-visit rate | Many mentions never generate clicks |\n| Page position | Response placement | Binary: mentioned or not mentioned |\n| Backlinks | Citation sources | Quality of sites AI pulls from |\n| Domain authority | Brand mention volume | Frequency across web creates AI memory |\n\n## Core Features That Drive ROI\n\nNot all features deliver equal business value. Focus on capabilities that connect visibility to revenue.\n\n**Real-time visibility reports** show current brand positioning across AI platforms. These matter most when launching products, running campaigns, or managing competitive threats.\n\n**Competitor comparison** reveals your share of voice versus rivals. If competitors dominate key buying queries, you're losing deals before prospects know you exist.\n\n**Query discovery** identifies the underlying grounding searches that drive your brand mentions. While user prompts vary widely, AI systems often run the same core web searches to fulfill different requests.\n\n**Attribution analysis** connects AI mentions to website traffic. Spyglasses separates AI agent traffic from human visitors, showing which mentions actually drive conversions.\n\n## Why Most Companies Miss AI Traffic\n\n![An image of a pie chart showing AI traffic, with a missing wedge representing un-tracked AI traffic](/images/blog/missing-ai-traffic-in-google-anaytics.webp)\n\nGoogle Analytics uses javascript to track visits and page views, but when an AI asistant like ChatGPT cites your page, it doesn't use javascript. This means these vists aren't recorded in GA4. A specialized AI traffic analytics tool gives brands a far more accurate view of their website traffic.\n\n## Choosing Tools for Different Business Types\n\nYour ideal measurement approach depen
2ds on business model, budget, and team sophistication.\n\n**Marketing agencies** need white-labeled reports and multi-client management. Clients expect clear proof that AI visibility is improving. Tools should generate branded reports that agencies can deliver directly.\n\n**Enterprise brands** require integration with existing marketing stacks. AI visibility data needs to flow into attribution models, data warehouses, and executive dashboards.\n\n**SMBs and startups** benefit most from usage-based pricing and immediate insights. Paying $4,000 monthly doesn't make sense when you're still validating product-market fit.\n\n**Local businesses** need location-specific tracking and review management. AI systems pull from different sources for local queries than product searches.\n\n## Implementation Timeline and Costs\n\nGetting AI visibility tracking running takes 2-4 weeks for most organizations.\n\n**Week 1: Discovery and baseline**\n- Identify one prompt in each of five key categories\n- Run initial visibility audits\n- Identify main competitors to track\n- Establish baseline metrics\n\nThe five prompt c
2ategories Spyglasses recommends:\n1. Best in Category\n2. Segment-Specific\n3. Use Case Solution\n4. Budget-Conscious\n5. Solution Comparison\n\n**Week 2: Tool selection and setup**\n- Compare platforms based on your needs\n- Configure domain and brand tracking\n- Set up competitor monitoring\n- Integrate with existing analytics\n\n**Weeks 3-4: Optimization and reporting**\n- Refine query sets based on initial data\n- Build executive dashboards\n- Train team on interpretation\n- Establish improvement goals\n\nBudget planning varies by organization size. Most tools offer free trials or starter assessments before requiring full commitment.\n\n## Common Measurement Mistakes\n\nThree issues account for most AI visibility tracking failures.\n\n**Tracking too many prompts** wastes resources without improving insights. The average length of a prompt is 22 words, and different prompt variations often trigger the same underlying grounding searches. It's more efficient to track strategic prompt categories than attempting to cover every possible question variation.\n\nFocus on one prompt in each of these categories: Best in Category, Segment-Specific, Use Case Solution, Budget-Conscious, and Solution Comparison. This approach covers the full buyer's journey without paying to track prompts that don't add any additional value.\n\n**Ignoring platform differences** loses context. ChatGPT, Google AI Overviews, Claude, and Perplexity pull from different sources and serve different user behaviors. Strong visibility on one platform doesn't guarantee visibility on others. However, keep market share in mind. \n\nIf you don't have the bandwidth to cover all platforms, ChatGPT's 80+% market share in the AI Assistant category make it a no-brainer, and Google's AI Overviews are a must-track given they leverage Google's market dominance in traditional search.\n\n**Not connecting to pipeline** reduces executive buy-in. Visibility metrics matter when they tie to revenue. Track AI mentions through to demos, trials, or purchases.\n\n## The Hidden Value of AI Visibility Data\n\nVisibility tracking reveals opportunities beyond just rankings.\n\n**Content gap analysis** shows topics where competitors dominate AI responses. These gaps represent market education opportunities.\n\n**Message testing** happens faster through AI systems. AI picks up content extremely quickly. Your new article can be a source of AI brand mentions in days, vs. weeks or months for traditional SEO.\n\n**Crisis detection** happens in real time. Negative mentions spreading through AI systems get flagged before they impact traditional search.\n\n## Getting Started Without Enterprise Budgets\n\nYou don't need $15,000 monthly to start measuring AI visibility.\n\nBegin with manual audits. Test prompts in each of the five strategic categories across ChatGPT, Google AI Overviews, Claude, and Perplexity. Track which brands appear and in what context. This costs nothing but time and the subscriptions you probably already have, and provides directional insight.\n\nGet a free AI Visibility Report. Spyglasses [AI Visibility Report](/ai-visibility-report) includes brand consistency scores across AI platforms and share of voice versus competitors. Some detailed data requires a small one-time payment or paid plan, but the free version gives you key metrics to establish your starting point.\n\nConsider usage-based platforms that charge per report rather than flat monthly fees. This aligns costs with actual usage and removes commitment anxiety.\n\n## From Invisible to Unavoidable\n\nAI assistants have become invisible sales team members. They're researching your brand, comparing you to competitors, and making recommendations to your potential customers. But without measurement tools, you can't see or influence those conversations.\n\nSpyglasses' AI search visibility tracking shows brand mentions across five major platforms, competitive positioning, and actual traffic from AI sources. Unlike enterprise tools requiring $4,000+ monthly commitments, Spyglasses uses usage-based pricing that scales with your business.\n\nStart by running a visibility audit across ChatGPT, Google AI Overviews, Claude, and Perplexity. Test one prompt in each of the five strategic categories, identify visibility gaps versus competitors, and prioritize improvements that drive the most revenue impact."])</script>
2<script>self.__next_f.push([1,"be:T3c21,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var p=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),v=(n,e)=\u003e{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},a=(n,e,t,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of u(e))!y.call(n,r)\u0026\u0026r!==t\u0026\u0026s(n,r,{get:()=\u003ee[r],enumerable:!(o=m(e,r))||o.enumerable});return n};var b=(n,e,t)=\u003e(t=n!=null?p(g(n)):{},a(e||!n||!n.__esModule?s(t,\"default\",{value:n,enumerable:!0}):t,n)),w=n=\u003ea(s({},\"__esModule\",{value:!0}),n);var c=f((A,l)=\u003e{l.exports=_jsx_runtime});var k={};v(k,{default:()=\u003eh});var i=b(c());function d(n){let e={a:\"a\",blockquote:\"blockquote\",h2:\"h2\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"AI visibility metrics differ from SEO: there's no page two. You're either in the answer or invisible\"}),`\n`,(0,i.jsx)(e.li,{children:\"Track five key metrics: brand mention frequency, share of voice, response position, query coverage, and platform spread\"}),`\n`,(0,i.jsx)(e.li,{children:\"Focus on five strategic prompt categories: Best in Category, Segment-Specific, Use Case Solution, Budget-Conscious, and Solution Comparison\"}),`\n`,(0,i.jsx)(e.li,{children:\"Traditional analytics miss AI traffic because AI assistants don't execute JavaScript when citing your pages\"}),`\n`,(0,i.jsx)(e.li,{children:\"Implementation takes 2-4 weeks: discovery, tool selection, then optimization and reporting\"}),`\n`,(0,i.jsx)(e.li,{children:\"Avoid tracking too many prompts\\u2014different variations often trigger the same underlying grounding searches\"}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"AI search visibility measures how often your brand appears when people ask ChatGPT, Claude, Perplexity, and other AI systems for recommendations. \",(0,i.jsx)(e.a,{href:\"https://www.gartner.com/en/newsroom/press-releases/2024-02-19-gartner-predicts-search-engine-volume-will-drop-25-percent-by-2026-due-to-ai-chatbots-and-other-virtual-agents\",children:\"Gartner predicts 25% of search queries will shift to AI-driven interfaces by 2026\"}),\", making AI visibility tracking a mandatory part of your toolkit. These tools show you where your brand ranks in AI responses and what drives those rankings.\"]}),`\n`,(0,i.jsx)(e.h2,{children:\"What AI Search Visibility Really Means\"}),`\n`,(0,i.jsx)(e.p,{children:\"Visibility in AI search differs fundamentally from traditional SEO rankings. There's no page two. You're either part of the answer or you don't exist.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Key visibility metrics:\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Brand mention frequency\"}),\": How often AI systems reference your brand\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Share of voice\"}),\": Your mentions versus competitor mentions\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Response position\"}),\": Where you appear in AI-generated answers\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Query coverage\"}),\": The range of questions that trigger your brand\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Platform spread\"}),\": Visibility across different AI systems\"]}),`\n`]}),`\n`,(0,i.jsxs)(e.blockquote,{children:[`\n`,(0,i.jsx)(e.p,{children:\"Over half (58%) of consumers have replaced traditional search engines with Gen AI tools for product recommendations, up significantly from 25% in 2023, according to Capgemini Research Institute's 2025 consumer trends report. If you're not measuring AI visibility, you're flying blind.\"}),`\n`]}),`\n`,(0,i.jsx)(e.h2,{children:\"How AI Search Changed Measurement Needs\"}),`\n`,(0,i.jsx)(e.p,{children:\"Traditional analytics track page views and clicks. AI search often generates zero clicks while heavily influencing buying decisions.\"}),`\n`,(0,i.jsx)(e.p,{children:'Someone asks Claude \"best project management tools for remote teams.\" The AI provides a detailed comparison of five products. The user makes a shortlist without visiting any websites. Traditional analytics show nothing happened.'}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"The new visibility metrics that matter:\"})}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"Traditional SEO Metric\"}),(0,i.jsx)(e.th,{children:\"AI Search Equivalent\"}),(0,i.jsx)(e.th,{children:\"Why It's Different\"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Keyword rankings\"}),(0,i.jsx)(e.td,{children:\"Query trigger rate\"}),(0,i.jsx)(e.td,{children:\"Thousands of question variations, not fixed keywords\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Click-through rate\"}),(0,i.jsx)(e.td,{children:\"Mention-to-visit rate\"}),(0,i.jsx)(e.td,{children:\"Many mentions never generate clicks\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Page position\"}),(0,i.jsx)(e.td,{children:\"Response placement\"}),(0,i.jsx)(e.td,{children:\"Binary: mentioned or not mentioned\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Backlinks\"}),(0,i.jsx)(e.td,{children:\"Citation sources\"}),(0,i.jsx)(e.td,{children:\"Quality of sites AI pulls from\"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Domain authority\"}),(0,i.jsx)(e.td,{children:\"Brand mention volume\"}),(0,i.jsx)(e.td,{children:\"Frequency across web creates AI memory\"})]})]})]}),`\n`,(0,i.jsx)(e.h2,{children:\"Core Features That Drive ROI\"}),`\n`,(0,i.jsx)(e.p,{children:\"Not all features deliver equal business value. Focus on capabilities that connect visibility to revenue.\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Real-time visibility reports\"}),\" show current brand positioning across AI platforms. These matter most when launching products, running campaigns, or managing competitive threats.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Competitor comparison\"}),\" reveals your share of voice versus rivals. If competitors dominate key buying queries, you're losing deals before prospects know you exist.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Query discovery\"}),\" identifies the underlying grounding searches that drive your brand mentions. While user prompts vary widely, AI systems often run the same core web searches to fulfill different requests.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Attribution analysis\"}),\" connects AI mentions to website traffic. Spyglasses separates AI agent traffic from human visitors, showing which mentions actually drive conversions.\"]}),`\n`,(0,i.jsx)(e.h2,{children:\"Why Most Companies Miss AI Traffic\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{src:\"/images/blog/missing-ai-traffic-in-google-anaytics.webp\",alt:\"An image of a pie chart showing AI traffic, with a missing wedge representing un-tracked AI traffic\"})}),`\n`,(0,i.jsx)(e.p,{children:\"Google Analytics uses javascript to track visits and page views, but when an AI asistant like ChatGPT cites your page, it doesn't use javascript. This means these vists aren't recorded in GA4. A specialized AI traffic analytics tool gives brands a far more accurate view of their website traffic.\"}),`\n`,(0,i.jsx)(e.h2,{children:\"Choosing Tools for Different Business Types\"}),`\n`,(0,i.jsx)(e.p,{children:\"Your ideal measurement approach depen
2ds on business model, budget, and team sophistication.\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Marketing agencies\"}),\" need white-labeled reports and multi-client management. Clients expect clear proof that AI visibility is improving. Tools should generate branded reports that agencies can deliver directly.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Enterprise brands\"}),\" require integration with existing marketing stacks. AI visibility data needs to flow into attribution models, data warehouses, and executive dashboards.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"SMBs and startups\"}),\" benefit most from usage-based pricing and immediate insights. Paying $4,000 monthly doesn't make sense when you're still validating product-market fit.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Local businesses\"}),\" need location-specific tracking and review management. AI systems pull from different sources for local queries than product searches.\"]}),`\n`,(0,i.jsx)(e.h2,{children:\"Implementation Timeline and Costs\"}),`\n`,(0,i.jsx)(e.p,{children:\"Getting AI visibility tracking running takes 2-4 weeks for most organizations.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Week 1: Discovery and baseline\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Identify one prompt in each of five key categories\"}),`\n`,(0,i.jsx)(e.li,{children:\"Run initial visibility audits\"}),`\n`,(0,i.jsx)(e.li,{children:\"Identify main competitors to track\"}),`\n`,(0,i.jsx)(e.li,{children:\"Establish baseline metrics\"}),`\n`]}
2),`\n`,(0,i.jsx)(e.p,{children:\"The five prompt categories Spyglasses recommends:\"}),`\n`,(0,i.jsxs)(e.ol,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Best in Category\"}),`\n`,(0,i.jsx)(e.li,{children:\"Segment-Specific\"}),`\n`,(0,i.jsx)(e.li,{children:\"Use Case Solution\"}),`\n`,(0,i.jsx)(e.li,{children:\"Budget-Conscious\"}),`\n`,(0,i.jsx)(e.li,{children:\"Solution Comparison\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Week 2: Tool selection and setup\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Compare platforms based on your needs\"}),`\n`,(0,i.jsx)(e.li,{children:\"Configure domain and brand tracking\"}),`\n`,(0,i.jsx)(e.li,{children:\"Set up competitor monitoring\"}),`\n`,(0,i.jsx)(e.li,{children:\"Integrate with existing analytics\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Weeks 3-4: Optimization and reporting\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Refine query sets based on initial data\"}),`\n`,(0,i.jsx)(e.li,{children:\"Build executive dashboards\"}),`\n`,(0,i.jsx)(e.li,{children:\"Train team on interpretation\"}),`\n`,(0,i.jsx)(e.li,{children:\"Establish improvement goals\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:\"Budget planning varies by organization size. Most tools offer free trials or starter assessments before requiring full commitment.\"}),`\n`,(0,i.jsx)(e.h2,{children:\"Common Measurement Mistakes\"}),`\n`,(0,i.jsx)(e.p,{children:\"Three issues account for most AI visibility tracking failures.\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Tracking too many prompts\"}),\" wastes resources without improving insights. The average length of a prompt is 22 words, and different prompt variations often trigger the same underlying grounding searches. It's more efficient to track strategic prompt categories than attempting to cover every possible question variation.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"Focus on one prompt in each of these categories: Best in Category, Segment-Specific, Use Case Solution, Budget-Conscious, and Solution Comparison. This approach covers the full buyer's journey without paying to track prompts that don't add any additional value.\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Ignoring platform differences\"}),\" loses context. ChatGPT, Google AI Overviews, Claude, and Perplexity pull from different sources and serve different user behaviors. Strong visibility on one platform doesn't guarantee visibility on others. However, keep market share in mind.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"If you don't have the bandwidth to cover all platforms, ChatGPT's 80+% market share in the AI Assistant category make it a no-brainer, and Google's AI Overviews are a must-track given they leverage Google's market dominance in traditional search.\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Not connecting to pipeline\"}),\" reduces executive buy-in. Visibility metrics matter when they tie to revenue. Track AI mentions through to demos, trials, or purchases.\"]}),`\n`,(0,i.jsx)(e.h2,{children:\"The Hidden Value of AI Visibility Data\"}),`\n`,(0,i.jsx)(e.p,{children:\"Visibility tracking reveals opportunities beyond just rankings.\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Content gap analysis\"}),\" shows topics where competitors dominate AI responses. These gaps represent market education opportunities.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Message testing\"}),\" happens faster through AI systems. AI picks up content extremely quickly. Your new article can be a source of AI brand mentions in days, vs. weeks or months for traditional SEO.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Crisis detection\"}),\" happens in real time. Negative mentions spreading through AI systems get flagged before they impact traditional search.\"]}),`\n`,(0,i.jsx)(e.h2,{children:\"Getting Started Without Enterprise Budgets\"}),`\n`,(0,i.jsx)(e.p,{children:\"You don't need $15,000 monthly to start measuring AI visibility.\"}),`\n`,(0,i.jsx)(e.p,{children:\"Begin with manual audits. Test prompts in each of the five strategic categories across ChatGPT, Google AI Overviews, Claude, and Perplexity. Track which brands appear and in what context. This costs nothing but time and the subscriptions you probably already have, and provides directional insight.\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Get a free AI Visibility Report. Spyglasses \",(0,i.jsx)(e.a,{href:\"/ai-visibility-report\",children:\"AI Visibility Report\"}),\" includes brand consistency scores across AI platforms and share of voice versus competitors. Some detailed data requires a small one-time payment or paid plan, but the free version gives you key metrics to establish your starting point.\"]}
2),`\n`,(0,i.jsx)(e.p,{children:\"Consider usage-based platforms that charge per report rather than flat monthly fees. This aligns costs with actual usage and removes commitment anxiety.\"}),`\n`,(0,i.jsx)(e.h2,{children:\"From Invisible to Unavoidable\"}),`\n`,(0,i.jsx)(e.p,{children:\"AI assistants have become invisible sales team members. They're researching your brand, comparing you to competitors, and making recommendations to your potential customers. But without measurement tools, you can't see or influence those conversations.\"}),`\n`,(0,i.jsx)(e.p,{children:\"Spyglasses' AI search visibility tracking shows brand mentions across five major platforms, competitive positioning, and actual traffic from AI sources. Unlike enterprise tools requiring $4,000+ monthly commitments, Spyglasses uses usage-based pricing that scales with your business.\"}),`\n`,(0,i.jsx)(e.p,{children:\"Start by running a visibility audit across ChatGPT, Google AI Overviews, Claude, and Perplexity. Test one prompt in each of the five strategic categories, identify visibility gaps versus competitors, and prioritize improvements that drive the most revenue impact.\"})]})}function h(n={}){let{wrapper:e}=n.components||{};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}return w(k);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"47:[\"$\",\"$L10\",\"tools-to-measure-ai-search-visibility-buyers-guide-2025\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$bd\",\"title\":\"Tools to Measure AI Search Visibility: A Buyer's Guide for 2025\",\"date\":\"2026-01-08\",\"image\":\"/images/blog/tools-to-measure-ai-search-visibility.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"What to look for in an AI Visibility Tracking platform for your agency in 2025.\",\"tags\":[\"AI SEO\",\"AEO\",\"GEO\",\"AI Search Visibility\",\"Comparison\"],\"published\":true,\"_meta\":{\"filePath\":\"tools-to-measure-ai-search-visibility-buyers-guide-2025.mdx\",\"fileName\":\"tools-to-measure-ai-search-visibility-buyers-guide-2025.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"tools-to-measure-ai-search-visibility-buyers-guide-2025\"},\"body\":\"$be\",\"locale\":\"en\",\"path\":\"tools-to-measure-ai-search-visibility-buyers-guide-2025\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"bf:T2bff,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- AI conversion rate = (Clickthroughs from AI) ÷ (Total AI Mentions) × 100—this measures how well AI presents your brand\n- Traditional analytics only show what happens after someone visits; AI analytics show the \"pre-visit\" stage where buying decisions are influenced\n- AI assistants have become invisible sales team members researching your brand and making recommendations to potential customers\n- Track mention quality, comparison position, and context relevance in addition to raw conversion numbers\n- E-commerce, service businesses, local businesses, and SaaS companies all benefit from AI conversion tracking\n- Combine traditional conversion data with AI conversion insights for a complete view of your sales funnel\n\nYour conversion rate might be lying to you. While you're celebrating a 3% conversion rate from Google Ads, you could be missing the fact that AI assistants mention your products to hundreds of potential customers who never click through to your site. Or worse, you might be losing sales because your content isn't optimized for how AI systems research and compare products on behalf of users.\n\nWelcome to the new reality of online sales: AI assistants have become invisible members of your sales team, either recommending your products to users or quietly steering them toward competitors. The businesses that learn to measure and optimize for AI-driven discovery will have a massive advantage over those still thinking in terms of traditional web traffic alone.\n\nUnderstanding AI conversion metrics isn't just about tracking another number—it's about seeing the complete picture of how customers discover and evaluate your business in 2025.\n\n## How AI Changes Your Sales Funnel\n\nTraditional sales funnels start when someone visits your website. But AI assistants are changing where the funnel actually begins. Now, potential customers often start their journey by asking an AI assistant questions like \"What's the best project management software for small teams?\" or \"Where can I find eco-friendly office supplies near Chicago?\"\n\nWhen users ask these questions, AI systems search the web and analyze dozens of websites to create comprehensive answers. Your business might be mentioned, compared, or recommended without the user ever clicking through to your site. This creates a new layer in your sales funnel that most businesses can't see or measure.\n\nThink of it this way: traditional analytics show you what happens after someone reaches your website. AI analytics show you what happens before they even know your website exists. This \"pre-visit\" stage is where many buying decisions are actually influenced or made.\n\n## What Is AI Conversion Rate?\n\nAI conversion rate measures how often your website gets mentioned in AI research compared to how often those mentions lead to actual visits. It's calculated as:\n\n`AI Conversion Rate = (Clickthroughs from AI) ÷ (Total AI Mentions) × 100`\n\nFor example, if AI assistants mention your business 200 times in user conversations but only 20 people click through to your site, your AI conversion rate is 10%. This metric reveals whether AI systems are presenting your business in a compelling way and whether your content encourages users to visit your site.\n\nBut AI conversion rate goes deeper than just clicks. It also includes:\n\n- **Mention Quality**: How favorably AI systems describe your products or services\n- **Comparison Position**: Where you rank when AI systems compare multiple options\n- **Context Relevance**: Whether AI mentions your business for the right search queries\n\n## Why Traditional Metrics Miss the AI Impact\n\nMost website analytics only track visitors who actually reach your site. This creates blind spots when AI assistants influence buying decisions without generating direct traffic.\n\nHere's what traditional metrics miss:\n\n**Research Without Visits**: Users often ask AI assistants to research products, get recommendations, and even make comparisons without visiting websites. If your product gets recommended but the user buys directly from a marketplace, traditional analytics show zero impact.\n\n**Delayed Conversions**: Someone might learn about your business from an AI assistant today but visit your website weeks later. Traditional attribution models often miss this connection.\n\n**Brand Awareness Building**: When AI systems mention your business positively, it builds brand awareness even if users don't click immediately. This value doesn't show up in standard conversion metrics.\n\n**Competitive Intelligence**: You can't see when AI systems recommend competitors over your business or why users choose other options after AI research.\n\n## Should I Track AI Conversion Metrics for My E-commerce Store?\n\n**Yes, especially if you sell products that people research before buying.** AI assistants have become the new comparison shopping engines. When customers ask \"What's the best running shoes for beginners?\" or \"Which coffee maker has the best reviews?\", you want to know if your products are being recommended and why customers do or don't click through.\n\nAI conversion metrics help e-commerce stores understand their true market position. You might discover that AI systems mention your products frequently but describe them in ways that don't encourage purchases. Or you might find that your products get recommended for the wrong use cases.\n\nTrack AI mentions for your key product categories and see how often those mentions lead to website visits. Compare your AI conversion rate to your traditional search conversion rate to see which channel drives higher-quality traffic.\n\n## Should I Track AI Conversion Metrics for My Service Business?\n\n**Absolutely, particularly for professional services and B2B companies.** Many business buyers now start their vendor research by asking AI assistants for recommendations. Questions like \"What marketing agencies specialize in SaaS companies?\" or \"Who are the best accounting firms for small businesses?\" create opportunities for AI discovery.\n\nService businesses benefit from AI conversion metrics because they reveal how AI systems describe your expertise and whether that description motivates potential clients to contact you. You might learn that AI assistants mention your business but fail to highlight your key differentiators.\n\nMonitor AI conversations about your industry and services. Track when your business gets mentioned and whether those mentions accurately represent your capabilities and value proposition.\n\n## Should I Track AI Conversion Metrics for My Local Business?\n\n**Yes, especially for businesses where customers compare options before visiting.** Local search through AI assistants is growing rapidly. Users ask questions like \"best Italian restaurants downtown\" or \"reliable auto repair shops near me\" and expect comprehensive, current recommendations.\n\nLocal businesses can use AI conversion metrics to understand their position in AI-powered local search. You might discover that AI systems have outdated information about your hours, services, or location. Or you might find that competitors appear more frequently in AI recommendations.\n\nTrack mentions of your business in local AI searches and monitor whether your business information is accurate and compelling when AI systems describe it to users.\n\n## Should I Track AI Conversion Metrics for My SaaS Product?\n\n**Definitely yes for SaaS companies.** Software buyers increasingly use AI assistants to research tools, compare features, and understand use cases. Questions like \"What's the difference between Slack and Microsoft Teams?\" or \"Which CRM works best for real estate?\" create moments where your product might be recommended or overlooked.\n\nSaaS companies can use AI conversion metrics to optimize how AI systems describe their products. You might learn that AI assistants accurately explain your features but miss your key benefits. Or you might discover that your product gets recommended for use cases you didn't expect.\n\nMonitor AI conversations about your product category and competitors. Track how often your product appears in comparisons and whether AI systems highlight your unique value proposition.\n\n## Should I Track AI Conversion Metrics for My Content Site?\n\n**Yes, but focus on how AI systems reference and attribute your content.** Content creators face unique AI challenges because AI systems might summarize your articles, answer questions using your research, or recommend your content to users looking for information.\n\nContent sites can use AI conversion metrics to understand whether AI systems drive traffic to their articles or reduce it by providing summaries that eliminate the need to visit. You might discover that AI assistants frequently reference your content but rarely link back to your site.\n\nTrack when AI systems mention or reference your content and whether those mentions include proper attribution and links back to your original articles.\n\n## How to Start Measuring AI Conversion Metrics\n\nGetting started with AI conversion metrics requires the right tools and approach:\n\n**Choose an AI Analytics Platform**: Traditional analytics platforms can't track AI mentions or measure pre-visit interactions. AI analytics platforms monitor when AI systems access your content and track mentions in AI conversations.\n\n**Define Your Key Metrics**: Decide which AI conversion metrics matter most for your business. E-commerce stores might focus on product mentions and click-through rates. Service businesses might prioritize recommendation quality and competitive positioning.\n\n**Set Up Baseline Measurements**: Before optimizing for AI, establish baseline metrics for how often AI systems currently mention your business and how users respond to those mentions.\n\n**Monitor Competitor Activity**: Track how AI systems describe your competitors and what advantages they highlight. This intelligence helps you optimize your own AI presence.\n\n**Test and Optimize**: Use AI conversion data to improve how AI systems understand and describe your business. Update your content to be more AI-friendly while maintaining value for human visitors.\n\n## The Future of Customer Discovery\n\nTraditional marketing focuses on getting people to your website. AI-era marketing focuses on being discovered and recommended by AI systems that act as research assistants for your potential customers.\n\nThe businesses that master AI conversion metrics will know not just who visits their website, but who considers their business before even knowing their website exists. They'll see when competitors get recommended over them and understand why. They'll spot opportunities to improve how AI systems describe their products and services.\n\nThis isn't about replacing traditional metrics—it's about completing the picture. When you combine traditional conversion data with AI conversion insights, you get a full view of your sales funnel from initial AI research through final purchase.\n\nRight now, most of your competitors are flying blind when it comes to AI-driven customer discovery. They're optimizing for yesterday's customer journey while missing today's opportunities. Start tracking your AI conversion metrics now, and 
2you'll have insights they don't even know they need."])</script>
2<script>self.__next_f.push([1,"c0:T39de,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var d=Object.create;var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var f=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},a=(n,e,t,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let o of y(e))!g.call(n,o)\u0026\u0026o!==t\u0026\u0026r(n,o,{get:()=\u003ee[o],enumerable:!(i=m(e,o))||i.enumerable});return n};var w=(n,e,t)=\u003e(t=n!=null?d(p(n)):{},a(e||!n||!n.__esModule?r(t,\"default\",{value:n,enumerable:!0}):t,n)),v=n=\u003ea(r({},\"__esModule\",{value:!0}),n);var h=f((k,c)=\u003e{c.exports=_jsx_runtime});var I={};b(I,{default:()=\u003el});var s=w(h());function u(n){let e={code:\"code\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,s.jsxs)(e.ul,{children:[`\n`,(0,s.jsx)(e.li,{children:\"AI conversion rate = (Clickthroughs from AI) \\xF7 (Total AI Mentions) \\xD7 100\\u2014this measures how well AI presents your brand\"}),`\n`,(0,s.jsx)(e.li,{children:'Traditional analytics only show what happens after someone visits; AI analytics show the \"pre-visit\" stage where buying decisions are influenced'}),`\n`,(0,s.jsx)(e.li,{children:\"AI assistants have become invisible sales team members researching your brand and making recommendations to potential customers\"}),`\n`,(0,s.jsx)(e.li,{children:\"Track mention quality, comparison position, and context relevance in addition to raw conversion numbers\"}),`\n`,(0,s.jsx)(e.li,{children:\"E-commerce, service businesses, local businesses, and SaaS companies all benefit from AI conversion tracking\"}),`\n`,(0,s.jsx)(e.li,{children:\"Combine traditional conversion data with AI conversion insights for a complete view of your sales funnel\"}),`\n`]}),`\n`,(0,s.jsx)(e.p,{children:\"Your conversion rate might be lying to you. While you're celebrating a 3% conversion rate from Google Ads, you could be missing the fact that AI assistants mention your products to hundreds of potential customers who never click through to your site. Or worse, you might be losing sales because your content isn't optimized for how AI systems research and compare products on behalf of users.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Welcome to the new reality of online sales: AI assistants have become invisible members of your sales team, either recommending your products to users or quietly steering them toward competitors. The businesses that learn to measure and optimize for AI-driven discovery will have a massive advantage over those still thinking in terms of traditional web traffic alone.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Understanding AI conversion metrics isn't just about tracking another number\\u2014it's about seeing the complete picture of how customers discover and evaluate your business in 2025.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"How AI Changes Your Sales Funnel\"}),`\n`,(0,s.jsx)(e.p,{children:`Traditional sales funnels start when someone visits your website. But AI assistants are changing where the funnel actually begins. Now, potential customers often start their journey by asking an AI assistant questions like \"What's the best project management software for small teams?\" or \"Where can I find eco-friendly office supplies near Chicago?\"`}),`\n`,(0,s.jsx)(e.p,{children:\"When users ask these questions, AI systems search the web and analyze dozens of websites to create comprehensive answers. Your business might be mentioned, compared, or recommended without the user ever clicking through to your site. This creates a new layer in your sales funnel that most businesses can't see or measure.\"}),`\n`,(0,s.jsx)(e.p,{children:'Think of it this way: traditional analytics show you what happens after someone reaches your website. AI analytics show you what happens before they even know your website exists. This \"pre-visit\" stage is where many buying decisions are actually influenced or made.'}),`\n`,(0,s.jsx)(e.h2,{children:\"What Is AI Conversion Rate?\"}),`\n`,(0,s.jsx)(e.p,{children:\"AI conversion rate measures how often your website gets mentioned in AI research compared to how often those mentions lead to actual visits. It's calculated as:\"}),`\n`,(0,s.jsx)(e.p,{children:(0,s.jsx)(e.code,{children:\"AI Conversion Rate = (Clickthroughs from AI) \\xF7 (Total AI Mentions) \\xD7 100\"})}),`\n`,(0,s.jsx)(e.p,{children:\"For example, if AI assistants mention your business 200 times in user conversations but only 20 people click through to your site, your AI conversion rate is 10%. This metric reveals whether AI systems are presenting your business in a compelling way and whether your content encourages users to visit your site.\"}),`\n`,(0,s.jsx)(e.p,{children:\"But AI conversion rate goes deeper than just clicks. It also includes:\"}),`\n`,(0,s.jsxs)(e.ul,{children:[`\n`,(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:\"Mention Quality\"}),\": How favorably AI systems describe your products or services\"]}),`\n`,(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:\"Comparison Position\"}),\": Where you rank when AI systems compare multiple options\"]}),`\n`,(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:\"Context Relevance\"}),\": Whether AI mentions your business for the right search queries\"]}),`\n`]}),`\n`,(0,s.jsx)(e.h2,{children:\"Why Traditional Metrics Miss the AI Impact\"}),`\n`,(0,s.jsx)(e.p,{children:\"Most website analytics only track visitors who actually reach your site. This creates blind spots when AI assistants influence buying decisions without generating direct traffic.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Here's what traditional metrics miss:\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Research Without Visits\"}),\": Users often ask AI assistants to research products, get recommendations, and even make comparisons without visiting websites. If your product gets recommended but the user buys directly from a marketplace, traditional analytics show zero impact.\"]}
2),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Delayed Conversions\"}),\": Someone might learn about your business from an AI assistant today but visit your website weeks later. Traditional attribution models often miss this connection.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Brand Awareness Building\"}),\": When AI systems mention your business positively, it builds brand awareness even if users don't click immediately. This value doesn't show up in standard conversion metrics.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Competitive Intelligence\"}),\": You can't see when AI systems recommend competitors over your business or why users choose other options after AI research.\"]}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Track AI Conversion Metrics for My E-commerce Store?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Yes, especially if you sell products that people research before buying.\"}),` AI assistants have become the new comparison shopping engines. When customers ask \"What's the best running shoes for beginners?\" or \"Which coffee maker has the best reviews?\", you want to know if your products are being recommended and why customers do or don't click through.`]}),`\n`,(0,s.jsx)(e.p,{children:\"AI conversion metrics help e-commerce stores understand their true market position. You might discover that AI systems mention your products frequently but describe them in ways that don't encourage purchases. Or you might find that your products get recommended for the wrong use cases.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Track AI mentions for your key product categories and see how often those mentions lead to website visits. Compare your AI conversion rate to your traditional search conversion rate to see which channel drives higher-quality traffic.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Track AI Conversion Metrics for My Service Business?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Absolutely, particularly for professional services and B2B companies.\"}),' Many business buyers now start their vendor research by asking AI assistants for recommendations. Questions like \"What marketing agencies specialize in SaaS companies?\" or \"Who are the best accounting firms for small businesses?\" create opportunities for AI discovery.']}),`\n`,(0,s.jsx)(e.p,{children:\"Service businesses benefit from AI conversion metrics because they reveal how AI systems describe your expertise and whether that description motivates potential clients to contact you. You might learn that AI assistants mention your business but fail to highlight your key differentiators.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Monitor AI conversations about your industry and services. Track when your business gets mentioned and whether those mentions accurately represent your capabilities and value proposition.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Track AI Conversion Metrics for My Local Business?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Yes, especially for businesses where customers compare options before visiting.\"}),' Local search through AI assistants is growing rapidly. Users ask questions like \"best Italian restaurants downtown\" or \"reliable auto repair shops near me\" and expect comprehensive, current recommendations.']}),`\n`,(0,s.jsx)(e.p,{children:\"Local businesses can use AI conversion metrics to understand their position in AI-powered local search. You might discover that AI systems have outdated information about your hours, services, or location. Or you might find that competitors appear more frequently in AI recommendations.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Track mentions of your business in local AI searches and monitor whether your business information is accurate and compelling when AI systems describe it to users.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Track AI Conversion Metrics for My SaaS Product?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Definitely yes for SaaS companies.\"}
2),` Software buyers increasingly use AI assistants to research tools, compare features, and understand use cases. Questions like \"What's the difference between Slack and Microsoft Teams?\" or \"Which CRM works best for real estate?\" create moments where your product might be recommended or overlooked.`]}),`\n`,(0,s.jsx)(e.p,{children:\"SaaS companies can use AI conversion metrics to optimize how AI systems describe their products. You might learn that AI assistants accurately explain your features but miss your key benefits. Or you might discover that your product gets recommended for use cases you didn't expect.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Monitor AI conversations about your product category and competitors. Track how often your product appears in comparisons and whether AI systems highlight your unique value proposition.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Track AI Conversion Metrics for My Content Site?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Yes, but focus on how AI systems reference and attribute your content.\"}),\" Content creators face unique AI challenges because AI systems might summarize your articles, answer questions using your research, or recommend your content to users looking for information.\"]}),`\n`,(0,s.jsx)(e.p,{children:\"Content sites can use AI conversion metrics to understand whether AI systems drive traffic to their articles or reduce it by providing summaries that eliminate the need to visit. You might discover that AI assistants frequently reference your content but rarely link back to your site.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Track when AI systems mention or reference your content and whether those mentions include proper attribution and links back to your original articles.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"How to Start Measuring AI Conversion Metrics\"}),`\n`,(0,s.jsx)(e.p,{children:\"Getting started with AI conversion metrics requires the right tools and approach:\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Choose an AI Analytics Platform\"}),\": Traditional analytics platforms can't track AI mentions or measure pre-visit interactions. AI analytics platforms monitor when AI systems access your content and track mentions in AI conversations.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Define Your Key Metrics\"}),\": Decide which AI conversion metrics matter most for your business. E-commerce stores might focus on product mentions and click-through rates. Service businesses might prioritize recommendation quality and competitive positioning.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Set Up Baseline Measurements\"}),\": Before optimizing for AI, establish baseline metrics for how often AI systems currently mention your business and how users respond to those mentions.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Monitor Competitor Activity\"}),\": Track how AI systems describe your competitors and what advantages they highlight. This intelligence helps you optimize your own AI presence.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Test and Optimize\"}),\": Use AI conversion data to improve how AI systems understand and describe your business. Update your content to be more AI-friendly while maintaining value for human visitors.\"]}),`\n`,(0,s.jsx)(e.h2,{children:\"The Future of Customer Discovery\"}),`\n`,(0,s.jsx)(e.p,{children:\"Traditional marketing focuses on getting people to your website. AI-era marketing focuses on being discovered and recommended by AI systems that act as research assistants for your potential customers.\"}),`\n`,(0,s.jsx)(e.p,{children:\"The businesses that master AI conversion metrics will know not just who visits their website, but who considers their business before even knowing their website exists. They'll see when competitors get recommended over them and understand why. They'll spot opportunities to improve how AI systems describe their products and services.\"}),`\n`,(0,s.jsx)(e.p,{children:\"This isn't about replacing traditional metrics\\u2014it's about completing the picture. When you combine traditional conversion data with AI conversion insights, you get a full view of your sales funnel from initial AI research through final purchase.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Right now, most of your competitors are flying blind when it comes to AI-driven customer discovery. They're optimizing for yesterday's customer journey while missing today's opportunities. Start tracking your AI conversion metrics now, and 
2you'll have insights they don't even know they need.\"})]})}function l(n={}){let{wrapper:e}=n.components||{};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(u,{...n})}):u(n)}return v(I);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"48:[\"$\",\"$L10\",\"why-ai-conversion-metrics-are-the-new-gold-standard\",{\"delay\":60,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$bf\",\"title\":\"Why AI Conversion Metrics Are the New Gold Standard for Online Businesses\",\"date\":\"2026-01-07\",\"image\":\"/images/blog/ai-conversion-metrics-cover.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Traditional conversion metrics miss a huge part of your sales funnel. Learn how AI conversion rates help you optimize for the future of customer discovery.\",\"tags\":[\"AI analytics\",\"conversion metrics\",\"digital marketing\",\"sales funnel\",\"ROI\"],\"published\":true,\"_meta\":{\"filePath\":\"why-ai-conversion-metrics-are-the-new-gold-standard.mdx\",\"fileName\":\"why-ai-conversion-metrics-are-the-new-gold-standard.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"why-ai-conversion-metrics-are-the-new-gold-standard\"},\"body\":\"$c0\",\"locale\":\"en\",\"path\":\"why-ai-conversion-metrics-are-the-new-gold-standard\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"c1:T2e36,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- E-commerce, local businesses, and SaaS companies should generally allow AI access. AI recommendations can drive discovery\n- Creative professionals and artists should block training crawlers but allow AI search agents to recommend their services\n- News sites benefit from selective blocking: let AI access headlines and summaries but protect full articles\n- Traditional analytics tools miss AI traffic entirely because they rely on JavaScript that AI crawlers don't execute\n- Use robots.txt for blocking - major AI companies actually respect it, unlike experimental standards like llms.txt\n- Think of AI as a new discovery channel: measure and optimize for AI-driven traffic while protecting what makes you unique\n\nThe same technology that could steal your content might also become your best salesperson.\n\nThe AI systems that threaten to reproduce your creative work could also introduce your business to customers you'd never reach otherwise. \n\nThis is the challenge facing every website owner in 2025: AI systems are both the biggest threat and the biggest opportunity for online content, and the window for making the right choice is closing fast.\n\nBeyond human visitors and traditional search engine crawlers, a new category of digital visitors is accessing your website: AI model trainers. These systems are collecting your content to train language models, answer user queries, and generate new content. This shift raises a question that didn't exist two years ago but can't be delayed much longer: **should you block AI from using your website's data?**\n\nThe answer isn't straightforward and depends on whether your focus is protecting intellectual property or growing your business.\n\n## How AI Models Use Your Website\n\nAI systems like ChatGPT and Claude learn by reading millions of websites. They study your content to understand language patterns and facts. Your website might become part of their training data. This affects how these AI systems talk about your industry.\n\nBut AI also visits websites in real-time. When someone asks an AI assistant a question, it might search the web for fresh information. This means your content could show up in AI responses to user questions.\n\n\u003e **AI Models vs. AI Search Engines: Why SEO Still Matters**\n\u003e \n\u003e AI assistants work in two ways. First, they use knowledge from their training. Second, they search the web for new information. Companies like OpenAI and Google built search engines for their AI tools. When an AI needs current info about your industry, you want your content to rank well. Your SEO work still matters for these AI-powered searches.\n\nThere are two main types of AI visitors. Training crawlers collect data to make AI models smarter. Search agents look for current information to answer specific questions. Each type creates different chances and risks for your website.\n\n## Key Things to Think About Before Blocking AI\n\nBefore you decide to block AI, ask yourself these questions about your business:\n\n**What Kind of Content Do You Make?** Do you create original art, writing, or other creative work? Original content might need protection from training crawlers. If you make how-to guides or tutorials that take lots of work, AI might copy your ideas.\n\n**How Do You Make Money?** Do you sell subscriptions or courses? If people pay for your content, AI systems that give away your information for free could hurt your income. But if you sell products or services, AI recommendations might bring you new customers.\n\n**How Do People Find You?** Do customers discover you through search and recommendations? If yes, having AI systems know about your business could help you reach more people. This is especially true for local businesses and online stores.\
2n\n**What Makes You Special?** What sets your business apart? If your edge comes from private information or creative work, you might want stronger protection. If your advantage is great service or unique products, AI awareness might help you.\n\n## Should I Block AI From Using My E-commerce Website's Data?\n\n**For most online stores, the answer is no. Blocking AI usually hurts more than it helps.** AI assistants work like free salespeople when customers ask questions like \"What's the best wireless headphones under $200?\" or \"Where can I buy eco-friendly cleaning supplies?\" You want your products in these AI answers. This helps you reach customers who might never find your website on their own.\n\nWhen AI systems can read your product descriptions and reviews, they can recommend your products to users. This is especially helpful for small stores competing with big marketplaces. It's also great for specialty products that people might not know to search for.\n\nYou might want to block training crawlers if you spent a lot on original product photos or detailed guides. Competitors could benefit if AI systems copy your hard work. But for most stores, the benefits of AI recommendations outweigh the risks.\n\n## Should I Block AI From Using My Blog's Data?\n\n**It depends on how you make money from your blog.** If your blog helps you get business leads and shows your expertise, let AI systems access it. When AI tools mention your insights in their answers, more people learn about you. This can bring visitors to your site.\n\nBut be careful if you sell subscriptions or courses. If AI systems can give away your detailed tutorials and research for free, people might not buy from you. This is especially true for educational content that people normally pay to access.\n\nA good middle approach works well for many bloggers. Let AI access your general content but protect your premium stuff. Use technical barriers or robots.txt files to block AI from your paid content areas.\n\n## Should I Block AI From Using My Local Business Website?\n\n**Local businesses should welcome AI crawlers.** When people ask AI assistants questions like \"best pizza delivery near me\" or \"reliable plumbers in downtown,\" you want your business in those answers. This helps potential customers find you even when they're not searching for your business name. It's especially helpful for service businesses where trust matters most.\n\nWhen AI systems can read your business info, services, and customer reviews, they can recommend you to people looking for help. This works even when customers don't know your business exists yet.\n\nMake sure your website clearly shows your location, services, contact info, and customer reviews. Format this information so AI systems can easily read and understand it.\n\n## Should I Block AI From Using My Creative Portfolio Website?\n\n**Artists and creative professionals have the toughest choice. Generally, yes—block training crawlers but allow search agents and AI assistants.** Your original creative work is valuable property. Using it in AI training without permission has become a big issue in the creative world. Blocking training crawlers stops your work from being used to train competing AI art tools. But you still want AI systems to mention and recommend your services to potential clients.\n\nIf you make money from being original and unique, protect your work from training crawlers. But still let AI systems access your site when they search for current information. This protects your art while letting AI recommend your services.\n\nAdd clear copyright notices to your website. Think about using invisible watermarks on images to track if someone uses them without permission.\n\n## Should I Block AI From Using My SaaS Website?\n\n**Software companies should generally allow AI models to train on their product info and public documentation.** Just like any other product, your prospects are going to use AI to research providers, and you want your product included in their options. Having your documentation and tutorials inclued in AI models can help users troubleshoot issues and reduce support tickets. \n\nMany users now ask AI assistants for software implementation help, so having your documentation available improves user experience and can reduce churn, because the answers they seek are already in the tool they use.\n\n## Should I Block AI From Using My News Website?\n\n**News organizations should use selective blocking. Let AI access headlines and summaries but protect full articles.** This keeps you visible in AI-generated news summaries and builds your authority. But it also gives people a reason to visit your site for the complete story. However, there are real concerns about AI systems copying news content without giving proper credit or payment.\n\nLet AI systems access your headlines and brief summaries while protecting your full articles. This keeps you visible in AI news summaries while making sure people still have reasons to visit your site for complete coverage.\n\nMake sure your content shows clear author names and publication info. This helps AI systems g
2ive you credit when they mention your reporting.\n\n## How to Set Up and Monitor Your AI Policy\n\nNo matter what you decide, you need both technical tools and ongoing monitoring. Traditional [robots.txt](https://www.cloudflare.com/learning/bots/what-is-robots-txt/) files can block known AI crawlers, and it's important to mention that AI model trainers from Open AI, Anthropic, Perplexity, and other major players, all respect robots.txt. \n\nBut many AI systems don't clearly identify themselves. And many website platforms don't make it easy to update this file, even if you knew the special syntax needed to blick just AI model trainers. Tools that outright block these trainers can give you an easy-ti-understand interface to block the traffic you don't eant and allow what you do.\n\n\n### AI Analytics Platforms: Control and Visibility\nTraditional analytics tools like Google Analytics, PostHog, Mixpanel, and others don't even report AI traffic, because they rely on a technology called JavaScript. Regular web browsers almost always have this turned on, but AI visitors, like most bots, don't. \n\nAI analytics platforms are purpose-built tp identify AI visitors and forward them to your primary analytics tools, because even though an AI browsed your site it was at the request of a human. This helps you make smart decisions about which AI systems access your content and how they use it.\n\n## Navigating the AI Paradox for Long-Term Success\n\nHere's what we've learned: most businesses should welcome AI, but creative professionals need to be more careful. Online stores, local businesses, and service companies benefit when AI systems can recommend them to customers. Bloggers and news sites can use selective blocking to stay visible while protecting their best content. Artists and creative professionals should block training crawlers but allow AI to recommend their services.\n\nOnce you've decided to allow AI traffic, the real opportunity is in understanding how it your business metrics. When AI systems recommend your products or services, do those visitors convert differently than regular web traffic? Are you seeing new customer discovery patterns? These insights can help you optimize for a world where AI assistants influence more buying decisions.\n\nRight now, most website analytics can't tell you which visitors came through AI recommendations or searches. AI analytics tools support your primary analytics platform by making AI traffic visible along with the rest of your traffic. This data helps you see if AI is actually bringing you valuable customers or just extra traffic.\n\nThink of AI as a new discovery channel, like social media was ten years ago. The businesses that succeed will be the ones that learn how to measure and optimize for AI-driven traffic while protecting what makes them unique.\n\nThe question isn't whether AI will change how customers find you. It's whether you'll track and optimize for that change or miss the opportunity entirely."])</script>
2<script>self.__next_f.push([1,"c2:T3b40,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var d=Object.create;var r=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var w=(o,e)=\u003e()=\u003e(e||o((e={exports:{}}).exports,e),e.exports),f=(o,e)=\u003e{for(var t in e)r(o,t,{get:e[t],enumerable:!0})},a=(o,e,t,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let n of m(e))!g.call(o,n)\u0026\u0026n!==t\u0026\u0026r(o,n,{get:()=\u003ee[n],enumerable:!(i=y(e,n))||i.enumerable});return o};var b=(o,e,t)=\u003e(t=o!=null?d(p(o)):{},a(e||!o||!o.__esModule?r(t,\"default\",{value:o,enumerable:!0}):t,o)),I=o=\u003ea(r({},\"__esModule\",{value:!0}),o);var c=w((v,l)=\u003e{l.exports=_jsx_runtime});var A={};f(A,{default:()=\u003eu});var s=b(c());function h(o){let e={a:\"a\",blockquote:\"blockquote\",h2:\"h2\",h3:\"h3\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...o.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,s.jsxs)(e.ul,{children:[`\n`,(0,s.jsx)(e.li,{children:\"E-commerce, local businesses, and SaaS companies should generally allow AI access. AI recommendations can drive discovery\"}),`\n`,(0,s.jsx)(e.li,{children:\"Creative professionals and artists should block training crawlers but allow AI search agents to recommend their services\"}),`\n`,(0,s.jsx)(e.li,{children:\"News sites benefit from selective blocking: let AI access headlines and summaries but protect full articles\"}),`\n`,(0,s.jsx)(e.li,{children:\"Traditional analytics tools miss AI traffic entirely because they rely on JavaScript that AI crawlers don't execute\"}),`\n`,(0,s.jsx)(e.li,{children:\"Use robots.txt for blocking - major AI companies actually respect it, unlike experimental standards like llms.txt\"}),`\n`,(0,s.jsx)(e.li,{children:\"Think of AI as a new discovery channel: measure and optimize for AI-driven traffic while protecting what makes you unique\"}),`\n`]}),`\n`,(0,s.jsx)(e.p,{children:\"The same technology that could steal your content might also become your best salesperson.\"}),`\n`,(0,s.jsx)(e.p,{children:\"The AI systems that threaten to reproduce your creative work could also introduce your business to customers you'd never reach otherwise.\"}),`\n`,(0,s.jsx)(e.p,{children:\"This is the challenge facing every website owner in 2025: AI systems are both the biggest threat and the biggest opportunity for online content, and the window for making the right choice is closing fast.\"}),`\n`,(0,s.jsxs)(e.p,{children:[\"Beyond human visitors and traditional search engine crawlers, a new category of digital visitors is accessing your website: AI model trainers. These systems are collecting your content to train language models, answer user queries, and generate new content. This shift raises a question that didn't exist two years ago but can't be delayed much longer: \",(0,s.jsx)(e.strong,{children:\"should you block AI from using your website's data?\"})]}),`\n`,(0,s.jsx)(e.p,{children:\"The answer isn't straightforward and depends on whether your focus is protecting intellectual property or growing your business.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"How AI Models Use Your Website\"}),`\n`,(0,s.jsx)(e.p,{children:\"AI systems like ChatGPT and Claude learn by reading millions of websites. They study your content to understand language patterns and facts. Your website might become part of their training data. This affects how these AI systems talk about your industry.\"}),`\n`,(0,s.jsx)(e.p,{children:\"But AI also visits websites in real-time. When someone asks an AI assistant a question, it might search the web for fresh information. This means your content could show up in AI responses to user questions.\"}),`\n`,(0,s.jsxs)(e.blockquote,{children:[`\n`,(0,s.jsx)(e.p,{children:(0,s.jsx)(e.strong,{children:\"AI Models vs. AI Search Engines: Why SEO Still Matters\"})}),`\n`,(0,s.jsx)(e.p,{children:\"AI assistants work in two ways. First, they use knowledge from their training. Second, they search the web for new information. Companies like OpenAI and Google built search engines for their AI tools. When an AI needs current info about your industry, you want your content to rank well. Your SEO work still matters for these AI-powered searches.\"}),`\n`]}),`\n`,(0,s.jsx)(e.p,{children:\"There are two main types of AI visitors. Training crawlers collect data to make AI models smarter. Search agents look for current information to answer specific questions. Each type creates different chances and risks for your website.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Key Things to Think About Before Blocking AI\"}),`\n`,(0,s.jsx)(e.p,{children:\"Before you decide to block AI, ask yourself these questions about your business:\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"What Kind of Content Do You Make?\"}),\" Do you create original art, writing, or other creative work? Original content might need protection from training crawlers. If you make how-to guides or tutorials that take lots of work, AI might copy your ideas.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"How Do You Make Money?\"}),\" Do you sell subscriptions or courses? If people pay for your content, AI systems that give away your information for free could hurt your income. But if you sell products or services, AI recommendations might bring you new customers.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"How Do People Find You?\"}),\" Do customers discover you through search and recommendations? If yes, having AI systems know about your business could help you reach more people. This is especially true for local businesses and online stores.\"]}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"What Makes You Special?\"}),\" What sets your business apart? If your edge comes from private information or creative work, you might want stronger protection. If your advantage is great service or unique products, AI awareness might help you.\"]}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Block AI From Using My E-commerce Website's Data?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"For most online stores, the answer is no. Blocking AI usually hurts more than it helps.\"}),` AI assistants work like free salespeople when customers ask questions like \"What's the best wireless headphones under $200?\" or \"Where can I buy eco-friendly cleaning supplies?\" You want your products in these AI answers. This helps you reach customers who might never find your website on their own.`]}),`\n`,(0,s.jsx)(e.p,{children:\"When AI systems can read your product descriptions and reviews, they can recommend your products to users. This is especially helpful for small stores competing with big marketplaces. It's also great for specialty products that people might not know to search for.\"}),`\n`,(0,s.jsx)(e.p,{children:\"You might want to block training crawlers if you spent a lot on original product photos or detailed guides. Competitors could benefit if AI systems copy your hard work. But for most stores, the benefits of AI recommendations out
2weigh the risks.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Block AI From Using My Blog's Data?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"It depends on how you make money from your blog.\"}),\" If your blog helps you get business leads and shows your expertise, let AI systems access it. When AI tools mention your insights in their answers, more people learn about you. This can bring visitors to your site.\"]}),`\n`,(0,s.jsx)(e.p,{children:\"But be careful if you sell subscriptions or courses. If AI systems can give away your detailed tutorials and research for free, people might not buy from you. This is especially true for educational content that people normally pay to access.\"}),`\n`,(0,s.jsx)(e.p,{children:\"A good middle approach works well for many bloggers. Let AI access your general content but protect your premium stuff. Use technical barriers or robots.txt files to block AI from your paid content areas.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Block AI From Using My Local Business Website?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Local businesses should welcome AI crawlers.\"}),` When people ask AI assistants questions like \"best pizza delivery near me\" or \"reliable plumbers in downtown,\" you want your business in those answers. This helps potential customers find you even when they're not searching for your business name. It's especially helpful for service businesses where trust matters most.`]}),`\n`,(0,s.jsx)(e.p,{children:\"When AI systems can read your business info, services, and customer reviews, they can recommend you to people looking for help. This works even when customers don't know your business exists yet.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Make sure your website clearly shows your location, services, contact info, and customer reviews. Format this information so AI systems can easily read and understand it.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Block AI From Using My Creative Portfolio Website?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Artists and creative professionals have the toughest choice. Generally, yes\\u2014block training crawlers but allow search agents and AI assistants.\"}),\" Your original creative work is valuable property. Using it in AI training without permission has become a big issue in the creative world. Blocking training crawlers stops your work from being used to train competing AI art tools. But you still want AI systems to mention and recommend your services to potential clients.\"]}),`\n`,(0,s.jsx)(e.p,{children:\"If you make money from being original and unique, protect your work from training crawlers. But still let AI systems access your site when they search for current information. This protects your art while letting AI recommend your services.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Add clear copyright notices to your website. Think about using invisible watermarks on images to track if someone uses them without permission.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Block AI From Using My SaaS Website?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"Software companies should generally allow AI models to train on their product info and public documentation.\"}),\" Just like any other product, your prospects are going to use AI to research providers, and you want your product included in their options. Having your documentation and tutorials inclued in AI models can help users troubleshoot issues and reduce support tickets.\"]}),`\n`,(0,s.jsx)(e.p,{children:\"Many users now ask AI assistants for software implementation help, so having your documentation available improves user experience and can reduce churn, because the answers they seek are already in the tool they use.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Should I Block AI From Using My News Website?\"}),`\n`,(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:\"News organizations should use selective blocking. Let AI access headlines and summaries but protect full articles.\"}),\" This keeps you visible in AI-generated news summaries and builds your authority. But it also gives people a reason to visit your site for the complete story. However, there are real concerns about AI systems copying news content without giving proper credit or payment.\"]}),`\n`,(0,s.jsx)(e.p,{children:\"Let AI systems access your headlines and brief summaries while protecting your full articles. This keeps you visible in AI news summaries while making sure people still have reasons to visit your site for complete coverage.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Make sure your content shows clear author names and publication info. This helps AI systems g
2ive you credit when they mention your reporting.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"How to Set Up and Monitor Your AI Policy\"}),`\n`,(0,s.jsxs)(e.p,{children:[\"No matter what you decide, you need both technical tools and ongoing monitoring. Traditional \",(0,s.jsx)(e.a,{href:\"https://www.cloudflare.com/learning/bots/what-is-robots-txt/\",children:\"robots.txt\"}),\" files can block known AI crawlers, and it's important to mention that AI model trainers from Open AI, Anthropic, Perplexity, and other major players, all respect robots.txt.\"]}),`\n`,(0,s.jsx)(e.p,{children:\"But many AI systems don't clearly identify themselves. And many website platforms don't make it easy to update this file, even if you knew the special syntax needed to blick just AI model trainers. Tools that outright block these trainers can give you an easy-ti-understand interface to block the traffic you don't eant and allow what you do.\"}),`\n`,(0,s.jsx)(e.h3,{children:\"AI Analytics Platforms: Control and Visibility\"}),`\n`,(0,s.jsx)(e.p,{children:\"Traditional analytics tools like Google Analytics, PostHog, Mixpanel, and others don't even report AI traffic, because they rely on a technology called JavaScript. Regular web browsers almost always have this turned on, but AI visitors, like most bots, don't.\"}),`\n`,(0,s.jsx)(e.p,{children:\"AI analytics platforms are purpose-built tp identify AI visitors and forward them to your primary analytics tools, because even though an AI browsed your site it was at the request of a human. This helps you make smart decisions about which AI systems access your content and how they use it.\"}),`\n`,(0,s.jsx)(e.h2,{children:\"Navigating the AI Paradox for Long-Term Success\"}),`\n`,(0,s.jsx)(e.p,{children:\"Here's what we've learned: most businesses should welcome AI, but creative professionals need to be more careful. Online stores, local businesses, and service companies benefit when AI systems can recommend them to customers. Bloggers and news sites can use selective blocking to stay visible while protecting their best content. Artists and creative professionals should block training crawlers but allow AI to recommend their services.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Once you've decided to allow AI traffic, the real opportunity is in understanding how it your business metrics. When AI systems recommend your products or services, do those visitors convert differently than regular web traffic? Are you seeing new customer discovery patterns? These insights can help you optimize for a world where AI assistants influence more buying decisions.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Right now, most website analytics can't tell you which visitors came through AI recommendations or searches. AI analytics tools support your primary analytics platform by making AI traffic visible along with the rest of your traffic. This data helps you see if AI is actually bringing you valuable customers or just extra traffic.\"}),`\n`,(0,s.jsx)(e.p,{children:\"Think of AI as a new discovery channel, like social media was ten years ago. The businesses that succeed will be the ones that learn how to measure and optimize for AI-driven traffic while protecting what makes them unique.\"}),`\n`,(0,s.jsx)(e.p,{children:\"The question isn't whether AI will change how customers find you. It's whether you'll track and optimize for that change or miss the opportunity entirely.\"})]})}function u(o={}){let{wrapper:e}=o.components||{};return e?(0,s.jsx)(e,{...o,children:(0,s.jsx)(h,{...o})}):h(o)}return I(A);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"49:[\"$\",\"$L10\",\"should-you-block-ai-from-accessing-your-websites-data\",{\"delay\":120,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$c1\",\"title\":\"Should You Block AI From Using Your Website's Data?\",\"date\":\"2026-01-06\",\"image\":\"/images/blog/ai-data-blocking-cover.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"With AI models increasingly crawling the web for training data, website owners face a critical decision. Learn when to block AI crawlers and when to welcome them.\",\"tags\":[\"AI\",\"web crawling\",\"data protection\",\"SEO\",\"content strategy\"],\"published\":true,\"_meta\":{\"filePath\":\"should-you-block-ai-from-accessing-your-websites-data.mdx\",\"fileName\":\"should-you-block-ai-from-accessing-your-websites-data.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"should-you-block-ai-from-accessing-your-websites-data\"},\"body\":\"$c2\",\"locale\":\"en\",\"path\":\"should-you-block-ai-from-accessing-your-websites-data\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"c3:T2922,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- Major AI companies (OpenAI, Google, Anthropic) don't actually check or use llms.txt files\n- AI companies already respect robots.txt and use sitemap.xml. These established standards work better\n- Training crawlers operate at massive scale and don't check individual website policies before accessing content\n- Most businesses benefit more from AI recommendations than from blocking AI access\n- If you want to actually block AI, use robots.txt, server-side controls, or technical solutions that enforce restrictions\n- llms.txt may have value for documenting your position on AI ethics, but it lacks enforcement mechanisms\n\nThe robots.txt file revolutionized how websites control search engine crawlers. Now, a proposed standard called LLMs.txt promises to do the same for AI systems. But after implementing LLMs.txt files on dozens of websites and monitoring AI traffic for months, we can confidently report that major AI companies aren't using it.\n\nThrough our work with Spyglasses, we've tracked AI system behavior across hundreds of websites. Not once have we seen OpenAI, Google, Anthropic, or other major AI companies request or access LLMs.txt files. Not for model training, not for building AI search engines, and not as part of AI chat research sources. The gap between the proposed standard and actual AI behavior is bigger than anyone expected.\n\nThis doesn't mean LLMs.txt is useless—but it does mean you need to understand what it actually does versus what it promises to do before deciding whether to implement it.\n\n## What Is LLMs.txt and How Is It Supposed to Work?\n\nLLMs.txt is a proposed standard that lets website owners specify how AI systems should interact with their content. Similar to robots.txt for search engines, it's a plain text file placed in your website's root directory that contains instructions for AI crawlers and systems.\n\nThe proposal suggests that AI systems should check for LLMs.txt files before accessing website content and follow the specified rules. These rules might include:\n\n- Which AI systems are allowed to access your content\n- What parts of your site AI can or cannot crawl\n- How AI systems should attribute your content\n- Specific licensing terms for AI usage\n- Contact information for AI-related inquiries\n\nThe idea is compelling: a simple, standardized way to control AI access to your website. But the reality is more complex than the proposal suggests.\n\n## Why Major AI Companies Aren't Using LLMs.txt\n\nOur analysis of real AI traffic reveals that major AI companies operate very differently from how the LLMs.txt standard proposes that they should work. Here's what we've observed:\n\n**They Already Use Existing Standards**: Major AI companies like OpenAI, Google, and Anthropic already respect robots.txt files. When they need to understand what content is available on a website, they use established standards like sitemap.xml to discover crawlable content. These companies have built their infrastructure around existing web standards, not new experimental ones. \n\nThere are definitely some AI trainers that don't (check our [list of bots](/bots) to see which ones don't), but for the most part using these existing protocols will meet your needs.\n\n**Training vs. Inference**: Most AI companies separate training data collection from real-time inference. Training crawlers that build AI models operate on massive scales and don't check individual website policies before accessing content. Real-time AI systems that answer user questions often rely on existing search APIs rather than directly crawling websites.\n\n**Scale Challenges**: AI systems that serve millions of users need consistent, reliable access to information. Checking individual website policies for every request would create massive performance and reliability issues.\n\n**No Legal Framework Checking**: Unlike what some assume, AI model trainers don't check legal documentation, terms of service, or licensing agreements before accessing sites. While large publishers may have the leverage to negotiate licensing deals, most businesses don't have this option and shouldn't count on legal protections alone.\n\n## What Actually Works If You Want to Control AI Access\n\nSince LLMs.txt doesn't actually prevent AI systems from accessing your content, here are two scenarios to consider:\n\n**Scenario 1: You Probably Don't Want to Block AI Systems**\n\nIf your website falls into the categories we discussed above—e-commerce, local business, SaaS documentation, or content sites that benef
2it from AI recommendations—blocking AI systems will likely hurt more than help. These AI systems can drive discovery and recommendations that bring you new customers.\n\nInstead of blocking AI access, focus on optimizing your content so AI systems can understand and recommend your business accurately. This means clear product descriptions, structured data, and comprehensive information that helps AI systems represent your offerings correctly.\n\n**Scenario 2: You Want to Actually Block AI Systems**\n\nIf you're concerned about AI companies using your content and want to take action that actually works, use technologies that AI companies acknowledge and respect:\n\n**robots.txt**: All major AI companies already respect robots.txt files. If you want to block AI crawlers, add their user agents to your robots.txt file. This is a proven method that actually prevents access.\n\n**Technical Solutions**: Tools like Spyglasses can detect AI traffic and give you granular control over which AI systems access your content. You can block specific AI crawlers, redirect them to specialized content, or track their behavior to make informed decisions.\n\n**Server-Side Controls**: Use server-side user-agent blocking, IP blocking, or authentication requirements for sensitive content. These methods actively prevent access rather than relying on AI systems to voluntarily check and follow policies.\n\nThe key insight is that effective AI access control requires enforcement mechanisms that AI companies actually use. LLMs.txt lacks this enforcement, while robots.txt and technical solutions provide it.\n\n## Where AI Search Is Heading\n\nThe LLMs.txt proposal represents an important conversation about AI ethics and website owner rights. Even if major AI companies aren't currently adopting it, the discussion highlights the need for clearer standards around AI content usage.\n\nFuture AI systems might adopt LLMs.txt or similar standards, especially as legal and regulatory pressure increases. Smaller AI companies or research organizations might be more likely to respect these standards than major commercial platforms.\n\nEffective AI governance requires both technical standards and enforcement mechanisms. LLMs.txt provides the standard but lacks the (admittedly voluntary) enforcement that makes robots.txt effective for search engines.\n\n## Should You Implement LLMs.txt?\n\nThe answer depends on your goals and expectations. If you want to:\n\n- **Make a statement about AI ethics**: LLMs.txt can document your position on AI usage\n- **Prepare for future adoption**: Early implementation might benefit you if standards evolve\n- **Show due diligence**: Demonstrating proactive AI governance might have legal or business value\n\nBut if you want to:\n\n- **Actually control AI access**: Technical solutions are more effective than LLMs.txt\n- **Improve AI visibility**: Focus on content optimization rather than access restrictions\n- **Reduce implementation effort**: Your time might be better spent on other AI strategies\n\nThe reality is that most businesses will get better results from understanding and optimizing for AI systems than from trying to block them. The AI systems that can help your business grow are the same ones that LLMs.txt might try to restrict.\n\nRather than betting on a standard that major AI companies aren't currently using, focus on strategies that work with the AI ecosystem as it exists today. Monitor how AI systems actually interact with your content, optimize for the interactions that benefit your business, and use technical controls for the access you want to restrict.\n\nThe conversation about AI website standards is important, but don't let it distract you from the practical work of succeeding in an AI-influenced world.\n\n## The Future of AI Website Standards\n\nThe LLMs.txt proposal represents an important conversation about AI ethics and website owner rights. Even if major AI companies aren't currently adopting it, the discussion highlights the need for clearer standards around AI content usage.\n\nFuture AI systems might adopt LLMs.txt or similar standards, especially as legal and regulatory pressure increases. Smaller AI companies or research organizations might be more likely to respect these standards than major commercial platforms.\n\nThe key insight is that effective AI governance requires both technical standards and enforcement mechanisms. LLMs.txt provides the standard but lacks the enforcement that makes robots.txt effective for search engines.\n\n## The Reality About AI Website Standards\n\nThe LLMs.txt proposal represents an important conversation about AI ethics and website owner rights. Even if major AI companies aren't currently adopting it, the discussion highlights the need for clearer standards around AI content usage.\n\nFuture AI systems might adopt LLMs.txt or similar standards, especially as legal and regulatory pressure increases. Smaller AI companies or research organizations might be more likely to respect these standards than major commercial platforms.\n\nBut the current reality is that major AI companies already have established patterns for respecting website policies through robots.txt and sitemap.xml. They've built the
2ir infrastructure around these existing standards, and there's little evidence they plan to adopt new ones like LLMs.txt.\n\nThe most effective approach is to work with the standards that AI companies actually use today, rather than hoping they'll adopt new experimental standards without enforcement mechanisms.\n\nRather than betting on a standard that major AI companies aren't currently using, focus on strategies that work with the AI ecosystem as it exists today. Monitor how AI systems actually interact with your content, optimize for the interactions that benefit your business, and use proven technical controls for the access you want to restrict.\n\nThe conversation about AI website standards is important, but don't let it distract you from the practical work of succeeding in a zero-click AI-centric world."])</script>
2<script>self.__next_f.push([1,"c4:T375d,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var u=Object.create;var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var y=(n,e)=\u003e()=\u003e(e||n((e={exports:{}}).exports,e),e.exports),b=(n,e)=\u003e{for(var s in e)o(n,s,{get:e[s],enumerable:!0})},a=(n,e,s,i)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of p(e))!f.call(n,r)\u0026\u0026r!==s\u0026\u0026o(n,r,{get:()=\u003ee[r],enumerable:!(i=m(e,r))||i.enumerable});return n};var I=(n,e,s)=\u003e(s=n!=null?u(g(n)):{},a(e||!n||!n.__esModule?o(s,\"default\",{value:n,enumerable:!0}):s,n)),A=n=\u003ea(o({},\"__esModule\",{value:!0}),n);var l=y((x,c)=\u003e{c.exports=_jsx_runtime});var w={};b(w,{default:()=\u003ed});var t=I(l());function h(n){let e={a:\"a\",h2:\"h2\",li:\"li\",p:\"p\",strong:\"strong\",ul:\"ul\",...n.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Major AI companies (OpenAI, Google, Anthropic) don't actually check or use llms.txt files\"}),`\n`,(0,t.jsx)(e.li,{children:\"AI companies already respect robots.txt and use sitemap.xml. These established standards work better\"}),`\n`,(0,t.jsx)(e.li,{children:\"Training crawlers operate at massive scale and don't check individual website policies before accessing content\"}),`\n`,(0,t.jsx)(e.li,{children:\"Most businesses benefit more from AI recommendations than from blocking AI access\"}),`\n`,(0,t.jsx)(e.li,{children:\"If you want to actually block AI, use robots.txt, server-side controls, or technical solutions that enforce restrictions\"}),`\n`,(0,t.jsx)(e.li,{children:\"llms.txt may have value for documenting your position on AI ethics, but it lacks enforcement mechanisms\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The robots.txt file revolutionized how websites control search engine crawlers. Now, a proposed standard called LLMs.txt promises to do the same for AI systems. But after implementing LLMs.txt files on dozens of websites and monitoring AI traffic for months, we can confidently report that major AI companies aren't using it.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Through our work with Spyglasses, we've tracked AI system behavior across hundreds of websites. Not once have we seen OpenAI, Google, Anthropic, or other major AI companies request or access LLMs.txt files. Not for model training, not for building AI search engines, and not as part of AI chat research sources. The gap between the proposed standard and actual AI behavior is bigger than anyone expected.\"}),`\n`,(0,t.jsx)(e.p,{children:\"This doesn't mean LLMs.txt is useless\\u2014but it does mean you need to understand what it actually does versus what it promises to do before deciding whether to implement it.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"What Is LLMs.txt and How Is It Supposed to Work?\"}),`\n`,(0,t.jsx)(e.p,{children:\"LLMs.txt is a proposed standard that lets website owners specify how AI systems should interact with their content. Similar to robots.txt for search engines, it's a plain text file placed in your website's root directory that contains instructions for AI crawlers and systems.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The proposal suggests that AI systems should check for LLMs.txt files before accessing website content and follow the specified rules. These rules might include:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsx)(e.li,{children:\"Which AI systems are allowed to access your content\"}),`\n`,(0,t.jsx)(e.li,{children:\"What parts of your site AI can or cannot crawl\"}),`\n`,(0,t.jsx)(e.li,{children:\"How AI systems should attribute your content\"}),`\n`,(0,t.jsx)(e.li,{children:\"Specific licensing terms for AI usage\"}),`\n`,(0,t.jsx)(e.li,{children:\"Contact information for AI-related inquiries\"}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The idea is compelling: a simple, standardized way to control AI access to your website. But the reality is more complex than the proposal suggests.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Why Major AI Companies Aren't Using LLMs.txt\"}),`\n`,(0,t.jsx)(e.p,{children:\"Our analysis of real AI traffic reveals that major AI companies operate very differently from how the LLMs.txt standard proposes that they should work. Here's what we've observed:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"They Already Use Existing Standards\"}),\": Major AI companies like OpenAI, Google, and Anthropic already respect robots.txt files. When they need to understand what content is available on a website, they use established standards like sitemap.xml to discover crawlable content. These 
2companies have built their infrastructure around existing web standards, not new experimental ones.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[\"There are definitely some AI trainers that don't (check our \",(0,t.jsx)(e.a,{href:\"/bots\",children:\"list of bots\"}),\" to see which ones don't), but for the most part using these existing protocols will meet your needs.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Training vs. Inference\"}),\": Most AI companies separate training data collection from real-time inference. Training crawlers that build AI models operate on massive scales and don't check individual website policies before accessing content. Real-time AI systems that answer user questions often rely on existing search APIs rather than directly crawling websites.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Scale Challenges\"}),\": AI systems that serve millions of users need consistent, reliable access to information. Checking individual website policies for every request would create massive performance and reliability issues.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"No Legal Framework Checking\"}),\": Unlike what some assume, AI model trainers don't check legal documentation, terms of service, or licensing agreements before accessing sites. While large publishers may have the leverage to negotiate licensing deals, most businesses don't have this option and shouldn't count on legal protections alone.\"]}),`\n`,(0,t.jsx)(e.h2,{children:\"What Actually Works If You Want to Control AI Access\"}),`\n`,(0,t.jsx)(e.p,{children:\"Since LLMs.txt doesn't actually prevent AI systems from accessing your content, here are two scenarios to consider:\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Scenario 1: You Probably Don't Want to Block AI Systems\"})}),`\n`,(0,t.jsx)(e.p,{children:\"If your website falls into the categories we discussed above\\u2014e-commerce, local business, SaaS documentation, or content sites that benefit from AI recommendations\\u2014blocking AI systems will likely hurt more than help. These AI systems can drive discovery and recommendations that bring you new customers.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Instead of blocking AI access, focus on optimizing your content so AI systems can understand and recommend your business accurately. This means clear product descriptions, structured data, and comprehensive information that helps AI systems represent your offerings correctly.\"}),`\n`,(0,t.jsx)(e.p,{children:(0,t.jsx)(e.strong,{children:\"Scenario 2: You Want to Actually Block AI Systems\"})}),`\n`,(0,t.jsx)(e.p,{children:\"If you're concerned about AI companies using your content and want to take action that actually works, use technologies that AI companies acknowledge and respect:\"}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"robots.txt\"}),\": All major AI companies already respect robots.txt files. If you want to block AI crawlers, add their user agents to your robots.txt file. This is a proven method that actually prevents access.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Technical Solutions\"}),\": Tools like Spyglasses can detect AI traffic and give you granular control over which AI systems access your content. You can block specific AI crawlers, redirect them to specialized content, or track their behavior to make informed decisions.\"]}),`\n`,(0,t.jsxs)(e.p,{children:[(0,t.jsx)(e.strong,{children:\"Server-Side Controls\"}),\": Use server-side user-agent blocking, IP blocking, or authentication requirements for sensitive content. These methods actively prevent access rather than relying on AI systems to voluntarily check and follow policies.\"]}),`\n`,(0,t.jsx)(e.p,{children:\"The key insight is that effective AI access control requires enforcement mechanisms that AI companies actually use. LLMs.txt lacks this enforcement, while robots.txt and technical solutions provide it.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Where AI Search Is Heading\"}),`\n`,(0,t.jsx)(e.p,{children:\"The LLMs.txt proposal represents an important conversation about AI ethics and website owner rights. Even if major AI companies aren't currently adopting it, the discussion highlights the need for clearer standards around AI content usage.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Future AI systems might adopt LLMs.txt or similar standards, especially as legal and regulatory pressure increases. Smaller AI companies or research organizations might be more likely to respect these standards than major commercial platforms.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Effective AI governance requires both technical standards and enforcement mechanisms. LLMs.txt provides the standard but lacks the (admittedly voluntary) enforcement that makes robots.txt effective for search engines.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"Should You Implement LLMs.txt?\"}),`\n`,(0,t.jsx)(e.p,{children:\"The answer depends on your goals and expectations. If you want to:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Make a statement about AI ethics\"}),\": LLMs.txt can document your position on AI usage\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Prepare for future adoption\"}),\": Early implementation might benefit you if standards evolve\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Show due diligence\"}),\": Demonstrating proactive AI governance might have legal or business value\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"But if you want to:\"}),`\n`,(0,t.jsxs)(e.ul,{children:[`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Actually control AI access\"}),\": Technical solutions are more effective than LLMs.txt\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Improve AI visibility\"}),\": Focus on content optimization rather than access restrictions\"]}),`\n`,(0,t.jsxs)(e.li,{children:[(0,t.jsx)(e.strong,{children:\"Reduce implementation effort\"}),\": Your time might be better spent on other AI strategies\"]}),`\n`]}),`\n`,(0,t.jsx)(e.p,{children:\"The reality is that most businesses will get better results from understanding and optimizing for AI systems than from trying to block them. The AI systems that can help your business grow are the same ones that LLMs.txt might try to restrict.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Rather than betting on a standard that major AI companies aren't currently using, focus on strategies that work with the AI ecosystem as it exists today. Monitor how AI systems actually interact with your content, optimize for the interactions that benef
2it your business, and use technical controls for the access you want to restrict.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The conversation about AI website standards is important, but don't let it distract you from the practical work of succeeding in an AI-influenced world.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Future of AI Website Standards\"}),`\n`,(0,t.jsx)(e.p,{children:\"The LLMs.txt proposal represents an important conversation about AI ethics and website owner rights. Even if major AI companies aren't currently adopting it, the discussion highlights the need for clearer standards around AI content usage.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Future AI systems might adopt LLMs.txt or similar standards, especially as legal and regulatory pressure increases. Smaller AI companies or research organizations might be more likely to respect these standards than major commercial platforms.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The key insight is that effective AI governance requires both technical standards and enforcement mechanisms. LLMs.txt provides the standard but lacks the enforcement that makes robots.txt effective for search engines.\"}),`\n`,(0,t.jsx)(e.h2,{children:\"The Reality About AI Website Standards\"}),`\n`,(0,t.jsx)(e.p,{children:\"The LLMs.txt proposal represents an important conversation about AI ethics and website owner rights. Even if major AI companies aren't currently adopting it, the discussion highlights the need for clearer standards around AI content usage.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Future AI systems might adopt LLMs.txt or similar standards, especially as legal and regulatory pressure increases. Smaller AI companies or research organizations might be more likely to respect these standards than major commercial platforms.\"}),`\n`,(0,t.jsx)(e.p,{children:\"But the current reality is that major AI companies already have established patterns for respecting website policies through robots.txt and sitemap.xml. They've built their infrastructure around these existing standards, and there's little evidence they plan to adopt new ones like LLMs.txt.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The most effective approach is to work with the standards that AI companies actually use today, rather than hoping they'll adopt new experimental standards without enforcement mechanisms.\"}),`\n`,(0,t.jsx)(e.p,{children:\"Rather than betting on a standard that major AI companies aren't currently using, focus on strategies that work with the AI ecosystem as it exists today. Monitor how AI systems actually interact with your content, optimize for the interactions that benefit your business, and use proven technical controls for the access you want to restrict.\"}),`\n`,(0,t.jsx)(e.p,{children:\"The conversation about AI website standards is important, but don't let it distract you from the practical work of succeeding in a zero-click AI-centric world.\"})]})}function d(n={}){let{wrapper:e}=n.components||{};return e?(0,t.jsx)(e,{...n,children:(0,t.jsx)(h,{...n})}):h(n)}return A(w);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"4a:[\"$\",\"$L10\",\"do-i-need-an-llms-txt-for-my-website\",{\"delay\":180,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$c3\",\"title\":\"Do I Need an LLMs.txt for My Website?\",\"date\":\"2026-01-05\",\"image\":\"/images/blog/do-i-need-an-llms-txt-for-my-website.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"Does adding an LLMs.txt to your site actually do anything? See what our data shows.\",\"tags\":[\"LLMs.txt\",\"AI crawlers\",\"web standards\",\"data protection\",\"AI policy\"],\"published\":true,\"_meta\":{\"filePath\":\"do-i-need-an-llms-txt-for-my-website.mdx\",\"fileName\":\"do-i-need-an-llms-txt-for-my-website.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"do-i-need-an-llms-txt-for-my-website\"},\"body\":\"$c4\",\"locale\":\"en\",\"path\":\"do-i-need-an-llms-txt-for-my-website\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"c5:T1e0f,"])</script>
2<script>self.__next_f.push([1,"## Key Takeaways\n\n- Citation tracking measures frequency, context, competitive position, sentiment, and source attribution across AI platforms\n- Traditional analytics miss AI traffic because AI assistants don't use JavaScript - this invisible traffic can represent nearly 20% of total page views\n- Real-time monitoring, query diversity analysis, competitive benchmarking, and source page identification are the key features to look for\n- Track one prompt in each of five categories: Best in Category, Segment-Specific, Use Case Solution, Budget-Conscious, and Solution Comparison\n- Implementation takes 1-2 weeks: baseline assessment first, then tool setup and monitoring\n- Your competitive share of voice matters more than raw citation counts\n\nAI citation tracking tools monitor how often AI systems like ChatGPT, Claude, and Perplexity mention your brand. These platforms now generate over 3 billion monthly responses, but most brands can't see when or how they're referenced. That visibility gap costs you deals, competitive intelligence, and market positioning insights.\n\n## What AI Citation Tracking Actually Measures\n\nCitation tracking goes beyond simple brand mentions. It captures context, sentiment, and competitive positioning across AI platforms.\n\n**Core metrics tracked:**\n\n- **Citation frequency**: How often your brand appears in AI responses\n- **Citation context**: What questions trigger your brand mentions\n- **Competitive position**: Where you rank versus competitors in AI answers\n- **Sentiment analysis**: Whether mentions are positive, neutral, or negative\n- **Source attribution**: Which websites AI systems pull your information from\n\n| Metric Type | What It Tells You | Why It Matters |\n|-------------|-------------------|----------------|\n| Citation frequency | Volume of brand mentions | Measures overall AI visibility |\n| Context analysis | Query types that surface your brand | Reveals market positioning |\n| Competitive share | Your mentions vs competitor mentions | Shows relative market strength |\n| Sentiment score | How favorably AI describes you | Indicates brand perception |\n| Source tracking | Where AI finds your information | Identifies content gaps |\n\n## Why Traditional Analytics Miss AI Traffic\n\nGoogle Analytics and similar tools use javascript to track visits, but AI assistants don't use javascript when they cite your website. This content is essentially invisible.\n\n\u003e \"Spyglasses client data from 2025 shows AI traffic represents nearly 20% of total website page views.\"\n\n**What gets missed:**\n\n- Research that happens entirely within AI chats\n- Brand comparisons where you're mentioned but not clicked\n- Buying decisions influenced by AI recommendations\n- Competitive positioning in AI-generated market overviews\n\n## Key Features to Look For\n\nNot all citation trackers deliver equal value. Focus on capabilities that drive actual business decisions.\n\n**Real-time monitoring** catches citations as they happen. This matters for crisis management and competitive tracking. When AI systems start mentioning your brand differently, you need to know immediately.\n\n**Query diversity analysis** reveals the underlying search patterns that trigger your brand. Even though user prompts vary widely, AI systems often run the same grounding searches to fulfill those requests.\n\n**Competitive benchmarking** shows your share of voice versus rivals. If competitors dominate key buying questions, you're losing deals before prospects reach your website.\n\n**Source page identification** tells you which content AI systems cite. This guides content optimization and reveals authority gaps.\n\n## How Citation Tracking Drives Revenue\n\nAI citation data connects directly to pipeline and revenue when used correctly.\n\nMarketing agencies use citation tracking to demonstrate client ROI. When a campaign increases AI visibility by 40%, that translates to measurable brand impact.\n\nProduct companies track citations for competitive intelligence. Knowing which features AI highlights for competitors guides product roadmap decisions.\n\nLocal businesses monitor citation accuracy. AI systems pulling outdated hours or services cost real revenue from potential customers.\n\n## Choosing the Right Tool for Your Business\n\nYour ideal citation tracker depends on team size, budget, and use case.\n\n**For marketing agencies**: White-labeled reports and competitor tracking matter most. Clients need clear proof that AI visibility is improving. Spyglasses provides branded visibility reports that agencies can deliver directly to clients.\n\n**For enterprise brands**: Multi-platform coverage and integration with existing analytics stack are essential. You need citations tracked alongside traditional web analytics.\n\n**For SMBs**: Usage-based pricing and immediate insights deliver fastest ROI. Enterprise subscriptions ($4,000-$15,000/month) don't make sense for most small businesses.\n\n## Implementation Roadmap\n![An abstract photo of an AI visibility tracking implementation plan](/images/blog/ai-citation-tracking-tool-implementation-plan.webp)\n\nGetting citation tracking running takes 1-2 weeks for most organizations.\n\n**Week 1: Baseline assessment**\n- Identify one prompt in each of five key categories\n- Run initial citation audits across platforms\n- Document current visibility gaps\n- Map competitor mentions\n\nThe five prompt c
2ategories to cover:\n1. Best in Category\n2. Segment-Specific\n3. Use Case Solution\n4. Budget-Conscious\n5. Solution Comparison\n\n**Week 2: Tool setup and monitoring**\n- Configure tracking for your domains\n- Set up competitor monitoring\n- Establish reporting cadence\n- Create alert thresholds\n\nMost platforms provide onboarding support. Spyglasses includes setup guidance and query optimization recommendations.\n\n## Common Implementation Mistakes\n\nThree mistakes account for most citation tracking failures.\n\n**Tracking too many prompts** wastes budget without improving insights. The average search intent prompt contains 22 words, and you need 271 runs per prompt for 90% confidence your brand is cited. That gets expensive fast.\n\nMore importantly, different prompts often generate the same underlying grounding searches. 100 tracked prompts might all trigger the same 25-30 web searches. It's more efficient to track those core patterns.\n\nSpyglasses recommends tracking at least one prompt in each category:\n- Best in Category (e.g., \"best project management tools\")\n- Segment-Specific (e.g., \"best project management for remote teams\")\n- Use Case Solution (e.g., \"what tools help with sprint planning?\")\n- Budget-Conscious (e.g., \"affordable project management under $50/month\")\n- Solution Comparison (e.g., \"compare project management platforms\")\n\n**Ignoring competitor data** loses critical context. Your citations matter less than your competitive share of voice. If rivals own key buying questions, you're losing market position.\n\n**Not connecting to business outcomes** reduces buy-in. Citation tracking seems academic until you tie it to pipeline, deal velocity, or competitive wins.\n\n## The AI Visibility Gap\n\nMost brands are mentioned in AI responses 5-10x more often than they realize. But without tracking tools, that exposure is invisible.\n\nCitation tracking tools make AI visibility measurable. Spyglasses provides real-time monitoring across five major AI platforms, showing exactly when and how your brand appears in AI responses. The platform tracks citations, analyzes competitive positioning, and connects AI mentions to actual website traffic.\n\nStart by running a basic citation audit. Identify one prompt in each of the five core categories, measure your current visibility, and prioritize improvements based on competitive gaps."])</script>
2<script>self.__next_f.push([1,"c6:T35f5,"])</script>
2<script>self.__next_f.push([1,"var Component=(()=\u003e{var m=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var f=(i,e)=\u003e()=\u003e(e||i((e={exports:{}}).exports,e),e.exports),b=(i,e)=\u003e{for(var t in e)s(i,t,{get:e[t],enumerable:!0})},a=(i,e,t,o)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let r of u(e))!y.call(i,r)\u0026\u0026r!==t\u0026\u0026s(i,r,{get:()=\u003ee[r],enumerable:!(o=p(e,r))||o.enumerable});return i};var v=(i,e,t)=\u003e(t=i!=null?m(g(i)):{},a(e||!i||!i.__esModule?s(t,\"default\",{value:i,enumerable:!0}):t,i)),k=i=\u003ea(s({},\"__esModule\",{value:!0}),i);var l=f((A,c)=\u003e{c.exports=_jsx_runtime});var w={};b(w,{default:()=\u003eh});var n=v(l());function d(i){let e={annotation:\"annotation\",blockquote:\"blockquote\",h2:\"h2\",img:\"img\",li:\"li\",math:\"math\",mn:\"mn\",mo:\"mo\",mrow:\"mrow\",ol:\"ol\",p:\"p\",semantics:\"semantics\",span:\"span\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...i.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h2,{children:\"Key Takeaways\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Citation tracking measures frequency, context, competitive position, sentiment, and source attribution across AI platforms\"}),`\n`,(0,n.jsx)(e.li,{children:\"Traditional analytics miss AI traffic because AI assistants don't use JavaScript - this invisible traffic can represent nearly 20% of total page views\"}),`\n`,(0,n.jsx)(e.li,{children:\"Real-time monitoring, query diversity analysis, competitive benchmarking, and source page identification are the key features to look for\"}),`\n`,(0,n.jsx)(e.li,{children:\"Track one prompt in each of five categories: Best in Category, Segment-Specific, Use Case Solution, Budget-Conscious, and Solution Comparison\"}),`\n`,(0,n.jsx)(e.li,{children:\"Implementation takes 1-2 weeks: baseline assessment first, then tool setup and monitoring\"}),`\n`,(0,n.jsx)(e.li,{children:\"Your competitive share of voice matters more than raw citation counts\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"AI citation tracking tools monitor how often AI systems like ChatGPT, Claude, and Perplexity mention your brand. These platforms now generate over 3 billion monthly responses, but most brands can't see when or how they're referenced. That visibility gap costs you deals, competitive intelligence, and market positioning insights.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"What AI Citation Tracking Actually Measures\"}),`\n`,(0,n.jsx)(e.p,{children:\"Citation tracking goes beyond simple brand mentions. It captures context, sentiment, and competitive positioning across AI platforms.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Core metrics tracked:\"})}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Citation frequency\"}),\": How often your brand appears in AI responses\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Citation context\"}),\": What questions trigger your brand mentions\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Competitive position\"}),\": Where you rank versus competitors in AI answers\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Sentiment analysis\"}),\": Whether mentions are positive, neutral, or negative\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Source attribution\"}),\": Which websites AI systems pull your information from\"]}),`\n`]}),`\n`,(0,n.jsxs)(e.table,{children:[(0,n.jsx)(e.thead,{children:(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.th,{children:\"Metric Type\"}),(0,n.jsx)(e.th,{children:\"What It Tells You\"}),(0,n.jsx)(e.th,{children:\"Why It Matters\"})]})}),(0,n.jsxs)(e.tbody,{children:[(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"Citation frequency\"}),(0,n.jsx)(e.td,{children:\"Volume of brand mentions\"}),(0,n.jsx)(e.td,{children:\"Measures overall AI visibility\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"Context analysis\"}),(0,n.jsx)(e.td,{children:\"Query types that surface your brand\"}),(0,n.jsx)(e.td,{children:\"Reveals market positioning\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"Competitive share\"}),(0,n.jsx)(e.td,{children:\"Your mentions vs competitor mentions\"}),(0,n.jsx)(e.td,{children:\"Shows relative market strength\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"Sentiment score\"}),(0,n.jsx)(e.td,{children:\"How favorably AI describes you\"}),(0,n.jsx)(e.td,{children:\"Indicates brand perception\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"Source tracking\"}),(0,n.jsx)(e.td,{children:\"Where AI finds your information\"}),(0,n.jsx)(e.td,{children:\"Identifies content gaps\"})]})]})]}),`\n`,(0,n.jsx)(e.h2,{children:\"Why Traditional Analytics Miss AI Traffic\"}),`\n`,(0,n.jsx)(e.p,{children:\"Google Analytics and similar tools use javascript to track visits, but AI assistants don't use javascript when they cite your website. This content is essentially invisible.\"}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.jsx)(e.p,{children:'\"Spyglasses client data from 2025 shows AI traffic represents nearly 20% of total website page views.\"'}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"What gets missed:\"})}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Research that happens entirely within AI chats\"}),`\n`,(0,n.jsx)(e.li,{children:\"Brand comparisons where you're mentioned but not clicked\"}),`\n`,(0,n.jsx)(e.li,{children:\"Buying decisions influenced by AI recommendations\"}),`\n`,(0,n.jsx)(e.li,{children:\"Competitive positioning in AI-generated market overviews\"}),`\n`]}),`\n`,(0,n.jsx)(e.h2,{children:\"Key Features to Look For\"}),`\n`,(0,n.jsx)(e.p,{children:\"Not all citation trackers deliver equal value. Focus on capabilities that drive actual business decisions.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Real-time monitoring\"}),\" catches citations as they happen. This matters for crisis management and competitive tracking. When AI systems start mentioning your brand differently, you need to know immediately.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Query diversity analysis\"}),\" reveals the underlying search patterns that trigger your brand. Even though user prompts vary widely, AI systems often run the same grounding searches to fulfill those requests.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Competitive benchmarking\"}),\" shows your share of voice versus rivals. If competitors dominate key buying questions, you're losing deals before prospects reach your website.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Source page identification\"}),\" tells you which content AI systems cite. This guides content optimization and reveals authority gaps.\"]}),`\n`,(0,n.jsx)(e.h2,{children:\"How Citation Tracking Drives Revenue\"}),`\n`,(0,n.jsx)(e.p,{children:\"AI citation data connects directly to pipeline and revenue when used correctly.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Marketing agencies use citation tracking to demonstrate client ROI. When a campaign increases AI visibility by 40%, that translates to measurable brand impact.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Product companies track citations for c
2ompetitive intelligence. Knowing which features AI highlights for competitors guides product roadmap decisions.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Local businesses monitor citation accuracy. AI systems pulling outdated hours or services cost real revenue from potential customers.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"Choosing the Right Tool for Your Business\"}),`\n`,(0,n.jsx)(e.p,{children:\"Your ideal citation tracker depends on team size, budget, and use case.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"For marketing agencies\"}),\": White-labeled reports and competitor tracking matter most. Clients need clear proof that AI visibility is improving. Spyglasses provides branded visibility reports that agencies can deliver directly to clients.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"For enterprise brands\"}),\": Multi-platform coverage and integration with existing analytics stack are essential. You need citations tracked alongside traditional web analytics.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"For SMBs\"}),\": Usage-based pricing and immediate insights deliver fastest ROI. Enterprise subscriptions (\",(0,n.jsxs)(e.span,{className:\"katex\",children:[(0,n.jsx)(e.span,{className:\"katex-mathml\",children:(0,n.jsx)(e.math,{xmlns:\"http://www.w3.org/1998/Math/MathML\",children:(0,n.jsxs)(e.semantics,{children:[(0,n.jsxs)(e.mrow,{children:[(0,n.jsx)(e.mn,{children:\"4\"}),(0,n.jsx)(e.mo,{separator:\"true\",children:\",\"}),(0,n.jsx)(e.mn,{children:\"000\"}),(0,n.jsx)(e.mo,{children:\"\\u2212\"})]}),(0,n.jsx)(e.annotation,{encoding:\"application/x-tex\",children:\"4,000-\"})]})})}),(0,n.jsx)(e.span,{className:\"katex-html\",\"aria-hidden\":\"true\",children:(0,n.jsxs)(e.span,{className:\"base\",children:[(0,n.jsx)(e.span,{className:\"strut\",style:{height:\"0.8389em\",verticalAlign:\"-0.1944em\"}}),(0,n.jsx)(e.span,{className:\"mord\",children:\"4\"}),(0,n.jsx)(e.span,{className:\"mpunct\",children:\",\"}),(0,n.jsx)(e.span,{className:\"mspace\",style:{marginRight:\"0.1667em\"}}),(0,n.jsx)(e.span,{className:\"mord\",children:\"000\"}),(0,n.jsx)(e.span,{className:\"mord\",children:\"\\u2212\"})]})})]}),\"15,000/month) don't make sense for most small businesses.\"]}),`\n`,(0,n.jsx)(e.h2,{children:\"Implementation Roadmap\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{src:\"/images/blog/ai-citation-tracking-tool-implementation-plan.webp\",alt:\"An abstract photo of an AI visibility tracking implementation plan\"})}),`\n`,(0,n.jsx)(e.p,{children:\"Getting citation tracking running takes 1-2 weeks for most organizations.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Week 1: Baseline assessment\"})}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Identify one prompt in each of five key categories\"}),`\n`,(0,n.jsx)(e.li,{children:\"Run initial citation audits across platforms\"}),`\n`,(0,n.jsx)(e.li,{children:\"Document current visibility gaps\"}),`\n`,(0,n.jsx)(e.li,{children:\"Map competitor mentions\"}),`\n`]}
2),`\n`,(0,n.jsx)(e.p,{children:\"The five prompt categories to cover:\"}),`\n`,(0,n.jsxs)(e.ol,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Best in Category\"}),`\n`,(0,n.jsx)(e.li,{children:\"Segment-Specific\"}),`\n`,(0,n.jsx)(e.li,{children:\"Use Case Solution\"}),`\n`,(0,n.jsx)(e.li,{children:\"Budget-Conscious\"}),`\n`,(0,n.jsx)(e.li,{children:\"Solution Comparison\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.strong,{children:\"Week 2: Tool setup and monitoring\"})}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Configure tracking for your domains\"}),`\n`,(0,n.jsx)(e.li,{children:\"Set up competitor monitoring\"}),`\n`,(0,n.jsx)(e.li,{children:\"Establish reporting cadence\"}),`\n`,(0,n.jsx)(e.li,{children:\"Create alert thresholds\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"Most platforms provide onboarding support. Spyglasses includes setup guidance and query optimization recommendations.\"}),`\n`,(0,n.jsx)(e.h2,{children:\"Common Implementation Mistakes\"}),`\n`,(0,n.jsx)(e.p,{children:\"Three mistakes account for most citation tracking failures.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Tracking too many prompts\"}),\" wastes budget without improving insights. The average search intent prompt contains 22 words, and you need 271 runs per prompt for 90% confidence your brand is cited. That gets expensive fast.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"More importantly, different prompts often generate the same underlying grounding searches. 100 tracked prompts might all trigger the same 25-30 web searches. It's more efficient to track those core patterns.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Spyglasses recommends tracking at least one prompt in each category:\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:'Best in Category (e.g., \"best project management tools\")'}),`\n`,(0,n.jsx)(e.li,{children:'Segment-Specific (e.g., \"best project management for remote teams\")'}),`\n`,(0,n.jsx)(e.li,{children:'Use Case Solution (e.g., \"what tools help with sprint planning?\")'}),`\n`,(0,n.jsx)(e.li,{children:'Budget-Conscious (e.g., \"affordable project management under $50/month\")'}),`\n`,(0,n.jsx)(e.li,{children:'Solution Comparison (e.g., \"compare project management platforms\")'}),`\n`]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Ignoring competitor data\"}),\" loses critical context. Your citations matter less than your competitive share of voice. If rivals own key buying questions, you're losing market position.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Not connecting to business outcomes\"}),\" reduces buy-in. Citation tracking seems academic until you tie it to pipeline, deal velocity, or competitive wins.\"]}),`\n`,(0,n.jsx)(e.h2,{children:\"The AI Visibility Gap\"}),`\n`,(0,n.jsx)(e.p,{children:\"Most brands are mentioned in AI responses 5-10x more often than they realize. But without tracking tools, that exposure is invisible.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Citation tracking tools make AI visibility measurable. Spyglasses provides real-time monitoring across five major AI platforms, showing exactly when and how your brand appears in AI responses. The platform tracks citations, analyzes competitive positioning, and connects AI mentions to actual website traffic.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Start by running a basic citation audit. Identify one prompt in each of the five core categories, measure your current visibility, and prioritize improvements based on competitive gaps.\"})]})}function h(i={}){let{wrapper:e}=i.components||{};return e?(0,n.jsx)(e,{...i,children:(0,n.jsx)(d,{...i})}):d(i)}return k(w);})();\n;return Component;"])</script>
2<script>self.__next_f.push([1,"4b:[\"$\",\"$L10\",\"ai-citation-tracking-tools\",{\"delay\":0,\"children\":[\"$\",\"$L11\",null,{\"post\":{\"content\":\"$c5\",\"title\":\"AI Citation Tracking Tools\",\"date\":\"2026-01-04\",\"image\":\"/images/blog/ai-citation-tracking-tools.webp\",\"authorName\":\"Jim Wrubel\",\"authorImage\":\"/images/blog/jwrubel_hs_square.webp\",\"authorLinkedIn\":\"https://www.linkedin.com/in/jwrubel/\",\"authorCrunchbase\":\"https://www.crunchbase.com/person/jim-wrubel-56d7\",\"excerpt\":\"How to Monitor Brand Mentions in ChatGPT, Google AI Overviews, Claude \u0026 Perplexity.\",\"tags\":[\"AI SEO\",\"AEO\",\"GEO\",\"AI citations\",\"AI Search Visibility\",\"Comparison\"],\"published\":true,\"_meta\":{\"filePath\":\"ai-citation-tracking-tools.mdx\",\"fileName\":\"ai-citation-tracking-tools.mdx\",\"directory\":\".\",\"extension\":\"mdx\",\"path\":\"ai-citation-tracking-tools\"},\"body\":\"$c6\",\"locale\":\"en\",\"path\":\"ai-citation-tracking-tools\"}}]}]\n"])</script>
2<script>self.__next_f.push([1,"54:[\"$\",\"$Lc7\",null,{\"locale\":\"en\",\"now\":\"$D2026-10-02T05:13:13.844Z\",\"timeZone\":\"UTC\",\"messages\":{\"admin\":{\"menu\":{\"organizations\":\"Organizations\",\"users\":\"Users\",\"botClassification\":\"Bot Classification\",\"properties\":\"Properties\",\"accountingReports\":\"Accounting Reports\",\"publishers\":\"Publishers\",\"citations\":\"Citations\",\"announcements\":\"Announcements\",\"freeToolPages\":\"Free tool pages\"},\"freeToolPages\":{\"title\":\"Free tool pages\",\"description\":\"Per-domain checker pages render for any domain but stay out of the index until promoted here. Promote data-rich, in-demand domains; keep the list small.\",\"search\":\"Search by domain...\",\"loading\":\"Loading free tool pages...\",\"empty\":\"No free tool page lookups yet.\",\"columns\":{\"tool\":\"Tool\",\"domain\":\"Domain\",\"lookups\":\"Lookups\",\"lastLookup\":\"Last lookup\",\"indexable\":\"Indexable\",\"promotedAt\":\"Promoted at\"},\"toolFilter\":{\"ALL\":\"All tools\",\"AI_ACCESS\":\"AI Access\",\"COMMON_CRAWL\":\"Common Crawl\"},\"indexableFilter\":{\"ALL\":\"All pages\",\"INDEXABLE\":\"Indexable\",\"NOT_INDEXABLE\":\"Not indexable\"},\"toggle\":{\"promote\":\"Promote {domain} into the index\",\"demote\":\"Remove {domain} from the index\"},\"notifications\":{\"saving\":\"Saving...\",\"promoted\":\"{domain} is now indexable.\",\"demoted\":\"{domain} is no longer indexable.\",\"error\":\"Could not update the page.\"}},\"organizations\":{\"addExistingUser\":{\"title\":\"Add Existing User\",\"description\":\"Add a user who has already signed up to this organization. This is useful when users signed up independently but need to be added to a trial.\",\"userLabel\":\"User\",\"selectUser\":\"Select a user\",\"searchPlaceholder\":\"Search by email or name...\",\"noUsersFound\":\"No users found\",\"allUsersAlreadyMembers\":\"All matching users are already members\",\"typeToSearch\":\"Type at least 2 characters to search\",\"submit\":\"Add User\",\"notifications\":{\"success\":\"User added to organization successfully\",\"error\":\"Failed to add user to organization\"}},\"backToList\":\"Back to organizations\",\"confirmDelete\":{\"confirm\":\"Delete\",\"message\":\"Are you sure you want to delete this organization? This action cannot be undone.\",\"title\":\"Delete organization\"},\"create\":\"Create\",\"delete\":\"Delete\",\"deleteOrganization\":{\"deleted\":\"Organization has been deleted successfully!\",\"deleting\":\"Deleting organization...\",\"notDeleted\":\"Organization could not be deleted. Please try again.\"},\"edit\":\"Edit\",\"manageMembers\":\"Manage Members\",\"accessDenied\":{\"title\":\"Organization Access Required\",\"description\":\"You need to be a member of this organization to manage its members. As an admin, you can join this organization to gain access.\"},\"joinAsAdmin\":{\"button\":\"Join as Admin\",\"success\":\"Successfully joined organization as admin\",\"error\":\"Failed to join organization. Please try again.\"},\"membershipRequired\":{\"description\":\"To invite members and manage this organization, you need to join as a member first.\"},\"membershipActive\":{\"description\":\"You are currently a member of this organization. You can manage members and invitations below.\"},\"leaveOrganization\":{\"button\":\"Leave Organization\",\"success\":\"Successfully left the organization\",\"error\":\"Failed to leave organization. Please try again.\"},\"form\":{\"createTitle\":\"Create an organization\",\"name\":\"Organization name\",\"memberManagementDescription\":\"Manage members and send invitations for this organization. As an admin, you have full access to organization member management.\",\"notifications\":{\"error\":\"Could not save the organization. Please try again later.\",\"success\":\"Organization has been saved.\"},\"save\":\"Save\",\"updateTitle\":\"Edit organization\"},\"subscriptionInfo\":{\"title\":\"Active Subscription\",\"subscriptionId\":\"Subscription ID\",\"plan\":\"Plan\",\"interval\":\"Billing Interval\",\"status\":\"Status\"},\"connectSubscription\":{\"title\":\"Connect Stripe Subscription\",\"description\":\"Manually connect an existing Stripe subscription to this organization. The subscription will be validated and credits will be granted.\",\"subscriptionId\":\"Stripe Subscription ID\",\"subscriptionIdHelp\":\"Enter the Stripe subscription ID (starts with sub_)\",\"plan\":\"Plan Type\",\"selectPlan\":\"Select a plan\",\"planHelp\":\"Select the plan tier for this subscription\",\"plans\":{\"starter\":\"Starter\",\"professional\":\"Professional\",\"enterprise\":\"Enterprise\"},\"interval\":\"Billing Interval\",\"selectInterval\":\"Select billing interval\",\"intervalHelp\":\"Select how often the subscription renews\",\"intervals\":{\"month\":\"Monthly\",\"quarter\":\"Quarterly (3 months)\",\"year\":\"Annually\"},\"connect\":\"Connect Subscription\",\"reset\":\"Reset\",\"success\":\"Subscription connected successfully!\",\"error\":\"Failed to connect subscription: {error}\"},\"loading\":\"Loading organizations...\",\"membersCount\":\"{count} {count, plural, one {member} other {members}}\",\"search\":\"Search for an organization...\",\"title\":\"Manage organizations\"},\"title\":\"Administration\",\"users\":{\"assignToOrganization\":{\"title\":\"Assign to Organization\",\"description\":\"Assign a user to an organization. They will become a member immediately without needing to accept an invitation.\",\"organizationLabel\":\"Organization\",\"selectOrganization\":\"Select an organization\",\"searchPlaceholder\":\"Search organizations...\",\"noOrganizationsFound\":\"No organizations foun
2d\",\"typeToSearch\":\"Type at least 2 characters to search\",\"submit\":\"Assign\",\"notifications\":{\"success\":\"User assigned to organization successfully\",\"error\":\"Failed to assign user to organization\"}},\"confirmDelete\":{\"confirm\":\"Delete\",\"message\":\"Are you sure you want to delete this user? This action cannot be undone.\",\"title\":\"Delete user\"},\"delete\":\"Delete\",\"deleteUser\":{\"deleted\":\"User has been deleted successfully!\",\"deleting\":\"Deleting user...\",\"notDeleted\":\"User could not be deleted. Please try again.\"},\"emailVerified\":{\"verified\":\"Email verified\",\"waiting\":\"Email waiting for verification\"},\"impersonate\":\"Impersonate\",\"impersonation\":{\"impersonating\":\"Impersonating as {name}...\"},\"loading\":\"Loading users...\",\"resendVerificationMail\":{\"error\":\"Could not resend verification mail. Please try again.\",\"submitting\":\"Resending verification mail...\",\"success\":\"Verification mail has been sent.\",\"title\":\"Resend verification mail\"},\"search\":\"Search for name or email...\",\"title\":\"Manage users\",\"assignAdminRole\":\"Assign admin role\",\"removeAdminRole\":\"Remove admin role\"},\"description\":\"Manage your application.\",\"botClassification\":{\"title\":\"Bot Classification\",\"description\":\"Update the bot classification data in the database\",\"searchResults\":\"Search results\",\"searchPlaceholder\":\"Search for a category...\",\"force\":\"Force reinitialization (overwrite existing data)\",\"initialize\":\"Initialize\",\"initializing\":\"Initializing...\",\"initialized\":\"Bot classification data initialized successfully\",\"error\":\"Failed to initialize\",\"empty\":\"No bot categories found. Add your first category to get started.\",\"categories\":{\"title\":\"Bot Categories\",\"name\":\"Category Name\",\"description\":\"Category Description\",\"actions\":\"Actions\",\"add\":\"Add Category\",\"addDescription\":\"Create a new bot category\",\"create\":\"Create Category\",\"creating\":\"Creating...\",\"edit\":{\"title\":\"Edit Category\",\"description\":\"Update the category details below.\"},\"form\":{\"name\":\"Category Name\",\"description\":\"Category Description\",\"save\":\"Save Changes\",\"saving\":\"Saving...\"},\"notifications\":{\"success\":\"Category updated successfully\",\"error\":\"Failed to update category\",\"createSuccess\":\"Category created successfully\",\"createFailed\":\"Failed to create category\",\"deleteSuccess\":\"Category deleted successfully\",\"deleteFailed\":\"Failed to delete category\",\"deleteFailedWithChildren\":\"Category has children. Please delete all children first.\"},\"delete\":{\"title\":\"Delete Category\",\"description\":\"Are you sure you want to delete {name}? This action cannot be undone.\",\"confirm\":\"Delete\"}},\"subcategories\":{\"title\":\"Bot Subcategories\",\"name\":\"Subcategory Name\",\"description\":\"Subcategory Description\",\"actions\":\"Actions\",\"add\":\"Add Subcategory\",\"create\":{\"button\":\"Add Subcategory\",\"submit\":\"Create Subcategory\",\"title\":\"Create Subcategory\",\"description\":\"Create a new subcategory\"},\"edit\":{\"submit\":\"Update Subcategory\",\"title\":\"Edit Subcategory\",\"description\":\"Edit the subcategory details below.\"},\"delete\":{\"title\":\"Delete Subcategory\",\"description\":\"Are you sure you want to delete {name}? This action cannot be undone.\",\"confirm\":\"Delete\"},\"move\":{\"title\":\"Move Subcategory\",\"description\":\"Are you sure you want to move {name}? This action cannot be undone.\",\"confirm\":\"Move\",\"action\":\"Move Subcategory\",\"selectCategory\":\"Select the category you want to move {name} to.\",\"instructionText\":\"Select the category you want to move {name} to.\"},\"table\":{\"name\":\"Name\",\"description\":\"Description\",\"category\":\"Category\"},\"form\":{\"name\":\"Subcategory Name\",\"description\":\"Subcategory Description\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"category\":\"Category\",\"categoryPlaceholder\":\"Select a category\",\"targetCategory\":\"Target Category\",\"targetCategoryPlaceholder\":\"Select a category\"},\"notifications\":{\"createSuccess\":\"Subcategory created successfully\",\"createFailed\":\"Failed to create subcategory\",\"deleteSuccess\":\"Subcategory deleted successfully\",\"deleteFailed\":\"Failed to delete subcategory\",\"success\":\"Subcategory created successfully\",\"error\":\"Failed to create subcategory\",\"moveSuccess\":\"Subcategory moved successfully\",\"moveFailed\":\"Failed to move subcategory\",\"updateSuccess\":\"Subcategory updated successfully\",\"updateFailed\":\"Failed to update subcategory\",\"deleteFailedWithChildren\":\"Subcategory has children. Please delete all children first.\"},\"empty\":\"No subcategories found. Add your first subcategory to get started.\"},\"types\":{\"title\":\"Bot Types\",\"subtitle\":\"Subcategory: {subcategory}\",\"name\":\"Type Name\",\"description\":\"Type Description\",\"actions\":\"Actions\",\"delete\":\"Delete Type\",\"move\":{\"title\":\"Move Type\",\"description\":\"Are you sure you want to move {name}? This action cannot be undone.\",\"confirm\":\"Move\",\"action\":\"Move Type\",\"selectSubcategory\":\"Select the subcategory you want to move {name} to.\",\"instructionText\":\"Select the subcategory you want to move {name} to.\"},\"patterns\":{\"title\":\"Patterns\",\"description\":\"Patterns for the type\",\"add\":\"Add Pattern\",\"manage\":\"Manage Patterns\",\"placeholder\":\"Enter a pattern\",\"addPattern\":\"Add Pattern\",\"removePattern\":\"Remove Pattern\"},\"intents\":\"Intents\",\"empty\":\"No types found. Add your first type to get started.\",\"notifications\":{\"createFailed\":\"Failed to create type\",\"deleteSuccess\":\"Type deleted successfully\",\"deleteFailed\":\"Failed to delete type\",\"deleteFailedWithChildren\":\"Type has children. Please delete all children first.\",\"success\":\"Type created successfully\",\"error\":\"Failed to create type\",\"moveSuccess\":\"Type moved successfully\",\"moveFailed\":\"Failed to move type\",\"updateSuccess\":\"Type updated successfully\",\"updateFailed\":\"Failed to update type\",\"patternAdded\":\"Pattern added successfully\",\"patternAddFailed\":\"Failed to add pattern\",\"pattern
2Removed\":\"Pattern removed successfully\",\"patternRemoveFailed\":\"Failed to remove pattern\",\"agentStringAdded\":\"Agent string added successfully\",\"agentStringAddFailed\":\"Failed to add agent string\",\"agentStringRemoved\":\"Agent string removed successfully\",\"agentStringRemoveFailed\":\"Failed to remove agent string\"},\"create\":{\"button\":\"Add Type\",\"title\":\"Create Type\",\"description\":\"Create a new type\",\"submit\":\"Create Type\"},\"edit\":{\"title\":\"Edit Type\",\"description\":\"Edit the type details below.\",\"submit\":\"Update Type\"},\"form\":{\"name\":\"Type Name\",\"description\":\"Type Description\",\"company\":\"Company\",\"url\":\"URL\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"subcategory\":\"Subcategory\",\"subcategoryPlaceholder\":\"Select a subcategory\",\"targetSubcategory\":\"Target Subcategory\",\"knownAgentStrings\":{\"label\":\"Known Agent Strings\",\"placeholder\":\"Enter a user agent string\",\"add\":\"Add\",\"remove\":\"Remove\"}},\"status\":{\"compliant\":\"Compliant\",\"nonCompliant\":\"Non-Compliant\",\"dormant\":\"Dormant\"},\"table\":{\"name\":\"Name\",\"description\":\"Description\",\"company\":\"Company\",\"url\":\"URL\",\"status\":\"Status\",\"knownAgentStrings\":\"Known Agent Strings\",\"actions\":\"Actions\"},\"agentStrings\":{\"title\":\"Known Agent Strings\",\"description\":\"Manage known user agent strings for this bot type\",\"placeholder\":\"Enter user agent string\",\"add\":\"Add\",\"manage\":\"Manage Agent Strings\",\"count\":\"agent strings\"}},\"bulkImport\":{\"title\":\"Bulk Import Bot Patterns\",\"description\":\"Upload a JSON file with crawler-user-agents format to import bot patterns\",\"dragDrop\":\"Drag and drop your JSON file here, or click to browse\",\"fileRequirements\":\"Supports JSON files with crawler-user-agents format\",\"invalidFileType\":\"Please select a valid JSON file\",\"processing\":\"Processing patterns...\",\"importing\":\"Importing...\",\"import\":\"Import Patterns\",\"completed\":\"Import completed successfully\",\"failed\":\"Import failed\",\"created\":\"Created\",\"skipped\":\"Skipped\",\"errors\":\"Errors\",\"success\":\"Successfully imported {created} patterns, skipped {skipped} duplicates\",\"error\":\"Import failed: {message}\"}},\"aiReferrers\":{\"pageTitle\":\"AI Referrers\",\"title\":\"AI Referrers\",\"actions\":\"Actions\",\"search\":\"Search referrers...\",\"loading\":\"Loading referrers...\",\"empty\":\"No referrers found. Add your first referrer to get started.\",\"name\":\"Name\",\"company\":\"Company\",\"url\":\"URL\",\"logoUrl\":\"Logo URL\",\"patterns\":\"Patterns\",\"patternPlaceholder\":\"Enter a pattern\",\"addPattern\":\"Add Pattern\",\"removePattern\":\"Remove Pattern\",\"patternAlreadyExists\":\"Pattern already exists\",\"pattern\":\"Pattern\",\"description\":\"Description\",\"botType\":\"Bot Type\",\"botTypePlaceholder\":\"Select a bot type\",\"noBotType\":\"No bot type\",\"examples\":\"Examples\",\"add\":\"Add\",\"addDescription\":\"Add a new AI Referrer\",\"remove\":\"Remove\",\"save\":\"Save\",\"saving\":\"Saving...\",\"cancel\":\"Cancel\",\"edit\":{\"title\":\"Edit AI Referrer\",\"description\":\"Edit the AI Referrer details below.\"},\"delete\":{\"title\":\"Delete AI Referrer\",\"description\":\"Are you sure you want to delete {name}?\",\"confirm\":\"Delete\"},\"create\":\"Create\",\"creating\":\"Creating...\",\"update\":\"Update\",\"updateSuccess\":\"AI Referrer updated successfully\",\"notifications\":{\"createSuccess\":\"AI Referrer created successfully\",\"createFailed\":\"Failed to create AI Referrer\",\"updateSuccess\":\"AI Referrer updated successfully\",\"updateFailed\":\"Failed to update AI Referrer\",\"deleteSuccess\":\"AI Referrer deleted successfully\",\"deleteFailed\":\"Failed to delete AI Referrer\"}},\"properties\":{\"pageTitle\":\"Properties\",\"title\":\"Properties\",\"search\":\"Search properties...\",\"loading\":\"Loading properties...\",\"domain\":\"Domain\",\"organization\":\"Organization\",\"plan\":\"Plan\",\"status\":\"Status\",\"viewDetails\":\"View Property\",\"trackingSince\":\"Tracking since\",\"moveProperty\":\"Move Property\",\"lifetimePlan\":{\"title\":\"Generate Lifetime Plan Link\",\"message\"
2:\"This will generate a one-time checkout link for the lifetime plan. The link will be copied to your clipboard.\",\"confirm\":\"Generate Link\",\"generateLink\":\"Generate Lifetime Plan Link\",\"linkCopied\":\"Lifetime plan checkout link copied to clipboard\",\"error\":\"Failed to generate checkout link\",\"productIdMissing\":\"Lifetime plan product ID is not configured\"}},\"publishers\":{\"title\":\"Publishers\",\"search\":\"Search publishers by domain or name...\",\"loading\":\"Loading publishers...\",\"empty\":\"No publishers found.\",\"domain\":\"Domain\",\"name\":\"Name\",\"authorityType\":\"Authority Type\",\"mediaType\":\"Media Type\",\"aiPolicy\":\"AI Policy\",\"citations\":\"Citations\",\"organicEtv\":\"Organic ETV\",\"categories\":\"Categories\",\"platform\":\"Platform\",\"isPlatform\":\"Is Platform\",\"childPublishers\":\"Sub-publishers\",\"blockedBots\":\"Blocked Bots\",\"enrichment\":\"Enrichment\",\"organicMetrics\":\"Organic Metrics\",\"backToList\":\"Back to publishers\",\"addPublisher\":\"Add Publisher\",\"addPublisherDescription\":\"Enter a domain to create a new publisher and trigger enrichment.\",\"domainLabel\":\"Domain\",\"domainPlaceholder\":\"example.com\",\"triggerEnrichment\":\"Trigger enrichment after creation\",\"create\":\"Create\",\"creating\":\"Creating...\",\"viewDetails\":\"View Details\",\"edit\":\"Edit\",\"save\":\"Save Changes\",\"saving\":\"Saving...\",\"delete\":\"Delete\",\"triggerEnrich\":\"Enrich\",\"forceEnrich\":\"Force Re-enrich\",\"computeScore\":\"Compute AIPVS\",\"aipvs\":{\"title\":\"AI Placement Value Score\",\"score\":\"Score\",\"tier\":\"Tier\",\"confidence\":\"Confidence\",\"oab\":\"Organic Authority Baseline\",\"aca\":\"AI Citation Accessibility\",\"ati\":\"AI Training Influence\",\"pageRank\":\"PageRank\",\"etv\":\"ETV Percentile\",\"topPositionQuality\":\"Top Position Quality\",\"commercialValue\":\"Commercial Value\",\"categoryRelevance\":\"Category Relevance\",\"noData\":\"Score not yet computed. Click 'Compute AIPVS' to generate.\",\"computing\":\"Computing score...\"},\"dataCompleteness\":{\"title\":\"Data Completeness\",\"complete\":\"Complete\",\"incomplete\":\"Incomplete\",\"missing\":\"Missing\",\"logo\":\"Logo\",\"classification\":\"Classification\",\"aiPolicyCheck\":\"AI Policy Check\",\"organicMetricsData\":\"Organic Metrics\",\"categoryData\":\"Category Data\",\"percentiles\":\"Percentiles\"},\"confirmDelete\":{\"title\":\"Delete Publisher\",\"message\":\"Are you sure you want to delete this publisher? This will also remove all associated blocked bot data. Citations will be unlinked but not deleted.\",\"confirm\":\"Delete\"},\"notifications\":{\"created\":\"Publisher created successfully\",\"createFailed\":\"Failed to create publisher\",\"updated\":\"Publisher updated successfully\",\"updateFailed\":\"Failed to update publisher\",\"deleted\":\"Publisher deleted successfully\",\"deleteFailed\":\"Failed to delete publisher\",\"enrichTriggered\":\"Enrichment triggered for {domain}\",\"enrichFailed\":\"Failed to trigger enrichment\",\"alreadyExists\":\"Publisher already exists for this domain\"}},\"announcements\":{\"pageTitle\":\"Announcements - Admin\",\"title\":\"Announcements\",\"create\":\"New announcement\",\"edit\":\"Edit announcement\",\"formDescription\":\"Announcements appear in the notification bell for all users once published.\",\"loading\":\"Loading announcements...\",\"empty\":\"No announcements yet.\",\"columns\":{\"title\":\"Title\",\"status\":\"Status\",\"type\":\"Type\",\"source\":\"Source\",\"published\":\"Published\"},\"form\":{\"title\":\"Title\",\"body\":\"Message\",\"link\":\"Link (optional)\",\"type\":\"Type\",\"save\":\"Save\"},\"types\":{\"FEATURE\":\"New feature\",\"IMPROVEMENT\":\"Improvement\",\"FIX\":\"Fix\",\"GENERAL\":\"General\"},\"status\":{\"DRAFT\":\"Draft\",\"PUBLISHED\":\"Published\",\"ARCHIVED\":\"Archived\"},\"filter\":{\"ALL\":\"All statuses\",\"DRAFT\":\"Drafts\",\"PUBLISHED\":\"Published\",\"ARCHIVED\":\"Archived\"},\"source\":{\"manual\":\"Manual\"},\"actions\":{\"edit\":\"Edit\",\"publish\":\"Publish\",\"archive\":\"Archive\",\"delete\":\"Delete\"},\"confirmPublish\":{\"title\":\"Publish announcement?\",\"message\"
2:\"This announcement will appear in the notification bell for every user.\"},\"confirmArchive\":{\"title\":\"Archive announcement?\",\"message\":\"This announcement will no longer be shown to users.\"},\"confirmDelete\":{\"title\":\"Delete draft?\",\"message\":\"This draft will be permanently deleted.\"},\"notifications\":{\"created\":\"Announcement created\",\"updated\":\"Announcement updated\",\"published\":\"Announcement published\",\"archived\":\"Announcement archived\",\"deleted\":\"Draft deleted\",\"error\":\"Something went wrong\"}}},\"bots\":{\"directory\":{\"meta\":{\"title\":\"AI Agents \u0026 Web Crawlers Directory | Spyglasses\",\"description\":\"Every AI agent, crawler, and bot that matters for AI visibility. Who runs them, what they do, whether they're compliant, and how to manage their access.\"},\"title\":\"AI Agents \u0026 Web Crawlers Directory\",\"description\":\"Comprehensive database of AI agents, web crawlers, and bots that visit websites. Learn about each one and how to manage their access to your content.\",\"breadcrumbs\":{\"home\":\"Home\",\"bots\":\"Agents\"},\"cta\":{\"title\":\"Track AI Traffic on Your Website\",\"description\":\"Get real-time visibility into which AI agents and crawlers are visiting your website. Set up blocking rules and analytics integration in minutes.\",\"button\":\"Start Free Trial\"},\"bottomCta\":{\"title\":\"Ready to Take Control of Your AI Traffic?\",\"description\":\"Join thousands of websites using Spyglasses to detect, analyze, and manage AI agent traffic. Start your free trial today.\",\"button\":\"Get Started Free\"},\"badges\":{\"aiVisitor\":\"AI Visitor\",\"aiModelTrainer\":\"AI Model Trainer\",\"crawler\":\"Crawler\",\"compliant\":\"Compliant\",\"dormant\":\"Dormant\",\"uncategorized\":\"Uncategorized\",\"showingLimited\":\"Showing Limited\"},\"stats\":{\"bots\":\"bots\"},\"showingFirst\":\"Showing first {count} of {total} bots\",\"viewAll\":\"View All {count} Bots\"},\"individual\":{\"meta\":{\"title\":\"{name} | AI Agent Directory | Spyglasses\",\"description\":\"{name} is a {category}. See its traffic patterns, how to identify it in logs, and what its presence means for your AI visibility.\",\"descriptionWithOperator\":\"{name} is a {category} operated by {operator}. See its traffic patterns, how to identify it in logs, and what its presence means for your AI visibility.\",\"notFound\":{\"title\":\"Agent Not Found | Spyglasses\",\"description\":\"The requested AI agent or crawler could not be found in our directory.\"}},\"lastUpdated\":\"Last updated {date}.\",\"breadcrumbs\":{\"home\":\"Home\",\"bots\":\"Agents\"},\"notFound\":{\"breadcrumb\":\"Not Found\",\"title\":\"Agent Not Found\",\"description\":\"The requested AI agent or crawler could not be found in our directory. It may have been moved, renamed, or doesn't exist.\",\"browseAll\":\"Browse All Agents\",\"backHome\":\"Back to Home\",\"help\":{\"title\":\"Can't Find What You're Looking For?\",\"description\":\"Our directory contains hundreds of AI agents and crawlers. If you're seeing unknown bots in your logs, Spyglasses can help you identify and manage them.\",\"cta\":\"Start Free Trial\"}},\"badges\":{\"compliant\":\"Compliant\",\"nonCompliant\":\"Non-Compliant\",\"dormant\":\"Dormant\",\"aiBot\":\"AI Bot\",\"crawler\":\"Crawler\"},\"sections\":{\"about\":{\"title\":\"What is {name}?\",\"description\":\"About\",\"operator\":\"Operator\",\"documentation\":\"Documentation\",\"cta\":\"See how often {name} visits your website by setting up Spyglasses analytics.\",\"ctaLink\":\"Set up tracking\"},\"agentStrings\":{\"foundTitle\":\"Did you find {agentString} in your logs?\",\"foundDescription\":\"If you've seen {agentString} in your website logs, it indicates that {botName} has been visiting your site. This agent string is one of the known identifiers for this bot.\",\"cta\":\"Track and manage {botName} visits to your website with Spyglasses' real-time bot detection.\",\"ctaLink\":\"Start tracking\"},\"behavior\":{\"title\":\"Expected Behavior\",\"aiVisitor\":\"AI assistants make one-off visits to websites based on user requests, rather than crawling the web in any automatic fashion. This allows the underlying LLM to incorporate up-to-date information outside of its training data in its answers, using a technique called retrieval-augmented generation (RAG).\",\"aiModelTrainer\":\"AI model trainers systematically crawl websites to collect data for training and improving AI models. These bots read and analyze web content to understand language patterns, gather factual information, and build knowledge that will be incorporated into AI systems. The data they collect becomes part of the training dataset used to teach AI models how to understand and generate human-like text.\",\"crawler\":\"Web 
2crawlers visit websites on a regular schedule to index content for search engines or other services. They typically follow a consistent crawling pattern and respect robots.txt directives.\",\"general\":\"This bot visits websites for various purposes including content analysis, data collection, or automated tasks. Its behavior may vary depending on its specific function and configuration.\",\"dormant\":\"Note: This bot has been marked as dormant, meaning it hasn't been actively seen in the wild recently. It may still visit websites occasionally or could become active again in the future.\"},\"blocking\":{\"shouldBlock\":{\"title\":\"Should I Block {name}?\",\"compliantDescription\":\"This bot is marked as compliant, meaning it generally respects robots.txt directives and follows good practices. You may choose to allow it if you want your content to be accessible to its services.\",\"nonCompliantDescription\":\"This bot is marked as non-compliant, which may mean it doesn't respect robots.txt or engages in aggressive crawling behavior. You may want to consider blocking it if it's causing issues for your site.\",\"aiModelTrainerDescription\":\"The decision to block AI model trainers depends on how your business uses the content on your site. If you create original creative work, proprietary research, or paid content that gives you a competitive advantage, you should consider blocking these bots to protect your intellectual property. However, if your content helps potential customers discover your products or services, allowing AI models to access it can help you reach new audiences when people ask AI assistants for recommendations.\",\"aiModelTrainerNote\":\"For detailed guidance on when to block AI model trainers, including considerations for different types of businesses and content, read our comprehensive guide.\",\"learnMore\":\"Learn more about blocking AI model trainers\"},\"solution\":{\"title\":\"Recommended Solution\",\"description\":\"Instead of manually managing robots.txt rules, use Spyglasses to automatically detect and manage {name} traffic with real-time analytics and flexible blocking rules.\",\"button\":\"Get Automated Bot Management\"},\"howTo\":{\"title\":\"How Do I Block {name}?\",\"description\":\"You can block this bot or limit its access by setting user agent token rules in your website's robots.txt file. Use Spyglasses analytics to check whether it's actually following your rules.\",\"userAgentTokens\":\"User Agent Tokens\",\"patternDescription\":\"Should match instances of this bot\",\"automaticSolution\":\"Instead of doing this manually, use Spyglasses to keep your rules updated automatically with the latest AI agents and crawlers.\",\"automaticSolutionLink\":\"Set up automatic bot management\"}}},\"bottomCta\":{\"title\":\"Manage {name} Traffic with Spyglasses\",\"description\":\"Get real-time alerts when bots visit your site, automatically generate robots.txt rules, and integrate bot traffic data with your existing analytics tools.\",\"button\":\"Start Free Trial\"}}},\"app\":{\"menu\":{\"accountSettings\":\"Account settings\",\"admin\":\"Admin\",\"aiChatbot\":\"AI Chatbot\",\"organizationSettings\":\"Organization settings\",\"start\":\"Start\"},\"userMenu\":{\"accountSettings\":\"Account settings\",\"colorMode\":\"Color mode\",\"documentation\":\"Documentation\",\"home\":\"Home\",\"logout\":\"Logout\",\"stopImpersonating\":{\"button\":\"Stop Impersonating\",\"success\":\"Stopped impersonating user\",\"error\":\"Failed to stop impersonating. Please try again.\"}},\"notifications\":{\"title\":\"Notifications\",\"markAllRead\":\"Mark all read\",\"empty\":\"You're all caught up\",\"emptyDescription\":\"New product updates will appear here.\",\"error\":\"Couldn't load notifications\"}},\"auth\":{\"errors\":{\"invalidEmailOrPassword\":\"The credentials you entered are invalid. Please check them and try again.\",\"unknown\":\"Something went wrong. Please try again.\",\"userNotFound\":\"This user does not exists\",\"failedToCreateUser\":\"Could not create user. Please try again.\",\"failedToCreateSession\":\"Could not create a session. Please try again.\",\"failedToUpdateUser\":\"Could not update user. Please try again.\",\"failedToGetSession\":\"Could not get the session.\",\"invali
2dPassword\":\"The entered password is incorrect.\",\"invalidEmail\":\"The entered email is invalid.\",\"invalidToken\":\"The token you entered is invalid or has expired.\",\"credentialAccountNotFound\":\"Account not found.\",\"emailCanNotBeUpdated\":\"Email could not be updated. Please try again.\",\"emailNotVerified\":\"Please verify your email first before logging in.\",\"failedToGetUserInfo\":\"Could not load user information.\",\"idTokenNotSupported\":\"ID token is not supported.\",\"passwordTooLong\":\"Password is too long.\",\"passwordTooShort\":\"Password is too short.\",\"providerNotFound\":\"This provider is not suppported.\",\"socialAccountAlreadyLinked\":\"This account is already linked to a user.\",\"userEmailNotFound\":\"Email not found.\",\"userAlreadyExists\":\"This user already exists.\",\"invalidInvitation\":\"The invitation is invalid or expired.\",\"sessionExpired\":\"The session has expired.\",\"failedToUnlinkLastAccount\":\"Failed to unlink account\",\"accountNotFound\":\"Account not found\"},\"forgotPassword\":{\"backToSignin\":\"Back to signin\",\"email\":\"Email\",\"hints\":{\"linkNotSent\":{\"message\":\"We are sorry, but we were unable to send you a link to reset your password. Please try again later.\",\"title\":\"Link not sent\"},\"linkSent\":{\"message\":\"We have sent you a link to continue. Please check your inbox.\",\"title\":\"Link sent\"}},\"message\":\"Please enter your email address and we will send you a link to reset your password.\",\"submit\":\"Send link\",\"title\":\"Forgot your password?\"},\"login\":{\"continueWith\":\"Or continue with\",\"createAnAccount\":\"Create an account\",\"dontHaveAnAccount\":\"Don't have an account yet?\",\"forgotPassword\":\"Forgot password?\",\"hints\":{\"invalidCredentials\":\"The email or password you entered are invalid. Please try again.\",\"linkSent\":{\"message\":\"We have sent you a link to continue. Please check your inbox.\",\"title\":\"Link sent\"}},\"loginWithPasskey\":\"Login with passkey\",\"modes\":{\"magicLink\":\"Magic link\",\"password\":\"Password\"},\"submit\":\"Sign in\",\"subtitle\":\"Access your AI visibility insights, traffic analytics, and reporting tools.\",\"title\":\"Welcome back to Spyglasses\",\"sendMagicLink\":\"Send magic link\",\"continue\":\"Continue\",\"notYou\":\"Not you?\",\"ssoRedirecting\":\"Redirecting to your provider…\",\"twoFactor\":{\"codeLabel\":\"6-digit code\",\"backupCodeLabel\":\"Backup code\",\"useBackupCode\":\"Use a backup code instead\",\"useAuthenticator\":\"Use your authenticator app instead\",\"trustDevice\":\"Trust this device for 30 days\",\"submit\":\"Verify\",\"invalidCode\":\"That code is not right. Try again.\"}},\"resetPassword\":{\"backToSignin\":\"Back to signin\",\"hints\":{\"error\":\"We are sorry, but we were unable to reset your password. Please try again.\",\"success\":\"Your password has been reset successfully.\"},\"message\":\"Please enter a new password.\",\"newPassword\":\"New password\",\"submit\":\"Reset password\",\"title\":\"Reset your password\"},\"signup\":{\"alreadyHaveAccount\":\"Already have an account?\",\"email\":\"Email\",\"hints\":{\"signupFailed\":\"We are sorry, but we were unable to create your account. Please try again later.\",\"verifyEmail\":\"We have sent you a link to verify your email. Please check your inbox.\"},\"message\":\"Track AI traffic, measure visibility, and prove ROI. Get the complete picture of how AI platforms represent your brand.\",\"messageAgency\":\"Launch your AI SEO offering today. Track visibility, measure traffic from AI platforms, and prove ROI for every client.\",\"name\":\"Name\",\"newsletterOptIn\":\"Sign up for our monthly newsletter\",\"password\":\"Password\",\"signIn\":\"Sign in\",\"submit\":\"Get started\",\"submitAgency\":\"Get started\",\"termsAgreement\":\"By signing up, you agree to our \u003ctermsLink\u003eterms of service\u003c/termsLink\u003e and \u003cprivacyLink\u003eprivacy policy\u003c/privacyLink\u003e\",\"title\":\"See How AI Platforms Represent Your Brand\",\"titleAgency\":\"Power Your Agency's AI SEO Offering\"}},\"blog\":{\"description\":\"Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity.\",\"title\":\"Spyglasses Blog\"},\"changelog\":{\"description\":\"Stay up to date with the latest changes in our product.\",\"title\":\"Changelog\"},\"common\":{\"confirmation\":{\"cancel\":\"Cancel\",\"confirm\":\"Confirm\",\"close\":\"Close\",\"save\":\"Save\",\"saving\":\"Saving\",\"connect\":\"Connect\",\"tryAgain\":\"Try again\"},\"cancel\":\"Cancel\",\"menu\":{\"blog\":\"Blog\",\"changelog\":\"Changelog\",\"contact\":\"Contact\",\"dashboard\":\"Dashboard\",\"docs\":\"Docs\",\"aiAnalyticsLive\":\"Live Demo\",\"faq\":\"FAQ\",\"login\":\"Log in\",\"pricing\":\"Pricing\",\"bots\":\"Agent Insights\",\"products\":{\"title\":\"Products\",\"aiVisibilityReport\":\"AI Visibility Report\",\"aiReadinessAudit\":\"AI Readiness Audit\",\"aiPlacementValueScore\":\"AI Placement Value Score\",\"aiPlacementQualityScore\":\"AI Placement Quality Score\",\"citationOptimizer\":\"Citation Optimizer\",\"aiTrafficAnalytics\":\"AI Traffic Analytics\",\"faqGeneration\":\"FAQ Generator\",\"personTracking\":\"Person Tracking\",\"promptTracking\":\"Daily Prompt Tracking\",\"citationIntelligence\":\"Citation Intelligence\",\"locationTracking\":\"Location Tracking\",\"categoryTracking\":\"Category Tracking\",\"productTracking\":\"Product Tracking\",\"mcpServer\":\"MCP Server\",\"mediaLists\":\"Media Lists\",\"coverageReports\":\"Coverage Reports\"},\"signup\":\"Sign up free\",\"signupShort\":\"Sign up free\",\"nav\":{\"solutions\":\"Solutions\",\"resources\":\"Resources\",\"groups\":{\"track\":\"Track\",\"score\":\"Score\",\"optimize\":\"Optimize\",\"freeTools\":\"Free Tools\",\"guides\":\"Guides\",\"explore\":\"Explore\",\"prTeams\":\"For PR teams\"},\"prTeams\":{\"blurb\":\"Plan the pitch. Prove the coverage.\",\"footerLink\":\"See the PR workflow\"}
2,\"descriptions\":{\"aiVisibilityReport\":\"See how AI models talk about your brand across ChatGPT, Gemini, Perplexity, and more.\",\"aiReadinessAudit\":\"Audit your website for AI crawlability, structured data, and citation readiness.\",\"aiPlacementValueScore\":\"Score any domain's combined organic authority and AI accessibility for smarter placement decisions.\",\"aiPlacementQualityScore\":\"Score individual placements, real or hypothetical, for AI citation quality on the page.\",\"citationOptimizer\":\"See why ChatGPT, Google and Claude do or don't cite a page, with a specific fix for every gap. Scoring is free, then rewrite.\",\"aiTrafficAnalytics\":\"Track real-time visits from AI assistants and see which pages they crawl.\",\"faqGeneration\":\"Generate FAQ schema markup from real questions people ask about your topics.\",\"forAgencies\":\"Understand the web searches behind AI answers and optimize for grounding.\",\"forPRFirms\":\"Measure how earned media placements influence AI-generated brand mentions.\",\"bots\":\"Live directory of AI bots and crawlers visiting websites across the web.\",\"blog\":\"Insights, guides, and research on AI visibility and search optimization for PR and SEO professionals.\",\"personTracking\":\"See what AI says about a person, scored against a neutral baseline every day.\",\"promptTracking\":\"Your prompts run every day; KPIs, backing metrics, and raw data.\",\"citationIntelligence\":\"Every source AI uses, classified, including hidden earned media.\",\"locationTracking\":\"Share of voice per city or country, comparable across markets.\",\"categoryTracking\":\"Who AI names in a whole market, ranked by share of answers.\",\"productTracking\":\"How AI recommends your products, anchored to real product pages.\",\"mcpServer\":\"Query your account from Claude or any MCP client.\",\"services\":\"Fractional support, agentic commerce, and done-for-you rewriting.\",\"mediaLists\":\"Build a media list of outlets AI can see.\",\"coverageReports\":\"Prove your coverage shows up in AI answers.\"},\"solutionsItems\":{\"forAgencies\":\"For SEO \u0026 Marketing Agencies\",\"forPRFirms\":\"For PR \u0026 Comms\",\"services\":\"Services\"},\"freeTools\":{\"promptGenerator\":{\"label\":\"AI Visibility Prompt Generator\",\"description\":\"Generate tailored prompts buyers use when asking AI about your category.\"},\"personalAiVisibilityReport\":{\"label\":\"Personal AI Visibility Report\",\"description\":\"See what ChatGPT, Gemini, Claude, and Perplexity say about a person.\"},\"aiAccessChecker\":{\"label\":\"Is This Site Blocking AI?\",\"description\":\"Check any website to see if it's blocking AI.\"},\"commonCrawlRankChecker\":{\"label\":\"Common Crawl Rank Checker\",\"description\":\"Check a domain's authority in the web graph that trains AI.\"},\"reliabilityCalculator\":{\"label\":\"How Reliable is Your AI Visibility Data?\",\"description\":\"Estimate how reliable your AI visibility data is based on sample size.\"},\"aiAnalyticsLive\":{\"label\":\"AI Analytics Demo\",\"description\":\"Real AI citation traffic from our own site, tracked live by Spyglasses analytics.\"}},\"guides\":{\"agencies\":{\"label\":\"For marketing agencies\",\"description\":\"Six workflows for running an AI search practice.\"},\"pr\":{\"label\":\"For PR and comms teams\",\"description\":\"Nine workflows for earned media in AI answers.\"},\"inHouse\":{\"label\":\"For in-house marketing\",\"description\":\"Eight workflows for treating AI as a channel.\"},\"content\":{\"label\":\"For content teams\",\"description\":\"Five workflows for getting content cited by AI.\"}}}},\"tableOfContents\":{\"title\":\"On this page\"},\"loading\":\"Loading...\",\"actions\":\"Actions\",\"settings\":\"Settings\",\"edit\":\"Edit\",\"delete\":\"Delete\",\"notFound\":\"Not found\",\"error\":\"Error\",\"next\":\"Next\",\"previous\":\"Previous\",\"back\":\"Back\",\"save\":\"Save\",\"saving\":\"Saving...\",\"upgrade\":{\"label\":\"Premium Feature\",\"description\":\"Upgrade to {plan} to access this feature\",\"cta\":\"Upgrade to {plan}\"},\"timeRanges\":{\"live\":\"Live\",\"24h\":\"Last 24 hours\",\"7d\":\"Last 7 days\",\"30d\":\"Last 30 days\",\"90d\":\"Last 90 days\",\"custom\":\"Custom range\"},\"dateFilters\":{\"selectDateRange\":\"Select date range\",\"resetFilters\":\"Reset\",\"apply\":\"Apply\",\"liveData\":\"Live data updating\"}},\"emailPreferences\":{\"title\":\"Email Preferences\",\"description\":\"Update which emails you'd like to receive from Spyglasses.\",\"managingFor\":\"Managing preferences for {email}
2\",\"invalidToken\":\"This link is invalid or has expired. If you're logged in, you can manage preferences from your account settings.\",\"unsubscribeAll\":\"Unsubscribe from all marketing emails\",\"transactionalNote\":\"You'll still receive important account and billing notifications.\",\"newsletter\":{\"title\":\"Monthly newsletter\",\"description\":\"Product updates, tips, and AI traffic insights, once a month.\"},\"onboarding\":{\"title\":\"Onboarding guidance\",\"description\":\"Getting-started tips tailored to your role, sent until your account is set up.\"},\"notifications\":{\"saved\":\"Preferences updated\",\"error\":\"Could not update preferences\"}},\"recipientUnsubscribe\":{\"title\":\"Unsubscribe from these emails\",\"description\":\"We'll remove your email address from the report recipient list below.\",\"emailLabel\":\"Email\",\"confirmButton\":\"Confirm unsubscribe\",\"footnote\":\"If you have a Spyglasses account, you can manage all your email settings by logging in.\",\"invalidTitle\":\"Link no longer valid\",\"invalidBody\":\"This unsubscribe link is invalid or has expired. Contact the team that sent you the report if you want off the list.\",\"successTitle\":\"You've been unsubscribed\",\"successBody\":\"{email} has been removed from the recipient list for {target}.\",\"scope\":{\"aiReport\":\"AI Visibility Report for\",\"projectWeekly\":\"Weekly summary for project\",\"projectGoal\":\"Project goal alerts for\",\"wrongDomain\":\"Wrong-domain alerts for\",\"negativeMessage\":\"Negative message alerts for\"},\"notifications\":{\"success\":\"You've been unsubscribed\",\"error\":\"Could not process the unsubscribe request\"}},\"newsletterConfirm\":{\"title\":\"Confirm your newsletter subscription\",\"description\":\"Press the button to start getting the Spyglasses newsletter at {email}.\",\"confirmButton\":\"Confirm subscription\",\"footnote\":\"Every issue has a link to unsubscribe, so you can leave at any time.\",\"successTitle\":\"You're subscribed\",\"successBody\":\"{email} is on the list. Expect product updates and research from Spyglasses about once a month.\",\"invalidTitle\":\"This link isn't valid\",\"invalidBody\":\"We couldn't read this confirmation link. Sign up again and we'll send you a new one.\",\"expiredTitle\":\"This link has expired\",\"expiredBody\":\"Confirmation links work for 7 days. Sign up again and we'll send you a new one.\",\"signUpAgain\":\"Sign up again\",\"notifications\":{\"success\":\"You're subscribed\",\"error\":\"Could not confirm your subscription. Please try again.\"}},\"projects\":{\"detail\":{\"notFound\":\"Project not found.\",\"backToProjects\":\"Back to projects\",\"meta\":{\"overview\":\"Project\",\"goals\":\"Project goals\",\"prompts\":\"Project prompts\",\"personas\":\"Project personas\",\"settings\":\"Project settings\"},\"types\":{\"SEO\":\"SEO\",\"PR\":\"PR\",\"GENERAL\":\"General\"},\"statuses\":{\"ACTIVE\":\"Active\",\"COMPLETED\":\"Completed\",\"ARCHIVED\":\"Archived\"},\"platforms\":{\"chatgpt\":\"ChatGPT\",\"gemini\":\"Gemini\",\"googleAiOverview\":\"Google AI Overviews\",\"claude\":\"Claude\",\"perplexity\":\"Perplexity\"},\"stages\":{\"awareness\":\"Awareness\",\"consideration\":\"Consideration\",\"decision\":\"Decision\"},\"accuracy\":{\"reliable\":\"Reliable\",\"directional\":\"Directional\",\"exploratory\":\"Exploratory\"},\"goalTypes\":{\"label\":{\"PAGE_GROUP\":\"Page group\",\"PUBLISHER\":\"Publisher\",\"ARTICLE\":\"Article\",\"AUTHOR\":\"Author\",\"COVERAGE_GROUP\":\"Coverage group\",\"PITCH_LIST\":\"Pitch list\"},\"count\":{\"PAGE_GROUP\":\"{count, plural, one {# page group} other {# page groups}}\",\"PUBLISHER\":\"{count, plural, one {# publisher} other {# publishers}}\",\"ARTICLE\":\"{count, plural, one {# article} other {# articles}}\",\"AUTHOR\":\"{count, plural, one {# author} other {# authors}}\",\"COVERAGE_GROUP\":\"{count, plural, one {# coverage group} other {# coverage groups}}\",\"PITCH_LIST\":\"{count, plural, one {# pitch list} other {# pitch lists}}\"}},\"export\":{\"failedWithReason\":\"Could not export: {reason}\",\"unknownError\":\"Unknown error\",\"pdfTitle\":\"Project Report - {name}
2\",\"readyPdf\":\"Project exported as PDF\",\"readyPptx\":\"Project exported as PowerPoint\",\"slow\":\"The export is taking longer than expected. Try again in a few minutes.\",\"failed\":\"Could not export the project. Try again.\"},\"header\":{\"allProjects\":\"All projects\",\"untitled\":\"{type} project\",\"typeProject\":\"{type} project\",\"startedToday\":\"Started today\",\"since\":\"Since {date}\",\"range\":\"{start} to {end}\",\"firstRun\":\"First run in progress\",\"runsDaily\":\"Runs daily\",\"runsStopped\":\"Daily runs stopped\",\"viewMetrics\":\"View metrics\",\"viewBrands\":\"View brands\",\"citations\":\"Citations\",\"export\":\"Export\",\"exporting\":\"Exporting\",\"exportPdf\":\"Project report (PDF)\",\"exportPptx\":\"Project report (PowerPoint)\",\"complete\":\"Complete\",\"reactivate\":\"Reactivate\",\"completeTitle\":\"Complete project\",\"reactivateTitle\":\"Reactivate project\",\"completeBody\":\"This marks the project completed and sets the end date to today. Its daily prompt runs stop. You can reactivate it later.\",\"completeBodyPersonas\":\"This marks the project completed and sets the end date to today. Its daily prompt runs stop, including the runs as its personas. You can reactivate it later.\",\"reactivateBody\":\"This reactivates the project and resumes its daily prompt runs. The end date is cleared.\",\"cancel\":\"Cancel\"},\"banners\":{\"firstRunTitle\":\"Generating your first day of data\",\"firstRunBody\":\"Running every prompt on {platforms}. This usually takes a few minutes, and results appear here as they land.\",\"firstRunBodyPersonas\":\"Running every prompt on {platforms}, plus the first answers as your {count, plural, one {persona} other {# personas}}. This usually takes a few minutes, and results appear here as they land.\",\"completedTitle\":\"Completed on {date}\",\"completedBody\":\"Daily runs stopped and the results stay as they were on that day. Reactivate the project to resume tracking.\",\"personaFirstAnswersTitle\":\"First answers today\",\"personaFirstAnswersBody\":\"{labels} {count, plural, one {was} other {were}} added today. The first answers arrive once today's run as {count, plural, one {this persona} other {them}} finishes, and show in \u003clink\u003ePerspectives\u003c/link\u003e.\"},\"sections\":{\"label\":\"Project sections\",\"overview\":\"Overview\",\"goals\":\"Goals\",\"prompts\":\"Prompts\",\"personas\":\"Personas\",\"settings\":\"Settings\"},\"overview\":{\"docsLabel\":\"Read the full definition\",\"impact\":{\"title\":\"Impact\",\"explainer\":\"How much of what AI cites for this project's prompts comes from your tracked publishers, articles and coverage, and how many of those citations produced a brand mention in the answer.\",\"explainerSeo\":\"How much of what AI cites for this project's prompts comes from your tracked page groups, and how many of those citations produced a brand mention in the answer.\",\"noGoals\":\"Impact measures what your goals contribute to AI answers, so it starts with a goal. Until then, this project's visibility is on the metrics page.\",\"viewMetrics\":\"View metrics\",\"pending\":\"Impact appears once the first run finishes and citations come in.\",\"citationsLink\":\"Citations\",\"influenceShare\":\"Share of goal influence\",\"influenceBody\":\"{influenced} of {total} citations for this project's prompts came from your goals.\",\"influenceBodySeo\":\"{influenced} of {total} citations for this project's prompts came from your page groups.\",\"attributed\":\"Attributed brand mentions\",\"attributedShare\":\"{share} of matched citations produced a brand mention in the answer.\",\"attributedBody\":\"Matched citations that produced a brand mention in the answer.\",\"viaAio\":\"Includes {count} from AI Overviews, which name the brand without crediting sources one by one.\",\"nearMisses\":\"Near misses\",\"hiddenEarnedMedia\":\"{count, plural, one {# names you without a link} other {# name you without a link}}\",\"readNotCited\":\"{count} read but not cited\",\"appearedInSearch\":\"{count} appeared in search\",\"optimizer\":\"Improve a page with the Citation Optimizer\"},\"goals\":{\"title\":\"Goals\",\"explainer\":\"Each goal is a publisher, article, author, coverage group or pitch list. A goal is hit the first time AI cites it for this project's prompts.\",\"explainerSeo\":\"Each goal is a group of pages on your site. A goal is hit the first time AI cites one of its pages for this project's prompts.\",\"empty\":\"No goals yet. Add one to see which pages or placements AI cites for these prompts.\",\"addGoal\":\"Add a goal\",\"manage\":\"Manage\",\"hitUnit\":\"goals hit\",\"progressLabel\":\"{hit} of {total} goals hit\",\"cited\":\"{count} cited\",\"missedShort\":\"Missed\",\"notYet\":\"Not yet\",\"mostCited\":\"Most cited: \u003cstrong\u003e{name}\u003c/strong\u003e ({count, plural, one {# citation} other {# citations}})\",\"missed\":\"{count, plural, one {# missed when the project ended} other {# missed when the project ended}}\"},\"prompts\":{\"title\":\"Prompts\",\"explainer\":\"The prompts this project runs every day on each AI platform. Their answers and citations feed the goals and impact above.\",\"empty\":\"No prompts yet. Nothing runs for this project and no goal can be checked until you add one.\",\"addPrompts\":\"Add prompts\",\"manage\":\"Manage\",\"runDaily\":\"run daily\",\"tracked\":\"tracked\",\"paused\":\"{count} paused: out of credits\"},\"coverage\":{\"title\":\"Coverage\",\"explainer\":\"Coverage scores how well the prompt mix spans your topics, funnel stages and prompt frameworks. Data accuracy is the margin of error from 30 daily runs of each prompt.\",\"empty\":\"Scored once the project has prompts.\",\"audit\":\"Audit\",\"unit\":\"/ 100 coverage\",\"scoreLabel\":\"Coverage score {score} of 100\",\"unavailable\":\"The coverage score isn't available yet.\",\"margin\":\"±{margin}% margin\"},\"personas\":{\"title\":\"Personas\",\"explainer\":\"Synthetic buyers this project's discovery prompts are also asked as, once a day each. Their answers show in Perspectives and never change the headline metrics.\",\"empty\":\"Ask these prompts as your buyers, like a startup CFO or an IT director, and see who AI recommends to each.\",\"cta\":\"Set up personas\",\"completed\":\"Nothing runs on a completed project. Reactivate it to add personas.\",\"ctaAdd\":\"Add personas\",\"manage\":\"Manage\",\"unit\":\"{count, plural, one {persona} other {personas}}\",\"runsPerDay\":\"\u003cstrong\u003e{count}\u003c/strong\u003e {count, plural, one {persona run a day} other {persona runs a day}}\",\"stopped\":\"Daily runs stopped with the project.\",\"firstAnswersToday\":\"First answers today\",\"someAddedToday\":\"{count} added today, first answers today\",\"openPerspectives\":\"Open Perspectives\"}},\"goalsTab\":{\"title\":\"Goals\",\"empty\":\"Add a publisher, article, author, coverage group or pitch list to see when AI cites it for these prompts.\",\"emptySeo\":\"Add a page group to see when AI cites your own pages for these prompts.\",\"summary\":\"{hit} of {total} goals hit. Goals are checked with every daily run.\",\"summaryWithCitations\":\"{hit} of {total} goals hit. Together they matched {influenced} of this project's {citations} citations.\",\"addGoal\":\"Add goal\",\"count\":{\"label\":\"Count\",\"all\":\"All citations\",\"allTitle\":\"Every citation your goals matched\",\"attributed\":\"Brand-attributed\",\"attributedTitle\":\"Only matched citations that produced an attributable brand mention\"},\"sort\":{\"label\":\"Sort\",\"default\":\"Default\",\"name\":\"Name\",\"aipvs\":\"AIPVS\"},\"columns\":{\"status\":\"Status\",\"goal\":\"Goal\",\"aipvs\":\"AIPVS\",\"citations\":\"Citations\",\"attributed\":\"Attributed\"},\"aipvsHelpLabel\":\"What is AIPVS?\",\"aipvsHelp\":\"AI Placement Value Score, 0 to 100: how much a placement on this publisher is worth for AI visibility, with a tier from Exceptional to Limited.\",\"docsLabel\":\"Read the full definition\",\"status\":{\"hit\":\"Hit\",\"missed\":\"Missed\",\"pending\":\"Pending\"},\"unknownTarget\":\"Unknown\",\"deletedGroup\":\"Deleted group\",\"deletedList\":\"Deleted list\",\"itemCount\":{\"COVERAGE_GROUP\":\"{name} ({count, plural, one {# URL} other {# URLs}})\",\"PITCH_LIST\":\"{name} ({count, plural, one {# publisher} other {# publishers}})\"},\"firstHit\":\"First hit {date}\",\"viewCitation\":\"View citation\",\"noScore\":\"No score\",\"citationsTitle\":\"See which prompts and platforms produced these citations\",\"citationCount\":\"{count, plural, one {# citation} other {# citations}}\",\"attributedCount\":\"{count} attributed\",\"shareOfTotal\":\"{share} of project total\",\"noneYet\":\"None yet\",\"remove\":\"Remove goal {name}\",\"showFewer\":\"Show fewer\",\"showAll\":\"Show all {count} goals\"},\"promptsTab\":{\"title\":\"Prompts\",\"introActive\":\"{count, plural, one {# prompt runs} other {# prompts run}} daily on {platforms}. Their citations are what goals are checked against.\",\"introEnded\":\"{count, plural, one {# prompt ran} other {# prompts ran}} daily until the project ended.\",\"introPersonas\":\"Each one is also asked once a day as the project's {count, plural, one {persona} other {# personas}}, on every platform except AI Overviews.\",\"coverage\":{\"title\":\"Coverage and data accuracy\",\"helpLabel\":\"What is coverage?\",\"help\":\"Coverage scores how well the prompt mix spans your topic matrix, funnel stages and prompt frameworks. Data accuracy is the margin of error from 30 daily runs of each prompt.\",\"accuracy\":\"\u003cstrong\u003e{count}\u003c/strong\u003e {count, plural, one {prompt} other {prompts}} × 30 daily runs = \u003cstrong\u003e{observations}\u003c/strong\u003e observations a month; \u003cstrong\u003e±{margin}%\u003c/strong\u003e margin of error at 90% confidence.\",\"baselineOnly\":\"These numbers cover the baseline runs only. Persona answers are measured separately in Perspectives and never change them.\"}},\"personasTab\":{\"title\":\"Personas\",\"intro\":\"Every discovery prompt in this project can also run once a day as each of your personas, with a short first-person context in front of the unchanged question. Answers show in Perspectives; headline metrics stay on the baseline.\",\"emptyTitle\":\"Ask this project's prompts as your buyers\",\"emptyBody\":\"Add personas and each discovery prompt here also runs once a day as that buyer, so you can see who AI recommends to a startup CFO compared with an IT director at a mid-market company. Start by creating personas for this brand.\",\"managePersonas\":\"Manage personas\",\"completed\":\"No personas ran on this project. Nothing runs on a completed project, so personas can be added after you reactivate it.\",\"emptyBodyReady\":\"Add personas and each discovery prompt here also runs once a day as that buyer, so you can see who AI recommends to a startup CFO compared with an IT director at a mid-market company.\",\"readyToAdd\":\"{count, plural, one {# persona ready to add.} other {# personas ready to add.}} You'll see the change to your daily runs before you save.\",\"addPersonas\":\"Add personas\",\"openPerspectives\":\"Open Perspectives\",\"editPersonas\":\"Edit personas\",\"perspectives\":\"Perspectives\",\"addedToday\":\"Added today\",\"answeringSince\":\"Answering since {date}\",\"archivedLine\":\"{hasDate, select, yes {{label} was archived on {date} and stopped running here.} other {{label} was archived and stopped running here.}} Its answers stay in \u003clink\u003ePerspectives\u003c/link\u003e.\",\"completedWithPersonas\":\"Nothing runs on a completed project, so these personas stopped with it. Reactivate the project to resume their daily runs.\",\"confirmToSave\":\"Confirm the extra runs above to save.\",\"cancel\":\"Cancel\",\"save\":\"Save personas\",\"saved\":\"Personas saved.\",\"savedAdded\":\"{count, plural, one {Added # persona. First answers arrive today.} other {Added # personas. First answers arrive today.}}\",\"savedRemoved\":\"{count, plural, one {Removed # persona. Its runs stop after today.} other {Removed # personas. Their runs stop after today.}}\",\"errors\":{\"credits\":\"You don't have enough credits for these persona runs.\",\"invali
2d\":\"One of these personas can't be added. It may have been archived. Refresh the page and try again.\",\"save\":\"Couldn't save the personas. Try again.\"},\"allowance\":{\"runsPerDay\":\"{count, plural, one {persona run a day on this project} other {persona runs a day on this project}}\",\"howTheyCount\":\"How persona runs count\",\"explainer\":\"Each prompt asked as one persona is one tracked prompt, like a location. A persona that already asks a prompt on another project isn't counted twice. Creating and editing personas is free.\",\"readMore\":\"Read the full definition\",\"unlimited\":\"Unlimited on your plan\",\"meterLabel\":\"{inUse} of {included} tracked prompts in use\",\"inUse\":\"\u003cstrong\u003e{inUse} of {included}\u003c/strong\u003e in use on your plan\",\"noAllowance\":\"{inUse} tracked prompts in use, billed from credits\"}},\"settingsTab\":{\"details\":{\"title\":\"Details\",\"edit\":\"Edit details\",\"name\":\"Name\",\"noName\":\"No name\",\"type\":\"Type\",\"typeValue\":\"{type} project\",\"description\":\"Description\",\"noDescription\":\"No description\",\"started\":\"Started\",\"ended\":\"Ended\",\"stillRunning\":\"Still running\"},\"edit\":{\"title\":\"Edit project details\",\"description\":\"The name and description show on the projects list and in project reports.\",\"name\":\"Name\",\"descriptionLabel\":\"Description\",\"cancel\":\"Cancel\",\"save\":\"Save\",\"saved\":\"Project details saved.\",\"failed\":\"Could not save the project details. Try again.\"},\"annotations\":{\"title\":\"Annotations ({count})\",\"description\":\"Events on this project, shown as markers on its charts.\",\"empty\":\"No annotations yet.\",\"auto\":\"Auto\"},\"delete\":{\"title\":\"Delete project\",\"description\":\"Permanently deletes this project and its goals. Annotations stay on your charts.\",\"button\":\"Delete project\",\"confirmTitle\":\"Delete this project?\",\"confirmBody\":\"This permanently deletes the project and all its goals. Annotations are kept. This can't be undone.\",\"cancel\":\"Cancel\",\"confirm\":\"Delete\",\"done\":\"Project deleted.\",\"failed\":\"Could not delete the project. Try again.\"}}},\"goals\":{\"title\":\"Add goal\",\"titleSeo\":\"Add a page-group goal\",\"kindLabel\":\"What kind of goal?\",\"kindSeo\":\"SEO goal, a group of pages on your site\",\"kindPr\":\"PR goal, coverage you earn elsewhere\",\"becomesSeo\":\"This project becomes an SEO project when you add the goal.\",\"becomesPr\":\"This project becomes a PR project when you add the goal.\",\"pageGroupLabel\":\"Page group\",\"pageGroupPlaceholder\":\"Select a page group\",\"pageGroupHint\":\"The goal is hit when any page in this group is cited in an AI answer.\",\"pageGroupRequired\":\"Select a page group\",\"pageGroupEmpty\":\"This property has no page groups yet.\",\"pageGroupEmptyLink\":\"Group your pages first.\"},\"notifications\":{\"title\":\"Notifications\",\"description\":\"Choose who is emailed for this project. Goal alerts fire the first time a goal is cited; the weekly summary recaps progress every Monday. Only the people toggled on are notified.\",\"goal\":\"Goal\",\"weekly\":\"Weekly\",\"placeholder\":\"[email protected]\",\"add\":\"Add\",\"remove\":\"Remove\",\"errors\":{\"invalid\":\"Please enter a valid email address.\",\"duplicate\":\"That email is already on the list.\",\"save\":\"Could not save notification settings\"}},\"personaPicker\":{\"title\":\"Ask as personas\",\"optional\":\"Optional\",\"description\":\"See how AI answers this project's prompts when a specific buyer asks.\",\"explainers\":{\"runs\":\"Every discovery prompt here also runs once as each persona you choose, every day. First answers arrive today.\",\"perspectives\":\"Their answers appear in Perspectives, next to your baseline.\",\"headline\":\"Your headline numbers stay the same. They only count answers without a persona.\"},\"clearGroup\":\"Clear {group}\",\"selectGroup\":\"Select all {group}\",\"platforms\":\"Persona answers come from {platforms}. AI Overviews runs without personas.\",\"archivedHidden\":\"{count, plural, one {# archived persona isn't listed.} other {# archived personas aren't listed.}}\",\"managePersonas\":\"Manage personas\",\"alsoOn\":\"Also on {projects}\",\"untitledProject\":\"Untitled project\",\"status\":{\"firstAnswersToday\":\"First answers today\",\"runs\":\"Runs daily here\",\"stops\":\"Stops after today\",\"starts\":\"Starts today\"},\"allowance\":{\"heading\":\"Daily runs\",\"unavailable\":\"We couldn't check your allowance right now. Try again in a moment.\",\"untitledProject\":\"Untitled project\",\"summary\":{\"none\":\"No change to your daily runs\",\"swapped\":\"±0 runs/day: {charged, plural, one {# new run} other {# new runs}} billed, ≈ {credits, plural, one {# credit} other {# credits}} now\",\"removed\":\"-{runs} runs/day\",\"included\":\"+{runs} runs/day, all included in your plan\",\"billed\":\"+{runs} runs/day: {included} included, {billed} billed ≈ {credits, plural, one {# credit} other {# credits}} per 30 days\"},\"meterLabel\":\"{inUse} of {included} tracked prompts after saving\",\"afterSaving\":\"\u003cstrong\u003e{after}\u003c/strong\u003e tracked prompts after saving (now {before})\",\"includedInPlan\":\"{included} included in your plan\",\"unlimited\":\"Your plan includes unlimited tracked prompts, so every persona run is included.\",\"answersStay\":\"Answers so far stay in Perspectives.\",\"shared\":\"{count, plural, one {# run isn't counted twice: some prompts here already run in {projects} with the same personas.} other {# runs aren't counted twice: some prompts here already run in {projects} with the same personas.}}\",\"sharedUnnamed\":\"{count, plural, one {# run isn't counted twice: some prompts here already run in another project with the same personas.} other {# runs aren't counted twice: some prompts here already run in another project with the same personas.}}\",\"over\":{\"title\":\"This goes {over} over the {included}
2 tracked prompts in your plan\",\"titleNoAllowance\":\"These persona runs use credits\",\"bodySwap\":\"The new personas' runs start a 30-day cycle, charged when you save. Your cost per 30 days after that doesn't change.\",\"body\":\"Each extra run a day uses {rate, plural, one {# credit} other {# credits}} per 30 days, so saving adds about {credits, plural, one {# credit} other {# credits}} per 30 days. Choose fewer personas to stay within your plan.\",\"bodyNoAllowance\":\"Your plan has no included tracked prompts, so each run a day uses {rate, plural, one {# credit} other {# credits}} per 30 days. Saving adds about {credits, plural, one {# credit} other {# credits}} per 30 days.\",\"confirm\":\"Use {credits, plural, one {# credit} other {# credits}} now for the first 30 days of {units, plural, one {# new run} other {# new runs}} a day\",\"insufficient\":\"The first 30 days of these runs need {required, plural, one {# credit} other {# credits}}, and you have {balance}.\",\"buyCredits\":\"Buy credits\"},\"selectPrompts\":\"Choose prompts above to see the change to your daily runs.\"},\"empty\":{\"title\":\"You don't have any personas yet\",\"body\":\"Personas are free to create. Generate a stakeholder panel from your customer segments in a few seconds, then come back and choose who this project asks as.\",\"generate\":\"Generate personas\",\"create\":\"Create a persona\",\"later\":\"You can save this project now and add personas later.\"},\"confirmToCreate\":\"Confirm the extra persona runs above to create this project.\"},\"personaIndicator\":{\"label\":\"Personas\",\"ariaLabel\":\"{count, plural, one {# persona} other {# personas}}: {labels}\",\"add\":\"Add personas\",\"none\":\"None\",\"askedAs\":\"{count, plural, one {Asked as # persona} other {Asked as # personas}}\",\"firstAnswersToday\":\"First answers today\",\"runsPerDay\":\"{runs, plural, one {# persona run a day.} other {# persona runs a day.}}\",\"runsPerDayPending\":\"{runs, plural, one {# persona run a day.} other {# persona runs a day.}} {pending} added today; first answers arrive today.\",\"manage\":\"Manage personas\"}},\"contact\":{\"description\":\"Contact the Spyglasses team about AI visibility, pricing, partnerships, or technical support for your agency or PR firm.\",\"form\":{\"email\":\"Email\",\"message\":\"Message\",\"name\":\"Name\",\"notifications\":{\"error\":\"We are sorry, but we were unable to send your message. Please try again later.\",\"success\":\"Your message has been sent successfully. We're looking forward to speaking with you!\"},\"submit\":\"Send message\",\"interest\":{\"label\":\"What are you interested in?\",\"placeholder\":\"Choose a topic\",\"options\":{\"general\":\"General question\",\"fractionalSupport\":\"Fractional AI visibility support\",\"agenticCommerce\":\"Agentic commerce implementation\",\"aiSeoRewriting\"
2:\"AI-focused SEO \u0026 rewriting\",\"other\":\"Something else\"}}},\"title\":\"Contact us\"},\"documentation\":{\"shortTitle\":\"Documentation\",\"title\":\"How-to guides for setting up Spyglasses to track your AI traffic\",\"aiActions\":{\"copy\":\"Copy as Markdown\",\"copied\":\"Copied!\",\"viewMarkdown\":\"View Markdown\",\"ask\":\"Ask {tool}\"}},\"faq\":{\"description\":\"Everything you need to know about Spyglasses.\",\"title\":\"Frequently asked questions\",\"home\":{\"items\":{\"0\":{\"question\":\"What is Spyglasses?\",\"answer\":\"Spyglasses is a white-labeled AI visibility platform for PR firms and marketing agencies. It helps you measure how AI search represents your clients' brands, prove the impact of your earned media and content work, and deliver client-ready reports and presentations.\"},\"1\":{\"question\":\"How is Spyglasses different from other AI visibility tools?\",\"answer\":\"Most AI visibility tools track prompt mentions and stop there. Spyglasses focuses on the deterministic parts of the AI citation pipeline that you can actually influence: search rankings, technical signals, content quality, and publisher authority. The result is actionable intelligence, not just dashboards.\"},\"2\":{\"question\":\"How does Spyglasses help PR firms?\",\"answer\":\"Spyglasses shows PR firms which media placements deliver the most value in AI search. The AI Placement Value Score quantifies each placement's impact on AI citations. Citation Intelligence reveals which publishers influence AI responses. PR Projects track when placements become AI citations over time.\"},\"3\":{\"question\":\"How does Spyglasses help marketing agencies?\",\"answer\":\"Spyglasses gives marketing agencies the tools to build an AEO/GEO practice. The AI Mention Pipeline Optimizer shows where content ranks in the AI pipeline and where it falls out. Grounding Search Rankings reveal the queries AI uses to find content. All exports are white-labeled for client delivery.\"},\"4\":{\"question\":\"What does the AI Visibility Report do?\",\"answer\":\"The AI Visibility Report audits how ChatGPT, Google AI Overviews, Perplexity, Claude, and Gemini describe a brand. It compares AI responses to actual website messaging, scores brand consistency, highlights gaps and misstatements, and provides specific recommendations. Use it to prospect new clients or benchmark existing ones.\"},\"5\":{\"question\":\"How does AI Traffic Analytics work?\",\"answer\":\"AI Traffic Analytics detects when AI assistants and crawlers visit your clients' pages in real time using server-side detection. It tracks which AI platform visited, which pages they accessed, citation patterns over time, and AI-referred human traffic. No client-side JavaScript required.\"},\"6\":{\"question\":\"Which AI platforms does Spyglasses track?\",\"answer\":\"Spyglasses tracks ChatGPT, Google AI Overviews, Gemini, Perplexity, Claude, Microsoft Copilot, and over 600 other AI crawlers. Traffic is classified by platform and intent. Clickthroughs from Google AI Overviews and AI Mode are tracked separately.\"},\"7\":{\"question\":\"Are reports and exports white-labeled?\",\"answer\":\"Yes. Agency and Enterprise plans include white-labeled reports, presentations, and shareable web pages. You can deliver AI visibility insights to clients under your own brand. Brand plan users get standard Spyglasses-branded exports.\"},\"8\":{\"question\":\"How do I get started?\",\"answer\":\"Run a free AI Visibility Report to see how AI represents any brand. No signup required. When you're ready to measure the full impact of your AI visibility work, sign up for a free trial to access the complete suite of tools, including citation tracking, pipeline optimization, and client-ready reporting.\"},\"9\":{\"question\":\"What does Spyglasses cost?\",\"answer\":\"Brand plans start at ${brandPrice}/mo for single properties with {brandPrompts} tracked prompts. Agency Core plans start at ${agencyPrice}/mo with white-labeled exports, multiple properties, and {agencyPrompts} tracked prompts. We also have a credit-based pay-as-you-go plan with 
2no subscription needed, starting at ${minPurchase}.\"}}}},\"mail\":{\"common\":{\"troubleLinks\":\"Having trouble? Copy and paste this link into your browser:\",\"otp\":\"Your verification code:\"},\"emailVerification\":{\"subject\":\"Verify Your Spyglasses Account\",\"greeting\":\"Hi {name}! 👋\",\"body\":\"You're just one step away from discovering how AI models represent your brand across ChatGPT, Google AI Overviews, and Gemini. Click the button below to verify your email and unlock AI visibility insights that will transform your content strategy.\",\"confirmEmail\":\"Verify My Email\",\"securityNote\":{\"title\":\"Security First\",\"body\":\"This verification ensures your AI visibility data stays secure and helps us protect your account from unauthorized access.\"},\"footer\":\"Questions? Reply to this email or reach out at [email protected]\"},\"forgotPassword\":{\"subject\":\"Reset Your Spyglasses Password\",\"body\":\"No worries, it happens to the best of us! Click the button below to create a new password and get back to your AI visibility insights.\",\"resetPassword\":\"Reset My Password\",\"quickAccess\":{\"title\":\"Quick Access\",\"body\":\"This secure link expires in 1 hour for your protection. Need help? Just reply to this email.\"},\"footer\":\"If you didn't request this reset, you can safely ignore this email. Your password remains unchanged.\"},\"magicLink\":{\"subject\":\"Your Spyglasses Login Link\",\"greeting\":\"Ready to check your AI visibility? 🚀\",\"body\":\"Here's your secure login link to access your Spyglasses dashboard and see how AI models are representing your brand across ChatGPT, Google AI Overviews, and Gemini.\",\"login\":\"Access My Dashboard\",\"secureAccess\":{\"title\":\"Secure Access\",\"body\":\"This link works once and expires in 10 minutes for maximum security. No password needed!\"},\"footer\":\"This login was requested from your account. If it wasn't you, please contact us immediately.\"},\"newsletterSignup\":{\"subject\":\"Confirm your Spyglasses newsletter subscription\",\"heading\":\"Confirm your subscription\",\"body\":\"Someone asked to get the Spyglasses newsletter at this address. If that was you, confirm below and we'll add you to the list.\",\"whatToExpect\":\"Each issue covers what's new in Spyglasses and what we're learning about how AI search treats brands. It arrives about once a month.\",\"confirm\":\"Confirm subscription\",\"footer\":\"This link works for 7 days. If you didn't sign up, ignore this email and you won't be added.\"},\"organizationInvitation\":{\"subject\":\"You're Invited to Join a Spyglasses Team! 🤝\",\"headline\":\"You've been invited to join \u003cstrong\u003e{organizationName}\u003c/strong\u003e\",\"body\":\"Your team is using Spyglasses to dominate AI search results and track how AI models represent your brand across ChatGPT, Google AI Overviews, and Gemini. Join them to collaborate on AI visibility strategy and content optimization.\",\"join\":\"Join the Team\",\"collaboration\":{\"title\":\"Team AI Visibility\",\"body\":\"Work together on discovery queries, competitor tracking, and content strategy. Share insights across your organization and maintain consistent brand representation in AI responses.\"},\"sharedInsights\":{\"title\":\"Shared Insights\",\"body\":\"Access team AI Visibility Reports, historical metrics, grounding search recommendations, and shared AI traffic analytics to make data-driven content decisions together.\"},\"footer\":\"This invitation is for {organizationName}. Questions about this invite? Contact the team or reach out to [email protected]\"},\"onboardingWelcome\":{\"subject\":\"Thanks for signing up for Spyglasses!\",\"greeting\":\"Hi {name}!\",\"body\":\"I'm Jim, the founder of Spyglasses, and I wanted to personally reach out to thank you for joining us. You've just taken a huge step toward dominating AI search results and understanding how AI models represent your brand.\",\"excitement\":{\"title\":\"This is going to be eye-opening\",\"body\":\"I can't wait for you to discover what ChatGPT, Google AI Overviews, and Gemini are saying about your brand. Most of our users are shocked by the gaps between their website messaging and what AI models actually say, and by the content opportunities they've been missing. You're about to discover insights that will transform your content strategy.\"},\"nextSteps\":\"Over the next few days, I'll be sending you some tips to help you maximize your AI visibility. But for now, dive in and start exploring your AI Visibility Reports!\",\"personal\":{\"title\":\"I read every reply personally\",\"body\":\"Seriously. Every single email that c
2omes to this address lands directly in my inbox. I'd love to hear about your experience, any questions you have, or even just what brought you to Spyglasses in the first place.\"},\"replyButton\":\"Reply with your thoughts\",\"signature\":{\"name\":\"Jim\",\"title\":\"Founder, Spyglasses\"},\"footer\":\"You're receiving this because you just verified your Spyglasses account. Welcome to the community!\"},\"setupSequence\":{\"greeting\":\"Hi {name},\",\"invitedGreeting\":\"Hi {name}, welcome to {organizationName} on Spyglasses.\",\"nextCta\":\"Next: add the prompts your buyers would ask\",\"footer\":\"You are getting this because you have a Spyglasses account with {organizationName}.\",\"run-report\":{\"todo\":{\"subject\":\"Start your first AI visibility report for {propertyLabel}\",\"body1\":\"A report shows how ChatGPT, Gemini, Claude and Perplexity describe {propertyLabel} today. It takes about ten minutes to finish.\",\"body2\":\"You get a summary, a breakdown by platform, and the prompts and brand names we found along the way. Everything else builds on it.\",\"cta\":\"Start a report\"},\"tour\":{\"subject\":\"How to read the AI visibility report for {propertyLabel}\",\"body1\":\"A report for {propertyLabel} is already finished. It shows how the big AI assistants describe the brand, and how that compares with rivals.\",\"body2\":\"Open the summary first, then the breakdown by platform. The recommendations at the end say what to fix and in what order.\",\"cta\":\"Open the report\"},\"firstReport\":{\"subject\":\"Your report for {propertyLabel} is ready\",\"body1\":\"The AI visibility report for {propertyLabel} has finished. It shows how the big AI assistants describe the brand, and where rivals are named instead.\",\"body2\":\"Start with the summary, then look at the recommendations. They are ordered by how much difference each one makes.\",\"cta\":\"Open the report\"}},\"generate-prompts\":{\"todo\":{\"subject\":\"Round out the prompts buyers ask about {propertyLabel}\",\"body1\":\"The first report left you a starter set of prompts for this market. Fifteen or more, across two buying stages, is where the daily ranking settles down.\",\"body2\":\"Add more from the frameworks that fit the market, cover the problem and the shortlist, then tag the set.\",\"cta\":\"Add prompts\"},\"tour\":{\"subject\":\"The prompts being tracked for {propertyLabel}\",\"body1\":\"{propertyLabel} already has a set of prompts. These are the questions buyers put to an AI assistant about this market.\",\"body2\":\"The coverage matrix shows which buying stages are covered. You can add your own wording at any time.\",\"cta\":\"See the prompts\"}},\"review-brands\":{\"todo\":{\"subject\":\"Review the brands AI named in {propertyLabel}\",\"body1\":\"The report came back with the brands each answer names. Keeping five or more of the real ones is what makes share of voice mean something.\",\"body2\":\"Take off anything that is not a real brand in this market, add the ones AI missed, and add their short names and former names.\",\"cta\":\"Review the brands\"},\"tour\":{\"subject\":\"The brands tracked in {propertyLabel}\",\"body1\":\"The brands list for {propertyLabel} is already filled in. It is what share of voice in this market is worked out against.\",\"body2\":\"Check that these are the names buyers really ask about. Anything missing takes a few seconds to add.\",\"cta\":\"See the brands\"}},\"expand-prompts\":{\"todo\":{\"subject\":\"Add the prompts your buyers would ask about {propertyLabel}\",\"body1\":\"Prompts are the questions people put to an AI assistant. Tracking gets reliable at about 15 of them, across all three stages of the buying journey.\",\"body2\":\"Generate a set from the frameworks that fit the brand, import a list you already have, then fill the gaps in the coverage matrix.\",\"cta\":\"Add prompts\"},\"tour\":{\"subject\":\"The prompts being tracked for {propertyLabel}\",\"body1\":\"{propertyLabel} already has a set of prompts. These are the questions people put to an AI assistant, and every answer is checked for the brand.\",\"body2\":\"The coverage matrix shows which customer segments and buying stages are covered. You can add your own wording at any time.\",\"cta\":\"See the prompts\"}}
2,\"revise-competitors\":{\"todo\":{\"subject\":\"Name the competitors {propertyLabel} is measured against\",\"body1\":\"Share of voice is worked out against this list. Four or more names is where the number starts to mean something.\",\"body2\":\"Take off the suggestions that do not really compete. Add the brands your team talks about, and every domain each of them uses.\",\"cta\":\"Edit competitors\"},\"tour\":{\"subject\":\"Who {propertyLabel} is being compared with\",\"body1\":\"The competitor list is what share of voice is worked out against, and it is already filled in for {propertyLabel}.\",\"body2\":\"Check that these are the brands you really lose work to. Anything missing takes a few seconds to add.\",\"cta\":\"See competitors\"}},\"create-project\":{\"todo\":{\"subject\":\"Put your prompts on a daily schedule\",\"body1\":\"A project asks your prompts every day and keeps the answers. That is what turns one report into a trend you can show.\",\"body2\":\"Pick the type, choose the prompts to track, and read the data accuracy card before you save.\",\"cta\":\"Set up a project\"},\"tour\":{\"subject\":\"The project tracking {propertyLabel} every day\",\"body1\":\"A project is already asking your prompts every day and keeping the answers. That is 
2where the trend lines come from.\",\"body2\":\"Open it to see which prompts are tracked, how much margin of error the numbers carry, and what has moved since it started.\",\"cta\":\"Open the project\"}},\"connect-goal\":{\"todo\":{\"subject\":\"Point the project at the work you are doing\",\"body1\":\"A goal connects the work you are doing, whatever kind it is, to the visibility you are measuring.\",\"body2\":\"For SEO work, group your pages and point a goal at that group. For PR work, point a goal at a coverage group, a publisher, an article or an author.\",\"cta\":\"Add a goal\"},\"tour\":{\"subject\":\"What the goal on {propertyLabel} is measuring\",\"body1\":\"The project has a goal attached. It ties a body of work, your pages or your earned coverage, to the visibility being measured.\",\"body2\":\"Open the project to see which citations counted toward it, and when each one landed.\",\"cta\":\"See the goal\"}},\"closing\":{\"subject\":\"What you can do with {propertyLabel} in Spyglasses\",\"body1\":\"{propertyLabel} is set up and tracking. The prompts are asked again every day, and the answers are kept so you can see what changed.\",\"body2\":\"The visibility dashboard is the place to start. It shows how often the brand is named, who gets named instead, and which pages are cited.\",\"cta\":\"Open the dashboard\"}},\"weeklySummary\":{\"subject\":\"Weekly Summary for {domain}\",\"greeting\":\"Hello {name},\",\"dateRange\":\"Here's your weekly summary for {startDate} - {endDate}:\",\"fromLastWeek\":\"from last week\",\"aiTraffic\":{\"title\":\"AI Traffic\",\"chatAppearances\":\"Chat Appearances\",\"referredTraffic\":\"Referred Traffic\",\"conversions\":\"Conversions\",\"conversionRate\":\"Conversion Rate\",\"byIntent\":\"AI Traffic by Intent\"},\"traffic\":{\"title\":\"Traffic Stats\",\"totalVisits\":\"Total Visits\",\"blockedVisits\":\"Blocked Visits\",\"allowedVisits\":\"Allowed Visits\",\"byCategory\":\"Traffic by Category\",\"blocked\":\"blocked\"}
2,\"recrawl\":{\"title\":\"Recrawl Data\",\"totalPages\":\"Total Pages Crawled\",\"avgFrequency\":\"Average Recrawl Frequency\",\"topCrawlers\":\"Top Crawlers\",\"topPages\":\"Top Pages\"},\"consultationAbsence\":{\"title\":\"AI consulted competitors, not you\",\"body\":\"This week AI went straight to competitor sites {count, plural, =1 {# time} other {# times}} while researching answers, and to yours zero times.\",\"link\":\"See which sites it consulted\"},\"viewDashboard\":\"View Dashboard\",\"helpText\":\"Questions about your weekly summary?\",\"contactSupport\":\"Contact Support\",\"footer\":\"This weekly summary helps you track your website's AI traffic and performance. You're receiving this because you have an active Spyglasses subscription.\"},\"milestoneCongratulations\":{\"greeting\":\"Hi {name}!\",\"insights\":{\"title\":\"What This Means\"},\"nextSteps\":\"Ready to dive deeper into your AI traffic insights?\",\"viewDashboard\":\"View Dashboard\",\"keepGoing\":\"Keep up the great work! Your website is clearly resonating with AI assistants and their users.\",\"contactSupport\":\"Questions about your milestone?\",\"footer\":\"You're receiving this because your website reached an AI traffic milestone. We're excited to celebrate your success!\",\"aiVisits\":{\"subject\":\"🎉 {domain} just hit {milestone} AI visits!\",\"achievement\":\"Congratulations! {domain} has reached {milestone} AI visits (currently at {actual})!\",\"explanation\":\"AI visits happen when AI assistants like ChatGPT, Claude, and Perplexity access your website to answer user questions. This means your content is being discovered and referenced by AI platforms.\",\"insights\":\"This milestone shows your content is valuable to AI systems and their users. Each AI visit represents potential exposure to humans asking AI assistants for recommendations, information, or solutions in your space.\"},\"aiReferredVisits\":{\"subject\":\"🚀 {domain} just hit {milestone} AI-referred visits!\",\"achievement\":\"Amazing! {domain} has reached {milestone} AI-referred visits (currently at {actual})!\",\"explanation\":\"AI-referred visits are real humans who came to your website after an AI assistant recommended it or mentioned it in a conversation. This is the ultimate validation of your content's value.\",\"insights\":\"This milestone represents actual conversions from AI recommendations to human traffic. These visitors were specifically directed to your site by AI assistants, making them highly qualified prospects who trust AI guidance.\"}},\"scheduledReportComplete\":{\"subject\":\"Your scheduled AI Visibility Report for {domain} is ready! 📊\",\"greeting\":\"Hi {name}!\",\"body\":\"Great news! Your {schedule} AI Visibility Report for {domain} has been generated and is ready to review.\",\"scheduleLabels\":{\"weekly\":\"weekly\",\"monthly\":\"monthly\",\"quarterly\":\"quarterly\"},\"keyMetrics\":{\"title\":\"Key Metrics\",\"consistencyScore\":\"Brand Consistency Score\",\"shareOfVoice\":\"Share of Voice\",\"citationRate\":\"Citation Rate\"},\"viewReport\":\"View Full Report\",\"manageSchedule\":\"Want to change your report schedule?\",\"settingsLink\":\"Manage in Settings\",\"footer\":\"You're receiving this because you have scheduled AI Visibility Reports enabled for this property.\"},\"scheduledReportInsufficientCredits\":{\"subject\":\"Unable to run scheduled report for {domain} - insufficient credits\",\"greeting\":\"Hi {name}!\",\"body\":\"Your {schedule} AI Visibility Report for {domain} was scheduled to run, but your organization doesn't have enough credits.\",\"scheduleLabels\":{\"weekly\":\"weekly\",\"monthly\":\"monthly\",\"quarterly\":\"quarterly\"},\"creditInfo\":{\"title\":\"Credit Information\",\"required\":\"Credits required: {credits}\",\"available\":\"Credits available: {credits}\"},\"nextSteps\":{\"title\":\"Next Steps\",\"body\":\"Add credits to your account to continue running scheduled reports. Your next report will run automatically once you have sufficient credits.\"},\"addCredits\":\"Add Credits\",\"helpLinks\":{\"title\":\"Need help?\",\"pricing\":\"View Pricing\",\"support\":\"Contact Support\"},\"footer\":\"You're receiving this because you have scheduled AI Visibility Reports enabled for this property.\"},\"weeklyProjectSummary\":{\"subject\":\"Weekly update for {projectName}\",\"greeting\":\"Here's this week's project update.\",\"body\":\"Summary for {projectName} on {domain}, {weeks} weeks in. Key metrics below show current values alongside week-over-week change.\",\"metrics\":{\"title\":\"This week's metrics\",\"consistency\":\"Brand Consistency\",\"shareOfVoice\":\"Share of Voice\",\"mentions\":\"Mentions\",\"citations\":\"Citations\"},\"goals\":{\"title\":\"Goals\",\"progress\":\"{hit} of {total} goals hit\",\"none\":\"No goals configured for this project yet.\"},\"downloadPdf\":\"Download PDF Summary\",\"manageProject\":\"Open in Spyglasses\",\"footer\":\"You're receiving this email because you're on the weekly summary list for this project.\"},\"reportReady\":{\"subject\":\"Your AI Visibility Report for {domain} is ready! 📊\",\"greeting\":\"Great news!\",\"body\":\"Your AI Visibility Report for {domain} has been generated and is ready to view.\",\"keyMetrics\":{\"title\":\"Key Metrics\",\"consistencyScore\":\"Brand Consistency Score\",\"shareOfVoice\":\"Share of Voice\",\"citationRate\":\"Citation Rate\"},\"viewReport\":\"View Your Report\",\"footer\":\"You requested to be notified when your AI Visibility Report was ready. This is the only email we'll send you about this report.\"},\"bulkProspectReportsComplete\":{\"subject\":\"Your prospect AI Visibility Reports are ready 📊\",\"greeting\":\"Hi {name},\",\"body\":\"All {count} of your bulk prospect AI Visibility Reports have finished generating and are ready to review.\",\"reportsReady\":\"Reports ready\",\"reportsFailed\":\"Reports that didn't complete\",\"viewProspects\":\"View Your Prospects\",\"footer\":\"You started a bulk prospect import in Spyglasses. This is the only email we'll send you about this batch.\"}
2,\"reportUnlocked\":{\"subject\":\"Your AI Visibility Report for {domain} is unlocked! 🎉\",\"greeting\":\"Congratulations!\",\"body\":\"Your AI Visibility Report for {domain} has been unlocked. You now have full access to all insights, analysis, and recommendations.\",\"keyMetrics\":{\"title\":\"Your Key Metrics\",\"totalMentions\":\"Total Mentions\",\"shareOfVoice\":\"Share of Voice\",\"totalCitations\":\"Total Citations\",\"technicalFoundation\":\"Technical Foundation\"},\"whatsIncluded\":{\"title\":\"What's Now Available\",\"mentions\":\"Complete AI mention analysis across ChatGPT, Google AI Overviews, Claude, Perplexity, and Gemini\",\"citations\":\"Full citation tracking with source URLs and context\",\"shareOfVoice\":\"Share of voice breakdown vs. competitors\",\"groundingSearches\":\"Grounding searches (fan-out queries) showing exactly how AI finds your brand\",\"citationIntelligence\":\"Citation Intelligence with page-by-page breakdown of what gets cited\",\"recommendations\":\"Actionable recommendations with implementation guides\"},\"exportOptions\":{\"title\":\"Export Your Report\",\"pdf\":\"Export as PDF - Perfect for presentations and archiving\",\"powerpoint\":\"Export as PowerPoint - Ready for client presentations\",\"description\":\"Share your findings with stakeholders in their preferred format.\"},\"viewReport\":\"View Your Full Report\",\"signupCta\":{\"title\":\"Get More from Spyglasses\",\"description\":\"Create a free Spyglasses account to track your AI visibility over time and get the most from your reports.\",\"benefit1\":\"Track improvements in AI visibility as you implement changes\",\"benefit2\":\"Run reports over time to see how your rankings and citations evolve\",\"benefit3\":\"Access AI Traffic Analytics and FAQ Generation tools\",\"button\":\"Create Free Account →\"},\"footer\":\"Thank you for your purchase! This report link will remain accessible. Bookmark it for future reference.\"},\"siteAuditComplete\":{\"subject\":\"AI Readiness Audit for {domain} is complete\",\"greeting\":\"Hi there,\",\"body\":\"Your AI Readiness Audit for {domain} has finished analyzing {pagesAnalyzed, plural, one {# page} other {# pages}}.\",\"results\":{\"title\":\"Audit Results\",\"overallScore\":\"Overall AI Readiness Score\",\"pagesAnalyzed\":\"Pages Analyzed\",\"criticalIssues\":\"Critical Issues Found\",\"warnings\":\"Warnings\"},\"viewAudit\":\"View Full Audit Results\",\"footer\":\"You requested to be notified when your AI Readiness Audit completed. This is the only email we'll send you about this audit.\"},\"pageIndexComplete\":{\"subject\":\"Your pages for {propertyName} are indexed\",\"greeting\":\"Hi there,\",\"body\":\"We've finished crawling and indexing {indexedPages, plural, one {# page} other {# pages}} for {propertyName}. The AI Citation Pipeline Optimizer can now match the closest page to any query you score.\",\"results\":{\"indexedPages\":\"Pages indexed\",\"failedPages\":\"Pages we couldn't index\"},\"failedNote\":\"A few pages couldn't be read — usually thin, JavaScript-rendered, or blocked pages. You can review and exclude them from the optimizer so they don't come up again.\",\"viewOptimizer\":\"Open the Citation Optimizer\",\"footer\":\"You asked to be notified when this property's page indexing finished. This is the only email we'll send you about this run.\"},\"projectGoalFirstHit\":{\"subject\":\"Goal achieved in {projectName}!\",\"greeting\":\"Great news!\",\"body\":\"A goal in your project \\\"{projectName}\\\" has been achieved. One of the tracked prompts returned a citation matching your goal criteria.\",\"goalDescriptionPage\":\"Citation to a page in \\\"{pageGroupName}\\\"\",\"goalDescriptionPublisher\":\"Citation from {publisherDomain}\",\"details\":{\"title\":\"Match Details\",\"goal\":\"Goal\",\"platform\":\"AI Platform\",\"citation\":\"Matched Citation\"},\"viewProject\":\"View Project Details\",\"footer\":\"This is an automated notification from your Spyglasses project tracking. You received this because a project goal was achieved for the first time.\"},\"wrongDomainAlert\":{\"subject\":\"AI is consulting {domain} — and it isn't yours\",\"greeting\":\"Worth a look:\",\"bodyReal\":\"While answering questions about {propertyName}, AI models searched {domain} directly — {count, plural, =1 {in # tracked prompt run} other {across # tracked prompt runs}} this week. That site is live, and it isn't one of yours. The models treat it as the place to go for answers about you, so the attention and the citations land there instead of on your site.\",\"bodyMissing\":\"While answering questions about {propertyName}, AI models searched {domain} directly — {count, plural, =1 {in # tracked prompt run} other {across # tracked prompt runs}} this week. Nothing is served at that address, so the search came back empty and the answer was written without you in it.\",\"details\":{\"title\":\"What we saw\",\"domain\":\"Domain consulted\",\"status\":\"Status\",\"statusReal\":\"Live site, not yours\",\"statusMissing\":\"Nothing served at this address\",\"frequency\":\"Frequency\",\"frequencyValue\":\"{count, plural, =1 {# prompt run} other {# prompt runs}} in 7 days\",\"platforms\":\"Platforms\",\"platformsUnknown\":\"Not recorded\"},\"actionReal\":\"If the domain turns out to be yours, mark it as yours on the consultations page and it will count toward your own authority from here on. If it belongs to someone else, the question is whether to pursue the domain or to publish the reference material AI is going there to find.\",\"actionMissing\":\"There is no rival site here, only a gap. Publishing what AI expected to find, on a domain it already knows, is 
2what closes it.\",\"viewConsultations\":\"See the consultations\",\"footer\":\"You're receiving this because your address is on this property's wrong-domain alert list. We send at most one alert per domain per month.\"},\"promptGeneratorResults\":{\"subject\":\"Your AI visibility prompts and buyer personas for {domain}\",\"greeting\":\"Here are your results.\",\"intro\":\"You asked us to email the prompts and buyer personas we built for {domain}. Everything is below, and the full set is on your results page.\",\"personasTitle\":\"Your buyer personas\",\"personasIntro\":\"{count, plural, =1 {1 buyer} other {# buyers}} drafted from the customer segments on your site.\",\"priorities\":\"Priorities\",\"constraints\":\"Constraints\",\"whatWeWouldTellAi\":\"What we'd tell AI as this buyer\",\"promptsTitle\":\"Your prompts\",\"promptsSummary\":\"{count, plural, =1 {1 prompt} other {# prompts}} across {frameworks, plural, =1 {1 framework} other {# frameworks}}. A few from each:\",\"morePrompts\":\"{count, plural, =1 {plus 1 more} other {plus # more}}\",\"viewResults\":\"See all your results\",\"trackTitle\":\"Track how AI answers these buyers, every day\",\"trackBody\":\"Sign up free and we'll import these prompts and buyer personas into your account. Then we track how AI answers each buyer daily.\",\"trackCta\":\"Track These Buyers\",\"footer\":\"You asked us to send this email. We won't add you to an email list, and this is the only email we'll send about these results. You can regenerate your results any time with the same domain.\"},\"negativeMessageAlert\":{\"subject\":\"A claim you are watching is showing up in answers about {propertyName}\",\"greeting\":\"Worth a look:\",\"bodyFirst\":\"AI answers about {propertyName} have started repeating a claim you asked us to watch. It turned up in {rate}% of the answers we checked, after 30 days with no sign of it at all.\",\"bodySustained\":\"AI answers about {propertyName} keep repeating a claim you asked us to watch. It turned up in {rate}% of the answers we checked, and it has stayed at that level across repeated days. This is not a one-off.\",\"details\":{\"rate\":\"Share of answers\",\"answers\":\"Answers\",\"answersValue\":\"{count} of {total}\",\"measured\":\"Measured on\"},\"evidence\":{\"title\":\"What the answers said\",\"note\":\"Up to three of the closest matching sentences. The full list is on the message page.\"},\"actionFirst\":\"The place to start is where it came from. The message page lists every answer the claim was found in, plus the sources cited in those answers, which is the shortlist worth working.\",\"actionSustained\":\"Something is still feeding this. The message page ranks the sources cited in the answers the claim appeared in, so you can see what to correct first.\",\"viewMatches\":\"See the matched answers\",\"footer\":\"You are receiving this because your address is on this property's alert list for negative key messages. We send at most one alert per message per week.\"},\"trackedPromptsPaused\":{\"subject\":\"Prompt tracking paused — {count, plural, =1 {1 prompt} other {# prompts}} need credits\",\"greeting\":\"Hi {name},\",\"body\":\"We paused daily tracking for {count, plural, =1 {1 of your prompt runs} other {# of your prompt runs}} because your organization doesn't have enough credits to prepay the next 30-run tracking cycle (1 credit per prompt run per 30 daily runs — each location adds its own nightly run).\",\"pausedList\":{\"title\":\"Paused prompt runs\",\"brandWide\":\"Brand-wide\"},\"creditInfo\":{\"title\":\"Credit balance\",\"available\":\"Credits available: {credits}\"},\"nextSteps\":{\"title\":\"What happens next\",\"body\":\"Tracking resumes automatically the night after you add credits — no prompts or history are lost while paused.\"},\"addCredits\":\"Add credits\",\"helpLinks\":{\"title\":\"Need help?\",\"pricing\":\"View pricing\",\"support\":\"Contact support\"},\"footer\":\"You're receiving this because you're an admin of this Spyglasses organization.\"},\"creditsRunningLow\":{\"subject\":\"Your Spyglasses credits are running low\",\"greeting\":\"Hi {name},\",\"body\":\"Your organization has {credits} credits left of the {monthlyCredits}
2 bundled with your plan this month. Credit-based tools (AI Visibility Reports, audits, optimization) keep working — anything beyond your balance is billed as overage at $1 per credit on your next invoice.\",\"whatHappens\":{\"title\":\"What happens next\",\"body\":\"Nothing is interrupted. Before any action that would exceed your balance, we'll ask you to confirm the overage — so there are never surprise charges.\"},\"viewUsage\":\"View usage \u0026 balance\",\"helpLinks\":{\"pricing\":\"View pricing\",\"support\":\"Contact support\"},\"footer\":\"You're receiving this because you're an admin of this Spyglasses organization.\"},\"overageStarted\":{\"subject\":\"Heads up: your plan is now in overage\",\"greeting\":\"Hi {name},\",\"body\":\"Your organization used all of this month's bundled credits and has accrued {credits} overage credits so far. Overage is billed at $1 per credit on your next invoice.\",\"billingInfo\":{\"title\":\"How overage billing works\",\"body\":\"Every overage action required an explicit confirmation in the app, and your usage dashboard shows exactly which properties drove the usage. Your bundle resets at your next renewal.\"},\"viewUsage\":\"Review usage by property\",\"helpLinks\":{\"pricing\":\"View pricing\",\"support\":\"Contact support\"},\"footer\":\"You're receiving this because you're an admin of this Spyglasses organization.\"},\"dataExportReady\":{\"subject\":\"Your {organizationName} data export is ready\",\"greeting\":\"Hi there,\",\"body\":\"We finished putting together the export for {organizationName}. Open your data export settings to download the archive — the download link is generated fresh each time and expires after an hour.\",\"downloadExport\":\"Go to your data export\",\"footer\":\"You're receiving this because you requested a data export for this Spyglasses organization.\"}},\"marketing\":{\"reports\":{\"aiActions\":{\"chatHeading\":\"Chat with this report\",\"chatWith\":\"Ask your AI\",\"copy\":\"Copy as Markdown\",\"copied\":\"Copied!\",\"viewMarkdown\":\"View Markdown\",\"ask\":\"Ask {tool}\"}},\"aiCreditReport\":{\"title\":\"Free AI Visibility Report | Check ChatGPT \u0026 Google AI Overviews\",\"intro\":\"Free AI visibility report showing how ChatGPT, Google AI Overviews, Gemini, Perplexity, and Claude describe your brand. Get your consistency score and share of voice. No signup required.\",\"enterDomain\":\"Enter your domain\",\"generate\":\"Generate Report\",\"generatingText\":\"Generating...\",\"generating\":{\"title\":\"Your AI Visibility Report is generating\",\"statusPending\":\"Starting analysis...\",\"statusRunning\":\"Analyzing your website...\",\"statusDiscovery\":\"Querying AI platforms...\",\"statusGenerating\":\"Generating report...\",\"estimatedTime\":\"Estimated time: {time}\",\"didYouKnow\":\"Did You Know?\",\"readMore\":\"Read more\",\"email\":{\"title\":\"Don't want to wait?\",\"description\":\"Get an email when your report is complete. You can close this page and come back later.\",\"placeholder\":\"Enter your email\",\"notify\":\"Notify Me\",\"saving\":\"Saving...\",\"privacy\":\"We'll only send you one email with a link to your report. Your email won't be added to any mailing list or shared with anyone.\",\"privacyLink\":\"View our Privacy Policy\"},\"emailSubmitted\":{\"title\":\"We'll notify you!\",\"description\":\"You'll receive an email at {email} when your report is ready.\",\"confirmed\":\"Email notification set up successfully!\"}},\"demoReports\":{\"title\":\"See What a Finished Report Looks Like\",\"description\":\"Explore these sample reports from well-known brands to understand the depth of insights you'll receive.\",\"subjectHintCategory\":\"Category\",\"viewReport\":\"View Sample Report\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"items\":{\"whatIs\":{\"question\":\"What is an AI Visibility Report?\",\"answer\":\"An AI Visibility Report shows exactly how ChatGPT, Google AI Overviews, Perplexity, Claude, and Gemini describe your brand when consumers search for solutions in your industry. Unlike traditional SEO tools, our report reveals whether you're being featured accurately and often in AI search results, helping you optimize your presence in the AI platforms consumers use most.\"},\"shareWithTeam\":{\"question\":\"Can I share the report with my team?\",\"answer\":\"Yes, AI Visibility Reports include share buttons directly in the report so you can send them by email or share them on social media. Unloced reports can also be exported as PDF or PowerPoint presentations. Agency accounts can add custom branding to the report.\"},\"howDifferent\":{\"question\":\"How is this different from traditional SEO analysis?\",\"answer\":\"Traditional SEO optimizes for Google search rankings, but AI search works differently. When consumers ask ChatGPT or use Google AI Overviews for recommendations, they get direct answers without visiting websites. Our report shows whether you're being featured accurately and often in these AI responses, helping you optimize for the platforms consumers increasingly use to make purchase decisions.\"},\"whichPlatforms\":{\"question\":\"Which AI platforms does this analyze?\",\"answer\":\"We analyze your brand's representation across ChatGPT, Google AI Overviews, Gemini, Perplexity, and Claude (Anthropic). These are the AI platforms consumers use most for research and purchase decisions, making them critical for your brand visibility.\"},\"howOften\":{\"question\":\"How often should I run an AI Visibility Report?\",\"answer\":\"We recommend running reports every 6-8 weeks when major AI models update. This lets you track improvements from your optimization efforts and ensure ChatGPT and Google AI Overviews continue to represent your brand accurately as their models evolve.\"},\"whatInsights\":{\"question\":\"What specific insights will I get?\",\"answer\":\"You'll see exactly how ChatGPT, Google AI Overviews, and other AI platforms describe your brand compared to your actual messaging. You'll get your share of voice versus competitors, see which queries you're being cited for, and receive specific recommendations to improve your AI visibility and get featured more often.\"},\"howMuchCost\":{\"question\":\"How much does it cost?\",\"answer\":\"Report generation is completely free with no signup required. You only pay a one-time fee to unlock the detailed competitive analysis and implementation recommendations after previewing your results. No subscription or recurring fees. Perfect for periodic AI visibility audits.\"},\"technicalIssues\":{\"question\":\"What if AI systems can't access my website properly?\",\"answer\":\"Our report includes technical analysis to identify issues preventing ChatGPT and Google AI Overviews from understanding your content. We check for restrictive robots.txt files, poor site structure, missing schema markup, or content formatting that makes it difficult for AI to cite you accurately.\"},\"competitorAnalysis\":{\"question\":\"How does the competitive analysis work?\",\"answer\":\"We test the same queries consumers use to find solutions like yours in ChatGPT and Google AI Overviews, then analyze how often your brand appears versus competitors, in what context, and with what messaging. This reveals your true share of voice in AI search and shows opportunities to get featured more often.\"}}},\"features\":{\"diff\":\"What AI says vs. what your site says (masked until unlock)\",\"visibility\":\"AI visibility: mentions, share of voice, citation rate\",\"prompts\":\"Top prompts to target next and fixes to improve inclusion\"},\"status\":\"Status\",\"consistencyScore\":\"Consistency Score\",\"unlockHint\"
2:\"Unlock to reveal full details.\",\"common\":{\"loadingReport\":\"Loading report...\",\"reportNotFound\":\"Report not found\",\"domain\":\"Domain\",\"score\":\"Score\",\"unlocked\":\"Unlocked\",\"locked\":\"Locked\"},\"unlockOptions\":{\"unlocking\":\"Unlocking...\",\"processing\":\"Processing...\",\"alreadyUnlocked\":{\"title\":\"Report Already Unlocked\",\"description\":\"You have full access to this report\",\"viewReport\":\"View Report\"},\"legacyPlan\":{\"title\":\"Legacy Plan Access\",\"description\":\"Your legacy plan includes unlimited report unlocks\",\"button\":\"Unlock Report (Free)\"},\"creditUnlock\":{\"title\":\"Unlock with Organization Credits\",\"description\":\"Use {credits} credits from your organization's balance\",\"descriptionOverage\":\"This will use {required} credits\",\"availableCredits\":\"Available credits:\",\"requiredCredits\":\"Required credits:\",\"overageWarning\":\"⚠️ This will result in a charge of {overage} credits on your next invoice.\",\"button\":\"Unlock with {credits} Credits\",\"buttonOverage\":\"Unlock with ({overage} credits)\"},\"insufficientCredits\":{\"title\":\"Insufficient Credits\",\"description\":\"You need {required} credits but only have {available} available\",\"purchaseMore\":\"Purchase more credits to unlock this report\",\"buyCreditsInfo\":\"Purchase {credits} credits for ${price} to unlock this report\",\"buyCreditsButton\":\"Buy {credits} Credits\"},\"oneTimePurchase\":{\"title\":\"One-Time Purchase\",\"description\":\"Purchase this report individually for {price}\",\"button\":\"Pay {price} One-Time\"},\"guestPurchase\":{\"title\":\"Unlock Full Report\",\"description\":\"Get unlimited access to this AI Visibility Report for {price}\",\"button\":\"Purchase for {price}\"}},\"generateForm\":{\"placeholder\":\"acme.com\",\"domainLabel\":\"Website Domain\",\"locationLabel\":\"Location (Optional)\",\"locationPlaceholder\":\"Select location...\",\"locationHelp\":\"Specify a location to get region-specific AI search results\",\"location\":{\"searchPlaceholder\":\"Search cities, regions, or countries...\"},\"validation\":{\"enterDomain\":\"Please enter a domain\",\"invalidDomain\":\"Please enter a valid domain\",\"reservedDomain\":\"Please enter a real domain, not an example or reserved domain\",\"notListedDomain\":\"Please enter a valid domain (e.g., company.com)\"},\"status\":{\"pending\":\"Preparing your report...\",\"failed\":\"Sorry, we are not able to process this domain. Please try again.\",\"startedToast\":\"Report generation started!\",\"startedDescription\":\"We're analyzing your domain. This might take a few minutes. You will be redirected to the report when it's ready.\",\"errorToast\":\"Unable to generate report\",\"errorDescription\":\"An error occurred while generating the report. Please try again.\",\"cancelled\":\"Report generation canceled\"},\"autoUnlockSuccess\":\"Report unlocked successfully!\",\"autoUnlockWithCredits\":\"Report unlocked using {credits} credits!\",\"autoUnlocking\":\"Unlocking report with your credits...\",\"insufficientCredits\":{\"title\":\"Report Ready - Purchase Required\",\"description\":\"You need {required} credits but only have {available} available.\",\"buyCredits\":\"Buy Credits\",\"viewOptions\":\"View All Options\"}},\"header\":{\"newReportLink\":\"Run a new report\",\"reportTitle\":\"AI VISIBILITY REPORT\",\"titleTemplate\":\"How {companyName} appears in AI\",\"subtitle\":\"Compare visibility across conversational AI platforms, and benchmark performance against competitors.\",\"titleTemplateCategory\":\"Who AI names in {companyName}\",\"subtitleCategory\":\"The brands AI names when buyers ask about this category, and the sources it draws those names from.\"},\"summary\":{\"title\":\"Executive Summary\",\"description\":\"Comprehensive analysis of {companyName}'s visibility across AI platforms and conversational search.\",\"brandConsistency\":\"Brand Consistency\",\"brandConsistencyDescription\":\"Overall consistency of brand representation across AI platforms\",\"technicalFoundation\":\"Technical Foundation\",\"technicalFoundationDescription\":\"Website optimization for AI accessibility and performance\",\"discoveryPerformance\":\"AI Discovery Performance\"},\"brandSnapshot\":{\"title\":\"Your Brand Snapshot\",\"description\":\"Here's what we found about your brand from your website.\",\"companyName\":\"Company Name\",\"tagline\":\"Tagline\",\"pricingModel\":\"Pricing Model\",\"category\":\"Category\",\"targetAudience\":\"Target Audience\",\"keyFeatures\":\"Key Features\",\"problemsSolved\":\"Problems Solved\",\"differentiators\":\"Differentiators\",\"pricingInformation\":\"Pricing Information\",\"identifiedCompetitors\":\"Identified Competitors\",\"pricingModels\":{\"salesLed\":\"Sales-led ({count}
2 sales CTAs found)\",\"public\":\"Public pricing available\",\"freemium\":\"Freemium model\",\"subscription\":\"Subscription-based\",\"usageBased\":\"Usage-based pricing\",\"unknown\":\"Unknown pricing model\"},\"unlock\":{\"title\":\"Unlock Complete Analysis\",\"description\":\"Get access to competitor analysis, detailed recommendations, and more.\"}},\"platformAnalysis\":{\"title\":\"Brand Consistency Analysis\",\"description\":\"See how different AI platforms describe your brand and identify consistency gaps.\",\"modelTooltip\":{\"title\":\"Model Selection\",\"description\":\"This model was selected because it's either the default for {platform} or the model available on their free plan, representing the vast majority of user requests.\"},\"responseTypes\":{\"both\":\"Comparison of responses with and without web browsing enabled\",\"browsing\":\"Analysis with web browsing enabled\",\"training\":\"Analysis based on training data knowledge\"}},\"technicalAnalysis\":{\"title\":\"Technical Analysis\",\"description\":\"Comprehensive analysis of your website's technical foundation for AI optimization.\",\"overallScore\":\"Overall Technical Score\",\"overallScoreDescription\":\"Aggregate score across all technical categories\",\"unavailable\":\"Technical Analysis Unavailable\",\"unavailableDescription\":\"Technical analysis data is not available for this report.\",\"loading\":\"Loading technical analysis...\",\"categories\":{\"structure\":{\"name\":\"Structure \u0026 Markup\",\"description\":\"JSON-LD structured data and semantic markup quality\",\"icon\":\"🏗️\"},\"accessibility\":{\"name\":\"Accessibility\",\"description\":\"WCAG compliance and screen reader compatibility\",\"icon\":\"♿\"},\"readability\":{\"name\":\"Content Readability\",\"description\":\"Text complexity and reading comprehension\",\"icon\":\"📖\"},\"performance\":{\"name\":\"Performance\",\"description\":\"Page speed and Core Web Vitals optimization\",\"icon\":\"⚡\"}},\"findings\":{\"noIssues\":\"No issues found in this category\",\"solution\":\"Solution:\",\"viewImplementation\":\"View detailed implementation guide →\",\"unlockSolutions\":\"Unlock to see detailed solutions and implementation guides\"},\"severity\":{\"high\":\"high impact\",\"medium\":\"medium impact\",\"low\":\"low impact\"},\"effort\":{\"quick\":\"quick fix\",\"medium\":\"medium fix\",\"complex\":\"complex fix\"},\"summary\":{\"title\":\"Technical Analysis Summary\",\"scoreMessage\":\"Your website scored {score}/100 across {pages} pages analyzed.\",\"issuesFound\":\"We found {count} optimization opportunities to improve your AI visibility.\",\"excellent\":\"Your website follows excellent technical practices for AI optimization!\",\"unlockMessage\":\"Unlock the full report to see detailed implementation guides.\"}},\"recommendations\":{\"title\":\"Implementation Recommendations\",\"description\":\"Step-by-step guides to optimize your website for better AI visibility and performance.\",\"unlockTitle\":\"Unlock Detailed Recommendations\",\"unlockDescription\":\"Get step-by-step implementation guides, code examples, and resource links to improve your AI visibility.\",\"excellentTitle\":\"Excellent Technical Foundation!\",\"excellentDescription\":\"Your website follows technical best practices for AI optimization. No immediate improvements needed.\",\"priority\":{\"high\":\"high priority\",\"medium\":\"medium priority\",\"low\":\"low priority\"},\"impact\":{\"high\":\"high impact\",\"medium\":\"medium impact\",\"low\":\"low impact\"},\"timeEstimate\":{\"15min\":\"15min\",\"1hour\":\"1hour\",\"1day\":\"1day\",\"1week\":\"1week\"},\"implementationSteps\":\"Implementation Steps\",\"technicalDetails\":\"Technical Details\",\"additionalResources\":\"Additional Resources\",\"addressesIssues\":\"Addresses These Issues\",\"copyImplementation\":\"Copy Implementation Guide\",\"aiGuides\":{\"title\":\"Comprehensive AI Visibility Guides\",\"description\":\"Beyond these technical recommendations, Spyglasses offers detailed guides for optimizing your brand's presence on each major AI platform. These guides include platform-specific strategies, best practices, and implementation tactics.\",\"platforms\":{\"overview\":{\"title\":\"Complete Overview\",\"description\":\"Implementation framework\"},\"chatgpt\":{\"title\":\"ChatGPT\",\"description\":\"84% market share\"},\"gemini\":{\"title\":\"Google Gemini\",\"description\":\"Traditional search leader\"},\"perplexity\":{\"title\":\"Perplexity\",\"description\":\"Research-focused platform\"},\"claude\":{\"title\":\"Claude\",\"description\":\"Developer \u0026 creative focus\"},\"copilot\":{\"title\":\"Microsoft Copilot\",\"description\":\"B2B enterprise focus\"}},\"viewComplete\":\"View Complete Implementation Guide\"},\"nextSteps\":{\"title\":\"Next Steps\",\"description\":\"We recommend implementing the \u003cstrong\u003ehigh priority\u003c/strong\u003e recommendations first, as they typically provide the biggest impact on AI visibility. Most quick fixes can be completed in under an hour, while larger structural improvements may require more planning.\"}},\"share\":{\"title\":\"Share this report\",\"description\":\"Share on X, Threads, LinkedIn, Reddit, or send to Slack, Teams, Discord, or email.\",\"sections\":{\"socialMedia\":\"Social Media\",\"privateCommunities\":\"Private Communities\"},\"platforms\":{\"x\":\"X (Twitter)\",\"threads\":\"Threads\",\"linkedin\":\"LinkedIn\",\"reddit\":\"Reddit\",\"slack\":\"Slack\",\"teams\":\"Microsoft Teams\",\"discord\":\"Discord\",\"email\":\"Email\",\"copyLink\":\"Copy link\"},\"copied\":\"Copied!\",\"shareTitle\":\"AI Visibility Report for {domain}\",\"exportSection\":\"Export Report\",\"exportPdf\":\"Export as PDF\",\"exportPpt\":\"Export as PowerPoint\",\"unlockToExportPdf\":\"Export as PDF\",\"unlockToExportPpt\":\"Export as PowerPoint\",\"exporting\":\"Exporting...\"},\"unlock\":{\"title\":\"Unlock Report\",\"description\":\"Get access to detailed analysis, recommendations, and competitor insights.\",\"status\":\"complete\"},\"purchase\":{\"unlockReport\":\"Unlock Full Report\",\"unlockFullReport\":\"Unlock Full AI Report\",\"description\":\"Get complete access to your AI brand visibility report including detailed analysis, recommendations, and actionable insights.\",\"priceInfo\":\"One-time payment - No subscription required\",\"processing\":\"Processing...\",\"alreadyPurchased\":\"Already Purchased\"},\"aiVisibility\":{\"title\":\"AI Visibility Metrics\",\"description\":\"Analysis of how your brand appears when users ask AI assistants for recommendations.\",\"promptsGeneratedFrom\":\"These prompts were built by AI based on analysis of {pageCount} pages from {brand}'s website.\",\"loading\":\"Loading AI visibility metrics...\",\"noResults\":\"Discovery query anal
2ysis is still processing. Results will appear here once complete.\",\"shareOfVoice\":\"Share of Voice Breakdown\",\"yourBrandMentions\":\"your brand mentions\",\"competitorMentions\":\"competitor mentions\",\"tracking\":\"Tracking: {competitors}\",\"andMore\":\", +{count} more\",\"platformsTested\":\"{count} platform{plural} tested\",\"mentions\":\"{count} mentions\",\"citations\":\"{count} citations\",\"competitorMention\":\"{count} competitor mention{plural}\",\"unlockCta\":{\"title\":\"🔒 {count} More Detailed {queryPlural} Available\",\"description\":\"Unlock to see complete analysis of all {total} buyer-intent queries, including detailed platform responses and competitive mentions.\",\"features\":{\"completeAnalysis\":\"Complete query analysis\",\"competitorTracking\":\"Detailed competitor tracking\",\"citationAnalysis\":\"Full citation analysis\"}},\"queryTypes\":{\"categoryBest\":\"Best in Category\",\"useCaseSolution\":\"Use Case Solution\",\"useCaseSoftware\":\"Use Case Search\",\"budgetConstrained\":\"Budget-Conscious\",\"solutionComparison\":\"Solution Comparison\",\"segmentFocused\":\"Segment-Specific\",\"localServices\":\"Local Services\",\"localComparison\":\"Local Comparison\",\"localReviews\":\"Local Reviews\"},\"execution\":{\"mentioned\":\"✓ Mentioned #{rank}\",\"citations\":\"📎 {count} citation{plural}\",\"noMentions\":\"No mentions\",\"errorOccurred\":\"Error occurred\",\"responseSummary\":\"Response Summary\",\"brandMentions\":\"Brand Mentions ({count})\",\"yourBrand\":\"Your Brand\",\"competitor\":\"Competitor\",\"domainCitations\":\"Your Domain Citations ({count})\",\"yourDomain\":\"Your Domain\",\"referencedAs\":\"Referenced as: {brand}\",\"otherSources\":\"{count} other sources cited\"},\"descriptionCategory\":\"Analysis of which brands AI names when users ask for recommendations in this category.\"},\"llmAnalysis\":{\"consistent\":\"{score}% consistent\",\"browsingEnabled\":\"Web browsing enabled\",\"whatSays\":\"What {platform} says about {brand}:\",\"targetAudience\":\"Target audience:\",\"showLess\":\"Show less\",\"showDetailed\":\"Show detailed analysis\",\"featuresMentioned\":\"Features mentioned:\",\"moreFeatures\":\"🔒 +{count} more features (unlock to see all)\",\"whatHelps\":\"What it helps with:\",\"moreUseCases\":\"+{count} more use cases (unlock to see all)\",\"competitorsMentioned\":\"Competitors mentioned:\",\"pricingAssessment\":\"Pricing model assessment:\",\"pricingTypes\":{\"public\":\"Public\",\"salesLed\":\"Sales led\",\"freemium\":\"Freemium\",\"subscription\":\"Subscription\",\"usageBased\":\"Usage based\",\"unknown\":\"Unknown\"},\"confidence\":{\"high\":\"high confidence\",\"medium\":\"medium confidence\",\"low\":\"low confidence\"},\"consistencyBreakdown\":\"Consistency breakdown:\",\"consistencyFields\":{\"category\":\"Category\",\"icp\":\"ICP\",\"features\":\"Features\",\"pricing\":\"Pricing\",\"differentiators\":\"Differentiators\"},\"issuesIdentified\":\"Issues identified:\"},\"blurredContent\":{\"unlockToView\":\"🔒 Unlock to view details\"},\"summaryStatistics\":{\"discoveryQueries\":\"Discovery Queries\",\"brandMentions\":\"Brand Mentions\",\"shareOfVoice\":\"Share of Voice\",\"citations\":\"Citations\"},\"tour\":{\"ariaLabel\":\"Report Guided Tour\",\"button\":\"Take the Tour\",\"exit\":\"Exit Tour\",\"previous\":\"Previous\",\"next\":\"Next\",\"viewFullReport\":\"View Full Report\",\"unlockReport\":\"Unlock Report\",\"overview\":{\"badge\":\"Welcome\",\"title\":\"AI Visibility Report for {brand}\",\"subtitle\":\"This guided tour will walk you through the key sections of your report\",\"subtitlePerson\":\"This guided tour will walk you through how AI describes you\",\"subtitleProduct\":\"This guided tour will walk you through how AI describes your product\",\"subtitleLocation\":\"This guided tour will walk you through your brand's AI visibility for this location\",\"subtitleLocationWithParent\":\"This guided tour will walk you through {parent}'s AI visibility for this location\",\"preparedBy\":\"Prepared by {agency}\",\"navigation\":\"Use arrow keys or click Next to navigate\",\"items\":{\"brandSnapshot\":{\"title\":\"Brand Snapshot\",\"description\":\"How we understand your brand from your website\"},\"discovery\":{\"title\":\"Discovery Queries\",\"description\":\"What AI platforms say about you\"},\"grounding\":{\"title\":\"Grounding Searches\",\"description\":\"How AI finds information about you\"},\"citations\":{\"title\":\"Citation Intelligence\",\"description\":\"Which pages get cited by AI\"},\"consistency\":{\"title\":\"Brand Consistency\",\"description\":\"How accurately AI represents your brand\"}
2,\"recommendations\":{\"title\":\"Recommendations\",\"description\":\"Actionable steps to improve visibility\"}}},\"brandSnapshot\":{\"badge\":\"Brand Snapshot\",\"badgeProduct\":\"Product Snapshot\",\"badgeLocation\":\"Brand Snapshot (Inherited)\",\"title\":\"Your Brand Identity\",\"titleProduct\":\"Your Product Identity\",\"titleLocation\":\"Your Brand Identity (Inherited)\",\"subtitle\":\"This is how we understand your brand based on your website\",\"subtitleProduct\":\"This is how we understand your product based on its dedicated page\",\"subtitleLocation\":\"This snapshot is inherited from the parent brand\",\"category\":\"Category\",\"description\":\"Description\",\"employees\":\"Company Size\",\"howGenerated\":\"How This Was Generated\",\"howGeneratedDescription\":\"We crawled your website to extract key information about your brand, including your company description, category, and key attributes.\",\"howGeneratedDescriptionProduct\":\"We crawled the product page (seed URL) to extract the product's positioning, features, and audience.\",\"howGeneratedDescriptionLocation\":\"This baseline is inherited from the parent brand's snapshot — edits made on the parent flow through to every location.\",\"pagesCrawled\":\"Pages Analyzed\",\"dataUsage\":\"This information is used as the baseline to measure how accurately AI platforms represent your brand.\"},\"competitors\":{\"badge\":\"Competitors\",\"badgePeers\":\"Peers\",\"title\":\"Competitive Landscape\",\"titlePeers\":\"Peer Comparison\",\"subtitle\":\"These are the competitors we compare you against\",\"subtitlePeers\":\"These are the peers we compare you against\",\"whyMatter\":\"Why Competitors Matter\",\"whyMatterPeers\":\"Why Peers Matter\",\"whyMatterDescription\":\"Share of voice is calculated relative to your competitors. When AI recommends products or services in your category, we measure how often you're mentioned vs. these competitors.\",\"whyMatterDescriptionPeers\":\"Share of voice is calculated relative to your peers. When AI is asked about people in your field, we measure how often you're mentioned vs. these peers.\",\"yourBrand\":\"Your Brand\",\"yourBrandPerson\":\"You\",\"comparedTo\":\"Compared Against\",\"noCompetitors\":\"No competitors have been added yet\",\"badgeCategory\":\"Brands\",\"titleCategory\":\"Brands In This Category\",\"subtitleCategory\":\"These are the brands tracked in this market\",\"whyMatterCategory\":\"Why These Brands Matter\",\"whyMatterDescriptionCategory\":\"A category has no single brand to measure. We count how often each tracked brand appears in AI answers about this market, so you can see who AI already names and who it never reaches for.\",\"brandsTracked\":\"Brands Tracked\",\"noBrands\":\"No brands have been added yet\"},\"keyMetrics\":{\"badge\":\"Key Metrics\",\"title\":\"Executive Summary\",\"subtitle\":\"Your AI visibility at a glance\",\"consistencyScore\":\"Brand Consistency\",\"consistencyScoreDesc\":\"How accurately AI represents your brand\",\"technicalScore\":\"Technical Foundation\",\"technicalScoreDesc\":\"Website optimization for AI\",\"shareOfVoice\":\"Share of Voice\",\"shareOfVoiceDesc\":\"Your visibility vs. competitors\",\"discoveryMetrics\":\"Discovery Metrics\",\"whatMeansTitle\":\"What These Numbers Mean\",\"whatMeansDescription\":\"These metrics show how visible your brand is across AI platforms. Higher scores indicate better AI visibility and more accurate brand representation.\"},\"discoveryOverview\":{\"badge\":\"Discovery Queries\",\"title\":\"How AI Describes Your Brand\",\"subtitle\":\"We asked AI platforms questions your customers might ask\",\"howGenerated\":\"How Queries Were Generated\",\"step1Title\":\"Analyzed Your Brand\",\"step1Description\":\"We identified your category and key entry points from your brand snapshot\",\"step2Title\":\"Created Discovery Queries\",\"step2Description\":\"Generated questions potential customers might ask AI about your category\",\"step3Title\":\"Queried Multiple Platforms\",\"step3Description\":\"Ran each query across major AI platforms to see how they respond\",\"platformsTested\":\"Platforms Tested\",\"queriesRun\":\"{count} queries × {platforms} platforms\",\"categoryEntryPoints\":\"Category Entry Points Used\"},\"platformQuery\":{\"title\":\"What {platform} Says\",\"subtitle\":\"Showing 1 of the discovery queries we ran for your brand\",\"queryLabel\":\"Discovery Query\",\"responseLabel\":\"AI Response\",\"mentionsFound\":\"{count} brands mentioned\",\"citationsFound\":\"{count} citations\",\"mentioned\":\"Mentioned\",\"citationCount\":\"citations\",\"noMentions\":\"No mentions\",\"y
2ourCitations\":\"Your Citations\",\"noData\":\"No data available for this platform\",\"fullReportNote\":\"This is just one query.\",\"fullReportUnlocked\":\"The full report contains all of the discovery queries with responses from each AI platform. Explore them after this tour.\",\"fullReportLocked\":\"The preview shows 2 of 5 queries. Unlock the full report to see all queries and detailed analysis across every platform.\"},\"groundingOverview\":{\"badge\":\"Grounding Searches\",\"title\":\"How AI Finds You\",\"subtitle\":\"Grounding searches are the web searches AI performs to answer questions\",\"whatAreTitle\":\"What Are Grounding Searches?\",\"whatAreDescription\":\"When AI platforms need current information, they perform web searches (also called 'fan-out' queries). These are the search queries that lead AI to discover and cite your content.\",\"whyImportantTitle\":\"Why This Matters\",\"whyImportantDescription\":\"Ranking well for grounding searches means AI is more likely to cite your content in its responses. This is the SEO for AI search.\",\"stats\":{\"total\":\"Total Searches\",\"brandRanked\":\"You Rank For\",\"gaps\":\"Opportunities\"},\"unlockMessage\":\"Unlock to see all grounding searches and ranking details\"},\"groundingDetail\":{\"badge\":\"Grounding Details\",\"title\":\"Your Grounding Search Rankings\",\"subtitle\":\"How you rank for AI's web searches\",\"ranked\":\"{brand} ranks #{rank}\",\"notRanked\":\"{brand} not ranking\",\"moreSearches\":\"+{count} more searches in full report\",\"noData\":\"No grounding search data available\"},\"citationOverview\":{\"badge\":\"Citation Intelligence\",\"title\":\"What Gets Cited\",\"subtitle\":\"Which of your pages are being cited by AI platforms\",\"whatIsTitle\":\"What Is Citation Intelligence?\",\"whatIsDescription\":\"When AI platforms cite sources, we track which of your pages they reference. This shows you what content is driving your AI visibility.\",\"whyImportantTitle\":\"Why Citations Matter\",\"whyImportantDescription\":\"Citations drive traffic from AI conversations. Pages that get cited frequently are your best performing content for AI visibility.\",\"stats\":{\"total\":\"Total Citations\",\"totalDescription\":\"All citations across AI responses\",\"uniquePages\":\"Your Pages Cited\",\"uniquePagesDescription\":\"Pages from your website that AI cited\"},\"thirdPartyNote\":\"AI may also cite third-party pages that mention your brand. The full report shows all citation sources.\",\"topCited\":\"Top Cited Page\",\"unlockMessage\":\"Unlock to see all cited pages and citation context\"},\"citationDetail\":{\"badge\":\"Citation Details\",\"title\":\"Citation Intelligence\",\"subtitle\":\"Understanding what types of sources AI platforms cite\",\"distributionTitle\":\"How AI Sources Information\",\"topPagesTitle\":\"Your Top Cited Pages\",\"citations\":\"citations\",\"morePagesNote\":\"+{count} more pages in full report\",\"noData\":\"No citation data available\",\"partialDataNote\":\"This analysis is based on 2 of 5 discovery queries. The full report includes citation intelligence across all queries.\",\"unlockMessage\":\"Unlock for complete citation analysis across all discovery queries\"},\"brandConsistencyOverview\":{\"badge\":\"Brand Consistency\",\"title\":\"How Accurately AI Represents You\",\"subtitle\":\"We measure how well AI platforms describe your brand\",\"whatIsTitle\":\"What Is Brand Consistency?\",\"whatIsDescription\":\"Brand consistency measures how accurately AI platforms describe your company, products, and value proposition compared to what's on your website.\",\"methodologyTitle\":\"Our Methodology\",\"methodologyDescription\":\"We perform a semantic comparison between your brand snapshot (extracted from your website) and how each AI platform describes your brand. This reveals gaps between your intended messaging and how AI represents you.\",\"howCalculatedTitle\":\"How We Calculate It\",\"withoutBrowsing\":\"In-Model Knowledge: What AI 'knows' from its training data\",\"withBrowsing\":\"With Web Search: What AI says when it can search the web\",\"overallScore\":\"Overall Brand Consistency\",\"byPlatform\":\"Consistency by Platform\",\"inModelKnowledge\":\"In-Model\",\"withWebSearch\":\"With Search\",\"fullAnalysisNote\":\"The full report includes detailed attribute-by-attribute analysis showing exactly where AI descriptions differ from your brand messaging.\",\"unlockMessage\":\"Unlock to see detailed consistency breakdowns by platform\"},\"brandConsistencyDetail\":{\"badge\":\"Consistency Details\",\"title\":\"Brand Attribute Analysis\",\"subtitle\":\"How {platform} represents your key brand attributes\",\"noData\":\"No consistency data available\"}
2,\"technicalAnalysis\":{\"badge\":\"Technical Analysis\",\"title\":\"Your Technical Foundation\",\"subtitle\":\"How well your website is optimized for AI visibility\",\"whyImportantTitle\":\"Why Technical SEO Matters for AI\",\"whyImportantDescription\":\"A well-structured website helps AI platforms understand and accurately represent your brand. These factors influence how AI interprets your content.\",\"overallScore\":\"Overall Technical Score\",\"overallScoreDescription\":\"Aggregate score across all technical categories\",\"structure\":\"Structure\",\"structureDescription\":\"JSON-LD \u0026 semantic markup\",\"accessibility\":\"Accessibility\",\"accessibilityDescription\":\"WCAG \u0026 screen readers\",\"readability\":\"Readability\",\"readabilityDescription\":\"Text complexity analysis\",\"performance\":\"Performance\",\"performanceDescription\":\"Core Web Vitals\",\"unlockMessage\":\"Unlock to see detailed technical findings and fixes\"},\"recommendations\":{\"badge\":\"Recommendations\",\"subtitle\":\"Actionable steps to improve your AI visibility\",\"grounding\":{\"title\":\"Grounding Search Recommendations\",\"description\":\"Opportunities to rank for more AI web searches\"},\"citations\":{\"title\":\"Citation Recommendations\",\"description\":\"Ways to get more pages cited by AI\"},\"shareOfVoice\":{\"title\":\"Share of Voice Recommendations\",\"description\":\"Strategies to increase your visibility vs. competitors\"},\"brandConsistency\":{\"title\":\"Brand Consistency Recommendations\",\"description\":\"How to improve AI's representation of your brand\"},\"robotsTxt\":{\"title\":\"Robots.txt Configuration Warning\",\"description\":\"Your robots.txt is blocking AI crawlers from accessing your content\"},\"findings\":\"Key Findings\",\"items\":\"items\",\"noSummary\":\"Summary will be available when recommendations are generated\",\"viewDetails\":\"The full report contains detailed implementation steps for each recommendation.\",\"seeInReport\":\"See in Full Report\",\"unlockMessage\":\"Unlock to see detailed recommendations with implementation guides\"},\"recommendationsSummary\":{\"badge\":\"Key Findings\",\"title\":\"Your Action Items\",\"subtitle\":\"Priority areas to improve your AI visibility\",\"grounding\":{\"title\":\"Grounding Search Opportunities\",\"description\":\"{count} searches where competitors rank but you don't - optimize for these to improve AI visibility\"},\"consistency\":{\"title\":\"Brand Consistency Issues\",\"description\":\"{count} AI platforms have inaccurate information about your brand\"},\"shareOfVoice\":{\"title\":\"Low Share of Voice\",\"description\":\"Your brand is mentioned less than competitors in AI responses\"},\"citations\":{\"title\":\"Citation Opportunities\",\"description\":\"{count} opportunities where competitors are cited but you're not\"},\"noIssues\":\"Looking Good!\",\"noIssuesDescription\":\"No major issues detected. Keep monitoring your AI visibility.\",\"unlockedDetails\":\"The full report includes step-by-step implementation guides for each of these findings.\",\"lockedDetails\":\"Unlock the report to get detailed implementation guides with code examples, priority rankings, and specific steps to address each issue.\",\"viewInReport\":\"View Full Report\",\"unlockMessage\":\"Get Implementation Guides\"},\"profileSnapshot\":{\"badge\":\"Profile Snapshot\",\"title\":\"Identity Baseline\",\"subtitle\":\"The neutral facts AI's answers are measured against\",\"sourcedFrom\":\"Sourced from {provenance}\",\"noSnapshot\":\"No neutral source profile is available for this subject yet — identity accuracy will run against whatever facts AI platforms surface on their own.\",\"facts\":{\"currentRole\":\"Current role\",\"currentEmployer\":\"Current affiliation\",\"fieldOfWork\":\"Field of work\",\"nationality\":\"Nationality\",\"dateOfBirth\":\"Date of birth\",\"education\":\"Education\",\"notableWorks\":\"Notable work\"},\"whyMatters\":\"Why This Matters\",\"whyMattersDescription\":\"When we evaluate how each AI model describes you, we compare what they say against this neutral baseline. Roles, employers, and notable work are the most common places AI models drift, so getting these right is the most important first step.\"}
2,\"identityAccuracy\":{\"badge\":\"Identity Accuracy\",\"title\":\"How Accurately AI Describes You\",\"subtitle\":\"Each model is scored on what it says about your role, employer, and biography\",\"whatIsTitle\":\"What We Measure\",\"whatIsDescription\":\"For every major AI platform we run two queries — one without web browsing (testing what the model has memorized) and one with web search enabled. We then score the answer against your neutral profile baseline.\",\"scoreCard\":{\"title\":\"Per-Model Accuracy Scores\",\"description\":\"Each platform gets two scores: in-model knowledge and with-search. Lower scores mean the model is drifting on factual claims about you.\",\"withBrowsing\":\"With Web Search\",\"withoutBrowsing\":\"In-Model Knowledge\",\"noData\":\"Run a full report to see per-platform scores\"},\"confusionTitle\":\"Confusion Detection\",\"confusionDescription\":\"We flag cases where the model confuses you with someone else of the same or similar name — a common failure mode for less-prominent subjects.\",\"factualErrorsTitle\":\"Factual Errors\",\"factualErrorsDescription\":\"Every claim flagged as wrong is listed in the full report, with the source the model gave (if any).\",\"unlockMessage\":\"Unlock to see every model's response, scored claim-by-claim\",\"noData\":\"Identity accuracy data is not available for this report yet.\"},\"trackedAttributes\":{\"badge\":\"Narrative Tracking\",\"title\":\"How AI Talks About You\",\"subtitle\":\"Positive and negative narratives we watch for across AI responses\",\"whatIsTitle\":\"What Are Tracked Attributes?\",\"whatIsDescription\":\"Beyond raw factual accuracy, AI platforms tend to frame people with recurring positive or negative narratives. We track the ones you've identified as key messages — both the wins you want amplified and the criticisms you want to stay ahead of.\",\"howWeTrackTitle\":\"How We Track Them\",\"howWeTrackDescription\":\"For each tracked attribute we measure how often it shows up across the discovery queries, and on which platforms. A high mention rate for a positive attribute means it's landing; a high mention rate for a negative one means it's worth addressing.\",\"positiveLabel\":\"Positive narratives\",\"negativeLabel\":\"Negative narratives\",\"mentionRate\":\"{count}/{total} AI answers\",\"noAttributes\":\"No tracked attributes are configured yet. Add positive and negative narratives in your profile to start tracking them.\",\"unlockMessage\":\"Unlock to see snippets, per-platform breakdown, and trend over time\"},\"summary\":{\"badge\":\"Explore the Full Report\",\"title\":\"Ready to Dive Deeper?\",\"subtitle\":\"The full report for {domain} contains much more detail\",\"subtitlePerson\":\"The full report for {subject} contains much more detail\",\"subtitleProduct\":\"The full report for this product contains much more detail\",\"subtitleLocation\":\"The full report for this location contains much more detail\",\"whatsInReport\":\"What's in the Full Report\",\"features\":{\"discovery\":{\"title\":\"All Discovery Queries\",\"descriptionUnlocked\":\"5 queries across all AI platforms with full responses\",\"descriptionLocked\":\"Preview shows 2 of 5 queries. Unlock for all\"},\"grounding\":{\"title\":\"AI Search Rankings\",\"description\":\"See how you rank vs competitors in Google \u0026 Bing grounding searches\"},\"citations\":{\"title\":\"Citation Analysis\",\"description\":\"Detailed breakdown of which pages get cited and why\"},\"recommendations\":{\"title\":\"Implementation Guides\",\"descriptionUnlocked\":\"Step-by-step guides to improve your AI visibility\",\"descriptionLocked\":\"Detailed recommendations with code examples\"}},\"unlockedTitle\":\"Full Access Unlocked\",\"unlockedDescription\":\"Explore all discovery queries, detailed rankings, and export options.\",\"exploreReport\":\"Explore Full Report\",\"lockedTitle\":\"Ready to Explore?\",\"lockedDescription\":\"See what's available in the preview, including partial discovery queries and ke
2y metrics.\",\"explorePreview\":\"Explore Preview Report\",\"wantFullAccess\":\"Want the full report?\",\"unlockOptionsDescription\":\"Unlock for {price} one-time, or schedule a free 30-min AEO consultation and we'll unlock it plus give you credits for another report.\",\"viewUnlockOptions\":\"View Unlock Options\"}},\"platformScore\":{\"brandConsistency\":\"Brand consistency\"},\"mobileHeader\":{\"runNewReport\":\"Run new report\",\"share\":\"Share\",\"shareTitle\":\"Share this report\",\"shareDescription\":\"Send to your team, colleagues, or clients\"},\"poweredBy\":{\"text\":\"Powered by\"},\"unlockStatus\":{\"checkingStatus\":\"Checking purchase status...\",\"reportReady\":\"Report Ready - Unlock Required\",\"reportInProgress\":\"Report In Progress\",\"unlocked\":\"Unlocked\",\"locked\":\"Locked\",\"processing\":\"Processing\",\"fullAccess\":\"Full report access enabled\",\"purchaseRequired\":\"Purchase required to view full details\",\"willBeAvailable\":\"Report will be available for purchase when complete\",\"viewUnlockOptions\":\"View Unlock Options\",\"unlockFor\":\"Unlock for {price}\",\"orFreeConsultation\":\"or free with consultation\"},\"unlockPage\":{\"title\":\"Unlock Your Full AI Visibility Report\",\"subtitle\":\"Get complete access to actionable insights that will improve your AI presence\",\"hero\":{\"benefit1\":{\"title\":\"Complete Discovery \u0026 LLM Analysis\",\"description\":\"Access all discovery queries showing exactly how AI platforms describe your brand, plus detailed consistency breakdowns across ChatGPT, Claude, Perplexity, and Google Gemini.\"},\"benefit2\":{\"title\":\"Actionable Recommendations\",\"description\":\"Get specific, prioritized recommendations to improve your consistency scores and share of voice, with step-by-step implementation guides and code examples.\"},\"benefit3\":{\"title\":\"White-Label Ready\",\"description\":\"Remove all Spyglasses branding to present these insights as your own work - perfect for agencies and consultants.\"}},\"demoReports\":{\"title\":\"See What You'll Get\",\"description\":\"Explore these unlocked reports from well-known brands to see the full depth of insights and recommendations you'll receive.\"},\"agencies\":{\"title\":\"Built for Agencies \u0026 Consultants\",\"subtitle\":\"Win more clients and improve margins with AI visibility reports\",\"benefit1\":{\"title\":\"Land New Clients\",\"description\":\"Showcase your ability to provide actionable insights from day one. Use these reports in proposals and discovery calls to demonstrate immediate value and expertise in AI optimization.\"},\"benefit2\":{\"title\":\"Usage-Based Pricing\",\"description\":\"Individual reports are priced at {price} with no minimum required. Pay only for what you use.\"},\"benefit3\":{\"title\":\"White-Label Reports\",\"description\":\"Remove all Spyglasses branding. Your clients see your expertise, not our tools.\"},\"cta\":{\"title\":\"Agency \u0026 Team Plans Available\",\"description\":\"Get significant discounts off per report, plus white-labeling, \",\"button\":\"View Agency Pricing\"}},\"faq\":{\"title\":\"Frequently Asked Questions\",\"items\":{\"whatIncluded\":{\"question\":\"What's included when I unlock the report?\",\"answer\":\"You'll get complete access to all discovery queries, detailed LLM analysis showing exactly how each AI platform describes your brand, consistency breakdowns with specific gaps identified, all technical findings and recommendations with implementation guides, competitor analysis, and the ability to remove Spyglasses branding.\"},\"oneTimeFee\":{\"question\":\"Is this a one-time fee or subscription?\",\"answer\":\"Individual reports are priced at {price} as a one-time payment for lifetime access. No subscription required. However, if you're an agency or consultant who runs reports regularly, we offer subscription plans with blocks of reports and other benefits at significant volume discounts.\"},\"howOften\":{\"question\":\"How often should I run reports?\",\"answer\":\"We recommend running reports when you make major updates to your website, and every 6-8 weeks when major AI models are updated. This lets you track improvements from your optimization efforts and monitor changes in how AI systems represent your brand.\"},\"agencies\":{\"question\":\"Can I remove your branding for client reports?\",\"answer\":\"Yes! When you unlock a report, you can remove all Spyglasses branding and present it as your own work. This is perfect for agencies and consultants who want to showcase their expertise.\"},\"refund\":{\"question\":\"What's your refund policy?\",\"answer\":\"We unfortunately do not offer refunds on unlocked reports. We encourage you to review the sample reports to understand what you'll get.\"},\"technical\":{\"question\":\"What if the report found technical issues?\",\"answer\":\"The unlocked report includes detailed implementation guides for every issue found, with code examples, resource links, and estimated time to fix. Most quick fixes can be completed in under an hour.\"}}},\"pricing\":{\"oneTime\":\"One-time payment\",\"noSubscription\":\"No subscription required\",\"fullAccess\":\"Lifetime access to this report\"},\"backToReport\":\"← Back to Report\",\"person\":{\"hero\":{\"benefit1\":{\"description\":\"Access all discovery queries showing exactly how AI platforms describe this person, plus identity accuracy breakdowns across ChatGPT, Claude, Perplexity, and Google Gemini.\"}},\"demoReports\":{\"description\":\"Explore these unlocked reports to see the full depth of insights and analysis you'll receive.\"},\"faq\":{\"items\":{\"whatIncluded\":{\"answer\":\"You'll get complete access to all discovery queries, the full identity accuracy analysis showing exactly how each AI platform describes this person with and without web browsing, same-name confusion and outdated-role flags, tracked attribute results, and peer comparisons.\"},\"howOften\":{\"answer\":\"We recommend running a new report after major career changes, like a new role, a book, a funding round, or a press cycle, and every 6-8 weeks when major AI models are updated. That lets you track how AI's picture of you changes over time.\"}}}},\"dualCta\":{\"instant\":{\"badge\":\"Instant Access\",\"title\":\"Pay Once, Unlock Now\",\"benefit1\":\"Immediate full report access\",\"benefit2\":\"No account required\",\"benefit3\"
2:\"Lifetime access to this report\"},\"consultation\":{\"badge\":\"Free\",\"title\":\"Expert Consultation\",\"price\":\"FREE\",\"benefit1\":\"30-minute walkthrough with AEO expert\",\"benefit2\":\"Full report access included\",\"benefit3\":\"Personalized improvement recommendations\",\"benefit4\":\"Credits for an additional report\",\"button\":\"Schedule Free Consultation\"}},\"finalCta\":{\"title\":\"Ready to unlock your full report?\",\"description\":\"Get complete access to all insights, recommendations, and analysis for {domain}\",\"or\":\"or\",\"consultationButton\":\"Get Free Consultation\"},\"category\":{\"hero\":{\"benefit1\":{\"description\":\"Access all discovery queries showing exactly which brands AI names in this category, across ChatGPT, Claude, Perplexity, and Google Gemini.\"}},\"demoReports\":{\"description\":\"Explore these unlocked reports to see the full depth of insights and analysis you'll receive.\"},\"faq\":{\"items\":{\"whatIncluded\":{\"answer\":\"You'll get complete access to all discovery queries, the full ranked field of brands AI names in this category with per-prompt and per-platform detail, and the sources AI cited while answering.\"},\"howOften\":{\"answer\":\"We recommend running a new report every 6-8 weeks, and after any event that reshapes the market, like a launch, an acquisition, or a funding round. That lets you track which brands AI starts and stops naming.\"}}}}},\"implementationStepRenderer\":{\"copy\":\"Copy\",\"copied\":\"Copied!\",\"code\":\"code\"},\"reportView\":{\"pricingModel\":{\"title\":\"Pricing Model\",\"salesLed\":\"Sales-led ({count} sales CTAs found)\",\"public\":\"Public pricing available\",\"freemium\":\"Freemium model\",\"subscription\":\"Subscription-based\",\"usageBased\":\"Usage-based pricing\",\"unknown\":\"Unknown pricing model\"},\"category\":\"Category\",\"targetAudience\":\"Target Audience\",\"keyFeatures\":\"Key Features\",\"problemsSolved\":\"Problems Solved\",\"differentiators\":\"Differentiators\",\"pricingInformation\":\"Pricing Information\",\"identifiedCompetitors\":\"Identified Competitors\",\"unlockCompleteAnalysis\":{\"title\":\"Unlock Complete Analysis\",\"description\":\"Get access to competitor analysis, detailed recommendations, and more.\"}},\"v2\":{\"hero\":{\"eyebrow\":\"Track · AI Visibility Report\",\"title\":\"AI Visibility Report: how ChatGPT, Gemini, Claude, and Perplexity describe your brand.\",\"summary\":\"The AI Visibility Report is Spyglasses' one-time brand audit. From just a domain name, it runs live prompts across ChatGPT, Gemini, Claude, and Perplexity, measures brand consistency, mentions, share of voice, and citations, and hands you a three-month action plan. A rapid baseline for your own brand, or the fastest way to get smart on a client or prospect.\"},\"glance\":{\"summary\":\"The report at a glance\",\"fact1\":\"Runs live prompts across ChatGPT, Gemini, Claude, and Perplexity; no install, just a domain name.\",\"fact2\":\"Measures brand consistency, mentions, share of voice, and citations.\",\"fact3\":\"Includes a three-month action plan you can hand to a client.\",\"fact4\":\"$$15 per report, with a free preview.\"},\"measured\":{\"eyebrow\":\"What's measured\",\"title\":\"Four numbers that describe your AI presence\",\"lede\":\"Measured live across the major platforms and scored against your own site's story.\",\"consistency\":{\"label\":\"Brand consistency\",\"blurb\":\"How closely AI's version of your brand matches your own.\"},\"mentions\":{\"label\":\"Mentions\",\"blurb\":\"Where your brand shows up in the answers, platform by platform.\"},\"sov\":{\"label\":\"Share of voice\",\"blurb\":\"Your slice of the category conversation versus competitors.\"},\"citations\":{\"label\":\"Citations\",\"blurb\":\"Which of your pages AI actually cites, and how often.\"}},\"proof\":{\"eyebrow\":\"Who's running reports\",\"title\":\"Brands baseline their AI visibility with Spyglasses\"},\"demo\":{\"eyebrow\":\"See one first\",\"title\":\"Browse sample reports\",\"lede\":\"Real reports on real brands, shared with permission. What you see is what you get.\"}
2,\"trackingBand\":{\"message\":\"A report is day one. Daily tracking is every day after.\",\"label\":\"Daily Prompt Tracking\"},\"agencyBand\":{\"message\":\"Agencies: white-label the report and use free previews for prospecting.\",\"label\":\"For agencies\"},\"cta\":{\"title\":\"What does AI say about your brand?\",\"description\":\"Run the free preview now; the full report is $15.\",\"primary\":\"Get your free preview\",\"secondary\":\"Book a demo\"},\"faq\":{\"title\":\"AI Visibility Report FAQ\",\"description\":\"Common questions about the report.\",\"items\":{\"0\":{\"question\":\"What is an AI Visibility Report?\",\"answer\":\"It's a one-time audit of how ChatGPT, Gemini, Claude, and Perplexity describe your brand when consumers search for solutions in your category. It measures brand consistency, mentions, share of voice, and citations, and closes with a three-month action plan.\"},\"1\":{\"question\":\"Can I share the report with my team?\",\"answer\":\"Yes. Reports have share buttons for email and social, and unlocked reports export as PDF or PowerPoint. Agency accounts can add their own branding for client delivery.\"},\"2\":{\"question\":\"How often should I run one?\",\"answer\":\"Every 6 to 8 weeks, when the major AI models update. That cadence tracks improvements from your optimization work; for anything continuous, daily prompt tracking is the better tool.\"},\"3\":{\"question\":\"How do you measure brand consistency?\",\"answer\":\"We compare how AI platforms describe your brand against your own website's messaging. The score reflects gaps in key attributes, messaging alignment, and positioning accuracy.\"},\"4\":{\"question\":\"How do you define share of voice?\",\"answer\":\"The share of relevant AI answers that mention your brand versus competitors. If your brand appears in 3 of 10 category answers, your share of voice is 30%.\"},\"5\":{\"question\":\"How are citations measured?\",\"answer\":\"We track how often each platform references your brand and pages when answering category queries: frequency, context, and how you compare against competitors.\"},\"6\":{\"question\":\"What does 100% share of voice mean?\",\"answer\":\"Your brand appears in every relevant AI answer for the category: complete visibility over competitors in AI search for those queries.\"},\"7\":{\"question\":\"Can I track this over time instead of one report?\",\"answer\":\"Yes. Daily prompt tracking runs your prompts every day and turns these same metrics into trends, goals, and citation-level data.\"}}}}},\"supported-platforms\":{\"title\":\"Supported Platforms\",\"description\":\"Integrate Spyglasses with your favorite frameworks and platforms. More integrations coming soon.\",\"coming-soon\":\"Coming soon\"},\"hero\":{\"badge\":{\"new\":\"New:\",\"description\":\"AI Agent Detection \u0026 Analytics Platform\"},\"title\":\"See who finds you through AI\",\"subtitle1\":\"Your website is being mentioned in people's conversations with ChatGPT, Claude, Perplexity, and more.\",\"subtitle2\":\"But that traffic never shows up in your analytics.\",\"subtitle3\":\"Until now.\",\"cta\":{\"primary\":\"Start Free Trial\",\"secondary\":\"Schedule a Demo\"}},\"socialProof\":{\"joinTheseBrands\":\"Join\",\"text\":\"and {count} other brands who’ve checked their AI visibility for free\",\"peopleText\":\"{count} people have checked their AI visibility here for free\",\"personBento\":{\"reportsLabel\":\"personal AI visibility reports run here\",\"perks\":\"Free · No signup · Results in about two minutes\",\"platformsHeading\":\"Checked across every major AI engine\"}},\"products\":{\"title\":\"Measure AI visibility. Prove the impact.\",\"description\":\"Whether your team is placing earned media or optimizing content for AI search, Spyglasses shows what's working, what's not, and gives you the proof to share with clients.\",\"aiVisibilityReport\":{\"title\":\"AI Visibility Report\",\"description\":\"Audit how AI represents any brand. Compare responses to actual website messaging and get recommendations to improve accuracy.\",\"imageAlt\":\"AI Visibility Report showing brand consistency scores across AI platforms\",\"cta\":\"Run a Free Report\",\"href\":\"/ai-visibility-report\"},\"aiTrafficAnalytics\":{\"title\":\"AI Traffic Analytics\",\"description\":\"Track real-time visits and citations from ChatGPT, Google AI Overviews, Perplexity, Claude, and 600+ AI crawlers.\",\"imageAlt\":\"AI Traffic Analytics dashboard showing real-time citations\",\"cta\":\"Learn More\",\"href\":\"/ai-traffic-analytics\"},\"aiReadinessAudit\":{\"title\":\"AI Readiness Audit\",\"description\":\"Score pages across 7 weighted dimensions of AI citation readiness. Surface invisible technical barriers holding back visibility.\",\"
2imageAlt\":\"AI Readiness Audit dashboard showing page-level scores\",\"cta\":\"Learn More\",\"href\":\"/ai-readiness-audit\"},\"aipvs\":{\"title\":\"AI Placement Value Score\",\"description\":\"Quantify placement value combining organic authority and AI accessibility. Show PR clients which publishers deliver the most AI impact.\",\"imageAlt\":\"AI Placement Value Score showing citation readiness metrics\",\"cta\":\"Learn More\",\"href\":\"/ai-placement-value-score\"},\"pipelineOptimizer\":{\"title\":\"Citation Optimizer\",\"description\":\"See exactly why ChatGPT does or doesn't cite a page, with a specific fix for every gap. Score for free, then rewrite to get cited.\",\"imageAlt\":\"AI Search Citation Optimizer showing content performance across the citation pipeline\",\"cta\":\"Learn More\",\"href\":\"/citation-optimizer\"},\"faqGenerator\":{\"title\":\"FAQ Generator\",\"description\":\"Source Q\u0026A from People Also Ask, Reddit, and Quora. Export as HTML, JSON-LD, markdown, or CSV for AI-optimized content.\",\"imageAlt\":\"FAQ Generator dashboard showing AI-optimized question and answer generation\",\"cta\":\"Learn More\",\"href\":\"/faq-generation\"},\"visibilityProjects\":{\"title\":\"Visibility Projects\",\"description\":\"Goal-oriented prompt tracking with daily runs and statistical significance. Track SEO, PR, or general visibility over time.\",\"imageAlt\":\"Visibility Projects dashboard showing prompt tracking and rankings\",\"cta\":\"Learn More\",\"href\":\"/pricing\"}},\"newFinalCTA\":{\"title\":\"Start proving AI visibility ROI for your clients\",\"description\":\"Run an AI Visibility Report to benchmark how AI represents any brand. Then track citations, measure impact, and deliver proof in client-ready reports.\",\"cta\":{\"aiReport\":\"Run a Free AI Visibility Report\",\"analytics\":\"Explore Agency Plans\"},\"features\":\"No credit card required • Instant insights • White-labeled reports\"},\"videoShowcase\":{\"title\":\"See Spyglasses in Action\",\"description\":\"A 45-second look at how PR firms and marketing agencies use Spyglasses to measure and prove AI visibility for their clients.\"},\"supportedAnalytics\":{\"title\":\"Send Data Anywhere\",\"description\":\"Integrate with your existing analytics stack. No need to add another data source.\"},\"howItWorks\":{\"title\":\"What can Spyglasses do for you?\",\"description\":\"When your website can detect AI traffic, you unlock a whole new set of valuable insights.\",\"features\":{\"comprehensiveAnalytics\":{\"title\":\"Comprehensive Analytics\",\"description\":\"Complete visibility into all traffic sources\",\"content\":{\"title\":\"See Everything That Matters\",\"description\":\"Get a complete picture of your website traffic, including the AI agents that traditional analytics miss.\",\"highlights\":{\"item1\":\"Real-time traffic monitoring\",\"item2\":\"Detailed AI visitor insights\",\"item3\":\"Integrates with any web platform and analytics tool\"}}},\"aiTrafficAttribution\":{\"title\":\"AI Traffic Attribution\",\"description\":\"Track AI agents visiting your site\",\"content\":{\"title\":\"Understand Your AI Visitors\",\"description\":\"Identify which AI tools are accessing your content and how they're using it.\",\"highlights\":{\"item1\":\"ChatGPT, Claude, Perplexity detection\",\"item2\":\"Agent behavior analysis\",\"item3\":\"Content access patterns\",\"item4\":\"Attribution reporting\"}}},\"trafficControl\":{\"title\":\"Traffic Control\",\"description\":\"Want to stop AI companies from stealing your content? We've got you covered.\",\"content\":{\"title\":\"Protect Your Content\",\"description\":\"Advanced filtering to block malicious traffic and unauthorized AI model training.\",\"highlights\":{\"item1\":\"Real-time bot blocking\",\"item2\":\"Customizable block lists\",\"item3\":\"Model trainer detection\",\"item4\":\"Advanced traffic filtering\"}}},\"crawlFrequency\":{\"title\":\"Crawl Frequency Insights\",\"description\":\"Monitor search engine indexing\",\"content\":{\"title\":\"Track Your SEO Performance\",\"description\":\"Know exactly when search engines re-index your content and optimize accordingly.\",\"highlights\":{\"item1\":\"Google crawl monitoring\",\"
2item2\":\"Per-page and per-bot crawl frequency tracking\"}}},\"universalCompatibility\":{\"title\":\"Universal Compatibility\",\"description\":\"Works with any website platform\",\"content\":{\"title\":\"Seamless Integration\",\"description\":\"Deploy on any website platform with minimal setup. Send your AI visitors to any analytics tool you use.\",\"highlights\":{\"item1\":\"Google Analytics\",\"item2\":\"PostHog\",\"item3\":\"Plausible\",\"item4\":\"Others coming soon\"}}}}},\"agencyCallout\":{\"title\":\"Built for the teams AI search impacts most\",\"agencies\":{\"title\":\"For Marketing Agencies\",\"description\":\"Build an AEO/GEO practice your clients can see results from. Show them how their content performs in AI search, where to improve, and how your work drives measurable gains.\",\"benefits\":{\"audit\":\"AI Readiness Audit scores pages across 7 dimensions of citation readiness\",\"grounding\":\"Grounding Search Rankings reveal the queries AI uses to find content\",\"exports\":\"White-labeled reports and presentations for client delivery\"},\"cta\":\"Learn About Agency Plans\"},\"prFirms\":{\"title\":\"For PR Firms\",\"description\":\"Prove that your placements are reaching AI. Show clients which publications drive the most value in AI search and quantify the impact of earned media on the AI channel.\",\"benefits\":{\"aipvs\":\"AI Placement Value Score quantifies placement impact in AI search\",\"citations\":\"Citation Intelligence shows which publishers influence AI responses\",\"tracking\":\"PR Projects track when placements become AI citations over time\"},\"cta\":\"Learn About PR Plans\"}},\"finalCTA\":{\"title\":\"Ready to dominate ChatGPT and Google AI Overviews?\",\"description\":\"Join hundreds of brands already tracking their AI visibility. Get your free AI Visibility Report and start optimizing how ChatGPT and Google AI Overviews represent your brand.\",\"cta\":{\"primary\":\"Get Free Report\",\"secondary\":\"View Documentation\"},\"features\":\"No credit card required • Instant insights • Setup in under 5 minutes\"},\"aiAnalyticsLive\":{\"title\":\"Live AI Traffic Analytics Demo\",\"description\":\"Live demo of AI traffic analytics across ChatGPT, Google AI Overviews, Gemini, Perplexity, and Claude. Watch real-time AI traffic data from the Spyglasses website.\",\"hero\":{\"badge\":\"Live Data Preview\",\"title\":\"See How Our AI Analytics Works\",\"description\":\"This is real, live data from the Spyglasses website showing AI visits and human referrals. Watch the trends unfold in real-time.\",\"cta\":{\"primary\":\"Track Your AI Traffic\",\"secondary\":\"Watch Demo Video\"}},\"dashboard\":{\"title\":\"Live AI Analytics Dashboard\",\"description\":\"This data updates automatically and shows the last 7 days of AI traffic patterns\",\"liveBadge\":\"Live Data\"},\"explanation\":{\"title\":\"What You're Seeing\",\"aiVisits\":{\"title\":\"AI Bot Visits\",\"description\":\"These are AI models like ChatGPT, Claude, and Gemini browsing the website as part of user conversations. Each spike represents increased AI activity.\"},\"humanVisits\":{\"title\":\"AI-Referred Human Visits\",\"description\":\"These are real humans who clicked links provided by AI models. This shows how AI is driving qualified traffic to websites.\"}},\"filters\":{\"title\":\"Try the Filters - This is Live Data!\",\"description\":\"These filters work on real data from the Spyglasses website. Change them to see how the data updates.\"},\"fallback\":{\"title\":\"Demo Data Temporarily Unavailable\",\"description\":\"Our live demo is currently being updated. Check out our recorded demo instead, or create an account to see your own data.\",\"cta\":{\"primary\":\"Get Started Today\",\"secondary\":\"Watch Demo Video\"}},\"finalCTA\":{\"title\":\"Prove ROI for Your AI SEO Efforts\",\"description\":\"Join agencies and marketing teams using Spyglasses to measure visibility, track traffic from AI platforms, and demonstrate clear value to clients\",\"cta\":{\"primary\":\"Start Tracking Today\"}}},\"aiAccessChecker\":{\"meta\":{\"title\":\"AI Access Checker | Check Any Site's AI Visibility\",\"description\":\"Check if a website's robots.txt is blocking ChatGPT, Claude, Perplexity, and other AI crawlers. Essential for SEO and PR professionals evaluating backlink targets.\"},\"badge\":\"Free Tool\",\"title\":\"Is This Site Blocking AI?\",\"subtitle\":\"Is your backlink target actually visible to ChatGPT, Claude, and Perplexity?\",\"form\":{\"placeholder\":\"Enter a domain (e.g., example.com)\",\"submit\":\"Check AI Access\",\"checking\":\"Checking...\",\"hint\":\"We'll analyze the site's robots.txt for AI crawler restrictions\",\"validation\":{\"enterDomain\":\"Please enter a domain\",\"invali
2dDomain\":\"Please enter a valid domain\",\"reservedDomain\":\"This appears to be a reserved domain (localhost, etc.)\",\"notListedDomain\":\"This doesn't appear to be a public domain\"},\"error\":{\"title\":\"Check failed\",\"generic\":\"Failed to check AI access. Please try again.\"}},\"status\":{\"red\":\"Critical - AI Blocked\",\"yellow\":\"Warning - Partial Block\",\"green\":\"All Clear\"},\"results\":{\"robotsTxtFound\":\"robots.txt found\",\"robotsTxtNotFound\":\"No robots.txt\",\"botsBlocked\":\"Bots blocked\",\"wildcardDisallow\":\"Wildcard block\",\"noWildcardDisallow\":\"No wildcard block\",\"spyglassesAccess\":\"Spyglasses access\",\"viewRobotsTxt\":\"View robots.txt\",\"learnMore\":\"How to fix this\",\"blockedAiVisitors\":\"Blocked AI Visitors\",\"blockedAiTrainers\":\"Blocked AI Model Trainers\",\"aiVisitorsExplanation\":\"These AI assistants cite content in real-time. Blocking them prevents your content from appearing in AI-generated responses.\",\"aiTrainersExplanation\":\"These bots collect data to train AI models. Blocking them affects future model knowledge but not current responses.\",\"recommendation\":\"Recommendation\",\"redRecommendation\":\"This site blocks AI visitors that could cite its content in real-time responses from ChatGPT, Claude, and Perplexity. If you're evaluating this site for a backlink, the link may have reduced value for AI-driven discovery.\",\"yellowRecommendation\":\"This site blocks AI model trainers but allows real-time AI visitors. Current AI assistants can cite this content, but future AI models may not include it in their training data.\",\"howToFix\":\"Learn how to fix robots.txt issues\"},\"howItWorks\":{\"title\":\"How It Works\",\"subtitle\":\"Instantly check any site's AI accessibility and placement value\",\"step1\":{\"title\":\"Enter a Domain\",\"description\":\"Paste any domain you want to check — a potential backlink target, your own site, or a competitor's.\"},\"step2\":{\"title\":\"We Analyze Access\",\"description\":\"We fetch the site's robots.txt and check for restrictions against 40+ AI crawlers and model trainers.\"},\"step3\":{\"title\":\"We Score the Domain\",\"description\":\"We compute an AI Placement Value Score combining organic authority, AI citation access, and training influence.\"},\"step4\":{\"title\":\"Get Actionable Results\",\"description\":\"See which AI bots are blocked, the domain's placement value, and recommendations to maximize AI visibility.\"}},\"whyItMatters\":{\"title\":\"Why This Matters for SEO \u0026 PR\",\"subtitle\":\"AI visibility is the new battleground for brand discovery\",\"backlinks\":{\"title\":\"Evaluate Backlink Quality\",\"description\":\"Before pursuing a backlink, check if the target site is even visible to AI assistants. A site that blocks ChatGPT and Claude won't pass AI discovery value, no matter how authoritative.\"},\"visibility\":{\"title\":\"Maximize AI Discovery\",\"description\":\"AI assistants are increasingly how consumers research products and services. If your content or your earned media placements are blocked, you're missing out on a growing channel.\"}},\"cta\":{\"title\":\"Use This Data in Your Earned Media Workflow\",\"subtitle\":\"Want to see how a placement on this publisher influences your site, or your client's? Start a free Spyglasses trial to score any domain, track AI visibility trends, and make data-driven placement decisions.\",\"button\":\"Start Free Trial\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What does this tool check?\",\"answer\":\"This tool analyzes a website's robots.txt file to determine if AI crawlers and chatbots are blocked from accessing the content. It checks for restrictions against AI visitors like ChatGPT, Claude, and Perplexity, as well as AI model trainers like GPTBot and Google-Extended.\"},\"q2\":{\"question\":\"Why does AI access matter for SEO and PR?\",\"answer\":\"AI assistants like ChatGPT, Claude, and Perplexity are increasingly used by consumers to research products and services. If your content is blocked by robots.txt, these AI systems cannot cite your website in their responses, potentially reducing your brand's visibility and the value of backlinks pointing to your site.\"},\"q3\":{\"question\":\"What's the difference between red, yellow, and green status?\",\"answer\":\"Red status means AI visitors (bots that cite content in real-time like ChatGPT and Claude) are blocked - this has immediate visibility impact. Yellow status means AI model trainers (bots that collect training data like GPTBot) are blocked - this affects future AI model knowledge. Green status means no significant AI restrictions.\"},\"q4\":{\"question\":\"How does this affect the value of my backlinks?\",\"answer\":\"If a site blocks AI crawlers, any backlink you earn from that site may have reduced value in AI-driven search and recommendations. AI assistants won't be able to discover or cite content from sites with restrictive robots.txt policies, limiting the reach of your earned media placements.\"},\"q5\":{\"question\":\"Should I block AI crawlers on my site?\",\"answer\":\"It depends on your goals. Blocking AI model trainers can prevent your content from being used to train future AI models, but blocking AI visitors prevents your content from being cited in AI-generated responses. Most brands benefit from allowing AI visitors to maximize visibility while potentially restricting model trainers.\"},\"q6\":{\"question\":\"How do I fix robots.txt issues?\",\"answer\":\"To allow AI crawlers, you need to modify your robots.txt file to remove or adjust User-agent rules that block them. This typically involves allowing user agents like GPTBot, ChatGPT-User, Claude-Web, and PerplexityBot. See our detailed guide for specific instructions.\"},\"q7\":{\"question\":\"What if no robots.txt is found?\",\"answer\":\"If a website has no robots.txt file, all crawlers (including AI bots) have unrestr
2icted access. This is actually good for AI visibility - it means your content can be discovered and cited by AI assistants. However, you may want to create a robots.txt to have more control over which bots can access your site.\"},\"q8\":{\"question\":\"Can I track when AI bots visit my site?\",\"answer\":\"Yes! Spyglasses AI Traffic Analytics can detect and log visits from AI crawlers in real-time. You can see which AI bots are visiting your site, how often, and what content they're accessing. You can even use our traffic control features to selectively block or allow specific bots without modifying your robots.txt.\"}}},\"commonCrawlRankChecker\":{\"meta\":{\"title\":\"Common Crawl Rank Checker | Check Your Domain's AI Authority\",\"description\":\"Look up any domain's Harmonic Centrality rank and PageRank in the Common Crawl web graph that trains AI models. See your authority grade and AI Placement Value Score, free.\"},\"badge\":\"Free Tool\",\"title\":\"How Authoritative Is Your Domain to AI?\",\"subtitle\":\"Check your rank in the web graph that trains ChatGPT, Claude, Gemini, and Perplexity.\",\"form\":{\"placeholder\":\"Enter a domain (e.g., example.com)\",\"submit\":\"Check Rank\",\"checking\":\"Checking...\",\"hint\":\"We check your domain against the top 10 million domains in Common Crawl's web graph.\",\"validation\":{\"enterDomain\":\"Please enter a domain to check.\",\"invalidDomain\":\"Please enter a valid domain (e.g., example.com).\",\"reservedDomain\":\"That looks like a reserved domain. Please enter a public website.\",\"notListedDomain\":\"We couldn't recognize that domain. Please check the spelling and try again.\"},\"error\":{\"title\":\"Lookup failed\",\"generic\":\"Something went wrong looking up that domain. Please try again.\"}},\"results\":{\"hcLabel\":\"Harmonic Centrality\",\"pageRankLabel\":\"PageRank\",\"topPercent\":\"Top {percent}%\",\"rankLine\":\"rank {rank}\",\"lowerIsBetter\":\"Percentile is your standing among the top 10 million domains we track, not the full web graph, which is mostly inactive or single-page sites. A lower rank number is better.\",\"notAvailable\":\"N/A\",\"notFoundTitle\":\"Not in the tracked top domains\",\"notFoundBody\":\"This domain isn't in the top {count} domains by Harmonic Centrality. That's common for newer or niche sites. Building authoritative links and brand mentions moves this up over time.\",\"provenanceRelease\":\"Checked against the {release} graph\",\"provenanceTracked\":\"{count} domains tracked\",\"provenanceUpdated\":\"updated {date}\",\"aipvsLoading\":\"Computing AI Placement Value Score...\",\"aipvsError\":\"Unable to compute placement value score for this domain.\"},\"tiers\":{\"elite\":{\"label\":\"Elite\",\"description\":\"Among the top 1,000 most central domains on the web. AI models see these sites constantly in training data.\"},\"authoritative\":{\"label\":\"Authoritative\",\"description\":\"In the top 10,000 domains. A major publisher or institution with a strong, well-connected web presence.\"},\"established\":{\"label\":\"Established\",\"description\":\"In the top 100,000 domains. Well-linked and recognized, with meaningful authority in its space.\"},\"strong\":{\"label\":\"Strong\",\"description\":\"In the top 1,000,000 domains on the web. A solid, well-connected footprint that AI models can lean on.\"},\"emerging\":{\"label\":\"Emerging\",\"description\":\"In the tracked top 10,000,000 domains, with room to build centrality in the web graph.\"},\"unranked\":{\"label\":\"Unranked\",\"description\":\"Not in the tracked top 10,000,000 domains by Harmonic Centrality. Building authority moves this up.\"}},\"howItWorks\":{\"title\":\"How It Works\",\"subtitle\":\"From a domain to an AI authority signal in seconds.\",\"step1\":{\"title\":\"Enter a domain\",\"description\":\"Type any website. We normalize it and look it up in the Common Crawl web graph.\"},\"step2\":{\"title\":\"Find it in the graph\",\"description\":\"We return its Harmonic Centrality rank and PageRank from the top 10 million domains.\"},\"step3\":{\"title\":\"Rank its authority\",\"description\":\"We place the rank into a named authority tier, from Elite down to Emerging.\"},\"step4\":{\"title\":\"Score its AI value\",\"description\":\"We add a full AI Placement Value Score so you can act on it.\"}},\"whyItMatters\":{\"title\":\"Why Common Crawl Rank Matters\",\"subtitle\":\"The web graph AI learned from shapes who it trusts.\",\"training\":{\"title\":\"It feeds AI training data\",\"description\":\"Common Crawl is one of the largest sources of AI training data. It crawls high-centrality domains most often, so authoritative sites show up more in what models learn. That gives them a head start in AI answers.\"},\"earnedMedia\":{\"title\":\"It changes earned media value\",\"description\":\"A placement is only as valuable as the authority of the site it lives on. Coverage on a deeply-connected domain moves the needle for AI far more than the same story on an isolated site.\"}},\"cta\":{\"title\":\"Turn authority data into a strategy\",\"subtitle\":\"Create a free Spyglasses account to check any domain and use this data to guide your earned media and backlink strategy.\",\"button\":\"Get started free\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What does this tool check?\",\"answer\":\"It looks up a domain in Common Crawl's web graph and reports its Harmonic Centrality rank, its PageRank, and where it sits in the overall graph. It also shows an authority grade from A to F and a full AI Placement Value Score.\"},\"q2\":{\"question\":\"What is Harmonic Centrality?\",\"answer\":\"Harmonic Centrality measures how central a domain is in the web's link graph, based on how easily it can be reached from every other site through short link paths. A high score means many well-connected sites are only a few links away from you. It is harder to game than raw link counts, so it is a strong signal of real authority.\"},\"q3\":{\"question\":\"Why does Common Crawl rank matter for AI visibility?\",\"answer\":\"Common Crawl is one of the largest sources of training data for large language models. It uses Harmonic Centrality to decide which sites to crawl most, so high-centrality domains appear more often in the data AI models learn from. That gives them a baseline familiarity and authority in AI answers.\"}
2,\"q4\":{\"question\":\"Why do you only cover the top 10 million domains?\",\"answer\":\"Common Crawl's full web graph contains hundreds of millions of domains. We load the top 10 million by Harmonic Centrality, which covers the sites with meaningful authority. If a domain is not in the top 10 million, we report it as unranked, which still tells you there is room to build its standing.\"},\"q5\":{\"question\":\"How is the authority grade calculated?\",\"answer\":\"The grade is based on a domain's Harmonic Centrality rank. Grade A is the top 1,000 domains, B is the top 10,000, C is the top 100,000, D is the top 1,000,000, and E covers the rest of the tracked top 10,000,000. Domains outside the tracked set receive an F. The buckets are log-scale, so each grade is roughly a tenfold difference in centrality.\"},\"q6\":{\"question\":\"How can I improve my domain's rank?\",\"answer\":\"Earn links and brand mentions from sites that are themselves deeply embedded in the web's core, such as major publishers and institutions. Link topology beats link volume: one link from a highly central site can move your Harmonic Centrality more than dozens from isolated pages. Keeping an accurate Wikidata entity and Wikipedia presence, and running earned media that produces authoritative coverage, all help over time.\"},\"q7\":{\"question\":\"How does this relate to the AI Placement Value Score?\",\"answer\":\"The AI Placement Value Score combines a domain's organic authority (which includes its PageRank standing from this same Common Crawl data), how accessible it is to AI crawlers, and how much influence it carries in AI training data. Your Common Crawl rank is one of the core inputs, so a strong rank tends to lift the placement value of coverage earned on that domain.\"},\"q8\":{\"question\":\"Is this data live?\",\"answer\":\"We refresh the dataset each time Common Crawl publishes a new web graph release. The results page shows which release is loaded, how many domains are tracked, and the date it was last updated, so you always know how current the numbers are.\"}}},\"aipvs\":{\"meta\":{\"title\":\"AI Placement Value Score | Measure Publisher Value for AI Visibility\",\"description\":\"Score any domain's combined organic authority and AI accessibility. The AI Placement Value Score helps PR, comms, and marketing professionals evaluate earned media placements for the age of AI search.\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What is the AI Placement Value Score?\",\"answer\":\"The AIPVS is a 0-100 score that combines a domain's organic search authority with its accessibility to AI assistants. It tells you how much combined value a media placement on that domain delivers in both traditional search and AI-powered discovery.\"},\"q2\":{\"question\":\"How is it different from Domain Authority or Domain Rating?\",\"answer\":\"Traditional metrics like Moz DA and Ahrefs DR measure organic search authority only. The AIPVS adds two AI-specific layers: whether AI assistants can cite the domain's content (citation accessibility) and how influential the domain is in AI training data. A domain with a high DA but strict AI blocks will score lower on the AIPVS because its AI discovery value is limited.\"},\"q3\":{\"question\":\"What data sources does it use?\",\"answer\":\"The score draws from DataForSEO for organic authority metrics, Common Crawl for web graph structure (250M+ host nodes), Similarweb and Cloudflare Radar for AI platform market share, and live robots.txt analysis with infrastructure-level verification.\"},\"q4\":{\"question\":\"Can I use my own domain authority data instead?\",\"answer\":\"Yes. Through our API, you can supply your own organic baseline (such as Ahrefs DR or SEMrush Authority Score) and we'll apply only the AI impact layers. You can also request just the AI Impact Multiplier — a number between 0.40 and 1.00 — and multiply it against any metric you choose.\"},\"q5\":{\"question\":\"How often are scores updated?\",\"answer\":\"AI platform weights are reviewed and updated quarterly as the AI market evolves. Organic authority data is refreshed at least monthly. Access verification is based on live or recently cached checks.\"},\"q6\":{\"question\":\"Is there a free version?\",\"answer\":\"Yes. The AI Access Checker is a free tool that checks any domain's AI crawler access and computes a basic AIPVS. A Spyglasses account allows you to see how placements impact specific sites - yours, or your client's.\"}},\"v2\":{\"hero\":{\"eyebrow\":\"Score · AI Placement Value Score\",\"title\":\"AI Placement Value Score: what a publisher is worth in AI discovery.\",\"summary\":\"AIPVS is Spyglasses' publisher score for the AI channel. It combines a domain's organic authority with its AI accessibility, whether ChatGPT, Gemini, Claude, and Perplexity can actually read and cite it, so PR teams know what a placement is 
2worth before they pitch and after they land it.\",\"primaryCta\":\"Score a publisher\",\"secondaryCta\":\"Read the methodology\"},\"glance\":{\"summary\":\"AIPVS at a glance\",\"fact1\":\"Combines organic authority with AI accessibility in one score.\",\"fact2\":\"Catches outlets that block AI crawlers, where placements can't influence answers.\",\"fact3\":\"Compare publishers side by side before you pitch.\",\"fact4\":\"Pairs with PQS, which scores the specific article rather than the outlet.\"},\"variable\":{\"eyebrow\":\"The new variable\",\"title\":\"A great placement AI can't see is a report line, not an asset\",\"lede\":\"Many major outlets block AI crawlers outright. The coverage report looks great; the AI channel never sees it. AIPVS makes that visible before you spend the pitch.\"},\"components\":{\"eyebrow\":\"What goes into the score\",\"title\":\"Authority, plus access\",\"lede\":\"Organic authority says the outlet matters; AI accessibility says the AI channel can use it. AIPVS weighs both, so a mid-tier outlet that AI reads can outscore a famous one that AI can't.\"},\"compare\":{\"eyebrow\":\"Compare publishers\",\"title\":\"Rank the outlets that shape your market\",\"lede\":\"Score any publisher on demand and line them up. The pitch list orders itself.\"},\"proofBand\":{\"message\":\"Watch scored publishers actually show up in answers.\",\"label\":\"Citation Intelligence\"},\"pqsBand\":{\"message\":\"The outlet is half the story. PQS scores the specific article.\",\"label\":\"AI Placement Quality Score\"},\"cta\":{\"title\":\"Know what the placement is worth.\",\"description\":\"Score a publisher in seconds; no setup required.\",\"primary\":\"Score a publisher\",\"secondary\":\"Book a demo\"},\"video\":{\"label\":\"A 25-second explainer: a coverage report looks strong until an AI access check shows one major outlet blocks every AI assistant; AIPVS combines organic authority with AI access, and a pitch list re-sorts by AI Placement Value Score.\"}}},\"mediaList\":{\"meta\":{\"title\":\"Media Lists: Build a PR Media List AI Can Actually See\",\"description\":\"Build your PR media list with traffic, authority, AI Placement Value Score and AI citation counts on every outlet. Track each pitch and share the list with your client for sign-off.\"},\"hero\":{\"eyebrow\":\"Media Lists\",\"title\":\"Pitch the outlets AI actually reads\",\"summary\":\"Build your media list with the traffic and authority numbers you already use, plus the one they miss: whether AI can see and cite the outlet. Then share it with your client for sign-off.\",\"primaryCta\":\"Start free trial\",\"secondaryCta\":\"Read the docs\"},\"glance\":{\"summary\":\"Media Lists at a glance\",\"fact1\":\"Every outlet on the list shows its traffic, its authority, its AI Placement Value Score tier and how often AI already cites it for your prompts.\",\"fact2\":\"Add any outlet by name or domain, paste a column of domains, add from Publisher Lookup, or pull in the outlets AI cites for your competitors but not you.\",\"fact3\":\"Move each pitch from Target to Pitched to Placed, with a note on every row.\",\"fact4\":\"Share a read-only link or PDF, white-labeled on agency plans, so your client can sign off.\"},\"video\":{\"label\":\"A media list sorted by traffic gets scored for AI, re-sorted by what AI already cites, worked from Target to Placed, and shared with a client.\"},\"blindSpot\":{\"eyebrow\":\"The blind spot\",\"title\":\"A big number doesn't mean AI can see it\",\"lede\":\"Traffic and authority scores tell you how big an outlet is. They don't tell you whether ChatGPT, Gemini or Perplexity can read it. Plenty of top-tier sites block AI crawlers, so a hit there never reaches an AI answer.\",\"bandMessage\":\"AIPVS scores what a placement on each outlet is worth, including whether AI can read the site at all.\",\"bandLabel\":\"AI Placement Value Score\"},\"build\":{\"eyebrow\":\"Build\",\"title\":\"Start from what AI already cites\",\"lede\":\"Look up any outlet by name or domain, paste a column of domains, or add outlets straight from Publisher Lookup. Or start from your earned-media gaps: the outlets AI cites for your competitors but not you. Every outlet you add shows up with its traffic, authority and AI numbers.\"},\"work\":{\"eyebrow\":\"Work\",\"title\":\"Know where every pitch stands\",\"lede\":\"Move each outlet from Target to Pitched to Placed, and keep a note on every row: the angle, the contact, the embargo. A declined outlet stays on the list, so you can pitch it again next quarter. When a scored placement lands on an outlet you pitched, the row asks if you want to mark it Placed. The status is always your team's call.\"},\"share\":{\"eyebrow\":\"Share\",\"title\":\"Get client sign-off in one link\",\"lede\":\"Turn on a read-only link and send it. Your client sees the numbers, your notes and a short “How to read this” guide. On agency plans the page shows your agency's name and logo, not Spyglasses. Need it for the deck? Download a PDF, or a CSV for the spreadsheet.\"}
2,\"coverageBand\":{\"message\":\"When the story runs, send its placements to a coverage report and see which ones AI cites.\",\"label\":\"Coverage Reports\"},\"prBand\":{\"message\":\"See the whole PR workflow, from the first pitch to the coverage AI cites.\",\"label\":\"For PR \u0026 Comms\"},\"cta\":{\"title\":\"Pitch where AI is already reading\",\"description\":\"Start a free trial, add your targets, and see which outlets AI already cites for your prompts.\",\"primary\":\"Start free trial\",\"secondary\":\"Book a demo\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What is a media list in Spyglasses?\",\"answer\":\"It's a named list of the outlets your team plans to pitch, like “Fall launch targets.” In the Spyglasses app it's called a Pitch List. Every outlet shows its traffic, its authority, its AI Placement Value Score tier and how often AI already cites it for your brand's prompts, plus a status and a note. Share it with your client when it's ready for sign-off.\"},\"q2\":{\"question\":\"Can I build a media list from Claude or another AI assistant?\",\"answer\":\"Yes. Connect the Spyglasses MCP server to Claude or any MCP client, and your assistant can pull up your media lists, read one with its statuses, notes and citation counts, and add outlets to a list. Name a list that doesn't exist yet and it gets created for you. Adding outlets spends no credits.\"},\"q3\":{\"question\":\"Where do the citation counts come from?\",\"answer\":\"They count how many times ChatGPT, Gemini, Claude, Perplexity or Google AI Overviews cited a page on the outlet in answers to your brand's tracked prompts. In the app you pick a 30, 90 or 365-day window. The shared page and the PDF use the last 90 days. A zero means AI hasn't cited the outlet for these prompts yet, not that it never will.\"},\"q4\":{\"question\":\"Can my client see the list, and does it show our branding?\",\"answer\":\"Yes. Turn on a public link and your client gets a read-only page with the numbers, your notes and a short guide to reading them. Nothing on it can be edited. On agency plans the page and the PDF show your agency's name and logo, with no Spyglasses branding. Turn the link off whenever you want to revoke it.\"},\"q5\":{\"question\":\"What's the difference between a media list and a coverage report?\",\"answer\":\"They're two ends of the same campaign. A media list holds outlets before the story runs: the ones you plan to pitch. A coverage report holds placement URLs after it runs: the articles you landed. When a pitched outlet runs the story, mark it Placed and send its placements to a coverage report.\"},\"q6\":{\"question\":\"Can I build one list across all my clients?\",\"answer\":\"Yes. Organization lists span your whole book of business, and each row can name a brand or none. Rows for a brand you track count that brand's citations, and rows with no brand count citations across every brand you track. Rows for a brand you don't track still get their scores, with citations marked Not tracked.\"}},\"widgets\":{\"blocksAi\":\"Blocks AI crawlers\",\"openToAi\":\"Open to AI crawlers\",\"status\":{\"target\":\"Target\",\"pitched\":\"Pitched\",\"placed\":\"Placed\",\"declined\":\"Declined\"},\"listName\":\"Fall launch targets\",\"tableEyebrow\":\"Pitch list · {brand}\",\"sortedBy\":\"Sorted by Est. Traffic\",\"colPublisher\":\"Publisher\",\"colTraffic\":\"Traffic\",\"colDr\":\"DR\",\"colAipvs\":\"AIPVS\",\"colCited\":\"Cited\",\"colStatus\":\"Status\",\"tableFootnote\":\"Cited: times AI cited the outlet for {brand}'s prompts in the last {days} days.\",\"estTraffic\":\"Est. Traffic\",\"domainRank\":\"Domain Rank\",\"aiCitationsWindow\":\"AI citations, {days} days\",\"sources\":{\"search\":{\"label\":\"Search publishers\",\"hint\":\"By name or domain\"},\"paste\":{\"label\":\"Paste domains\",\"hint\":\"One per line\"},\"lookup\":{\"label\":\"Publisher Lookup\",\"hint\":\"Score any outlet first\"},\"gaps\":{\"label\":\"Earned-media gaps\",\"hint\":\"Cited for rivals, not you\"}},\"gapsHeader\":\"AI cites these for your competitors, not for you\",\"citedFor\"
2:\"Cited for {names}\",\"selected\":\"{count} selected\",\"addToList\":\"Add to pitch list\",\"declinedCount\":\"{count} Declined\",\"declinedKept\":\"Kept on the list for next quarter\",\"note\":\"Note\",\"notes\":{\"trailheadReview\":\"Ran the Ridgeline 2 review Sep 18. Ask about the winter roundup.\",\"summitWeekly\":\"Pitched the Ridgeline 2 launch to the gear desk. Follow up Oct 14.\",\"basecampGear\":\"Best tents under $400 update, due in October.\"},\"found\":\"Found: {url} · AIPQS {score}\",\"placementFound\":\"Placement found\",\"markPlaced\":\"Mark as Placed?\",\"readOnlyLink\":\"Read-only link\",\"sharedEyebrow\":\"Pitch list\",\"sharedMeta\":\"For {brand} · Prepared by {agency} on {date}\",\"preparedOn\":\"Sep 22, 2026\",\"kpiPublishers\":\"Publishers\",\"kpiAlreadyCited\":\"Already cited\",\"kpiPlaced\":\"Placed\",\"kpiPremiumStrong\":\"Premium + Strong\",\"howToRead\":\"How to read this ›\",\"orDownload\":\"Or download:\"}},\"coverageReport\":{\"meta\":{\"title\":\"Coverage Reports: Prove Your Earned Media Shows Up in AI Answers\",\"description\":\"Paste a month of PR placements, score every URL, and see which ones ChatGPT, Gemini, Claude, Perplexity and Google AI Overviews cite, with one influence rate for the client report.\"},\"hero\":{\"eyebrow\":\"Coverage Reports\",\"title\":\"See which coverage AI actually cites\",\"summary\":\"Paste a month of placements in one go. Spyglasses scores every URL, watches your tracked prompts, and tells you what share of AI's sources came from your team's work.\",\"primaryCta\":\"Start free trial\",\"secondaryCta\":\"Read the docs\"},\"glance\":{\"summary\":\"Coverage Reports at a glance\",\"fact1\":\"Paste hundreds of placement URLs at once, syndicated copies and YouTube links included.\",\"fact2\":\"Every URL gets an AI Placement Quality Score, and its publisher's AI Placement Value Score sits beside it.\",\"fact3\":\"Attach the report to a PR project as one goal with one influence rate, then export it as a PDF for the client.\",\"fact4\":\"See the prompt, the platform and the sentence where AI cited each placement.\"},\"video\":{\"label\":\"A month of placement URLs gets pasted in, scored, and tracked into AI answers, ending in one influence rate for the client report.\"},\"gap\":{\"eyebrow\":\"The gap\",\"title\":\"A coverage report can't tell you if AI noticed\",\"lede\":\"Clips, reach and impressions show the story ran. They don't show whether ChatGPT used it when a buyer asked about your category.\"},\"import\":{\"eyebrow\":\"Import\",\"title\":\"One paste, one goal\",\"lede\":\"Paste the month's placements, one URL per line, with or without https. Tracking tags and www get stripped so nothing double counts. Syndicated copies stay as their own placements, and YouTube links match however AI cites the video. You'll see exactly what was added.\"},\"score\":{\"eyebrow\":\"Score\",\"title\":\"Every placement gets scored\",\"lede\":\"Each URL gets an AI Placement Quality Score for how well the article is set up to be cited, next to its publisher's AI Placement Value Score. Rows are tagged by media type and format, like Review, Listicle or News, with the same labels Citation Intelligence uses. So your coverage mix lines up with what AI cites.\"},\"influence\":{\"eyebrow\":\"Influence\",\"title\":\"One number for the client report\",\"lede\":\"Attach the report to a PR project and the whole list tracks as one goal with one influence rate: the share of the project's AI citations that came from your coverage. Citations that already happened count the day you attach it, and every nightly run adds the new ones. Then send the client a PDF of the whole report.\"},\"proof\":{\"eyebrow\":\"Proof\",\"title\":\"See exactly where AI cited you\",\"lede\":\"Every citation hit shows the prompt, the platform and the sentence around your placement. Then compare the coverage AI cited with the coverage it skipped. That's your brief for the next round of pitches.\",\"hitHeading\":\"The hit, in context\",\"hitBody\":\"Click through to the full answer, opened to the platform that cited y
2ou.\",\"compareHeading\":\"Cited vs. not cited\",\"compareBody\":\"What the coverage AI used has in common. Aim the next pitch there.\"},\"mediaListBand\":{\"message\":\"Plan the next round: build a media list of the outlets AI already reads.\",\"label\":\"Media Lists\"},\"pqsBand\":{\"message\":\"See how one article is scored, and what makes it easier for AI to cite.\",\"label\":\"AI Placement Quality Score\"},\"cta\":{\"title\":\"Find out which coverage AI used\",\"description\":\"Start a free trial, paste last month's placements, and watch every URL get scored.\",\"primary\":\"Start free trial\",\"secondary\":\"Book a demo\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What is a coverage report in Spyglasses?\",\"answer\":\"It's your list of placement URLs for a campaign or a month, tracked as one goal on a PR project. In the Spyglasses app it's called a Coverage Group. Paste in any web URL: news articles, blog posts, YouTube videos and Shorts, LinkedIn posts and syndicated copies. One URL per line works, or a comma or tab separated list, with or without https.\"},\"q2\":{\"question\":\"How is the influence rate calculated?\",\"answer\":\"It's the share of a PR project's AI citations that point to URLs in the report. If the project's tracked prompts produced 340 citations and 31 of them were your coverage, the rate is 9%. Each project works out its own rate against its own prompts, so one coverage report can sit on several projects.\"},\"q3\":{\"question\":\"Do syndicated copies count?\",\"answer\":\"Yes, and you should import them. AI platforms cite syndicated copies often, and each URL only matches itself. A story that ran on the original site and two syndication partners is three placements that can each earn citations.\"},\"q4\":{\"question\":\"What's the difference between cited inline, evaluated source and search result?\",\"answer\":\"Cited inline means the answer text itself referenced your page. That one's a win. Evaluated source means the AI read the page while writing the answer but didn't reference it. Search result means your page showed up in the search the AI ran, but the AI may never have read it. Each one points to a different fix.\"},\"q5\":{\"question\":\"What's the difference between a coverage report and a placement?\",\"answer\":\"A placement is the quality analysis of one mention, with its AI Placement Quality Score. A coverage report is a list of placement URLs tracked together as one project goal. They're linked: pasting URLs into a coverage report creates and scores a placement for each one.\"},\"q6\":{\"question\":\"Can I export it for a client?\",\"answer\":\"Yes. Download a client-ready PDF with the report's name, four summary tiles, and every URL with its title, author, publish date, AI Placement Quality Score, AI Placement Value Score and citation count. On agency plans the PDF shows your agency's name, logo and website instead of Spyglasses branding. There's a CSV of the full table too, and the AI citations page exports every citation hit with the prompt, the platform and the sentence around your placement.\"}},\"widgets\":{\"groupName\":\"Spring launch coverage\",\"projectName\":\"Ridgeline 2 launch\",\"groupHeader\":\"{name} · {count} URLs\",\"influenceLine\":\"\u003cstrong\u003eCoverage: {name} ({urls} URLs)\u003c/strong\u003e · {citations} citations · \u003cstrong\u003e{pct}%\u003c/strong\u003e of this project's citations\",\"pasteHeader\":\"Paste URLs, one per line\",\"moreLines\":\"+ {count} more\",\"importNotes\":{\"tracking\":\"Tracking tags and www removed\",\"noHttps\":\"No https needed\",\"syndicated\":\"Syndicated copy, tracked as its own placement\",\"shortLink\":\"Short link matched to the full video\"},\"urlsAdded\":\"{count} URLs added\",\"aipqs\":\"AIPQS\",\"publisherAipvs\":\"Publisher AIPVS\",\"showingRows\":\"Showing {shown} of {total}. Every row links to its full placement analysis.\",\"articles\":{\"ridgelineReview\":\"Ridgeline 2 review\",\"bestTents\":\"Best backpacking tents of 2026\",\"springSheltersSyndicated\":\"Spring shelters, via Summit Weekly\",\"springShelters\":\"Spring shelters\",\"highWind\":\"Pitching a tent in high wind\"},\"mediaTypes\":{\"press\":\"Press\",\"articleBlog\":\"Article/Blog\"},\"formats\":{\"review\":\"Review\",\"listicle\":\"Listicle\",\"news\":\"News\",\"howTo\":\"How-to\"},\"projectEyebrow\":\"PR project · {project}\",\"goals\":\"Goals\",\"goalKinds\":{\"coverage\":\"Coverage\",\"publisher\":\"Publisher\",\"author\":\"Author\"},\"coverageGoalLabel\":\"{name} ({count} URLs)\",\"citationsCount\":\"{count} citations\",\"hit\":\"Hit\",\"pastCounted\":\"Past citations counted the day it was attached\",\"influenceFootnote\":\"Influence rate: the share of this project's {count} AI citations that point to the goal.\",\"hitDate\":\"Sep 21, 2026\",\"hitType\":\"Cited inline\",\"promptLabel\":\"Prompt\",\"promptText\":\"“best lightweight backpacking tent under $400”\",\"hitSentence\":\"\u003cmark\u003eTrailhead Review calls the Ridgeline 2\u003c/mark\u003e the lightest freestanding tent it tested this year.\",\"citedLegend\":\"Cited by AI ({count})\",\"notCitedLegend\":\"Not cited ({count})\",\"compareRows\":{\"aipqs\":\"Avg. AIPQS\",\"words\":\"Avg. word count\",\"byline\":\"Has a byline\"}}},\"pqs\":{\"meta\":{\"title\":\"AI Placement Quality Score | Score Individual Placements for AI Citation\",\"description\":\"Score a specific brand placement — real or hypothetical — for how likely it is to be cited by AI assistants. The AI Placement Quality Score evaluates document position, chunk containment, sentiment, and link attributes on a single page.\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What is the AI Placement Quality Score?\",\"answer\":\"The PQS is a 0–100 score that evaluates how well a specific brand mention on a specific page is structured for AI citation. It combines document position, token chunk containment, placement type, editorial control, link attribute, and surrounding sentiment into a single number.\"},\"q2\":{\"question\":\"How is it different from the AI Placement Value Score (AIPVS)?\",\"answer\":\"AIPVS answers 'how valuable is this domain for a placement?' — it's a domain-level metric. PQS answers 'how well does this 
2specific placement on this specific page perform?' — it's a page-level metric. They're complementary: Total Placement Value = AIPVS × PQS / 100. A great domain with a mediocre placement position can score lower than a good domain with an excellent placement.\"},\"q3\":{\"question\":\"What's the difference between retrospective and prospective mode?\",\"answer\":\"Retrospective mode scores a placement that already exists — paste the URL and we fetch, tokenize, and score the real content. Prospective mode scores a hypothetical placement — enter the publisher, placement type, and position to evaluate an offer before you accept it. The prospective mode also previews the lift from negotiating for better terms.\"},\"q4\":{\"question\":\"How do you detect the brand mention, link attribute, and placement type?\",\"answer\":\"We locate the brand mention by walking the tokenized content looking for your property's name and aliases. We parse the raw HTML to find the rel attribute of any link pointing at your domain. Placement type and sentiment around the mention are classified by an AI model given the three-chunk window containing the mention.\"},\"q5\":{\"question\":\"What is key message pull-through?\",\"answer\":\"Pull-through measures how well a property's key messages come through in a placement's content. We compute semantic similarity between each key message and each sentence in the placement and surface the matches. This is informational only — it does not affect the PQS score — but it helps you see whether your messaging is making it into the coverage.\"},\"q6\":{\"question\":\"Is it available through the API?\",\"answer\":\"Yes. The /v1/ai-impact/placement endpoint scores a prospective placement given its inputs and optionally combines it with AIPVS for a Total Placement Value. Retrospective scoring is available through the web interface.\"},\"q7\":{\"question\":\"Can I score an article before it's published?\",\"answer\":\"Yes. Score a hypothetical placement by describing the outlet and planned angle, then re-score the live URL once it publishes to see how the final edit changed your odds.\"}},\"v2\":{\"hero\":{\"eyebrow\":\"Score · AI Placement Quality Score\",\"title\":\"AI Placement Quality Score: will AI cite this article?\",\"summary\":\"PQS is Spyglasses' article-level placement score. Where AIPVS rates the publisher, PQS reads the specific article, real or prospective, and scores its chance of influencing ChatGPT, Gemini, Claude, and Perplexity answers: substance, structure, brand treatment, and accessibility.\",\"primaryCta\":\"Score a placement\",\"secondaryCta\":\"Read the methodology\"},\"glance\":{\"summary\":\"PQS at a glance\",\"fact1\":\"Scores the article itself: substance, structure, brand treatment, accessibility.\",\"fact2\":\"Works before you pitch (hypothetical) and after you land it (real URL).\",\"fact3\":\"Same outlet, two articles, very different odds; PQS shows which.\",\"fact4\":\"Feeds coverage groups, so landed placements get watched for citations.\"},\"reads\":{\"eyebrow\":\"What PQS reads\",\"title\":\"The article, not the masthead\",\"lede\":\"Two pieces in the same outlet can have wildly different odds of being cited. PQS scores what's on the page: how substantial it is, how extractable it is, how your brand is treated, and whether AI can reach it.\"},\"beforeAfter\":{\"eyebrow\":\"Before and after\",\"title\":\"Score the pitch, then score the placement\",\"lede\":\"Model a prospective placement before you commit the effort, then score the live URL when it lands and see what the outlet's edit did to your odds.\"},\"aipvsBand\":{\"message\":\"Pair it with the publisher's AIPVS for the two-number briefing.\",\"label\":\"AI Placement Value Score\"},\"coverageBand\":{\"message\":\"Landed placements go into coverage groups and get watched for citations.\",\"label\":\"For PR \u0026 Comms\"},\"cta\":{\"title\":\"Same outlet. Different odds.\",\"description\":\"Score a placement, real or hypothetical, in seconds.\",\"primary\":\"Score a placement\",\"secondary\":\"Book a demo\"}}},\"citationOptimizer\":{\"meta\":{\"title\":\"AI Search Citation Optimizer | Score a Page Across Four AI Assistants\",\"description\":\"See why AI assistants skip your page, and fix it. Spyglasses scores your content the way ChatGPT, Google and Claude pick what to quote, tells you what to change, and rewrites it for you.\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"q1\":{\"question\":\"What is the AI Search Citation Optimizer?\",\"answer\":\"It tells you why AI assistants aren't quoting your page, and then fixes it. It scores your content the way ChatGPT, Google AI Overviews, Google AI Mode and Claude each decide what to cite, gives you one list of changes to make, and rewrites the page for you. Then it scores the rewrite so you can see whether it worked.\"},\"q2\":{\"question\":\"How is this different from a prompt tracker?\",\"answer\":\"Prompt trackers run prompts and report what came back, which changes session to session. The Citation Optimizer works on the steps before the answer: the searches each assistant runs for itself, the ranking, the part of your page it actually reads, and how it picks passages. Those steps follow published, repeatable rules, so you can work on them and see the result.\"},\"q3\":{\"question\":\"How much does it cost?\",\"answer\":\"Scoring costs no credits on any plan. Every plan includes a number of pages a month, and a page counts once however many times you score it. A rewrite costs {rewriteCredits} credits. Brand plans include {brandRewrites} rewrites a month and Agency plans include {agencyRewrites}; after that, each is billed per use. Writer briefs come out of the same allowance.\"},\"q4\":{\"question\":\"Which AI assistants does it cover?\",\"answer\":\"ChatGPT, Google AI Overviews, Google AI Mode and Claude. The two Google surfaces are scored separately, because they end up picking different pages. The free plan covers ChatGPT against a single search; paid plans cover all four against a full set of searches.\"},\"q5\":{\"question\":\"Does it write content from scratch?\",\"answer\":\"For a page you already have, it rewrites what's there: putting the answer first, tightening passages, and carrying the specifics into the part each assistant reads, plus a new title, meta description and structured data. For a page that doesn't exist yet, start from a keyword and it writes a section-by-section brief your writer can work from. Neither one invents facts, statistics or credentials.\"},\"q6\":{\"question\":\"Can I drive it from an AI assistant?\",\"answer\":\"Yes. Scoring, rewriting and re-scoring all work through the Spyglasses MCP server, so a connected assistant like ChatGPT or Claude can work on your content in a conversation. Everything stays inside your own properties, and nothing is published on your behalf.\"}},\"v2\":{\"hero\":{\"eyebrow\":\"Optimize · Citation Optimizer\",\"title\":\"Optimize your content for every AI assistant, in one workflow.\",\"summary\":\"AI assistants quote a handful of pages, and most content never makes the cut. Citation Optimizer shows you why yours gets passed over, tells you exactly what to change, and rewrites it for you. Then it checks whether the change actually worked.\",\"primaryCta\":\"Score your content\",\"secondaryCta\":\"Read the methodology\",\"pipelineLead\":\"Here's where content usually drops out before AI ever quotes it:\"},\"deterministic\":{\"eyebrow\":\"Why it works\",\"title\":\"The answers change. The way AI finds pages doesn't.\",\"lede\":\"Ask ChatGPT the same question t
2wice and you'll get two different answers. That part really is a dice roll. But before it answers, it runs searches, ranks what comes back, and reads the pages it picks. Those steps follow rules we can measure, so that's where you can actually win.\"},\"stages\":{\"eyebrow\":\"Step by step\",\"title\":\"What happens between a prompt and an answer?\"},\"loop\":{\"eyebrow\":\"The working loop\",\"title\":\"Score it. Rewrite it. Score it again.\",\"lede\":\"Score the page, see what's holding it back, rewrite it, score it again. Every finding tells you whether a rewrite will actually fix it, so you don't pay for one that can't. And when the score barely moves, we say so instead of selling it to you as a win. This example took two rewrites.\",\"before\":\"Before\",\"after\":\"After\",\"caption\":\"{page} · {rewrites} rewrites\"},\"grounding\":{\"eyebrow\":\"Grounding search rankings\",\"title\":\"Which searches does AI actually run?\",\"lede\":\"Assistants don't run your prompt. They write their own searches and blend the results. Spyglasses shows you those searches and where you rank for each one, then scores your page across the whole set. Showing up across several related searches beats topping any one of them.\",\"platforms\":\"{count} platforms\",\"unranked\":\"Unranked\"},\"servicesBand\":{\"message\":\"Rather have us do the work? That's the AI-focused SEO and rewriting service.\",\"label\":\"Explore services\"},\"mcpBand\":{\"message\":\"Prefer to work in Claude or ChatGPT? Score and rewrite straight from an MCP client.\",\"label\":\"See the MCP server\"},\"cta\":{\"title\":\"Stop guessing why AI skips you.\",\"description\":\"Score a page in minutes and see exactly what to change. Scoring doesn't cost credits.\",\"primary\":\"Score your content\",\"secondary\":\"Read the methodology\"},\"video\":{\"label\":\"A 26-second explainer: a page drops out of the AI answer pipeline, Citation Optimizer scores it across ChatGPT, Google AI Overviews, AI Mode, and Claude, rewrites the opening without inventing facts, and re-scores it from 41 to 78.\"}}},\"aiTrafficAnalytics\":{\"title\":\"AI Citation Tracking | Monitor ChatGPT \u0026 Google AI Overviews\",\"intro\":\"Real-time tracking of ChatGPT, Google AI Overviews, and Perplexity citations. See which pages AI references, monitor trends, and measure AI-driven traffic.\",\"faq\":{\"title\":\"Frequently Asked Questions\",\"description\":\"Everything you need to know about tracking your AI visibility and citations.\",\"items\":{\"whatIs\":{\"question\":\"What is AI Traffic Analytics?\",\"answer\":\"AI Traffic Analytics tracks visits from AI assistants like ChatGPT, Claude, and Perplexity to your website. These AI visits don't use JavaScript, making them invisible to traditional analytics tools like Google Analytics. Spyglasses captures data on how AI systems access and interact with your content, giving you visibility into a traffic source that most analytics tools miss entirely.\"},\"whichPlatforms\":{\"question\":\"Which AI platforms does Spyglasses track?\",\"answer\":\"Spyglasses tracks all major AI platforms including ChatGPT (OpenAI), Google AI Overviews (Gemini), Perplexity, Claude (Anthropic), Microsoft Copilot, and over 600 other AI crawlers. This comprehensive tracking helps you understand your complete AI visibility across the platforms consumers use most.\"},\"whatsFree\":{\"question\":\"What's included for free?\",\"answer\":\"Tracking all bot and crawler traffic, including search engines, social media bots, and AI crawlers, is always free. Our recrawl frequency monitoring and bot blocking features are also free for every account. AI visit analytics — detailed tracking of when AI assistants visit your site with user intent — is also free for the first {freeAiVisits} visits per property each month. Above that, additional visits are billed at one credit per {visitsPerCredit} AI visits.\"},\"howCreditsWork\":{\"question\":\"How does pricing for AI visits work?\",\"answer\":\"Every property gets the first {freeAiVisits} AI visits per month free — no credits required, on any plan. Once you exceed that, additional visits are billed at one credit per {visitsPerCredit} visits. Credits are only consumed for AI visits that carry user intent; when someone asks ChatGPT or Perplexity a question and the AI visits your site to answer it. Routine crawler traffic from bots like Googlebot, Bingbot, and AI model trainers is always tracked for free and never consumes credits.\"},\"howIntegrate\":{\"question\":\"How does Spyglasses integrate with existing analytics?\",\"answer\":\"Spyglasses forwards AI citation data to Google Analytics using Measurement Protocol, so you can see AI-driven traffic alongside your traditional web analytics. Other integrations like PostHog, Plausible, and Mixpanel work similarly, giving you a complete picture of how AI visibility drives traffic to your site.\"},\"canControl\":{\"question\":\"Can I control which AI bots access my website?\",\"answer\":\"Yes. Spyglasses includes free traffic control features that let you block AI model trainers with one click while keeping your content accessible to ChatGPT and Google AI Overviews for benef
2icial citations. This protects your content from unauthorized scraping while maintaining your AI visibility.\"},\"botTrackingVsAiVisits\":{\"question\":\"What's the difference between bot tracking and AI visit analytics?\",\"answer\":\"Bot tracking identifies and categorizes all automated traffic to your site including search engine crawlers, AI model trainers, social media bots, and more. This is always free. AI visit analytics goes deeper: it tracks when AI assistants like ChatGPT visit your site in response to a user's question, captures the intent behind that visit, and follows the path from citation to clickthrough to conversion. This detailed analysis is what credits cover.\"},\"recrawlMonitoring\":{\"question\":\"What is recrawl frequency monitoring?\",\"answer\":\"Recrawl monitoring tracks how often search engines and AI platforms re-index your content. You can see when Googlebot, ChatGPT, or other crawlers last visited specific pages and how frequently they return. This helps you understand which content is being actively indexed and optimize your publishing schedule. Recrawl monitoring is free for all accounts.\"}}},\"v2\":{\"hero\":{\"eyebrow\":\"Track · AI Traffic Analytics\",\"t
2itle\":\"See AI assistants visit your site in real time.\",\"summary\":\"AI Traffic Analytics is Spyglasses' server-side detection for the AI channel. It watches your own traffic and separates AI agents, AI crawlers, and humans clicking through from AI answers, in real time, per page. Estimated visibility is a model; visits are a fact.\",\"primaryCta\":\"Start detecting\",\"secondaryCta\":\"See the live demo\"},\"glance\":{\"summary\":\"AI Traffic Analytics at a glance\",\"fact1\":\"Server-side detection on your own traffic, not a model's estimate.\",\"fact2\":\"Separates AI agents, AI crawlers, and humans arriving from AI answers.\",\"fact3\":\"Real time and per page, from the first install.\",\"fact4\":\"Plugins for the major platforms; a free tier is included.\"},\"truth\":{\"eyebrow\":\"Ground truth\",\"title\":\"Scores predict. Server logs prove.\",\"lede\":\"Visibility metrics estimate how often AI mentions you. Traffic is what actually happened: which assistants came, what they read, and who clicked through. Use it to validate that the visibility work is landing.\"},\"see\":{\"eyebrow\":\"What you'll see\",\"title\":\"Three kinds of AI traffic, separated\",\"agents\":{\"label\":\"AI agents\",\"blurb\":\"Assistants fetching your pages live to answer someone right now.\"},\"crawlers\":{\"label\":\"AI crawlers\",\"blurb\":\"Training and indexing bots building the models' memory.\"},\"humans\":{\"label\":\"Clickthroughs from AI\",\"blurb\":\"People arriving on your site from an AI answer that cited you.\"}},\"liveBand\":{\"message\":\"Watch it working on our own site, live.\",\"label\":\"AI Analytics Demo\"},\"installBand\":{\"message\":\"Installs in minutes: plugins for Cloudflare, Webflow, Next.js, Python, Ruby, and more.\",\"label\":\"Platform docs\"},\"loopBand\":{\"message\":\"Pair with daily prompt tracking to connect visibility to visits.\",\"label\":\"Daily Prompt Tracking\"},\"cta\":{\"title\":\"AI is already on your site.\",\"description\":\"Install the plugin and watch the first visits arrive today.\",\"primary\":\"Start detecting\",\"secondary\":\"See the live demo\"}}},\"faqGeneration\":{\"title\":\"AI FAQ Generator | Create FAQs That Get Cited by ChatGPT \u0026 AI\",\"intro\":\"Generate FAQs optimized for AI citations. Source questions from Google PAA, Reddit, and Quora, then create answers ChatGPT and AI assistants prefer to cite.\",\"faq\":{\"title\":\"Frequently Asked Questions\",\"description\":\"Everything you need to know about generating FAQs for AI visibility.\"},\"v2\":{\"hero\":{\"eyebrow\":\"Optimize · FAQ Generator\",\"title\":\"Generate FAQ pages from real questions people ask.\",\"summary\":\"The FAQ Generator is Spyglasses' Q\u0026A content tool. It sources questions from Google's People Also Ask, Reddit, and Quora, drafts 50-to-70-word answers in your voice from your own pages, and exports HTML, JSON-LD, markdown, and CSV, the formats AI reads best. $1 per page.\",\"primaryCta\":\"Generate FAQs\",\"secondaryCta\":\"Book a demo\"},\"glance\":{\"summary\":\"The FAQ Generator at a glance\",\"fact1\":\"Questions sourced from People Also Ask, Reddit, and Quora, not invented.\",\"fact2\":\"Answers drafted at 50 to 70 words, the length AI cites best, in your voice.\",\"fact3\":\"Exports HTML, JSON-LD, markdown, and CSV.\",\"fact4\":\"$$1 per page.\"},\"sourced\":{\"eyebrow\":\"Sourced, not invented\",\"title\":\"Real phrasing wins retrieval\",\"lede\":\"AI retrieves content that matches how people actually ask. Pulling questions from People Also Ask, Reddit, and Quora means your FAQs speak the exact language of the queries.\"},\"voice\":{\"eyebrow\":\"Your voice, your pages\",\"title\":\"Grounded in what you've already written\",\"lede\":\"Answers draft from your own page content and brand voice, neutral, factual, and edit-ready. You review, tweak, and reorder everything before export.\"},\"export\":{\"eyebrow\":\"Export anywhere\",\"title\":\"Four formats, twice the surface\",\"lede\":\"Ship FAQs as visible HTML and as JSON-LD schema, plus markdown and CSV. On-page and in-markup presence doubles the ways AI can find them.\"}
2,\"loopBand\":{\"message\":\"Score the pages your FAQs land on and fix what falls out of the pipeline.\",\"label\":\"Citation Optimizer\"},\"auditBand\":{\"message\":\"Check the whole site's AI readiness while you're at it.\",\"label\":\"AI Readiness Audit\"},\"cta\":{\"title\":\"Answer what they're already asking.\",\"description\":\"Generate your first FAQ page in minutes; $1 per page.\",\"primary\":\"Generate FAQs\",\"secondary\":\"Book a demo\"},\"faq\":{\"items\":{\"whatIs\":{\"question\":\"What is FAQ Generation for AI visibility?\",\"answer\":\"FAQ Generation creates optimized question-and-answer content that AI assistants like ChatGPT and Google AI Overviews are more likely to cite. FAQs are ideal for AI citations because they're already in a conversational Q\u0026A format that matches how AI assistants respond to users, and they appear twice on your page: once as visible HTML and once as JSON-LD schema markup.\"},\"sources\":{\"question\":\"Where do the FAQ questions come from?\",\"answer\":\"Questions are sourced from three places: Google's People Also Ask (PAA) results for your topic, community platforms like Reddit and Quora where real users ask questions, and your existing page content. This multi-source approach ensures FAQs address real questions your audience is asking across different platforms.\"},\"optimize\":{\"question\":\"How does Spyglasses optimize FAQs for AI citations?\",\"answer\":\"Each answer is optimized to be 50-70 words, the ideal length for AI citation. Answers are written in a neutral, factual tone without marketing language or superlatives that AI assistants tend to avoid. The content is grounded in your actual page content and brand voice to ensure accuracy and consistency.\"},\"edit\":{\"question\":\"Can I edit the generated FAQs before publishing?\",\"answer\":\"Yes, you have full control to review, edit, and rearrange all generated FAQs before export. You can modify questions or answers, remove FAQs that don't fit, and reorder them as needed. The system also flags any answers that may need additional review due to limited source content.\"},\"exportFormats\":{\"question\":\"What export formats are available?\",\"answer\":\"FAQs can be exported in four formats: HTML with semantic markup ready to paste into your page, Markdown for content management systems, JSON-LD schema markup that search engines and AI can parse directly, and CSV for spreadsheet editing or bulk imports.\"},\"appearTwice\":{\"question\":\"Why do FAQs appear twice on a page?\",\"answer\":\"FAQs appear as visible HTML content for human readers and as JSON-LD structured data in your page's head section for AI and search engines. This dual presence doubles your chances of being cited because AI assistants can find your FAQ content through two different parsing methods.\"},\"longTail\":{\"question\":\"How do FAQs help with long-tail queries?\",\"answer\":\"FAQs naturally target long-tail queries: specific questions that have lower search volume but higher intent. While these queries may not rank well in traditional Google search, AI assistants frequently surface FAQ content when answering detailed user questions, giving you visibility in searches you'd otherwise miss.\"},\"vsRegular\":{\"question\":\"What's the difference between this and regular FAQ content?\",\"answer\":\"Traditional FAQs are written for human readers with marketing language and varying lengths. AI-optimized FAQs follow specific guidelines: 50-70 word answers, neutral tone, factual statements only, and proper schema markup. This precision dramatically increases the likelihood of AI citation.\"}}}}},\"pricing\":{\"title\":\"AI Visibility Pricing for Agencies \u0026 PR Firms | Spyglasses\",\"description\":\"White-labeled AI visibility tools for PR firms and marketing agencies. Free report to start, pay-as-you-go credits, or agency plans with white-labeled exports.\",\"hero\":{\"title\":\"Pricing That Scales With Your Agency\",\"description\":\"Start with a free AI Visibility Report to benchmark any brand. Then choose pay-as-you-go credits or an agency plan with white-labeled exports, multi-client management, and usage-based billing.\"},\"aiTrafficAnalytics\":{\"badge\":\"AI Citation Tracking\",\"title\":\"Track your AI visibility and citations\",\"description\":\"Monitor when and why ChatGPT, Google AI Overviews, Perplexity, and Claude cite your brand. Flexible plans to help you get featured accurately and often in AI search.\"},\"aiVisibilityReport\":{\"badge\":\"AI Visibility Report\",\"title\":\"AI Visibility Report\",\"description\":\"Get comprehensive insights into how AI platforms perceive and represent your brand across ChatGPT, Claude, Perplexity, and more.\",\"free\":{\"title\":\"Generate Report\",\"price\":\"Free\",\"description\":\"Create your AI visibility report and preview key insights\",\"features\":{\"generate\":\"Generate comprehensive AI visibility report\",\"preview\":\"Preview brand consistency scores and summaries\",\"basic\":\"Basic platform analysis and technical insights\"},\"cta\":\"Create Free Report\"}
2,\"unlock\":{\"title\":\"Full Report Access\",\"description\":\"One-time payment to unlock complete analysis and recommendations\",\"badge\":\"Most Popular\",\"features\":{\"full\":\"Complete detailed analysis and competitor insights\",\"competitor\":\"Full competitor analysis and share of voice data\",\"recommendations\":\"Actionable implementation recommendations\",\"implementation\":\"Step-by-step implementation guides\",\"technical\":\"Detailed technical analysis and optimization tips\"},\"cta\":\"Create Free Report\"}},\"faq\":{\"title\":\"Frequently Asked Questions\",\"description\":\"Everything you need to know about our pricing and plans.\",\"items\":{\"howCreditsWork\":{\"question\":\"How do credits work?\",\"answer\":\"Credits are used to pay for AI-powered features like AI Visibility Reports (15 credits) and FAQ generation (1 credit per run). AI visit tracking is free for the first {freeAiVisits} AI visits per property each month; additional visits are billed at 1 credit per {visitsPerCredit} visits. One credit costs $1. All bot tracking, search engine recrawl monitoring, and competitor site management are included at no additional cost.\"},\"payAsYouGo\":{\"question\":\"What's the difference between Pay-As-You-Go, Brand, and Agency plans?\",\"answer\":\"Pay-As-You-Go is perfect for getting started. Purchase credits as needed with no monthly commitment (minimum $25). Brand plans are designed for marketers tracking a single brand, while Agency Core plans include usage-based billing with advanced features like white-labeling and priority support. All subscription plans include monthly allocations of tracked prompts and site audit pages.\"},\"changePlan\":{\"question\":\"Can I upgrade or downgrade my plan?\",\"answer\":\"Yes, you can upgrade or downgrade your plan at any time. Plan changes take effect at the start of your next billing cycle, and we'll adjust your billing accordingly. This ensures you get the full value of your current month's credit allocation.\"},\"creditExpiration\":{\"question\":\"Do credits expire?\",\"answer\":\"Unused credits roll over month-to-month, but expire after 3 months from when they were allocated. For example, credits from January's allocation will expire at the end of March. This ensures you have flexibility while encouraging regular use of your monthly allocation.\"},\"outOfCredits\":{\"question\":\"What happens if I run out of credits?\",\"answer\":\"With Pay-As-You-Go, you can purchase more credits anytime. With Agency subscriptions, overage usage is billed at $1 per credit on your next invoice. You'll receive notifications when your credit balance is low so you're never surprised.\"},\"enterprise\":{\"question\":\"Do you offer custom enterprise solutions?\",\"answer\":\"Yes. Single sign-on (SSO) is included with every subscription plan, not just Enterprise. Enterprise adds volume-based discounts, custom implementations and integrations, dedicated account management, and SLAs with guaranteed uptime. Contact our sales team for a custom quote.\"},\"auditPricing\":{\"question\":\"How much does an AI Readiness Audit cost?\",\"answer\":\"AI Readiness Audits cost 1 credit per {pagesPerCredit} pages audited (minimum 1 credit per audit). Brand plans include {brandPages} pages/month and Agency Core plans include {agencyCorePages} pages/month. You're only charged if you exceed your monthly allocation. Pay-as-you-go users can purchase credits at $1 each.\"},\"citationOptimizer\":{\"question\":\"How much does the AI Search Citation Optimizer cost?\",\"answer\":\"Scoring a page costs no credits on any plan. It is metered by pages instead: each plan includes a number of pages a month, a page counts once however many times you re-run it, and re-scoring a rewrite never counts. Only rewrites and writer briefs cost credits: {rewriteCredits} credits each. Brand plans include {brandRewrites} rewrites per month and Agency Core plans include {agencyRewrites}; beyond your allowance, each is billed per use.\"}}},\"aiReadinessAudit\":{\"title\":\"AI Readiness Audit\",\"description\":\"Audit your site across seven AI-visibility dimensions. Identify technical issues that prevent AI systems from citing your content.\",\"features\":{\"rendering\":\"Static content rendering with screenshots\",\"chunkAnalysis\":\"Chunk analysis\",\"sevenDimensions\":\"Seven dimension scoring\",\"csvExport\":\"CSV export for team sharing\"}
2,\"payg\":{\"label\":\"Pay-as-you-go\",\"perCredit\":\"{price} per credit\",\"pagesPerCredit\":\"1 credit = {pages} pages\",\"minimum\":\"Minimum 1 credit per audit\"},\"agencyCore\":{\"label\":\"Agency Core\",\"pagesPerMonth\":\"{pages} pages/month included\"},\"brand\":{\"label\":\"Brand\",\"pagesPerMonth\":\"{pages} pages/month included\"},\"agencyOverage\":\"Overages billed at 1 credit per {pages} pages\",\"cta\":\"Learn more\"},\"citationOptimizer\":{\"title\":\"AI Search Citation Optimizer\",\"description\":\"See where your content falls out of ChatGPT, Google AI Overviews, Google AI Mode and Claude, with a specific fix for every gap. Scoring costs no credits; you only pay to generate a rewrite.\",\"features\":{\"scoringFree\":\"Scoring costs no credits, metered by a monthly page allowance\",\"gates\":\"Check-by-check diagnosis of why four assistants skip a page\",\"rewrite\":\"One-click rewrite with new title, meta, and structured data\",\"mcp\":\"Drive the whole loop from a connected AI assistant\"},\"score\":{\"label\":\"Scoring\",\"value\":\"No credits\"},\"rewrite\":{\"label\":\"Rewrite\",\"perRewrite\":\"{credits} credits each\",\"includesRescore\":\"Includes unlimited re-scoring of that page\"},\"brand\":{\"label\":\"Brand\",\"perMonth\":\"{rewrites} rewrites/month included\"},\"agencyCore\":{\"label\":\"Agency Core\",\"perMonth\":\"{rewrites} rewrites/month included\"},\"overage\":\"Beyond your monthly allowance, rewrites are billed at {credits} credits each\",\"cta\":\"Learn more\"},\"cta\":{\"title\":\"Start Proving AI Visibility ROI\",\"description\":\"Run a free AI Visibility Report to benchmark any brand. Then start a free trial to access the full suite of tools.\",\"primary\":\"Start Free Trial\",\"secondary\":\"Run a Free Report\",\"features\":\"No credit card required • White-labeled exports • Cancel anytime\"}},\"forAgencies\":{\"title\":\"AI Visibility Platform for Marketing Agencies | Spyglasses\",\"intro\":\"Build an AEO/GEO practice your clients can see results from. White-labeled tools to track AI visibility, prove content impact, and deliver client-ready reports.\",\"faq\":{\"title\":\"Agency FAQs\",\"description\":\"Common questions from agencies about Spyglasses.\",\"items\":{\"howManyClients\":{\"question\":\"How many clients can I manage?\",\"answer\":\"There's no limit on the number of client properties you can manage. Agency Core plans include {agencyPrompts} tracked prompts and {agencyAuditPages} AI Readiness Audit pages per month, shared across all your client properties. You allocate resources where they're needed most.\"},\"whatsIncluded\":{\"question\":\"What's included in an Agency Core plan?\",\"answer\":\"Agency Core includes {agencyPrompts} tracked prompts, {agencyAuditPages} AI Readiness Audit pages, and {agencyCredits} credits per month, plus white-labeled exports, multi-property management, and priority support. Credits pay for AI Visibility Reports, FAQ generation, and AI traffic analytics. Past your monthly credits, usage is billed at ${creditPrice} per credit.\"},\"usageBasedBilling\":{\"question\":\"How does billing work?\",\"answer\":\"Agency Core is a monthly subscription with {agencyPrompts} tracked prompts, {agencyAuditPages} audit pages, and {agencyCredits} credits each month. Credits pay for reports, FAQ generation, and analytics, plus any prompts past {agencyPrompts}, which cost {promptCredits, plural, one {# credit} other {# credits}} per prompt for every {promptRunsPerCredit} daily runs. Unused monthly credits don't roll over. If you run out, you can keep going; overage is billed at ${creditPrice} per credit on your next invoice.\"},\"monthlyAllocation\":{\"question\":\"Do I get a free trial?\",\"answer\":\"Yes. Every new account starts on Pay-As-You-Go with {trialCredits} free credits that last a month. No credit card required. Spend them on anything that uses credits, including AI Visibility Reports, audits, and tracked prompts at {promptCredits, plural, one {# credit} other {# credits}} per prompt for every {promptRunsPerCredit} daily runs. Your plan's bundled prompts, audit pages, and credits start when you subscribe.\"},\"creditRollover\":{\"question\":\"How does credit rollover work?\",\"answer\":\"Purchased credits (from Pay-As-You-Go or top-ups) roll over month-to-month and expire after 3 months. This gives you flexibility to purchase in bulk when convenient while ensuring credits are actively used.\"},\"creditOverage\":{\"question\":\"What happens if I need more credits mid-month?\",\"answer\":\"On an Agency plan, you keep working. Once your monthly credits run out, extra usage is billed as overage at ${creditPrice} per credit on your next invoice, and Spyglasses asks you to confirm before a report takes you over. On Pay-As-You-Go, you can buy more credits anytime.\"},\"whiteLabeling\":{\"question\":\"Can I white-label Spyglasses?\",\"answer\":\"All generated materials are white-labeled on a Spyglasses Agency plan. This includes AI Visibility Reports, AI Readiness Audits, and Project exports. White-labeling includes client name, logo, and colors. No Spyglasses branding is included on any of these outputs.\"},\"agencyDiscount\":{\"question\":\"Do you offer agency discounts?\",\"answer\":\"Yes. Agency Core plans include usage-based billing with advanced features at a competitive rate. High-volume agencies should contact us about Enterprise pricing with custom terms and deeper discounts.\"},\"agencyAdvantages\":{\"question\":\"What are the advantages of Agency plans over Pay-As-You-Go?\",\"answer\":\"Spyglasses Agency plans provide access to premium features including white-label reports (remove Spyglasses branding), priority support, and multi-property management.\"},\"billByClient\":{\"question\":\"Can I bill usage back to specific clients?\",\"answer\":\"Yes. The usage dashboard breaks credits and tracked prompt runs down per client property over 30, 90, or 180 days, with a CSV export built for month-end expense allocation.\"},\"analystAccess\":{\"question\":\"Can my analysts get raw data access?\",\"answer\":\"Yes. The MCP server exposes metrics, citations, goals, and scores to Claude or any MCP client, so anal
2ysts can pull raw rows into notebooks and BI tools without waiting on exports.\"},\"buyerPersonas\":{\"question\":\"Can I show a client how AI answers their different buyers?\",\"answer\":\"Yes. Draft buyer personas from the client's customer segments, from one buyer to a full buying committee, and add them to a project. Each discovery prompt then also runs daily as each buyer on ChatGPT and Gemini. Perspectives shows where AI names the client its top choice, where it cautions a buyer against them, and who it recommends instead. Clients can read it in their client portal.\"}}},\"v2\":{\"hero\":{\"eyebrow\":\"Solutions · For SEO \u0026 Marketing Agencies\",\"title\":\"The AI visibility platform for SEO and marketing agencies.\",\"summary\":\"Spyglasses is the AI visibility platform agencies run their AI search practice on: prospect with free visibility previews, deliver white-labeled reports, defend every number with daily tracking across ChatGPT, Gemini, and Google AI Overviews, and bill usage back to specific clients.\",\"primaryCta\":\"Book a demo\",\"secondaryCta\":\"Start free\",\"usageTileTitle\":\"Usage by client · last 30 days\"},\"glance\":{\"summary\":\"The agency practice at a glance\",\"fact1\":\"Free visibility previews open doors; white-labeled reports close them.\",\"fact2\":\"Daily tracking with three metric tiers: KPIs, backing metrics, raw data.\",\"fact3\":\"Per-client usage reporting with CSV export, built for expense allocation.\",\"fact4\":\"Analysts get raw access through the MCP server.\"},\"prospect\":{\"eyebrow\":\"Prospect\",\"title\":\"Open with a free preview, not a pitch\",\"lede\":\"Run a free AI Visibility Report on any prospect from just their domain. Walk into the meeting with their baseline and a three-month plan already in hand.\",\"bandMessage\":\"The report is the door-opener; run one on your next prospect.\",\"bandLabel\":\"AI Visibility Report\"},\"deliver\":{\"eyebrow\":\"Deliver\",\"title\":\"The roadmap: rankings, rewrites, audits\",\"lede\":\"Grounding search rankings show where each client falls out of AI's pipeline; the Citation Optimizer fixes the content; the Site Audit fixes the pages. That's the practice, tool by tool.\",\"bandMessage\":\"The core SEO deliverable: score, rewrite, re-score.\",\"bandLabel\":\"Citation Optimizer\"},\"prove\":{\"eyebrow\":\"Prove\",\"title\":\"Defend every number with daily data\",\"lede\":\"KPIs for the client deck, backing metrics for the skeptics, raw citations for anyone who asks where a number came from. Everything runs daily, so trends are real.\",\"bandMessage\":\"The three metric tiers, explained.\",\"bandLabel\":\"Daily Prompt Tracking\"},\"whiteLabel\":{\"eyebrow\":\"White-labeled everything\",\"title\":\"Your brand on every deliverable\",\"lede\":\"Shareable web reports, PDF, and PPTX ship in your branding on Agency plans. Clients see your agency, not our logo.\"},\"clientReporting\":{\"eyebrow\":\"Client reporting\",\"title\":\"Bill usage back to the account\",\"lede\":\"The usage dashboard breaks credits and tracked prompt runs down per client property over 30, 90, or 180 days, with CSV export. Month-end expense allocation stops being archaeology.\"},\"scaleBands\":{\"guides\":{\"message\":\"Want the step-by-step? Six workflow guides for running the practice, from prospecting to monthly reporting.\",\"label\":\"Agency guides\"},\"markets\":{\"message\":\"Multi-market or retail clients? Location and product tracking run on the same platform.\",\"label\":\"Location Tracking\"},\"buyers\":{\"message\":\"Show clients how AI answers their actual buyers. The CFO and the IT lead often get different shortlists.\",\"label\":\"Buyer personas\"},\"mcp\":{\"message\":\"Your analysts can query every client's data from Claude or any MCP client.\",\"label\":\"The MCP server\"},\"pricing\":{\"message\":\"Agency Core includes white-labeling, client reporting, and volume prompt allowances.\",\"label\":\"Pricing\"}},\"cta\":{\"title\":\"Run the practice on one platform.\",\"description\":\"Start free or book a demo; white-labeling and client reporting are on Agency plans.\",\"primary\":\"Book a demo\",\"secondary\":\"Start free\"}}},\"forPRFirms\":{\"title\":\"AI Visibility Platform for PR Firms | Spyglasses\",\"intro\":\"Does AI know about your placements? Spyglasses shows PR firms which earned media drives AI citations and quantifies the impact with AI Placement Value Score.\",\"faq\":{\"title\":\"PR Firm FAQs\",\"description\":\"Common questions from PR professionals about AI visibility.\",\"
2items\":{\"brandConsistency\":{\"question\":\"What is brand consistency scoring?\",\"answer\":\"Brand consistency scoring measures how consistently AI platforms represent your client's brand across different queries and contexts. This includes tracking whether AI accurately describes the brand's positioning, key messages, and differentiators; both from the model's training data and when it combines knowledge with real-time web searches.\"},\"platformCoverage\":{\"question\":\"Which AI platforms do you monitor?\",\"answer\":\"Tracked prompts run every day on ChatGPT, Gemini, and Google AI Overviews. Want even more coverage? Add Claude and Perplexity to any client property, and Spyglasses tracks those assistants too.\"},\"aipvs\":{\"question\":\"What is the AI Placement Value Score?\",\"answer\":\"AIPVS quantifies the value of a media placement by combining the publisher's organic authority with its AI accessibility. It answers the question: can AI actually see and cite this placement? Use it to show clients which outlets deliver the most impact in AI search.\"},\"campaignMeasurement\":{\"question\":\"How can I measure PR campaign impact on AI visibility?\",\"answer\":\"Use PR Projects to track when placements become AI citations over time. Run visibility reports before and after campaigns to measure changes in brand mentions, share of voice, and brand consistency scores. Historical trending gives you concrete data to prove ROI.\"},\"coverageCitations\":{\"question\":\"Can I see which AI answers cited a client's placements?\",\"answer\":\"Yes. Add placements to a coverage report and Spyglasses records every time one appears as a source in your tracked prompts: the prompt, the platform, the date, and the context around the citation. You can open the full AI answer to read it exactly as a prospect would, compare cited coverage against coverage AI ignores, and export the whole list for client reports.\"},\"clientReporting\":{\"question\":\"Can I white-label reports for clients?\",\"answer\":\"Yes. Agency and Enterprise plans include white-label reports that remove all Spyglasses branding. Export as PDF, PowerPoint, or shareable web pages that integrate seamlessly with your existing client deliverables.\"},\"pricing\":{\"question\":\"What does Spyglasses cost for PR firms?\",\"answer\":\"Start free with {trialCredits} credits that last a month, no credit card required. Agency plans are a monthly subscription with tracked prompts, audit pages, and credits included every month, plus white-labeled exports and multi-client management.\"},\"coverageGroup\":{\"question\":\"What's a coverage report?\",\"answer\":\"A pasted list of your placement URLs tracked as one goal (in the app it's called a Coverage Group). Every URL gets scored with PQS and the publisher's AIPVS, then watched for AI citations, with one influence rate for the whole campaign.\"},\"trackJournalist\":{\"question\":\"Can I track a specific journalist?\",\"answer\":\"Yes. Author goals match citations of pages written by a named journalist, so you can see whose bylines AI trusts in your category and pitch accordingly.\"},\"buyerAudiences\":{\"question\":\"Can I see which audiences AI steers toward or away from a client?\",\"answer\":\"Yes. Add buyer personas, like a CFO or an IT lead, to a project, and each discovery prompt also runs daily as that buyer on ChatGPT and Gemini. Perspectives compares each buyer's answers with the regular ones: where AI names your client its top choice, where it cautions against them and why, and who it recommends instead. That points your next story at the audience that needs it.\"}}},\"v2\":{\"hero\":{\"eyebrow\":\"Solutions · For PR \u0026 Comms\",\"title\":\"AI visibility for PR firms: prove earned media works in AI answers.\",\"summary\":\"Spyglasses gives PR and comms teams the AI channel's missing numbers: score placements by AI value with AIPVS and PQS, watch coverage become citations in ChatGPT, Gemini, and Google AI Overviews, surface hidden earned media, and report it all in your own brand.\",\"primaryCta\":\"Book a demo\",\"secondaryCta\":\"Score a placement\",\"funnelTileTitle\":\"Spring launch coverage · 32 URLs\"},\"glance\":{\"summary\":\"The PR toolkit at a glance\",\"fact1\":\"AIPVS scores what a publisher is worth in AI discovery;
2 PQS scores the article.\",\"fact2\":\"Coverage reports watch every placement for AI citations, from a pasted URL list.\",\"fact3\":\"Hidden earned media: pages AI reads but never credits, with receipts.\",\"fact4\":\"White-labeled web, PDF, and PPTX reports for the board.\"},\"variable\":{\"eyebrow\":\"The new variable\",\"title\":\"Can AI see your placement?\",\"lede\":\"Many top outlets block AI crawlers. A Tier 1 placement that AI can't read looks great in the coverage report and does nothing in the AI channel. Scoring first protects the pitch.\",\"bandMessage\":\"Score the outlet with AIPVS, then the article with PQS.\",\"bandLabel\":\"AI Placement Value Score\",\"guidesMessage\":\"Want the step-by-step? Nine workflow guides for earned media in AI answers, from pitch list to crisis comms.\",\"guidesLabel\":\"PR guides\"},\"workflow\":{\"eyebrow\":\"Before and after the story runs\",\"title\":\"Plan the pitch. Prove the coverage.\",\"lede\":\"Score the outlets before you pitch, then track the coverage you land into AI answers. Two tools, one campaign.\",\"before\":{\"stage\":\"Before the story runs\",\"title\":\"Media Lists\",\"body\":\"The outlets you plan to pitch, scored for AI. See which outlets AI can read and already cites, track every pitch, and share the list for client sign-off.\",\"link\":\"Explore Media Lists\"},\"after\":{\"stage\":\"After the story runs\",\"title\":\"Coverage Reports\",\"body\":\"The placement URLs you landed, tracked into AI answers. Paste the month in one go and get one influence rate for the client report.\",\"link\":\"Explore Coverage Reports\"},\"connector\":\"Placed → sent to a coverage report\",\"aiCitations\":\"{count} AI citations\"},\"hidden\":{\"eyebrow\":\"Hidden earned media\",\"title\":\"Credit you earned but never got\",\"lede\":\"Some placements get read by AI while composing and never credited; others get cited to back a competitor. Citation Intelligence surfaces both, and the follow-up conversation with the journalist writes itself.\",\"bandMessage\":\"See every source AI used, classified by what it did for the brand.\",\"bandLabel\":\"Citation Intelligence\"},\"authors\":{\"eyebrow\":\"Author tracking\",\"title\":\"Know whose writing AI trusts\",\"lede\":\"Track citations of specific journalists' work with author goals. When AI keeps trusting one byline in your category, that's your next pitch.\",\"tileTitle\":\"Author citations · this quarter\"},\"executiveBand\":{\"message\":\"Client executives get asked about too: run Person Tracking alongside brand coverage.\",\"label\":\"Person Tracking\"},\"buyersBand\":{\"message\":\"Which buyers does AI steer toward your client, and which does it steer away? Buyer personas show both, with the reasons AI gives.\",\"label\":\"Buyer personas\"},\"board\":{\"eyebrow\":\"Board-ready\",\"title\":\"Reports that survive scrutiny\",\"lede\":\"White-labeled web, PDF, and PPTX exports, a Monday summary email, and every KPI backed by drill-down data. Bring numbers the board can push on.\",\"bandMessage\":\"The three metric tiers behind every KPI.\",\"bandLabel\":\"Daily Prompt Tracking\"},\"cta\":{\"title\":\"Prove the placement worked.\",\"description\":\"Book a demo, or score a placement right now; no setup required.\",\"primary\":\"Book a demo\",\"secondary\":\"Score a placement\"},\"widgets\":{\"stagePlacements\":\"Coverage placements\",\"stageCited\":\"Cited by AI\",\"stageInline\":\"Cited inline\",\"funnelCaption\":\"One campaign's placements, tracked from coverage to answer.\"}}},\"footer\":{\"description\":\"Complete visibility into your website's AI traffic. Track AI agents, block unwanted bots, and optimize for the future of customer discovery.\",\"sections\":{\"product\":{\"title\":\"Product\",\"links\":{\"aiVisibilityReport\":\"AI Visibility Report\",\"aiReadinessAudit\":\"AI Readiness Audit\",\"aiTrafficAnalytics\":\"AI Traffic Analytics\",\"faqGeneration\":\"FAQ Generator\",\"aiPlacementValueScore\":\"AI Placement Value Score\",\"aiPlacementQualityScore\":\"AI Placement Quality Score\",\"citationOptimizer\":\"Citation Optimizer\",\"aiAccessChecker\":\"AI Access Checker\",\"commonCrawlRankChecker\":\"Common Crawl Rank Checker\",\"freeAiVisibilityPromptGenerator\":\"AI Visibility Prompt Generator\",\"personalAiVisibilityReport\":\"Personal AI Visibility Report\",\"forAgencies\":\"For Agencies\",\"forPRFirms\":\"For PR Firms\",\"demo\":\"Schedule Demo\",\"documentation\":\"Documentation\",\"pricing\":\"Pricing\",\"blog\":\"Blog\",\"bots\":\"Agent Insights\",\"aiVisibilityCalculator\":\"AI Visibility Calculator\"},\"subheadings\":{\"freeTools\":\"Free Tools\",\"useCases\":\"Use Cases\"}},\"resources\":{\"title\":\"Resources\"},\"methodology\":{\"title\":\"Methodology\",\"links\":{\"dataCollection\":\"How We Collect Data\",\"aipvs\":\"AI Placement Value Score\",\"pqs\":\"AI Placement Quality Score\",\"citationOptimizer\":\"Citation Optimizer\"}},\"company\":{\"title\":\"Company\",\"links\":{\"contact\":\"Contact\",\"pressKit\":\"Press Kit\",\"brandBook\":\"Brand Book\"}},\"legal\":{\"title\":\"Legal\",\"links\":{\"privacyPolicy\":\"Privacy Policy\",\"termsOfService\":\"Terms of Service\",\"subprocessors\":\"Subprocessors\"}}},\"newsletter\":{\"title\":\"Stay Updated\",\"description\":\"Get notified about new features, integrations, and AI traffic insights.\"},\"copyright\":\"© {year} Orchestra AI, Inc. All rights reserved.\"},\"demo\":{\"title\":\"AI Visibility Platform Demo for Agencies \u0026 PR Firms | Spyglasses\",\"description\":\"Schedule a live demo or watch a recorded walkthrough of Spyglasses. See how PR firms and marketing agencies use Spyglasses to measure and prove AI visibility ROI.\",\"hero\":{\"title\":\"See Spyglasses in Action\",\"description\":\"Get a personalized walkthrough of the AI visibility platform built for PR firms and marketing agencies. See how to track citations, prove earned media ROI, and deliver white-labeled reports to clients.\",\"cta\":{\"primary\":\"Schedule Live Demo\",\"secondary\":\"Watch Recorded Demo\"}}
2,\"booking\":{\"title\":\"Schedule Your Personal Demo\",\"description\":\"Book a 30-minute call to see how Spyglasses helps agencies and PR firms measure AI visibility, prove campaign impact, and deliver client-ready reports.\",\"alternative\":\"Prefer to see it on your own time?\",\"watchRecorded\":\"Watch Recorded Demo\"},\"recorded\":{\"title\":\"Watch Our Product Walkthrough\",\"description\":\"See how Spyglasses works with this product walkthrough. Learn about AI visibility reports, citation tracking, AI Readiness Audits, and white-labeled client deliverables.\",\"cta\":{\"description\":\"Ready to see how this applies to your clients?\",\"button\":\"Schedule Personal Demo\"}},\"benefits\":{\"title\":\"Why Schedule a Demo?\",\"description\":\"Choose the format that works best for you.\",\"personalized\":{\"title\":\"Personalized Walkthrough\",\"description\":\"Get answers to your specific questions and see how Spyglasses fits into your agency or PR firm's workflow.\"},\"immediate\":{\"title\":\"Immediate Access\",\"description\":\"Watch our recorded demo anytime to understand how Spyglasses measures and proves AI visibility for clients.\"},\"flexible\":{\"title\":\"Flexible Options\",\"description\":\"Choose between live interaction or self-paced learning; whatever fits your schedule.\"}}},\"personAiReport\":{\"title\":\"Personal AI Visibility Report\",\"intro\":\"See how ChatGPT, Gemini, Claude, and Perplexity describe you or your client: identity accuracy, same-name confusion, and the narratives AI repeats. Free preview; unlock the full report for $15.\",\"hero\":{\"eyebrow\":\"Free Tool · Personal AI Visibility Report\",\"title\":\"Ask AI who you are. Did it get it right?\",\"summary\":\"People ask AI assistants about executives, founders, authors, and consultants every day. This report shows what ChatGPT, Gemini, Claude, and Perplexity actually say about a person: how accurate it is, whether they're being mixed up with someone else, and which narratives keep coming up.\"},\"glance\":{\"summary\":\"What you get, at a glance\",\"fact1\":\"Live answers from ChatGPT, Gemini, Claude, and Perplexity, with and without web browsing\",\"fact2\":\"Identity accuracy scored against a neutral snapshot built from public sources\",\"fact3\":\"Same-name confusion and outdated roles flagged automatically\",\"fact4\":\"Free preview; the full report is a one-time $15, no subscription\"},\"measured\":{\"eyebrow\":\"What's measured\",\"title\":\"Four ways AI can get a person wrong\",\"lede\":\"Every answer AI gives about a person is checked against a neutral snapshot built from public sources.\",\"identity\":{\"label\":\"Identity accuracy\",\"blurb\":\"Are your role, employer, and background correct? Scored per platform, with and without web browsing.\"},\"confusion\":{\"label\":\"Same-name confusion\",\"blurb\":\"Share your name with someone else? We flag when AI blends the two of you together.\"},\"narratives\":{\"label\":\"Tracked narratives\",\"blurb\":\"Add the stories you want AI to tell, or stop telling, and see how often each one actually shows up.\"},\"consistency\":{\"label\":\"Cross-model consistency\",\"blurb\":\"Do the platforms agree about you? Low consistency means your public record needs work.\"}},\"proof\":{\"eyebrow\":\"You're in good company\",\"title\":\"People check their AI visibility here every week\"},\"demo\":{\"eyebrow\":\"Sample reports\",\"title\":\"See a finished report first\",\"lede\":\"Explore unlocked person reports to see the depth you'll get before you run your own.\"},\"trackingBand\":{\"message\":\"A report is a snapshot. Person Tracking watches what AI says about you every day.\",\"label\":\"Explore Person Tracking\"},\"prBand\":{\"message\":\"Managing reputation for clients? See how PR firms use Spyglasses.\",\"label\":\"Spyglasses for PR firms\"},\"cta\":{\"title\":\"Find out what AI says about you\",\"description\":\"Run the free report now. It takes a name, an optional role, and a few minutes.\",\"primary\":\"Run my free report\",\"secondary\":\"Book a demo\"},\"faq\":{\"title\":\"Personal AI Visibility Report FAQ\",\"description\":\"Common questions about the free personal AI visibility report.\",\"items\":{\"0\":{\"question\":\"What is a Personal AI Visibility Report?\",\"answer\":\"It's a one-time audit of how the major AI assistants describe a specific person. We ask ChatGPT, Gemini, Claude, and Perplexity about the person with and without web browsing, score the answers for accuracy against a neutral public-sources snapshot, and flag same-name confusion, outdated roles, and factual errors.\"},\"1\":{\"question\":\"Who is it for?\",\"answer\":\"Executives, founders, authors, speakers, and consultants who want to know what AI tells people about them; and the agencies and PR teams who manage reputation for those people. You can run it on yourself or on a client.\"},\"2\":{\"question\":\"What does the free preview include?\",\"answer\":\"You'll see the report structure, the profile snapshot, and a preview of the discovery results at no cost. Unlocking the full report is a one-time $15 purchase; no subscription, no account required.\"},\"3\":{\"question\":\"What are key attributes?\",\"answer\":\"Optional narratives you want checked, like a claim you're known for or a story you'd rather AI stopped repeating. Mark each one positive, negative, or neutral and the report shows how often each shows up in AI answers about you.\"},\"4\":{\"question\":\"What if AI confuses me with someone who has my name?\",\"answer\":\"That's one of the main things we test for. Adding a role or affiliation on the form helps us target the right person, and the report flags every case where a platform blends you with someone else.\"},\"5\":{\"question\":\"Which AI platforms are checked?\",\"answer\":\"ChatGPT, Google Gemini, Claude, and Perplexity. Each one is asked about the person twice: once from its training data alone and once with web browsing turned on, because the two answers often differ.\"},\"6\":{\"question\":\"How long does the report take?\",\"answer\":\"A few minutes. You can stay on the page and watch it build, or come back later; the report lives at a private link that only you have.\"},\"7\":{\"question\":\"Can I change what AI says about me?\",\"answer\":\"Often, yes. The report shows where AI's picture of you is wrong or thin, which tells you what public sources need fixing. If you want to measure progress over time, Person Tracking runs the same checks every day.\"}}},\"form\":{\"nameLabel\":\"Person's name\",\"namePlaceholder\":\"e.g. Jordan Ellis\",\"entityRefLabel\":\"Role or affiliation (optional)\",\"entityRefPlaceholder\":\"e.g. CMO at Acme, or a LinkedIn URL\",\"entityRefHelp\":\"Helps us tell this person apart from others with the same name.\",\"attributesToggle\":\"Add key attributes (optional)\",\"attributesHelp\":\"Up to 5 narratives to check, like a talk topic or a claim you're known for. Mark each one positive, negative, or neutral.\",\"attributeMessagePlaceholder\":\"e.g. Known for scaling B2B startups\",\"sentiment\":{\"positive\":\"Positive\",\"negative\":\"Negative\",\"neutral\":\"Neutral\"},\"addRow\":\"Add another\",\"removeRow\":\"Remove attribute\",\"submit\":\"Run free report\",\"validation\":{\"nameRequired\":\"Enter the person's name (at least 2 characters).\"}}},\"personTracking\":{\"meta\":{\"title\":\"Person Tracking: See How AI Describes You | Spyglasses\",\"description\":\"AI answers questions about people every day. Track what 
2ChatGPT, Gemini, and Google AI Overviews say about you, catch same-name confusion, and fix outdated answers.\"},\"hero\":{\"eyebrow\":\"Track · Person Tracking\",\"title\":\"Person Tracking monitors what AI says about you.\",\"summary\":\"Person Tracking is Spyglasses' AI visibility monitoring for individuals: executives, founders, authors, speakers, and consultants. It checks what ChatGPT, Gemini, and Google AI Overviews say about a person every day, scores Identity Accuracy against a neutral public-sources snapshot, and flags same-name confusion and outdated roles.\",\"primaryCta\":\"Track a person\",\"freeReportCta\":\"Get a free person report\",\"secondaryCta\":\"Book a demo\",\"accuracyLabel\":\"Identity Accuracy\",\"accuracyDelta\":\"+{delta} pts this month\"},\"glance\":{\"summary\":\"Person Tracking at a glance\",\"fact1\":\"Checks every platform with browsing and without, so you know what's memory and what's live.\",\"fact2\":\"Identity Accuracy is scored against a neutral snapshot built from Wikidata, Wikipedia, and public coverage.\",\"fact3\":\"Flags same-name confusion and outdated roles the moment they appear in an answer.\",\"fact4\":\"Tracks the narrative attributes you define, every day, with mention rates per attribute.\"},\"moments\":{\"eyebrow\":\"The moments that matter\",\"title\":\"Someone just asked AI about you\",\"lede\":\"A prospect before the call. A journalist before the quote. A board before the offer. They don't read page two of search results anymore; they ask AI and take the first answer.\"},\"accuracy\":{\"eyebrow\":\"Identity Accuracy\",\"title\":\"Is AI's version of you the real one?\",\"lede\":\"Every platform gets asked who you are, with browsing and without. Answers are scored against a neutral snapshot built from public sources, so the score measures them, not your marketing.\"},\"confusion\":{\"eyebrow\":\"Same-name confusion\",\"title\":\"Is AI mixing you up with someone else?\",\"lede\":\"Common name, shared industry, or a namesake with a bigger footprint: AI blends identities more often than you'd think. Spyglasses flags every answer where your record picks up someone else's life.\"},\"outdated\":{\"eyebrow\":\"Outdated information\",\"title\":\"Old roles stick around\",\"lede\":\"Models remember the job you left years ago. Spyglasses separates what AI knows from memory versus live browsing, so you know which fix helps: new coverage, or time.\"},\"attributes\":{\"eyebrow\":\"How it works\",\"title\":\"Track the story, attribute by attribute\",\"lede\":\"You define the attributes of your story: the positives you want AI to repeat and the negatives you want to fade. Every day, Spyglasses measures how often each one shows up in the answers, so you can watch the narrative move.\"},\"audiences\":{\"eyebrow\":\"Who it's for\",\"title\":\"Anyone whose name gets asked about\",\"executives\":{\"label\":\"Executives \u0026 founders\",\"blurb\":\"Buyers and boards research you before the company.\"},\"authors\":{\"label\":\"Authors \u0026 speakers\",\"blurb\":\"Your next booking starts with someone asking AI who you are.\"},\"consultants\":{\"label\":\"Consultants\",\"blurb\":\"Your name is the brand. Track it like one.\"},\"prFirms\":{\"label\":\"PR firms\",\"blurb\":\"Run it for client executives alongside brand tracking.\"}},\"worksWith\":{\"category\":{\"message\":\"Tracking a whole market instead of one name? That's Category Tracking.\",\"label\":\"Category Tracking\"},\"tracking\":{\"message\":\"Person prompts run in the same daily tracking as everything else. See how the three metric tiers work.\",\"label\":\"Daily Prompt Tracking\"},\"prFirms\":{\"message\":\"PR firms: run it for client executives alongside their brand tracking, in the same dashboards.\",\"label\":\"For PR \u0026 Comms\"}},\"faq\":{\"title\":\"Person Tracking FAQ\",\"description\":\"Common questions about tracking a person's AI visibility.\",\"items\":{\"0\":{\"question\":\"Does the person need a website?\",\"answer\":\"No. Tracking starts from public sources: Wikidata and Wikipedia when the person has an entry, public coverage otherwise. A personal site helps AI get the story right, but you don't need one to start tracking.\"},\"1\":{\"question\":\"Where does the identity snapshot come from?\",\"answer\":\"From neutral public sources. When the person has a Wikidata or Wikipedia entry, we build the snapshot there. Otherwise we assemble it from public web coverage and flag it as directional. Every AI answer is scored against that baseline, not against your marketing.\"},\"2\":{\"question\":\"What if AI confuses me with someone with the same name?\",\"answer\":\"That's one of the main things we watch for. Every answer that blends your record with someone else's gets flagged, with the platform and whether browsing was on. Fixing it usually means strengthening distinctive public signals, and you can watch the confusion rate fall run by run.\"},\"3\":{\"question\":\"Can a PR firm run this for a client executive?\",\"answer\":\"Yes. A person is a property like any brand, so firms track client executives alongside client brands in the same workspace. Agency plans add white-labeled reports you can put in front of the client.\"},\"4\":{\"question\":\"What does it cost?\",\"answer\":\"Person tracking is included in every plan; a tracked person uses plan prompts like any other property. Plans start at ${brandPrice} per month.\"},\"5\":{\"question\":\"Is this different from googling yourself?\",\"answer\":\"Search gives you a list of links; AI gives one synthesized answer, and most people never check its sources. Person Tracking measures that answer itself: what it says, whether it's accurate, and how it changes over time across platforms.\"}}},\"cta\":{\"title\":\"Find out what AI says about you.\",\"description\":\"Set up takes a name and a couple of links. The first answers arrive by tomorrow.\",\"primary\":\"Track a person\",\"secondary\":\"Talk to us\"},\"widgets\":{\"accuracyRow\":\"{withBrowsing} browsing · {withoutBrowsing} without\",\"accuracyLegend\":\"Solid = with browsing · faded = model memory only\",\"badgeAmplify\":\"Amplify\",\"badgeWatching\":\"Watching\",\"badgeSameName\":\"Same-name confusion\",\"badgeOutdated\":\"Outdated info\",\"attributesLegend\":\"Mention rate across the latest run · 
2negative attributes are lower-is-better\"}},\"promptTracking\":{\"meta\":{\"title\":\"Daily AI Prompt Tracking with Three Levels of Proof | Spyglasses\",\"description\":\"Your prompts run on a daily schedule across the major AI platforms. Share clean KPIs, drill into the backing metrics, or pull raw data through MCP. Tracking you can defend.\"},\"hero\":{\"eyebrow\":\"Track · Daily Prompt Tracking\",\"title\":\"Daily AI prompt tracking across every major platform.\",\"summary\":\"Spyglasses runs your tracked prompts every day against ChatGPT, Gemini, and Google AI Overviews, with Claude and Perplexity available as an add-on. What comes back works at three levels: top-line KPIs you can share, backing metrics you can defend, and raw per-citation data you can take anywhere, in the app or through the MCP server.\",\"primaryCta\":\"Start tracking\",\"secondaryCta\":\"Talk to us\"},\"glance\":{\"summary\":\"Daily prompt tracking at a glance\",\"fact1\":\"Prompts run every day across ChatGPT, Gemini, and Google AI Overviews; Claude and Perplexity are available as an add-on.\",\"fact2\":\"Three metric tiers: shareable KPIs, backing metrics, and raw per-citation data.\",\"fact3\":\"Goals match citations automatically, including retroactively when you add one later.\",\"fact4\":\"A white-labeled summary email lands every Monday; raw data is available through MCP.\"},\"nightly\":{\"eyebrow\":\"A series, not a snapshot\",\"title\":\"One-off checks mislead. A daily series doesn't.\",\"lede\":\"AI answers change between sessions and days. A single check is a coin flip; a daily series is a trend. Spyglasses runs every tracked prompt on a fixed daily schedule so your numbers come with enough samples to mean something.\",\"bandMessage\":\"How many prompts make a reliable number? Try the calculator.\",\"bandLabel\":\"Reliability calculator\"},\"tier1\":{\"eyebrow\":\"Tier 1 · Share it\",\"title\":\"KPIs you can put in front of a board\",\"lede\":\"Share of goal influence and attributed brand mentions, with period deltas. A white-labeled summary email goes out every Monday, and exports ship as web pages, PDF, or PPTX in your brand.\"},\"tier2\":{\"eyebrow\":\"Tier 2 · Defend it\",\"title\":\"Every number opens to show its work\",\"lede\":\"Click any KPI and the backing metrics are right there: influence rates per goal, weekly trends, and the citations behind each count. When a client asks “says who?”, you show them.\"},\"tier3\":{\"eyebrow\":\"Tier 3 · Take it anywhere\",\"title\":\"Raw data, in the app or over MCP\",\"lede\":\"Every citation row carries its prompt, platform, date, and answer context. Analysts pull the same rows through the MCP server into notebooks, BI tools, or custom client workflows.\",\"bandMessage\":\"Analysts: the whole account is queryable from Claude or any MCP client.\",\"bandLabel\":\"The MCP server\"},\"goals\":{\"eyebrow\":\"Goals\",\"title\":\"Track what you're trying to move\",\"lede\":\"A goal names the outcome: your pages, a publisher, an article, an author, or a whole coverage group. Every matching citation counts toward it, including past ones when you add a goal later.\"},\"personas\":{\"eyebrow\":\"Buyer personas\",\"title\":\"Same question, different buyer\",\"lede\":\"AI doesn't give every buyer the same answer. A CFO and an IT lead can ask the same question and get different shortlists. Add buyer personas to a project and each discovery prompt also runs every day as each buyer, on ChatGPT and Gemini. Perspectives then shows where AI makes you its top choice, where it cautions a buyer against you, and who it recommends instead.\",\"bandMessage\":\"Persona answers sit next to your headline numbers and never change them.\",\"bandLabel\":\"How personas work\"},\"works\":{\"eyebrow\":\"Works with everything you track\",\"title\":\"People, places, and products too\",\"person\":{\"label\":\"Person Tracking\",\"blurb\":\"What AI says about executives, authors, and consultants.\"},\"location\":{\"label\":\"Location Tracking\",\"blurb\":\"Share of voice per city or country, on one yardstick.\"},\"product\":{\"label\":\"Product Tracking\",\"blurb\":\"How AI recommends your products, anchored to real pages.\"}},\"faq\":{\"title\":\"Daily prompt tracking FAQ\",\"description\":\"Common questions about how daily tracking works.\",\"items\":{\"0\":{\"question\":\"When do prompts run?\",\"answer\":\"On a fixed daily schedule. Runs happen overnight, US time, and results are in y
2our dashboard by morning.\"},\"1\":{\"question\":\"How many prompts do I need for reliable numbers?\",\"answer\":\"It depends on the margin of error you can accept. More prompts and more nights mean tighter numbers; our reliability calculator shows the math for your sample size.\"},\"2\":{\"question\":\"Can clients see the data behind a KPI?\",\"answer\":\"Yes. Every KPI drills down to per-goal influence rates and the individual citations behind each count, with the full AI answer a click away.\"},\"3\":{\"question\":\"Can I export raw prompt and citation data?\",\"answer\":\"Yes. In the app you can drill to raw rows, and the MCP server exposes the same data to Claude or any MCP client for exports, notebooks, and BI tools.\"},\"4\":{\"question\":\"What's a goal and how does it get hit?\",\"answer\":\"A goal names what you want cited: a page group, publisher, article, author, or coverage group. Any tracked citation that matches counts as a hit, and new goals match past citations retroactively.\"},\"5\":{\"question\":\"Do unused prompts cost me anything?\",\"answer\":\"No. Only prompts assigned to an active project run each day and count toward your plan's usage.\"},\"6\":{\"question\":\"Can I see how AI answers different buyers?\",\"answer\":\"Yes. Buyer personas are drafted from your customer segments, as one buyer or a whole buying committee. Add them to a project and each discovery prompt also runs once a day as each buyer on ChatGPT and Gemini. Each persona run counts as one tracked prompt, like a location. Your headline metrics count only the regular answers, so they never move.\"}}},\"cta\":{\"title\":\"Start tracking today.\",\"description\":\"Set up prompts now; the first daily run lands by tomorrow morning.\",\"primary\":\"Start tracking\",\"secondary\":\"Book a demo\"},\"widgets\":{\"tierShare\":\"Share it\",\"tierDefend\":\"Defend it\",\"tierRaw\":\"Take it anywhere\",\"citationsCount\":\"{count} citations\"}},\"citationIntelligence\":{\"meta\":{\"title\":\"Citation Intelligence: Find Your Hidden Earned Media | Spyglasses\",\"description\":\"See every source AI uses when it talks about your market. Find pages that mention you but never get credited, and the publishers AI actually trusts.\"},\"hero\":{\"eyebrow\":\"Score · Citation Intelligence\",\"title\":\"Citation Intelligence: every source AI uses when it talks about your market.\",\"summary\":\"Citation Intelligence is Spyglasses' map of AI's source layer. It classifies every citation behind the answers ChatGPT, Gemini, Claude, and Perplexity give about your market: which pages were credited, which were read but never mentioned, and which publishers AI actually trusts.\",\"primaryCta\":\"See your citations\",\"secondaryCta\":\"Talk to us\"},\"strip\":{\"fact1\":{\"value\":\"Every citation\",\"label\":\"classified by brand relevance, every day\"},\"fact2\":{\"value\":\"Hidden media\",\"label\":\"pages AI reads but never credits\"},\"fact3\":{\"value\":\"4-week mix\",\"label\":\"watch attributed share climb as you work\"},\"fact4\":{\"value\":\"AIPVS\",\"label\":\"publisher value scores on every source\"}},\"sourceLayer\":{\"eyebrow\":\"The source layer\",\"title\":\"Answers are built on sources you can see\",\"lede\":\"Every AI answer sits on retrieved pages. Spyglasses collects them all: cited inline, evaluated but unused, or surfaced in search and dropped. That's the layer where the answer was decided.\"},\"hidden\":{\"eyebrow\":\"Hidden earned media\",\"title\":\"AI read about you. It just didn't say so.\",\"lede\":\"Some pages mention your brand and get read while AI composes, but never earn a credit. Others get cited only to back a competitor. Both are hidden opportunities; both show up here with the receipts.\"},\"classification\":{\"eyebrow\":\"Classification\",\"title\":\"Every citation, sorted by what it did for you\",\"lede\":\"Attributed: the answer credited you. Content mention: the page names you but the answer didn't. Unrelated: the source served someone else's story. One dimension for brand relevance, another for how far the page got in the pipeline.\"},\"publishers\":{\"eyebrow\":\"Publisher intelligence\",\"title\":\"Which publishers does AI actually trust?\",\"lede\":\"Every source carries its AI Placement Value Score, so you can rank the publishers that shape your market and pitch the ones that matter.\",\"bandMessage\":\"Score any publisher before you pitch it.\",\"bandLabel\":\"AI Placement Value Score\"},\"authors\":{\"bandMessage\":\"Author data rides along: see whose writing AI trusts in your category.\",\"bandLabel\":\"For PR \u0026 Comms\"},\"faq\":{\"title\":\"Citation Intelligence FAQ\",\"description\":\"Common questions about AI citations and hidden earned media.\",\"
2items\":{\"0\":{\"question\":\"What counts as a citation?\",\"answer\":\"Any source an AI platform used while answering a tracked prompt: cited inline in the answer, evaluated during composition, or surfaced in the search step. Each is labeled so you know how far it got.\"},\"1\":{\"question\":\"What's the difference between a content mention and an attributed citation?\",\"answer\":\"Attributed means the answer credited your brand. A content mention means the cited page names you, but the answer never did; that's hidden earned media.\"},\"2\":{\"question\":\"How do I act on a hidden mention?\",\"answer\":\"Start with the publisher: the page already mentions you and AI already trusts it. A stronger placement, updated copy, or outreach to that outlet usually converts reading into crediting.\"},\"3\":{\"question\":\"Can I see which publishers influence AI in my category?\",\"answer\":\"Yes. Every source is scored with AIPVS and ranked, and you can turn a publisher that's working into a tracked goal in one click.\"},\"4\":{\"question\":\"Does this update daily?\",\"answer\":\"Yes. Classification runs with the daily tracking, and the mix updates as new citations arrive.\"}}},\"cta\":{\"title\":\"Find the credit you're missing.\",\"description\":\"Connect a property and see your source layer within a day.\",\"primary\":\"See your citations\",\"secondary\":\"Book a demo\"},\"widgets\":{\"legend\":{\"attributed\":\"Attributed\",\"contentMention\":\"Content mention\",\"unrelated\":\"Unrelated\"},\"attributedShare\":\"{pct}% attributed\",\"badgeHidden\":\"Hidden earned media\",\"badgeCompetitor\":\"Backs a competitor\"}},\"services\":{\"meta\":{\"title\":\"Spyglasses Services: AI Visibility, Done for You\",\"description\":\"Fractional AI visibility support, agentic commerce implementation, and AI-focused SEO and rewriting. Our tools, our experts, your outcomes.\"},\"hero\":{\"eyebrow\":\"Solutions · Services\",\"title\":\"AI visibility services: fractional support, agentic commerce, and AI-focused rewriting.\",\"summary\":\"Spyglasses Services puts our team behind the platform: fractional AI visibility support inside your workspace, agentic commerce implementation for retail catalogs, and AI-focused SEO and rewriting where we run the Citation Optimizer and Site Audit on your behalf.\",\"primaryCta\":\"Contact us\",\"secondaryCta\":\"Book a call\"},\"glance\":{\"summary\":\"Services at a glance\",\"fact1\":\"Three offerings, one scoping call to pick the right one.\",\"fact2\":\"Experts work inside your Spyglasses workspace; the tools and data stay yours afterward.\",\"fact3\":\"Every engagement ends with deliverables you can rerun yourself.\"},\"fractional\":{\"eyebrow\":\"Fractional AI visibility support\",\"title\":\"An AI visibility lead, without the headcount\",\"lede\":\"Ongoing expert support on your accounts: strategy, interpretation, and hands-on-keyboard work inside your Spyglasses workspace. Weekly rhythm, your tools, our driver.\",\"cta\":\"Ask about fractional support\"},\"agentic\":{\"eyebrow\":\"Agentic commerce implementation\",\"title\":\"Get your catalog ready for AI that buys\",\"lede\":\"Assistants are starting to recommend and transact. We prepare your product data, feeds, and pages so agents can find, evaluate, and choose your products, and pair it with Product Tracking to prove it's working.\",\"cta\":\"Ask about agentic commerce\",\"bandMessage\":\"Measure the effect with Product Tracking.\",\"bandLabel\":\"Product Tracking\"},\"rewriting\":{\"eyebrow\":\"AI-focused SEO \u0026 rewriting\",\"title\":\"We run the optimizer so you don't have to\",\"lede\":\"We score your content with the Citation Optimizer, rewrite what falls out of the pipeline, and audit your site until it shows a clean AI readiness score you can put in front of anyone. You get the lifts and the before/after scores to prove them.\",\"cta\":\"Ask about SEO \u0026 rewriting\",\"bandMessage\":\"The same tools, self-serve: score content and audit your site yourself.\",\"bandLabel\":\"Citation Optimizer\"},\"how\":{\"eyebrow\":\"How engagements work\",\"title\":\"Short scoping call, clear deliverables\",\"lede\":\"Tell us what you're trying to move. We scope the work, agree on deliverables, and get started; everything we build lives in your workspace and stays yours when the engagement ends.\"},\"faq\":{\"title\":\"Services FAQ\",\"description\":\"Common questions about working with the Spyglasses team.\",\"items\":{\"0\":{\"question\":\"Do I 
2need a subscription to use services?\",\"answer\":\"Fractional AI visibility support doesn't require one; we can advise no matter what your stack looks like. Work that leverages our tools, like implementation, rewriting, and audits, runs inside a Spyglasses workspace, and if you don't have one yet we set it up as part of the engagement.\"},\"1\":{\"question\":\"How are engagements priced?\",\"answer\":\"By scope. After the scoping call you get a fixed proposal; fractional support is a monthly retainer, implementation and rewriting work is per-project.\"},\"2\":{\"question\":\"Who does the work?\",\"answer\":\"The Spyglasses team, using the same tools you see on this site. No outsourcing.\"},\"3\":{\"question\":\"Can you work inside our existing agency processes?\",\"answer\":\"Yes. We slot into your reporting cadence and tooling, and white-labeled deliverables can carry your brand.\"},\"4\":{\"question\":\"Do you certify AI readiness?\",\"answer\":\"There's no formal seal or certification. What you get is a clean, current AI Readiness Site Audit score plus the before-and-after lift: evidence you can share that your site is readable, extractable, and citable by the major AI platforms.\"}}},\"cta\":{\"title\":\"Tell us what you're trying to move.\",\"description\":\"A short scoping call is enough to find out if we can help.\",\"primary\":\"Contact us\",\"secondary\":\"Book a call\"}},\"locationTracking\":{\"meta\":{\"title\":\"Location Tracking: AI Visibility by Market | Spyglasses\",\"description\":\"AI answers change by market. Run the same prompts per city or country and get share of voice you can compare across every market you operate in.\"},\"hero\":{\"eyebrow\":\"Track · Location Tracking\",\"title\":\"Track AI visibility by city and country.\",\"summary\":\"Location Tracking is Spyglasses' multi-market AI visibility monitoring. It runs your tracked prompts once per market, city or country, against ChatGPT, Gemini, and Google AI Overviews, and reports share of voice per location so franchise, multi-location, and international brands can compare markets on equal footing.\",\"primaryCta\":\"Track your markets\",\"secondaryCta\":\"Talk to us\",\"tileTitle\":\"Share of voice by market\"},\"glance\":{\"summary\":\"Location Tracking at a glance\",\"fact1\":\"The same prompts run once per market, with the city or country as context.\",\"fact2\":\"Mentions always match the parent brand, so share of voice lines up across markets.\",\"fact3\":\"City or country granularity, per location.\",\"fact4\":\"Every market rolls up to one parent dashboard.\"},\"how\":{\"eyebrow\":\"How it works\",\"title\":\"Same prompts, one run per market\",\"lede\":\"Each tracked prompt fans out once per location with the market injected as context. You choose the granularity: city for local brands, country for international ones.\"},\"comparable\":{\"eyebrow\":\"Comparable by design\",\"title\":\"One yardstick across every market\",\"lede\":\"Mentions are always matched against the parent brand, never the location label. That one rule keeps share of voice comparable, so Austin versus Denver is a real comparison, not an artifact.\"},\"rollup\":{\"eyebrow\":\"The rollup\",\"title\":\"Every market, side by side\",\"lede\":\"The parent dashboard lines up every market's share of voice, so expansion wins and slipping markets jump out at a glance.\"},\"useCases\":{\"eyebrow\":\"Who it's for\",\"title\":\"Built for multi-market brands\",\"franchise\":{\"label\":\"Franchises\",\"blurb\":\"Compare hundreds of locations with one methodology.\"},\"international\":{\"label\":\"International brands\",\"blurb\":\"See where the story lands and where it doesn't, country by country.\"},\"regulated\":{\"label\":\"Regulated markets\",\"blurb\":\"Watch messaging by market where claims have to differ.\"}},\"worksWith\":{\"category\":{\"message\":\"A category can carry locations too, so every market gets its own leader.\",\"label\":\"Category Tracking\"},\"tracking\":{\"message\":\"Location runs ride on the same daily prompt tracking as everything else.\",\"label\":\"Daily Prompt Tracking\"}
2,\"product\":{\"message\":\"Products vary by market too: pair it with Product Tracking.\",\"label\":\"Product Tracking\"}},\"faq\":{\"title\":\"Location Tracking FAQ\",\"description\":\"Common questions about multi-market AI visibility.\",\"items\":{\"0\":{\"question\":\"How many locations can I track?\",\"answer\":\"As many as your plan's prompts support; each location run counts like a prompt run. Agency plans are built for larger location sets.\"},\"1\":{\"question\":\"City or country: which should I pick?\",\"answer\":\"City for local intent (stores, services, franchises); country for international brands where language and market shift the answers. You can mix granularities across locations.\"},\"2\":{\"question\":\"Do location runs cost extra prompts?\",\"answer\":\"Each location runs the parent's prompts once per day, so a prompt tracked across three markets uses three daily runs.\"},\"3\":{\"question\":\"Can I compare share of voice across markets?\",\"answer\":\"Yes, that's the point. Mentions match the parent brand in every market, so the percentages sit on one yardstick.\"},\"4\":{\"question\":\"Does this work outside the US?\",\"answer\":\"Yes. Locations can be any city or country, and prompts run with that market as context.\"}}},\"cta\":{\"title\":\"See your visibility, market by market.\",\"description\":\"Add locations to a property and the first per-market numbers arrive within a day.\",\"primary\":\"Track your markets\",\"secondary\":\"Book a demo\"}},\"categoryTracking\":{\"meta\":{\"title\":\"Category Tracking: Who Does AI Name in Your Market? | Spyglasses\",\"description\":\"Buyers ask AI who the options are long before they ask about you. Track a whole category, see every brand AI names, and rank the field by share of answers.\"},\"hero\":{\"eyebrow\":\"Track · Category Tracking\",\"title\":\"Who does AI name when nobody has asked about your client yet?\",\"summary\":\"Most buyers don't start with a brand. They ask AI who the options are, and whoever gets named makes the shortlist. Category Tracking points the Spyglasses AI visibility platform at a whole market instead of one company, so you can see the field before you pitch it. You name the category, and Spyglasses writes the prompts buyers ask, runs them across ChatGPT, Gemini and Google AI Overviews (plus Claude and Perplexity as add-ons), then ranks every brand AI names.\",\"primaryCta\":\"Track a category\",\"secondaryCta\":\"Talk to us\",\"tileTitle\":\"Wireless headphones\",\"tileSubtitle\":\"Share of answers, last 7 days\",\"marketsTitle\":\"By market\",\"marketsSubtitle\":\"Each one has its own leader\"},\"demo\":{\"eyebrow\":\"Example reports\",\"title\":\"Read a finished category first\",\"lede\":\"These are real markets, mapped the way yours would be. Open one to see the ranking, the movers and the sources behind the answers.\"},\"glance\":{\"summary\":\"Category Tracking at a glance\",\"fact1\":\"You don't need a client, a domain, or a logo. A category is just the market you want to watch.\",\"fact2\":\"Every brand AI names gets ranked by share of answers, so you can see who's already the default.\",\"fact3\":\"Shares don't add up to 100. One answer usually names several brands, and plenty name nobody at all.\",\"fact4\":\"Add markets as locations and the same category gets scored city by city, where the leader is often someone else.\"},\"howItWorks\":{\"eyebrow\":\"How it works\",\"title\":\"Four steps, and the first answers land tomorrow\",\"lede\":\"There's no site to connect and no tag to install. You're describing a market, not a company.\",\"steps\":{\"0\":{\"title\":\"Name the category\",\"blurb\":\"Describe what buyers are choosing between and who they are. No website needed.\"},\"1\":{\"title\":\"Run the first report\",\"blurb\":\"Spyglasses writes the prompts buyers ask, puts them to five AI platforms, and comes back with every brand the answers name.\"},\"2\":{\"title\":\"See who AI names\",\"blurb\":\"Every brand in the answers gets ranked by the share of answers it appears in, with a 7-day change on each one.\"},\"3\":{\"title\":\"Break it out by market\",\"blurb\":\"Add cities or regions as locations. Each one runs the same prompts against local answers and gets its own leader.\"}}},\"forPr\":{\"eyebrow\":\"For PR teams\",\"title\":\"Walk in already knowing the field\",\"lede\":\"You can't pitch a client on AI visibility until you can show them what AI says. Track the category first and the pitch writes itself: here's who AI names, here's where you'd sit, here's the gap. After you win the work, the same data tells you which publishers AI is already reading.\",\"points\":{\"0\":\"Show a prospect the answers before they've spent a dollar.\",\"1\":\"Find the outlets AI cites for the category, then pitch those first.\",\"2\":\"Watch a client's competitors move week to week without tracking each one separately.\"}},\"forAgencies\":{\"eyebrow\":\"For agencies\",\"title\":\"One property covers a whole practice area\",\"lede\":\"Measurement on its own is a treadmill. The point of tracking a category is what you do next: which prospect to call, which publisher to pitch, which claim to sharpen. Track the vertical once and reuse it across the pitch, the onboarding, and the quarterly review. When a client signs, track their brand as its own property and keep the category running beside it.\",\"points\":{\"0\":\"Prospect a vertical with one tracked property instead of one per lead.\",\"1\":\"New entrants show up on their own, the first day AI names them.\",\"2\":\"Report on market share of answers alongside your client's own numbers.\"}}
2,\"worksWith\":{\"location\":{\"message\":\"Add markets as locations and every city gets its own ranking, with its own leader.\",\"label\":\"Location Tracking\"},\"tracking\":{\"message\":\"Once a client signs, point Daily Prompt Tracking at their brand and run it beside the category.\",\"label\":\"Daily Prompt Tracking\"}},\"cta\":{\"title\":\"Find out who AI already names.\",\"description\":\"Setup takes a sentence about the market you care about. The first ranking arrives the next morning.\",\"primary\":\"Track a category\",\"secondary\":\"Talk to us\"},\"faq\":{\"title\":\"Category Tracking FAQ\",\"description\":\"Common questions about tracking a whole market in AI answers.\",\"items\":{\"0\":{\"question\":\"What counts as a category?\",\"answer\":\"Anything buyers choose between: a product category, a service, a regional market, a niche you sell into. You name it and describe it in a sentence. There's no website and no focal brand.\"},\"1\":{\"question\":\"How is share of answers different from share of voice?\",\"answer\":\"Share of voice compares one brand against the competitors you name. Share of answers ranks every brand AI names across the whole field, so the values don't add up to 100. One answer usually names several brands.\"},\"2\":{\"question\":\"Do I need a website or a client to start?\",\"answer\":\"No. A category property has no site, so there's no crawl, no site audit, and no brand consistency score. You get the ranking, the movers, the key messages, and the citations.\"},\"3\":{\"question\":\"Can I track the same category in more than one city?\",\"answer\":\"Yes. Add cities or regions as locations and each market runs the same prompts against local answers, with its own ranking and its own leader. The leader often changes from one market to the next.\"},\"4\":{\"question\":\"What if AI names a brand I don't care about?\",\"answer\":\"Deactivate it and it stays out. Brand discovery only adds names that aren't on your list yet, so your manual cleanups stick from one day to the next.\"}}}},\"productTracking\":{\"meta\":{\"title\":\"Product Tracking: How AI Recommends Your Products | Spyglasses\",\"description\":\"People ask AI what to buy. Track how your products show up in AI recommendations, who you're compared against, and which sources AI trusts.\"},\"hero\":{\"eyebrow\":\"Track · Product Tracking\",\"title\":\"Track how AI recommends your products.\",\"summary\":\"Product Tracking is Spyglasses' AI visibility monitoring for products. Anchored to a real product page, it tracks how ChatGPT, Gemini, and Google AI Overviews recommend your products, measures recommendation share against competitors, and shows the sources AI trusts when it answers what to buy.\",\"primaryCta\":\"Track a product\",\"secondaryCta\":\"Talk to us\",\"tileTitle\":\"Recommendation share\"},\"glance\":{\"summary\":\"Product Tracking at a glance\",\"fact1\":\"Tracking anchors to a product URL you pick; the profile builds from your own pages.\",\"fact2\":\"Recommendation share is measured against the competitors you name.\",\"fact3\":\"Every recommendation shows the sources AI leaned on.\",\"fact4\":\"Ready for agentic commerce: know where you stand before assistants transact.\"},\"anchored\":{\"eyebrow\":\"Anchored to a real page\",\"title\":\"It starts with your product page\",\"lede\":\"Point tracking at a representative product URL. Spyglasses builds the product's profile from that page and its siblings, so the tracking reflects what you actually sell, not a guess.\"},\"measured\":{\"eyebrow\":\"What's measured\",\"title\":\"Share, rivals, and the sources behind them\",\"lede\":\"Recommendation share across tracked prompts, side by side with the competitors you name, plus the pages AI cites when it recommends. When a rival wins, you see which source made the case.\"},\"agentic\":{\"eyebrow\":\"Agentic commerce\",\"title\":\"Assistants are starting to buy\",\"lede\":\"Recommendation is step one; transacting is next. Being findable and preferred in AI answers is the groundwork, and our agentic commerce service handles the implementation side.\",\"bandMessage\":\"Want the implementation done for you? That's the agentic commerce service.\",\"bandLabel\":\"Explore services\"}
2,\"worksWith\":{\"category\":{\"message\":\"Want the whole market instead of one product? Track the category.\",\"label\":\"Category Tracking\"},\"location\":{\"message\":\"Answers about products shift by market too: pair it with Location Tracking.\",\"label\":\"Location Tracking\"},\"tracking\":{\"message\":\"Product prompts run in the same daily tracking as everything else.\",\"label\":\"Daily Prompt Tracking\"}},\"faq\":{\"title\":\"Product Tracking FAQ\",\"description\":\"Common questions about tracking products in AI answers.\",\"items\":{\"0\":{\"question\":\"How is this different from brand tracking?\",\"answer\":\"Brand tracking follows the company; product tracking follows a specific product anchored to its page, with its own prompts, competitors, and recommendation share.\"},\"1\":{\"question\":\"Which page should I anchor a product to?\",\"answer\":\"The canonical product page: the one you'd want AI to read. Spyglasses also discovers sibling product pages from there.\"},\"2\":{\"question\":\"Can I track a whole product line?\",\"answer\":\"Track each key product as its own sub-property, or anchor to a category page for line-level tracking; both roll up under the parent brand.\"},\"3\":{\"question\":\"Does this cover AI shopping features?\",\"answer\":\"Tracking covers the major assistants' recommendation answers today, and the same groundwork positions you for assistant-driven shopping as it rolls out.\"},\"4\":{\"question\":\"What do I do if AI recommends competitors?\",\"answer\":\"Look at the sources behind those recommendations: they tell you which pages made the rival's case. That's your target list for content and placements.\"}}},\"cta\":{\"title\":\"Find out if you're the answer.\",\"description\":\"Anchor a product page and the first recommendation numbers arrive within a day.\",\"primary\":\"Track a product\",\"secondary\":\"Book a demo\"},\"video\":{\"label\":\"A 30-second explainer: an AI assistant answers a shopping question differently on ChatGPT, Gemini, and Google AI Overviews; Spyglasses reads the product page to choose prompts and rivals, measures recommendation share, and shows which sources made a competitor's case.\"}},\"mcpServer\":{\"meta\":{\"title\":\"Spyglasses MCP Server: Your AI Visibility Data, Anywhere\",\"description\":\"Connect Claude or any MCP client to Spyglasses. Query metrics, citations, and scores in plain language, and build custom analyses on raw data.\"},\"hero\":{\"eyebrow\":\"Optimize · MCP Server\",\"title\":\"The Spyglasses MCP server: query your AI visibility data from any AI assistant.\",\"summary\":\"The Spyglasses MCP server connects your account to Claude and any MCP-compatible client. Ask for metrics, citations, goals, and scores in plain language; run AIPVS and PQS scoring; drive the Citation Optimizer loop; and pull raw rows into notebooks, BI tools, and custom workflows. Access follows your Spyglasses login and workspace permissions.\",\"primaryCta\":\"Set it up\",\"secondaryCta\":\"See what you can ask\"},\"glance\":{\"summary\":\"The MCP server at a glance\",\"fact1\":\"Works with Claude and any MCP-compatible client.\",\"fact2\":\"Access follows your Spyglasses login; write-access features will follow the MCP permission policies, so you approve each write.\",\"fact3\":\"Metrics, citations, goals, AIPVS/PQS scoring, and the Citation Optimizer loop as tools.\",\"fact4\":\"Guided prompts cover the common analyses: projects, message drift, publishers.\"},\"query\":{\"eyebrow\":\"What you can query\",\"title\":\"Your whole account, as tools\",\"lede\":\"Reports, account metrics, citations and goals, publisher and placement scoring, and the score-revise-rescore loop of the Citation Optimizer: each is a tool your assistant can call, and every series comes back as data it can chart.\",\"reports\":{\"label\":\"Reports\",\"blurb\":\"Visibility reports and site audits, by share token.\"},\"metrics\":{\"label\":\"Metrics \u0026 citations\",\"blurb\":\"Trends, consistency, message tracking, recommendations, buyer personas, goals, and raw citation rows.\"},\"scoring\":{\"label\":\"Scoring\",\"blurb\":\"AIPVS for publishers and PQS for placements, on demand.\"},\"optimizer\":{\"label\":\"Optimizer loop\",\"blurb\":\"Score content, request a revision, re-score, repeat.\"}},\"prompts\":{\"eyebrow\":\"Guided prompts\",\"title\":\"The common analyses, one slash away\",\"lede\":\"Analyze a project, track message drift, evaluate publishers, review citation mix: guided prompts orchestrate the right tool calls so you don't have to know the API to get the analysis.\"},\"build\":{\"eyebrow\":\"Build your own views\",\"title\":\"Raw rows for the analysts\",\"lede\":\"Everything the dashboards show is queryable: pull raw citation rows into a notebook, feed a BI dashboard, or wire Spyglasses data into custom client workflows.\"},\"security\":{\"eyebrow\":\"Your data, your rules\",\"title\":\"Your login, your permissions.\",\"lede\":\"The MCP server uses your Spyglasses login, and access follows your workspace permissions. Today the account surfaces focus on reading your data; as write-access features are introduced they'll follow the MCP permission policies, so you approve each write before it happens.\"},\"agencies\":{\"bandMessage\":\"Agencies: connect client data to your own stack and let analysts self-serve.\",\"bandLabel\":\"For agencies\"},\"faq\":{\"title\":\"MCP server FAQ\",\"description\":\"Common questions about querying Spyglasses over MCP.\",\"items\":{\"0\":{\"question\":\"Which assistants work with it?\",\"answer\":\"Claude (claude.ai and Claude Code) and any client that speaks MCP. If your tool supports MCP servers, it can connect.\"},\"1\":{\"question\":\"Is my data safe?\",\"answer\":\"You sign in with OAuth using your own Spyglasses account, and account data is exposed read-only. Access follows your workspace permissions.\"},\"2\":{\"question\":\"Can it change anything in my account?\",\"answer\":\"Not without you approving it. Today the account surfaces focus on reading your data; as write-access features are introduced they'll follow the MCP permission policies, so you approve each write before it happens.\"},\"3\":{\"question\":\"What's the difference from an API?\",\"answer\":\"You don't write code against it; your assistant calls the tools for you. Ask a question in plain language and get charts, tables, or files back.\"},\"4\":{\"question\":\"Can clients get their own access?\",\"answer\":\"Anyone with a Spyglasses login can connect their own assistant; access follows workspace membership, so clients see what you've shared with them.\"}}},\"cta\":{\"title\":\"Connect your assistant.\",\"description\":\"Setup is an OAuth sign-in away; the docs walk you through it.\",\"primary\":\"Set it up\",\"secondary\":\"Browse the tool reference\"}},\"homeV2\":{\"meta\":{\"title\":\"Spyglasses | AI Visibility Platform for Agencies, PR Firms \u0026 Brands\",\"description\":\"See how AI describes your brand, score what your media is worth to AI, and fix the pages AI reads. Tracking, scoring, and optimization in one platform.\"},\"hero\":{\"eyebrow\":\"AI visibility platform\",\"title\":\"White-labeled AI visibility for PR firms and marketing agencies.\",\"summary\":\"Spyglasses tracks how ChatGPT, Gemini, and Google AI Overviews describe your brand, with Claude and Perplexity as add-ons. It scores what your earned media is worth to AI and fixes the pages AI reads. It's the proof layer for your AEO, GEO, and PR work.\",\"primaryCta\":\"Get started free\",\"secondaryCta\":\"See a live report\"},\"strip\":{\"fact1\":{\"value\":\"3 platforms\",\"label\":\"tracked daily: ChatGPT, Gemini, AI Overviews; Claude and Perplexity optional\"},\"fact2\":{\"value\":\"3 metric tiers\",\"label\":\"board-ready KPIs, backing metrics, raw data via MCP\"},\"fact3\":{\"value\":\"White-labeled\",\"label\":\"web, PDF, and PPT
2X reports in your brand\"},\"fact4\":{\"value\":\"From ${brandPrice}/mo\",\"label\":\"single brand to full agency practice\"}},\"problem\":{\"eyebrow\":\"The problem\",\"title\":\"Most tools hand you a number and wish you luck\",\"lede\":\"AI answers change between sessions, users, and days. Metrics built on those answers wobble. More prompts smooth the wobble; they don't tell you what to do next. The answers are noisy, but the pipeline that feeds them isn't. That's where Spyglasses works.\"},\"pipeline\":{\"eyebrow\":\"How it works\",\"title\":\"Your prompts show you the pipeline\",\"lede\":\"Every prompt you track fans out into web searches. AI ranks the results, reads the pages, and scores what it read. Your content survives each stage or falls out of one, and every stage is measurable.\"},\"pillars\":{\"eyebrow\":\"The platform\",\"title\":\"Track it. Score it. Move it.\",\"track\":{\"title\":\"Track\",\"blurb\":\"Know where you stand, every day, across every platform.\"},\"score\":{\"title\":\"Score\",\"blurb\":\"Know what your media is worth to AI before you pitch or pay.\"},\"optimize\":{\"title\":\"Optimize\",\"blurb\":\"Move the numbers by fixing what AI actually reads.\"}},\"tiers\":{\"eyebrow\":\"Daily prompt tracking\",\"title\":\"Numbers you can share. Data you can defend.\",\"lede\":\"Every tracked prompt runs daily. Top-line KPIs for the board, backing metrics for the skeptics, and raw data through MCP for the analysts. Add buyer personas to see how AI answers the CFO and the IT lead differently.\",\"link\":\"Explore daily prompt tracking\"},\"solutions\":{\"agencies\":{\"eyebrow\":\"For SEO \u0026 marketing agencies\",\"title\":\"Clients are asking about AI search.\",\"blurb\":\"Prospect with free previews, deliver white-labeled reports, and defend every number with daily data.\",\"link\":\"See the agency practice\"},\"prFirms\":{\"eyebrow\":\"For PR \u0026 comms\",\"title\":\"Can AI see your placement?\",\"blurb\":\"Score placements by AI value, watch coverage become citations, and find the earned media you're not getting credit for.\",\"link\":\"See the PR toolkit\"}},\"services\":{\"bandMessage\":\"Want it done, not just doable? Fractional support, agentic commerce, and AI-focused rewriting.\",\"bandLabel\":\"Explore services\"},\"social\":{\"eyebrow\":\"Social proof\",\"title\":\"Teams use Spyglasses to prove the work\"},\"cta\":{\"title\":\"See what AI says about you today.\",\"description\":\"Run a free visibility preview. No install, no call, just a domain name.\",\"primary\":\"Get your free preview\",\"secondary\":\"Book a demo\"},\"widgets\":{\"sovTitle\":\"Share of voice · tracked competitors\",\"youBadge\":\"You\",\"trafficTitle\":\"AI traffic · last 7 days\",\"agentVisits\":\"AI agent visits\",\"clickthroughs\":\"Clickthroughs from AI\",\"scoreLabel\":\"AI Visibility Score\"}},\"aiReadinessAudit\":{\"v2\":{\"hero\":{\"eyebrow\":\"Optimize · AI Readiness Site Audit\",\"title\":\"Score every page's readiness to be read and cited by AI.\",\"summary\":\"The AI Readiness Site Audit is Spyglasses' page-level check for AI accessibility. It crawls your site and scores every page across seven weighted dimensions of AI readiness, from static content ratio to citation readiness, surfacing the invisible technical barriers that keep pages out of ChatGPT, Gemini, Claude, and Perplexity answers.\",\"primaryCta\":\"Audit your site\",\"secondaryCta\":\"Check a page free\",\"tileTitle\":\"Latest audit · worst pages first\"},\"glance\":{\"summary\":\"The audit at a glance\",\"fact1\":\"Seven weighted dimensions per page, from static content to E-E-A-T signals.\",\"fact2\":\"Audits thousands of pages and ranks them worst-first for triage.\",\"fact3\":\"Catches barriers human QA never sees: JavaScript-only content, structural deserts, slow delivery.\",\"fact4\":\"Exports as CSV; a clean current score is shareable client evidence.\"},\"barriers\":{\"eyebrow\":\"Invisible barriers\",\"title\":\"Your site looks fine to people. What about to AI?\",\"lede\":\"AI crawlers don't run JavaScript, give up after about two seconds, and read content in roughly 200-token windows. Pages that pass every human review can still be unreadable where it counts. The audit shows each page the way AI actually processes it.\"}
2,\"dimensions\":{\"eyebrow\":\"The seven dimensions\",\"title\":\"What gets scored\",\"items\":{\"staticContent\":{\"title\":\"Static Content Ratio\",\"description\":\"See how much content is visible without JavaScript. AI crawlers don't execute JavaScript; we show exactly what AI sees versus what users see, with side-by-side screenshots.\"},\"citationReadiness\":{\"title\":\"Citation Readiness\",\"description\":\"See the 'best chunk' an LLM would select for citation and identify 'structural deserts', content gaps that can't be extracted, analyzed in ~200-token windows exactly as ChatGPT processes them.\"},\"structuredData\":{\"title\":\"Structured Data\",\"description\":\"Verify the right JSON-LD schemas are present and complete for your page type, across homepage, product, informational, support, and careers pages.\"},\"performance\":{\"title\":\"Performance for AI\",\"description\":\"Measure how fast content is delivered to AI crawlers. ChatGPT has a 2-second limit; content that can't be fetched in time won't be cited.\"},\"eeat\":{\"title\":\"E-E-A-T Signals\",\"description\":\"Check 14 core trust and authority signals at brand and page level: author attribution, external citations, freshness, and machine-readable dates.\"},\"readability\":{\"title\":\"Readability\",\"description\":\"Ensure content matches AI default writing styles. Content that's too complex or too simple gets rewritten by AI, wasting your carefully crafted messaging.\"},\"accessibility\":{\"title\":\"Accessibility\",\"description\":\"Run focused accessibility checks that influence AI's ability to understand your content; semantic HTML benefits AI interpretation too.\"}}},\"scale\":{\"eyebrow\":\"Page by page, at scale\",\"title\":\"Thousands of pages, worst-first\",\"lede\":\"Audit single pages, path patterns, or whole sections. Aggregate scores plus per-page breakdowns rank the worst offenders first, so the fix list writes itself.\"},\"evidenceBand\":{\"message\":\"A clean, current audit score is evidence you can put in front of a client.\",\"label\":\"Done-for-you audits\"},\"freeBand\":{\"message\":\"Want a spot check first? Test any single URL for free.\",\"label\":\"AI Access Checker\"},\"cta\":{\"title\":\"Find what's blocking your citations.\",\"description\":\"Start a free trial and audit your first pages today.\",\"primary\":\"Audit your site\",\"secondary\":\"Book a demo\"},\"faq\":{\"title\":\"AI Readiness Audit FAQ\",\"description\":\"Common questions about the audit.\",\"items\":{\"whatIs\":{\"question\":\"What is an AI Readiness Audit?\",\"answer\":\"An AI Readiness Audit crawls your website and scores each page across seven dimensions that influence whether AI systems can discover, understand, and cite your content. Unlike traditional SEO audits, it focuses specifically on how AI systems process and extract information from your pages.\"},\"vsSeo\":{\"question\":\"How is this different from SEO audit tools?\",\"answer\":\"SEO audit tools focu
2s on traditional search engine optimization factors. Our AI Readiness Audit includes unique checks like static content rendering (showing what AI sees without JavaScript), chunk analysis (showing the exact 'best chunk' an LLM would select), and structural desert mapping, features that don't exist in traditional SEO tools.\"},\"sevenDimensions\":{\"question\":\"What are the seven dimensions you check?\",\"answer\":\"We check: (1) Static Content Ratio, (2) Citation Readiness with chunk analysis, (3) Structured Data, (4) Performance for AI, (5) E-E-A-T Signals, (6) Readability, and (7) Accessibility. Each is scored 0-100 and weighted into the page's overall score.\"},\"staticRatio\":{\"question\":\"Why does static content ratio matter?\",\"answer\":\"When AI assistants cite your page they don't use JavaScript. If your content is rendered client-side (React, Vue, SPAs), these crawlers may see little or no content. Our audit compares static HTML against fully rendered content with side-by-side screenshots so you can see exactly what AI sees.\"},\"structuralDesert\":{\"question\":\"What is a 'structural desert'?\",\"answer\":\"A span of content with no headings, list items, paragraph breaks, or other structural markers. When AI processes content in ~200-token windows, deserts mean consecutive windows with no structural context, so the content is unlikely to be cited. The audit shows exactly where they occur.\"},\"vsVisibility\":{\"question\":\"How does this relate to AI Visibility Reports?\",\"answer\":\"Visibility Reports show how often your brand appears in AI responses. Readiness Audits find and fix the technical issues that keep your content from being selected in the first place. They're complementary: measure with one, optimize with the other.\"},\"cost\":{\"question\":\"How much does an audit cost?\",\"answer\":\"Pay-as-you-go customers are charged 1 credit per {pagesPerCredit} pages (minimum 1 credit per audit). Brand plans include {brandPages} pages per month, and Agency Core plans include {agencyPages} pages per month.\"},\"sections\":{\"question\":\"Can I audit specific sections of my site?\",\"answer\":\"Yes. Filter pages by type (homepage, product, informational, etc.), by path patterns (e.g., /blog* or /products/*), or select from saved page groups, so audits focus where you're working.\"},\"interpretScores\":{\"question\":\"How do I interpret the scores?\",\"answer\":\"Each dimension scores 0-100: green (70-100) is well optimized, yellow (40-69) has room to improve, red (0-39) is a critical issue. The page score is a weighted average of applicable dimensions.\"},\"export\":{\"question\":\"Can I export audit results?\",\"answer\":\"Yes, as CSV: summary statistics, per-page scores, and all dimension breakdowns, ready to share with your team or track over time.\"}}}}},\"toolBands\":{\"promptGenerator\":{\"message\":\"Generate prompts here, then track them daily with the full platform.\",\"label\":\"Daily Prompt Tracking\"},\"commonCrawlAudit\":{\"message\":\"Authority is half the story; whether AI can read you is the other half.\",\"label\":\"AI Readiness Site Audit\"},\"commonCrawlOptimizer\":{\"message\":\"See where your content falls out of AI's retrieval pipeline.\",\"label\":\"Citation Optimizer\"},\"reliability\":{\"message\":\"This math is why Spyglasses runs prompts on a daily schedule.\",\"label\":\"Daily Prompt Tracking\"},\"analyticsLive\":{\"message\":\"This demo runs on the real product; install it on your own site.\",\"label\":\"AI Traffic Analytics\"},\"pricingAgency\":{\"message\":\"Agencies: white-labeling and per-client usage reporting live on Agency plans.\",\"label\":\"Client reporting\"},\"demoProof\":{\"message\":\"Agencies and PR firms run their AI visibility practice on Spyglasses.\",\"label\":\"See the agency practice\"},\"accessAipvs\":{\"message\":\"Checking whether an outlet blocks AI? AIPVS turns that check into a full publisher score.\",\"label\":\"AI Placement Value Score\"},\"accessPqs\":{\"message\":\"Score the specific article too, landed or still a pitch.\",\"label\":\"AI Placement Quality Score\"}
2,\"accessCitations\":{\"message\":\"See which publishers AI actually cites in your market.\",\"label\":\"Citation Intelligence\"},\"accessPrFirms\":{\"message\":\"PR teams: this check is step one of the whole earned-media toolkit.\",\"label\":\"For PR \u0026 Comms\"}},\"featureVideo\":{\"play\":\"Play the explainer\",\"pause\":\"Pause video\"}},\"newsletter\":{\"email\":\"Email\",\"hints\":{\"error\":{\"message\":\"Could not subscribe to newsletter. Please try again later.\"},\"success\":{\"message\":\"We sent you an email. Click the link inside to confirm your subscription.\",\"title\":\"Check your inbox\"}},\"submit\":\"Subscribe\",\"subtitle\":\"Be among the first to get access to Spyglasses.\",\"title\":\"Get early access\"},\"onboarding\":{\"account\":{\"avatar\":\"Avatar\",\"avatarDescription\":\"Click the circle or drop an image to it to upload your avatar.\",\"name\":\"Name\"},\"continue\":\"Continue\",\"message\":\"Let's get you started by adding your first website to track.\",\"notifications\":{\"accountSetupFailed\":\"We are sorry, but we were unable to set up your account. Please try again later.\"},\"step\":\"Step {step} / {total}\",\"title\":\"Add your first property\",\"payment\":{\"title\":\"Add your payment method\",\"description\":\"Add your payment method to get started.\",\"button\":\"Add payment method\",\"loading\":\"Loading...\",\"success\":{\"title\":\"Payment Successful!\",\"message\":\"Your payment has been processed successfully. Completing your setup...\"}},\"loading\":{\"organization\":\"Loading organization...\"},\"redirecting\":\"Redirecting to property page...\",\"success\":{\"title\":\"Setup Successful!\",\"message\":\"Your setup has been completed successfully. You can now start using Spyglasses.\"},\"trial\":{\"title\":\"Trial Setup Successful!\",\"message\":\"Your trial has been setup successfully. You can now start using Spyglasses.\",\"credits\":\"You have {credits} credits for {days} days.\",\"features\":\"You can use the following features:\",\"expires\":\"The trial will expire in {days} days.\"}},\"organizations\":{\"createForm\":{\"name\":\"Organization name\",\"notifications\":{\"error\":\"We are sorry, but we were unable to create your organization. Please try again later.\",\"success\":\"Your organization has been created. You can now invite members.\"},\"submit\":\"Create organization\",\"subtitle\":\"Enter a name for your organization to get started. You can change the name later in the organization settings.\",\"title\":\"Create an organization\"},\"invitationAlert\":{\"description\":\"You need to sign in or create an account to join the organization.\",\"title\":\"You have been invited to join an organization.\"},\"invitationModal\":{\"accept\":\"Accept\",\"acceptFailed\":\"We could not accept this invitation. It may have expired or been canceled — ask whoever invited you to send a new one.\",\"decline\":\"Decline\",\"declineFailed\":\"We could not decline this invitation. Please try again.\",\"description\":\"You have been invited to join the organization {organizationName}. Do you want to accept the invitation and join the organization?\",\"title\":\"Join the organization\"},\"invitationProblem\":{\"backToApp\":\"Back to Spyglasses\",\"signOutAndRetry\":\"Sign out and open the invitation\",\"signedInAs\":\"Signed in as {email}\",\"unavailable\":{\"description\":\"It may have expired, been canceled, or already been accepted. Ask whoever invited you to send a new one.\",\"title\":\"This invitation is no longer valid\"},\"wrongRecipient\":{\"description\":\"This invitation was sent to a different email address. Sign out and open the link again with the invited account.\",\"title\":\"This invitation is for another account\"}},\"organizationSelect\":{\"createNewOrganization\":\"Create new organization\",\"organizations\":\"Organizations\",\"personalAccount\":\"Personal account\"},\"organizationsGrid\":{\"createNewOrganization\":\"Create new organization\",\"title\":\"Your organizations\"},\"roles\":{\"admin\":\"Admin\",\"member\":\"Member\",\"owner\":\"Owner\"},\"settings\":{\"billing\":{\"organization\":{\"title\":\"Organization billing\",\"property\":\"Property\",\"plan\":\"Plan\",\"manage\":\"Manage\",\"manageLink\":\"Manage plan\",\"noPlan\":\"No plan\"}},\"changeName\":{\"title\":\"Organization name\"},\"deleteOrganization\":{\"confirmation\":\"Are you sure you want to delete your organization?\",\"description\":\"Permanently delete your organization. Once you delete your organization, there is no going back. To confirm, please enter your password below:\",\"submit\":\"Delete organization\",\"title\":\"Delete organization\"},\"logo\":{\"description\":\"Upload a logo for your organization.\",\"title\":\"Organization logo\"},\"branding\":{\"fetchTitle\":\"Auto-fetch branding\",\"fetchDescription\":\"Enter your domain to automatically import your organization's logos and branding.\",\"fetchButton\":\"Fetch Branding\",\"fetching\":\"Fetching...\",\"isotypeTitle\":\"Square Logo (Isotype)\",\"isotypeDescription\":\"Upload a square logo for use as a favicon or icon. SVG or PNG format recommended.\",\"logotypeTitle\":\"Horizontal Logo (Logotype)\",\"logotypeDescription\":\"Upload a horizontal logo for use in reports and headers. SVG or PNG format recommended.\",\"replaceButton\":\"Replace\",\"errors\":{\"domainRequired\":\"Please enter a domain\"},\"notifications\":{\"fetchSuccess\":\"Branding fetched and logos uploaded successfully\",\"fetchPartialIsotype\":\"Square logo uploaded, but no horizontal logo was available for this domain\",\"fetchPartialLogotype\":\"Horizontal logo uploaded, but no square logo was available for this domain\",\"fetchNoLogos\":\"No logos could be fetched for this domain — please upload manually\",\"fetchError\":\"Failed to fetch branding data\",\"isotypeSuccess\":\"Square logo uploaded successfully\",\"logotypeSuccess\":\"Horizontal logo uploaded successfully\",\"uploadError\":\"Failed to upload logo\",\"removeSuccess\":\"Logo removed successfully\",\"removeError\":\"Failed to remove logo\"}},\"members\":{\"activeMembers\":\"Active members\",\"description\":\"See all active members and the pending invites of your organization.\",\"invitations\":{\"empty\":\"You have not invited any members yet.\",\"expiresAt\":\"Expires at {date}\",\"invitationStatus\":{\"accepted\":\"Accepted\",\"canceled\":\"Canceled\",\"pending\":\"Pending\",\"rejected\":\"Rejected\"},\"revoke\":\"Revoke invitation\",\"resend\":\"Resend invitation\"},\"domainAutoJoin\":{\"disabled\":\"Users must be invited to join this organization\",\"enabled\":\"Users with matching email domains will automatically join this organization\",\"title\":\"Domain Auto-Join\",\"description\":\"Allow users who sign up with email addresses matching your organization's domain to automatically join as members.\",\"toggle\":\"Enable domain auto-join\",\"domainLabel\":\"Organization Domain\",\"domainDescription\":\"Enter your organization's email domain. Users signing up with email addresses from this domain can be automatically added as members.\",\"setDomainFirst\":\"Set your organization's domain above before enabling auto-join.\",\"currentDomain\":\"Current domain:\",\"activeInfo\":\"When enabled, any user who signs up with an email address ending in @{domain} will automatically become a member of this organization.\",\"notifications\":{\"enabled\":\"Domain auto-join enabled\",\"disabled\":\"Domain auto-join disabled\",\"error\":\"Failed to update setting\",\"domainSaved\":\"Domain saved successfully\",\"domainError\":\"Failed to save domain\"}},\"email\":\"Email\",\"expiresAt\":\"Expires at {date}\",\"inviteMember\":{\"description\":\"To invite a new member, send them an invitation.\",\"email\":\"Email\",\"notifications\":{\"error\":{\"description\":\"We were unable to invite the member. Please try again later.\",\"title\":\"Could not invite member\"},\"success\":{\"description\":\"The member has been invited.\",\"title\":\"Member invited\"}},\"role\":\"Role\",\"submit\":\"Invite\",\"title\":\"Invite member\"},\"leaveOrganization\":\"Leave organization\",\"member\":\"Member\",\"noPendingInvitations\":\"No pending invitations\",\"notifications\":{\"removeMember\":{\"error\":{\"description\":\"Could not remove the member from your organization. Please try again.\"},\"loading\":{\"description\":\"Removing member from organization...\"},\"success\":{\"description\":\"The member has been successfully removed from your organization.\"}},\"revokeInvitation\":{\"error\":{\"description\":\"The invitation could not be revoked. Please try again later.\"},\"loading\":{\"description\":\"Revoking invitation...\"},\"success\":{\"description\":\"The invitation has been revoked.\"}},\"updateMembership\":{\"error\":{\"description\":\"Could not update organization membership. Please try again.\"},\"loading\":{\"description\":\"Updating membership...\"},\"success\":{\"description\":\"Membership was updated successfully\"}},\"resendInvitation\":{\"loading\":{\"description\":\"Resending invitation...\"},\"success\":{\"description\":\"Invitation sent\"},\"error\":{\"description\":\"Could not sent invitation. Please try again.\"}}},\"pendingInvitations\":\"Pending invitations\",\"removeMember\":\"Remove member\",\"role\":\"Role\",\"title\":\"Members\"},\"notifications\":{\"organizationDeleted\":\"Your organization has been deleted.\",\"organizationNameNotUpdated\":\"We were unable to update your organization name. Please try again later.\",\"organizationNameUpdated\":\"Your organization name has been updated.\",\"organizationNotDeleted\":\"We were unable to delete your organization. Please try again later.\"},\"subtitle\":\"Manage the settings of the organization.\",\"title\":\"Organization\",\"dataExport\":{\"title\":\"Data export\",\"description\":\"Download everything Spyglasses holds for your organization's properties as a 
2set of spreadsheet files.\",\"explainer\":\"The export covers every active property: your prompts, the answers AI assistants gave, the sources they cited, your competitors, coverage, placements, key messages, annotations, site audits and FAQs. Building it takes a few minutes, and we'll email you when it's ready.\",\"requestButton\":\"Request export\",\"requesting\":\"Requesting...\",\"inProgressNotice\":\"We're building your export. This page updates automatically, and we'll email you when it's ready.\",\"emptyState\":\"You haven't exported your data yet.\",\"downloadLabel\":\"Download\",\"requestedToast\":\"Export requested. We'll email you when it's ready.\",\"errorToast\":\"Could not request the export. Please try again.\",\"conflictToast\":\"An export is already in progress.\",\"table\":{\"date\":\"Requested\",\"requestedBy\":\"Requested by\",\"status\":\"Status\",\"size\":\"Size\",\"download\":\"Download\"},\"status\":{\"pending\":\"Queued\",\"running\":\"Building\",\"completed\":\"Ready\",\"failed\":\"Failed\"}},\"dangerZone\":{\"title\":\"Danger zone\"},\"sso\":{\"title\":\"Single sign-on\",\"description\":\"Let your team sign in with your own identity provider. Anyone with an email address at your domain is sent to your login page instead of a Spyglasses password.\",\"callbackUrl\":\"Redirect URI\",\"providerId\":\"Provider ID\",\"setupHint\":\"Create an OIDC application in your identity provider first, using the redirect URI above, then paste its details here.\",\"issuer\":{\"label\":\"Issuer URL\",\"description\":\"The base URL of your provider. We read its OpenID configuration from there.\"},\"domain\":{\"label\":\"Email domain\",\"description\":\"Everyone signing in with an address at this domain is sent to your identity provider.\"},\"clientId\":{\"label\":\"Client ID\"},\"clientSecret\":{\"label\":\"Client secret\",\"description\":\"Stored encrypted at rest and never shown again.\",\"configured\":\"••••••• (configured)\",\"keepExisting\":\"Leave blank to keep the secret you already saved.\"},\"remove\":{\"title\":\"Remove single sign-on\",\"confirmation\":\"Your team will sign in with a password or magic link again. Accounts created through your identity provider stay, but their link to it is removed.\",\"submit\":\"Remove\"},\"upsell\":{\"description\":\"Single sign-on is included with every Spyglasses subscription. Pay-as-you-go accounts can turn it on by moving to a plan.\",\"cta\":\"See plans\"},\"notifications\":{\"saved\":\"Single sign-on saved.\",\"removed\":\"Single sign-on removed.\",\"error\":\"Could not save your single sign-on settings. Please try again.\"}},\"clientPortal\":{\"title\":\"Client portal domain\",\"description\":\"Host your clients' dashboards on a subdomain of your own. 
2Clients never see a Spyglasses URL.\",\"loadError\":\"We couldn't load your portal domain. Please refresh the page.\",\"upsell\":{\"title\":\"Client portals are part of the Agency plan\",\"body\":\"Give each client a password-protected dashboard on your own subdomain, carrying your name and logo instead of ours. Available on Agency and Enterprise plans.\",\"cta\":\"See plans\"},\"hostname\":{\"label\":\"Portal hostname\",\"placeholder\":\"ai-visibility.youragency.com\",\"help\":\"Use a subdomain you control — not your root domain, which usually already points at your website.\"},\"attach\":\"Add domain\",\"status\":{\"pending\":\"Pending\",\"active\":\"Active\",\"error\":\"Error\"},\"alert\":{\"pending\":\"Waiting on DNS. The certificate is issued automatically once the record resolves. You can set up client portals now — they go live the moment this turns Active.\",\"active\":\"Live — client portals under this domain are reachable.\",\"error\":\"We can't verify this hostname, so client portals on it are offline. Check the records below, then re-check.\"},\"dns\":{\"title\":\"DNS records to add at your registrar\",\"type\":\"Type\",\"name\":\"Name\",\"value\":\"Value\",\"cnameHint\":\"Points the subdomain at the portal.\",\"txtHint\":\"Only needed while the CNAME can't be verified automatically.\",\"zoneHint\":\"Enter just this label — your registrar adds {zone}.\",\"copy\":\"Copy {field}\",\"copied\":\"{field} copied\"}
2,\"recheck\":\"Re-check\",\"lastChecked\":\"Last checked {time}\",\"remove\":\"Remove domain\",\"removeConfirm\":{\"title\":\"Remove this portal domain?\",\"body\":\"Every client portal under {hostname} stops working immediately, and the hostname is released at our domain provider. Clients who open their link will see a message asking them to contact you.\",\"confirm\":\"Remove domain\"},\"notifications\":{\"attached\":\"Domain added. Create the DNS records below and we'll verify it.\",\"verified\":\"DNS re-checked.\",\"removed\":\"Portal domain removed.\"},\"errors\":{\"required\":\"Enter the hostname your clients will visit.\",\"invalidHostname\":\"That doesn't look like a hostname. Use a subdomain such as reports.youragency.com.\",\"canonicalHostname\":\"That is one of Spyglasses' own hostnames. Use a subdomain of a domain you control.\",\"reservedHostname\":\"That domain suffix is reserved. Use a subdomain of a domain you control.\",\"alreadyAttached\":\"This organization already has a portal domain. Remove it before adding another.\",\"hostnameTaken\":\"That hostname is already in use by another Spyglasses account.\",\"provider\":\"Our domain provider didn't accept that hostname. Check the DNS records and try again in a moment.\",\"generic\":\"Something went wrong. Please try again.\"}},\"security\":{\"title\":\"Security\",\"requireMfa\":{\"title\":\"Require two-factor authentication\",\"description\":\"Members must have two-factor authentication on their account before they can open this organization.\",\"enabled\":\"Required for every member\",\"disabled\":\"Not required\",\"enrolFirst\":\"You have not enabled two-factor authentication yourself. Turn it on before requiring it here, or you will be locked out of this organization.\",\"enrolLink\":\"Set it up now\",\"activeInfo\":\"Members without two-factor authentication are sent to their account security settings until they enable it. Members who sign in through your identity provider (SSO) or a social login are exempt — their provider manages their sign-in security.\",\"notifications\":{\"enabled\":\"Two-factor authentication is now required\",\"disabled\":\"Two-factor authentication is no longer required\",\"error\":\"Could not update the two-factor requirement\"}}}},\"start\":{\"subtitle\":\"Click on a property to view analytics.\"}},\"pricing\":{\"checkoutError\":\"Could not start checkout. Please try again, or ask an organization owner to manage billing.\",\"choosePlan\":\"Choose plan\",\"contactSales\":\"Contact us\",\"yourCurrentPlan\":\"Your Current Plan\",\"paygCreditsDescription\":\"Add credits anytime from your billing settings\",\"title\":\"Pricing for Complete Traffic Visibility\",\"description\":\"Choose the plan that matches your monthly website visitors. Each tier tracks AI and bot traffic that Google Analytics and similar tools miss completely.\",\"getStarted\":\"Get started for free\",\"month\":\"{count, plural, one {month} other {{count} months}}\",\"monthly\":\"Monthly\",\"quarterly\":\"Quarterly\",\"commonFeatures\":{\"title\":\"All plans include:\",\"botTracking\":\"Bot tracking \u0026 anal
2ytics\",\"competitorSites\":\"Customizable competitor lists\",\"unlimitedUsers\":\"Unlimited users\",\"customPrompts\":\"Customizable prompts based on leading marketing frameworks\",\"publisherScoring\":\"Unlimited publisher \u0026 placement scoring via \u003caipvs\u003eAIPVS\u003c/aipvs\u003e and \u003caipqs\u003eAIPQS\u003c/aipqs\u003e\",\"citationScoring\":\"Free content scoring with the \u003clink\u003eAI Search Citation Optimizer\u003c/link\u003e\"},\"creditCosts\":{\"title\":\"Credit costs (credits cost $1 each):\",\"trialRest\":\"free trial credits for all new users ({days}-day trial)\",\"aiReportRest\":\"credits per AI Visibility Report\",\"promptTrackingRest\":\"credit per tracked prompt per {runs} daily runs (beyond your plan's bundle)\",\"citationRewriteRest\":\"credits per \u003clink\u003eCitation Optimizer\u003c/link\u003e rewrite — scoring is always free\",\"siteAuditRest\":\"credit per {pages} pages in AI Readiness Audit (beyond your plan's bundle)\",\"faqRest\":\"credit per FAQ generation run\",\"aiVisitsRest\":\"credit per {visits} AI visits tracked (first {free}/month free)\"},\"products\":{\"free\":{\"description\":\"For hobbyists and single-page websites.\",\"features\":{\"visitLimit\":\"1,000 visit history\",\"limitedHistory\":\"7 days history\",\"basicBlocking\":\"Block AI from scraping your site\",\"communitySupport\":\"Community support\"},\"title\":\"Free\",\"limits\":\"Free plans have a limit of {days} days and {events} events.\"},\"core\":{\"description\":\"For websites with fewer than 15k visitors per month.\",\"features\":{\"includesFree\":\"Everything in Free, plus:\",\"unlimitedHistory\":\"Unlimited history\",\"advancedBlocking\":\"Customized AI and bot blocking\",\"coreReporting\":\"Core reports\",\"prioritySupport\":\"Priority support\"},\"title\":\"Core\"},\"pro\":{\"description\":\"For high-traffic websites.\",\"price\":\"$$10\",\"priceSuffix\":\"/month\",\"features\":{\"includesCore\":\"Everything in Core, plus:\",\"advancedReporting\":\"Advanced reports\",\"includedVisibilityReports\":\"Weekly AI Visibility Reports\",\"sendToAnalytics\":\"Send AI visits to your primary analytics package\",\"aiAgentSEO\":\"(coming soon) AI Agent SEO\"},\"title\":\"Pro\"},\"lifetime\":{\"description\":\"Lifetime access to Spyglasses Pro plan.\",\"features\":{\"first\":\"Includes all of the features of Pro, plus future updates.\"},\"title\":\"Lifetime\"},\"enterprise\":{\"description\":\"For large organizations with unique requirements and high-volume needs.\",\"features\":{\"highVolumeDiscount\":\"Volume-based discounts\",\"customImplementation\":\"Custom implementations \u0026 integrations\",\"dedicatedSupport\":\"Dedicated account manager\",\"sla\":\"SLA with guaranteed uptime\"},\"title\":\"Enterprise\"},\"aiReportUnlock\":{\"description\":\"Pay a one-time fee to unlock your AI Visibility Report.\",\"features\":{\"fullReport\":\"Full report\",\"implementationSteps\":\"Implementation steps\",\"brandingAnalysis\":\"Branding analysis\",\"competitorInsights\":\"Competitor insights\"},\"title\":\"AI Report Unlock\"},\"agencyCore\":{\"description\":\"Win, manage, and grow client AI visibility, from prospecting to monthly reporting.\",\"features\":{\"includedPrompts\":\"{prompts} tracked prompts per month\",\"siteAudit\":\"{pages} pages/month AI Readiness Audit included\",\"multiProperty\":\"Manage unlimited client properties\",\"advancedReporting\":\"Reporting \u0026 anal
2ytics\",\"whiteLabel\":\"White-label reports\",\"prioritySupport\":\"Priority support \u0026 onboarding\",\"bundledCredits\":\"Enough bundled credits for {reports} AI Visibility Reports every month\",\"citationRewrites\":\"{rewrites} Citation Optimizer rewrites per month (scoring always free)\"},\"title\":\"Agency Plan\",\"included\":{\"trackedPrompts\":\"{prompts} tracked prompt runs — checked daily across ChatGPT, Gemini \u0026 Google AI (each location adds a nightly prompt run)\",\"siteAudit\":\"{pages} AI Readiness Audit pages\",\"citationRewrites\":\"{rewrites} Citation Optimizer rewrites (scoring always free)\",\"whiteLabel\":\"White-label reports\",\"clientPortal\":\"White-label client portals on your own subdomain\",\"advancedReporting\":\"Reporting \u0026 analytics\",\"prioritySupport\":\"Priority support \u0026 onboarding\",\"everythingInBrand\":\"Everything in Brand, plus…\",\"sso\":\"Single sign-on (SSO)\"},\"creditUses\":{\"reports\":\"Up to {reports} AI Visibility Reports ({cost} credits each)\",\"mixAndMatch\":\"…or extra rewrites, audit pages \u0026 prompt tracking — mix and match\"}},\"brand\":{\"description\":\"For marketers tracking a brand's AI visibility across platforms.\",\"features\":{\"includedPrompts\":\"{prompts} tracked prompts per month\",\"siteAudit\":\"{pages} site audit pages per month\",\"aiVisibilityReports\":\"AI Visibility Reports ({reportCredits} credits each from your bundle)\",\"discoveryQueryTracking\":\"Daily prompt tracking across ChatGPT, Gemini \u0026 Google AI\",\"competitorBenchmarking\":\"Competitor benchmarking\",\"bundledCredits\":\"{credits} bundled credits per month — use on reports, audits \u0026 optimization\",\"multiProperty\":\"Manage unlimited properties\",\"citationRewrites\":\"{rewrites} Citation Optimizer rewrites per month (scoring always free)\"},\"title\":\"Brand\",\"included\":{\"trackedPrompts\":\"{prompts} tracked prompt runs — checked daily across ChatGPT, Gemini \u0026 Google AI (each location adds a nightly prompt run)\",\"siteAudit\":\"{pages} AI Readiness Audit pages\",\"citationRewrites\":\"{rewrites} Citation Optimizer rewrites (scoring always free)\",\"competitorBenchmarking\":\"Competitor benchmarking\",\"multiProperty\":\"Manage unlimited properties\",\"sso\":\"Single sign-on (SSO)\"},\"creditUses\":{\"reports\":\"Up to {reports} AI Visibility Reports ({cost} credits each)\",\"mixAndMatch\":\"…or extra rewrites, audit pages \u0026 prompt tracking — mix and match\"}},\"paygCredits\":{\"description\":\"For growing brands and agency trials. No subscription required. Pay only for what you use.\",\"features\":{\"payAsYouGo\":\"$$1 per credit, no commitment\",\"minPurchase\":\"Minimum purchase: $15 (15 credits)\",\"flexibleUse\":\"Credits work on every feature — see credit costs below\",\"unlimitedProperties\":\"Unlimited properties\",\"promptTracking\":\"Daily prompt tracking: 1 credit per prompt per 30 runs\"},\"title\":\"Pay-As-You-Go\"}},\"purchase\":\"Purchase\",\"recommended\":\"Recommended\",\"subscribe\":\"Subscribe\",\"trialPeriod\":\"{days} day free trial\",\"year\":\"{count, plural, one {year} other {{count} years}}\",\"yearly\":\"Yearly\",\"perSeat\":\"seat\",\"noSurpriseCharges\":\"No surprise charges — anything beyond your bundle always asks for your confirmation first.\",\"chips\":{\"includes\":\"Includes\",\"creditsPerMonth\":\"credits/month\",\"promptsPerMonth\":\"tracked prompts/month\"},\"planGroups\":{\"includedMonthly\":\"Included every month\",\"creditBundle\":\"Your {credits} credits also cover\",\"freeFeatures\":\"\u003clink\u003eAll our free features\u003c/link\u003e\"}},\"settings\":{\"account\":{\"avatar\":{\"description\":\"To change your avatar click the picture in this block and select a file from your computer to upload.\",\"notifications\":{\"error\":\"Could not update avatar\",\"success\":\"Avatar was updated successfully\"},\"title\":\"Your avatar\"},\"changeEmail\":{\"description\":\"To change your email, enter the new email and hit save. You will have to confirm the new email before it will become active.\",\"notifications\":{\"error\":\"Could not update email\",\"success\":\"Email was updated successfully\"},\"title\":\"Your email\"},\"changeName\":{\"notifications\":{\"error\":\"Could not update name\",\"success\":\"Name was updated successfully\"},\"title\":\"Your name\"},\"deleteAccount\":{\"confirmation\":\"Are you sure you want to delete your account?\",\"description\":\"Permanently delete your account. Once you delete your account, there is no going back. To confirm, please enter your password below:\",\"notifications\":{\"error\":\"Could not delete account\",\"success\":\"Account was deleted successfully\"},\"submit\":\"Delete account\",\"title\":\"Delete account\"},\"language\":{\"description\":\"To change the language of the app for your account, select a language from the list and click save.\",\"notifications\":{\"error\":\"Could not update language\",\"success\":\"Language was updated successfully\"},\"title\":\"Your language\"},\"emailPreferences\":{\"title\":\"Email Preferences\",\"description\":\"Choose which emails you'd like to receive from Spyglasses.\",\"newsletter\":{\"label\":\"Monthly newsletter\",\"description\":\"Product updates, tips, and AI traffic insights.\"},\"onboarding\":{\"label\":\"Onboarding guidance\",\"description\":\"Getting-started tips tailored to your role, sent until your account is fully set up.\"},\"notifications\":{\"saved\":\"Email preferences updated\",\"error\":\"Could not update email preferences\"}},\"brandDashboard\":{\"description\":\"Use the new Brand Dashboard as the home view for your brand and product properties. You can switch back anytime.\",\"label\":\"Use the new Brand Dashboard\",\"notifications\":{\"error\":\"Could not update dashboard preference\",\"updated\":\"Dashboard preference updated\"},\"title\":\"Brand Dashboard\"},\"reportTour\":{\"description\":\"Control whether the guided tour automatically appears when viewing AI Visibility Reports.\",\"label\":\"Skip guided tour on reports\",\"notifications\":{\"error\":\"Could not update tour preference\",\"updated\":\"Tour preference updated\"},\"title\":\"Report Guided Tour\"},\"security\":{\"activeSessions\":{\"description\":\"These are all the active sessions of your account. Click the X to end a specifc session.\",\"title\":\"Active sessions\",\"notifications\":{\"revokeSession\":{\"success\":\"Session revoked\"}}},\"changePassword\":{\"currentPassword\":\"Current password\",\"newPassword\":\"New password\",\"notifications\":{\"error\":\"Could not update password\",\"success\":\"Password was updated successfully\"},\"title\":\"Your password\"},\"connectedAccounts\":{\"connect\":\"Connect\",\"disconnect\":\"Disconnect\",\"title\":\"Connected accounts\"},\"passkeys\":{\"description\":\"Use passkeys as a secure alternative to passwords.\",\"notifications\":{\"addPasskey\":{\"error\":{\"title\":\"Could not add passkey\"},\"success\":{\"title\":\"Passkey added\"}},\"deletePasskey\":{\"error\":{\"title\":\"Could not delete passkey\"},\"loading\":{\"title\":\"Deleting passkey...\"},\"success\":{\"title\":\"Passkey deleted\"}}},\"title\":\"Passkeys\"},\"setPassword\":{\"description\":\"You have not set a password yet. To set one, you need to go through the password reset flow. Click the button below to send an email to reset your password and follow the instructions in the email.\",\"notifications\":{\"error\":\"Could not set password\",\"success\":\"Password was set successfully\"},\"submit\":\"Set password\",\"title\":\"Your password\"},\"title\":\"Security\",\"twoFactor\":{\"title\":\"Two-factor authentication\",\"description\":\"Require a code from an authenticator app in addition to your password when you sign in.\",\"statusEnabled\":\"Two-factor authentication is on\",\"statusDisabled\":\"Two-factor authentication is off\",\"enable\":\"Enable two-factor authentication\",\"disable\":\"Disable\",\"regenerateBackupCodes\":\"Regenerate backup codes\",\"passwordRequired\":\"Set a password for your account first — two-factor authentication is confirmed with it.\",\"mfaRequiredAlert\":\"{organizationName} requires two-factor authentication. Enable it below to get back into the organization.\",\"enrol\":{\"title\":\"Set up two-factor authentication\",\"passwordStep\":\"Confirm your password to begin.\",\"scanStep\":\"Scan the QR code with your authenticator app, then enter the 6-digit code it shows.\",\"backupCodesStep\":\"Save these backup codes. They are your way back in if you lose your authenticator.\",\"secretLabel\":\"Can't scan? Enter this setup key manually\",\"codeLabel\":\"6-digit code\",\"verify\":\"Verify and enable\",\"backupCodesWarning\":\"These codes are shown once and each one works only once. Store them somewhere safe now.\",\"copy\":\"Copy\",\"download\":\"Download\",\"storedSafely\":\"I have stored them safely\",\"qrLabel\":\"QR code for your authenticator app\"},\"disableDialog\":{\"title\":\"Disable two-factor authentication\",\"description\":\"Your authenticator and backup codes will stop working. Confirm your password to continue.\"},\"regenerateDialog\":{\"title\":\"Regenerate backup codes\",\"description\":\"Your existing backup codes will stop working immediately. Confirm your password to generate a new set.\"},\"errors\":{\"enableFailed\":\"Could not start setup. Check your password and try again.\",\"invali
2dCode\":\"That code is not right. Check your authenticator and try again.\"},\"notifications\":{\"enabled\":\"Two-factor authentication enabled\",\"disabled\":\"Two-factor authentication disabled\",\"disableError\":\"Could not disable two-factor authentication\",\"regenerateError\":\"Could not regenerate backup codes\",\"copied\":\"Copied to clipboard\"}}},\"subtitle\":\"Manage the settings of your personal account.\",\"title\":\"Account settings\"},\"billing\":{\"createCustomerPortal\":{\"label\":\"Manage billing\",\"notifications\":{\"error\":{\"title\":\"Could not create a customer portal session. Please try again.\"}}},\"activePlan\":{\"status\":{\"active\":\"Active\",\"canceled\":\"Canceled\",\"expired\":\"Expired\",\"incomplete\":\"Incomplete\",\"past_due\":\"Past due\",\"paused\":\"Paused\",\"trialing\":\"Trialing\",\"unpaid\":\"Unpaid\"},\"title\":\"Your plan\"},\"changePlan\":{\"description\":\"Choose a plan to subscribe to.\",\"title\":\"Change your plan\"},\"invoices\":{\"title\":\"Invoices\",\"date\":\"Date\",\"status\":\"Status\",\"amount\":\"Amount\",\"actions\":\"Actions\",\"download\":\"Download\",\"unavailable\":\"Unavailable\"},\"purchases\":{\"title\":\"Purchases \u0026 Receipts\",\"date\":\"Date\",\"plan\":\"Plan\",\"type\":\"Type\",\"amount\":\"Amount\",\"status\":\"Status\",\"actions\":\"Actions\",\"download\":\"Download Invoice\",\"unavailable\":\"Unavailable\",\"oneTime\":\"One-time\",\"subscription\":\"Subscription\"},\"tabs\":{\"addCredits\":\"Add Credits\",\"autoTopup\":\"Auto Top-up\",\"credits\":\"Credits\",\"usage\":\"Usage\",\"invoices\":\"Invoices\",\"plan\":\"Plan\",\"currentPlan\":\"Plan\",\"manage\":\"Manage\"},\"paygModal\":{\"title\":\"Start with Pay-As-You-Go\",\"description\":\"Choose how many credits you'd like to start with. You can always add more later from your billing settings.\",\"continueToCheckout\":\"Continue to Checkout\"},\"addCredits\":{\"title\":\"Add Credits\",\"description\":\"Purchase additional credits for your account. Credits can be used for AI reports, FAQ generation, and more.\",\"quickSelect\":\"Quick select\",\"selectAmount\":\"Select amount\",\"customAmount\":\"Custom amount\",\"minimumRequired\":\"Minimum purchase is {amount} credits\",\"credits\":\"Credits\",\"pricePerCredit\":\"Price per credit\",\"total\":\"Total\",\"purchaseButton\":\"Purchase for ${amount}\",\"processing\":\"Processing...\",\"expirationNote\":\"Credits expire 3 months after purchase if unused.\"},\"autoTopup\":{\"title\":\"Auto Top-up\",\"description\":\"Automatically purchase credits when your balance runs low. Never run out of credits during important operations.\",\"enableLabel\":\"Enable auto top-up\",\"enableDescription\":\"Automatically add credits when balance falls below threshold\",\"threshold\":\"Balance threshold\",\"thresholdDescription\":\"Auto top-up will trigger when your balance falls below this amount\",\"amount\":\"Top-up amount\",\"amountDescription\":\"Number of credits to purchase on each auto top-up\",\"monthlyLimit\":\"Monthly spending limit\",\"monthlyLimitDescription\":\"Maximum credits that can be auto-purchased per month for c
2ost control\",\"costSummaryTitle\":\"Cost Protection\",\"costSummaryDescription\":\"Your maximum automatic spending is ${maxCost}/month. You can always manually purchase more credits if needed.\",\"usedThisMonth\":\"Auto top-up used this month\",\"disabledTitle\":\"Auto top-up is disabled\",\"disabledDescription\":\"Enable auto top-up to ensure you never run out of credits during important operations. You'll be charged automatically when your balance drops below the threshold.\",\"saveSettings\":\"Save Settings\",\"saveSuccess\":\"Auto top-up settings saved successfully\",\"saveError\":\"Failed to save auto top-up settings\"},\"subscriptionManagement\":{\"title\":\"Subscription\",\"description\":\"Manage your agency subscription plan\",\"cancelingDescription\":\"Your subscription is scheduled to end\",\"cancelingTitle\":\"Subscription Ending\",\"cancelingMessage\":\"Your subscription will end on {date}. After that, you'll be switched to Pay-As-You-Go and can continue using credits as needed.\",\"cancelButton\":\"Cancel Subscription\",\"reactivateButton\":\"Keep My Subscription\",\"reactivating\":\"Reactivating...\",\"canceling\":\"Canceling...\",\"confirmCancel\":\"Yes, Cancel Subscription\",\"cancelDialog\":{\"title\":\"Cancel Your Subscription?\",\"description\":\"Your subscription will remain active until {date}. After that date:\",\"bullet1\":\"You'll transition to our Pay-As-You-Go plan\",\"bullet2\":\"Your remaining credits will stay in your account\",\"bullet3\":\"You can purchase credits as needed, with no commitment\"}},\"creditHistory\":{\"title\":\"Credit History\",\"description\":\"View your credit transaction history including purchases, usage, and refunds.\",\"date\":\"Date\",\"type\":\"Type\",\"reason\":\"Category\",\"amount\":\"Credits\",\"filterByType\":\"Filter by type\",\"allTypes\":\"All types\",\"startDate\":\"Start date\",\"endDate\":\"End date\",\"clearFilters\":\"Clear filters\",\"noTransactions\":\"No credit transactions found for the selected period.\",\"errorLoading\":\"Failed to load credit history. Please try again.\",\"showing\":\"Showing {start}-{end} of {total} transactions\"},\"sections\":{\"addCredits\":{\"title\":\"Add Credits\",\"description\":\"Purchase credits or set up automatic top-ups to keep your account funded\"},\"usageHistory\":{\"title\":\"Usage \u0026 History\",\"description\":\"Track your credit balance and view transaction history\"},\"invoices\":{\"title\":\"Invoices \u0026 Billing\",\"description\":\"View invoices and manage your payment methods\"},\"upgradePlan\":{\"title\":\"Upgrade Your Plan\",\"description\":\"Get more value with an Agency subscription\"},\"currentPlan\":{\"title\":\"Your Plan\",\"description\":\"View your current subscription and credit balance\"},\"changePlan\":{\"title\":\"Change Plan\",\"description\":\"Upgrade, downgrade, or modify your subscription\"},\"legacyProperties\":{\"title\":\"Property Billing (Legacy)\",\"description\":\"Manage billing for properties on legacy per-property plans\"}},\"paymentMethod\":{\"title\":\"Payment Methods\",\"description\":\"Manage your saved payment methods, update card details, or remove stored cards\"}
2,\"manageBilling\":{\"title\":\"Manage Subscription\",\"description\":\"Update payment methods, view billing history, or cancel your subscription\"},\"dangerZone\":{\"title\":\"Danger Zone\"},\"title\":\"Billing\"},\"menu\":{\"account\":{\"billing\":\"Billing\",\"dangerZone\":\"Danger zone\",\"general\":\"General\",\"security\":\"Security\",\"title\":\"Account\"},\"organization\":{\"billing\":\"Billing\",\"general\":\"General\",\"members\":\"Members\",\"apiKey\":\"API Key\",\"dataExport\":\"Data export\",\"title\":\"Organization\",\"dangerZone\":\"Danger zone\",\"sso\":\"Single sign-on\",\"clientPortal\":\"Client portal\",\"security\":\"Security\"}},\"organization\":{\"apiKey\":{\"title\":\"AIVPS API Key\",\"description\":\"Use this key to call the AI Placement Value Score API at /v1/ai-impact. This key is distinct from your property API keys used by traffic-analytics plugins.\",\"differentNoteTitle\":\"Organization-level key\",\"differentNoteDescription\":\"This key authorizes the AIVPS scoring API only. Property analytics plugins use a different key configured on each property.\",\"emptyState\":\"No AIVPS API key has been generated for this organization yet.\",\"generateButton\":\"Generate AIVPS API key\",\"generating\":\"Generating...\",\"generated\":\"AIVPS API key generated\",\"generateFailed\":\"Failed to generate API key\",\"regenerateButton\":\"Regenerate key\",\"regenerating\":\"Regenerating...\",\"confirmRegenerate\":\"Regenerate key\",\"revokeButton\":\"Revoke key\",\"revoking\":\"Revoking...\",\"confirmRevoke\":\"Revoke key\",\"revoked\":\"AIVPS API key revoked\",\"revokeFailed\":\"Failed to revoke API key\",\"regenerateDialog\":{\"title\":\"Regenerate AIVPS API key?\",\"description\":\"This creates a new AIVPS API key and immediately invalidates the current one.\",\"warningTitle\":\"Important\",\"warningDescription\":\"Your old AIVPS API key will immediately stop working. Any scripts or tools using it must be updated.\"},\"revokeDialog\":{\"title\":\"Revoke AIVPS API key?\",\"description\":\"This clears the AIVPS API key. Any scripts or tools using it will immediately stop working. You can generate a new key afterwards.\"}}},\"property\":{\"tabs\":{\"general\":\"General\",\"apiKey\":\"API Key\",\"reports\":\"Reports\",\"billing\":\"Billing\",\"experimental\":\"Experimental\",\"danger\":\"Danger Zone\",\"clientPortal\":\"Client portal\"},\"clientPortal\":{\"title\":\"Client portal\",\"description\":\"Give this client a read-only dashboard on your own domain, protected by a single password.\",\"loadError\":\"We couldn't load this client portal. Please refresh the page.\",\"ineligibleSubject\":\"Client portals are for brand, product and person properties. This one is shown inside its parent's dashboard, so a portal pointed at it would come up empty.\",\"publish\":{\"label\":\"Publish this portal\",\"help\":\"When on, anyone with the link and the password can view this dashboard.\",\"needsDomain\":\"Add your portal domain first and wait for it to go Active. Until then this address wouldn't resolve.\",\"needsDomainCta\":\"Set up your portal domain\"},\"address\":{\"label\":\"Portal address\",\"help\":\"Lowercase letters, numbers, dots and hyphens. Most agencies use the client's own domain.\",\"save\":\"Save address\",\"preview\":\"Copy the portal URL\",\"previewCopied\":\"Portal URL copied\"},\"password\":{\"label\":\"Password\",\"reveal\":\"Reveal\",\"hide\":\"Hide\",\"copy\":\"Copy the portal password\",\"copied\":\"Portal password copied\",\"regenerate\":\"Regenerate\",\"regenerateConfirm\":{\"title\":\"Issue a new password?\",\"body\":\"Anyone using the old password is locked out immediately, including clients who are reading the portal right now. You'll get the new password to send them.\",\"confirm\":\"Regenerate password\"},\"custom\":\"Set a custom password\",\"customDialog\":{\"title\":\"Set a custom password\",\"body\":\"Use this when your client would rather pick their own, or you need something you can read out over the phone. It replaces the current password immediately.\",\"label\":\"New password\",\"submit\":\"Set password\"},\"newPassword\":{\"title\":\"Send this password to your client\",\"body\":\"This is the only time we show it in full. You can reveal it again later, but copy it now while you're here.\",\"copy\":\"Copy the new password\",\"copied\":\"New password copied\",\"dismiss\":\"Done\"},\"unreadable\":\"We can no longer read this portal's stored password. Regenerate it to issue a new one — the portal keeps working until you do, for clients who already have the old password.\"}
2,\"howClientsSignIn\":{\"title\":\"How clients sign in\",\"body\":\"Send them the link and the password. There is no account to create and nothing to install — the password is the only credential, and the portal is read-only, so nothing they do can change your setup.\"},\"pdf\":{\"label\":\"Download credentials PDF\"},\"status\":{\"live\":\"Live\",\"lastOpened\":\"last opened {time}\",\"neverOpened\":\"not opened yet\",\"notPublished\":\"Not published\"},\"remove\":\"Remove portal\",\"removeConfirm\":{\"title\":\"Remove this client portal?\",\"body\":\"The address stops working straight away and the password is discarded. You can publish a new portal for this property later, but it will have a new password.\",\"confirm\":\"Remove portal\"},\"notifications\":{\"published\":\"Portal published.\",\"unpublished\":\"Portal unpublished. The address no longer opens.\",\"slugSaved\":\"Portal address saved.\",\"regenerated\":\"New password issued. Everyone using the old one is signed out.\",\"removed\":\"Client portal removed.\"},\"errors\":{\"invalidSlug\":\"Use lowercase letters, numbers, dots and hyphens — starting and ending with a letter or number.\",\"reservedSlug\":\"That address is reserved. Pick another one.\",\"slugTaken\":\"Another portal on this domain already uses that address.\",\"noDomain\":\"Add a portal domain for this organization first.\",\"domainInactive\":\"Your portal domain isn't Active yet. Portals go live the moment it verifies.\",\"planRequired\":\"Client portals are part of the Agency and Enterprise plans.\",\"invalidPassword\":\"Passwords must be between {min} and {max} characters.\",\"generic\":\"Something went wrong. Please try again.\"}},\"apiKey\":{\"title\":\"Your API Key\",\"description\":\"This key is used to authenticate requests from your website or application to Spyglasses.\",\"regenerateButton\":\"Regenerate API Key\",\"regenerated\":\"API key regenerated successfully\",\"regenerateFailed\":\"Failed to regenerate API key\",\"regenerating\":\"Regenerating...\",\"confirmRegenerate\":\"Regenerate Key\",\"regenerateDialog\":{\"title\":\"Regenerate API Key?\",\"description\":\"This will create a new API key and immediately invalidate your current key.\",\"warningTitle\":\"Important\",\"warningDescription\":\"AI traffic analytics will stop recording until you update your plugin or integration with the new API key.\"},\"usage\":{\"title\":\"Using Your API Key\",\"description\":\"Your API key can be used in two ways:\",\"plugins\":{\"title\":\"AI Traffic Analytics Plugins\",\"description\":\"Install one of our plugins to automatically track AI bot visits and citations on your website. Select your platform below for installation instructions:\"},\"api\":{\"title\":\"API Access (Agency Plans)\",\"description\":\"Agency plan customers can use this key to access the Spyglasses API programmatically for custom integrations, reporting automation, and data exports.\",\"viewDocs\":\"View API Documentation\"}}},\"billing\":{\"title\":\"Billing \u0026 Credits\",\"description\":\"Billing is managed at the organization level. Add credits, view invoices, and manage your subscription there.\",\"goToOrgBilling\":\"Go to Organization Billing\"},\"experimental\":{\"title\":\"Experimental Features\",\"description\":\"These features are still in development and may change. Use with caution.\"},\"prospectMode\":{\"title\":\"Prospect mode\",\"badge\":\"Prospect\",\"description\":\"Prospect properties are excluded from weekly maintenance, monthly brand consistency checks, and other scheduled background work. Use them for exploratory or sales-prospecting tracking. Reports can still be run manually.\",\"toggleLabel\":\"Track this property as a prospect\",\"toggleDescription\":\"Prospects live under the Prospects tab instead of Clients, and no scheduled jobs run against them.\",\"enableNote\":\"Scheduled data collection stops for this property. Existing data is kept, and you can still run reports manually.\",\"disableNote\":\"This property rejoins scheduled runs and will be picked up by the next weekly maintenance and monthly consistency check.\",\"notifications\":{\"saveSuccess\":\"Prospect mode updated\",\"saveFailed\":\"Failed to update prospect mode\"}}},\"save\":\"Save\"},\"start\":{\"subtitle\":\"See the latest stats of your awesome business.\",\"welcome\":\"Welcome {name}!\"},\"trial\":{\"banner\":{\"creditsAndTimeWarning\":\"You have {credits} credits left and {days} days until your trial expires. Add more credits to continue using Spyglasses.\",\"lowCredits\":\"You have {credits} credits left. Add more credits to continue using Spyglasses.\",\"expiryWarning\":\"Your trial will expire in {days} days. Add more credits to continue using Spyglasses.\",\"paygLowCredits\":\"You have {credits} credits left. Add credits to keep using Spyglasses.\",\"paygNoCredits\":\"You're out of credits. Add credits to continue using Spyglasses.\",\"upgradeButton\":\"Upgrade to a paid plan\",\"addCreditsButton\":\"Add Credits\",\"dismissButton\":\"Dismiss\"}}
2,\"zod\":{\"errors\":{\"invalid_arguments\":\"Invalid function arguments\",\"invalid_date\":\"Invalid date\",\"invalid_enum_value\":\"Invalid enum value. Expected {- options}, received '{received}'\",\"invalid_intersection_types\":\"Intersection results could not be merged\",\"invalid_literal\":\"Invalid literal value, expected {expected}\",\"invalid_return_type\":\"Invalid function return type\",\"invalid_string\":{\"cuid\":\"Invalid {validation}\",\"datetime\":\"Invalid {validation}\",\"email\":\"Invalid {validation}\",\"endsWith\":\"Invalid input: must end with \\\"{endsWith}\\\"\",\"regex\":\"Invalid\",\"startsWith\":\"Invalid input: must start with \\\"{startsWith}\\\"\",\"url\":\"Invalid {validation}\",\"uuid\":\"Invalid {validation}\"},\"invalid_type\":\"Expected {expected}, received {received}\",\"invalid_type_received_undefined\":\"Required\",\"invalid_union\":\"Invalid input\",\"invalid_union_discriminator\":\"Invalid discriminator value. Expected {- options}\",\"not_finite\":\"Number must be finite\",\"not_multiple_of\":\"Number must be a multiple of {multipleOf}\",\"too_big\":{\"array\":{\"exact\":\"Array must contain exactly {maximum} element(s)\",\"inclusive\":\"Array must contain at most {maximum} element(s)\",\"not_inclusive\":\"Array must contain less than {maximum} element(s)\"},\"date\":{\"exact\":\"Date must be exactly {- maximum, datetime}\",\"inclusive\":\"Date must be smaller than or equal to {- maximum, datetime}\",\"not_inclusive\":\"Date must be smaller than {- maximum, datetime}\"},\"number\":{\"exact\":\"Number must be exactly {maximum}\",\"inclusive\":\"Number must be less than or equal to {maximum}\",\"not_inclusive\":\"Number must be less than {maximum}\"},\"set\":{\"exact\":\"Invalid input\",\"inclusive\":\"Invalid input\",\"not_inclusive\":\"Invalid input\"},\"string\":{\"exact\":\"String must contain exactly {maximum} character(s)\",\"inclusive\":\"String must contain at most {maximum} character(s)\",\"not_inclusive\":\"String must contain under {maximum} character(s)\"}},\"too_small\":{\"array\":{\"exact\":\"Array must contain exactly {minimum} element(s)\",\"inclusive\":\"Array must contain at least {minimum} element(s)\",\"not_inclusive\":\"Array must contain more than {minimum} element(s)\"},\"date\":{\"exact\":\"Date must be exactly {- minimum, datetime}\",\"inclusive\":\"Date must be greater than or equal to {- minimum, datetime}\",\"not_inclusive\":\"Date must be greater than {- minimum, datetime}\"},\"number\":{\"exact\":\"Number must be exactly {minimum}\",\"inclusive\":\"Number must be greater than or equal to {minimum}\",\"not_inclusive\":\"Number must be greater than {minimum}\"},\"set\":{\"exact\":\"Invalid input\",\"inclusive\":\"Invalid input\",\"not_inclusive\":\"Invalid input\"},\"string\":{\"exact\":\"String must contain exactly {minimum} character(s)\",\"inclusive\":\"String must contain at least {minimum} character(s)\",\"not_inclusive\":\"String must contain over {minimum} character(s)\"}},\"unrecognized_keys\":\"Unrecognized key(s) in object: {- keys}\"},\"types\":{\"array\":\"array\",\"bigint\":\"bigint\",\"boolean\":\"boolean\",\"date\":\"date\",\"float\":\"float\",\"function\":\"function\",\"integer\":\"integer\",\"map\":\"map\",\"nan\":\"nan\",\"never\":\"never\",\"null\":\"null\",\"number\":\"number\",\"object\":\"object\",\"promise\":\"promise\",\"set\":\"set\",\"string\":\"string\",\"symbol\":\"symbol\",\"undefined\":\"undefined\",\"unknown\":\"unknown\",\"void\":\"void\"},\"validations\":{\"cuid\":\"cuid\",\"cuid2\":\"cuid2\",\"datetime\":\"datetime\",\"email\":\"email\",\"emoji\":\"emoji\",\"ip\":\"up\",\"regex\":\"regex\",\"ulid\":\"ulid\",\"url\":\"url\",\"uuid\":\"uuid\"}},\"choosePlan\":{\"title\":\"Choose your plan\",\"description\":\"To continue, please select a plan.\"},\"properties\":{\"answerRecordPage\":{\"persona\":{\"chip\":\"Asked as {label}\",\"archived\":\"Archived\",\"version\":\"Version {version}\",\"whatWeSent\":\"What we sent\",\"whatWeSentHint\":\"The exact text sent to the platform for this answer: the persona's context, then your prompt, unchanged.\",\"context\":\"Persona context\",\"question\":\"Your prompt\"},\"recommendations\":{\"title\":\"How AI rated each brand in this answer\",\"subtitle\":\"Every brand this answer names, with the category it earned, who it is best for and any caveats. Select a brand to highlight the words behind its rating.\",\"focusMissing\":\"The brand you came from is not named in this answer.\",\"pickBrand\":\"Select a brand to highlight the words behind its rating.\",\"noEvidence\":\"No quote was recorded for {brand}.\",\"highlighted\":\"The words behind {brand}'s rating are highlighted.\",\"evidenceLabel\":\"Evidence for {brand}\",\"evidenceNotFound\":\"The quote could not be found word for word in the answer as displayed.\",\"bestFor\":\"Be
2st for {phrases}\"},\"title\":\"Answer record\",\"levelLabel\":\"Answer record\",\"backToCitations\":\"Back to Citation Intelligence\",\"backToProperty\":\"Back to property\",\"backToDashboard\":\"Back to dashboard\",\"loadingTitle\":\"Loading the answer…\",\"untitledPrompt\":\"Untitled prompt\",\"noAnswerBody\":\"This run stored no answers on any platform.\",\"notFoundTitle\":\"Answer not available\",\"notFoundBody\":\"This answer either no longer exists or belongs to a different property.\",\"errorTitle\":\"Answer record\",\"errorBody\":\"We couldn't load this answer. Try again in a moment.\",\"openRecord\":\"Open answer record\",\"citationTitle\":\"The citation you came from\",\"citationSubtitle\":\"The source this answer pointed at, and what's on that page.\",\"citationWordCount\":\"{count, number} words\",\"citationExcerpt\":\"Page content\",\"citationExcerptTruncated\":\"Excerpt — the start of the page we stored, not the whole page.\",\"citationExcerptComplete\":\"The full page content we stored.\",\"citationNoContent\":\"We haven't stored this page's content — it may be blocked, unreachable, or not fetched yet.\",\"recordedReport\":\"Prompt recorded as part of a report run on {date}.\",\"recordedReportNoDate\":\"Prompt recorded as part of a report run.\",\"recordedTracking\":\"Prompt recorded as part of a daily tracking run on {date}.\",\"recordedTrackingNoDate\":\"Prompt recorded as part of a daily tracking run.\",\"citationFetch\":{\"pending\":\"We haven't fetched this page's content yet.\",\"blocked\":\"This site blocks our content fetcher, so we can't store the page text.\",\"dead\":\"This page no longer resolves — the link appears to be dead.\",\"failed\":\"The last attempt to fetch this page's content failed.\",\"skipped\":\"Content fetching was skipped for this page.\"}},\"citationIntelligencePage\":{\"title\":\"Citation Intelligence\",\"subtitle\":\"Every tracked citation, one row each — the raw data behind the citation, earned-media, and goal-impact numbers.\",\"levelLabel\":\"L3 · raw data\",\"backToEarnedMedia\":\"Back to earned media\",\"backToDashboard\":\"Back to dashboard\",\"filtersLabel\":\"Filters\",\"domainLabel\":\"Publisher\",\"domainPlaceholder\":\"Publisher domain\",\"platformLabel\":\"Platform\",\"platformAll\":\"All platforms\",\"mediaTypeLabel\":\"Media type\",\"mediaTypeAll\":\"All media types\",\"authorityLabel\":\"Source authority\",\"authorityAll\":\"All authority\",\"contentFormatLabel\":\"Content format\",\"contentFormatAll\":\"All formats\",\"citationTypeLabel\":\"Citation type\",\"citationTypeAll\":\"All citation types\",\"brandLabel\":\"Brand attribution\",\"brandAll\":\"Any attribution\",\"brandAny\":\"Mentions any brand\",\"brandUnattributed\":\"No brand attribution\",\"mentionsLabel\":\"Mentioned in page content\",\"mentionsAll\":\"Any content\",\"mentionsOurBrand\":\"Mentions your brand\",\"mentionsAnyCompetitor\":\"Mentions a competitor\",\"mentionsOpportunity\":\"Competitors only, not you\",\"mentionsNamed\":\"Mentions: {name}\",\"promptTypesLabel\":\"Prompt types\",\"promptTypesAll\":\"All prompt types\",\"promptTypesSelected\":\"{count} prompt types\",\"resetFilters\":\"Reset filters\",\"kpiCitations\":\"Citations\",\"kpiCitationsExplainer\":\"Rows matching the current filters — each one is a single observed citation in a single AI answer.\",\"kpiCitationsCaption\":\"after filters\",\"kpiSources\":\"Unique sources\",\"kpiSourcesExplainer\":\"Distinct domains cited within the filtered set.\",\"kpiSplit\":\"Owned : earned\",\"kpiSplitExplainer\":\"The split between citations of media you own and everything else, within the filtered set.\",\"kpiSplitCaption\":\"share of citations\",\"kpiHidden\":\"Hidden earned media\",\"kpiHiddenExplainer\":\"Cited pages that mention your brand without the answer crediting you — earned wins the citation counts never show.\",\"kpiHiddenCaption\":\"of {count} sources mentioning you\",\"trendTitle\":\"Owned vs earned over time\",\"trendOwned\":\"Owned\",\"trendEarned\":\"Earned\",\"trendTooShort\":\"Two days of data are needed before the trend can be drawn. Daily tracking fills this in.\",\"facetMediaType\":\"Media type\",\"facetAuthority\":\"Source authority\",\"facetContentFormat\":\"Content format\",\"facetPlatform\":\"Platform\",\"facetHint\":\"· click to filter\",\"facetClear\":\"Clear this filter\",\"facetSearch\":\"Search values…\",\"facetTotalLabel\":\"citations\",\"facetOther\":\"Other ({count} categories)\",\"facetMore\":\"+{count} more categories\",\"facetShowLess\":\"Show less\",\"backToPublishers\":\"Back to publishers\",\"facetUnitsLabel\":\"Count by\",\"facetUnitPublishers\":\"Publishers\",\"facetUnitCitations\":\"Citations\",\"facetTotalLabelPublishers\":\"publishers\",\"mentionsAnyTrackedBrand\":\"Mentions a tracked brand\",\"mentionsTrackedBrands\":\"{count, plural, one {# brand} other {# brands}}\",\"ownerTrackedBrand\":\"Brand's own site\",\"tableTitle\":\"Citations\",\"tableCount\":\"{shown} of {total}\",\"domainFilterChip\":\"Showing citations from {domain}\",\"domainFilterClear\":\"Clear the publisher filter\",\"colDate\":\"Date\",\"colSource\":\"Source\",\"colPage\":\"Cited page\",\"colPlatform\":\"Platform\",\"colPrompt\":\"Prompt\",\"colMediaType\":\"Media type\",\"colOwner\":\"Owner\",\"colMentions\":\"Mentions\",\"openPage\":\"Open {url}\",\"mentionsYou\":\"You\",\"mentionsCompetitors\":\"{count} comp.\",\"owner\":{\"brand\":\"You\",\"competitor\":\"Competitor\",\"third_party\":\"Independent\"},\"drawerCitedPage\":\"Cited page\",\"drawerInAnswer\":\"In the answer\",\"drawerAnswerOpening\":\"The opening of the answer — this passage does not name the source.\",\"drawerNoAnswer\":\"No answer text was stored for this run.\",\"drawerViewFullAnswer\":\"View the full answer\",\"drawerMentions\":\"Mentions in the cited page\",\"mentionsYourBrand\":\"Your brand\",\"mentionsNotYou\":\"Not you\",\"drawerAttributed\":\"The answer credited this citation to {brand}.\",\"drawerGroupLabel\":\"Coverage group\",\"drawerAddToGroup\":\"Add to coverage group\",\"drawerNoGroups\":\"No coverage groups yet.\",\"drawerCreateGroup\":\"Create one\",\"drawerPublisherScore\":\"Publisher score · {domain}\",\"drawerAipvsUnavailable\":\"No placement score available for this publisher yet.\",\"drawerScore\":\"Score with AIPVS\",\"addedToGroup\":\"Added to {group}\",\"alreadyInGroup\":\"Already in {group}\",\"addToGroupFailed\":\"Could not add this page to the coverage group.\",\"emptyTitle\":\"No citations tracked yet\",\"emptyBody\":\"Citations appear once your reports and daily tracking observe AI answers citing sources for your prompts.\",\"emptyBodyReadOnly\":\"No citations have been recorded for this site yet. They appear once tracked prompts observe AI answers citing sources.\",\"emptyCta\":\"Set up your prompts\",\"noDataTitle\":\"No citations in this range\",\"noDataBody\":\"Nothing was cited in the selected window. Widen the date range to see more.\",\"filtersEmptyTitle\":\"No citations match your filters\",\"filtersEmptyBody\":\"No citations match the current filters. Clear them to see the full set.\",\"clearFilters\":\"Clear filters\",\"errorBody\":\"Citation data could not be loaded. Try again in a moment.\",\"mediaTypes\":{\"owned\":\"Owned media\",\"earned_press\":\"Press coverage\",\"earned_mention\":\"Web articles \u0026 blogs\",\"review_platform\":\"Review sites\",\"social_community\":\"Social \u0026 community\",\"reference\":\"Reference sites\",\"video_platform\":\"Video platforms\",\"third_party\":\"Unclassified source\",\"unclassified\":\"Unclassified\"},\"authorityTypes\":{\"academic\":\"Academic\",\"government\":\"Government\",\"major_media\":\"Major media\",\"trade_media\":\"Trade media\",\"analyst\":\"Industry anal
2ysts\",\"professional_org\":\"Professional orgs\",\"review_aggregator\":\"Review aggregators\",\"encyclopedia\":\"Reference / encyclopedia\",\"company\":\"Other brand websites\",\"unclassified\":\"Unclassified\"},\"contentFormats\":{\"listicle\":\"Listicles\",\"how_to_guide\":\"How-to guides\",\"review\":\"Reviews\",\"research_data\":\"Research\",\"case_study\":\"Case studies\",\"video\":\"Videos\",\"podcast\":\"Podcasts\",\"news\":\"News\",\"reference\":\"Reference\",\"standard\":\"Other articles \u0026 pages\",\"unclassified\":\"Other\"},\"citationTypes\":{\"cited_inline\":\"Cited in answer\",\"evaluated_source\":\"Evaluated only\",\"search_result\":\"Search result\",\"unclassified\":\"Unclassified\"},\"promptTypes\":{\"category_best\":\"Category best\",\"use_case_solution\":\"Use-case solution\",\"budget_constrained\":\"Budget-constrained\",\"solution_comparison\":\"Solution comparison\",\"segment_focused\":\"Segment-focused\",\"local_services\":\"Local services\",\"local_comparison\":\"Local comparison\",\"local_reviews\":\"Local reviews\",\"category_entry_point\":\"Category entry point\",\"jobs_to_be_done\":\"Jobs to be done\",\"buyers_journey_awareness\":\"Awareness\",\"buyers_journey_consideration\":\"Consideration\",\"buyers_journey_decision\":\"Decision\",\"stakeholder_perspective\":\"Stakeholder perspective\",\"brand_identity\":\"Brand identity\",\"brand_comparison\":\"Brand comparison\",\"unclassified\":\"Unclassified\"},\"definitions\":{\"mediaTypes\":{\"owned\":\"Your own domain, or a competitor domain you added to this property.\",\"earned_press\":\"Established press — national and international outlets plus B2B trade publications.\",\"earned_mention\":\"Open-web articles and blogs that aren't established press: independent blogs, agency content, partner pages.\",\"review_platform\":\"Sites whose business is reviews — G2, Capterra, Yelp, Trustpilot and the like.\",\"social_community\":\"Community and user-generated platforms such as Reddit, Quora, Stack Overflow, LinkedIn or Medium.\",\"reference\":\"Encyclopedias, dictionaries and reference sites such as Wikipedia or Britannica.\",\"video_platform\":\"Video hosts such as YouTube, Vimeo or TikTok.\",\"third_party\":\"Sources we could not place in a more specific bucket yet.\"},\"authorityTypes\":{\"academic\":\"Universities, research institutions and peer-reviewed publishers.\",\"government\":\"Official government sources at any level.\",\"major_media\":\"Tier-1 mainstream press a non-expert would recognize.\",\"trade_media\":\"Industry publications written for professionals in one vertical.\",\"analyst\":\"Research and advisory firms and elite business publications.\",\"professional_org\":\"Associations, standards bodies, foundations and other non-profits.\",\"review_aggregator\":\"Platforms that collect and publish reviews or ratings.\",\"encyclopedia\":\"Authoritative knowledge bases and consumer reference sites.\",\"company\":\"Commercial brand websites that aren't press, reviews or reference.\"},\"contentFormats\":{\"listicle\":\"Best-of, top-N and comparison content.\",\"how_to_guide\":\"Tutorials, step-by-step instructions and walkthroughs.\",\"review\":\"Product or service reviews with a hands-on assessment.\",\"research_data\":\"Studies, statistics and data-driven reports.\",\"case_study\":\"Customer stories and detailed before/after walkthroughs.\",\"video\":\"Video content.\",\"podcast\":\"Podcast episodes and audio content.\",\"news\":\"News articles, press releases and announcements.\",\"reference\":\"Encyclopedia- or dictionary-style reference content.\",\"standard\":\"Regular articles and pages that match no more specific format.\"}},\"facetTotalLabelExcluding\":\"before this filter\",\"consultedTitle\":\"Sources AI consults directly\",\"consultedExplainer\":\"Sites AI went straight to with a site-scoped search instead of searching the open web. A citation is a source it found and chose to use; a consultation is one it trusted before it looked — so a publisher that appears here but not in the table below is a reference work you can only see from this angle.\",\"consultedCount\":\"{count, plural, =1 {# consultation} other {# consultations}}\",\"consultedEmpty\":\"AI ran no site-scoped searches in this window.\",\"consultedClassOwn\":\"Yours\",\"consultedClassCompetitor\":\"Competitor\",\"consultedClassThirdParty\":\"Third party\"},\"consultationsDrilldown\":{\"pageSubtitle\":\"Which sites AI reads directly instead of searching for an answer — and whether yours is one of them.\",\"intro\":\"A `site:` search means the model had already decided where to look. Consultations of your own site are an authority signal; competitor consultations while you get none are the absence of one. Brand-identity and brand-comparison prompts are excluded, because a prompt that names you is expected to send AI to your site.\",\"kpiOwn\":\"Your site consultations\",\"kpiCompetitor\":\"Competitor consultations\",\"kpiThirdParty\":\"Third-party consultations\",\"kpiRate\":\"Answer consult rate\",\"kpiOwnExplainer\":\"Times AI searched your own domain directly in this window, excluding brand-identity and comparison prompts.\",\"kpiCompetitorExplainer\":\"Times AI searched a tracked competitor's domain directly, excluding brand-identity and comparison prompts.\",\"kpiThirdPartyExplainer\":\"Times AI searched some other site directly — publishers, forums, and reference works it trusts. Excludes brand-identity and comparison prompts.\",\"kpiRateExplainer\":\"Share of AI answers that searched at all in which the model consulted your site. Normalized per answer, so a chatty platform can't inflate it.\",\"byPlatform\":\"By platform\",\"byStage\":\"By funnel stage\",\"domainsTitle\":\"Consulted sites\",\"domainsSubtitle\":\"Every domain AI went to directly, most-consulted first.\",\"domainsFootnote\":\"Counts here include consultations from brand prompts, which the numbers above exclude — rows say when they differ.\",\"countAllBrandPrompts\":\"all from brand prompts\",\"countBrandPromptShare\":\"{count} from brand prompts\",\"colDomain\":\"Domain\",\"colClass\":\"Whose site\",\"colCount\":\"Consultations\",\"colPlatforms\":\"Platforms\",\"colLastSeen\":\"Last seen\",\"colTopic\":\"Topic searched\",\"classOwn\":\"Yours\",\"classCompetitor\":\"Competitor\",\"classThirdParty\":\"Third party\",\"bareQuery\":\"No topic — whole site\",\"empty\":\"No site-scoped searches in this window. AI searched the open web for every answer.\",\"absenceTitle\":\"AI never consulted your site\",\"absenceBody\":\"It consulted competitor sites {count, plural, =1 {# time} other {# times}} in this window. Publishing the kind of reference material AI goes to competitors for is the lever here.\",\"highlightedDomain\":\"Showing {domain}
2\",\"clearHighlight\":\"Show all domains\",\"colActions\":\"Actions\",\"actions\":{\"claim\":\"This domain is ours\",\"dismiss\":\"Dismiss\",\"cancel\":\"Cancel\",\"claimTitle\":\"Mark this domain as yours?\",\"claimDescription\":\"{domain} will count as your own site from now on. Every consultation of it, past and future, moves into your own-site numbers, and the alerts about it stop.\",\"claimConfirm\":\"Yes, it's ours\",\"claimSuccess\":\"{domain} now counts as your site\",\"dismissTitle\":\"Stop alerting about this domain?\",\"dismissDescription\":\"{domain} stays counted as a third party everywhere it appears. This only turns off the wrong-domain alerts for it.\",\"dismissConfirm\":\"Stop alerting\",\"dismissSuccess\":\"Alerts for {domain} are off\",\"failed\":\"That didn't save. Try again.\"}},\"wrongDomainAlerts\":{\"title\":\"Wrong-domain alerts\",\"description\":\"When AI consults a domain that looks like yours but isn't, we can email the people below. Detection runs either way — an empty list simply means the finding stays on the property timeline.\",\"emptyState\":\"Nobody is emailed yet. Wrong-domain findings still appear as annotations on this property.\",\"addMember\":\"Add a team member\",\"addPlaceholder\":\"[email protected]\",\"add\":\"Add\",\"remove\":\"Remove recipient\",\"saveSuccess\":\"Alert recipients saved\",\"saveFailed\":\"Couldn't save the recipient list\"},\"negativeMessageAlerts\":{\"title\":\"Negative message alerts\",\"description\":\"When a claim you track as negative starts showing up in AI answers, we can email the people below. Detection happens either way, and an empty list simply means the finding stays on the property timeline.\",\"emptyState\":\"Nobody is emailed yet. The
2se findings still appear as annotations on this property.\",\"addMember\":\"Add a team member\",\"addPlaceholder\":\"[email protected]\",\"add\":\"Add\",\"remove\":\"Remove recipient\",\"saveSuccess\":\"Alert recipients saved\",\"saveFailed\":\"Couldn't save the recipient list\"},\"snapshot\":{\"categoryDescription\":\"Spyglasses researches this market and fills the profile in. It uses the profile to write prompts and to match the brands AI names. Edit any field to correct it, and your edit stays in place when Spyglasses rebuilds the profile.\",\"categoryResearching\":\"We are researching this market. It fills in within a minute or two of creating the category, or when the first report runs.\"},\"brandDashboard\":{\"perspectives\":{\"page\":{\"title\":\"Perspectives\",\"subtitle\":\"How AI answers your prompts when a specific buyer asks, compared with the same prompts asked with no persona.\",\"managePersonas\":\"Manage personas\",\"errorTitle\":\"Perspectives could not load\",\"errorBody\":\"Something went wrong while loading this page. Try again in a moment.\"},\"controls\":{\"groupBy\":\"Group by\",\"show\":\"Show\",\"brand\":\"Brand\",\"brandPrefix\":\"Brand:\"},\"groupBy\":{\"persona\":\"Persona\",\"roleGroup\":\"Role\",\"segment\":\"Segment\",\"companySize\":\"Company size\",\"seniority\":\"Seniority\"},\"groupCount\":{\"persona\":\"{count, plural, one {# persona} other {# personas}}\",\"roleGroup\":\"{count, plural, one {# role} other {# roles}}\",\"segment\":\"{count, plural, one {# segment} other {# segments}}\",\"companySize\":\"{count, plural, one {# company size} other {# company sizes}}\",\"seniority\":\"{count, plural, one {# seniority level} other {# seniority levels}}\"},\"groupNoun\":{\"persona\":\"persona\",\"roleGroup\":\"role\",\"segment\":\"segment\",\"companySize\":\"company size\",\"seniority\":\"seniority level\"},\"groupSize\":\"{count, plural, one {# persona} other {# personas}}\",\"metrics\":{\"topChoice\":\"Top-choice rate\",\"cautioned\":\"Cautioned rate\",\"mention\":\"Mention rate\"},\"metricsInline\":{\"topChoice\":\"top-choice rate\",\"cautioned\":\"cautioned rate\",\"mention\":\"mention rate\"},\"mentionNote\":\"Mention rate counts an answer once if it names the brand in any of these four ways.\",\"scope\":{\"lastDays\":\"last {days} days\",\"project\":\"project {project}\",\"baseline\":\"baseline {count, plural, one {# answer} other {# answers}} with no persona\",\"baselinePending\":\"baseline fills in with the first persona answers\",\"baselineNone\":\"no baseline answers in this window\",\"aioExcluded\":\"AI Overviews excluded\"},\"singlePersona\":\"Grouping needs two or more personas. Add another persona to a project to compare roles or segments.\",\"noBaseline\":{\"title\":\"No baseline answers in this window\",\"body\":\"The baseline is the same prompts asked with no persona, and each buyer is compared with it. None of these prompts has a baseline answer in the last {days} days, so the rates below show on their own for now.\",\"tryLonger\":\"Show the last {days} days\",\"partial\":\"Some buyers have no baseline answers for their prompts in this window. Their rates show on their own, with no comparison.\"},\"explainer\":{\"trigger\":\"How this comparison works\",\"title\":\"Same question, different asker\",\"baseline\":\"Each buyer is compared with the \u003cb\u003ebaseline\u003c/b\u003e: the same prompts, on the same platforms and days, asked with no persona. Only the asker changes.\",\"aio\":\"\u003cb\u003eAI Overviews is left out.\u003c/b\u003e It answers a search query, so a persona version would repeat the regular run.\",\"intervals\":\"Intervals are \u003cb\u003e90%\u003c/b\u003e. A difference counts as clear only when the interval of the difference sits entirely on one side of zero.\",\"thin\":\"Buyers with fewer than {threshold} answers are grayed out and never marked clear.\",\"stack\":\"\u003cb\u003eIn this buyer's stack\u003c/b\u003e marks a brand the persona already uses. Answers often repeat the asker's own tools, which is not a recommendation.\",\"headline\":\"Your headline numbers use the baseline only. Adding personas never changes them.\",\"docs\":\"Read the docs\"},\"lead\":{\"eyebrow\":\"Biggest difference · {metric}\",\"topChoice\":\"{brand} is the top choice in {lower, select, yes {only } other {}}{value} of {audience, select, group {these buyers' answers} other {this buyer's answers}}.\",\"cautioned\":\"AI cautions against {brand} in {lower, select, yes {only } other {}}{value} of {audience, select, group {these buyers' answers} other {this buyer's answers}}.\",\"mention\":\"{brand} is mentioned in {lower, select, yes {only } other {}}{value} of {audience, select, group {these buyers' answers} other {this buyer's answers}}.\",\"against\":\"Against {baseline}
2 at baseline, the same prompts asked with no persona. From {count, plural, one {# answer} other {# answers}}.\",\"whyCaution\":\"Main reason AI gives: \\\"{phrase}\\\" ({pct}% of these cautions).\",\"whyBestFor\":\"AI most often calls {brand} best for \\\"{phrase}\\\" when {audience, select, group {these buyers ask} other {this buyer asks}}.\",\"readAnswers\":\"Read these answers\",\"whyCautionLink\":\"Why AI cautions against you\",\"asBuyer\":\"{audience, select, group {As these buyers} other {As this buyer}}\",\"baseline\":\"Baseline\",\"difference\":\"Difference\",\"ci\":\"±{ci} pts\",\"otherWay\":\"The other way\",\"vsBaseline\":\"vs {value} at baseline\",\"pts\":\"{value} pts\"},\"pending\":{\"title\":\"First answers today\",\"body\":\"{names} {count, plural, one {was} other {were}} added to a project today, which starts the first run right away. This page fills in as those answers come back, next to the baseline for the same prompts.\"},\"noClear\":{\"title\":\"No buyer sees a clear difference from the baseline.\",\"body\":\"Every buyer's {metric} for {brand} is within its interval of the baseline.\",\"bodyCategory\":\"Every buyer's {metric} for {brand} is within its interval of the baseline.\",\"hint\":\"Try top-choice or cautioned rate: personas change how AI recommends more often than whether it mentions you.\",\"hintCategory\":\"Try top-choice or cautioned rate: personas change how AI recommends more often than whether it mentions a brand.\",\"bodyNoBaseline\":\"There is no baseline in this window to compare with yet.\"},\"dot\":{\"title\":\"How each buyer sees {brand}\",\"description\":\"{metric} when each buyer asks, against the baseline for the same prompts. Pick a buyer to see who AI recommends to them.\",\"caption\":\"{metric} for {brand} as each buyer, against the baseline for the same prompts. {clear} of {total} show a clear difference.\",\"legendClear\":\"Clear difference from baseline\",\"legendNoise\":\"Could be noise\",\"legendBaseline\":\"Baseline, same prompts\",\"legendInterval\":\"90% interval\",\"headBuyer\":\"Buyer\",\"headAsBuyer\":\"As this buyer\",\"answers\":\"{count, plural, one {# answer} other {# answers}}\",\"earlyRead\":\"Early read · {count, plural, one {# answer} other {# answers}}\",\"noAnswersYet\":\"No answers yet\",\"pendingTitle\":\"First answers today\",\"pendingBody\":\"Joined {projects} today. The first run is underway.\",\"pendingBodyNoProject\":\"Added to a project today. The first run is underway.\",\"notRunningTitle\":\"Not running\",\"notRunningBody\":\"Not on an active project, so nothing is asked as this buyer yet.\",\"noAnswersTitle\":\"No answers in this window\",\"noAnswersBody\":\"Try a longer window or another platform.\",\"vs\":\"vs {value}\",\"noBaseline\":\"No baseline in this window\",\"ariaRow\":\"{label}: {value} against {baseline} at baseline.\",\"ariaRowNoBaseline\":\"{label}: {value}, with no baseline in this window.\",\"ariaDelta\":\"{direction, select, up {Up} down {Down} other {Unchanged,}} {pts} points.\",\"ariaClear\":\"A clear difference.\",\"ariaNoise\":\"Could be noise.\",\"ariaThin\":\"Early read.\",\"ariaAction\":\"Show who AI recommends to this buyer.\"},\"detail\":{\"asBuyer\":\"As this buyer\",\"baseline\":\"Baseline, same prompts\",\"difference\":\"Difference\",\"interval\":\"90% interval {from} to {to}\",\"answers\":\"{count, plural, one {# answer} other {# answers}}\",\"pts\":\"{value} pts\",\"thin\":\"Only {count, plural, one {# answer} other {# answers}} so far. We gray out buyers under {threshold} answers and don't call a difference until there are more.\",\"clear\":\"Clear difference: the whole interval is on one side of zero.\",\"noise\":\"Not a clear difference: the interval includes zero, so this gap could be noise.\",\"noBaseline\":\"No baseline answers for these prompts in this window, so there is nothing to compare with yet.\",\"inStack\":\"In this buyer's stack: they already use it, and answers often repeat the asker's own tools.\",\"seeAnswers\":\"See these answers\",\"seeRecommendations\":\"See recommendations for {audience, select, group {these buyers} other {this buyer}}\"},\"sor\":{\"titleRow\":\"Who AI recommends to {label}
2\",\"titleBaseline\":\"Who AI recommends with no persona\",\"subtitleRow\":\"Share of recommendation among {count, plural, one {# answer} other {# answers}} asked as {audience, select, group {these buyers} other {this buyer}}, against the baseline for the same prompts.\",\"subtitlePending\":\"Share of recommendation among this buyer's answers, against the baseline.\",\"subtitleBaseline\":\"Share of recommendation across every prompt in view, {count, plural, one {# answer} other {# answers}}.\",\"subtitleBaselineEmpty\":\"Share of recommendation across every prompt in view.\",\"buyer\":\"Buyer\",\"baselineOption\":\"Baseline (no persona)\",\"emptyPending\":\"First answers today. This fills in once the first run for this buyer finishes.\",\"emptyBaseline\":\"The baseline for these prompts fills in with the first persona answers.\",\"emptyNone\":\"No brand was recommended in these answers yet.\",\"emptyNotRunning\":\"This buyer is not on an active project, so nothing is asked as them yet.\",\"early\":\"Early read: {count, plural, one {# answer} other {# answers}} so far. One answer moves these shares by several points.\",\"noBaseline\":\"No baseline answers for these prompts in this window, so the baseline column is empty.\",\"legendBuyer\":\"This buyer\",\"legendBaseline\":\"Baseline\",\"colBrand\":\"Brand\",\"colShare\":\"Share of recommendation\",\"colBaseline\":\"Baseline\",\"colDifference\":\"Difference\",\"you\":\"You\",\"notTracked\":\"Not tracked\",\"inStack\":\"In this buyer's stack\",\"other\":\"Other ({count, plural, one {# brand} other {# brands}})\",\"pts\":\"{value} pts\",\"footnote\":\"Share of recommendation: a brand's recommendations (top choice or one of many) as a share of every brand's recommendations in these answers, untracked brands included. The column adds up to 100%.\"},\"aside\":{\"baselineTitle\":\"Baseline\",\"baselineBody\":\"Your daily prompts asked with no persona, on the same platforms. This is what your headline numbers measure.\",\"editPersona\":\"Edit persona\",\"groupBody\":\"{count, plural, one {# persona shares} other {# personas share}} this {group}. Their answers are pooled.\",\"firstAnswersToday\":\"First answers today\",\"notRunning\":\"Not running\",\"archived\":\"Archived\",\"seeRecommendations\":\"See recommendations for {audience, select, group {these buyers} other {this buyer}}\"},\"compare\":{\"title\":\"Compare every brand\",\"description\":\"{metric} for you, your tracked competitors and the top untracked brands, as each buyer.\",\"descriptionCategory\":\"{metric} for your tracked brands and the top untracked brands, as each buyer.\",\"legendThin\":\"Fewer than {threshold} answers\",\"askedAs\":\"Asked as\",\"you\":\"You\",\"tracked\":\"Tracked\",\"notTracked\":\"Not tracked\",\"answersCol\":\"Answers\",\"answersLink\":\"Answers\",\"baselineRow\":\"Baseline\",\"baselineN\":\"No persona · {count, plural, one {# answer} other {# answers}}\",\"baselineEmpty\":\"Fills in with the first persona answers\",\"rowAnswers\":\"{count, plural, one {# answer} other {# answers}}\",\"noAnswersYet\":\"No answers yet\",\"partlyPending\":\"{names} {count, plural, one {starts} other {start}} today, not in these numbers yet\",\"pending\":\"First answers today\",\"notRunning\":\"Not on an active project\",\"noAnswers\":\"No answers in this window\",\"noBaseline\":\"No baseline in this window\",\"inStack\":\"In stack\",\"inStackLabel\":\"In this buyer's stack\",\"diffSr\":\"{direction, select, up {higher than} down {lower than} other {the same as}} baseline{clear, select, yes {, a clear difference} other {, within the interval}}\",\"cellAria\":\"{row}, {brand}: {value} against {baseline} at baseline\",\"cellAriaNoBaseline\":\"{row}, {brand}: {value}, no baseline in this window\",\"openRecommendations\":\"See recommendations for {label}\"},\"empty\":{\"noPersonasTitle\":\"See how AI answers each of your buyers\",\"noPersonasBody\":\"Perspectives compares answers asked as a specific buyer, like a CFO at an early-stage startup, with the same prompts asked with no persona. Create personas from your customer segments, then add them to a project. The first answers arrive the same day.\",\"noPersonasReadOnly\":\"No buyer personas are set up for this dashboard yet.\",\"free\":\"Personas are free to create.\",\"generate\":\"Generate personas\",\"addToProject\":\"Add personas to a project\",\"notRunningTitle\":\"Add a persona to a project to start\",\"notRunningBody\":\"Each persona runs on the projects you add it to. Add one to an active project and the first answers arrive the same day.\",\"notRunningReadOnly\":\"No persona is on an active project yet.\",\"noProjectPersonasTitle\":\"No personas on this project yet\",\"noProjectPersonasBody\":\"Add personas to this project to compare how AI answers each buyer with the baseline.\",\"noProjectPersonasAction\":\"Add personas to this project\",\"allProjects\":\"Show every project\"}},\"recommendations\":{\"persona\":{\"label\":\"Persona\",\"prefix\":\"Persona:\",\"none\":\"None (baseline)\",\"personasHeading\":\"Personas\",\"groups
2Heading\":\"{dimension, select, roleGroup {By role} segment {By segment} companySize {By company size} seniority {By seniority} other {By group}}\",\"archivedOption\":\"{label} (archived)\",\"pendingOption\":\"{label} (first answers today)\",\"groupOption\":\"{label} ({count, plural, one {# persona} other {# personas}})\",\"groupCurrent\":\"{label} ({dimension})\",\"unknownPersona\":\"One persona\",\"dimensions\":{\"roleGroup\":\"role\",\"segment\":\"segment\",\"companySize\":\"company size\",\"seniority\":\"seniority\"},\"bannerPersona\":\"Answers asked as {label}.\",\"bannerPersonaNamed\":\"Answers asked as {label} ({name}).\",\"bannerUnknown\":\"Answers asked as one persona.\",\"bannerGroup\":\"Answers asked as every persona where {dimension} is {label}.\",\"bannerGroupUnset\":\"Answers asked as every persona with no {dimension} set.\",\"bannerNote\":\"Dashboard headline numbers use answers with no persona. AI Overviews is left out here because it answers a search, not a buyer.\",\"compare\":\"Compare every persona with the baseline\",\"pendingTitle\":\"First answers today for {label}\",\"pendingBody\":\"This persona was added to a project today, which starts its first daily run right away. Answers asked as this buyer appear here as they come back, later today.\",\"scopePersona\":\"asked as {label}\",\"scopeUnknown\":\"asked as one persona\",\"scopeGroup\":\"asked as personas where {dimension} is {label}\",\"scopeGroupUnset\":\"asked as personas with no {dimension} set\",\"askedAs\":\"Asked as {label}\",\"askedAsUnknown\":\"Asked as a persona\"},\"title\":\"How AI recommends you\",\"titlePerson\":\"How AI recommends you\",\"titleCategory\":\"Who AI recommends\",\"explainer\":\"How often AI names you as its top pick in answers from daily tracking, and how every answer treats you. Cautions come with the reason AI gave, so you can see who it steers away and why.\",\"explainerPerson\":\"How often AI names you as its top pick in answers from daily tracking, and how every answer treats you. Cautions come with the reason AI gave, so you can see who it steers away and why.\",\"explainerCategory\":\"Each brand's share of all the recommendations AI made in answers from daily tracking. Every brand AI names counts, tracked or not, so the list adds up to 100%.\",\"cardLink\":\"Recommendations\",\"scopeMetric\":\"Answers from daily tracking\",\"scopeMetricPerson\":\"Answers from daily tracking\",\"scopeMetricCategory\":\"Answers from daily tracking\",\"docsShort\":\"Read the full definition →\",\"yes\":\"yes\",\"no\":\"no\",\"categories\":{\"top_choice\":{\"label\":\"Top choice\",\"definition\":\"The answer singles the brand out as its pick or its explicit top recommendation.\"},\"one_of_many\":{\"label\":\"One of many\",\"definition\":\"The answer recommends the brand alongside others, often with a note on who it is best for.\"},\"generic_mention\":{\"label\":\"Generic mention\",\"definition\":\"The answer names the brand without evaluating or recommending it.\"},\"cautioned_against\":{\"label\":\"Cautioned against\",\"definition\":\"The answer steers this asker away from the brand, usually for a stated reason such as price or complexity.\"},\"not_mentioned\":{\"label\":\"Not mentioned\",\"definition\":\"The answer does not name the brand at all.\"},\"unclassified\":{\"label\":\"Unclassified\",\"definition\":\"The answer names the brand, but it was not rated.\"}},\"metrics\":{\"topChoiceRate\":{\"label\":\"Top-choice rate\",\"definition\":\"Share of answers where AI names you as its pick or its explicit top recommendation.\"},\"recommendedRate\":{\"label\":\"Recommended rate\",\"definition\":\"Share of answers where AI recommends you, either as its top choice or as one of several good options.\"},\"cautionedRate\":{\"label\":\"Cautioned rate\",\"definition\":\"Share of answers where AI steers the asker away from a brand, usually for a stated reason such as price or complexity.\"},\"bestForCoverage\":{\"label\":\"Best-for coverage\",\"definition\":\"Share of your one-of-many recommendations that come with a note on who you are best for, such as \\\"best for multi-entity companies\\\".\"},\"citedNotRecommended\":{\"label\":\"Cited, not recommended\",\"definition\":\"Answers that cite one of your own pages but leave you out of the recommendations: not named, named in passing, or cautioned against.\"},\"shareOfRecommendation\":{\"label\":\"Share of recommendation\",\"definition\":\"A brand's recommendations (top choice plus one of many, a top choice counted once) divided by every brand's recommendations in the same answers. Brands you don't track count too, so the column adds up to 100%.\"},\"topChoiceShare\":{\"label\":\"Top-choice share\",\"definition\":\"A brand's top picks divided by all the top picks AI made in the same answers, across every brand it named.\"}},\"explainerCard\":{\"title\":\"How AI recommends brands\",\"caveatsNote\":\"Caveats are tracked separately from the category, so a top choice can still come with a note such as \\\"larger companies outgrow it\\\".\"},\"mix\":{\"empty\":\"No classified answers yet\",\"title\":\"How AI describes each brand\",\"description\":\"Of the answers that name each brand. Strongest first: most often the top pick, then most often recommended.\"},\"earlyRead\":{\"pill\":\"Early read\",\"answers\":\"{count, plural, one {# answer} other {# answers}}\",\"noteTitle\":\"Early read: {count, plural, one {# answer} other {# answers}}
2.\",\"noteBody\":\"With fewer than {threshold} answers, one answer moves a rate by several points. Read the counts rather than the percentages until this slice fills out.\"},\"family\":{\"rates\":\"Rates\",\"ratesHint\":\"per answer, for one brand\",\"ratesHintFor\":\"per answer, for {name}\",\"ratesHintCategory\":\"per answer, across the market\",\"shares\":\"Shares\",\"sharesHint\":\"across every brand AI named; adds up to 100%\"},\"card\":{\"notSetUp\":\"How AI recommends you appears after your next daily run. For every answer it records whether AI made you its top choice, one of many, a generic mention or a brand to avoid, and why.\",\"notSetUpPerson\":\"How AI recommends you appears after your next daily run. For every answer it records whether AI made you its top choice, one of many, a generic mention or someone to avoid, and why.\",\"notSetUpCategory\":\"Who AI recommends appears after your next daily run. For every answer it records which brands AI made its top choice, recommended, mentioned or cautioned against, and why.\",\"nothingInWindow\":\"No answers were classified in the last 7 days. Earlier results are on the Recommendations page.\",\"openLongerWindow\":\"See the last 30 days\",\"noCautions\":\"No cautions this week.\",\"cautioned\":\"Cautioned in {count, plural, one {# answer} other {# answers}}\",\"cautionedReason\":\", most often \\\"{reason}\\\".\",\"noEarlierWeek\":\"no earlier week to compare\",\"topChoiceCaption\":\"top-choice rate vs previous 7 days\",\"topPickIn\":\"AI's top pick in \u003cstrong\u003e{count, number} of {total, number}\u003c/strong\u003e answers.\",\"mixHeading\":\"How every answer this week treats you\",\"whatTheseMean\":\"What these mean\",\"leader\":\"{name} leads, vs previous 7 days\",\"leaderEarly\":\"{name} leads\",\"noLeader\":\"No brand recommended yet\"},\"page\":{\"title\":\"Recommendations\",\"titlePerson\":\"Recommendations\",\"titleCategory\":\"Who AI recommends\",\"subtitle\":\"How AI recommends you when buyers ask for what you offer: how often you are the top pick, who you are best for, and why AI sometimes steers buyers away.\",\"subtitlePerson\":\"How AI recommends you when people ask who to turn to: how often you are the top pick, who you are best for, and why AI sometimes steers people away.\",\"subtitleCategory\":\"Which brands AI recommends in this market, how it describes each one, and the reasons it steers buyers away.\",\"intro\":\"Every brand in every answer from daily tracking is classified, including brands you don't track. Rates are per answer; shares are across all brands.\",\"introPerson\":\"Every name in every answer from daily tracking is classified, including people you don't track. Rates are per answer; shares are across everyone named.\",\"introCategory\":\"Every brand in every answer from daily tracking is classified, tracked or not. Rates are per answer; shares are across all brands.\",\"errorTitle\":\"Recommendations could not load\",\"errorBody\":\"Something went wrong while loading this page. Try again in a moment.\",\"notSetUpTitle\":\"Nothing classified yet\",\"notSetUpBody\":\"Recommendation categories start with your next daily run. For every answer, each brand it names is recorded as a top choice, one of many, a generic mention or cautioned against, with the reasons AI gives.\",\"notSetUpBodyPerson\":\"Recommendation categories start with your next daily run. For every answer, everyone it names is recorded as a top choice, one of many, a generic mention or cautioned against, with the reasons AI gives.\",\"notSetUpBodyCategory\":\"Recommendation categories start with your next daily run. For every answer, each brand it names is recorded as a top choice, one of many, a generic mention or cautioned against, with the reasons AI gives.\",\"counts\":\"{count, plural, one {# answer} other {# answers}}.\",\"emptyWindow\":\"No answers were classified in this window. Try a longer window.\"},\"rates\":{\"title\":\"How AI treats {name}\",\"description\":\"Each rate is a share of the {count, number} answers above. Changes compare with the previous {days} days.\"},\"kpi\":{\"ofAnswers\":\"{count, number} of {total, number} answers\",\"seeTopChoice\":\"See the top-choice answers\",\"ofPicks\":\"{count, number} of {total, number} one-of-many picks\",\"seeOneOfMany\":\"See the one-of-many answers\",\"lowerIsBetter\":\"Lower is better, and the change badge reads 
2it that way.\",\"answers\":\"{count, plural, one {# answer} other {# answers}}\",\"seeCautioned\":\"See the cautioned answers\",\"fewerIsBetter\":\"Fewer is better.\",\"ofCiting\":\"{pct} of answers citing you\",\"seeCnr\":\"See {count, plural, one {this answer} other {these # answers}}\"},\"everyAnswer\":{\"title\":\"Every answer, by how it treats {name}\",\"sums\":\"Adds up to {count, number} answers\"},\"cautions\":{\"title\":\"Why AI cautions against you\",\"description\":\"The reasons AI gives when it steers a buyer away from you, and who each one applies to. Caveats on answers that still recommend you stay with those answers.\",\"titleCategory\":\"Why AI cautions against brands here\",\"descriptionCategory\":\"Reasons AI gave for steering buyers away from any brand in this market, and who each one applies to.\",\"anyBrand\":\"any brand in this market\",\"footnoteCategory\":\"{cautions, number} cautions gave {reasons, number} reasons in the last {days} days (one caution can give more than one reason).\",\"emptyTitle\":\"No cautions in this slice.\",\"emptyBody\":\"AI did not steer anyone away from {subject} in these answers. If it starts to, the reason and the buyer it applies to will show up here, with the answers behind them.\",\"newSincePrevious\":\"{count, plural, one {# new reason} other {# new reasons}} since the previous period:\",\"newLast7\":\"{count, plural, one {# new reason} other {# new reasons}} in the last 7 days:\",\"reasonTypes\":{\"price\":\"Price\",\"complexity\":\"Complexity\",\"company_size_fit\":\"Company size fit\",\"missing_capability\":\"Missing capability\",\"integration\":\"Integrations\",\"support_service\":\"Support and service\",\"reliability_quality\":\"Reliability and quality\",\"security_compliance\":\"Security and compliance\",\"reputation\":\"Reputation\",\"other\":\"Other\"},\"groupCount\":\"{count, number} · {share}% of cautions\",\"footnote\":\"{cautioned, number} cautioned answers gave {reasons, number} reasons in the last {days} days (one caution can give more than one reason).\",\"footnoteNoPrevious\":\"Nothing ran in the previous period, so there is no change to show yet.\",\"footnoteCompared\":\"Changes compare with the previous period of the same length.\",\"footnoteNewMeans\":\"There is no earlier period of the same length to compare with, so New means first seen in the last 7 days.\",\"footnoteNoEarlier\":\"There is no earlier period of the same length to compare with yet, so changes and New markers are hidden.\",\"new\":\"New\",\"audience\":\"For {audience}\"},\"bestFor\":{\"title\":\"Where AI picks you\",\"description\":\"The buyers and use cases AI names when it recommends you.\",\"empty\":\"AI has not attached a \\\"best for\\\" note to your recommendations in this slice yet.\",\"phrase\":\"Best for {phrase}\",\"rising\":\"Rising\",\"new\":\"New\",\"asTopChoice\":\"{count, number} of these as the top choice\",\"footnote\":\"{count, plural, one {# recommendation} other {# recommendations}} came with a note on who you are best for in the last {days} days. Rising means at least 20 more answers than the previous period, and a quarter more.\"},\"leaderboard\":{\"title\":\"Share of recommendation\",\"description\":\"Every brand AI recommended in these answers, including brands you don't track. Your share is {name}'s recommendations out of all of them; a top choice counts once.\",\"descriptionCategory\":\"Every brand AI recommended in these answers. Each share is that brand's recommendations out of all of them; a top choice counts once.\",\"notTracked\":\"Not tracked\",\"other\":\"Other ({count, plural, one {# brand} other {# brands}})\",\"track\":\"Track\",\"trackAria\":\"Track {name}\",\"rank\":\"#\",\"brand\":\"Brand\",\"shareNote\":\"Brands you don't track count too, so this column adds up to 100% of the market, including Other.\",\"cautionedRateNote\":\"A rate, not a share: each brand's cautioned answers out of all {answers, number} answers.\",\"perAnswer\":\"per answer\",\"namedIn\":\"Named in\",\"answersUnit\":\"answers\",\"you\":\"You\",\"foldTail\":\"Fold the tail\",\"showAll\":\"Show every brand\",\"na\":\"n/a\",\"cardCautioned\":\"Cautioned {rate} per answer\",\"cardNamedIn\":\"Named in {count, number}\",\"footnote\":\"{points, number} recommendations across {brands, number} brands in {answers, number} answers. Share of recommendation and top-choice share each add up to 100%, Other included. Cautioned rate is a per-answer rate, not a share.\"},\"overview\":{\"title\":\"The market at a glance\",\"description\":\"Each rate is a share of the {count, number} answers above.\",\"withTopPick\":\"Answers with a top pick\",\"withTopPickExplainer\":\"Share of answers where AI singled out one brand as its pick. The rest list options without choosing.\",\"topPicks\":\"{count, plural, one {# top pick} other {# top picks}}\",\"withCaution\":\"Answers with a caution\",\"withCautionExplainer\":\"Share of answers where AI steered the buyer away from at least one brand.\",\"cautions\":\"{count, plural, one {# caution}
2 other {# cautions}}\",\"brandsNamed\":\"Brands named\",\"brandsNamedExplainer\":\"Distinct brands AI named at least once in this slice, tracked or not.\",\"trackedOrNot\":\"tracked or not\",\"perAnswer\":\"Brands per answer\",\"perAnswerExplainer\":\"The average number of brands one answer names. A higher number means AI lists more options and picks less often.\",\"onAverage\":\"on average\"},\"trend\":{\"title\":\"Over time\",\"descriptionWeek\":\"Top-choice rate and cautioned rate for {name}, by week (the first week can be short). Hover a point for the number of answers behind it.\",\"descriptionDay\":\"Top-choice rate and cautioned rate for {name}, by day. Hover a point for the number of answers behind it.\",\"group\":\"Group\",\"byDay\":\"By day\",\"byWeek\":\"By week\",\"brand\":\"Brand\",\"brandPrefix\":\"Brand:\",\"tooltipWeek\":\"Week of {date} · {count, plural, one {# answer} other {# answers}}\",\"tooltipDay\":\"{date} · {count, plural, one {# answer} other {# answers}}\"},\"track\":{\"title\":\"Track {name}\",\"description\":\"Add this brand as a competitor. Its history is already here: every brand in every answer was classified from the start, so nothing needs to run again.\"},\"answers\":{\"pageTitle\":\"Recommendation answers\",\"pageSubtitle\":\"Every answer behind the recommendation numbers, one row per brand per answer, with the words that earned the rating.\",\"levelLabel\":\"Raw data\",\"back\":\"Back to recommendations\",\"intro\":\"Open a row to read the full answer with the words behind the rating highlighted.\",\"export\":\"Export CSV\",\"exporting\":\"Exporting…\",\"exportEmpty\":\"There are no rows to export.\",\"exportCapped\":\"The file holds the newest {count, number} rows. Narrow the filters to export the rest.\",\"exportFailed\":\"The export failed. Try again in a moment.\",\"rowFilters\":\"Rows\",\"rowFiltersHint\":\"Narrow the answers to one brand, category, reason or citation pattern.\",\"categoriesExplainer\":\"What the categories mean\",\"brand\":\"Brand\",\"brandPrefix\":\"Brand:\",\"everyBrand\":\"Every brand\",\"brandYou\":\"{name} (you)\",\"brandUntracked\":\"{name} (not tracked)\",\"category\":\"Category\",\"categoryPrefix\":\"Category:\",\"anyCategory\":\"Any category\",\"reason\":\"Reason\",\"reasonPrefix\":\"Reason:\",\"anyReason\":\"Any reason\",\"citations\":\"Citations\",\"citationsPrefix\":\"Citations:\",\"anyCitations\":\"Any\",\"bestForChip\":\"Best for {phrase}\",\"remove\":\"Remove\",\"counting\":\"Counting answers…\",\"countAnswers\":\"{count, plural, one {# answer} other {# answers}}\",\"countRatings\":\"{count, plural, one {# brand rating} other {# brand ratings}}\",\"newestFirst\":\"Newest first.\",\"describe\":{\"cnr\":\"that cite your site but leave you out of the recommendations\",\"brandCategory\":{\"top_choice\":\"where AI made {brand} its top choice\",\"one_of_many\":\"where AI recommended {brand} as one of many\",\"generic_mention\":\"where AI named {brand} without evaluating it\",\"cautioned_against\":\"where AI cautioned against {brand}\",\"not_mentioned\":\"where AI did not name {brand}\",\"unclassified\":\"where AI named {brand} but it was not rated\"},\"brand\":\"where AI named {brand}\",\"category\":\"rated {category}\",\"all\":\"for every brand AI named\",\"reason\":\"with the caveat \\\"{reason}\\\"\",\"bestFor\":\"best for {phrase}\"},\"emptyTitle\":\"No answers match these filters\",\"emptyBody\":\"Try a longer window, or clear the brand and reason filters to see every rating.\",\"showing\":\"Showing {from, number} to {to, number} of {total, number}\",\"previousPage\":\"Previous page\",\"nextPage\":\"Next page\",\"citesYourSite\":\"Cites your site\",\"prompt\":\"\\\"{prompt}\\\"\",\"bestFor\":\"Best for {phrases}\",\"notNamedButCited\":\"{brand} is not named in this answer, though it cites your site.\",\"notNamed\":\"{brand} is not named in this answer.\",\"noEvidence\":\"No quote was recorded for this rating.\"}},\"backToDashboard\":\"Back to dashboard\",\"banner\":{\"title\":\"Try the new Brand Dashboard.\",\"titlePerson\":\"Try the new Person Dashboard.\",\"titleCategory\":\"Try the new Category Dashboard.\",\"bodyCategory\":\"The brands AI names in your market at a glance, market by market, with key messages and citations, each one click from its raw data.\",\"enabledCategory\":\"The new Category Dashboard is now your default\",\"body\":\"Your key metrics at a glance — share of voice, competitors, consistency, citations, and AI traffic — each one click from its raw data.\",\"bodyPerson\":\"Your key metrics at a glance — share of voice, peers, identity accuracy, key messages, and earned media — each one click from its raw data.\",\"preview\":\"Preview\",\"makeDefault\":\"Make it my default\",\"dismiss\":\"Dismiss\",\"enabled\":\"The new Brand Dashboard is now your default\",\"enabledPerson\":\"The new Person Dashboard is now your default\",\"error\":\"Could not update dashboard preference\"},\"ribbon\":{\"previewing\":\"You're previewing the new Brand Dashboard — nothing is changed until you make it your default.\",\"previewingPerson\":\"You're previewing the new Person Dashboard — nothing is changed until you make it your default.\",\"previewingCategory\":\"You're previewing the new Category Dashboard. Nothing is changed until you make it your default.\",\"enabledToastCategory\":\"The new Category Dashboard is now your default\",\"makeDefault\":\"Make it my default\",\"exitPreview\":\"Exit preview\",\"switchBack\":\"Switch back to classic dashboard\",\"enabledToast\":\"The new Brand Dashboard is now your default\",\"enabledToastPerson\":\"The new Person Dashboard is now your default\",\"disabledToast\":\"Switched back to the classic dashboard\",\"error\":\"Could not update dashboard preference\"},\"docsLabel\":\"Read the full definition →\",\"details\":\"Details\",\"vsPrevious7\":\"vs previous 7 days\",\"noDailyTracking\":\"daily tracking needs an active project\",\"noData\":\"—\",\"fallbackName\":\"Your brand\",\"fallbackNamePerson\":\"Your profile\",\"freshness\":\"Based on {prompts} prompts × {platforms} platforms · Last measured {when}\",\"soiLabel\":\"Share of Influence\",\"sovLabel\":\"Share of Voice\",\"soiShort\":\"SoI\",\"platforms\":{\"chatgpt\":\"ChatGPT\",\"gemini\":\"Gemini\",\"perplexity\":\"Perplexity\",\"claude\":\"Claude\",\"googleAiOverview\":\"AI Overviews\"},\"states\":{\"baselineTitle\":\"Baseline your AI visibility\",\"baselineBody\":\"Run an AI Visibility Report to see how AI assistants describe {name} — share of voice, competitors, brand consistency, and citations.\",\"baselineBodyPerson\":\"Run an AI Visibility Report to see how AI assistants describe {name} — share of voice against peers, identity accuracy, and the messages that surface.\",\"baselineTitleCategory\":\"Find out who AI names\",\"baselineBodyCategory\":\"A category has no brand of its own, so the report starts the work. It writes the first prompts buyers ask about {name}, then comes back with the brands AI names in the answers.\",\"baselineCta\":\"Run an AI Visibility Report\",\"projectCtaBody\":\"Daily tracking is off — these numbers update only when you run a report. Set up a project to run your prompts every night.\",\"projectCta\":\"Set up a project\"},\"stages\":{\"awareness\":{\"label\":\"Awareness\",\"blurb\":\"Your brand mention rate in answers to problem-framing prompts, before buyers are choosing between vendors. Measured the same way as the other stages but kept out of the headline — it's the leading indicator. Share of Influence tracks whether your key messages shape the answer here.\"},\"consideration\":{\"label\":\"Consideration\",\"blurb\":\"Your brand mention rate in answers to comparison and evaluation prompts.\"},\"decision\":{\"label\":\"Decision\",\"blurb\":\"Your brand mention rate in answers to high-intent, decision-stage prompts.\"}},\"sov\":{\"title\":\"Share of Voice\",\"explainer\":\"Of all the AI answers to your tracked consideration and decision-stage prompts, the share where your brand is mentioned. Excludes brand-identity and comparison prompts — those have their own modules.\",\"brandWideNote\":\"Measured brand-wide; per-market numbers live in Locations.\",\"mentionsCaption\":\"brand mentions, 7 days\",\"sparkCaption\":\"14-day share of voice\",\"noMeasurements\":\"no measurements in the last 7 days\"},\"competitors\":{\"title\":\"Competitor Share of Voice\",\"titlePerson\":\"Peer Share of Voice\",\"titleCategory\":\"Brands in this category\",\"explainerCategory\":\"Every brand AI named when it answered this category's prompts, ranked by the share of completed answers each one appeared in over the last 7 days. Shares do not add up to 100; a single answer usually names several brands.\",\"emptyNoneCategory\":\"No brands yet. Generate prompts and run a report to find out who AI names.\",\"emptyNoneReadOnlyCategory\":\"No brands are being tracked in this category yet.\",\"emptyNoneCtaCategory\":\"Manage brands\",\"emptyPendingCategory\":\"Brands appear after the next daily prompt run or AI report.\",\"captionCategory\":\"Share of answers, last 7 days · {count} brands named in total\",\"allBrandsCategory\":\"All brands\",\"explainer\":\"Each competitor's share of voice across the same prompts, so the number is directly comparable to yours. Compare opens head-to-head verdicts for competitors with comparison prompts running.\",\"explainerPerson\":\"Each tracked peer's share of voice across the same prompts, so the number is directly comparable to yours. Peers are the people you're measured against — added by name, no website needed.\",\"rank\":\"You rank #{rank} of {total}\",\"you\":\"You\",\"vsYou\":\"vs you\",\"compare\":\"Compare\",\"emptyNone\":\"Add competitors to see how your Share of Voice compares.\",\"emptyNoneReadOnly\":\"No competitors are being tracked on this dashboard yet.\",\"emptyNonePerson\":\"Add the people you should be measured against — fellow executives, industry voices, frequent co-mentions.\",\"emptyNoneReadOnlyPerson\":\"No peers are being tracked on this dashboard yet.\",\"emptyNoneCta\":\"Manage competitors\",\"emptyNoneCtaPerson\":\"Manage peers\",\"emptyPending\":\"Competitor comparison appears after the next nightly prompt run or AI report.\",\"emptyPendingPerson\":\"Peer comparison appears after the next daily prompt run or AI report.\",\"seeAll\":\"See all {count}\"},\"locations\":{\"title\":\"Locations\",\"explainerCategory\":\"Each market runs this category's prompts against answers for that place. A category has no share of voice of its own, so every row reports the brand AI names most often there.\",\"rowCategory\":\"{market} · {leader}\",\"captionCategory\":\"Market leader, share of answers, last 7 days\",\"explainer\":\"Share of voice measured separately for each tracked market. Select a location to see its funnel and prompt data.\"},\"locationsPage\":{\"pageTitle\":\"Locations\",\"pageSubtitle\":\"Share of voice market by market, against the location-neutral brand-wide run\",\"pageSubtitleCategory\":\"Who leads each tracked market\",\"introCategory\":\"The same prompts run for every tracked market with its city or region injected. A category has no share of voice of its own, so each market reports its leader, the brand AI names most often there. Open a market for its full brand ranking.\",\"kpiAverageCategory\":\"Average leader share\",\"kpiAverageExplainerCategory\":\"Each market's leading brand share, averaged with equal weight. A low average means no brand has taken a market yet.\",\"colLeader\":\"Leader\",\"colSovCategory\":\"Leader share\",\"tableTitleCategory\":\"Market leaders\",\"tableCaptionCategory\":\"Each market's most recent daily measurement. Open a market for the full brand ranking behind it.\",\"intro\":\"The same prompts run for every tracked market with its city or region injected. Compare the markets against each other and against the brand-wide baseline, then open a market for its funnel and answers.\",\"brandWide\":\"Brand-wide\",\"kpiTracked\":\"Markets tracked\",\"kpiTrackedExplainer\":\"Location children of this brand. Each one runs the parent's prompts with its own location injected, so its share of voice is measured separately.\",\"kpiTrackedCaption\":\"{count} with data\",\"kpiAverage\":\"Average share of voice\",\"kpiAverageExplainer\":\"Each market's latest measured share of voice, averaged with equal weight. A large market and a small one count the same here.\",\"kpiAverageCaption\":\"equal weight per market\",\"kpiSpread\":\"Spread across markets\",\"kpiSpreadExplainer\":\"The gap in percentage points between your strongest and weakest measured market. A widening spread means the brand is traveling unevenly.\",\"kpiSpreadCaption\":\"strongest minus weakest\",\"trendTitle\":\"Share of voice by market\",\"trendCaption\":\"The dashed line is the location-neutral brand-wide run — the baseline each market is read against.\",\"trendTopN\":\"Charting the {count} strongest of {total} markets; the table below covers them all.\",\"tableTitle\":\"Latest measurement by market\",\"tableCaption\":\"Each market's most recent daily measurement. Open a market to read the prompts and answers behind it.\",\"colLocation\":\"Market\",\"colSov\":\"Share of voice\",\"colMentions\":\"Mentions\",\"colCitations\":\"Citations\",\"colPrompts\":\"Prompts\",\"emptyTitle\":\"No markets tracked yet\",\"emptyBody\":\"Add the cities or regions you want measured separately. Each one runs this brand's prompts with its own location injected, so you can compare share of voice between markets.\",\"emptyBodyReadOnly\":\"No markets are being measured separately for this brand yet.\",\"emptyCta\":\"Add locations\"},\"consistency\":{\"title\":\"Brand Consistency\",\"explainer\":\"How similarly AI platforms describe your brand across runs (0–100). Message drift tracks how far today's story has moved from your established themes — lower is better.\",\"drift\":\"Message drift\",\"driftSetup\":\"Set up brand identity prompts to track message drift — how far AI's story about you is moving from your own.\",\"driftSetupReadOnly\":\"No brand identity prompts are being tracked yet, so there is no message-drift reading.\",\"empty\":\"No consistency data yet — run an AI Visibility Report to baseline how AI describes you.\",\"emptyReadOnly\":\"No consistency data yet. It appears after the first AI Visibility Report.\"},\"identityAccuracy\":{\"title\":\"Identity accuracy\",\"explainer\":\"How accurately AI describes you — role, employer, biography — scored against neutral primary sources. Flags catch confusion with same-name people and facts that have gone stale.\",\"vsPreviousReport\":\"vs previous check\",\"reportCadence\":\"updates with each identity check\",\"confusions\":\"{count, plural, =1 {1 identity confusion} other {# identity confusions}}\",\"outdatedFacts\":\"{count, plural, =1 {1 model with outdated facts} other {# models with outdated facts}}\",\"empty\":\"No identity analysis yet — run an AI Visibility Report to baseline how accurately AI describes you.\",\"emptyReadOnly\":\"No identity analysis yet. It appears after the first AI Visibility Report.\",\"emptyCta\":\"Run an AI Visibility Report\"},\"messages\":{\"title\":\"Key Messages\",\"explainer\":\"How often each message you want AI to repeat — and each claim you'd rather it didn't — actually surfaces in tracked answers. Matching is semantic, so paraphrases count.\",\"tracked\":\"messages tracked\",\"moverUp\":\"Biggest gain\",\"moverDown\":\"Biggest drop\",\"emptyNone\":\"Add the messages you want AI to repeat, and daily tracking will measure how often each one surfaces.\",\"emptyNoneReadOnly\":\"No key messages are being tracked on this dashboard yet.\",\"emptyNoneCta\":\"Add key messages\",\"emptyPending\":\"Pull-through appears after the next daily prompt run or AI report.\"},\"citations\":{\"goalTitle\":\"Goal impact\",\"goalExplainer\":\"The share of tracked AI citations driven by the placements and pages your project goals target — proof that PR and content work is moving AI answers.\",\"goalCaption\":\"{matched} of {total} tracked citations driven by goals across {projects, plural, =1 {1 project} other {# projects}} · last 7 days\",\"mixTitle\":\"Citations\",\"mixExplainer\":\"The mix of AI citations pointing at media you own ve
2rsus earned coverage. Set project goals to measure how much of it your work is driving.\",\"mixAria\":\"Owned media {owned}%, earned media {earned}%\",\"mixCaption\":\"Owned {owned}% · Earned {earned}%\",\"mixDelta\":\"±{delta} pts vs previous 7 days\",\"empty\":\"No citation data yet — citations appear once your prompts run.\"},\"aiTraffic\":{\"title\":\"AI Traffic\",\"explainer\":\"Real visits measured on your site: AI agents reading your pages, and humans clicking through from AI answers.\",\"agents\":\"AI agent visits\",\"clickthroughs\":\"Clickthroughs from AI\",\"setupBody\":\"Install the Spyglasses tracker to count AI agent visits and human clickthroughs from AI answers.\",\"setupCta\":\"Set up tracking\"},\"visibility\":{\"pageTitle\":\"Visibility\",\"pageSubtitle\":\"Share of voice across the buyer's journey, with the prompts and answers behind every number\",\"headlineLocation\":\"Share of Voice · {location}\",\"headlineCaption\":\"{mentions} brand mentions at consideration \u0026 decision in range · excludes brand-identity \u0026 comparison prompts\",\"leadingIndicator\":\"Leading indicator\",\"bracketLabel\":\"= Share of Voice\",\"ciToggle\":\"90% confidence range\",\"ciNote\":\"Shaded band = ±margin of error (90% confidence, from answers per day). Where two days' bands overlap, the change is not significant.\",\"answerMath\":\"Answer math\",\"answerMathValue\":\"{mentions} of {answers} answers\",\"promptsTested\":\"Prompts tested\",\"viewAnswers\":\"View raw prompt answers\",\"projectFilterNote\":\"Project filter applied to prompt-based numbers. Share of Influence (key-message pull-through) is measured property-wide.\",\"headlineNoMeasurements\":\"No measurements in this date range — nothing ran between these dates. Widen the range to see the most recent data.\",\"headlineNoMeasurementsSince\":\"No measurements in this date range — last measured {when}. Widen the range to see it.\"},\"competitorsPage\":{\"intro\":\"Ranked against every tracked competitor on the same prompt set. Bars are colored by the gap to you; the chart follows each competitor over time.\",\"introPerson\":\"Ranked against every tracked peer on the same prompt set. Bars are colored by the gap to you; the chart follows each peer over time.\",\"introCategory\":\"Every brand AI named when it answered prompts about this category. Share of answers over the selected window; the values do not add up to 100 because one answer usually names several brands.\",\"filterAllCategory\":\"All brands\",\"trendTitleCategory\":\"Share of answers over time\",\"pageSubtitleCategory\":\"Who AI names when it answers prompts about this market\",\"marketScope\":\"Scoped to {market}\",\"marketsLabel\":\"Market\",\"allMarkets\":\"All markets\",\"trendTitle\":\"Share of voice over time\",\"filterAll\":\"All competitors\",\"filterAllPerson\":\"All peers\",\"headToHead\":\"Head-to-head\",\"marketsHint\":\"Each market is its own page with its own answers.\"},\"brandsFilters\":{\"label\":\"Filters\",\"hint\":\"These change the numbers on this page.\",\"legacyBasis\":\"This property's stored history was recorded before detail by platform, stage and tag existed, so the filters are switched off and the ranking below covers everything. Detail starts with the next measurements.\",\"legacyScope\":\"Ranked from the most recent measurement, not from a window.\",\"windowPrefix\":\"Window:\",\"projectPrefix\":\"Project:\",\"project\":\"Project\",\"allProjects\":\"All projects\",\"stagePrefix\":\"Stage:\",\"stage\":\"Stage\",\"allStages\":\"All stages\",\"tagPrefix\":\"Tag:\",\"tag\":\"Prompt tag\",\"allTags\":\"All tags\",\"platform\":\"Platform\",\"allPlatforms\":\"All platforms\",\"clear\":\"Clear filters\",\"counting\":\"Counting answers…\",\"counts\":\"{answers, plural, one {# answer} other {# answers}} across {days, plural, one {# measured day} other {# measured days}}.\",\"countsNone\":\"No answers in this slice yet.\",\"thin\":\"Fewer than {threshold} answers. One extra mention moves a brand several points here, so read the counts rather than the ranking until this slice fills out.\",\"dimensionStart\":\"Detail by platform and tag starts on {date}. Earlier days in this window were measured before it was recorded, so they are left out of this filtered view.\",\"emptyTitle\":\"Nothing has run in this slice yet\",\"emptyBody\":\"These filters match prompts that have not run together yet. The unfiltered numbers are not shown here on purpose: they would answer a different question than the one you asked.\",\"emptyBodyUnfiltered\":\"No answers were stored in this window.\",\"scope\":{\"metric\":\"Share of voice\",\"metricPerson\":\"Share of voice\",\"metricCategory\":\"Share of answers\",\"onAllPlatforms\":\"on all platforms\",\"onPlatform\":\"on {platform}\",\"stage\":\"{stage} prompts\",\"tag\":\"prompts tagged {tag}\",\"stageAndTag\":\"{stage} prompts tagged {tag}\",\"project\":\"project {project}\",\"market\":\"{market}
2 only\",\"window\":\"last {days} days\"}},\"brandsTable\":{\"sorColumn\":\"Share of recommendation\",\"topChoiceShareColumn\":\"Top-choice share\",\"recColumnsHint\":\"From how AI recommends each brand in the same slice. Shares add up to 100% across every brand AI recommended, tracked or not.\",\"cardSor\":\"Share of recommendation {value}\",\"cardTopChoiceShare\":\"Top-choice share {value}\",\"title\":\"Ranked field\",\"subtitle\":\"Every brand named in this slice, with the answer counts behind each share. Tags overlap, so a tag slice is not a part of a whole; it is its own measurement.\",\"entity\":\"Competitor\",\"entityPerson\":\"Peer\",\"entityCategory\":\"Brand\",\"rank\":\"#\",\"namedIn\":\"Named in\",\"namedInValue\":\"{named} of {total}\",\"cardNamedIn\":\"named in {named} of {total} answers\",\"vsPrevious\":\"vs previous {days} days\",\"view\":\"View\",\"openAnswers\":\"Prompts and answers\",\"notCharted\":\"not charted\",\"noDelta\":\"No comparable earlier window.\"},\"brandsKpi\":{\"leader\":\"Leader in this slice\",\"leaderExplainer\":\"The brand named in the largest share of answers that match the current filters. A leader below about 15% means AI has no default answer yet in this slice.\",\"named\":\"Competitors named\",\"namedPerson\":\"Peers named\",\"namedCategory\":\"Brands named\",\"namedExplainer\":\"Distinct brands named at least once in this slice. Many of them means AI is still sampling widely rather than settling on a shortlist.\",\"namedUncharted\":\"{count, plural, one {# outside the charted set} other {# outside the charted set}}\",\"namedAllCharted\":\"all charted\",\"answers\":\"Answers in this slice\",\"answersExplainer\":\"Completed AI answers matching the current filters. Every share on this page is measured against this number, and it is the number to check before trusting a ranking.\",\"answersCaption\":\"{days, plural, one {# day measured} other {# days measured}}\"},\"brandsChart\":{\"colourNote\":\"Each brand keeps its color whatever is filtered, so a line never changes meaning between views.\",\"note\":\"Lines do not add up to 100; one answer can name several brands. A gap in a line is a day this slice was not recorded, not a drop to zero.\",\"unchartedNote\":\"{count, plural, one {# more brand was named in this slice and is listed in the table below.} other {# more brands were named in this slice and are listed in the table below.}}\"},\"brandsExport\":{\"scope\":\"Scope\",\"hint\":\"Export writes what these filters show, not the whole property.\"},\"brandsAnswers\":{\"open\":\"View prompts and answers\",\"title\":\"Prompts and answers in this slice\",\"titleFocused\":\"{brand} in this slice\",\"headline\":\"{answers, plural, one {# answer} other {# answers}} in this slice.\",\"headlineFocused\":\"{brand} was named in {named} of {total} answers in this slice.\",\"emptySlice\":\"Nothing has run in this slice yet, so there are no answers to read. Widen the window or clear a filter.\",\"emptyDay\":\"No stored answers for {date} with the current filters.\",\"day\":\"Day\",\"dayPrefix\":\"Day:\",\"dayCounts\":\"{date}: {prompts, plural, one {# prompt} other {# prompts}} in this slice. Answers are stored per day, so the counts above cover the whole window.\",\"sort\":\"Sort prompts\",\"sortPrefix\":\"Sort:\",\"sortNamed\":\"Named {brand} most\",\"sortBrands\":\"Most brands named\",\"sortPrompt\":\"Prompt A to Z\",\"focusedOn\":\"Focused on {brand}\",\"clearFocus\":\"clear\",\"pillNamed\":\"Named\",\"pillNotNamed\":\"Not named\",\"pillNoAnswer\":\"No answer\",\"pillBrands\":\"{count, plural, one {# brand} other {# brands}}\",\"back\":\"Back\",\"copyPrompt\":\"Copy prompt\",\"promptCopied\":\"Prompt copied\",\"brandsNamedLabel\":\"Brands named per platform\",\"noStoredAnswers\":\"No answers were stored for this prompt on {date}.\",\"stage\":{\"awareness\":\"Awareness\",\"consideration\":\"Consideration\",\"decision\":\"Decision\"}},\"comparisonPage\":{\"pageTitle\":\"Head-to-head comparison\",\"back\":\"Back to competitors\",\"backPerson\":\"Back to peers\",\"competitor\":\"Competitor\",\"notFound\":\"This competitor no longer exists.\",\"empty\":\"No comparison data for {competitor} yet. Comparison prompts ask AI to weigh you directly against a competitor.\",\"emptyReadOnly\":\"No comparison data for {competitor} yet. Comparison prompts ask AI to weigh you directly against a competitor.\",\"emptyCta\":\"Create a comparison prompt\",\"favoredHeadline\":\"How often AI favors {competitor}\",\"favoredCaption\":\"favored in {favored} of {total} comparison answers (latest run)\",\"trendTitle\":\"Favored rate over time\",\"favoredFor\"
2:\"Favored for\",\"strengths\":\"Strengths\",\"weaknesses\":\"Weaknesses\"},\"seoOpps\":{\"title\":\"SEO opportunities\",\"explainer\":\"Searches AI ran to ground its answers where competitors ranked and you didn't — from the most recent grounding-gap run. The fastest content wins.\",\"hrefLabel\":\"Explore\",\"caption\":\"searches where AI looked and didn't find you · run of {date}\",\"captionNoDate\":\"searches where AI looked and didn't find you\",\"empty\":\"Gap data appears once your prompts produce web-grounded answers.\",\"noGaps\":\"No open gaps on the latest run — you ranked everywhere AI looked.\",\"itemDetail\":\"best competitor ranks #{rank} · used {uses}×\",\"itemDetailNoRank\":\"used {uses}×\"},\"consultations\":{\"title\":\"AI consultations\",\"explainer\":\"How often AI went straight to a specific site — searching `site:yourdomain.com …` instead of searching the open web. Choosing your site means it already treats you as a source worth reading. Brand-name prompts are excluded, since those are expected to point at you.\",\"hrefLabel\":\"Explore\",\"ownLabel\":\"consultations of your site\",\"competitorLabel\":\"{count, plural, =1 {# competitor consultation} other {# competitor consultations}} in the same window\",\"thirdPartyLabel\":\"{count, plural, =1 {# third-party consultation} other {# third-party consultations}}\",\"absenceCallout\":\"AI consulted competitor sites {count, plural, =1 {# time} other {# times}} and never went to yours. It has a source it trusts for these questions, and you're not it.\",\"rateLabel\":\"{percent}% of AI answers consulted your site directly\",\"empty\":\"Consultation data appears once AI platforms run grounded searches for your prompts.\",\"caption\":\"vs previous {days} days\"},\"seoPage\":{\"pageSubtitle\":\"The searches AI runs to ground its answers: where you rank, which gaps are moving, and which pages to optimize next.\",\"pageSubtitleReadOnly\":\"The searches AI runs to ground its answers: where this brand ranks and which gaps are moving.\",\"intro\":\"Every grounding search your tracked prompts produced. Sort by movement to see what changed since the last run, or by impact to see what to fix first.\",\"kpiTracked\":\"Tracked searches\",\"kpiTrackedExplainer\":\"Grounding searches observed across your tracked prompts' fan-outs. These are the searches AI actually ran to answer them.\",\"kpiTrackedCaption\":\"latest run · {date}\",\"kpiTrackedCaptionNoDate\":\"no runs recorded yet\",\"kpiGaps\":\"Open gaps\",\"kpiGapsExplainer\":\"Searches where you rank outside the top 30 (or not at all) while a competitor ranks. Down is good.\",\"kpiGapsCaption\":\"vs previous run\",\"kpiHighImpact\":\"High-impact gaps\",\"kpiHighImpactExplainer\":\"Open gaps on searches that two or more of your tracked prompts fan out into — the same gap costs you on several answers.\",\"kpiMovers\":\"Movers this period\",\"kpiMoversExplainer\":\"Searches whose rank band changed since their own previous run. Runs are weekly, so a search that skipped a week is compared against the last run it appeared in.\",\"kpiAvgImpact\":\"Avg impact\",\"kpiAvgImpactExplainer\":\"Mean impact score across your open gaps: how many tracked prompts lean on the search, multiplied by how many competitors rank for it, weighted by how high the best one sits. The same score your AI Visibility report shows. Searches you already rank for score nothing.\",\"bandsTitle\":\"Rank bands over time\",\"bandsCaption\":\"Counts the searches measured in each run — not every tracked search is measured in every run.\",\"noBandHistory\":\"No run history in this window yet. Grounding-gap runs are weekly, so try a wider range.\",\"moversTitle\":\"Moving queries\",\"noMovement\":\"No band movement since the previous run.\",\"tableTitle\":\"All tracked searches\",\"tableCount\":\"{count, plural, =1 {1 after filters} other {# after filters}}\",\"searchPlaceholder\":\"Search queries…\",\"statusLabel\":\"Status\",\"statusAll\":\"All searches\",\"statusGaps\":\"Gaps only\",\"statusRanked\":\"Ranked only\",\"bandLabel\":\"Band\",\"bandAll\":\"All bands\",\"platformLabel\":\"Platform\",\"platformAll\":\"All platforms\",\"competitorLabel\":\"Competitor\",\"competitorAll\":\"Any competitor\",\"sortLabel\":\"Sort\",\"sortImpact\":\"Impact\",\"sortMovement\":\"Movement\",\"sortUsage\":\"Usage\",\"colQuery\":\"Query\",\"colRank\":\"Your rank\",\"colMovement\":\"Movement\",\"colCompetitor\":\"Be
2st competitor\",\"colPlatforms\":\"Platforms\",\"colUsage\":\"Usage\",\"colImpact\":\"Impact\",\"colImpactExplainer\":\"How much visibility this gap is worth: how many tracked prompts lean on the search, multiplied by how many competitors rank for it, weighted by how high the best one sits. The same score your AI Visibility report shows. Searches you already rank for score nothing.\",\"colActions\":\"Actions\",\"bandsMoved\":\"{count, plural, =1 {1 band} other {# bands}}\",\"improvedBands\":\"{count, plural, =1 {improved 1 band} other {improved # bands}}\",\"declinedBands\":\"{count, plural, =1 {declined 1 band} other {declined # bands}}\",\"impactShort\":\"impact {score}\",\"noneRanked\":\"none ranked\",\"optimize\":\"Optimize\",\"filtersEmpty\":\"No searches match the current filters.\",\"clearFilters\":\"Clear all filters\",\"emptyTitle\":\"No grounding-search runs yet\",\"emptyBody\":\"Weekly grounding-gap runs map the searches AI performs for your tracked prompts and where your site ranks in them. Set up a project to start the weekly cadence.\",\"emptyBodyReadOnly\":\"Weekly grounding-gap runs map the searches AI performs for the tracked prompts and where this site ranks in them. Nothing has been measured yet.\",\"emptyCta\":\"Set up a project\",\"noDataTitle\":\"No grounding data yet\",\"noDataBody\":\"Your prompts haven't produced web-grounded answers yet. Grounding searches appear once AI runs a web search to answer one of them.\",\"noGapsBanner\":\"Every tracked grounding search has you in the top 30 — no open gaps this run. The table shows where each rank stands.\",\"bands\":{\"top3\":\"Top 3\",\"top10\":\"Top 10\",\"top20\":\"Top 20\",\"top30\":\"Top 30\",\"unranked\":\"Unranked\"}},\"seoQueryPage\":{\"pageTitle\":\"Grounding search history\",\"pageSubtitle\":\"Used by {uses} tracked prompts · impact {impact} · every recorded run with its standings.\",\"backToSeo\":\"Back to SEO opportunities\",\"levelLabel\":\"L3 · raw data\",\"loadingTitle\":\"Loading the run history…\",\"errorTitle\":\"Grounding search history\",\"errorBody\":\"We couldn't load this search's run history. Try again in a moment.\",\"notFoundTitle\":\"Search not available\",\"notFoundBody\":\"This grounding search either no longer exists or belongs to a different property.\",\"nowLabel\":\"Now\",\"movementLabel\":\"Movement\",\"noBandChange\":\"— no band change\",\"competitorHolds\":\"{name} holds #{rank}\",\"chartTitle\":\"{count, plural, =1 {Your rank across 1 run} other {Your rank across # runs}}\",\"chartHint\":\"up is better · gaps = outside the top 30\",\"chartSeries\":\"Your rank\",\"standingsTitle\":\"Tracked competitor standings\",\"google\":\"Google\",\"brave\":\"Brave\",\"notRanked\":\"not ranked\",\"runsTitle\":\"Run history\",\"runsHint\":\"newest first\",\"noRuns\":\"No runs recorded for this search yet.\",\"neverRankedChart\":\"{count, plural, one {Not in the top 30 in the one stored run.} other {Not in the top 30 in any of the # stored runs.}} The runs below show who held the ranks instead.\",\"sources\":{\"weekly\":\"weekly run\",\"report\":\"report run\"},\"gapChip\":\"Gap\",\"openAnswerRecord\":\"Open answer record\",\"optimize\":\"Optimize a page\"},\"siteReadiness\":{\"title\":\"Site readiness\",\"explainer\":\"How ready your pages are to be read, extracted, and cited by AI — from your most recent site audit, with the weakest dimensions first.\",\"hrefLabel\":\"Site audit\",\"caption\":\"last audit {date} · {pages} pages\",\"empty\":\"Run a site audit to score how well AI can read and cite your pages.\",\"emptyReadOnly\":\"No site audit has been run for this site yet.\",\"emptyCta\":\"Run a site audit\",\"dimensions\":{\"staticContent\":\"Static content\",\"performance\":\"Performance\",\"structuredData\":\"Structured data\",\"eeat\":\"E-E-A-T\",\"readability\":\"Readability\",\"citationReadiness\":\"Citation readiness\",\"accessibility\":\"Accessibility\"}},\"siteReadinessPage\":{\"pageSubtitle\":\"Every finding from your latest audit, what each dimension is doing audit-over-audit, and a way to re-check the pages you have fixed.\",\"pageSubtitleReadOnly\":\"Every finding from the latest audit, and what each dimension is doing audit-over-audit.\",\"intro\":\"The full finding list across every page in y
2our most recent audit. Filter to what you want to work on, fix it, then select those pages and re-audit to verify the fix landed.\",\"introReadOnly\":\"The full finding list across every page in the most recent audit. Filter it to see what each dimension is doing and which pages are holding the score back.\",\"kpiScore\":\"Readiness score\",\"kpiScoreExplainer\":\"Overall site readiness across the seven audited dimensions, from your most recent audit.\",\"kpiScoreCaption\":\"vs previous audit\",\"kpiFindings\":\"Open findings\",\"kpiFindingsExplainer\":\"Checks the latest audit flagged red or yellow across all pages. Passing checks are excluded — switch the status filter to see them. Down is good.\",\"kpiFindingsCaption\":\"{red} critical · {yellow} warnings\",\"kpiPages\":\"Pages audited\",\"kpiPagesExplainer\":\"Pages crawled and scored in the most recent audit run.\",\"kpiLastAudit\":\"Last audit\",\"kpiLastAuditExplainer\":\"When the most recent audit completed. Re-audit fixed pages any time — it re-runs only what you select.\",\"kpiLastAuditCaption\":\"{count, plural, =1 {1 audit on record} other {# audits on record}}\",\"trendsTitle\":\"Dimensions, audit over audit\",\"trendsExplainerLabel\":\"How are these trends computed?\",\"trendsExplainer\":\"Each audit can cover a different page mix, so every trend here compares only the pages shared by the longest recent run of audits — and only those with a score for that dimension, since some checks are skipped by page intent. A score moves because pages changed, never because the sample did. Per-audit totals still count the full run.\",\"trendCaption\":\"{from} → {to} · {audits, plural, =1 {1 audit} other {# audits}} · same {pages, plural, =1 {1 page} other {# pages}}\",\"trendCaptionNoDates\":\"{audits, plural, =1 {1 audit} other {# audits}} · same {pages, plural, =1 {1 page} other {# pages}}\",\"singleAuditTrendNote\":\"Trends appear after your second audit — there is nothing to compare a first run against.\",\"noMatchedCohort\":\"No recent audits share a page yet, so there is no comparable trend to draw. Re-auditing the same pages builds one.\",\"tableTitle\":\"Findings\",\"tableCount\":\"{count, plural, =1 {1 after filters} other {# after filters}}\",\"searchPlaceholder\":\"Search page paths…\",\"dimensionLabel\":\"Dimension\",\"dimensionAll\":\"All dimensions\",\"dimensionOther\":\"Other\",\"statusLabel\":\"Status\",\"statusOpen\":\"Open findings\",\"statusRed\":\"Critical only\",\"statusYellow\":\"Warnings only\",\"statusGreen\":\"Passing only\",\"statusAll\":\"All findings\",\"level\":{\"red\":\"Critical\",\"yellow\":\"Warning\",\"green\":\"Passing\"},\"colPage\":\"Page\",\"colDimension\":\"Dimension\",\"colStatus\":\"Status\",\"colFinding\":\"Finding\",\"colExpand\":\"Expand finding\",\"selectPage\":\"Select {path} for re-audit\",\"selectAllOnPage\":\"Select every page listed on this table page\",\"cannotReaudit\":\"This page is no longer in your page list, so it cannot be re-audited. Re-crawl the site to bring it back.\",\"selectedCount\":\"{count, plural, =1 {1 page selected} other {# pages selected}}\",\"costPages\":\"re-audit uses {count} of your {remaining} remaining monthly audit pages\",\"costCredits\":\"re-audit uses {credits, plural, =1 {1 credit} other {# credits}} of your {balance} remaining\",\"budgetShortfall\":\"Not enough audit pages or credits left for this selection. Reduce the selection or top up to continue.\",\"clearSelection\":\"Clear\",\"reauditCta\":\"{count, plural, =1 {Re-audit 1 page} other {Re-audit # pages}}\",\"confirmTitle\":\"{count, plural, =1 {Re-audit 1 page?} other {Re-audit # pages?}}\",\"confirmBody\":\"Spyglasses will re-crawl and re-score only the selected pages so you can verify your fixes landed. Scores and trends update when the run completes.\",\"confirmCancel\":\"Cancel\",\"confirmStart\":\"Start re-audit\",\"reauditQueued\":\"{count, plural, =1 {Re-audit queued for 1 page} other {Re-audit queued for # pages}}\",\"reauditFailed\":\"Could not start the re-audit. Please try again.\",\"auditInProgress\":\"An audit is in progress — {percent}% complete. Scores, findings, and trends refresh when it finishes.\",\"filtersEmpty\":\"No findings match the current filters.\",\"clearFilters\":\"Clear all filters\",\"emptyTitle\":\"No completed site audit yet\",\"emptyBody\":\"An audit crawls your pages the way AI does and scores seven dimensions of citation readiness — then this page turns the findings into a work list.\",\"emptyBodyReadOnly\":\"No site audit has been run yet. An audit crawls the site the way AI does and scores seven dimensions of citation readiness.\",\"emptyCta\":\"Run your first audit\",\"openManager\":\"Open the full audit manager\",\"costUnlimited\":\"re-audit covers {count, plural, =1 {1 page} other {# pages}} — your plan includes unlimited audit pages\"},\"publishers\":{\"title\":\"Publishers\",\"explainer\":\"The sites AI cites when it answers this category's prompts, over the last 7 days. The dots show which tracked brands each site's cited pages name, in the same colors as the Brands card.\",\"hrefLabel\":\"All publishers\",\"caption\":\"publishers cited, last 7 days\",\"footnote\":\"Citations, last 7 days. Dots are the tracked brands each site's cited pages name.\",\"empty\":\"No publishers yet. After the first run, this shows the sites AI cites for this category and which brands they name.\",\"emptyCta\":\"Add prompts\"},\"publishersPage\":{\"pageSubtitle\":\"The sites AI engines cite when they answer prompts about {category}, and which brands those sites carry.\",\"windowLabel\":\"Window\",\"windowDays\":\"{days} days\",\"platformLabel\":\"Platform\",\"platformAll\":\"All platforms\",\"promptTypesLabel\":\"Prompt types\",\"promptTypesAll\":\"All prompt types\",\"promptTypesSelected\":\"{count, plural, one {# prompt type} other {# prompt types}}\",\"scopeLoading\":\"Counting citations…\",\"scopeEmpty\":\"No citations in this view yet.\",\"scopeCounts\":\"{citations, plural, one {# citation} other {# citations}} from {answers, plural, one {# answer} other {# answers}} across {platforms, plural, one {# platform} other {# platforms}}\",\"scopeOnPlatform\":\"on {platform}\",\"scopePromptTypes\":\"{types} prompts only\",\"scopeWindow\":\"last {days} days\",\"resetFilters\":\"Reset filters\",\"thinWarning\":\"Fewer than {threshold} citations so far. One more citation can reorder the chart and the table, so read the counts rather than the ranking until more answers come in.\",\"emptyTitle\":\"No publishers yet\",\"emptyBody\":\"This category was just created, so AI has not answered its prompts yet. After the first run, this page lists every site AI cites and which of your tracked brands each one names.\",\"emptyBodyReadOnly\":\"AI has not answered this category's prompts yet. After the first run, this page lists every site AI cites and which of the tracked brands each one names.\",\"emptyCta\":\"Add prompts\",\"noDataTitle\":\"Nothing cited in this window\",\"noDataBody\":\"None of the answers in this window cited a source. Try a longer window.\",\"filtersEmptyTitle\":\"No citations match these filters\",\"filtersEmptyBody\":\"Nothing was cited on this platform or for these prompt types in the window. Reset the filters to 
2see every publisher.\",\"reachTitle\":\"Whose story publishers tell\",\"reachBody\":\"How many of the {count} independent publishers in this view name each tracked brand on the pages AI cited. Click a brand to list only the publishers that carry it.\",\"reachEmpty\":\"No cited page names a tracked brand yet.\",\"reachFootnote\":\"Colors match the Brands page. Brands outside the six largest are gray. A publisher that names several brands counts once for each, so the bars do not add up.\",\"reachTail\":\"Also named by fewer publishers:\",\"reachBarLabel\":\"Publishers carrying\",\"reachBarAria\":\"{name}: {count} of {total} publishers\",\"facetsTitle\":\"What kind of sites they are\",\"facetsBody\":\"Publishers in the table below, by classification. Click a segment to filter.\",\"facetMediaType\":\"Media type\",\"facetAuthority\":\"Source authority\",\"facetContentFormat\":\"Content format\",\"facetPlatform\":\"Platform\",\"facetFormatNote\":\"One publisher can be cited in several formats.\",\"facetPlatformNote\":\"Sets the platform filter above.\",\"tableTitle\":\"Publishers\",\"tableCount\":\"{shown} of {total}\",\"includeOwned\":\"Include brand-owned sites\",\"chipsShowing\":\"Showing\",\"chipCarries\":\"Carries {brand}\",\"chipRemove\":\"Remove filter\",\"clearAll\":\"Clear all\",\"filtersEmpty\":\"No publishers match these filters.\",\"clearAllFilters\":\"Clear all filters\",\"colBrandsCarried\":\"Brands carried\",\"noTrackedBrands\":\"No tracked brands\",\"brandsAria\":\"Names {count, plural, one {# tracked brand} other {# tracked brands}}: {list}\",\"ownSite\":\"{name}'s own site\",\"ownedTitle\":\"Brand-owned sites\",\"ownedExplainer\":\"Domains that belong to one of the tracked brands. AI citing a brand's own site means it trusts that brand to describe itself. These sites are left out of the publisher counts above.\",\"ownedEmpty\":\"No tracked brand's own site was cited in this view.\",\"ownedSummary\":\"{owned} of {total} citations went to a tracked brand's own site.\",\"seeEveryCitation\":\"See every citation\",\"seeEveryCitationBody\":\"The raw citations behind every number on this page, by day, page and prompt.\",\"drawerIndependent\":\"independent\",\"drawerCitations\":\"Citations, last {days} days\",\"drawerLastCitedToday\":\"last cited today\",\"drawerLastCitedDays\":\"last cited {days}d ago\",\"drawerSeriesDaily\":\"Citations per day in this window\",\"drawerSeriesWeekly\":\"Citations per week in this window\",\"drawerCitedOn\":\"Cited on\",\"drawerBrandsTitle\":\"Brands named on the cited pages\",\"drawerBrandsNone\":\"None of the tracked brands are named on the pages AI cited from this site. It shapes how AI describes the category without carrying any brand's story.\",\"drawerBrandsCount\":\"{count} of {total}\",\"drawerBrandsFootnote\":\"Citations whose page names the brand. One page can name several brands.\",\"drawerClassification\":\"Classification\",\"drawerMediaType\":\"Media type\",\"drawerAuthority\":\"Authority\",\"drawerFormats\":\"Formats cited\",\"drawerSamplePages\":\"Sample cited pages\",\"drawerSurfacedBy\":\"surfaced by “{prompt}”\",\"drawerNoPages\":\"No cited pages in this window.\",\"drawerOwnedNote\":\"This is {name}'s own site, so it is not an outreach target. It counts toward Brand-owned sites, not the publisher totals.\",\"drawerIgnoredNote\":\"Ignored for outreach. It still counts in every number on this page.\",\"drawerIgnoreHint\":\"Ignore a site that should never be an outreach target. It still counts in every number on this page.\",\"drawerStopIgnoring\":\"Stop ignoring\",\"drawerIgnore\":\"Ignore publisher\",\"drawerEveryCitation\":\"Every citation from this site\"},\"earnedMedia\":{\"title\":\"Earned media opportunities\",\"explainer\":\"Third-party sources AI already trusts that mention your competitors but not you. Your PR outreach shortlist, straight from the citation data.\",\"explainerPerson\":\"Third-party sources AI already trusts that mention your peers but not you: podcasts, expert roundups, trade press. Your personal-PR outreach shortlist, straight from the citation data.\",\"hrefLabel\":\"Citations\",\"caption\":\"outlets citing competitors — not you\",\"captionPerson\":\"outlets citing your peers — not you\",\"citations\":\"{count} citations\",\"empty\":\"No competitor-only outlets in the current citation data — new gaps appear as prompts run.\",\"emptyPerson\":\"No peer-only outlets in the current citation data — new gaps appear as prompts run.\",\"mediaTypes\":{\"earned_press\":\"Press\",\"earned_mention\":\"Mention\",\"review_platform\":\"Review platform\",\"social_community\":\"Community\",\"reference\":\"Reference\",\"video_platform\":\"Video\",\"third_party\":\"Third party\"}},\"earnedMediaPage\":{\"pageSubtitle\":\"Outlets AI already trusts that cite your competitors but not you — with the citation data behind every pitch.\",\"pageSubtitlePerson\":\"Outlets AI already trusts that cite your peers but not you — with the citation data behind every pitch.\",\"pageSubtitleReadOnly\":\"Outlets AI already trusts that cite competitors but not this brand — with the citation data behind each one.\",\"intro\":\"Every publisher AI pulled from for your tracked prompts in this window. Find the ones carrying competitors and not you, then hand them to a PR project.\",\"introReadOnly\":\"Every publisher AI pulled from for the tracked prompts in this window, and which of them carry competitors but not you.\",\"introPerson\":\"Every publisher AI pulled from for your tracked prompts in this window. Find the ones carrying peers and not you, then hand them to a PR project.\",\"introReadOnlyPerson\":\"Every publisher AI pulled from for the tracked prompts in this window, and which of them carry peers but not you.\",\"kpiOpportunities\":\"Opportunity sources\",\"kpiOpportunitiesExplainer\":\"Independent outlets AI cites for your tracked prompts whose pages mention at least one competitor and never your brand. Your outreach shortlist.\",\"kpiOpportunitiesExplainerPerson\":\"Independent outlets AI cites for your tracked prompts whose pages mention at least one peer and never you. Your outreach shortlist.\",\"kpiOpportunitiesCaption\":\"of {count} cited sources\",\"kpiCompetitorCitations\":\"Citations they gave competitors\",\"kpiCompetitorCitationsPerson\":\"Citations they gave peers\",\"kpiCompetitorCitationsExplainer\":\"Citations those opportunity sources earned in this window — visibility going to someone else.\",\"kpiCompetitorCitationsCaption\":\"across {count} outlets\",\"kpiHidden\":\"Hidden earned media\",\"kpiHiddenExplainer\":\"Cited pages that mention your brand in their text without the answer crediting you — wins your citation counts don't show.\",\"kpiHiddenExplainerPerson\":\"Cited pages that mention you by name in their text without the answer crediting you — wins your citation counts don't show.\",\"kpiHiddenCaption\":\"of {count} sources that mention you\",\"kpiCitingYou\":\"Sources mentioning you\",\"kpiCitingYouExplainer\":\"Independent outlets in the citation pool whose cited pages mention your brand.\",\"kpiCitingYouExplainerPerson\":\"Independent outlets in the citation pool whose cited pages mention you by name.\",\"kpiCitingYouCaption\":\"third-party sources\",\"gapsTitle\":\"Where competitors get cited and you don't\",\"gapsTitlePerson\":\"Where your peers get cited and you don't\",\"gapPlayLabel\":\"Suggested play:\",\"gapStat\":\"{sources, plural, =1 {1 outlet} other {# outlets}} here cite competitors {competitorCitations, plural, =1 {once} other {# times}} in this window — pages that mention you: {brandCitations}.\",\"gapStatPerson\":\"{sources, plural, =1 {1 outlet} other {# outlets}} here cite your peers {competitorCitations, plural, =1 {once} other {# times}} in this window — pages that mention you: {brandCitations}.\",\"gapCategories\":{\"review_platform\":\"Review platforms\",\"earned_press\":\"Press coverage\",\"trade_media\":\"Trade publications\",\"major_media\":\"Major media outlets\",\"listicle\":\"Listicles and rankings\",\"review\":\"Review content\"},\"gapPlays\":{\"review_platform\":\"Claim and fill out your profiles on the review sites AI leans on for “best” prompts, and keep recent reviews coming.\",\"earned_press\":\"Pitch the desks already cited for your prompts — one placement lands in the pool these answers draw from.\",\"trade_media\":\"Offer bylines or expert commentary to the trade titles AI cites in your category.\",\"major_media\":\"Build a story angle for the national desks AI already quotes for your prompts.\",\"listicle\":\"Ask the authors of the roundups already ranking to consider you in their next update.\",\"review\":\"Line up hands-on reviews with the outlets whose review pages AI cites.\"},\"priority\":{\"high\":\"High\",\"medium\":\"Medium\",\"low\":\"Low\"},\"tableTitle\":\"Publishers\",\"tableCount\":\"{shown} of {total}\",\"colSelect\":\"Select\",\"colPublisher\":\"Publisher\",\"colAipvs\":\"AIPVS\",\"colType\":\"Type\",\"colMentions\":\"Mentions\",\"colPlatforms\":\"Platforms\",\"colCitations\":\"Citations\",\"colLastCited\":\"Last cited\",\"owner\":{\"brand\":\"Yours\",\"competitor\":\"Competitor\",\"third_party\":\"Independent\"},\"you\":\"You\",\"lastCitedToday\":\"today\",\"lastCitedDays\":\"{days}d ago\",\"mentionsLabel\":\"Mentions\",\"mentionsAll\":\"Anyone\",\"mentionsOpportunity\":\"Competitors, not you\",\"mentionsOpportunityPerson\":\"Peers, not you\",\"mentionsOurBrand\":\"Your brand\",\"mentionsOurBrandPerson\":\"You\",\"mentionsAnyCompetitor\":\"Any competitor\",\"mentionsAnyCompetitorPerson\":\"Any peer\",\"promptTypesLabel\":\"Prompt types\",\"promptTypesAll\":\"All prompt types\",\"promptTypesSelected\":\"{count, plural, =1 {1 prompt type} other {# prompt types}}\",\"promptTypeLabels\":{\"category_best\":\"Category best\",\"use_case_solution\":\"Use-case solution\",\"budget_constrained\":\"Budget-constrained\",\"solution_comparison\":\"Solution comparison\",\"segment_focused\":\"Segment-focused\",\"local_services\":\"Local services\",\"local_comparison\":\"Local comparison\",\"local_reviews\":\"Local reviews\",\"category_entry_point\":\"Category entry point\",\"jobs_to_be_done\":\"Jobs to be done\",\"buyers_journey_awareness\":\"Awareness\",\"buyers_journey_consideration\":\"Consideration\",\"buyers_journey_decision\":\"Decision\",\"stakeholder_perspective\":\"Stakeholder perspective\",\"brand_identity\":\"Brand identity\",\"brand_comparison\":\"Brand comparison\",\"unclassified\":\"Unclassified\"},\"platformLabel\":\"Platform\",\"platformAll\":\"All platforms\",\"mediaTypeLabel\":\"Media type\",\"mediaTypeAll\":\"All media types\",\"filtersEmpty\":\"No publishers match the current filters.\",\"clearFilters\":\"Clear all filters\",\"pageLabel\":\"Page {page} of {pages}\",\"prevPage\":\"Previous\",\"nextPage\":\"Next\",\"selectedCount\":\"{count, plural, =1 {1 publisher selected} other {# publishers selected}}\",\"clearSelection\":\"Clear\",\"addSelected\":\"Add {count} to project\",\"addSelectedToPitchList\":\"Add {count} to pitch list\",\"addToPitchList\":\"Add to pitch list\",\"projectLabel\":\"PR project\",\"projectFallback\":\"the project\",\"projectScopeLabel\":\"Project: {name}\",\"projectScopeClear\":\"Clear project scope\",\"noPrProjects\":\"No active PR project yet — create one to collect pitch targets.\",\"bulkAddedToast\":\"Added {count, plural, =1 {1 publisher} other {# publishers}} to {project}.\",\"bulkPartialToast\":\"Added {count} to {project} — {failed} could not be added.\",\"addToProject\":\"Add to PR project\",\"addedToast\":\"{domain} added to {project}.\",\"addFailedToast\":\"Could not add {domain} to the project.\",\"openClassic\":\"Open in Citation Intelligence\",\"drawerMentions\":\"Mentions\",\"mentionsYou\":\"Mentions your brand\",\"mentionsYouPerson\":\"Mentions you\",\"mentionsYouNot\":\"Doesn't mention you\",\"drawerPromptTypes\":\"Prompt types\",\"drawerPlatforms\":\"Platforms\",\"drawerPlatformsExplainer\":\"The AI platforms whose answers cited this publisher for your tracked prompts in this window — not the platforms the publisher itself writes for.\",\"drawerRecentCitations\":\"Recent citations ({count} in this window)\",\"drawerNoCitations\":\"No citations from this publisher in the selected window.\",\"aipvsTier\":\"Tier {tier} · {label}\",\"aipvsConfidenceExact\":\"AI Placement Value Score · exact confidence\",\"aipvsConfidenceEstimated\":\"AI Placement Value Score · estimated confidence\",\"aipvsOab\":\"Organic authority\",\"aipvsOabHint\":\"search strength\",\"aipvsAca\":\"AI citation access\",\"aipvsAcaHint\":\"can assistants read and cite it\",\"aipvsAti\":\"AI training influence\",\"aipvsAtiHint\":\"presence in training data\",\"aipvsAccess\":\"Crawler access\",\"aipvsUnavailable\":\"No placement value score for this domain yet.\",\"emptyTitle\":\"No citation data yet\",\"emptyBody\":\"Add the prompts you want tracked — or run an AI Visibility Report — and Spyglasses maps which outlets AI cites for them, and which of those leave you out.\",\"emptyBodyReadOnly\":\"Nothing has been tracked for this site yet. Once prompts run, this page maps which outlets AI cites and which of those leave you out.\",\"emptyCta\":\"Add prompts\",\"noDataTitle\":\"No citations in this window\",\"noDataBody\":\"Nothing was cited for your prompts in the selected range. Try a wider window, or check that daily tracking is running.\",\"colActions\":\"Actions\",\"rowActionsLabel\":\"Actions for {domain}\",\"ignoredBadge\":\"Ignored\",\"ignoreAction\":\"Ignore this publisher\",\"unignoreAction\":\"Stop ignoring\",\"
2ignoredToast\":\"{domain} is now ignored — it stays in your citation lists but is out of the opportunity pool.\",\"unignoredToast\":\"{domain} is no longer ignored.\",\"ignoreFailedToast\":\"Could not update the ignore setting for {domain}.\",\"ignoredNoAddHint\":\"This publisher is ignored, so it can't be added to a PR project. Stop ignoring it first.\",\"selectedIgnoredHint\":\"{count, plural, =1 {1 ignored publisher will be skipped} other {# ignored publishers will be skipped}}\",\"selectedNotPitchableHint\":\"{count, plural, =1 {1 publisher can't be pitched and will be skipped} other {# publishers can't be pitched and will be skipped}}\",\"bulkAddedSkippedToast\":\"Added {count} to {project} — {skipped} skipped.\",\"promoteToCompetitorAction\":\"Promote to competitor\",\"promotedToast\":\"{domain} is now tracked as a competitor.\",\"promoteFailedToast\":\"Could not track {domain} as a competitor.\",\"notPitchableOwnDomain\":\"Your own domain — not a PR pitch target\",\"notPitchableCompetitor\":\"Competitor domain — not a PR pitch target\",\"notPitchableAuthority\":\"Government, academic and reference sites don't take pitches — not a PR target\"},\"goalsPage\":{\"pageSubtitle\":\"How much of what AI cites comes from the work your project goals track — by project, down to the raw citations\",\"projectsTitle\":\"Active projects with goals\",\"goalsHit\":\"{hit}/{total} goals hit\",\"shareOfInfluence\":\"Share of goal influence\",\"citationsOf\":\"{matched} of {total} citations\",\"attributedMentions\":\"Attributed brand mentions\",\"ofMatched\":\"{share}% of matched citations\",\"nearMiss\":\"Near misses among matched citations: {hidden} mention your brand in content without an inline citation · {read} read but not cited · {search} appeared in search\",\"noInfluenceData\":\"No influence data yet for this project.\",\"projectLifetime\":\"Project lifetime\",\"lifetimeScope\":\"Project lifetime · since {date}\",\"untitledProject\":\"Untitled project\",\"empty\":\"No active projects with goals. Add goals to a project to measure how much of AI's citation mix your work drives.\",\"emptyReadOnly\":\"No active projects with goals yet.\"},\"consistencyPage\":{\"pageSubtitle\":\"How similarly each AI platform tells your story, and the identity prompts behind message drift\",\"pageSubtitlePerson\":\"How accurately each AI platform describes you, and every stored check behind the score\",\"levelLabel\":\"L2 · derived\",\"intro\":\"Every stored check, the prompts behind it, and what the answers said about you.\",\"introPerson\":\"Every stored identity check, platform by platform, and what each answer got right about you.\",\"trendTitle\":\"Score by platform\",\"identityTitle\":\"Brand identity prompts\",\"identityCta\":\"Set up brand identity prompts\",\"coverage\":\"Message coverage\",\"negative\":\"Negative incidence\",\"lastMeasured\":\"Last measured\",\"pointsSuffix\":\" pts\",\"platformLabel\":\"Platform\",\"platformAll\":\"All platforms\",\"vsWeekAgo\":\"vs 7 days ago\",\"reportCadenceCaption\":\"report cadence — no weekly basis\",\"reportCadenceNote\":\"Every point here is a report run, so there is no continuous line between them. Set up a project to get consistency measured on a cadence.\",\"reportCadenceNotePerson\":\"Points here come from AI report runs and weekly identity checks, so they can be days or weeks apart — the gaps between them are real. Report runs record only the overall score, which is why they draw as single dots.\",\"kpiScore\":\"Consistency score\",\"kpiScorePerson\":\"Identity accuracy\",\"kpiScoreExplainer\":\"How similarly the platforms describe your brand across runs (0–100). A story that fragments between platforms pulls this down.\",\"kpiScoreExplainerPerson\":\"How accurately the platforms describe you across runs (0–100), judged against neutral primary sources. Wrong roles, wrong employers and same-name mix-ups pull this down.\",\"kpiCoverage\":\"Message coverage\",\"kpiCoverageExplainer\":\"The share of your positive key messages that surface in brand-identity answers.\",\"kpiNegative\":\"Negative incidence\",\"kpiNegativeExplainer\":\"How often tracked negative claims appear in brand-identity answers. Down is good.\",\"kpiDriftExplainer\":\"How far today's AI story has moved from your established themes (0–1). Lower is better, and small moves are noise.\",\"kpiNewThemes\":\"New themes\",\"kpiNewThemesExplainer\":\"Narratives that newly appeared in this period's answers. Review them under Perception — drift warnings start here.\",\"kpiNewThemesCaption\":\"review under Perception\",\"checksTitle\":\"Recent checks\",\"checksHint\":\"open one for the full analysis\",\"checksEmpty\":\"No checks stored in this range.\",\"openCheck\":\"Open check\",\"overallLabel\":\"overall\",\"chartOverall\":\"Overall\",\"sources\":{\"weekly\":\"sc
2heduled check\",\"report\":\"report\",\"other\":\"automated check\"},\"brandComparisonTitle\":\"Brand \u0026 comparison\",\"allKeyMessages\":\"All key messages\",\"expectedMessages\":\"Expected messages · latest run\",\"expectedMessagesEmpty\":\"Define expected messages on your brand-identity prompts to measure whether the answers say what they should.\",\"messageCovered\":\"covered\",\"messageWeak\":\"weak\",\"headToHeadVerdicts\":\"Head-to-head verdicts\",\"comparisonEmpty\":\"No comparison verdicts in this range. Comparison prompts produce them.\",\"versus\":\"vs {name}\",\"favorYou\":\"favor you\",\"verdictCount\":\"{count, plural, =1 {1 verdict} other {# verdicts}}\",\"headToHead\":\"Head-to-head\",\"perceptionTitle\":\"Perception\",\"attributeMentions\":\"Attribute mentions\",\"attributesEmpty\":\"No tracked attributes were measured in this range.\",\"establishedThemes\":\"Established themes\",\"newThemes\":\"New this period\",\"noEstablishedThemes\":\"None yet — themes settle after a few runs.\",\"noNewThemes\":\"None — the story held steady.\",\"themesEmpty\":\"No answer themes recorded in this range.\",\"emptyTitle\":\"Nothing measured yet\",\"emptyTitlePerson\":\"Nothing measured yet\",\"emptyBody\":\"Brand consistency compares what each AI platform says about you against your own brand snapshot. Set up a project to start measuring it on a cadence.\",\"emptyBodyReadOnly\":\"Brand consistency compares what each AI platform says about you against your own brand snapshot. Nothing has been measured yet.\",\"emptyBodyPerson\":\"Identity accuracy compares what each AI platform says about you against neutral primary sources. Run an AI Visibility Report to measure it.\",\"emptyBodyReadOnlyPerson\":\"Identity accuracy compares what each AI platform says about you against neutral primary sources. Nothing has been measured yet.\",\"emptyCta\":\"Set up a project\",\"emptyCtaPerson\":\"Run an AI Visibility Report\",\"noDataTitle\":\"No checks in this range\",\"noDataBody\":\"This property has been measured before, just not inside the selected window. Widen the range to pick up the last check.\"},\"messagesPage\":{\"pageSubtitle\":\"Whether the messages you want AI to repeat — and the claims you don't — actually surface in tracked answers\",\"emptyTitle\":\"No key messages tracked yet\",\"emptyBody\":\"Add the messages you want AI to repeat — and any claims you need to watch for — and daily tracking will measure how often each one surfaces. Matching is semantic, so paraphrases count.\",\"emptyBodyReadOnly\":\"No key messages are being tracked yet. Once they are, this page shows how often each one surfaces in AI answers.\",\"emptyCta\":\"Add key messages\",\"sentimentLabel\":\"Sentiment\",\"sentimentAll\":\"All sentiment\",\"positive\":\"Positive\",\"negative\":\"Negative\",\"neutral\":\"Neutral\",\"tagLabel\":\"Tag\",\"tagAll\":\"All tags\",\"kpiPositive\":\"Positive pull-through\",\"kpiPositiveExplainer\":\"Average surfacing rate of your positive key messages across tracked answers in the selected window.\",\"kpiNegative\":\"Negative incidence\",\"kpiNegativeExplainer\":\"Average surfacing rate of the negative claims you track. Down is good — the badge reads it that way.\",\"kpiTracked\":\"Messages tracked\",\"kpiTrackedExplainer\":\"Key messages measured in the selected window, after filters.\",\"kpiTrackedCaption\":\"{rising} rising · {falling} falling\",\"kpiMover\":\"Biggest mover\",\"kpiMoverExplainer\":\"The tracked message whose surfacing rate changed most over the window.\",\"compareTitle\":\"Compare pull-through\",\"comparePinned\":\"{count}/{max} pinned\",\"compareEmpty\":\"Pin up to {max} messages with the checkboxes to compare their pull-through over time.\",\"compareAction\":\"Compare\",\"listTitle\":\"Tracked messages\",\"listCount\":\"{count} after filters\",\"listEmpty\":\"No messages match the current filters.\",\"noDataTitle\":\"No pull-through data in this window\",\"noDataBody\":\"You're tracking {count, plural, =1 {1 key message} other {# key messages}}, but none were measured in the selected range. Try a wider window, or make sure daily tracking or a recent report has run.\",\"manageCta\":\"Manage 
2key messages\"},\"messageMatches\":{\"pageTitle\":\"Matched answers\",\"pageSubtitle\":\"The answers this message turned up in, and the sources cited in those same answers.\",\"levelLabel\":\"L3 · raw data\",\"back\":\"Back to key messages\",\"rowLink\":\"Matched answers\",\"platformLabel\":\"Platform\",\"platformAll\":\"All platforms\",\"matchedCount\":\"{count, plural, =0 {No matched answers in this range} =1 {1 matched answer in this range} other {# matched answers in this range}}\",\"tabAnswers\":\"Answers\",\"tabSources\":\"Sources\",\"scoreLabel\":\"match {score}\",\"sourceReport\":\"From a report\",\"sourceDaily\":\"From daily tracking\",\"promptLabel\":\"Asked: {prompt}\",\"promptUnknown\":\"The question behind this answer is no longer on file.\",\"openAnswer\":\"Open the answer\",\"loadMore\":\"Show more answers\",\"answersEmptyTitle\":\"Nothing matched in this range\",\"answersEmptyBody\":\"Widen the time range, or check that this message is still being measured. Answers measured before matches were kept carry no record here.\",\"sourcesHint\":\"Domains cited in the same answers this message turned up in. It shows what AI was reading, not proof of where the wording came from.\",\"sourcesEmpty\":\"No sources were cited in these answers.\",\"sourceCited\":\"{count, plural, =1 {cited in 1 answer} other {cited in # answers}}\",\"lastUpdated\":\"Updated {date}\",\"lastUpdatedUnknown\":\"Update date unknown\",\"ourDomain\":\"Your site\",\"openSource\":\"Open the page\",\"errorBody\":\"We couldn't load the answers for this message. Try again in a moment.\",\"notFoundBody\":\"This key message either no longer exists or belongs to a different property.\"},\"window\":{\"label\":\"Time range\",\"d7\":\"Last 7 days\",\"d30\":\"Last 30 days\",\"d90\":\"Last 90 days\"},\"consistencyCheckPage\":{\"pageTitle\":\"Consistency check\",\"pageTitleFor\":\"Consistency check · {date}\",\"pageTitleForPerson\":\"Identity check · {date}\",\"pageSubtitle\":\"Everything this {source} recorded: what each platform said about your brand, and how each claim scored.\",\"pageSubtitlePerson\":\"Everything this {source} recorded: how accurately each platform described you, and how the score was reached.\",\"back\":\"Back to brand consistency\",\"backPerson\":\"Back to i
2dentity accuracy\",\"levelLabel\":\"L3 · raw data\",\"loadingTitle\":\"Loading the check…\",\"errorTitle\":\"Consistency check\",\"errorBody\":\"We couldn't load this check. Try again in a moment.\",\"notFoundTitle\":\"Check not available\",\"notFoundBody\":\"This consistency check either no longer exists or belongs to a different property.\",\"yourBrand\":\"your brand\",\"platformCount\":\"{count, plural, =1 {1 platform scored} other {# platforms scored}}\",\"model\":\"Model: {model}\",\"noPlatforms\":\"This check recorded no platform scores.\",\"bands\":{\"success\":\"Accurate\",\"warning\":\"Drifting\",\"error\":\"Off\"},\"scoresOnlyTitle\":\"Scores only for this check\",\"scoresOnlyBody\":\"This check recorded platform scores without the underlying answers. Report-based checks and newer weekly checks carry the full analysis.\",\"scoresOnlyBodyPerson\":\"This check recorded the overall score without keeping the per-model answers behind it. Newer checks store every answer and how the judge scored it.\",\"modeBrowsing\":\"With web browsing\",\"modeTraining\":\"Training data only\",\"modeScore\":\"{score} / 100\",\"noAnswerStored\":\"No answer text was stored for this mode.\",\"noModes\":\"No modes were recorded for this platform.\",\"whatItSays\":\"What {platform} says about {brand}\",\"whoFor\":\"Who it says it's for\",\"helpsWith\":\"What it says you help with\",\"features\":\"Features it names\",\"competitors\":\"Competitors it names\",\"pricing\":\"How it reads your pricing\",\"confidence\":\"confidence: {level}\",\"breakdownTitle\":\"Consistency breakdown\",\"penaltiesTitle\":\"Penalties applied\",\"fields\":{\"category\":\"Category\",\"icp\":\"Audience\",\"features\":\"Features\",\"pricing\":\"Pricing\",\"differentiators\":\"Differentiators\"},\"matchTypes\":{\"exact\":\"exact\",\"semantic\":\"semantic\",\"partial\":\"partial\",\"missing\":\"missing\",\"contradictory\":\"contradicted\"},\"matchAnalysis\":\"Match analysis\",\"unmatchedSnapshot\":\"In your snapshot, not in the answer\",\"unmatchedLlm\":\"In the answer, not in your snapshot\",\"issuesTitle\":\"Issues \u0026 what to do\",\"issuesUnavailable\":\"No stored answer to compare against your snapshot, so no issues can be derived for this platform.\",\"noIssues\":\"{platform} described your brand the way your snapshot does. Nothing to fix here.\",\"unknownBrand\":\"{platform} does not appear to know {brand} at all. Coverage on sources it reads is the first fix, not wording.\",\"platformGuide\":\"How to improve visibility on {platform}\",\"thisPerson\":\"you\",\"crossModelConsistency\":\"Cross-model agreement {score} / 100\",\"identityAnswer\":\"What {platform} said about {name}\",\"identityVerdictTitle\":\"How this answer was judged\",\"identityNotJudged\":\"This answer was recorded but not judged.\",\"identityRoleAccurate\":\"Role correct\",\"identityRoleWrong\":\"Role wrong\",\"identityEmployerAccurate\":\"Employer correct\",\"identityEmployerWrong\":\"Employer wrong\",\"identityConfusion\":\"Describes a different person with your name\",\"identityConfusedWith\":\"Described instead: {who}\",\"identityStale\":\"Outdated facts\",\"identityFactualErrors\":\"Contradicts the known facts\"}},\"addNew\":\"Track something new\",\"addNewDescription\":\"Add a brand, product, person, or category to track across AI platforms.\",\"card\":{\"shareOfVoice\":\"Share of voice\",\"mentions\":\"Brand mentions\",\"vsPrevious\":\"vs previous measurement\",\"vsPrevious7\":\"vs previous 7 days\",\"noData\":\"No share-of-voice data yet\",\"viewProjects\":\"View projects\"},\"companyName\":{\"edit\":\"Edit company name\",\"saved\":\"Company name saved\",\"saveFailed\":\"Failed to save company name\"},\"unverifiedTitle\":\"Waiting for events...\",\"unverifiedDescription\":\"Install the Spyglasses plugin on your website to start tracking AI traffic. Click the icon that matches the technology your website uses to get detailed instructions. Once we start receiving traffic from your website you will be able to access analytics data.\",\"analytics\":{\"title\":\"Analytics\",\"subtitle\":\"View analytics for your property\",\"totalAgents\":\"Total Agents\",\"categorizedAgents\":\"Categorized Agents\",\"blockedRequests\":\"Blocked Requests\",\"noDataAvailable\":\"No Data Available\",\"noDataAvailableDescription\":\"There is no data available for the selected time range.\",\"header\":{\"title\":\"Analytics\",\"subtitle\":\"View analytics for your property\",\"totalAgents\":\"Total Agents\",\"categorizedAgents\":\"Categorized Agents\",\"identifiedCompanies\":\"Identified Companies\",\"identifiedIntents\":\"Identified Intents\"},\"tabs\":{\"overview\":\"Overview\",\"pages\":\"Pages\",\"locations\":\"Locations\"},\"liveData\":\"Live data (last 30 min)\",\"allPages\":\"All Intents and Pages\",\"pages\":{\"title\":\"Page Analytics\",\"search\":\"Search pages...\",\"viewByIntent\":\"By Intent\",\"viewByPages\":\"By Pages\",\"createGroup\":\"Create group\"},\"filters\":{\"byIntent\":\"Filter by Intent\",\"pageIntents\":\"Page Intents\",\"multipleIntents\":\"{count} intents selected\",\"clearAll\":\"Clear\",\"intentTooltip\":\"Filter pages by their classified visitor intent. Intent classification helps you understand what visitors are trying to accomplish when they visit different pages.\"},\"intents\":{\"homepage\":\"Homepage\",\"product\":\"Product\",\"pricing\":\"Pricing\",\"purchase\":\"Purchase\",\"research\":\"Research\",\"informational\":\"Informational\",\"technical\":\"Technical\",\"support\":\"Supp
2ort\",\"trust\":\"Trust\",\"corporate\":\"Corporate\",\"careers\":\"Careers\",\"events\":\"Events\",\"authentication\":\"Authentication\",\"integration\":\"Integration\",\"community\":\"Community\",\"legal\":\"Legal\",\"descriptions\":{\"homepage\":\"Main landing pages where visitors get their first impression\",\"product\":\"Pages showcasing specific products, features, or solutions\",\"pricing\":\"Pages displaying pricing information, plans, or costs\",\"purchase\":\"Checkout pages, payment forms, or direct purchase flows\",\"research\":\"Content designed to help visitors research and compare options\",\"informational\":\"General information pages and company details\",\"technical\":\"Documentation, API references, and developer resources\",\"support\":\"Help centers, FAQ pages, and customer service content\",\"trust\":\"Testimonials, case studies, reviews, and social proof\",\"corporate\":\"Investor relations, press releases, and company news\",\"careers\":\"Job listings, hiring information, and career content\",\"events\":\"Event listings, webinar pages, and conference information\",\"authentication\":\"Login pages, signup forms, and account access\",\"integration\":\"Integration guides and third-party connections\",\"community\":\"Forums, user groups, and community content\",\"legal\":\"Privacy policies, terms of service, and compliance pages\"}},\"drilldown\":{\"viewing\":\"Viewing:\",\"backToCategories\":\"Back to Categories\",\"backToSubcategories\":\"Back to Subcategories\",\"backToCountries\":\"Back to Countries\"},\"locations\":{\"title\":\"Location Analytics\",\"countries\":\"Countries\",\"regions\":\"Regions in {country}\",\"cities\":\"Cities in {region}\",\"visits\":\"visits\",\"worldMap\":\"World Map\",\"regionsMap\":\"Regions Map\",\"citiesMap\":\"Cities Map\",\"regionMapUnavailable\":\"Region map for {country} is not available\",\"cityMapUnavailable\":\"City map for {region} is not available\",\"useListView\":\"Please use the list view to explore details\",\"backToWorldMap\":\"Back to World Map\"},\"overview\":{\"visits\":\"visits\",\"title\":\"Overview\"},\"companies\":{\"title\":\"Companies\"},\"categories\":{\"title\":\"Categories\"},\"subcategories\":{\"title\":\"Subcategories for {category}\"},\"categoryDistribution\":\"Category Distribution\"},\"domain\":{\"label\":\"Domain Name\",\"description\":\"Enter the domain name of the website you want to track. This should be the main domain without www or http(s)://\"},\"creating\":\"Creating...\",\"continue\":\"Continue\",\"installation\":{\"title\":\"Installation Instructions\"},\"home\":{\"title\":\"Home\"},\"platform\":{\"title\":\"Select Your Platform\",\"description\":\"Choose the platform your website is built on to get specific installation instructions.\",\"instructions\":{\"title\":\"Installation Instructions\",\"description\":\"Follow the instructions below to install the Spyglasses plugin on your website.\"}},\"platforms\":{\"coming-soon\":\"Coming Soon\",\"view-instructions\":\"View Installation Instructions\"},\"verification\":{\"title\":\"Verification Status\",\"description\":\"We're checking if your Spyglasses integration is working correctly.\",\"verifying\":\"Verifying...\",\"waiting\":\"Waiting for verification...\",\"success\":\"Setup verified successfully!\",\"required\":\"Verify your property to enable this feature.\"},\"billingLimit\":{\"title\":\"AI Visit Billing Cap\",\"description\":\"Set a monthly limit on paid AI visit tracking (above the free allowance) to prevent unexpected charges.\",\"currentLimit\":\"Current Monthly Overage Cap\",\"creditsPerMonth\":\"credits/month\",\"equivalentVisits\":\"Total of ~{visits} AI visits tracked per month (free tier + overage)\",\"useDefault\":\"Use Default\",\"customLimit\":\"Custom\",\"customLimitLabel\":\"Monthly Credit Cap\",\"highLimitWarning\":\"This is a high limit. Consider if this is necessary for your use case.\",\"howItWorks\":{\"title\":\"How it works:\",\"freeTier\":\"The first {freeVisits} AI visits per month are always free — no credits required\",\"point1\":\"Above the free allowance, 1 credit = {visits} tracked AI visits\",\"point2\":\"Once the cap is reached, visits are still logged but not shown in your dashboard\",\"point3\":\"The cap resets at the beginning of each month\"},\"notifications\":{\"saveSuccess\":\"Billing limit updated successfully\",\"saveFailed\":\"Failed to update billing limit\"},\"setupPanel\":{\"title\":\"Set a Billing Limit\",\"description\":\"You can configure a monthly billing cap for AI visit tracking in your property settings to prevent unexpected charges.\"}},\"notifications\":{\"createFailed\":\"Failed to create property. Please try again.\",\"verifySuccess\":\"Property verified successfully\",\"verifyFailed\":\"Failed to verify property. Please try again.\",\"deleteSuccess\":\"Property deleted successfully\",\"deleteFailed\":\"Failed to delete property. Please try again.\",\"noEvents\":\"No events found\",\"noEventsDescription\":\"We haven't received any events from this property yet. Make sure you have installed the plugin correctly and that there is some traffic on your site.\",\"apiKeyCopied\":\"API Key copied to clipboard\",\"createdPartially\":\"The property was added, but we could not link it to your workflow. Use “Choose property” to link it.\"},\"title\":\"Properties\",\"empty\":{\"title\":\"No properties found.\",\"description\":\"Add a new property (website domain name) to get started.\"},\"onboarding\":{\"title\":\"Get Started\",\"description\":\"Here are some ways to get the most out of {domain}:\",\"suggestions\":{\"aiReport\":{\"title\":\"Run an AI Visibility Report\",\"description\":\"See how AI assistants describe your brand\",\"tooltip\":\"Discover how ChatGPT, Perplexity, Claude, and Gemini talk about your brand. Identify gaps in AI understanding and get actionable recommendations to improve your AI search visibility.\"},\"analytics\":{\"title\":\"Connect AI Traffic Analytics\",\"description\":\"Track AI visitors to your website\",\"tooltip\":\"Install our lightweight plugin to see which AI crawlers visit your site, how often, and which pages they access. Track visits from ChatGPT, Claude, Perplexity, and 600+ other AI agents that traditional analytics miss.\"},\"faqGeneration\":{\"title\":\"Generate AI-Optimized FAQs\",\"description\":\"Create content that AI assistants cite\",\"tooltip\":\"Generate FAQ content optimized for AI citations. FAQs appear twice on your page - as visible content and as JSON-LD schema - doubling your chances of being cited by AI assistants.\"}}},\"status\":\"Status\",\"actions\":\"Actions\",\"verified\":\"Verified\",\"unverified\":\"Unverified\",\"delete\":{\"title\":\"Delete Property\",\"description\":\"Permanently delete {domain}. This action cannot be undone.\",\"confirm\":\"Delete Property\",\"verifiedWarning\":\"This is a verified property. To confirm deleti
2on, please type its domain below.\",\"typeDomainToConfirm\":\"Type \\\"{domain}\\\" to confirm.\",\"error\":{\"domainMismatch\":\"The entered domain does not match. Deletion aborted.\"}},\"edit\":{\"title\":\"Edit Property\",\"description\":\"Edit settings for {domain}\"},\"verify\":\"Verify Setup\",\"apiKey\":{\"label\":\"API Key\",\"show\":\"Show API Key\",\"hide\":\"Hide API Key\",\"copy\":\"Copy API Key\"},\"pages\":{\"title\":\"Property Pages\",\"description\":\"Manage pages and their titles for your property. These titles will be used when sending AI traffic to analytics platforms.\",\"manage\":\"Manage Pages\",\"add\":\"Add Page\",\"addDescription\":\"Add a new page to your property\",\"edit\":\"Edit Page\",\"editDescription\":\"Edit page details\",\"path\":\"Path\",\"url\":\"URL\",\"empty\":\"No pages have been added yet\",\"create\":\"Create Page\",\"update\":\"Update Page\",\"import\":\"Import Pages\",\"importAgain\":\"Import Another\",\"importSitemap\":\"Import from Sitemap\",\"importSitemapDescription\":\"Import pages from your sitemap.xml file\",\"createGroup\":\"Create group\",\"sitemapUrl\":\"Sitemap URL\",\"delete\":{\"title\":\"Delete Page\",\"description\":\"Are you sure you want to delete the page with path \\\"{path}\\\"?\",\"confirm\":\"Delete Page\"},\"notifications\":{\"createSuccess\":\"Page created successfully\",\"createFailed\":\"Failed to create page\",\"updateSuccess\":\"Page updated successfully\",\"updateFailed\":\"Failed to update page\",\"deleteSuccess\":\"Page deleted successfully\",\"deleteFailed\":\"Failed to delete page\",\"importSuccess\":\"Successfully imported and classified {count} pages\",\"importFailed\":\"Failed to import pages from sitemap\",\"importing\":\"Importing Pages...\",\"importingDescription\":\"Please wait while we process the sitemap and import pages. This may take a few moments, especially for large sitemaps or sites with sitemap indexes.\",\"importPartial\":\"Imported and classified {imported} out of {total} pages. Some pages were skipped because they already exist or could not be imported.\",\"importComplete\":\"All pages were successfully imported and classified. You can now close this dialog or import another sitemap.\",\"importFailedDescription\":\"There was an error processing the sitemap. Please check the URL and try again. If the problem persists, try importing a different sitemap or adding pages manually.\"},\"faqGenerator\":{\"title\":\"FAQ Generator\",\"description\":\"Generate FAQs for your property pages using AI\",\"trigger\":{\"button\":\"Generate FAQs\",\"confirm\":\"Start Generation\"}},\"bulkReclassifyTitle\":\"Bulk reclassify intents\",\"bulkReclassifyDescription\":\"Select pages by path patterns, title search, or current intent; then set or add intent tags.\",\"bulkReclassifyPathPatterns\":\"Path patterns\",\"bulkReclassifyPathPatternsHint\":\"Comma-separated; use * as wildcard (e.g. /blog/*, /docs/*). Leave empty to match all paths.\",\"bulkReclassifyTitleSearch\":\"Title contains\",\"bulkReclassifyTitleSearchPlaceholder\":\"Optional text to match in page title\",\"bulkReclassifyCurrentIntent\":\"Current intent filter\",\"bulkReclassifyCurrentIntentPlaceholder\":\"Any intent\",\"bulkReclassifyPreviewLoading\":\"Counting matching pages…\",\"bulkReclassifyPreviewCount\":\"{count} page(s) will be updated\",\"bulkReclassifyAction\":\"Action\",\"bulkReclassifySetIntents\":\"Set intents to\",\"bulkReclassifyAddIntents\":\"Add intents\",\"bulkReclassifyRemoveIntents\":\"Remove intents\",\"bulkReclassifyRemoveIntentsHint\":\"Selected intent will be removed from matching pages\",\"bulkReclassifyIntents\":\"Intents\",\"bulkReclassifyIntentsPlaceholder\":\"Select intent(s)\",\"bulkReclassifyIntentsHint\":\"Replace (set) or add to existing tags.\",\"bulkReclassifyApply\":\"Apply\",\"bulkReclassifySuccess\":\"Updated {count} page(s)\",\"bulkReclassifyButton\":\"Bulk reclassify intents\",\"cancel\":\"Cancel\"},\"locationsManager\":{\"intro\":\"Track this brand separately across markets. Each location runs the parent's prompts with its own location injected, so you can compare share of voice between cities or countries.\",\"introCategory\":\"Track this market separately in each place you sell. Each location asks the same prompts with its own place injected, so every market gets its own ranking of brands and its own leader.\",\"cardDescription\":\"Track this brand separately across multiple geographies. Each location runs the same prompts with its own location injected, so you can compare share of voice across markets.\",\"cardDescriptionCategory\":\"Track this market separately across multiple geographies. Each location asks the same prompts with its own place injected, so you can see which brands lead in each one.\",\"empty\":\"No locations yet. Add one to start tracking visibility by market.\",\"emptyCategory\":\"No locations yet. Add one to see which brands AI names in each place.\"},\"competitors\":{\"title\":\"Competitors\",\"titlePerson\":\"Peers\",\"titleCategory\":\"Brands\",\"description\":\"Manage competitors for your property. These are used to benchmark your AI visibility against other brands in your space.\",\"descriptionPerson\":\"Manage the peers this person is benchmarked against. Peers are drawn from the individuals AI mentions in the same responses.\",\"descriptionCategory\":\"Manage the brands tracked in this category. Share of voice in the market is measured across this list.\",\"manage\":\"Manage Competitors\",\"add\":\"Add Competitor\",\"addPerson\":\"Add peer\",\"addCategory\":\"Add brand\",\"addDescription\":\"Add a new competitor to track\",\"addDescriptionPerson\":\"Add an individual who appears alongside this person in AI answers.\",\"addDescriptionCategory\":\"Add a brand buyers ask about in this market.\",\"edit\":\"Edit Competitor\",\"editDescription\":\"Edit competitor details\",\"url\":\"Website URL\",\"name\":\"Company Name\",\"logo\":\"Logo\",\"active\":\"Active\",\"inactive\":\"Inactive\",\"empty\":\"No competitors have been added yet\",\"emptyPerson\":\"No peers have been added yet\",\"emptyCategory\":\"No brands have been added yet\",\"emptyDescription\":\"Add competitors to benchmark your AI visibility performance\",\"emptyDescriptionPerson\":\"Add peers to benchmark this person's AI visibility — or leave it empty and we'll suggest peers drawn from the individuals AI mentions in the same responses.\",\"emptyDescriptionCategory\":\"Run an AI Visibility Report and it will suggest the brands it found in the answers, or add the ones buyers ask about yourself.\",\"create\":\"Add Competitor\",\"update\":\"Update Competitor\",\"delete\":{\"title\":\"Delete Competitor\",\"description\":\"Are you sure you want to delete {name}?\",\"confirm\":\"Delete Competitor\"},\"deactivate\":{\"title\":\"Deactivate Competitor\",\"description\":\"Are you sure you want to deactivate {name}? This will remove them from AI visibility analysis.\",\"confirm\":\"Deactivate\"},\"reactivate\":{\"title\":\"Reactivate Competitor\",\"description\":\"Reactivate {name} to include them in AI visibility analysis.\",\"confirm\":\"Reactivate\"},\"actions\":{\"edit\":\"Edit\",\"delete\":\"Delete\",\"deactivate\":\"Deactivate\",\"reactivate\":\"Reactivate\"},\"table\":{\"name\":\"Name\",\"url\":\"Website\",\"status\":\"Status\",\"actions\":\"Actions\"},\"form\":{\"urlPlaceholder\":\"competitor.com\",\"namePlaceholder\":\"Competitor Name\",\"validation\":{\"urlRequired\":\"Website URL is required\",\"urlInvalid\":\"Please enter a valid URL\",\"nameRequired\":\"Company name is required\",\"duplicateUrl\":\"You've already added this competitor. Eac
2h competitor can only be added once.\"}},\"notifications\":{\"createSuccess\":\"Competitor added successfully\",\"createFailed\":\"Failed to add competitor\",\"updateSuccess\":\"Competitor updated successfully\",\"updateFailed\":\"Failed to update competitor\",\"deleteSuccess\":\"Competitor deleted successfully\",\"deleteFailed\":\"Failed to delete competitor\",\"deactivateSuccess\":\"Competitor deactivated successfully\",\"deactivateFailed\":\"Failed to deactivate competitor\",\"reactivateSuccess\":\"Competitor reactivated successfully\",\"reactivateFailed\":\"Failed to reactivate competitor\"},\"copyFromParent\":{\"button\":\"Copy from parent brand\",\"success\":\"{count, plural, =1 {1 competitor} other {# competitors}} copied from the parent brand\",\"allPresent\":\"All of the parent brand's competitors are already tracked here\",\"parentEmpty\":\"The parent brand has no active competitors to copy\"}},\"discoveryQueries\":{\"title\":\"Prompts\",\"description\":\"Manage the prompts used to test how AI assistants find and recommend your business. These prompts simulate real buyer intent searches.\",\"empty\":\"No prompts entered yet.\",\"emptyDescription\":\"Generate prompts to see how AI assistants find and recommend your business to potential customers.\",\"active\":\"Active\",\"inactive\":\"Inactive\",\"backToList\":\"Back to Prompts\",\"create\":{\"trigger\":\"Add Prompt\",\"title\":\"Create Prompt\",\"description\":\"Create a custom prompt to test how AI assistants find your business.\",\"creating\":\"Creating...\",\"confirm\":\"Create Prompt\"},\"edit\":{\"title\":\"Edit Prompt\",\"description\":\"Update the prompt details.\",\"updating\":\"Updating...\",\"confirm\":\"Update Prompt\",\"notFound\":\"This prompt could not be found.\"},\"delete\":{\"title\":\"Delete Prompt\",\"description\":\"Are you sure you want to delete this prompt: \\\"{query}\\\"?\",\"confirm\":\"Delete Prompt\"},\"deactivate\":{\"title\":\"Deactivate Prompt\",\"description\":\"Are you sure you want to deactivate this prompt: \\\"{query}\\\"? This will stop using it in future AI visibility tests.\",\"confirm\":\"Deactivate\"},\"reactivate\":{\"title\":\"Reactivate Prompt\",\"description\":\"Reactivate this prompt: \\\"{query}\\\" to include it in AI visibility tests.\",\"confirm\":\"Reactivate\"},\"actions\":{\"edit\":\"Edit\",\"delete\":\"Delete\",\"deactivate\":\"Deactivate\",\"reactivate\":\"Reactivate\"},\"table\":{\"query\":\"Prompt\",\"type\":\"Type\",\"status\":\"Status\",\"actions\":\"Actions\"},\"form\":{\"sections\":{\"prompt\":{\"title\":\"Prompt\",\"description\":\"The buyer intent question you want to test against AI assistants.\"},\"context\":{\"title\":\"Context\",\"description\":\"Optional detail that helps us interpret results and slice your metrics.\"},\"tags\":{\"title\":\"Tags\",\"description\":\"Group this prompt so you can compare cohorts over time.\"},\"location\":{\"title\":\"Location\",\"description\":\"Optional: target this prompt to a specific market.\"},\"comparison\":{\"title\":\"Competitor\",\"description\":\"Pick a tracked competitor to auto-fill a head-to-head prompt. Shuffle cycles through formats; Rewrite asks AI for a custom phrasing.\"}},\"query\":{\"label\":\"Prompt\",\"placeholder\":\"What are the best...\",\"description\":\"Enter a realistic buyer intent prompt that potential customers might ask AI assistants.\"},\"queryType\":{\"label\":\"Prompt Type\",\"placeholder\":\"Select prompt type...\"},\"category\":{\"label\":\"Category\"},\"segment\":{\"label\":\"Target Segment\"},\"useCase\":{\"label\":\"Use Case\"},\"budget\":{\"label\":\"Budget Range\"},\"location\":{\"label\":\"Location\",\"description\":\"Optional location context for local business queries\",\"city\":\"City\",\"regi
2on\":\"State/Province/Region\",\"country\":\"Country Code\",\"countryHelp\":\"Two-letter country code (e.g., US, CA, GB)\"},\"isLocal\":{\"label\":\"Local Business Query\",\"description\":\"Mark this as a location-specific query for local business searches\",\"autoDescription\":\"Automatically set based on the location field\"},\"tags\":{\"label\":\"Tags\",\"description\":\"Free-form tags so you can slice historical metrics by any factor (persona, location, campaign). Reuse existing tags where possible.\"},\"comparisonBrands\":{\"label\":\"Compared brands\",\"description\":\"The competitor brands this prompt compares against. Auto-suggested from your tracked competitors when they appear in the prompt text; edit freely.\"},\"comparison\":{\"competitorLabel\":\"Compare against\",\"competitorPlaceholder\":\"Select a tracked competitor...\",\"noCompetitors\":\"No tracked competitors yet. Add competitors to this property to auto-fill comparison prompts, or write the prompt yourself below.\",\"shuffle\":\"Shuffle\",\"rewrite\":\"Rewrite with AI\",\"rewriteFailed\":\"Failed to generate a comparison prompt\",\"bulkCreateHint\":\"Track every head-to-head at once: create one comparison prompt for each of your {count} tracked competitors.\",\"bulkCreate\":\"Create all {count}\",\"bulkCreateSuccess\":\"Created {count} comparison prompts\",\"bulkCreatePartial\":\"Created {created} prompts before an error: {message}\"},\"overlap\":{\"checking\":\"Checking for duplicates...\",\"title\":\"This prompt looks similar to an existing one\",\"description\":\"Tracking near-duplicate prompts spends runs on answers you're already measuring. Review the closest matches below.\",\"keepEditing\":\"Keep editing\",\"saveAnyway\":\"Save anyway\"},\"typeChip\":{\"label\":\"Prompt type:\",\"change\":\"Change\"}},\"notifications\":{\"createSuccess\":\"Prompt created successfully\",\"createFailed\":\"Failed to create prompt\",\"updateSuccess\":\"Prompt updated successfully\",\"updateFailed\":\"Failed to update prompt\",\"deleteSuccess\":\"Prompt deleted successfully\",\"deleteFailed\":\"Failed to delete prompt\",\"deactivateSuccess\":\"Prompt deactivated successfully\",\"deactivateFailed\":\"Failed to deactivate prompt\",\"reactivateSuccess\":\"Prompt reactivated successfully\",\"reactivateFailed\":\"Failed to reactivate prompt\"},\"classSuggestion\":{\"title\":\"This looks like a {type} prompt\",\"identityDescription\":\"It names your brand, so it will always be mentioned in answers. Brand prompts are excluded from share of voice and measured on expected messages and drift instead.\",\"comparisonDescription\":\"It names your brand against specific competitors. Comparison prompts are excluded from share of voice and measured on head-to-head verdicts instead. Detected:\",\"accept\":\"Set type to {type}\",\"dismiss\":\"Dismiss\"},\"expectedMessages\":{\"title\":\"Expected messages\",\"description\":\"Define what a good answer to this prompt looks like. \\\"Should appear\\\" messages measure coverage; \\\"should not appear\\\" messages flag unwanted content. Matched only against this prompt's answers.\",\"placeholder\":\"e.g. Available in all 50 states\",\"shouldAppear\":\"Should appear\",\"shouldNotAppear\":\"Should not appear\",\"add\":\"Add\",\"empty\":\"No expected messages yet. Add the facts and messages a good answer should include.\",\"addFailed\":\"Failed to add expected message\",\"saveFirst\":\"Save the prompt first, then define its expected messages here.\",\"savedPartial\":\"Prompt saved, but {count} expected message(s) failed to save. Add them from the prompt editor.\"},\"typeGrid\":{\"discoveryHeading\":\"Discovery prompts\",\"discoveryDescription\":\"How buyers find solutions like yours — these prompts never name your brand and feed share of voice.\",\"subgroups\":{\"core\":\"Core\",\"local\":\"Local\",\"frameworks\":\"Frameworks\"},\"brandHeading\":\"Brand \u0026 Comparison\",\"sovBadge\":\"Excluded from Share of Voice\",\"brandDescription\":\"Prompts that name your brand — asked about it directly, or head-to-head against competitors. Measured on expected messages, drift, and who AI favors.\"}},\"recrawl\":{\"title\":\"Recrawl Frequency\",\"description\":\"See how often search engines revisit your pages. This helps you understand how quickly changes to your site will be reflected in search results.\",\"dateRange\":\"Date Range\",\"tabs\":{\"summary\":\"Summary\",\"pages\":\"Pages\",\"bots\":\"Bots\"},\"summary\":{\"totalPages\":\"Total Pages Crawled\",\"totalPagesDescription\":\"Number of unique pages crawled by search engines\",\"pagesWithMultipleVisits\":\"Pages Revisited\",\"pagesWithMultipleVisitsPercentage\":\"{percentage}% of all crawled pages\",\"noPagesYet\":\"No pages with multiple visits yet\",\"avgRecrawlFrequency\":\"Average Recrawl Time\",\"avgRecrawlFrequencyDescription\":\"How often search engines typically return to your pages\",\"notEnoughData\":\"Not enough data\"},\"pages\":{\"title\":\"Page Recrawl Frequency\",\"description\":\"See how often search engines revisit specific pages on your site\",\"search\":\"Search pages...\",\"columns\":{\"page\":\"Page\",\"visits\":\"Visits\",\"frequency\":\"Frequency\"}},\"bots\":{\"title\":\"Bot Recrawl Frequency\",\"description\":\"See how often different search engines crawl your site\",\"backToBots\":\"Back to bot list\",\"unknownBot\":\"Unknown Bot\",\"botPagesDescription\":\"Pages crawled by this bot\",\"viewPages\":\"View Pages\",\"columns\":{\"bot\":\"Bot\",\"company\":\"Company\",\"pagesCrawled\":\"Pages Crawled\",\"firstVisit\":\"First Visit\",\"lastVisit\":\"Last Visit\",\"frequency\":\"Frequency\"}},\"frequency\":{\"once\":\"Once\",\"hours\":\"Every {hours} hours\",\"days\":\"Every {days} days\"}},\"trafficControl\":{\"title\":\"Traffic Control\",\"description\":\"Control which bots can access your site and configure blocking rules\",\"save\":\"Save Settings\",\"globalSettings\":{\"title\":\"Global Settings\",\"description\":\"Configure site-wide bot blocking rules\"},\"blockAiModelTrainers\":{\"title\":\"Block AI Model Trainers\",\"description\":\"Automatically block bots that train AI models (GPTBot, ClaudeBot, Meta-ExternalAgent, etc.)\"},\"customRules\":{\"title\":\"Custom Rules\",\"description\":\"Create specific blocking and allowing rules for fine-grained control\"},\"search\":{\"placeholder\":\"Search bots, patterns, or companies...\"},\"notifications\":{\"saveSuccess\":\"Traffic control settings saved successfully\",\"saveFailed\":\"Failed to save traffic control settings\"}}},\"analytics\":{\"integrations\":{\"title\":\"Connect Google Analytics\",\"description\":\"Connect your property to traditional analytics platforms like Google Analytics, PostHog, Plausible, and more to track AI traffic from a single dashboard.\",\"error\":\"Failed to load anal
2ytics integrations\",\"active\":\"Active\",\"activeDescription\":\"Enable or disable this integration\",\"google\":{\"title\":\"Google Analytics\",\"setup-cta\":\"How to get your API Secret\",\"connected\":\"Connected to Google Analytics\",\"description\":\"Track AI traffic in Google Analytics\",\"instructions\":\"To connect your property to Google Analytics, you need to create a Google Analytics 4 property and get your Measurement ID.\",\"setup\":\"Set up Google Analytics\",\"connect\":\"Connect Google Analytics\",\"edit\":\"Edit Google Analytics\",\"formDescription\":\"Enter your Google Analytics credentials to connect your property\",\"measurementId\":\"Measurement ID\",\"measurementIdDescription\":\"Your Google Analytics Measurement ID (starts with G-)\",\"apiSecret\":\"API Secret\",\"apiSecretDescription\":\"Your Google Analytics API Secret for enhanced security. This helps ensure that data sent to your property is from Spyglasses and not from another source.\"}}},\"aiReports\":{\"title\":\"AI Visibility Reports\",\"description\":\"Generate and manage AI visibility reports for your property\",\"status\":{\"pending\":\"Pending\",\"processing_discovery\":\"Processing Discovery Queries\",\"running\":\"Running\",\"partial\":\"Partial\",\"complete\":\"Complete\",\"failed\":\"Failed\"},\"actions\":{\"create\":\"Generate Report\",\"delete\":\"Delete\",\"view\":\"View Report\",\"viewUnlockOptions\":\"View Unlock Options\",\"reportProcessing\":\"Processing...\"},\"table\":{\"domain\":\"Domain\",\"status\":\"Status\",\"score\":\"Score\",\"mentions\":\"Mentions\",\"shareOfVoice\":\"Share of Voice\",\"created\":\"Created\",\"completed\":\"Completed\",\"actions\":\"Actions\"},\"empty\":{\"title\":\"No AI reports yet\",\"description\":\"Generate your first AI visibility report to see how your brand appears in AI search results.\",\"descriptionCategory\":\"Run your first AI Visibility Report to see which brands AI names in this market. It writes the first five prompts for you.\",\"action\":\"Generate Report\"},\"sectionToggles\":{\"title\":\"Report Sections\",\"description\":\"Choose which sections are included when you generate a report for this property. The choice is applied to future reports only; already-generated reports keep the sections they were created with.\",\"orgTitle\":\"Default Report Sections\",\"orgDescription\":\"The organization-wide default for which sections new reports include. Any property with its own report-section setting overrides this; otherwise it inherits these defaults.\",\"technicalAudit\":{\"label\":\"Technical audit\",\"description\":\"On-page signals like schema, readability, and crawlability. Most useful for SEO and development teams.\"},\"groundingSearches\":{\"label\":\"Grounding searches\",\"description\":\"How the brand ranks in the web searches AI models run. An SEO/AEO function.\"},\"brandConsistency\":{\"label\":\"Brand consistency\",\"description\":\"How consistently AI models describe the brand across platforms.\"},\"notifications\":{\"saveSuccess\":\"Report sections saved successfully\",\"saveFailed\":\"Failed to save report sections\"}},\"schedule\":{\"title\":\"Scheduled Reports\",\"description\":\"Automatically generate AI visibility reports on a set day each week, month, or quarter.\",\"frequency\":{\"label\":\"Report Frequency\",\"placeholder\":\"Select a schedule\"},\"dayOfWeek\":{\"label\":\"Day of Week\"},\"dayOfMonth\":{\"label\":\"Day of Month\"},\"recipients\":{\"label\":\"Report Recipients\",\"description\":\"These people will be notified by email when each scheduled report is ready.\",\"addMember\":\"Add a team member:\",\"add\":\"Add\",\"addPlaceholder\":\"Enter email address...\",\"remove\":\"Remove\"},\"creditsNote\":{\"title\":\"Credits Required\",\"body\":\"Scheduled reports require credits. If you don't have enough credits when a report is due, we'll send you an email notification instead. Agency plans can run reports on overage.\"},\"notifications\":{\"saveSuccess\":\"Report schedule saved successfully\",\"saveFailed\":\"Failed to save report schedule\"},\"settingsButton\":\"Schedule Settings\"},\"location\":{\"title\":\"Report Location\",\"description\":\"Set a default location for AI visibility reports. This helps generate region-s
2pecific search results that reflect how AI platforms describe your brand in different markets.\",\"currentLocation\":\"Current location\",\"noLocation\":\"No location set\",\"placeholder\":\"Search for a city...\",\"helpText\":\"Location affects how AI platforms respond to local queries about your brand\",\"notifications\":{\"saveSuccess\":\"Report location saved successfully\",\"saveFailed\":\"Failed to save report location\",\"clearSuccess\":\"Report location cleared\"},\"clear\":\"Clear location\",\"indicator\":{\"notSet\":\"No location set\",\"setLocation\":\"Set a location to get region-specific AI search results\",\"configureButton\":\"Configure\"}},\"personProfile\":{\"title\":\"Person Profile Mode\",\"description\":\"Advanced setting for running AI visibility reports on individuals rather than companies or brands.\",\"toggle\":{\"label\":\"Enable person profile mode\"},\"warning\":{\"title\":\"This is an experimental feature\",\"description\":\"When enabled, the following report features will be skipped:\",\"skipDomainValidation\":\"Domain validation (use any placeholder domain)\",\"skipBrandSnapshot\":\"Website crawling and brand snapshot generation\",\"skipConsistencyCheck\":\"Brand consistency scoring against LLM responses\",\"skipTechnicalAnalysis\":\"Technical SEO quality analysis\",\"manualQueries\":\"Discovery queries must be created manually before running reports\"},\"contact\":{\"title\":\"Need help setting this up?\",\"description\":\"Contact us to discuss your use case:\"},\"notifications\":{\"saveSuccess\":\"Person profile mode setting saved\",\"saveFailed\":\"Failed to save person profile mode setting\"}}},\"aiAnalytics\":{\"title\":\"AI Traffic Analytics\",\"description\":\"Analyze AI bot visits and human referrals to understand your AI conversion funnel\",\"metrics\":{\"botVisits\":\"AI Bot Visits\",\"botVisitsDescription\":\"Total visits from AI assistants and crawlers\",\"humanVisits\":\"AI-Referred Visits\",\"humanVisitsDescription\":\"Human visits that came from AI platforms\",\"conversions\":\"Conversions\",\"conversionsDescription\":\"AI bot visits that led to human visits\",\"conversionRate\":\"Conversion Rate\",\"conversionRateDescription\":\"Percentage of bot visits that resulted in human visits within {minutes} minutes\"},\"tabs\":{\"overview\":\"Overview\",\"botTypes\":\"Bot Types\",\"referrers\":\"AI Referrers\",\"timeline\":\"Timeline\"},\"botTypes\":{\"title\":\"Bot Types Performance\",\"description\":\"See which AI bot types are driving the most conversions\",\"noData\":\"No bot type data available\",\"conversions\":\"conversions\",\"botVisits\":\"Bot visits\",\"showingTop\":\"Showing top {count} of {total} bot types\"},\"referrers\":{\"title\":\"AI Referrer Performance\",\"description\":\"See which AI platforms are sending the most human traffic\",\"noData\":\"No referrer data available\",\"converted\":\"converted\",\"humanVisits\":\"Human visits\",\"avgTime\":\"Avg: {minutes}m\",\"noConversions\":\"No conversions\",\"showingTop\":\"Showing top {count} of {total} referrers\"},\"timeline\":{\"title\":\"AI Traffic Timeline\",\"description\":\"Track AI bot visits and human conversions over time\",\"noData\":\"No timeline data available\",\"botVisits\":\"Bot Visits\",\"humanVisits\":\"Human Visits\",\"humanVisitRatio\":\"Human Visit Ratio\",\"totalBotVisits\":\"Total AI Assistant Visits\",\"totalHumanVisits\":\"Total AI-Referred HumanVisits\",\"avgHumanVisitRatio\":\"Avg Human Visit Ratio\"},\"referredPages\":{\"title\":\"AI-Referred Pages\",\"description\":\"Pages receiving clicks from AI platforms like ChatGPT, Perplexity, and Gemini\",\"noData\":\"No AI-referred page data available for this period\",\"visits\":\"visits\",\"showAll\":\"Show All {count} Pages\",\"showLess\":\"Show Less\"}},\"shared\":{\"export\":{\"export\":\"Export\",\"exporting\":\"Exporting...\",\"exportCSV\":\"Export CSV\",\"exportPNG\":\"Export PNG\",\"exportJPG\":\"Export JPG\",\"copyClipboard\":\"Copy to clipboard\",\"copying\":\"Copying...\",\"copied\":\"Copied — paste into a doc\",\"copyFailed\":\"Couldn't copy to clipboard\",\"title\":\"Export Data\",\"csv\":\"Export as CSV\",\"image\":\"Export as Image\",\"png\":\"Export as PNG\",\"jpg\":\"Export as JPG\",\"success\":\"Export completed successfully\",\"error\":\"Export failed. Please try again.\",\"noData\":\"No data available to export\"}},\"technical\":{\"structure\":{\"no_json_ld\":{\"issue\":\"No JSON-LD structured data found\",\"solution\":\"Add JSON-LD structured data to help AI understand your content\",\"explanation\":\"Structured data provides clear context about your organization and website that AI systems can easily parse and understand.\"}
2,\"invalid_json_ld\":{\"issue\":\"Invalid JSON-LD structured data detected\",\"solution\":\"Fix JSON-LD syntax errors to ensure proper parsing\",\"explanation\":\"Malformed JSON-LD prevents AI systems from understanding your structured data, reducing your content's discoverability.\"},\"no_organization\":{\"issue\":\"Missing Organization schema in JSON-LD\",\"solution\":\"Add Organization schema to identify your business entity\",\"explanation\":\"The Organization schema is fundamental for AI systems to understand who owns and operates the website.\"},\"organization_no_name\":{\"issue\":\"Organization entity is missing a 'name' property\",\"solution\":\"Add a 'name' property to your Organization schema\",\"explanation\":\"The name is the most basic identifier for your entity. Without it, AI systems don't know who is behind the content.\"},\"organization_no_sameas\":{\"issue\":\"Organization entity is missing 'sameAs' links to social profiles\",\"solution\":\"Add a 'sameAs' array with URLs to your official social and professional profiles\",\"explanation\":\"'sameAs' links help AI systems connect your website entity to your other official profiles, building a stronger and more trustworthy identity graph.\"},\"no_website\":{\"issue\":\"No WebSite entity found in JSON-LD\",\"solution\":\"Add a WebSite schema to describe the site itself and its functionalities\",\"explanation\":\"The WebSite schema is fundamental for defining the site as an entity and specifying features like its internal search engine.\"},\"no_main_entity\":{\"issue\":\"No main entity (e.g., Article, Product) found on this page\",\"solution\":\"Add a primary schema that accurately describes the main content of this page\",\"explanation\":\"The main entity is the core subject of the page. Without it, AI systems don't know what the page is fundamentally about.\"},\"incomplete_og\":{\"issue\":\"Incomplete Open Graph meta tags\",\"solution\":\"Add missing Open Graph tags (og:title, og:description, og:image)\",\"explanation\":\"Open Graph tags provide essential metadata that AI systems use to understand and represent your content when shared or referenced.\"}},\"accessibility\":{\"missing_alt_text\":{\"issue\":\"Images missing alt text ({count} out of {totalImages} images)\",\"solution\":\"Add descriptive alt text to all images for screen reader compatibility\",\"explanation\":\"Alt text helps both accessibility tools and AI systems understand image content, improving content comprehension and searchability.\"},\"no_h1\":{\"issue\":\"No H1 heading found on this page\",\"solution\":\"Add a single H1 heading that clearly describes the main topic\",\"explanation\":\"H1 headings help both users and AI systems understand the primary topic of a page.\"},\"multiple_h1\":{\"issue\":\"Multiple H1 headings found ({count} total)\",\"solution\":\"Use only one H1 heading per page, convert others to H2 or H3\",\"explanation\":\"Multiple H1 headings confuse screen readers and AI systems about page hierarchy.\"},\"no_main\":{\"issue\":\"No main content landmark found\",\"solution\":\"Wrap your main content in a \u003cmain\u003e element or add role=\\\"main\\\"\",\"explanation\":\"Main landmarks help assistive technologies and AI systems identify the primary content area.\"}},\"readability\":{\"flesch_very_difficult\":{\"issue\":\"Content is very difficult to read (Flesch score: {fleschScore}, target: {target})\",\"solution\":\"Simplify sentence structure and vocabulary to improve readability\",\"explanation\":\"Overly complex text reduces comprehension for both human readers and AI systems, limiting content effectiveness.\"},\"flesch_difficult\":{\"issue\":\"Content readability could be improved (Flesch score: {fleschScore}, target: {target})\",\"solution\":\"Use shorter sentences and simpler words to enhance readability\",\"explanation\":\"Better readability makes your content more accessible to both human readers and AI analysis systems.\"},\"long_sentences\":{\"issue\":\"Sentences are too long (average: {avgWordsPerSentence} words, target: {target})\",\"solution\":\"Break long sentences into shorter, more digestible chunks\",\"explanation\":\"Shorter sentences improve c
2omprehension and make it easier for AI systems to parse and understand your content.\"},\"high_grade_level\":{\"issue\":\"Content requires high education level (grade {gradeLevel}, target: {target})\",\"solution\":\"Use simpler vocabulary and sentence structures\",\"explanation\":\"Content that's too academic may limit accessibility and reduce effectiveness with broader audiences.\"}},\"performance\":{\"unoptimized_images\":{\"issue\":\"Images not optimized for web ({count} out of {totalImages} images)\",\"solution\":\"Convert images to modern formats like WebP or AVIF\",\"explanation\":\"Optimized images load faster, improving user experience and Core Web Vitals scores that AI systems consider.\"},\"no_viewport\":{\"issue\":\"Missing viewport meta tag for mobile optimization\",\"solution\":\"Add \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1\\\"\u003e to your HTML head\",\"explanation\":\"The viewport meta tag ensures proper mobile display, which is essential for accessibility and modern web standards.\"},\"long_title\":{\"issue\":\"Page title is too long ({length} characters)\",\"solution\":\"Shorten page title to under 60 characters for optimal display\",\"explanation\":\"Shorter titles display better in search results and are easier for AI systems to process and understand.\"},\"no_meta_description\":{\"issue\":\"Missing meta description\",\"solution\":\"Add a concise meta description summarizing the page content\",\"explanation\":\"Meta descriptions provide AI systems with clear summaries of page content, improving content understanding and searchability.\"},\"long_meta_description\":{\"issue\":\"Meta description is too long ({length} characters)\",\"solution\":\"Shorten meta description to under 160 characters\",\"explanation\":\"Shorter meta descriptions display better in search results and are more effectively processed by AI systems.\"}},\"recommendations\":{\"json_ld\":{\"title\":\"Implement Structured Data Markup\",\"description\":\"Add comprehensive JSON-LD structured data to help AI systems understand your organization and content\",\"implementation\":\"\u0026lt;h3\u0026gt;Add Organization Schema\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Add this JSON-LD script to your HTML head:\u0026lt;/p\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;script type=\\\"application/ld+json\\\"\u0026gt;{\\n  \\\"@context\\\": \\\"https://schema.org\\\",\\n  \\\"@type\\\": \\\"Organization\\\",\\n  \\\"name\\\": \\\"Your Company Name\\\",\\n  \\\"url\\\": \\\"https://yourwebsite.com\\\",\\n  \\\"logo\\\": \\\"https://yourwebsite.com/logo.png\\\",\\n  \\\"sameAs\\\": [\\n    \\\"https://linkedin.com/company/yourcompany\\\",\\n    \\\"https://twitter.com/yourcompany\\\"\\n  ]\\n}\u0026lt;/script\u0026gt;\u0026lt;/pre\u0026gt;\u0026lt;h3\u0026gt;Add WebSite Schema\u0026lt;/h3\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;script type=\\\"application/ld+json\\\"\u0026gt;{\\n  \\\"@context\\\": \\\"https://schema.org\\\",\\n  \\\"@type\\\": \\\"WebSite\\\",\\n  \\\"name\\\": \\\"Your Website Name\\\",\\n  \\\"url\\\": \\\"https://yourwebsite.com\\\"\\n}\u0026lt;/script\u0026gt;\u0026lt;/pre\u0026gt;\"},\"accessibility\":{\"title\":\"Improve Accessibility Compliance\",\"description\":\"Address accessibility issues to make your content more readable by both humans and AI systems\",\"implementation\":\"\u0026lt;h3\u0026gt;Add Alt Text to Images\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;For each image, add descriptive alt text:\u0026lt;/p\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;img src=\\\"image.jpg\\\" alt=\\\"Descriptive text about the image content\\\"\u0026gt;\u0026lt;/pre\u0026gt;\u0026lt;h3\u0026gt;Fix Heading Structure\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Use proper heading hierarchy (h1 → h2 → h3):\u0026lt;/p\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;h1\u0026gt;Main Page Title\u0026lt;/h1\u0026gt;\\n\u0026lt;h2\u0026gt;Section Title\u0026lt;/h2\u0026gt;\\n\u0026lt;h3\u0026gt;Subsection Title\u0026lt;/h3\u0026gt;\u0026lt;/pre\u0026gt;\"},\"readability\":{\"title\":\"Optimize Content Readability\",\"description\":\"Improve text clarity and simplicity for better human and AI comprehension\",\"implementation\":\"\u0026lt;h3\u0026gt;Shorten Sentences\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Break long sentences into shorter ones (aim for \u0026lt;25 words per sentence).\u0026lt;/p\u0026gt;\u0026lt;h3\u0026gt;Use Simple Language\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Replace complex words with simpler alternatives:\u0026lt;/p\u0026gt;\u0026lt;ul\u0026gt;\u0026lt;li\u0026gt;\\\"utilize\\\" → \\\"use\\\"\u0026lt;/li\u0026gt;\u0026lt;li\u0026gt;\\\"facilitate\\\" → \\\"help\\\"\u0026lt;/li\u0026gt;\u0026lt;li\u0026gt;\\\"implement\\\" → \\\"start\\\" or \\\"do\\\"\u0026lt;/li\u0026gt;\u0026lt;/ul\u0026gt;\u0026lt;h3\u0026gt;Use Active Voice\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Change passive voice to active voice:\u0026lt;/p\u0026gt;\u0026lt;ul\u0026gt;\u0026lt;li\u0026gt;\\\"Mistakes were made\\\" → \\\"We made mistakes\\\"\u0026lt;/li\u0026gt;\u0026lt;li\u0026gt;\\\"The report was written\\\" → \\\"John wrote the report\\\"\u0026lt;/li\u0026gt;\u0026lt;/ul\u0026gt;\"},\"performance\":{\"title\":\"Enhance Page Performance\",\"description\":\"Optimize loading speed and Core Web Vitals for better user experience and AI accessibility\",\"implementation\":\"\u0026lt;h3\u0026gt;Optimize Images\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Convert images to WebP format:\u0026lt;/p\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;picture\u0026gt;\\n  \u0026lt;source srcset=\\\"image.webp\\\" type=\\\"image/webp\\\"\u0026gt;\\n  \u0026lt;img src=\\\"image.jpg\\\" alt=\\\"Description\\\"\u0026gt;\\n\u0026lt;/picture\u0026gt;\u0026lt;/pre\u0026gt;\u0026lt;h3\u0026gt;Add Viewport Meta Tag\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Add to your HTML head:\u0026lt;/p\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1\\\"\u0026gt;\u0026lt;/pre\u0026gt;\u0026lt;h3\u0026gt;Optimize Meta Tags\u0026lt;/h3\u0026gt;\u0026lt;p\u0026gt;Keep titles under 60 characters and descriptions under 160 characters:\u0026lt;/p\u0026gt;\u0026lt;pre\u0026gt;\u0026lt;title\u0026gt;Concise Page Title\u0026lt;/title\u0026gt;\\n\u0026lt;meta name=\\\"description\\\" content=\\\"Brief description of page content\\\"\u0026gt;\u0026lt;/pre\u0026gt;\"}},\"robotsTxt\":{\"status\":{\"green\":\"No significant bot restrictions\",\"yellow\":\"Warning: AI model trainers blocked\",\"red\":\"Critical: AI visitors or crawlers blocked\"},\"wildcardDisallow\":{\"title\":\"Robots.txt Blocks All Crawlers\",\"description\":\"Your robots.txt has a wildcard disallow rule (Disallow: /) that blocks all crawlers, including search engines and AI assistants.\",\"
2impact\":\"Your content will not appear in Google Search, AI search results (Perplexity, Google AI Overviews), or AI assistant responses (ChatGPT, Claude).\",\"actions\":[\"Review your robots.txt file and remove or modify the wildcard disallow rule\",\"If blocking was intentional, consider allowing specific AI crawlers you want to appear in\",\"Test changes at /docs/help/is-robots-txt-blocking-ai-on-your-site\"]},\"blockingAiVisitors\":{\"title\":\"Blocking AI Visitors\",\"description\":\"Your robots.txt blocks AI visitors that cite content in real-time: {blockedBots}.\",\"impact\":\"Your content will not appear in AI search results or AI assistant responses when users ask questions your content could answer.\",\"actions\":[\"Update robots.txt to allow AI visitor user-agents\",\"Consider which AI platforms are important for your audience\",\"Review our guide: /docs/help/is-robots-txt-blocking-ai-on-your-site\"]},\"blockingAiTrainers\":{\"title\":\"Blocking AI Model Trainers\",\"description\":\"Your robots.txt blocks AI model training crawlers: {blockedBots}.\",\"impact\":\"Future AI models will not include your content in their training data. This means AI may have outdated or no knowledge about your brand in future updates.\",\"actions\":[\"This may be intentional (copyright/competitive concerns) - review if this aligns with your goals\",\"If you want future AI to know about your brand, allow training crawlers\",\"Note: Blocking trainers does NOT prevent current AI from citing you in real-time\"]},\"noIssues\":{\"title\":\"Robots.txt Configuration OK\",\"description\":\"Your robots.txt allows AI visitors and search crawlers. No issues detected.\"},\"docsUrl\":\"/docs/help/is-robots-txt-blocking-ai-on-your-site\"}},\"faqGenerator\":{\"title\":\"FAQ Generator\",\"description\":\"Generate and manage FAQ content for this page using AI\",\"trigger\":{\"button\":\"Generate FAQs\",\"buttonMore\":\"Generate More FAQs\",\"confirm\":\"Start Generation\",\"title\":\"Generate FAQ Content\",\"description\":\"This will analyze your page and generate FAQ content. The process may take several minutes.\"},\"status\":{\"pending\":\"Pending\",\"running\":\"Running\",\"complete\":\"Complete\",\"failed\":\"Failed\",\"cancelled\":\"Canceled\"},\"steps\":{\"ingestion\":\"Analyzing page content\",\"keywords\":\"Extracting keywords\",\"brandSnapshot\":\"Building brand context\",\"paa\":\"Harvesting Google PAA questions\",\"social\":\"Discovering social questions\",\"dedup\":\"Deduplicating questions\",\"revise\":\"Revising existing answers\",\"normalize\":\"Normalizing questions\",\"generate\":\"Generating new answers\",\"output\":\"Finalizing output\"},\"items\":{\"title\":\"Generated FAQs\",\"count\":\"{count} {count, plural, one {FAQ} other {FAQs}}\",\"empty\":\"No FAQs generated yet. Click 'Generate FAQs' to create your first set.\",\"needsReview\":\"Needs Review\",\"edit\":\"Edit\",\"save\":\"Save\",\"cancel\":\"Cancel\",\"delete\":\"Delete\",\"confirmDelete\":\"Are you sure you want to delete this FAQ? This action cannot be undone.\",\"originExisting\":\"From existing page\",\"originPaa\":\"From Google PAA\",\"originSocial\":\"From social platforms\",\"originLlmKnowledge\":\"From LLM knowledge\",\"originMixed\":\"Mixed sources\",\"dragHandle\":\"Drag to reorder\",\"whySelected\":\"Why selected?\",\"selectionReason\":\"Why was this question selected?\"},\"export\":{\"title\":\"Export FAQs\",\"description\":\"Export your FAQs in multiple formats for easy integration into your website\",\"generate\":\"Generate Exports\",\"regenerate\":\"Regenerate Exports\",\"regenerating\":\"Regenerating Exports...\",\"exportsReady\":\"Exports ready for {count} FAQ item{count, plural, one {} other {s}}.\",\"copyHtml\":\"Copy HTML\",\"copyMarkdown\":\"Copy Markdown\",\"copyJsonLd\":\"Copy JSON-LD\",\"copyCsv\":\"Copy CSV\",\"downloadCsv\":\"Download CSV\",\"copied\":\"Copied to clipboard!\",\"preview\":\"Preview\",\"noItems\":\"Add some FAQs first before exporting\"},\"notifications\":{\"triggerSuccess\":\"FAQ generation started. Exports will be available in a few minutes.\",\"triggerFailed\":\"Failed to start FAQ generation. Please try again.\",\"deleteSuccess\":\"FAQ deleted successfully\",\"deleteFailed\":\"Failed to delete FAQ. Please try again.\",\"updateSuccess\":\"FAQ updated successfully\",\"updateFailed\":\"Failed to update FAQ. Please try again.\",\"reorderSuccess\":\"FAQs reordered successfully\",\"reorderFailed\":\"Failed to reorder FAQs. Please try again.\",\"generationComplete\":\"FAQ generation complete! {count} {count, plural, one {FAQ} other {FAQs}} generated.\",\"generationFailed\":\"FAQ generation failed. Please try again.\"},\"loading\":\"Loading FAQ generation data...\",\"error\":\"Failed to load FAQ generation data. Please try again.\",\"pageSelector\":{\"title\":\"Select a Page\",\"description\":\"Choose a page from your property to generate FAQs for\",\"searchPlaceholder\":\"Search pages...\",\"noPages\":\"No pages have been added to this property yet. Add pages first to generate FAQs.\",\"addPages\":\"Add Pages\",\"noResults\":\"No pages match your search\",\"pagesCount\":\"{count} {count, plural, one {page} other {pages}} available\"},\"backToPageSelector\":\"Select Different Page\",\"generatingFor\":\"Generating FAQs for\"},\"clientPortal\":{\"title\":\"Client portal\",\"banner\":{\"chip\":\"Client portal\"},\"password\":{\"title\":\"{name} AI visibility\",\"body\":\"This dashboard is private. Enter the password your agency gave you.\",\"label\":\"Password\",\"submit\":\"Open dashboard\",\"invali
2d\":\"That password isn't right.\",\"locked\":\"Too many attempts — try again in {minutes} minutes.\",\"privacyNote\":\"No account, nothing to install — just the password from your agency.\"},\"footer\":{\"preparedBy\":\"Prepared by {agency}\"},\"root\":{\"title\":\"You need the full link\",\"body\":\"This address only works with the link your agency sent you. Please open that link, or ask them to send it again.\"},\"notFound\":{\"title\":\"We couldn't find that page\",\"body\":\"Check the link your agency sent you, or ask them for a new one.\"},\"unavailable\":{\"title\":\"This portal isn't available right now\",\"domainInactive\":\"Please contact your agency and they'll get you back in.\",\"disabled\":\"Please contact your agency and they'll get you back in.\",\"plan\":\"Please contact your agency and they'll get you back in.\",\"ineligible\":\"Please contact your agency and they'll get you back in.\",\"notReady\":\"This portal is being set up — please check back soon.\"}},\"placementScoring\":{\"nav\":\"Placement scoring\",\"org\":{\"title\":\"Placement scoring\",\"subtitle\":\"Score earned media for any brand — a client, a prospect, or a brand you do not track here.\",\"detailTitle\":\"Scoring list\"}},\"pitchLists\":{\"nav\":\"Pitch lists\",\"org\":{\"title\":\"Pitch lists\",\"subtitle\":\"Publisher target lists that span your clients, ready to share with a client for approval or export as a PDF.\",\"detailTitle\":\"Pitch list\"},\"property\":{\"title\":\"Pitch Lists\",\"subtitle\":\"Build the list of publishers you plan to pitch, see which ones AI already cites, and share it with a client for approval.\",\"detailTitle\":\"Pitch list\"},\"status\":{\"TARGET\":\"Target\",\"PITCHED\":\"Pitched\",\"PLACED\":\"Placed\",\"DECLINED\":\"Declined\"},\"shared\":{\"readDocs\":\"Read the docs →\",\"lookingUp\":\"Looking up publisher…\",\"scoring\":\"Scoring…\",\"aipvsHoverTitle\":\"AIPVS {score} · {tier}\",\"aipvsHoverAccess\":\"AI citation access: {pct}% of assistants can read and cite the site.\",\"confidenceExact\":\"Exact confidence.\",\"confidenceEstimated\":\"Estimated confidence.\",\"aipvsHoverBreakdown\":\"The full breakdown is on the publisher page.\",\"openPublisherPage\":\"Open the publisher page →\",\"notTracked\":\"Not tracked\",\"notTrackedReason\":\"Citations are counted against a tracked brand's prompts.\",\"citationsHoverTitle\":\"{count, plural, one {# citation} other {# citations}} in the last {days} days\",\"citationsHoverTitleCapped\":\"At least {count} citations in the last {days} days (the count is capped)\",\"lastCited\":\"Last cited {date}\",\"viewCitations\":\"View the citations →\",\"shared\":\"Shared\",\"private\":\"Private\"},\"explainers\":{\"domainRankLabel\":\"What is Domain Rank?\",\"domainRankTitle\":\"Domain Rank\",\"domainRankBody\":\"DataForSEO Domain Rank: a third-party authority score from 0 to 100, based on the sites that link to the domain. Shown for reference. It is not part of the AI Placement Value Score.\",\"aipvsLabel\":\"What is AIPVS?\",\"aipvsTitle\":\"AI Placement Value Score (AIPVS)\",\"aipvsBody\":\"What a placement on this publisher is worth in search and in AI answers, from 0 to 100. It combines organic authority with how well AI assistants can read and cite the site.\",\"aipvsTiers\":\"Premium 75+, Strong 50–74, Moderate 25–49, Limited under 25.\",\"citationsLabel\":\"What does Citations count?\",\"citationsTitle\":\"Citations\",\"citationsBodyBrand\":\"How often AI assistants cited this publisher in answers to the tracked prompts for {brand} in the last {days} days.\",\"citationsBodyOrg\":\"How often AI assistants cited this publisher in the last {days} days: for the row's brand, or across every tracked brand when the row has none.\",\"citationsWhy\":\"A publisher AI already cites is one your placement is more likely to be read from.\"},\"aiPolicy\":{\"yellowTitle\":\"Blocks some AI crawlers\",\"yellowBody\":\"Some assistants cannot read this site, so a placement here reaches fewer AI answers than its traffic suggests.\",\"redTitle\":\"Blocks most AI crawlers\",\"redBody\":\"Most assistants cannot read or cite new stories here. The placement still has reader and search value.\",\"blocked\":\"blocked\",\"partial\":\"partial\",\"howChecked\":\"How AI access is checked →\"},\"index\":{\"title\":\"Pitch lists\",\"descriptionProperty\":\"Publishers you plan to pitch for this brand. Each list shows which outlets AI already cites for your prompts, how valuable a placement would be, and where each pitch stands.\",\"descriptionOrg\":\"Publishers your team plans to pitch, across every client. Add a brand to a row to score it in that brand's context, or leave it blank for a general media list.\",\"newList\":\"New pitch list\",\"emptyTitle\":\"No pitch lists yet\",\"emptyProperty\":\"Start a list by pasting domains, or add publishers from Publisher Lookup and from the publishers AI cites for your prompts.\",\"emptyOrg\":\"Start a list from a spreadsheet of publishers, with an optional brand and note per row.\",\"colName\":\"Name\",\"colPublishers\":\"Publishers\",\"colBrands\":\"Brands\",\"colPlaced\":\"Placed\",\"colProjects\":\"Projects\",\"colUpdated\":\"Updated\",\"colSharing\":\"Sharing\",\"colActions\":\"Actions\",\"deleteAria\":\"Delete {name}\",\"createTitle\":\"New pitch list\",\"createDescription\":\"Name the list and, if you have them, paste the publishers now. You can always add more later.\",\"nameLabel\":\"Name\",\"namePlaceholder\":\"e.g., Q4 Series C announcement\",\"descriptionLabel\":\"Description\",\"descriptionPlaceholder\":\"e.g., Tier-1 business press for the funding news\",\"optional\":\"(optional)\",\"domainsLabel\":\"Publishers, one domain or URL per line\",\"domainsHint\":\"U
2RLs are trimmed to their domain, so pasting a story link adds its publisher.\",\"noteLabel\":\"Note for these publishers\",\"cancel\":\"Cancel\",\"create\":\"Create\",\"created\":\"Pitch list created\",\"createdWithCount\":\"Pitch list created with {count, plural, one {# publisher} other {# publishers}}\",\"deleteTitle\":\"Delete this pitch list?\",\"deleteBody\":\"“{name}” and its {count, plural, one {# publisher} other {# publishers}} will be removed. Project goals that track this list stay on their projects with no list attached, and its share link stops working.\",\"deleteBodyOrg\":\"“{name}” and its {count, plural, one {# row} other {# rows}} will be removed, and its share link stops working. Scores and brands are kept.\",\"deleteConfirm\":\"Delete\",\"deleted\":\"Pitch list deleted\"},\"detail\":{\"back\":\"Pitch lists\",\"notFound\":\"Pitch list not found.\",\"backToLists\":\"Back to pitch lists\",\"rename\":\"Rename list\",\"renameTitle\":\"Edit pitch list\",\"save\":\"Save\",\"organization\":\"Organization\",\"forBrand\":\"For\",\"publisherCount\":\"{count, plural, one {# publisher} other {# publishers}}\",\"updated\":\"Updated {date}\",\"trackedBy\":\"A goal in {count, plural, one {# project} other {# projects}}\",\"share\":\"Share\",\"csv\":\"CSV\",\"pdf\":\"PDF\",\"exporting\":\"Exporting PDF…\",\"pdfTitle\":\"Pitch List · {name}\",\"addPublishers\":\"Add publishers\",\"addRows\":\"Add rows\",\"removeTitle\":\"Remove {count, plural, one {# publisher} other {# publishers}}?\",\"removeBody\":\"The rows, their statuses and notes are removed from this list. Goal hits these publishers recorded for projects tracking the list are removed too, so influence numbers update to match the list.\",\"removeConfirm\":\"Remove\"},\"kpi\":{\"publishers\":\"Publishers\",\"publishersExplainer\":\"Publishers on this list.\",\"publishersCaption\":\"{count} added in the last 7 days\",\"cited\":\"Already cited\",\"citedExplainer\":\"Share of the list AI cited at least once in answers to your tracked prompts, in the selected window. A cited outlet is one AI already reads for your topics.\",\"citedExplainerOrg\":\"Share of rows with a tracked brand, or no brand, where AI cited the publisher at least once in the selected window. Rows with a scoring-only brand are left out.\",\"citedNone\":\"no tracked brand\",\"citedCaption\":\"{cited} of {total}, {days}d\",\"citedCaptionOrg\":\"{cited} of {total} tracked, {days}d\",\"placed\":\"Placed\",\"placedExplainer\":\"Publishers marked Placed. A scored placement on a Target or Pitched row suggests the change but never makes it for you.\",\"placedCaption\":\"{count} pitched\",\"premiumStrong\":\"Premium + Strong\",\"premiumStrongExplainer\":\"Publishers whose AI Placement Value Score is 50 or higher: a placement there carries real weight in search and in AI answers.\",\"premiumStrongCaption\":\"of {count} scored\"},\"table\":{\"title\":\"Publishers ({count})\",\"titleFiltered\":\"Publishers ({shown} of {total})\",\"description\":\"Status and notes save as you go. Citations count answers to the tracked prompts for {brand} that cited the publisher.\",\"descriptionOrg\":\"Each row is one publisher pitched for the brand beside it. Rows with no brand are scored without brand context and count citations across every tracked brand.\",\"emptyTitle\":\"No publishers on this list yet\",\"emptyProperty\":\"Search for publishers, paste a list of domains, or add them from Publisher Lookup and from the publishers AI cites for your prompts.\",\"emptyOrg\":\"Paste or upload a sheet of publishers, with a brand and a note per row if you have them.\",\"noMatches\":\"No publishers match these filters.\",\"clearFilters\":\"Clear filters\",\"selectAll\":\"Select all publishers on this page\",\"selectOne\":\"Select {domain}\",\"colPublisher\":\"Publisher\",\"colBrand\":\"Brand\",\"colTraffic\":\"Est. Traffic\",\"colDomainRank\":\"Domain Rank\",\"colAipvs\":\"AIPVS\",\"colCitations\":\"Citations\",\"colStatus\":\"Status\",\"colNote\":\"Note\",\"colActions\":\"Actions\",\"statusLabel\":\"Pitch status\",\"statusSince\":\"since {date}\",\"notTrackedReason\":\"{brand} is scored here but not tracked, so there are no prompts to count citations against. Track the brand to see them.\",\"noBrand\":\"No brand\",\"noBrandHint\":\"Scored without brand context\",\"scoringOnly\":\"Scoring only\",\"citationsTruncated\":\"Citation counts are capped in this window; totals are a floor.\"},\"filters\":{\"searchPlaceholder\":\"Search publishers or notes\",\"status\":\"Status\",\"statusAll\":\"Status: all\",\"statusValue\":\"Status: {status}\",\"tier\":\"AIPVS tier\",\"tier_all\":\"AIPVS: all tiers\",\"tier_1\":\"AIPVS: Premium\",\"tier_2\":\"AIPVS: Strong\",\"tier_3\":\"AIPVS: Moderate\",\"tier_4\":\"AIPVS: Limited\",\"tier_unscored\":\"AIPVS: still scoring\",\"cited\":\"Cited\",\"citedAll\":\"Cited: all\",\"citedYes\":\"Cited\",\"citedNo\":\"Not yet cited\",\"window\":\"Citation window\",\"windowValue\":\"Citations: {days} days\",\"sort\":\"Sort\",\"sort_default\":\"Order: as added\",\"sort_traffic\":\"Sort: Est. Traffic\",\"sort_domainRank\":\"Sort: Domain Rank\",\"sort_aipvs\":\"Sort: AIPVS\",\"sort_citations\":\"Sort: Citations\",\"sort_status\":\"Sort: Status\",\"sort_added\":\"Sort: Date added\",\"clear\":\"Clear\"},\"note\":{\"add\":\"Add a note\",\"label\":\"Note\",\"placeholder\":\"Why this outlet, the contact, the angle to lead with\",\"sharedHint\"
2:\"Shown on the shared page.\",\"cancel\":\"Cancel\",\"save\":\"Save\"},\"nudge\":{\"found\":\"Placement found\",\"title\":\"{count, plural, one {A scored placement is live on this publisher} other {# scored placements are live on this publisher}}\",\"pqs\":\"PQS {score}\",\"body\":\"Found in this brand's placements since the publisher was added to the list.\",\"markPlaced\":\"Mark as Placed?\"},\"bulk\":{\"selected\":\"{count, plural, one {# publisher selected} other {# publishers selected}}\",\"setStatus\":\"Set status\",\"addToProject\":\"Add to project\",\"remove\":\"Remove\",\"clear\":\"Clear\"},\"rowActions\":{\"aria\":\"Actions for {domain}\",\"details\":\"Details\",\"addToProject\":\"Add to project\",\"addToCoverage\":\"Add placements to coverage group\",\"scoringLists\":\"Scoring lists\",\"newScoringList\":\"New scoring list…\",\"remove\":\"Remove from list\"},\"toasts\":{\"exported\":\"Pitch list exported as PDF\",\"exportFailed\":\"Could not export the pitch list. Please try again.\",\"exportSlow\":\"The export is taking longer than expected. Please try again later.\",\"statusSet\":\"{count, plural, one {# publisher} other {# publishers}} set to {status}\",\"removed\":\"Removed {count, plural, one {# publisher} other {# publishers}}\",\"sentToCoverage\":\"Placements sent to the scoring list\"},\"share\":{\"title\":\"Share for client approval\",\"description\":\"Anyone with the link can view this list. Nothing on the shared page can be edited.\",\"publicLink\":\"Public link\",\"linkLabel\":\"Share link\",\"copy\":\"Copy\",\"copied\":\"Link copied\",\"copyFailed\":\"Could not copy the link\",\"includeDeclined\":\"Include declined publishers\",\"includeDeclinedLive\":\"Saved with the link. The shared page updates for everyone who has it.\",\"includeDeclinedNext\":\"Applied when you turn the link on.\",\"settingsSaved\":\"Share settings saved\",\"whatClientSees\":\"The client sees each publisher's Est. Traffic, Domain Rank, AIPVS tier, AI citation count for the last 90 days, status and your notes. On agency plans the page carries your agency's name and logo.\",\"preview\":\"Preview the shared page\",\"private\":\"The list is private. Turn the link on to send it to a client for approval.\",\"linkOn\":\"Share link is on\",\"linkOff\":\"Share link turned off. The old link no longer works.\",\"failed\":\"Could not update the share link\"},\"addTo\":{\"titleOne\":\"Add {domain} to a pitch list\",\"titleMany\":\"Add {count, plural, one {# publisher} other {# publishers}} to a pitch list\",\"description\":\"Pick one or more lists, or start a new one.\",\"noLists\":\"No pitch lists yet. Name one below.\",\"alreadyOn\":\"Already on it\",\"newList\":\"New list…\",\"newListLabel\":\"New list\",\"newListPlaceholder\":\"List name\",\"noteLabel\":\"Note\",\"optional\":\"(optional)\",\"notePlaceholder\":\"e.g., Trade press for the CMO survey launch\",\"cancel\":\"Cancel\",\"submit\":\"{count, plural, =0 {Add} one {Add to # list} other {Add to # lists}}\",\"done\":\"{added, plural, one {# publisher} other {# publishers}} added to {lists, plural, one {# list} other {# lists}}\",\"doneWithDuplicates\":\"{added, plural, one {# publisher} other {# publishers}} added to {lists, plural, one {# list} other {# lists}}, {duplicates} already there\",\"failed\":\"Could not add to the pitch list\"},\"addDialog\":{\"title\":\"Add publishers\",\"resultTitle\":\"Publishers added\",\"to\":\"To {list}\",\"tabSearch\":\"Search publishers\",\"tabPaste\":\"Paste domains\",\"searchPlaceholder\":\"Search by name or domain\",\"searchHint\":\"Type at least two characters to search the publishers Spyglasses knows.\",\"noResults\":\"No publishers match “{query}”. Paste the domain on the other tab to add it.\",\"colPublisher\":\"Publisher\",\"colTraffic\":\"Est. Traffic\",\"colDomainRank\":\"Domain Rank\",\"colAipvs\":\"AIPVS\",\"searchFooter\":\"Can't find it? New domains are looked up when you add them. Paste them on the other tab.\",\"pasteLabel\":\"One domain or URL per line\",\"pasteHint\":\"URLs are trimmed to their domain, so pasting a story link adds the publisher. Duplicates and publishers already on the list are skipped.\",\"noteLabel\":\"Note for these publishers\",\"optional\":\"(optional)\",\"notePlaceholder\":\"e.g., Trade press for the CMO survey launch\",\"cancel\":\"Cancel\",\"submit\":\"{count, plural, =0 {Add publishers} one {Add # publisher} other {Add # publishers}}\",\"addOne\":\"Add {domain}\",\"onThisList\":\"On this list\",\"scoredOnAdd\":\"Scored on add\",\"tooMany\":\"Add up to {max} publishers at a time.\",\"failed\":\"Could not add the publishers\",\"resultAdded\":\"{count} added\",\"resultDuplicates\":\"{count} already on the list\",\"resultInvalid\":\"{count} could not be read\",\"resultSkipped\":\"{count, plural, one {# line skipped} other {# lines skipped}}\",\"resultEnriching\":\"New publishers are looked up and scored in the background. Their rows show “Scoring…” until the numbers land, usually within a minute.\",\"addMore\":\"Add more\",\"done\":\"Done\"},\"wizard\":{\"titleCreate\":\"New pitch list\",\"titleAdd\":\"Add rows to “{list}”\",\"description\":\"One row per publisher: the domain, and optionally the brand it is for and a note. A brand is a domain (acme-paint.com) or a product URL. Brands you already track are reused;
2 anything else becomes a hidden brand record used only for scoring.\",\"step_source\":\"Paste or upload\",\"step_mapping\":\"Match columns\",\"step_review\":\"Review brands\",\"step_result\":\"Done\",\"nameLabel\":\"Name\",\"namePlaceholder\":\"e.g., Tier-1 targets, all clients\",\"descriptionLabel\":\"Description\",\"optional\":\"(optional)\",\"required\":\"(required)\",\"tabPaste\":\"Paste\",\"tabUpload\":\"Upload a file\",\"pasteLabel\":\"One row per publisher: the domain, then optionally the brand it is for and a note\",\"pasteHint\":\"Tabs, commas and semicolons all work, so you can paste straight from a spreadsheet. Leave the brand blank for a general media list.\",\"uploadPrompt\":\"Choose a .csv, .tsv or .txt file\",\"uploadHint\":\"Read in your browser. Nothing is saved until you confirm the brands.\",\"chooseFile\":\"Choose file\",\"chooseAnother\":\"Choose another\",\"fileError\":\"Could not read that file.\",\"nameRequired\":\"Give the list a name.\",\"noRows\":\"No rows found. Paste one publisher per line.\",\"tooMany\":\"That is {count} rows. Import up to {max} at a time.\",\"noDomains\":\"No domains found in that column.\",\"brandCheckFailed\":\"Could not check the brands\",\"importFailed\":\"Import failed\",\"cancel\":\"Cancel\",\"continue\":\"Continue\",\"back\":\"Back\",\"colDomain\":\"Domain\",\"colDomainHint\":\"A domain or any URL on the publisher.\",\"colBrand\":\"Brand\",\"colBrandHint\":\"The client domain this pitch is for.\",\"noBrandColumn\":\"No brand column\",\"colNote\":\"Note\",\"colNoteHint\":\"Up to 2,000 characters per row.\",\"noNoteColumn\":\"No note column\",\"columnN\":\"Column {n}\",\"blank\":\"blank\",\"previewTitle\":\"First {shown} of {total} rows\",\"checkBrands\":\"Check brands\",\"reviewSummary\":\"{rows, plural, one {# row} other {# rows}}, {brands, plural, one {# brand} other {# brands}}. Each row's brand sets the context its AIPVS is scored in. Only tracked clients get AI citation counts.\",\"brandsFound\":\"Brands we found ({count})\",\"brandsToCreate\":\"Brands to create ({count})\",\"brandsToCreateHint\":\"Created as hidden scoring-only brands. They stay out of your client list and cost nothing to keep.\",\"noBrandRows\":\"Rows with no brand ({count})\",\"noBrandHint\":\"Scored without brand context: organic authority and AI access only, with no category relevance or brand uplift. Their citations are counted across every tracked brand.\",\"invalidBrands\":\"{count, plural, one {# value we could not read as a brand} other {# values we could not read as a brand}}\",\"invalidBrandLine\":\"{value}: {reason}. Those rows are skipped.\",\"invalidRowLine\":\"{domain}: {reason} ({brand})\",\"kindNew\":\"New scoring-only brand\",\"kindClient\":\"Tracked client\",\"kindScoringOnly\":\"Scoring only\",\"rowCount\":\"{count, plural, one {# row} other {# rows}}\",\"import\":\"{count, plural, one {Import # row} other {Import # rows}}\",\"resultAdded\":\"{count, plural, one {# row added} other {# rows added}}\",\"resultDuplicates\":\"{count} already on this list\",\"resultNoBrand\":\"{count} with no brand\",\"resultMatched\":\"Brands matched ({count})\",\"resultCreated\":\"Brands created ({count})\",\"resultSkipped\":\"{count, plural, one {# row skipped} other {# rows skipped}}\",\"resultEnriching\":\"Publishers are scored in the background. Rows show “Scoring…” until their numbers land.\",\"none\":\"None\",\"done\":\"Done\"},\"public\":{\"typeLabel\":\"Pitch list\",\"loading\":\"Loading pitch list…\",\"forBrand\":\"For {brand}\",\"sharedOn\":\"Shared on {date}\",\"kpiPublishers\":\"Publishers\",\"kpiPremiumStrong\":\"Premium \u0026 Strong\",\"kpiCited\":\"Already cited by AI in the last {days} days\",\"kpiPlaced\":\"Placed\",\"empty\":\"No publishers on this list yet.\",\"colPublisher\":\"Publisher\",\"colBrand\":\"Brand\",\"colTraffic\":\"Est. Traffic\",\"colDomainRank\":\"Domain Rank\",\"colAipvs\":\"AIPVS\",\"colCited\":\"Cited by AI\",\"colStatus\":\"Status\",\"colNote\":\"Note\",\"beingScored\":\"Being scored\",\"notTracked\":\"Not tracked\",\"notYet\":\"Not yet\",\"declinedIncluded\":\"Declined publishers are included on this page.\",\"howToRead\":\"How to read this\",\"defDomainRank\":\"A 0–100 measure of a site's authority, based on the sites that link to it. It comes from DataForSEO and is shown for reference.\",\"defAipvs\":\"What a placement on the site is worth in search and in AI answers, from 0 to 100. Premium is 75 and up, Strong 50–74, Moderate 25–49, Limited under 25.\",\"defCitedBrand\":\"How many times ChatGPT, Gemini, Claude, Perplexity or Google AI Overviews cited the site in answers to the questions {brand} tracks, over the last {days} days.\",\"defCited\":\"How many times ChatGPT, Gemini, Claude, Perplexity or Google AI Overviews cited the site in answers to the questions each brand tracks, over the last {days} days.\",\"readDocs\":\"Read the docs →\",\"footer\":\"Prepared with Spyglasses\",\"notFoundTitle\":\"Pitch list not found\",\"notFoundBody\":\"The link may have been turned off, or it may be mistyped.\",\"goHome\":\"Go back home\",\"metaTitle\":\"Pitch list: {name}\",\"metaTitleBrand\":\"Pitch list for {brand}: {name}\",\"metaDescription\":\"A publisher pitch list shared by {organization}.\"},\"publisher\":{\"metaTitle\":\"{domain} · Publisher\",\"back\":\"Pitch lists\",\"visitSite\":\"Visit site\",\"addToPitchList\":\"Add to pitch list\",\"addToProject\":\"Add to project\",\"scoredFor\"
2:\"Scored for \u003cstrong\u003e{brand}\u003c/strong\u003e ({domain}). Category relevance and brand uplift are applied.\",\"scoredForNoDomain\":\"Scored for \u003cstrong\u003e{brand}\u003c/strong\u003e. Category relevance and brand uplift are applied.\",\"noBrandTitle\":\"No brand context:\",\"noBrandBody\":\"uplift and category relevance are not applied. Open this page from a pitch-list row that names a brand to score the publisher for that client and see its AI citations.\",\"aipvs\":\"AIPVS\",\"aipvsCaption\":\"{context} · {confidence} confidence\",\"forBrand\":\"For {brand}\",\"withoutBrand\":\"Without brand context\",\"confidenceExact\":\"exact\",\"confidenceEstimated\":\"estimated\",\"aipvsUnavailable\":\"This publisher could not be scored yet.\",\"traffic\":\"Est. Traffic\",\"trafficCaption\":\"Monthly organic visits (DataForSEO)\",\"domainRank\":\"Domain Rank\",\"domainRankCaption\":\"Third-party reference (DataForSEO). Not part of AIPVS.\",\"harmonic\":\"Harmonic Centrality\",\"harmonicLabel\":\"What is Harmonic Centrality?\",\"harmonicBody\":\"How central the domain is in Common Crawl's web graph, the map of links between sites. It is ranked against the top {tracked} domains we track, and a lower rank is better.\",\"harmonicWhy\":\"It is the web graph signal inside the organic authority layer of AIPVS.\",\"harmonicTop\":\"Top {pct}%\",\"harmonicRank\":\"rank {rank}\",\"harmonicOfTracked\":\"of {tracked} tracked\",\"harmonicUnranked\":\"Not in the tracked top {tracked}\",\"harmonicCaption\":\"Found in the web graph dataset\",\"notAvailable\":\"N/A\",\"breakdownTitle\":\"AI Placement Value Score\",\"breakdownSubtitle\":\"Three layers: search authority, whether assistants can read and cite the site, and its presence in training data.\",\"citedTitle\":\"Cited for {brand}\",\"citedSubtitle\":\"Answers to the tracked prompts for {brand} that cited {domain}.\",\"citedNotTracked\":\"{brand} is scored here but not tracked, so there are no prompts to count citations against.\",\"citedWindow\":\"in the last {days} days\",\"citedWindowLast\":\"in the last {days} days, last on {date}\",\"citedNone\":\"AI has not cited this publisher for these prompts in the window.\",\"viewAllCitations\":\"View all {count} citations\",\"noBrandSectionTitle\":\"AI citations and placements\",\"noBrandSectionBody\":\"Both are counted per brand: citations against a tracked brand's prompts, placements against the brand they mention. This view has no brand, so there is nothing to show.\",\"placementsTitle\":\"Placements on this publisher\",\"placementsSubtitle\":\"Scored placements for {brand}, newest first.\",\"placementsNoBrand\":\"Placements are tracked per brand. Open this page with a brand to see them.\",\"placementsEmpty\":\"No placements for {brand} on this publisher yet.\",\"pqs\":\"PQS\",\"scoring\":\"Scoring…\",\"onListsTitle\":\"On pitch lists\",\"onListsEmpty\":\"Not on any pitch list yet.\",\"openToAi\":\"Open to AI crawlers\",\"blocksSome\":\"Blocks some AI crawlers\",\"blocksMost\":\"Blocks most AI crawlers\"},\"lookup\":{\"select\":\"Select {domain}\",\"enriching\":\"Looking up publisher…\",\"traffic\":\"Est. Traffic\",\"domainRank\":\"Domain Rank\",\"aipvs\":\"AIPVS\",\"addToPitchList\":\"Add to pitch list\",\"addToProject\":\"Add to project\",\"details\":\"Details\",\"bulkAddToPitchList\":\"Add to pitch list ({count})\",\"bulkAddToProject\":\"Add to project ({count})\",\"clearSelection\":\"Clear selection\",\"searching\":\"Searching…\",\"noResults\":\"No publishers match “{query}”. Use “Add New” to add a publisher by its exact domain.\",\"emptyTitle\":\"Look up a publisher to get started\",\"emptyBody\":\"Search for publishers above, or use “Add New” to add a publisher by domain.\"},\"goal\":{\"optionLabel\":\"Pitch list\",\"optionHint\":\"Hit when any publisher on the list is cited.\",\"selectLabel\":\"Pitch list\",\"placeholder\":\"Select a pitch list\",\"option\":\"{name} ({count, plural, one {# publisher} other {# publishers}})\",\"empty\":\"No pitch lists on this brand yet.\",\"emptyLink\":\"Create one on the Pitch Lists page.\",\"required\":\"Select a pitch list\",\"invali
2d\":\"That pitch list can't be added to this project. Only lists on this brand can be project goals.\",\"label\":\"Pitch list: {name} ({count, plural, one {# publisher} other {# publishers}})\",\"deleted\":\"Deleted list\"}},\"personas\":{\"page\":{\"title\":\"Personas\",\"navLabel\":\"Personas\",\"intro\":\"Synthetic buyers built from your customer segments. Add personas to a project and every prompt in it also runs as each one, daily, so Perspectives can show how AI answers them next to your baseline.\",\"freeToCreate\":\"Personas are free to create and edit.\",\"generate\":\"Generate personas\",\"newPersona\":\"New persona\",\"untitledProject\":\"Untitled project\",\"summary\":{\"withSegments\":\"\u003cstrong\u003e{active} active\u003c/strong\u003e · {covered} of {segments} segments covered · {onProjects} on a project\",\"noSegments\":\"\u003cstrong\u003e{active} active\u003c/strong\u003e · {onProjects} on a project\"},\"showArchived\":\"Show archived ({count})\",\"allArchived\":\"Every persona is archived. Restore one from the archived list, or create a new one.\",\"archivedSection\":{\"title\":\"Archived\",\"body\":\"Archived personas don't run. Their past answers stay in Perspectives; restore one to use it again.\"},\"footer\":{\"notOnProject\":\"Not on a project yet\",\"projectsEnded\":\"Its projects have ended\",\"addToProject\":\"Add to a project\",\"runsOn\":\"Runs daily on \u003cstrong\u003e{projects}\u003c/strong\u003e\",\"perspectives\":\"Perspectives\"},\"notices\":{\"created\":\"Created {label}. Add it to a project to start daily answers.\",\"createdForSegment\":\"{count, plural, one {Created 1 persona for {segment}. Add it to a project to see how AI answers it.} other {Created # personas for {segment}. Add them to a project to see how AI answers each one.}}\",\"createdMany\":\"{count, plural, one {Created 1 persona. Add it to a project to see how AI answers it.} other {Created # personas. Add them to a project to see how AI answers each one.}}\",\"saved\":\"Saved {label}.\",\"savedVersion\":\"Saved {label} as version {version}. Trend charts mark today as the change.\",\"archived\":\"Archived {label}. Its daily runs stop after today; answers so far stay in Perspectives.\",\"archivedIdle\":\"Archived {label}. Answers so far stay in Perspectives.\",\"restored\":\"Restored {label}. Its daily runs resume on {projects}.\",\"restoredIdle\":\"Restored {label}. Add it to a project to start daily answers again.\",\"undo\":\"Undo\",\"addToProject\":\"Add to a project\",\"openProjects\":\"Open projects\",\"dismiss\":\"Dismiss\"},\"archiveDialog\":{\"title\":\"Archive {label}?\",\"runsOn\":\"{count, plural, one {This persona runs daily on this project:} other {This persona runs daily on these projects:}}\",\"body\":\"Archiving stops those runs after today. Answers so far stay in Perspectives, and you can restore the persona any time.\",\"keep\":\"Keep running\",\"confirm\":\"Archive persona\"},\"empty\":{\"title\":\"No personas yet\",\"body\":\"A persona is one buyer: their role, their company, the tools they run and what they need. Generate a stakeholder panel from a customer segment in a few seconds, then add it to a project to see how AI answers each person.\",\"free\":\"Personas are free to create.\",\"startFrom\":\"Start from one of your customer segments\",\"generate\":\"Generate personas\",\"createOwn\":\"Create one yourself\"},\"errors\":{\"load\":\"We couldn't load your personas.\",\"retry\":\"Try again\",\"save\":\"Could not save the persona. Try again.\",\"archive\":\"Could not archive the persona. Try again.\",\"restore\":\"Could not restore the persona. Try again.\",\"restoreCredits\":\"Restoring this persona starts its daily runs again, and your organization doesn't have the credits for them yet. Add credits, then restore it.\"},\"addToProject\":{\"title\":\"Add {label} to a project\",\"titleMany\":\"{count, plural, one {Add # persona to a project} other {Add # personas to a project}}\",\"body\":\"Choose a project. Its persona picker opens with this selection ticked, and you'll see the change to your daily runs before anything saves.\",\"project\":\"Project\",\"placeholder\":\"Choose a project\",\"alreadyOn\":\"Already on this project\",\"noProjects\":\"You don't have an active project yet. Create one, then add personas from its Personas tab.\",\"createProject\":\"Create a project\",\"continue\":\"Continue\",\"cancel\":\"Cancel\",\"untitledProject\":\"Untitled project\"}},\"editor\":{\"titleNew\":\"New persona\",\"titleEdit\":\"Edit {label}\",\"descriptionNew\":\"Describe one buyer. We turn the fields into one first-person line and put it in front of each prompt. Personas are free to create.\",\"descriptionEdit\":\"Change anything. Only changes to the text we send start a new version.\",\"versionPill\":\"Version {version}\",\"newVersion\":{\"title\":\"Saving starts version {version}\",\"runningBody\":\"This persona runs daily on a project. From the next daily run AI sees the new wording, so trend charts mark {date} as a version change. Earlier answers stay under version {current}.\",\"idleBody\":\"Saving starts version {version}. This persona isn't running on a project, so no trend line changes.\"},\"changed\":\"Changed: {fields}\",\"displayOnly\":\"No new version. The name, role group and segment only change how this persona is shown and grouped, not what we send.\",\"archive\":\"Archive persona\",\"cancel\":\"Cancel\",\"create\":\"Create persona\",\"saveChanges\":\"Save changes\",\"saveVersion\":\"Save as version {version}\"},\"fields\":{\"sections\":{\"who\":{\"title\":\"Who they are\",\"description\":\"Their seat at the table decides what AI weighs for them.\"},\"company\":{\"title\":\"Their company\",\"description\":\"Size, industry and region are the first things AI asks about.\"},\"situation\":{\"title\":\"Their situation\",\"description\":\"Current tools, goals and limits: the details that change which product fits.\"}},\"labels\":{\"name\":\"Name\",\"nameOptional\":\"Name (optional)\",\"t
2itle\":\"Title\",\"roleGroup\":\"Role group\",\"seniority\":\"Seniority\",\"decisionRole\":\"Role in the purchase\",\"segment\":\"Segment\",\"companySize\":\"Company size\",\"industry\":\"Industry\",\"region\":\"Region\",\"techStack\":\"Tech stack\",\"priorities\":\"Priorities\",\"constraints\":\"Constraints\",\"contextOverride\":\"Custom context\"},\"hints\":{\"shownAs\":\"Shown as \u003cstrong\u003e{label}\u003c/strong\u003e\",\"segment\":\"Groups results in Perspectives. Not sent.\",\"name\":\"Shown next to the role, for your team only. It is never sent to AI.\"},\"placeholders\":{\"title\":\"e.g. CFO\",\"name\":\"e.g. Sam\",\"industry\":\"e.g. B2B SaaS\",\"region\":\"e.g. United States\",\"techStack\":\"Add a tool, e.g. NetSuite\",\"priorities\":\"e.g. Close the books in under five days\",\"constraints\":\"e.g. No dedicated AP clerk\"},\"notSet\":\"Not set\",\"noSegment\":\"No segment\",\"addName\":\"Add a name (optional)\",\"removeName\":\"Remove\",\"override\":{\"label\":\"Write what we send myself\",\"description\":\"We send your text instead of the one built from the fields. The fields still group results in Perspectives.\",\"hint\":\"First person, one paragraph, facts only. Up to {max} characters; line breaks become spaces.\"},\"seniorities\":{\"c_level\":\"C-level\",\"vp\":\"VP\",\"director\":\"Director\",\"manager\":\"Manager\",\"individual_contributor\":\"Individual contributor\"},\"list\":{\"add\":\"Add\",\"addAria\":\"Add item\",\"remove\":\"Remove {item}\",\"atLimit\":\"Up to {max} items\"}},\"generate\":{\"steps\":{\"segment\":\"Segment\",\"mode\":\"Who to draft\",\"review\":\"Review\"},\"loadingLines\":{\"snapshot\":\"Reading your brand snapshot\",\"drafting\":\"Drafting buyers for this segment\",\"writing\":\"Writing what we send for each one\"},\"anySegment\":\"your customers\",\"segment\":{\"title\":\"Generate personas\",\"body\":\"Start from one of your customer segments. We draft buyers from your brand snapshot; you review them before anything is saved.\"},\"mode\":{\"title\":\"Who should we draft for {segment}?\",\"titleAny\":\"Who should we draft?\",\"body\":\"One persona is a quick first read. A panel shows how AI answers each person on the buying committee.\"},\"loading\":{\"titlePanel\":\"Drafting a stakeholder panel\",\"titleOne\":\"Drafting a persona\",\"body\":\"For {segment}. This takes a few seconds.\"},\"review\":{\"titleOne\":\"Review your draft\",\"titleMany\":\"Review {count} drafts\",\"bodyPanel\":\"Stakeholder panel for {segment}. Keep the ones that fit, edit anything, then create them. Personas are free to create.\",\"bodyOne\":\"One persona for {segment}. Keep it if it fits, edit anything, then create it. Personas are free to create.\",\"editing\":\"Editing {label}\",\"done\":\"Done\",\"editAria\":\"Edit {label}\",\"keepAria\":\"Keep {label}\",\"edited\":\"Edited before creating\"},\"error\":{\"title\":\"We couldn't draft personas\",\"failed\":\"Drafting didn't work this time. Nothing was saved, and you can try again.\",\"snapshotMissing\":\"Personas are drafted from your brand snapshot, and this property doesn't have one yet. Build the snapshot first, then come back.\",\"generic\":\"Something went wrong while drafting. Nothing was saved. Try again in a moment.\"},\"segmentLegend\":\"Customer segment\",\"modeLegend\":\"What to draft\",\"segmentNoPersonas\":\"No personas yet\",\"segmentPersonaCount\":\"{count, plural, one {# persona already} other {# personas already}}\",\"noSegments\":\"Your brand snapshot has no customer segments yet, so we'll draft from the rest of it. Add segments to the snapshot to draft for a specific group.\",\"openSnapshot\":\"Open the brand snapshot\",\"modeOne\":{\"title\":\"One persona\",\"body\":\"One buyer who represents {segment}.\"},\"modePanel\":{\"title\":\"Stakeholder panel\",\"body\":\"3 to 5 people on the buying committee: who signs, who runs the review, who uses it every day.\"},\"footer\":{\"selected\":\"{kept} of {total} selected\",\"nothingRuns\":\"Nothing runs until you add personas to a project.\",\"free\":\"Personas are free to create.\"},\"cancel\":\"Cancel\",\"back\":\"Back\",\"next\":\"Next\",\"generate\":\"Generate drafts\",\"tryAgain\":\"Try again\",\"create\":\"{count, plural, one {Create 1 persona} other {Create # personas}}\",\"createFailed\":\"Could not create the personas. Try again.\"},\"claim\":{\"pageTitle\":\"Choose a property\",\"eyebrow\":\"From the free prompt generator\",\"title\":\"Where should these go?\",\"intro\":\"Choose the property for the prompts and buyer personas you generated for {domain}.\",\"legend\":\"Property\",\"createNew\":\"Create a new property for {domain}\",\"createMeta\":\"Brand · uses the snapshot we already built\",\"recommended\":\"Recommended\",\"addTo\":\"Add to {name}\",\"alreadyTracked\":\"Already tracked\",\"optionMeta\":\"{domain} · {prompts, plural, one {# prompt} other {# prompts}}\",\"inOrganization\":\"in {organization}\",\"differentBusiness\":\"These prompts and personas were built for {domain}, so they describe a different business than {name}. Brand prompts ask about that brand by name.\",\"continue\":\"Continue\",\"creating\":\"Setting up {domain}\",\"createFailed\":\"We couldn't set up that property. Try again.\",\"noProperties\":\"There's no property to add these to yet. Open your dashboard to add one, then use the link from your results again.\",\"dashboard\":\"Go to your dashboard\",\"onboardingPrefill\":\"We filled this in from the prompts you generated. You'll choose what to bring in next.\"},\"import\":{\"pageTitle\":\"Import prompts and personas\",\"eyebrow\":\"From the free prompt generator\",\"title\":\"Bring in y
2our prompts and buyer personas for {domain}\",\"intro\":\"You generated {prompts, plural, one {# prompt} other {# prompts}} and {personas, plural, one {# buyer persona} other {# buyer personas}} on {date}. Keep what you want, and we'll track how AI answers them every day.\",\"introNoPersonas\":\"You generated {prompts, plural, one {# prompt} other {# prompts}} on {date}. Keep what you want, and we'll track how AI answers them every day.\",\"viewOriginal\":\"View the original results\",\"selectAll\":\"Select all\",\"clear\":\"Clear\",\"selectedCount\":\"{n} of {total} selected\",\"groupCount\":\"{n} of {total}\",\"property\":{\"title\":\"Property\",\"trackedDescription\":\"{domain} is already tracked, so everything goes there.\",\"newDescription\":\"We set up {name} for {domain}, so everything goes there.\",\"otherDescription\":\"Everything goes into {name}.\",\"alreadyTracked\":\"Already tracked\",\"newBadge\":\"New\",\"meta\":\"{domain} · {prompts, plural, one {# prompt} other {# prompts}} · {personas, plural, one {# persona} other {# personas}}\",\"duplicatesNote\":\"We add these next to what's already there. Any prompt you already have word for word is skipped, so nothing runs twice.\",\"generatedNote\":\"These are the prompts we generated for {domain}. Keep the ones you want, and we'll remove the ones you untick.\",\"duplicatesCount\":\"{count, plural, one {# of the selected prompts is already here word for word, so we'll skip it.} other {# of the selected prompts are already here word for word, so we'll skip them.}}\",\"differentBusiness\":\"These prompts and personas were built for {domain}, so they describe a different business than {name}. Brand prompts ask about that brand by name.\",\"choose\":\"Choose another property\"},\"prompts\":{\"title\":\"Prompts\",\"description\":\"Everything is selected. Untick anything you don't want to track.\",\"selectGroup\":\"Select all {group} prompts\",\"brandNote\":\"Brand prompts run once each. Personas don't ask them.\"},\"personas\":{\"title\":\"Buyer personas\",\"description\":\"Creating personas is free. Edit or archive them any time.\",\"importLabel\":\"Import {label}\",\"none\":\"This generation has no buyer personas. You can generate them from your customer segments on the Personas page any time.\"},\"project\":{\"title\":\"Project\",\"description\":\"Optional. This is what tracks how AI answers each buyer.\",\"toggle\":\"Create a project that asks as these personas\",\"toggleHelp\":\"Every discovery prompt in the project also runs once a day as each persona. Your headline numbers stay the same; persona answers get their own view.\",\"needsPersona\":\"Select at least one persona to create a persona project. You can attach personas to any project later.\",\"needsDiscovery\":\"Select at least one discovery prompt to create a persona project. Brand prompts run without personas.\",\"name\":\"Project name\",\"defaultName\":\"{brand} buyers\",\"discoveryPrompts\":\"Discovery prompts\",\"timesPersonas\":\"× Personas\",\"equalsRuns\":\"= Persona runs a day\",\"platforms\":\"Personas ask on {platforms}. Google AI Overviews and your {count, plural, one {# brand prompt} other {# brand prompts}} run without them.\",\"platformsNoBrand\":\"Personas ask on {platforms}. Google AI Overviews run without them.\"},\"summary\":{\"title\":\"Daily runs\",\"plan\":\"Your plan · {included} included\",\"unlimited\":\"Your plan · unlimited daily runs\",\"noPlan\":\"Pay as you go · billed in credits\",\"howCounted\":\"How daily runs are counted\",\"howCountedBody\":\"One run is one prompt checked once a day. Prompts run inside a project: each prompt counts once, and a project with personas adds one run per discovery prompt per persona.\",\"howCountedBilling\":\"Runs past your plan bill at {credits, plural, one {# credit} other {# credits}} each per 30 days. Creating personas is always free.\",\"meterLabel\":\"{after} daily runs after import, {included} included in your plan\",\"meterLabelNoPlan\":\"{after} daily runs after import\",\"inUse\":\"Already in use\",\"importedPrompts\":\"Imported prompts\",\"personaRuns\":\"Persona runs\",\"personaMath\":\"{prompts, plural, one {# discovery prompt} other {# discovery prompts}} × {personas, plural, one {# persona} other {# personas}}\",\"noProjectPrompts\":\"No project, so they don't run yet\",\"noProject\":\"No project, so personas don't run yet\",\"total\":\"Total after import\",\"ofIncluded\":\"/ {included}\",\"nothingSelected\":\"Nothing selected yet.\",\"checking\":\"Checking your daily runs.\",\"noRuns\":\"No new daily runs. Prompts start running once they're in a project.\",\"noChange\":\"No change to your daily runs. These already run.\",\"overPlan\":\"{count} over your plan\",\"included\":\"Included in your plan\",\"payg\":\"Billed in credits\",\"added\":\"+{net} runs/day, all included in your plan\",\"addedBilled\":\"+{net} runs/day: {included} included, {billed} billed ≈ {credits, plural, one {# credit} other {# credits}} per 30 days\",\"paygSummary\":\"+{net} runs/day ≈ {credits, plural, one {# credit} other {# credits}} per 30 days\",\"overHelp\":\"Choose fewer personas or prompts to stay inside your plan, or keep them all and the extra runs bill as credits.\",\"needsCredits\":\"Needs more credits\",\"insufficient\":\"These runs need {required, plural, one {# credit} other {# credits}} up front, and you have {balance}. Add credits, choose fewer personas or prompts, or turn off the project for now.\",\"buyCredits\":\"Add credits\",\"brandNote\":\"Persona runs apply to discovery prompts only. Your {count, plural, one {# brand prompt runs} other {# brand prompts run}} once each.\",\"import\":\"Import\",\"importBoth\":\"Import {prompts, plural, one {# prompt} other {# prompts}} and {personas, plural, one {# persona} other {# personas}}\",\"importPrompts\":\"Import {prompts, plural, one {# prompt} other {# prompts}}\",\"importPersonas\":\"Import {personas, plural, one {# persona} other {# personas}}\",\"alsoCreates\":\"Also creates the “{name}” project.\",\"skip\":\"Skip for now\",\"skipNote\":\"You can import it later from the Personas page.\"},\"steps\":{\"opening\":\"Opening {name}\",\"prompts\":\"Adding {count, plural, one {# prompt} other {# prompts}}\",\"personas\":\"Creating {count, plural, one {# buyer persona} other {# buyer personas}}\",\"project\":\"Creating the “{name}” project\"},\"done\":{\"title\":\"{name} is ready\",\"bodyProject\":\"Your prompts and buyer personas are in. The first answers arrive today, then every day after that.\",\"bodyPersonas\":\"Your prompts and buyer personas are in. Personas start answering when you add them to a project.\",\"bodyPersonasOnly\":\"Your buyer personas are in. They start answering when you add them to a project.\",\"bodyPrompts\":\"Your prompts are in. They run daily once they're in a project.\",\"bodyNothingNew\":\"Everything you selected was already in {name}, so there was nothing new to add.\",\"prompts\":\"{count, plural, one {# prompt} other {# prompts}}\",\"promptsMeta\":\"Added to {name}\",\"promptsSkipped\":\"Added to {name}. {count, plural, one {# was already there, so we skipped it.} other {# were already there, so we skipped them.}}\",\"promptsAlreadyThere\":\"Already in {name}\",\"personas\":\"{count, plural, one {# buyer persona} other {# buyer personas}}\",\"personasAlreadyThere\":\"{labels} · Already in {name}\",\"personasSomeAlreadyThere\":\"{labels} · {count, plural, one {# was already there} other {# were already there}}\",\"projectMeta\":\"New project · asks as {count, plural, one {# persona} other {# personas}}\",\"viewPrompts\":\"View prompts\",\"viewPersonas\":\"View personas\",\"openProject\":\"Open project\",\"firstAnswersToday\":\"First answers today\",\"usage\":\"You're using {used} of the {included} daily runs in your plan.\",\"usageUnlimited\":\"You're using {used} daily runs, all included in your plan.\",\"usageBilled\":\"You're using {used}
2 daily runs, and your plan includes {included}. The {billed} extra runs bill at {credits, plural, one {# credit} other {# credits}} each per 30 days.\",\"usageNoPlan\":\"You're using {used} daily runs. Each bills at {credits, plural, one {# credit} other {# credits}} per 30 days.\",\"projectSkipped\":\"We couldn't create the project: its daily runs need more credits than your organization has right now. Add credits, then add these personas to a project.\"},\"status\":{\"loadingLabel\":\"Loading your generation\",\"expiredTitle\":\"This generation has expired\",\"expiredBody\":\"The prompts and personas from this link for \u003cstrong\u003e{domain}\u003c/strong\u003e are no longer available.\",\"expiredBodyNoDomain\":\"The prompts and personas from this link are no longer available.\",\"expiredAgain\":\"Run the generator again with the same domain. It takes about a minute, and you can bring the new prompts and personas straight in from the results.\",\"generateAgain\":\"Generate again\",\"dashboard\":\"Go to your dashboard\",\"notFoundTitle\":\"We couldn't find that generation\",\"notFoundBody\":\"The link may be incomplete. Open it again from your results page or your email, or run the generator for a fresh set.\",\"openGenerator\":\"Open the prompt generator\",\"claimedTitle\":\"This generation is already in use\",\"claimedBody\":\"Another organization imported these prompts and personas. Run the generator for your domain to get a set of your own.\",\"errorTitle\":\"We couldn't load this import\",\"errorBody\":\"Something went wrong on our side. Try again in a minute.\",\"retry\":\"Try again\"},\"errors\":{\"import\":\"We couldn't import that. Try again.\",\"insufficient\":\"The daily runs this import starts need more credits than your organization has. Add credits, choose fewer personas or prompts, or turn off the project for now.\",\"expired\":\"This generation can no longer be imported. Run the generator again for a fresh set.\",\"claimed\":\"Another organization imported this generation. Run the generator for your domain to get a set of your own.\"},\"banner\":{\"title\":\"Your generated prompts and personas are ready to import\",\"body\":\"Bring in the prompts and buyer personas you made with the free prompt generator.\",\"action\":\"Import them\",\"dismiss\":\"Dismiss\"}},\"segmentTile\":{\"count\":\"{count, plural, one {# persona} other {# personas}}\",\"create\":\"Create personas\",\"summaryWithout\":\"{count, plural, one {# segment has no personas yet. See how AI answers the people who buy from you.} other {# segments have no personas yet. See how AI answers the people who buy from you.}}\",\"summaryAll\":\"Every segment has personas. Add more to cover the whole buying committee.\",\"cta\":\"Create personas\",\"created\":\"{count, plural, one {Created 1 persona.} other {Created # personas.}}\",\"openPersonas\":\"Open personas\"},\"card\":{\"archived\":\"Archived\",\"edited\":\"Edited · v{version}\",\"editedOn\":\"Edited · v{version} · {date}\",\"firstAnswersToday\":\"First answers today\",\"editAction\":\"Edit {label}\",\"archiveAction\":\"Archive {label}\",\"restoreAction\":\"Restore {label}\",\"techStack\":\"Current tools\",\"priorities\":\"Priorities\",\"constraints\":\"Constraints\",\"whatWeSend\":\"What we send\",\"whatWeWouldTellAi\":\"What we'd tell AI as this buyer\",\"asThisBuyer\":\"As this buyer\",\"preview\":{\"characters\":\"{count} / {max} characters\",\"meterLabel\":\"Context length\",\"empty\":\"Fill in the fields to see what we send.\",\"overrideCut\":\"Your custom text is {count} characters. We send the first {max}.\",\"sentWithPrompt\":\"Sent with a prompt\",\"combinedCount\":\"{count} / {max}\",\"overLimit\":\"Over the {max}-character limit. Shorten the persona or the prompt so it can run.\",\"hint\":\"We add this line in front of each prompt, word for word, so only the asker changes. AI Overviews runs without personas.\"},\"roleGroups\":{\"finance\":\"Finance\",\"it\":\"IT\",\"operations\":\"Operations\",\"executive\":\"Executive\",\"end_user\":\"End user\",\"procurement\":\"Procurement\",\"marketing\":\"Marketing\",\"sales\":\"Sales\",\"other\":\"Other\"},\"decisionRoles\":{\"economic_buyer\":\"Economic buyer\",\"champion\":\"Champion\",\"technical_evaluator\":\"Technical evaluator\",\"end_user\":\"End user\",\"gatekeeper\":\"Gatekeeper\"},\"companySizes\":{\"1-10\":\"1 to 10 employees\",\"11-50\":\"11 to 50 employees\",\"51-200\":\"51 to 200 employees\",\"201-500\":\"201 to 500 employees\",\"501-1000\":\"501 to 1,000 employees\",\"1001-5000\":\"1,001 to 5,000 employees\",\"5000+\":\"More than 5,000 employees\"}}},\"workflows\":{\"nav\":\"Workflows\",\"page\":{\"title\":\"Workflows\",\"subtitle\":\"Pick what you are trying to do. Each workflow shows the steps in order and how to know y
2ou are done.\",\"backToLibrary\":\"Workflow library\"},\"filters\":{\"all\":\"All\",\"agencies\":\"Agencies\",\"pr\":\"PR \u0026 Comms\",\"inhouse\":\"In-house\",\"content\":\"Content\",\"count\":\"{shown} of {total} workflows\"},\"card\":{\"notStarted\":\"Not started\",\"startAgain\":\"Start again\",\"open\":\"Open {title}\",\"steps\":\"{count, plural, one {# step} other {# steps}}\",\"optionalSteps\":\"{count, plural, one {# optional} other {# optional}}\",\"complete\":\"Complete\",\"inProgress\":\"In progress\",\"activeRuns\":\"{count} active\",\"progress\":\"{done} of {total} steps done\",\"start\":\"Start\",\"startNew\":\"Start new\",\"continue\":\"Continue\",\"readGuide\":\"Read the guide\",\"guideComing\":\"Guide coming soon\"},\"companion\":{\"label\":\"Workflow companion\",\"position\":\"Step {index} of {total}\",\"positionComplete\":\"{total} of {total}\",\"allDone\":\"All steps done\",\"collapse\":\"Collapse\",\"dismiss\":\"Done for now\",\"doneWhen\":\"Done when: {criterion}\",\"checking\":\"Checking this page…\",\"doneNext\":\"Done. Next up: {title}\",\"doneLast\":\"Done. Nothing else is waiting.\",\"elsewhere\":\"This step happens on {page}.\",\"showTasks\":\"Show what to do\",\"why\":\"Why this step\",\"next\":\"Next: {page}\",\"finish\":\"Finish workflow\",\"finished\":\"Workflow finished\",\"complete\":{\"title\":\"All {count, plural, one {# step} other {# steps}} done.\",\"body\":\"Come back any time. Your progress stays with the property.\",\"cta\":\"See the dashboard\",\"close\":\"Close\"}},\"following\":{\"label\":\"Following\",\"expand\":\"Show the steps\",\"collapse\":\"Hide the steps\",\"progress\":\"{done} of {total}\"},\"setup\":{\"notTracking\":\"Not tracking yet\",\"notTrackingTitle\":\"Finish the setup: a project with a goal on it.\",\"noGoal\":\"No goal yet\",\"noGoalTitle\":\"Daily tracking is on. Add a goal to connect the work to the numbers.\"},\"spend\":{\"title\":\"Credits needed\",\"summary\":\"{count, plural, =0 {no credits} one {# credit} other {# credits}} for this workflow\",\"summaryFrom\":\"from {count, plural, =0 {no credits} one {# credit} other {# credits}} for this workflow\",\"showDetail\":\"Show the breakdown\",\"hideDetail\":\"Hide the breakdown\",\"included\":\"Included in plan\",\"credits\":\"{count, plural, =0 {0 credits} one {# credit} other {# credits}}\",\"creditsFrom\":\"from {count, plural, =0 {0 credits} one {# credit} other {# credits}}\",\"total\":\"Total\",\"balance\":\"You have {count, plural, one {# credit} other {# credits}} available.\",\"estimate\":\"Estimate. Each page confirms its exact cost before it charges anything.\",\"estimateUnbound\":\"Estimate. The exact cost shows once you pick a property.\",\"insufficient\":\"You do not have enough credits for this workflow.\",\"buyCredits\":\"Buy credits\",\"card\":{\"from\":\"From {count, plural, one {# credit} other {# credits}}\",\"exact\":\"{count, plural, one {# credit} other {# credits}}\"}},\"runs\":{\"unbound\":\"Not chosen yet\",\"you\":\"You started this\",\"teammate\":\"A teammate started this\",\"startedBy\":\"{owner}\",\"startedAt\":\"Started {when}\",\"continue\":\"Continue\"},\"empty\":{\"title\":\"No workflows for this property yet\",\"body\":\"Workflows appear here once they fit this kind of property. Try another filter.\"},\"errors\":{\"state\":\"Could not load what this property has set up.\",\"runs\":\"Could not load your saved progress. The steps below still show what you have set up.\",\"run\":\"Could not load this workflow.\",\"start\":\"Could not start the workflow.\",\"step\":\"Could not update the step.\",\"bind\":\"Could not link that to this workflow.\",\"status\":\"Could not update this workflow.\"},\"dialog\":{\"cancel\":\"Cancel\",\"start\":\"Start workflow\",\"conflict\":\"A workflow for that is already in progress.\",\"openExisting\":\"Open it\",\"tag\":{\"description\":\"Enter the tag for this workflow. Prompts and key messages with this tag count toward its steps.\",\"hint\":\"Lower case, one word. Use the same tag later to pick up where you left off.\",\"required\":\"Enter a tag to start.\"},\"period\":{\"description\":\"This workflow covers one reporting month.\"},\"later\":{\"description\":\"You choose the {label} in the first step.\"}},\"runner\":{\"readPlaybook\":\"Read the full guide\",\"guideComing\":\"Guide coming soon\",\"targetLine\":\"{label} · {owner}\",\"progress\":\"{done} of {total} steps done\",\"optionalNote\":\"Optional steps are counted when you complete them\",\"refresh\":\"Refresh\",\"caveats\":\"Before you start\",\"stepsLabel\":\"Workflow steps\",\"notApplicable\":\"This workflow is not available for this property.\",\"prestart\":{\"observed\":{\"title\":\"Ready when you are\",\"body\":\"Steps you've already completed are checked off. Start the workflow to track the rest.\"},\"explicit\":{\"title\":\"Start when you're ready\",\"body\":\"Once you start, each step is checked off as you complete it.\"},\"start\":\"Start workflow\"},\"complete\":{\"title\":\"Workflow complete.\",\"body\":\"Everything is set up. Your dashboards take it from here.\",\"cta\":\"View visibility trends\"},\"menu\":{\"label\":\"Workflow actions\",\"startAgain\":\"Start over\",\"abandon\":\"Stop this workflow\"},\"abandon\":{\"title\":\"Stop this workflow?\",\"body\":\"Your skips and check-offs are cleared. Nothing you have measured changes, and you can start again at any time.\",\"confirm\":\"Stop this workflow\",\"cancel\":\"Keep it\"}},\"step\":{\"done\":\"Done\",\"current\":\"Current step\",\"upcoming\":\"Up next\",\"skipped\":\"Skipped\",\"optional\":\"Optional\",\"why\":\"Why {title}?\",\"readDocs\":\"Read the docs →\",\"whatToDo\":\"What to do\",\"signal\":\"How y
2ou'll know it's done\",\"markedDoneNote\":\"You marked this done.\",\"open\":\"Open {page}\",\"noRoute\":\"This step happens somewhere else, so there is nothing to open from here.\",\"markDone\":\"Mark done\",\"clearDone\":\"Clear mark\",\"skip\":\"Skip\",\"unskip\":\"Unskip\",\"startFirst\":\"Start the workflow to skip steps or mark them done.\",\"candidates\":{\"title\":\"Which {label} is this workflow for?\",\"body\":\"Pick the page or draft you scored for this workflow. Until you do, the steps that depend on it stay open.\",\"pick\":\"This is the one\",\"empty\":\"Nothing scored since you started. Open the Citation Optimizer from the button above and your score links to this workflow.\"},\"groups\":{\"title\":\"Which {label} is this workflow for?\",\"body\":\"Pick the coverage group this workflow covers. Its scored placements and its export are what these steps look for.\",\"items\":\"{count, plural, =0 {no URLs yet} one {# URL} other {# URLs}}\",\"pick\":\"This is the one\",\"empty\":\"No coverage groups on this property yet. Build the group in the first step and it appears here.\"},\"noMarket\":\"This page belongs to the market this workflow is for. Pick the market below and the link opens its own page.\",\"markets\":{\"title\":\"Which {label} is this workflow for?\",\"body\":\"Pick the market this workflow covers. Its competitor list and its prompts are what the market steps look for.\",\"competitors\":\"{count, plural, =0 {no competitors yet} one {# competitor} other {# competitors}}\",\"pick\":\"This is the one\",\"empty\":\"No markets on this property yet. Add the market in the first step and it appears here.\"}},\"enrichment\":{\"coverage\":\"Prompt coverage\",\"sov\":\"Share of voice, last 14 days\",\"message\":\"Message pull-through · {tag}\",\"messageAll\":\"Message pull-through\",\"seo\":\"Open SEO opportunities\"},\"org\":{\"title\":\"Workflows\",\"subtitle\":\"Workflows for the whole team: add a new brand, work a pitch list, or continue work in progress.\",\"inProgress\":\"In progress\",\"noRuns\":\"Nothing in progress. Start a workflow below and it appears here for the whole team.\",\"noPropertyYet\":\"No property yet\",\"organizationWide\":\"Organization-wide\",\"chooseProperty\":\"Choose property\",\"startHere\":\"Start here\",\"startHereBody\":\"Start here when you are adding a new brand or working a prospect list.\",\"onAClient\":\"On one of your properties\",\"onAClientBody\":\"These work on a single property. Pick the property this is for and the workflow opens there.\",\"addProperty\":\"Add the property\",\"empty\":{\"title\":\"No workflows for this organization yet\",\"body\":\"Workflows appear here once they fit your plan. Try another audience filter.\"}},\"picker\":{\"title\":\"Which property?\",\"body\":\"{workflow} works on one property at a time. Pick the one you want to work on.\",\"bindTitle\":\"Which property is this workflow about?\",\"bindBody\":\"Link this workflow to the property you just added. Its steps are measured on that property from now on.\",\"empty\":\"No property in this organization fits this workflow. Add one that fits, or pick a different workflow.\",\"loadFailed\":\"Could not load your properties.\",\"cancel\":\"Cancel\"}}},\"children\":\"$Lc8\"}]\n"])</script>
2<script>self.__next_f.push([1,"c8:[\"$\",\"$Lc9\",null,{\"children\":[[\"$\",\"$Lca\",null,{}],[\"$\",\"main\",null,{\"className\":\"min-h-screen\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$Lcb\",[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$Lcc\",null,{}]]}]\ncb:[\"$\",\"$Lcd\",null,{}]\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script>
2<script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"AI Visibility \u0026 AEO Insights | Spyglasses Blog\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Research, playbooks, and data on AI visibility. How brands earn citations in ChatGPT, Google AI Overviews, Gemini, and Perplexity.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Spyglasses\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"AI visibility platform,AI search optimization,AEO,GEO,AI citation tracking,ChatGPT visibility,Google AI Overviews,white-labeled AI reports,agency AI tools,PR AI measurement,earned media AI\"}],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"Spyglasses\"}],[\"$\",\"meta\",\"5\",{\"name\":\"publisher\",\"content\":\"Spyglasses\"}],[\"$\",\"meta\",\"6\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"7\",{\"name\":\"category\",\"content\":\"technology\"}],[\"$\",\"link\",\"8\",{\"rel\":\"canonical\",\"href\":\"https://www.spyglasses.io/en/blog\"}],[\"$\",\"link\",\"9\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://www.spyglasses.io/en/blog\"}],[\"$\",\"link\",\"10\",{\"rel\":\"alternate\",\"hrefLang\":\"en-US\",\"href\":\"https://www.spyglasses.io/en/blog\"}],[\"$\",\"link\",\"11\",{\"rel\":\"alternate\",\"hrefLang\":\"de-DE\",\"href\":\"https://www.spyglasses.io/de/blog\"}],[\"$\",\"meta\",\"12\",{\"name\":\"format-detection\",\"content\":\"telephone=no, address=no, email=no\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:title\",\"content\":\"Spyglasses | AI Visibility Platform for Agencies \u0026 PR Firms\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:description\",\"content\":\"The AI visibility platform for marketing agencies and PR firms. Track how brands appear in ChatGPT, Gemini, and Google AI Overviews, then optimize what AI sees.\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:url\",\"content\":\"https://www.spyglasses.io\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:site_name\",\"content\":\"Spyglasses\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image\",\"content\":\"https://www.spyglasses.io/images/og-image.png\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:alt\",\"content\":\"Spyglasses, the AI visibility platform for agencies and PR firms\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:title\",\"content\":\"Spyglasses | AI Visibility Platform for Agencies \u0026 PR Firms\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:description\",\"content\":\"The AI visibility platform for marketing agencies and PR firms. Track how brands appear in ChatGPT, Gemini, and Google AI Overviews, then optimize what AI sees.\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:image\",\"content\":\"https://www.spyglasses.io/images/og-image.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:alt\",\"content\":\"Spyglasses, the AI visibility platform for agencies and PR firms\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lce\",\"31\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
2<script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script>
2</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.