AEO scoring, llms.txt audit, and agent-readiness checks for AI agents.
NeverRanked is a research engagement that measures what AI answer engines cite for a category. The output is a forensic memo plus a prepped punch list for the customer's team to execute against.
This repository holds the marketing site, the dashboard worker
source (under dashboard/), and the historical artifacts from
the company's prior product.
Until May 2026, NeverRanked sold a JavaScript snippet that was claimed to drive AI citations. We ran a pre-registered kill test against our own domain. The result was zero citations. The LLM crawlers do not execute JavaScript, so the snippet was structurally invisible to them.
We stopped selling that product, retracted the public content that promoted it, and rebuilt the company around the measurement layer that does work.
This repository contains both states: the current honest surfaces (homepage, About, ASB pitch, terms, privacy, llms.txt) and the historical artifacts (retired blog posts, retired case studies, retired audits, retired explainers). Anything that contradicts the retraction is either replaced with an honest holder or marked as retired in place.
For the current state of every code path, see
~/.claude/projects/-Users-lanceroylo-Desktop-neverranked/memory/code_rewrite_status_2026-05-21.md
in Lance's local Claude memory.
Seven measured surfaces, every day. Six AI tools plus a control.
Both layers measure different failure modes. A brand invisible in citation is invisible when AI fact-checks itself. A brand invisible in model knowledge is invisible at the baseline, before any search happens.
A forensic memo plus a prepped punch list. Per query, per engine, per competitor, per source type. Daily measurement. Monthly delta memo on ongoing engagements.
We do not execute. No content writing, no website edits, no schema deploys, no profile updates. The labor stays with the customer's team or their agency. That separation is structural.
[Corrected 2026-09-14. This section published the retired kickoff-plus-monthly card for six weeks after those SKUs were archived on 2026-08-03.]
This is a research engagement, not a SaaS subscription. There is no self-serve dashboard.
neverranked/
├── index.html honest homepage holder
├── about/, terms/, current honest pages
│ privacy/, thanks/
├── pitch/asb-hawaii/ current direct-buyer pitch shape
├── pitch/*/ retired pitch pages (holder)
├── blog/, case-studies/, retired catalogs (holders + noindex)
│ profile/, state-of-aeo/
├── standards/, schemas/, retired surfaces (holders)
│ agencies/, security/,
│ for-agencies/,
│ principles/, kit/
├── meetings/kits/ current meeting prep, demo bundle
├── dashboard/ app.neverranked.com Worker source
├── llms.txt rewritten for current state
└── sitemap.xml homepage only
The historical artifacts (retired pages, audit documents under
/audits/, prior explainers like EXPLAINER.md and
AGENCY-EXPLAINER.md, the original audit template under
/audit-template/) reflect the prior product premise and are
preserved for diff context but should not be acted on as current
guidance.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @neverranked/mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-lanceroylo-mcp": {
"command": "npx",
"args": [
"-y",
"@neverranked/mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceio.github.LanceRoylo/mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.