Owner Stefan CoetzeeUpdated 2026-10-09

Reference · 2026-10-09 · checked against the live site and the repository

How This Site Is Built for AI Search

Each lever as a receipt: what machinebehavior.io does, which engine documents reading it, and where to check it.

The answer, in one paragraph. machinebehavior.io lets every crawler in, lists 447 URLs in its sitemap, gives every page a canonical URL, serves its content as static HTML with no third-party requests, and writes one JSON-LD graph into every page. A deploy gate fails any push that leaves a page without a canonical link or out of the sitemap. Google and Bing document these levers as part of crawling and indexing, which their AI answers draw on. Three levers on this site have no primary source from any answer engine: llms.txt, the link graph at /map/graph.json, and Open Graph images. Whether any lever changes citations on this site is not measured yet; see Measurement.

The levers

Counts were taken from the repository and the live site on 2026-10-09. "No primary source" means none of the engine documents listed on the AIEO hub says the engine reads it.

LeverWhat this site doesEngine documentationCheck it
Crawl accessrobots.txt allows every user agent and names the sitemap.OpenAI: opting out of OAI-SearchBot removes a site from ChatGPT search answers. Perplexity recommends allowing PerplexityBot. Anthropic: blocking Claude-SearchBot may reduce your site's visibility. Bing lists Blocking Bingbot in your robots.txt file under things to avoid./robots.txt
Sitemap447 URLs, each with a lastmod date. The deploy gate fails a push when a page is missing from it.Bing: Use XML sitemaps to indicate which URLs matter and when content changes./sitemap.xml; the gate's check in run.py
Canonical URLsAll 447 pages carry a canonical link. 444 point at themselves; the three pieces cross-posted to Substack point at the Substack copy. The gate fails a page without one.Bing: duplicate URLs reduce Bing's confidence in selecting a URL for grounding results or citations. Google asks site owners to reduce duplicate content.The page source of any page; gate runs
IndexNowAn IndexNow key file was added to the site root on 2026-10-02. No script in the repository pings IndexNow; any submission is manual.Bing: Use IndexNow to notify Bing when URLs are added, updated or removed. IndexNow is a simple ping so that search engines know that a URL and its content has been added, updated, or deleted (indexnow.org).the key file
Content in the HTMLPages whose lists load in the browser (Inside, the board, Mission Control) carry the same lists as static HTML, written at build time, since commit ac332ff on 2026-10-09.Bing lists Hiding critical content behind client-side rendering under things to avoid. Google: Google is able to process content within JavaScript as long as it isn't blocked.commit ac332ff
No third-party requests on loadFonts and the graph library are served from the site. Opening a page sends no request to a third party; the Grafana frames on Inside load only when the reader scrolls to them.Bing lists Excessive or unnecessary HTTP requests to render the content under things to avoid. Google names reducing latency as part of page experience. Neither says third-party requests affect citation.ADR-0010
Structured data (JSON-LD)One graph per page, written from the navigation source: Stefan Coetzee as Person with his profiles as sameAs (LinkedIn, Substack, GitHub, X), the site as WebSite with its search as SearchAction, the page as Article, TechArticle, CollectionPage or WebPage with its dates, and a BreadcrumbList. Terms and the definition draft carry a DefinedTermSet with one DefinedTerm per definition, read from the visible text. 446 of 447 pages carry the graph in the repository; the gate rewrites its own page, /conformity/, on every run, and the deploy job adds the graph there.Google: Structured data isn't required for generative AI search. Bing: Structured data may support clearer grounding but does not guarantee visibility or grounding traffic. Both require markup to match visible content.ADR-0027; the page source; Google's Rich Results Test
Titles and descriptions447 of 447 pages carry a title and a meta description.Bing: Missing, duplicate, or overly short title tags and meta descriptions may reduce indexing reliability, ranking, and eligibility for grounding results and citations.The page source of any page
Defined terms and one name per entityOn Terms, each term has one canonical definition, in frozen wording. Stefan Coetzee is named as owner on every page, in the page header and in the JSON-LD.Bing: Use clear and consistent naming for people, organizations, products, and locations. and Facts and definitions are explicit./terms/
Answer first12 of 16 research and reference pages state their finding or content in the first paragraph; the table below lists each one.Bing: Place essential information near the top of the URL. Google asks for sections and clear headings and gives no guidance on placement.the table below
llms.txtA markdown index at the site root, 541 lines on 2026-10-09, with one line per page.No primary source. Google: Google Search ignores them. Bing's guidelines do not mention llms.txt. The proposal, version 2, describes it as information to help agents use a website. An Ahrefs study found that Of the ~38,000 domains with a valid file, 97% saw no requests for it whatsoever in May./llms.txt; llmstxt.org; the Ahrefs study
Link graphEvery page, post, repository and thread across the author's sites, with the links between them, as one JSON file.No primary source./map/graph.json; the map
Open Graph images445 of 447 pages carry og:image and the other Open Graph tags.No primary source among the answer engines. The Open Graph protocol defines og:image as An image URL which should represent your object within the graph, for link previews in social networks.The page source; ogp.me

Answer-first pages

The test: does the first paragraph under the title state the page's finding, or for a list or reference page, what the page holds? Claude, the model that drafted this page, applied the test on 2026-10-09. It is a reading, not a mechanical check. Whether to write new answer-first pages for target questions is an open decision for the site owner.

PageVerdictWhy
HomepartlyFirst paragraph: a tagline. The finding (approval training produces a fawn response, suppressing it produces symptom substitution) comes in the second.
ResearchyesFirst paragraph: what the section contains.
Claims ledgeryesFirst paragraph: what the ledger contains, and why refuted claims stay in it.
ExperimentsnoFirst paragraph: where the data came from. Each result comes further down, under its experiment.
Objections registeryesFirst paragraph: what the register contains.
Evidence indexyesFirst paragraph: what the index maps.
SlipsyesFirst paragraph: what the log records.
TermsyesFirst paragraph: one definition per term, canonical wording.
Continuous conformityyesFirst paragraph: what the 36 requirements test.
Self-assessment, run 1partlyFirst paragraph: the method. The result comes about 200 words in.
Man pagesyesFirst paragraph: what the page lists.
The cheating movedpartlyThe finding is in the title; the first paragraph lists the contents.
Chaos engineering for behaviouryesFirst sentence: the thesis.
Running conjobs for AIyesFirst paragraph after the subtitle: what the specimen shows, in one paragraph.
Case 12yesFirst paragraph after the subtitle: what the case shows, in one paragraph.
Map of the WorkyesFirst paragraph: what the graph contains and where its data is.

How the counts were taken

Changelog