Your buyers ask AI first.
Ipnops decides whether it finds you.
The front page is now an answer, written by a machine from whatever it could retrieve. Ipnops is how brands win that answer. It measures the pathway that decides it — can the crawler reach you, is the page server-rendered, do your entities resolve, does the engine actually retrieve you — scores you per engine across the Western and Chinese frontier, and applies the levers to the page you already ship. Then it proves the result: every citation corroborated against your own server logs, so your visibility is evidence, not a screenshot. Fix the mechanism and the mentions follow. No shadow page, no cloaking.
# the server SDK sees what JS never can
{ "ua": "OAI-SearchBot/1.0",
"engine": "chatgpt", "class": "search",
"path": "/pricing", "rendered": "server-html",
"jsonLd": true, "retrievable": true
}01 / 08
People stopped reading ten blue links. They read one answer.
The buyer's first impression of you is now written by a model, from whatever it could retrieve — and it cites a handful of sources, not a page of them. Nine engines are writing those answers. If they can't parse your entities, can't reach your content, or never see it because it only exists after JavaScript runs, you don't rank low. You simply aren't in the room. Generative Engine Optimization is how you get back in it.
02 / 08
Three moves that turn a page into a source an engine will cite.
No guesswork loop and no mirror page. Ipnops measures the pathway before the outcome — real crawler hits and real on-page signals, the mechanism that decides whether an engine can retrieve you — then applies the levers to the page you already serve.
Observe
A client tag reports your live on-page signals; a server SDK reads your request logs for real AI-crawler hits. Crawlers never run JavaScript, so the server side is essential — it's the only place the truth shows up. You see who came, to which paths, and what they got.
Score
An on-page audit grades the four signals that decide retrieval: structured data (schema.org JSON-LD), server-rendered HTML, crawler access in robots.txt for the search-vs-training split, and answer-first content with clear entities. Every page gets a per-engine score.
Enrich
Apply the levers to your real page — add the JSON-LD, ship server HTML, open the right bots. And rewrite the copy itself: Ipnops's copywriter rewrites your body in place to lead with the answer, name your entities, and carry every source fact through — a paste-ready version of the page you already ship, never a shadow copy served only to bots. The next crawl sees a page built to be retrieved.
03 / 08
Nine answer engines. Most tools score five.
Ipnops scores retrieval readiness across the five Western engines most tools stop at — and the four Chinese frontier engines they ignore. Each is matched by its crawler user-agent where one is published, so the score reflects what that engine can actually reach.
Honest nuance — DeepSeek publishes no crawler user-agent and fetches browser-like, so it's effectively unobservable in logs. There's no log-truth to report for it. The lever that works is retrieval readiness on your real page: server-rendered HTML plus structured data. Ipnops covers DeepSeek through that readiness score, not through crawler observation — and says so plainly rather than faking a hit.
04 / 08
Know exactly how AI answers about your brand — and prove every citation.
This is how brands measure themselves in the age of AI. Ipnops watches the answers themselves across ChatGPT, Perplexity, Gemini and Copilot: your share of voice against every rival, your mention and citation rate per engine with real confidence intervals, and how each answer's sentiment toward you shifts over time. Counting mentions is table stakes. Ipnops proves them.
Every citation, corroborated by your own server logs
A scraped answer is one observation. Ipnops holds it against a second, independent one — the AI crawler traffic in your logs — and asks whether that engine's search bot actually fetched the page when it answered. Every citation resolves to one of three states, so your numbers are evidence, not screenshots.
Named in the answer, and the engine's search crawler was caught fetching you around that moment. Two independent signals agree — this citation is real.
Named in the answer, you have crawler coverage for that host, but no matching fetch was logged. Shown, not corroborated — a cache hit or a stale index.
Named in the answer, but with no crawler visibility for that host we don't claim to know. The truth, stated plainly, instead of a false positive.
Verified citations draw on your crawler-log coverage — one line with the Cloudflare connector or the server SDK. It's the difference between a dashboard that counts and one that proves.
05 / 08
Not "you're down 4%." "You lost 37 answers — here's exactly why."
Other tools hand you a visibility number and leave the diagnosis to you. Ipnops names the cause. Every prompt an engine answered about your category without citing you is sorted by the reason the machine skipped you — so you fix the mechanism, not the metric.
No AI search bot was seen fetching your pages for these answers. If the machine can't retrieve you, it can't cite you. → Run the readiness audit.
The crawler reached you, but nothing on the page answered the prompt. → Generate a self-contained answer passage aimed at the exact question.
The engine had you as an option and chose more-cited third parties. → The domains influencing these answers, ranked, so you know where to earn a mention.
This is the move no visibility dashboard makes: from "how am I doing" to "here is the specific reason, and the specific fix." Measuring the answer is table stakes. Engineering the coverage is the product.
06 / 08
Structured data tells the engine what you are — in its own language.
the odds of appearing in an AI answer when a page carries valid schema.org JSON-LD. It resolves your entities — org, product, FAQ, author — into a graph the model can bind to, instead of guessing from prose.
It's in-page markup on the page you already serve — the single highest-leverage move in GEO, and the one Ipnops grades first. Server-rendered HTML and correct crawler access carry the rest: content the JS-averse engines can read, reachable by the right bots.
<!-- FAQPage — answer-first, entity-clear -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "What does Acme do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Acme grades AI-answer retrieval."
}
}]
}
</script>07 / 08
One line for the tag. One import for the crawler truth.
Drop the client tag on your site to report live on-page signals. Add the server SDK to observe the AI-crawler hits the tag can never see — because crawlers don't run JavaScript. Not a developer? Paste the one-line tag into the head-code field your builder already has — Shopify, Squarespace, WordPress, Wix, Webflow, Ghost and more. The dashboard has the full snippets for every framework and hosted platform you ship on.
<!-- reports live on-page signals -->
<script async
src="https://api.ipnops.ai/geo/tag.js"
data-site="example.com"></script>// crawlers don't run JS — the server sees them
import { ipnops } from "@ipnops/geo";
app.use(ipnops({ site: "example.com" }));
// tags every AI-crawler request in your logsBe the source the answer cites.
One project included, free. Point Ipnops at your site, see who's crawling you, and score every page across all nine engines.