close

DEV Community

Cover image for The LLM Visibility Tools Cost $79/Month. Mine is Open Source.
Daniel Nwaneri
Daniel Nwaneri Subscriber

Posted on

The LLM Visibility Tools Cost $79/Month. Mine is Open Source.

Tom Capper at a Search Engine Journal webinar last week:

"There's no Search Console equivalent for LLMs."

Google Search Console tells you where you rank, how many people saw your result, your CTR, your average position. It tells you nothing about whether Claude mentions your domain when someone asks a question you should own.

That gap is now a product category. I checked most of them. Cheapest entry point: $39/month. The ones worth taking seriously: $79 and up.

At the same webinar, someone asked Capper directly: what are accessible ways to measure AEO/GEO visibility, since there's no equivalent of Search Console for LLMs? His answer was three manual approaches. None of them were a tool you could run.

I built mine for free. Open source. And it found something I'd missed for months on my own sites.


What the paid tools actually do

AIclicks, LLMrefs, Cairrot, Slate — the mechanics are the same across all of them. They query AI models with your target keywords, check whether your brand appears in the response, track it over time.

That's the whole product. The variance is in how many LLMs they cover, how the reports look, and whether the UI justifies the monthly fee.

None of them are doing anything technically unusual. They're calling APIs and parsing text.

So I added it to seo-agent as a standalone module: llm-visibility.


How it works

Point it at your domain and a query list — or just export from Google Search Console:

python main.py llm-visibility --domain dannwaneri.com --queries gsc-export.csv --project dannwaneri-com
Enter fullscreen mode Exit fullscreen mode

It takes your top 20 queries by impressions. Sends each one to Claude Haiku. Checks whether your domain appears in the response. Writes everything to llm-visibility.md — visibility score, per-query results, gaps to address.

Cost: negligible. A 20-query run costs less than a cent.


What I found

I ran it on two of my own domains.

One scored 0%. Every query. Claude answered correctly — sometimes well — and never mentioned my site once.

The other scored 15%. Three out of twenty queries returned a mention. The other seventeen? Nothing.

Both domains have content on these exact topics. Both rank in Google for these queries. Neither is getting cited.

The same run also caught something else — a query sitting at position 9.5 with 29 impressions and 0% CTR: does twitch pay nigerians. The page was ranking. The title was answering the wrong question. That's not an LLM problem, that's a GSC problem. But llm-visibility sits on the same audit surface as gsc-insights, not separate from it. You find both in one pass.

Your Google rank tells you nothing about your LLM presence. They're different surfaces with different citation logic entirely.


The limitation I won't bury

Claude has a training data cutoff. Content published after that cutoff won't appear regardless of quality.

A score of 0% on a site less than a year old is expected — it's a data availability problem, not a content quality problem.

Run it quarterly. Watch the number move as training snapshots update.

The paid tools have this same limitation. They just don't always put it where you can see it.


What the pixel data adds

While I was building this, the same SEJ webinar surfaced pixel data from Tom Capper at STAT Search Analytics worth flagging: position 1 now sits 635 pixels down the page on desktop. On mobile, the top organic result is below the fold nearly two thirds of the time. AI Overviews consume roughly a third of above-the-fold space on informational queries. Paid and shopping units take over 60% on commercial ones. Organic gets what's left. (Source: Search Engine Journal, May 2026)

seo-agent covers both surfaces. The serp-features module hits SerpApi for each target query and maps which features are present — AI Overview, featured snippet, PAA, image pack, local pack. llm-visibility handles the other surface.

Neither module needs a paid subscription. SerpApi has a free tier: 100 searches/month, no credit card.


What's still missing

This only tests Claude. Not ChatGPT, not Perplexity, not Gemini.

The paid tools cover 6–10 models. That's a real gap.

I'm one person. Multi-model support is on the list.

If your Claude visibility score is 0%, adding Perplexity to the test won't fix the underlying problem. The content isn't strong enough to get cited anywhere. Fix that first. Then track across more models.


The tool

Everything is open source: github.com/dannwaneri/seo-agent

Full breakdown of what it found on a real site — a Nigerian creator site that went from 0.4% to 44% pass rate in one afternoon — at dannwaneri.com/seo-automation.

The full module list:

  • llm-visibility — LLM citation tracking
  • serp-features — SERP feature detection via SerpApi
  • gsc-insights — GSC export parser, quick wins, cannibalization
  • qualify-backlinks — referring domain scoring
  • relevance-score — internal link opportunity scoring
  • cluster-audit — topic clustering, orphan detection

Core audit runs in a real Chromium browser. Extracts title, meta description, H1s, canonical. Checks broken links. Resumable JSON state.

The speaker said there's no Search Console for LLMs.

There is now. And it doesn't cost $79/month.


This article was written with AI assistance for research and editing. All arguments, examples, and opinions are my own.

Top comments (4)

Collapse
 
nazar_boyko profile image
Nazar Boyko

Quick one on the measurement side. Querying Claude Haiku straight through the API mostly tells you what made it into the training data, but the citations everyone's chasing now come from the live search path, where Claude or ChatGPT actually fetches pages and lists sources. Those two can disagree hard. A brand new site that scores 0% in your API test can still get cited in a live answer because the model retrieved it on the spot. Is the plan to also test that live search path, or is the API score meant to stand on its own as a read on the training data? Either way, putting the cutoff caveat right in the output instead of burying it is the honest move the paid tools skip.

Collapse
 
dannwaneri profile image
Daniel Nwaneri

The distinction is obvious and my article undersells it. API score and live search citation are measuring different things . one is a read on what made it into training weights, the other is a read on whether the model would fetch and surface your content in a live retrieval path. A site that scores 0% on the API test can absolutely get cited in a live answer if the retrieval layer finds it. Those aren't the same signal.

Right now llm-visibility only tests the API path which means it's a training data signal, not a retrieval signal. The plan is to add live search path testing, but that's a harder problem: you need to trigger the model's retrieval mode, parse the sourced citations, and distinguish between "retrieved this session" and "recalled from weights." The tooling for that is still rough across providers.

The cutoff caveat in the output is the honest move specifically because it guards against misreading a 0% score as "this content is bad" when it might just mean "this content is new." You're right that the paid tools bury that. It belongs at the top of the report, not the footnote.

Collapse
 
xulingfeng profile image
xulingfeng

$79/month for something you can build in an afternoon with Haiku. This is the kind of project that makes you question every SaaS subscription. Well done.

Collapse
 
dannwaneri profile image
Daniel Nwaneri

The SaaS subscription question is the whole point — once you can see the mechanism, the price tag stops making sense. Glad it landed....