I want to tell you something that most web developers will disagree with. Schema markup is not a technical task. It is a strategic decision about how machines understand your identity, your business, and your authority. The fact that it happens to be written in JSON does not make it a developer's job any more than writing a contract in English makes it a linguist's job.

This distinction matters because most companies treat schema as the last step. Build the site. Write the content. Then get the developer to "add the schema." By then, the decisions that actually determine what AI agents understand about you have already been made, by default, by people who were not thinking about machine comprehension at all.

I run three companies. I have implemented schema across all of them. Not because I enjoy writing JSON-LD (I do not). But because I watched what happens when AI agents try to understand an entity that has not declared itself clearly. They guess. And they guess wrong.


What schema actually is (and is not)

Schema markup, specifically JSON-LD (JavaScript Object Notation for Linked Data), is structured data you embed in your website's HTML. It uses the vocabulary defined at Schema.org to tell machines what your content means, not just what it says.

Without schema, an AI agent visiting your website sees text. It sees paragraphs about pump engineering, publishing, entity infrastructure, whatever you do. It applies natural language processing to extract meaning. Sometimes it gets it right. Often, it fills in gaps with assumptions.

With schema, you are making explicit declarations. "This is a Person. This person holds the role of Director at this Organization. This Organization provides these Services in this geographic area. This Article was authored by this Person on this date."

The difference is not subtle. One path leaves your identity up to inference. The other path makes it a matter of record.

Here is what schema is not: it is not a ranking factor in the traditional SEO sense. Google has said this repeatedly. It does not directly boost your position in search results. What it does is far more important in the AI era. It makes you parseable. It makes you citable. It makes you unambiguous.

And that matters because AI search (ChatGPT, Gemini, Perplexity) does not rank pages. It selects entities to cite. The distinction between being a website and being a verified entity starts with whether machines can read your declarations or have to guess your identity from prose.

Why most implementations fail

The standard workflow goes like this. Company builds website. Designer hands off to developer. Developer installs an SEO plugin or copies a schema template from Stack Overflow. The schema gets a Person type with a name and maybe a URL. The Organization gets a name and a logo. Done.

Technically valid. Strategically useless.

Here is why. A name and a URL tell an AI agent almost nothing. They do not establish what you do. They do not connect you to verifiable external profiles. They do not declare your relationship to organizations, publications, credentials, or geographic regions. They do not distinguish you from every other person with a similar name.

The schema that matters is the schema that answers the questions AI agents are actually asking:

  • Who is this person, and can I verify that claim across independent sources?
  • What organizations are they connected to, and in what capacity?
  • What have they published, and where?
  • What services do they offer, and where?
  • Is this information consistent with what I find on LinkedIn, ORCID, Wikidata, Google Scholar, and other platforms?

A minimal schema block answers none of those questions. A strategic schema block answers all of them.

The three schema types that define you

For any practitioner or business owner who wants AI systems to understand them correctly, three schema types matter most: Person, Organization, and Article. Not because the others are irrelevant, but because these three form the identity triangle that AI agents use to establish entity confidence.

Person schema: your declaration of identity

This is where most people get it wrong. They add name, url, maybe an image. That is like handing someone a business card with just your name on it. Useful for a cocktail party. Useless for due diligence.

Here is what a strategic Person schema looks like. I have simplified from my actual implementation, but the structure is accurate:

