I ran 5 websites. Wrote 58 articles. Built 3 SaaS products. Spent months promoting all of it.
Then I asked a simple question: “Can a crawler tell who built itbroke.dev?” — a monitoring SaaS I built from scratch, one of the products I’d been actively promoting.
The answer was no. Not reliably. Not from structured data. Not from meta tags. Not from any machine-readable signal on any of my 5 sites.
I was a ghost with a portfolio.
The test
I built an auditor that checks entity coherence across sites — whether a person exists as a structured, machine-readable identity that crawlers and AI can actually parse. Not whether content exists. Whether the builder exists.
The audit asked one question across 5 layers: Can a machine connect “Ben Peetermans” to the things Ben Peetermans built?
What I saw: 5 live sites, press kits, articles, a projects page listing everything I’ve shipped
What crawlers saw: 5 disconnected websites with no structured Person entity, no author attribution, no cross-site links, and bylines that just said “Ben”
Five layers, all zeros
The audit checked structured data, HTML meta tags, AI crawler signals, visual attribution, and cross-site links. Every layer came back empty.
founder property and empty sameAs arrays. Zero creator declarations.<meta name="author"> anywhere. No article:author. No rel="me". No twitter:creator. Article bylines said “Ben” — no last name.The headline finding: “Ben Peetermans” did not exist as a structured entity on any of 5 websites.
An AI asked “Who built itbroke.dev?” would have to scrape HTML and hope. There was no machine-readable path from any product to a person.
Why this matters now
When someone asks ChatGPT or Perplexity “who built itbroke.dev,” the answer comes from entity signals — Person schema, sameAs links, author meta tags. Not from scanning your homepage and guessing.
LLM-powered search pulls from structured data. Google’s Knowledge Graph connects people to things through structured signals. If you don’t provide those signals, you don’t exist in the graph. Your products float in isolation. Your articles have no author. Your portfolio is a list of things that belong to nobody.
This is the difference between an AI confidently answering “Ben Peetermans built itbroke.dev, SerpDelta, and LayerView — he’s a solo builder with 20 years of experience” and responding with “I don’t have enough information to answer that.”
What I fixed
The entire fix took about 2 hours across the main hub site. Here’s what shipped:
Person JSON-LD on every page — the single highest-impact fix. Created the entity that didn’t exist:
{
"@type": "Person",
"@id": "https://launchwithben.com/#person",
"name": "Ben Peetermans",
"sameAs": [
"https://www.linkedin.com/in/...",
"https://itbroke.dev",
"https://serpdelta.com",
"https://layerview.dev"
]
}
The @id creates a reusable identity anchor. Every other schema on every other site can now reference this single Person entity instead of creating disconnected copies.
Organization schema with founder — connected the business to the person:
{
"@type": "Organization",
"founder": {
"@type": "Person",
"@id": "https://launchwithben.com/#person"
},
"sameAs": ["https://itbroke.dev", "https://serpdelta.com", "..."]
}
The rest of the fixes:
<meta name="author" content="Ben Peetermans">on every page- 6
rel="me"links in the<head>(LinkedIn, Threads, all product domains) - Article JSON-LD with
authorreferencing@id: #person article:authorOG meta pointing to /about- Footer: “Built by Ben Peetermans” + Press Kit link + social icons
- Created /about page with ProfilePage schema
- Created humans.txt
- Updated llms.txt with full name and press kit link
- Fixed article bylines from “Ben” to “Ben Peetermans”
I also found bugs: breadcrumb schema was producing doubled URLs (https://example.comhttps://example.com/learn), and article:published_time was outputting unix timestamps instead of ISO 8601. Both the kind of silent failures you only catch by actually checking what the code produces instead of trusting that it works.
The checklist
This is the generalized version. Run it against your own site — especially if you’re a solo builder with multiple projects.
- Person JSON-LD exists on your main site with
@id,name,url,sameAslinking to all your profiles and projects - Organization schemas on every product site include a
founderproperty referencing your Person@id <meta name="author">on every page uses your full name — not a first name, not a brand namerel="me"links in your<head>point to your social profiles and product domains- Article pages have
article:authorOG meta and Article JSON-LD withauthorreferencing your Person@id - Footer attribution on every site says “Built by [Full Name]” with a link to your hub site
- /about page exists and doesn’t 404 — this is your canonical author destination
- Cross-site links go both directions: hub → products AND products → hub
- llms.txt mentions your full name and links to your press kit or about page
- humans.txt exists with your name and site URL
Every item is a signal. Alone, each one is small. Together, they create the entity graph that tells machines who you are and what you built.
Verify it worked
Shipping fixes without checking is the same mistake that got me here. After you implement the checklist, confirm machines can actually read what you added:
- Google’s Rich Results Test — paste any page URL. Check that Person and Organization schemas parse without errors. If
sameAsorfounderdon’t appear, they’re malformed. - Schema.org Validator — more detailed than Google’s tool. Shows every property and flags missing recommended fields.
- Ask an AI — literally ask ChatGPT or Perplexity “Who built [your-site.com]?” If the answer is confident and correct, the signals are landing. If it hedges or gets it wrong, something’s missing.
- View source — search for
application/ld+jsonin your page source. Count the Person references. Check that@idmatches across schemas. Check thatarticle:published_timeis ISO 8601, not a unix timestamp (I had that bug).
If you skip this, you’re doing what I did: promoting in the dark. Spending time and money making things people can find — while machines can’t connect any of it to you.
The good news: unlike most SEO, this isn’t a game. It’s just telling the truth in a format machines can read. Two hours of work, and now the question “Who built itbroke.dev?” has a structured answer.
Related:
- Audit Before You Spread the Mess — The same principle applied to code: find structural problems before they multiply
- AI Trusts Your Docs. That’s the Problem. — Why “looks right” isn’t “works right” — and the bugs I found by checking
- Flying Blind with Expensive Instruments — Promotion without signals is the same trap as analytics without the right conversions