How we score
Every free tool follows a published rubric. Where a number depends on a benchmark, the benchmark says where it comes from. "Onit benchmark, modelled" means a planning range we set from our own work, not an industry survey.
AI Search Readiness Score (rubric v1.0)
| Component | Points | How it is measured |
|---|---|---|
| AI crawler access | 15 | Reads robots.txt for 12 AI and search crawlers. Answer and search bots (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, Bingbot, Googlebot) weigh 2; training bots (GPTBot, ClaudeBot, Google-Extended, CCBot, Applebot-Extended, meta-externalagent) weigh 1. No robots.txt means everything is allowed. Blocking training bots is a legitimate policy choice and costs at most 5 points. |
| llms.txt | 5 | 5 if /llms.txt is served as text with headings and links, 3 if it exists but is thin, 0 if missing. |
| Structured data | 20 | schema.org types found (JSON-LD or microdata) across the crawled pages: Organization 5, WebSite or BreadcrumbList 3, Product/Vehicle/Service 4, Offer or rating 3, FAQPage or HowTo 3, location 2. |
| Crawlability and indexability | 20 | Home page answers 2xx (4), home page is indexable (4), canonical tags (3), XML sitemap (3), HTTPS (2), titles and meta descriptions on at least 80% of pages (4). |
| Content answerability | 15 | Question-style headings or FAQ content (5), concrete facts such as specs and prices on pages (4), median page depth of 300+ words of server-rendered text (3), one H1 per page (3). |
| Page weight and speed (proxy) | 10 | Home page response under 800 ms (3), median HTML under 150 KB (4), median 25 or fewer script tags (3). A proxy measured from our server, not Core Web Vitals. |
| AI answer visibility | 15 | Asks an AI engine 5 brand-neutral category questions. Named in an answer: up to 10. Recommended: up to 5. The engine answers from model knowledge without web browsing, so this is a proxy for AI answer engines. If the test cannot run, the other 85 points are rescaled to 100 and the result says so. |
Grades: A 90-100, B 80-89, C 70-79, D 60-69, F below 60 . The SEO Health Snapshot uses the same crawler (up to 25 pages) and scores titles, meta descriptions, headings, broken links, canonicals and robots directives, schema, image alt text, page weight, internal links and site basics. The Competitive Stack-Up applies both rubrics to every site and asks one shared set of AI questions.
Our crawler identifies itself as BuddySystemSearchBot, follows robots.txt rules for that name, never logs in, fetches public pages only and pauses between pages. Addresses that resolve to private or internal networks are refused.
Paid Search Efficiency Check (v1.0)
Starts at 100 and loses points for spend on non-converting queries (up to 30), cost per conversion above the category band (25), impression share lost to budget and rank (20), brand cannibalisation risk (15) and conversion or click-through rate under the band (10). With a search terms report, wasted spend is measured: terms with 3 or more clicks, or cost of half a conversion or more, and no conversions. With six numbers it is modelled from your conversion rate against the band floor. Brand cannibalisation counts half of brand spend as at risk, a modelled assumption you can test with a brand holdout.
| Category | Cost per conversion band | Conversion rate band | CTR floor |
|---|---|---|---|
| Automotive | $25 to $75 | 4% to 10% | 4% |
| Retail and ecommerce | $20 to $60 | 2.5% to 6% | 3.5% |
| Finance and insurance | $50 to $150 | 3% to 8% | 3.5% |
| B2B and software | $70 to $200 | 2% to 6% | 3% |
| Healthcare | $40 to $120 | 3% to 8% | 3.5% |
| Travel and hospitality | $25 to $80 | 3% to 7% | 4.5% |
| Home services | $35 to $100 | 5% to 12% | 4% |
| Education | $45 to $130 | 3% to 8% | 3.5% |
| Other | $30 to $110 | 3% to 8% | 3.5% |
Source: Onit benchmark, modelled.
Agency Audit Quick Look
A Transparency Score from 0 to 100 built from principal-media markups (CPM against benchmark bands), non-working spend share, fee load against the contracted rate, excess frequency, made-for-advertising and low-quality inventory share, make-good gaps, rebate exposure and pacing or billing mismatch. Answers produce an estimate; files produce findings with the rows behind them. Findings describe numbers. They never assess or name an agency.
| Benchmark | Band | Source |
|---|---|---|
| source | Onit benchmark, modelled | |
| note | US automotive ranges assembled by Onit from public rate cards and trade reporting, modelled. They are ranges, not prices; a line above the band is a question to ask, not proof of wrongdoing. | |
| cpm | social: 6 to 14; display: 2.5 to 9; native: 4 to 12; olv: 10 to 24; ctv: 22 to 42; audio: 8 to 20; dooh: 6 to 18; linear_tv: 18 to 45; radio: 6 to 15; print: 15 to 40; other: 4 to 30 | |
| cpc | search: 1.2 to 5.5 | |
| markup_tolerance | 0.1 | |
| nonworking_ok | 0.07 | |
| nonworking_flag | 0.1 | |
| fee_band | 0: 2; 1: 6 | |
| frequency_cap | social: 10; display: 12; native: 12; olv: 8; ctv: 6; audio: 10; dooh: 20; other: 12 | |
| ivt_flag | 0.03 | |
| viewability_floor | 0.4 | |
| display_ctr_ceiling | 0.03 | |
| makegood_tolerance | 0.05 | |
| rebate_rate | 0.025 | |
| rebate_range | 0: 0.01; 1: 0.05 | |
| billing_tolerance_pct | 0.02 | |
| billing_tolerance_abs | 50 |