← All posts

August 20, 2026

Schema didn't save my thin pages

seopersonal brandingaeoopen sourceclaude
Schema didn't save my thin pages

When I published Winning your own name is an entity problem, the playbook was mostly on-site: titles, a JSON-LD entity graph, canonicals, a sitemap. It worked well enough that I open-sourced it as a Claude skill. Since then I've kept using that skill on this site, and it just told me I was wrong about something.

My About page had a full Person schema graph: job title, employer, alumni, sameAs links to LinkedIn and GitHub, the works. Textbook entity setup. It was also 162 words long.

Google doesn't care how good your schema is if there's nothing underneath it. Neither does an AI Overview deciding what to cite. Every canonical was in place, every field in the Person graph was filled in, and the page still deserved to get skipped. The schema was complete. The content wasn't.

So the skill's on-site checklist now runs a content-quality pass before it lets you near schema: word-count every key page (500 words minimum, 1,500+ for anything meant to be a pillar), proofread for grammar, and check whether two pages on the same site are quietly competing for the same query. That last one caught something too: a FAQ answer I'd added to About was restating, almost verbatim, a list that already lived on my Experience page. Two pages splitting one answer doesn't help either page. I rewrote the FAQ as a summary with a pointer to the full list instead.

The other gap was intent. I'd been treating “get found for my name” as one problem, but the queries that actually reach this site sort into different buckets: someone typing my name wants consolidation, someone asking what I do wants a direct answer, someone comparing consultants wants a table, someone ready to hire wants one obvious button. Writing the same kind of content for all four is how you serve none of them well. The skill now asks which bucket a query falls into before deciding what the page should even look like.

Four query-intent buckets for one name: consolidation, a direct answer, a comparison, and one clear button

I also went through a chunk of general AEO advice this month, the kind aimed at B2B teams with a marketing budget. Most of it doesn't apply to a one-person site: Local SEO assumes a physical office or a service area, neither of which I have. Rather than bolt on a Google Business Profile I don't need, the skill now says plainly when Local SEO doesn't apply and skips straight to what does: voice search. That part transfers cleanly: conversational long-tail phrasing, answers sized for a voice assistant to read aloud, and actually asking Siri and Google Assistant your own name to see what comes back. I did that. The answers were technically correct and generic, nothing in them said Saad Salman instead of any other product manager.

What did make the cut: a free-first tool list, so a low-traffic site isn't buying a rank tracker it doesn't need yet, and a real question source, AnswerThePublic, so the FAQ content I add is questions people actually ask, not ones invented to justify adding FAQPage schema. That guardrail was already in the skill; now there's a tool attached to it. And a monitoring cadence, because “check on it sometime” isn't a plan: weekly rank review, monthly content and voice-assistant audits, quarterly re-runs of the off-site checklist and a fresh look at whether the FAQ questions are still the ones people ask.

The monitoring cadence: weekly rank review, monthly content and voice audit, quarterly off-site and FAQ refresh

None of this moves the needle overnight. My name still sits around position 58 for “saad salman,” and I'm not going to pretend otherwise: the skill's first rule is no guarantees, and I'm not breaking it for a blog post. But the mechanism is more honest now than when I wrote the first post: it checks the content before it dresses it up in schema, and it tells you when a tactic doesn't apply instead of running it anyway.

Same repo, updated: github.com/saadsalmankhan/entity-seo-skill. If you're running it already, pull the latest, the new checks run automatically as part of the same phases.

Saad Salman
Saad Salman

I write about payments, fintech and building products. More about me.

Share this post

Get new posts by email

Occasional writing on payments, fintech, and building products. No spam, unsubscribe anytime.