{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://hibranwar.com/#person",
  "name": "Ibrahim Anwar",
  "alternateName": "Hibranwar",
  "description": "Practitioner and Director. Systems that scale across engineering, publishing, and search.",
  "url": "https://hibranwar.com",
  "image": "https://hibranwar.com/images/ibrahim-anwar.webp",
  "jobTitle": "Director",
  "worksFor": [
    {
      "@type": "Organization",
      "name": "PT Arsindo Bukitbarisan",
      "url": "https://ptarsindo.com"
    },
    {
      "@type": "Organization",
      "name": "Witanabe",
      "url": "https://witanabe.com"
    },
    {
      "@type": "Organization",
      "name": "Hibrkraft",
      "url": "https://hibrkraft.com"
    }
  ],
  "knowsAbout": [
    "Entity Infrastructure",
    "Industrial Engineering",
    "Pump Systems",
    "Book Conservation",
    "Publishing"
  ],
  "sameAs": [
    "https://www.linkedin.com/in/hibranwar/",
    "https://orcid.org/0009-0005-2988-6440",
    "https://scholar.google.com/citations?user=XXXXXXX",
    "https://www.wikidata.org/wiki/Q131268653",
    "https://g.co/kgs/gJQxcFn"
  ]
}

Notice what this does. It does not just name me. It connects me to three specific organizations with verifiable URLs. It lists domains of expertise. And the sameAs array, which I have written about extensively, points to independent platforms where the same identity can be cross-checked.

The @id property is particularly important. It creates a permanent, unique identifier for this entity within your site. Every other schema block on your site can reference this ID to establish connections. Person authors Article. Person worksFor Organization. The @id is the node in your entity graph.

Organization schema: not just your company, your ecosystem

Most Organization schemas list a name, logo, and maybe contact information. Again, technically valid. Strategically incomplete.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://ptarsindo.com/#organization",
  "name": "PT Arsindo Bukitbarisan",
  "url": "https://ptarsindo.com",
  "logo": "https://ptarsindo.com/images/logo.webp",
  "description": "Industrial pump solutions provider serving Southeast Asia since 2008.",
  "foundingDate": "2008",
  "areaServed": {
    "@type": "GeoCircle",
    "geoMidpoint": {
      "@type": "GeoCoordinates",
      "latitude": "-6.2088",
      "longitude": "106.8456"
    },
    "geoRadius": "2000 km"
  },
  "founder": {
    "@type": "Person",
    "@id": "https://hibranwar.com/#person"
  },
  "member": {
    "@type": "Person",
    "@id": "https://hibranwar.com/#person"
  },
  "sameAs": [
    "https://www.linkedin.com/company/ptarsindo/",
    "https://www.google.com/maps/place/PT+Arsindo+Bukitbarisan/"
  ]
}

See how the founder field references the @id from the Person schema? That creates a bidirectional link in the entity graph. The Person declares they work for the Organization. The Organization declares this Person founded it. Two independent declarations confirming the same relationship. That is how AI agents build confidence.

The areaServed field is strategic for anyone who wants to appear in geographically relevant AI responses. Without it, an AI agent has no structured way to know where you operate. It might infer from your content. It might not.

Article schema: connecting content to identity

Every piece of content you publish is an opportunity to reinforce your entity graph, or a missed connection. Article schema ties a specific piece of writing to a specific author and a specific publisher.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Schema Markup Is Not Technical. It's Strategic",
  "author": {
    "@type": "Person",
    "@id": "https://hibranwar.com/#person",
    "name": "Ibrahim Anwar"
  },
  "publisher": {
    "@type": "Organization",
    "name": "hibranwar.com",
    "url": "https://hibranwar.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://hibranwar.com/images/logo.webp"
    }
  },
  "datePublished": "2026-06-04",
  "dateModified": "2026-06-04",
  "description": "JSON-LD schema is not a developer task. It is the primary language AI agents use to understand who you are.",
  "mainEntityOfPage": "https://hibranwar.com/writing/essays/031-schema-markup-strategic/",
  "keywords": ["schema markup", "JSON-LD", "entity infrastructure", "AI search"]
}

The author field references the same @id. Every article you publish with this pattern adds another edge to the entity graph. Over time, this creates a dense web of machine-readable connections between your identity, your organizations, and your published work.

This is why I said schema is strategic. The code examples above are simple. Any developer can copy and paste them. But the decisions, which organizations to connect, which expertise domains to declare, which external profiles to reference in sameAs, those are business decisions. They define your entity to machines.

How schema connects entities: the graph

