Skip to content

v0.0.55: a finding that fires on nearly every site is a default, not a finding

Choose a tag to compare

@bsbodden bsbodden released this 03 Nov 03:26
· 20 commits to main since this release

v0.0.55: a finding that fires on nearly every site is a default, not a finding

The first run of the npm corpus (the homepages of the 400 most popular npm packages, 367 audited with 0.0.54, published at https://rankcli.dev/data/npm-sites) counted 56 codes per site on average, and 30 of them fired on 60 percent or more of the best-built documentation sites on the web. A notice every site gets carries no information and costs the credibility of the ones that do.

Gone, with the share of the corpus each fired on: AI_INCOMPLETE_BRAND_COVERAGE (95%), NO_SNIPPET_BAIT_HEADERS (92%), BING_VERIFICATION_MISSING, BING_NOT_VERIFIED and BING_PLACES_MISSING (92%), NO_RELATED_CONTENT (89%), INVERTED_PYRAMID_MISSING (88%), AI_LOW_CITATION_QUALITY (88%), AI_NO_ORIGINAL_DATA (87%), GTM_MISSING (86%), NO_EXPERIENCE_SIGNALS and AI_NO_EXPERIENCE_SIGNALS (81%), RAG_CHUNK_SIZE_MISMATCH (80%), NO_ENTITY_IDENTIFIED and NO_ENTITY_DEFINITION (79%), AI_NO_BRAND_DEFINITION and AI_LOW_BRAND_SCORE (78%), LOW_DWELL_TIME_SIGNALS (78%), GA4_MISSING (76%), AI_LOW_CITATION_WORTHINESS (71%), NO_ENGAGEMENT_TRIGGERS (69%), HIGH_BOUNCE_RISK (62%), plus REVIEW_NO_VIDEO, COMMERCIAL_NO_CTA and NEW_SITE_STRATEGY, which fired regardless of content. Not using Google's tag manager or Bing's webmaster tools is a choice; the rest were heuristics with no evidence behind them. The analyzers keep computing their data (brand, entity, chunk and engagement scores stay in the report's data); only the findings go.

Conditioned: NO_BREADCRUMBS (98%) never fires on the homepage, which has nothing to lead back to. INDEXNOW_NOT_IMPLEMENTED (100%) is dropped when the site has no sitemap, since Bing's advice is an accurate lastmod paired with IndexNow.

What stays from the high end of the table: the security-header notices, DMARC and SPF, the Apple touch icon. Each describes something a standard asks for and a site can add in a line.

One bot table. The analyzer behind rankcli geo, the MCP server's seo_robots_ai, seo_generate_robots and seo_ai_crawlers, and the robots.txt the auto-fix writes kept a second crawler list from before the bot classes: it still called Anthropic's crawler Claude-Web, told a site that disallowing GPTBot meant its content would not appear in ChatGPT answers (OpenAI documents the opposite), and generated a robots.txt that allowed "all AI crawlers" as one undivided group. All of it now derives from the audit's table: the robots analysis reports by class (search, AI search, user-triggered, training) with the advice worded for what blocking each class costs, and the generated robots.txt writes one group per class, training allowed but marked as the group to turn into Disallow when that is the policy. The table gains the robots-only tokens the old list knew (Applebot-Extended, meta-externalagent, Amazonbot and cohere-ai as training; YouBot as AI search), so AI_TRAINING_BOTS_DISALLOWED and AI_SEARCH_BOTS_DISALLOWED name them too.

Removed codes drop out of a 0.0.54 baseline silently; AI Readiness scores rise by the notices a site no longer gets.

Packages: @rankcli/cli 0.0.55, @rankcli/agent-runtime 0.0.43, @rankcli/mcp-server 0.0.28.

Install

npm install -g @rankcli/cli    # or: brew install integrallis/tap/rankcli

Standalone binaries for macOS, Linux and Windows and the Claude Desktop extension (.mcpb) are attached below.