The twenty checks
Free to read, free to print, no email address. The URL does not change.
Chapter 13 of How to Market to a Machine: What to Do When the Buyer Sends an AI Agent, by Bob Calabritto, IdentiBlock Press. Chapter title: Twenty Things to Check on Your Own Site This Week. Text as published. Last updated 2026-10-02.
Download the twenty checks as a one-page PDF
This chapter works alone. If you arrived from chapter 12, this is the audit it called week one. If you arrived from a bookstore shelf or a forwarded PDF, here is the premise in one sentence: the first reader of your website is now, more often than not, software working on a buyer’s behalf, it decides based on what it can extract and verify, and the twenty checks below test whether your site survives that reading. The rest of the book explains why each check matters. You don’t need the explanations to run them.
How to run it: a check passes or it doesn’t, with no partial credit, because partial credit is how checklists die. The output is the list of fails, which is also your to-do list. The checks were written to be copied out and run bare, without the book attached. Most checks take under an hour; one takes an afternoon. The full set fits in a working week with room left over, and nothing on it costs money. One person can run all twenty. Most of them need nobody’s permission, and the two or three that do (the CDN question, the feed pull) need a message to a colleague rather than a meeting.
One thing to know before you start. The pass conditions were chosen for being checkable. A site can pass all twenty and still be mediocre; the list catches absence and contradiction, which machines punish reliably, and it cannot catch dullness or a weak product, which they punish in ways nobody can audit. Passing means you’re legible. It doesn’t mean you’re good. I couldn’t write a checkable pass condition for good, and I’d distrust anyone who claims they have.
The universal fifteen
-
1. The front door
Two layers. Open yourdomain.com/robots.txt and read it against the AI user agents documented by the major AI companies. Their crawler docs list the names, and the names change, so read the docs rather than a list someone pasted into a blog post last year. Two things to know while you read. The big operators now run more than one crawler each, on the same three-way split: one that collects training data, one that builds a search index, and one that fetches a page live because a person just asked a question about it. A robots.txt line written in a hurry to keep “the AI” out usually blocks all three, and the third one is a buyer’s agent standing on your doorstep. Then ask whoever runs your CDN or firewall what its AI-crawler settings are, because that layer can turn readers away no matter what robots.txt says, and at least one large provider now ships blocking as a default on some plans and on new domains.
Pass: the readers you want inside can get in at both layers, and you can name the person who decided which readers those are.
A default nobody remembers accepting is a fail.
-
2. The pricing page, undressed
View source on your pricing page, or curl it if you have a terminal handy. You’re looking at the HTML your server sends before any JavaScript runs, because the crawlers that build AI search indexes and collect training data fetch that response and stop; the measurements published so far found no sign that the major ones execute a script, including the scripts they download. The agents that drive a full browser on a person’s behalf do run your code, which is why this check is about the crawlers rather than every reader, and why failing it costs you more in being found than in being bought.
Pass: a stranger could reconstruct your plan table from that raw response alone.
If the page arrives as an empty shell that scripts fill in later, you just found the most expensive rendering decision in the company, and the finding travels: a site that fails this on the pricing page usually fails it everywhere. The fix is a server-rendered or statically built version of every page that carries a claim. That’s an engineering ticket, and it goes to the top of the list.
-
3. A price
Published, with a currency and billing terms. Buyer agents carry explicit budget constraints more often than human buyers ever admitted theirs, and to a reader holding one, an absent price is an unanswerable question. “Contact us” can still be a legitimate decision, but check that it is one. If the number is there, confirm it’s in the raw HTML from check 2 rather than painted in afterward by a currency script.
Pass: either a number is on the page, or somebody senior can state the reason it isn’t and has accepted what the absence costs with the machine reader, out loud, recently.
-
4. The claim count
Paste your five most commercially important pages into any AI assistant and ask it to list every checkable claim: anything with a number, a name, a date, or a verifiable fact. Then run the same on your closest competitor’s equivalents.
The pass condition is a comparison: your count isn’t the smaller one.
While you have the assistant open, ask it what questions a buyer would ask that each page leaves unanswered. That part isn’t scored. It will sting anyway.
-
5. One home per fact
Pick three load-bearing facts: your price, one plan limit, your flagship feature’s name. Search your own site for each. Fail usually looks like copies that drifted, an old number surviving on a landing page nobody has opened in years because it converted well once.
Pass: each fact has exactly one authoritative page, and everything else points there instead of restating it.
-
6. Dates on numbers
Every statistic on the pages from check 4 says when it was measured, next to the number, in text rather than in a footnote a reader would have to hunt for.
Pass: no undated number.
-
7. The changelog
You have one, it’s public, and its entries carry dates.
Pass: the newest entry is no older than your newest release.
If the last changelog entry predates the last thing you shipped, one of them is lying, and a reader that cross-checks will notice which.
-
8. Evidence beside performance claims
Anywhere you claim uptime or performance, the checkable version should sit within one click: a status page with visible history, a methodology with configuration and date.
Pass: every such claim has its evidence next door.
If you claim nothing of the kind anywhere, you pass by default, though is the silence modesty or a gap? I can’t answer that from here.
-
9. The trust furniture
Certification logos link to the issuing body or the auditor’s registry, not to a larger version of the logo. Case studies carry a company name, a number, and the customer’s consent to both.
Pass: a stranger could verify one certification and confirm one case study is real without emailing you first.
“Reference available on request” printed beside a named customer reads well to a diligence process; print it only where it’s true.
-
10. One vocabulary
Your three most-sold features, each called the same thing on the homepage, in the pricing table, and in the docs. A capability renamed for marketing reads to a cross-checking machine as two different claims, one of which it can’t confirm.
Pass: one name per feature.
-
11. Nothing trapped in pixels
Spec tables saved as images, prices inside banner graphics, product demos on video with no transcript. A PDF counts as text only if the text in it can be selected; a scanned spec sheet is a picture with a file extension.
Pass: everything you would want quoted exists somewhere as text.
-
12. The profile inventory
Every listing you technically own on a platform you don’t: G2, Capterra, app stores, marketplaces, partner directories, Crunchbase, the data brokers feeding a hundred smaller listings you’ve never heard of. Most of these were filled in once, during a launch or a funding round, by someone who may no longer work there, and they’ve been speaking for you ever since. Put them in one spreadsheet and check each against your current price and current feature names. This is the afternoon-sized check, and it’s the one I’d least want to skip, because these are contradictions you built yourself, on surfaces a machine has independent reasons to trust.
Pass: the sheet exists, everything on it agrees with your site, and the recurring reconciliation has an owner and a calendar slot before the sheet gets closed.
-
13. The oldest unanswered complaint
Find the oldest public complaint about you that never got a reply, wherever it lives. Write the dated, factual, non-defensive answer. Draft it one day, post it another.
Pass: it has a reply, and the reply contains no adjectives about yourselves.
-
14. Twenty questions
Your top twenty buyer questions, into the major AI assistants, answers and citations logged in a spreadsheet. If no such list exists yet, build it from four kinds of question: the category ask (“best X for a team like ours”), the direct comparison against your nearest rival, the task your product exists to solve phrased the way a buyer would phrase it, and your own brand name asked cold. Three or four assistants is enough: the ones with the largest audiences, plus whichever one your sales team keeps hearing prospects mention. For each answer, log the date, whether you were named, any price it quoted, and every domain it cited. It takes an hour to run and another to read. What you’re looking for: your absence from questions you should own, a stale price quoted with confidence, a competitor’s framing of you, and where the citations point, because that short list of domains is where this channel’s influence lives.
Pass: the log exists, you’ve read it, and it has a next-run date.
-
15. The channel group
AI referrals separated into their own channel in your analytics, with conversion rate by source beside it. Your analytics tool sees an AI referral as a session whose referrer is one of a short list of domains, the chat products and the AI search surfaces, and some of the traffic arrives with no referrer at all, so whatever you count is a floor. Build the channel from that domain list, name it, and put conversion rate next to it. The configuration is roughly an hour.
Pass: you can state this month’s AI-referral session count and its conversion rate from one screen, without anyone exporting anything.
If you sell software
Three more, on the surfaces where software gets judged.
-
16. Docs versus pricing page
Pick five facts stated in both: a limit, a tier boundary, an integration, whatever your buyers check.
Pass: five matches out of five.
These two surfaces get held side by side in a machine’s working memory more often than any other pair you publish, and a mismatch between them is the cheapest contradiction to find and the most expensive to explain.
-
17. Where your category argues
Software gets judged on review sites and in forums before anyone reaches your domain.
Pass: your newest G2 or Capterra review is younger than your newest major feature, and you can name the last thread about your category, anywhere, that someone from your company read.
Answering threads is optional and has rules. Reading them costs an hour a month and pays for itself.
-
18. The concession
Your comparison pages name at least one matchup you lose and say plainly which buyer should pick the other product.
Pass is a yes or no.
The reader building the shortlist has read your competitor’s version of the same page, and if neither of you concedes anything, the two pages have the same shape and it has nothing to choose on.
If you sell things
Two more, and they’re bigger than they look.
-
19. Ten SKUs against the store
Pull ten products from your feed and check them against their live pages: price, stock, shipping cost, return terms, all agreeing, and the descriptive attributes filled in past the required ones, because the optional fields are the constraints shopping agents filter on. The attributes worth the typing are the ones a constraint can hang on: material, dimensions, weight, care instructions, compatibility, country of origin.
Pass: ten out of ten agree and the attribute columns aren’t half empty.
If ten fail, the fix is a catalog project, and it will need whoever owns the catalog before it needs a copywriter.
-
20. What your platform already decided
At least one commerce platform has switched on agent access by default on behalf of its merchants. Shopify’s agentic storefronts went live by default for eligible stores in 2026, syndicating catalogs to the chat products and the AI search surfaces through Shopify Catalog, with the settings under Sales channels in the admin and a default option named, without irony, “Allow Shopify to manage for me.” Other platforms have so far shipped the same reach as an app install or an early-access opt-in, which is the version you’d remember agreeing to.
Pass: you can state which agent surfaces can currently reach your catalog, which of them can complete a purchase, and who chose that.
The word “currently” is doing real work, because the answer changes without notice. Two footnotes. Turning catalog access off does not stop a crawler reading your product pages; that’s check 1’s territory. And if the answer is “I don’t know,” the check has done its job.
What the fails mean
Expect somewhere between five and twelve fails on a first run. My guess is that well-run companies land in that range, because almost nothing on this list was anyone’s job until recently, and a perfect first score would send me back to harden the pass conditions.
The fails sort themselves. Checks 1 and 2 outrank everything, since a blocked or blank site fails every other check invisibly. After that, top to bottom is a reasonable order, and the profile inventory earns its afternoon before anything cosmetic gets touched. Some fails won’t be yours to fix: the CDN setting belongs to IT, the docs vocabulary to product, the feed to whoever owns the catalog. Write a name beside each fail before the week ends anyway. An unowned fail is the one still on the list next quarter.
A note on the afternoon. The profile inventory is the check most likely to be abandoned half done, because the list of places you’re listed keeps growing while you compile it. Stop at twenty listings the first time. The sheet needs to exist and have an owner; completeness is what the quarterly re-run is for.
The fails cluster. The front door goes first, because robots.txt blocks are installed by defaults nobody remembers choosing. The changelog passes on a technicality, public and dated, with the newest entry two releases old, which is the same as failing. The profile inventory fails for nearly everyone, because until this week nobody owned it. Fewer than five on a first run means one of two things, and only one of them is good.
Three things stayed off the list on purpose: anything requiring a purchase, anything protocol-shaped, and any check for voice or taste. The first two don’t belong in week one. The third would be the twenty-first check, and I couldn’t write a pass condition for it. Voice is half of what the humans arriving after the machines will judge you on, somebody may eventually work out how to audit it, and this list doesn’t.
Run the twenty again in a quarter. If the fail count went down, the week worked.
Notes for chapter 13
The book keys its notes to a phrase from the text rather than to a numbered mark. Where a check depends on a vendor's current documentation, the documentation is the source, and it moves.
“the AI user agents documented by the major AI companies.” Crawler documentation published by OpenAI, Anthropic, and Perplexity, 2026, for the three-way split in check 1.
“the measurements published so far found no sign that the major ones execute a script.” Vercel engineering research, as listed under chapter 2.
“Shopify’s agentic storefronts went live by default.” Shopify, agentic storefronts help pages, 2026, for check 20.
Every other check compresses evidence argued earlier in the book. Where a check depends on a vendor’s current documentation or defaults, the documentation is the source, and it moves.