Schema is not a flat list of facts. It is a graph. Every @id reference creates an edge. Every sameAs URL creates a bridge to an external node. The result is a network of declarations that AI agents can traverse to build a picture of who you are.

Here is what that graph looks like for a practitioner running multiple companies:

graph TD P["Person
Ibrahim Anwar
@id: /#person"] O1["Organization
PT Arsindo Bukitbarisan"] O2["Organization
Witanabe"] O3["Organization
Hibrkraft"] A1["Article
Schema Markup Is Not Technical"] A2["Article
JSON-LD Person Schema Guide"] A3["Article
Website vs Entity"] LI["LinkedIn Profile"] OR["ORCID Record"] WD["Wikidata Entry"] GS["Google Scholar"] GM["Google Maps"] P -->|worksFor| O1 P -->|worksFor| O2 P -->|worksFor| O3 O1 -->|founder| P A1 -->|author| P A2 -->|author| P A3 -->|author| P P -.->|sameAs| LI P -.->|sameAs| OR P -.->|sameAs| WD P -.->|sameAs| GS O1 -.->|sameAs| GM style P fill:#222221,stroke:#c8a882,color:#ede9e3 style O1 fill:#222221,stroke:#6b8f71,color:#ede9e3 style O2 fill:#222221,stroke:#6b8f71,color:#ede9e3 style O3 fill:#222221,stroke:#6b8f71,color:#ede9e3 style A1 fill:#222221,stroke:#8a8478,color:#ede9e3 style A2 fill:#222221,stroke:#8a8478,color:#ede9e3 style A3 fill:#222221,stroke:#8a8478,color:#ede9e3 style LI fill:#191918,stroke:#c8a882,color:#ede9e3 style OR fill:#191918,stroke:#c8a882,color:#ede9e3 style WD fill:#191918,stroke:#c8a882,color:#ede9e3 style GS fill:#191918,stroke:#c8a882,color:#ede9e3 style GM fill:#191918,stroke:#c8a882,color:#ede9e3

The solid lines are declarations within your own schema. You control them. The dashed lines are sameAs bridges to external platforms. Those platforms confirm you independently. The AI agent does not have to trust your website alone. It can follow the graph, verify claims across nodes, and build a confidence score.

This is the fundamental difference between a website that talks about itself and an entity that is verifiable across the web. I have written about this distinction before, but schema is the mechanism that makes it operational.

Strategic schema decisions (the part developers cannot make)

Here is where the conversation shifts from code to strategy. The JSON-LD syntax is the easy part. The hard part is deciding what to declare, because what you declare to machines defines how they categorize you.

Decision Technical framing Strategic framing
Which @type to use for yourself "Person or Organization?" "Am I building authority around my personal identity or my company brand? Which one do enterprise clients search for?"
What goes in knowsAbout "List your skills" "Which expertise domains position me for $250k contracts vs. attract price-shoppers? Declaring 'pump repair' attracts different clients than 'industrial fluid systems engineering.'"
Which URLs go in sameAs "Add your social profiles" "Which external platforms provide institutional verification? LinkedIn shows professional claims. ORCID shows published research. Wikidata shows notability. Each sameAs URL is a vote of confidence from a different institution."
How to structure worksFor "List your employer" "Should I declare all three companies? Does that signal 'diversified practitioner' or 'spread too thin'? For my target clients, cross-domain credibility is an asset."
Whether to use @id references "Optional identifier" "Without @id, each schema block is isolated. With it, every article, every organization page, every mention reinforces a single entity node. This is the difference between disconnected facts and a knowledge graph."
What areaServed to declare "Set your location" "Do I declare Indonesia? Southeast Asia? Global? The answer depends on which contracts I want AI systems to associate me with."
Article author linking "Add author name" "Every article I publish without proper author schema is a missed node in my entity graph. Every article with it compounds my authority."

A developer can implement any of these correctly in JSON-LD. But a developer cannot decide what your entity should look like to machines. That is a business decision. And most businesses never make it, which is why their schema is technically valid and strategically empty.

The compounding effect

Schema is not a one-time task. It is infrastructure that compounds.

Every article you publish with proper Article schema adds a node. Every sameAs URL you add creates a bridge. Every Organization block that references your Person @id strengthens the graph. Over time, the entity you have declared becomes increasingly difficult for AI systems to ignore, misinterpret, or confuse with someone else.

Research from Schema App found that entity-verified content, content with proper structured data connecting it to a verified entity, is cited 67% more often in AI responses than content without it [1]. That is not a marginal improvement. That is the difference between being cited and being invisible.

Outpace SEO reported that 71% of pages cited by ChatGPT use schema markup [2]. Not correlation. Causation is debatable. But the pattern is consistent: AI agents preferentially cite content they can parse with confidence.

And Backlinko's data shows 72% of first-page Google results include some form of structured data [3]. The direction is clear. Structured data is shifting from optional to expected.

But here is the part nobody talks about: the compounding happens at the entity level, not the page level. Adding schema to one page helps that page. Building a connected graph across all your pages, your organizations, and your external profiles creates an entity that AI systems recognize as a coherent whole. That is where the real leverage lives.

Schema as the language AI agents speak

This is the framing shift I want you to make.

When you meet a potential enterprise client, you do not hand them a random page from your website and hope they figure out who you are. You introduce yourself. You explain your role, your companies, your track record. You connect the dots for them.

Schema is how you introduce yourself to AI agents. Not through content they have to interpret. Through declarations they can parse directly.

Schema App's 2026 research put it well: "Relying solely on NLP to figure it out is no longer a strategic choice; it is a surrender of your brand's digital identity to the probabilistic whims of an LLM" [1]. The inference cost alone is enormous. Running a neural network to extract entity information from prose costs orders of magnitude more than parsing a JSON-LD block. When scaled across billions of pages, AI systems will naturally prefer the path of least resistance: structured data.

By providing schema, you are giving AI agents a pre-digested data source. You are removing the interpretation tax. You are making it cheaper and easier for them to understand you correctly.

That is not a technical optimization. That is a strategic advantage.

What I did wrong (and what I learned)

When I first implemented schema for my own sites, I made the classic mistake. I treated it as a checklist item. Add Person schema. Check. Add Organization schema. Check. Move on.

The result was three disconnected schema blocks that told AI agents almost nothing useful. My Person schema did not reference my organizations. My Article schemas did not reference my Person @id. My Organization schemas did not reference each other or link back to me as founder.

It was like having three separate business cards for three separate people who happened to have the same name. No wonder AI systems were confused about whether "Ibrahim Anwar" was one entity or three.

The fix was simple in execution but required rethinking the entire approach. I sat down and mapped what I wanted AI agents to understand about me. Not what I wanted to rank for. What I wanted them to know. Then I structured the schema to declare exactly that, with @id references connecting every block into a single coherent graph.

I have documented the specific Person schema setup in my JSON-LD Person Schema guide. But the broader lesson is this: if you do not design your entity graph intentionally, you end up with fragments. And fragments do not compound.

The cost of not doing this

Salespeak AI's research found that schema markup predicts about 4 to 7% of AI citation behavior on its own [4]. That sounds small. But think about what the absence costs you.

Without schema, AI agents have to infer your identity. Inference introduces errors. Errors compound. An AI system that misidentifies your expertise domain will never recommend you for the right queries. An AI system that cannot distinguish you from another person with a similar name will hedge its citations. An AI system that cannot verify your organizational affiliations will treat you as a less credible source.

These are not hypothetical failures. I have seen them happen. Businesses with strong content and zero structured data, invisible to AI search. Practitioners with impressive credentials, confused with someone else because they never declared themselves unambiguously.

The cost is not that schema would have saved them. The cost is that they never gave AI agents the information needed to represent them accurately. They surrendered their identity to inference. And inference, at scale, is unreliable.

Practical implementation order

If you are starting from zero, here is the order that creates the most entity value fastest:

  1. Person schema on your homepage or about page. Include @id, name, description, jobTitle, worksFor, knowsAbout, and sameAs. This is your identity anchor.
  2. Organization schema on each company's website. Include @id, founder referencing your Person @id, areaServed, and sameAs pointing to Google Maps, LinkedIn, and any other verifiable profiles.
  3. Article schema on every piece of published content. Include author referencing your Person @id and publisher referencing your Organization @id.
  4. sameAs on everything. Every Person block, every Organization block. Each sameAs URL is a bridge to an independent verification source.
  5. Validate. Use Google's Rich Results Test. Check for warnings, not just errors. Warnings often indicate strategically important missing fields.

This is not a one-afternoon project. It is an ongoing infrastructure investment. Every new article, every new company page, every new external profile should be woven into the graph.

Key concept: Schema markup is not a developer task bolted onto a finished website. It is the primary mechanism by which AI agents understand who you are, what you do, and whether you are credible. The decisions about what to declare are business decisions. Treat them accordingly.

Frequently Asked Questions

Does schema markup directly improve Google search rankings?

No. Google has repeatedly stated that schema markup is not a direct ranking factor. But that framing misses the point. Schema enables rich results (knowledge panels, rich snippets, author cards) which improve click-through rates. More importantly, schema makes your content parseable by AI search engines like ChatGPT, Gemini, and Perplexity. In the AI era, being parseable matters more than ranking in a list of links.

Can I use a WordPress plugin for schema instead of writing JSON-LD manually?

You can. Plugins like Yoast, RankMath, and Schema Pro generate valid JSON-LD. But they generate generic schema based on page type. They cannot make the strategic decisions: which organizations to connect to your Person entity, which sameAs URLs to include, how to structure cross-site @id references. Use plugins as a starting point, but review and customize the output. Generic schema is better than no schema. Strategic schema is better than generic.

How many sameAs URLs should I include?

Include every platform where your identity can be independently verified. For practitioners, that typically means LinkedIn, ORCID, Google Scholar, Wikidata, your Google Knowledge Panel URL, and any industry-specific directories. Do not include low-authority social profiles just to pad the list. Each sameAs URL should be a source that an AI agent would consider credible for verification purposes. Quality over quantity. Five institutional profiles beat twenty social media links.

What happens if my schema has errors?

Minor errors (missing optional fields, deprecated properties) are common and usually harmless. Major errors (wrong @type, invalid JSON syntax, contradictory declarations) can cause AI agents to ignore your structured data entirely. Use Google's Rich Results Test and Schema Markup Validator regularly. The bigger risk than errors, though, is incomplete schema. Valid but empty schema tells AI agents you exist. It does not tell them anything useful about who you are.

Is schema markup enough for AI visibility on its own?

No. Research suggests schema predicts 4 to 7% of AI citation behavior. It is necessary but not sufficient. You also need consistent external profiles (sameAs targets), published work tied to your identity, verifiable credentials, and high-quality content. Schema is the connective tissue. Without it, the other pieces remain disconnected fragments. With it, they form a coherent entity graph. Think of schema as the wiring, not the electricity.


References

  1. Schema App. "Maintaining Brand Sovereignty in the Agentic Web." Schema App Blog, 2026. Link
  2. Outpace SEO. "Schema Markup & Structured Data Guide: The 2026 Masterclass." Outpace SEO, 2026. Link
  3. Dean, Brian. "We Analyzed 11.8 Million Google Search Results." Backlinko, 2024. Link
  4. Salespeak AI. "Schema Markup for Answer Engine Optimization: Implementation Guide With Examples." Salespeak AI, 2026. Link
  5. ALM Corp. "Schema Markup for AI Search: AI Overviews, LLMs & SEO." ALM Corp, 2026. Link

Related notes

2026-03-28

The companies that show up in ChatGPT are the ones that bothered to be verifiable.