Inspect. Find. Rank. Produce. Verify. Measure.
A search growth engine for a portfolio of sites. It crawls a domain, runs named checks against captured evidence, ranks what it finds by expected value, writes the change, and re-runs the check to prove the fix landed. Across Google, AI Overviews and answers from ChatGPT, Perplexity and Gemini.
8x.business
Crawl reached 41 pages. Each stop is its own run; a finished crawl says nothing about whether the site has been checked.
Crawl
41 pages
Checks
live23 of 41 pages
Findings
not yet
Targets
not yet
1 of 4 reached, 1 still moving. Each stop is its own run.
Tier 0, no credentials. Robots, sitemaps, canonicals, schema, rendered DOM and field performance captured per page.
Baseline
Find health is whether search can reach and trust the site. Choose health is whether it gets picked once found. Never averaged.
Find health
67
out of 100
36 of 54 assertions passing
Choose health
41%
9 of 22 assertions passing
AEO
not scored
no assertions yet, not a score of zero
SEO
71%
29 of 41 assertions passing
GEO
3%
3 of 100 assertions passing
Findings, ranked by expected value
Each row is an assertion that failed, on a named page, with the evidence it was read from.
| Severity | Check | Where | Pages |
|---|---|---|---|
| critical | tech.robots.ai_allow | /robots.txtGPTBot, PerplexityBot disallowed | 1 of 1 |
| high | content.h2.keyword | /blog/*target term absent from every H2 | 11 of 11 |
| medium | tech.canonical.self | /creators/*canonical points at the paginated URL | 3 of 41 |
| medium | content.answer.snippet | /pricingno two-sentence answer under the question heading | 1 of 1 |
| low | tech.sitemap.lastmod | /sitemap.xmllastmod older than the page | 18 of 41 |
Change spec · content.h2.keyword
Not a suggestion. The file to apply, and the assertion that will close it.
# /blog/linkedin-creator-rates - <h2>What should you budget?</h2> + <h2>LinkedIn creator rates in 2026: what a post costs</h2> + <p>A sponsored LinkedIn post from a creator with 20k to 50k followers costs $600 to $1,800 in 2026.</p> closes when content.h2.keyword(/blog/linkedin-creator-rates) = true verified by the same check, next run
One loop, six stages, applied identically to every property.
Adding property 21 is a config row, not a new code path.
- 1Inspect
Crawl every page and capture what search engines see: robots, sitemaps, canonicals, schema, the rendered DOM, field performance. No credentials needed, so it runs on competitors too.
- 2Find
Named checks emit assertions: check, URL, passed, evidence. A check id is a contract, not an opinion, and its history survives every run.
- 3Rank
Findings are scored by expected value: traffic at stake, confidence, effort. Find health and choose health stay separate numbers, because a composite hides which half is broken.
- 4Produce
A change spec, a blog draft or a tool page. Keyword in the title, the URL and the H2s. A two-sentence answer under every question heading, for the answer engines.
- 5Verify
A fix is closed when the check that found it turns true on the next run. Nobody marks a finding done by hand.
- 6Measure
Snapshots are append-only. The diff between two runs is the product: rank, AI Overview presence, share of citations across ChatGPT, Perplexity and Gemini.
A number never appears without its denominator or its source.
The screen shows 36 of 54 before it shows 67%. It says "not looked" instead of zero. It never rounds up.
36 of 54
find health · run cmsuk4 · 2026-09-04 11:20
Assertions passing on 41 crawled pages. The 67% is derived on screen from these two integers, and both are one click from the captured evidence.
null ≠ 0
aeo.overview.present · not run
"We did not look" and "we looked and found nothing" are different facts. A check that had no credentials reports itself unavailable, never a pass.
3 of 100 answers
geo.citation.share · ChatGPT, Perplexity, Gemini
Share of voice is the metric. A hundred questions, control and intervention, compared. The intervention that does nothing is reported as doing nothing.
The output is a file you can apply, not advice you have to interpret.
A change spec for the page that failed, a draft written for the keyword that is winnable, a tool page for the query people actually type.
Change spec
User-agent: GPTBot- Disallow: /+ Allow: /User-agent: PerplexityBot- Disallow: /+ Allow: /
closes tech.robots.ai_allow
LinkedIn creator rates in 2026: what a post costs
How much does a sponsored LinkedIn post cost?
A sponsored post from a creator with 20k to 50k followers costs $600 to $1,800. Rates track engagement, not follower count.
What do B2B brands pay for a carousel?
Carousels run 1.4× the single-post rate because they take two to three times as long to make.
target term "linkedin creator rates" 6× · in title, URL, 4 of 5 H2s
Creator rate calculator
- followers
- 32,000
- engagement
- 4.1%
- format
- carousel
- estimate
- $1,540 per post
answers "linkedin creator rate calculator", 1,900 searches a month, difficulty 12
Then run it again, and read the difference.
Snapshots are never edited. Run four next to run one is the only chart on the page, and every point on it is a stored assertion count.
Assertions passing · 8x.business · 4 runs
Find health · run 4
87%
47 of 54 assertions passing
Choose health · run 4
64%
14 of 22 assertions passing
The same engine, pointed at every property. Including the competitors'.
Tier 0 needs no credentials, so any domain gets the full report. Connecting Search Console swaps an estimate for a measurement. It never unlocks a feature.
Point it at a domain.
The first crawl and baseline run at tier 0 and cost nothing. Keyword research, competitor data and generation call paid vendors, and every run shows its spend next to its result.
Add a property