---
title: "Choosing a Schema.org Identity · Unhead"
canonical_url: "https://unhead.unjs.io/docs/typescript/schema-org/guides/recipes/identity"
last_updated: "2026-07-24T14:09:57.218Z"
meta:
  description: "Set up Organization, Person, or LocalBusiness as your site identity and connect it to articles, products, pages, and your website."
  "og:description": "Set up Organization, Person, or LocalBusiness as your site identity and connect it to articles, products, pages, and your website."
  "og:title": "Choosing a Schema.org Identity · Unhead"
---

Home

`
Unhead on GitHub

Switch to TypeScriptSwitch to VueSwitch to ReactSwitch to SvelteSwitch to Solid.jsSwitch to AngularSwitch to Nuxt

**Recipes**

# **Choosing a Schema.org Identity**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/2.guides/4.recipes/1.identity.md)

Set up your site identity with `**defineOrganization()**`, `**definePerson()**`, or `**defineLocalBusiness()**`. Unhead can then reference that node as the publisher, author, brand, provider, or subject of related nodes.

## Why identity matters

An identity gives search engines a consistent entity for the site and its related content. [**~~Organization markup can help Google understand administrative details and disambiguate an organization~~**](https://developers.google.com/search/docs/appearance/structured-data/organization), but it does not guarantee a particular search feature.

## Choose an identity type

Choose the type that matches what the site represents. Use `**Organization**` for a site that does not represent a person or a physical business.

### Organization

Use Organization for companies, brands, and other non-person entities.

- It does not need to represent an incorporated business.
- It suits an ecommerce brand without a physical customer location.

Examples include project and company sites such as [**~~nuxt.com~~**](https://nuxt.com) and [**~~vuejs.org~~**](https://vuejs.org).

```
import { defineOrganization, defineWebPage, defineWebSite, useSchemaOrg } from '@unhead/schema-org/typescript'

useSchemaOrg([
  defineOrganization({
    name: 'My company',
    logo: '/logo.png',
    sameAs: [
      'https://twitter.com/company'
    ]
  }),
  defineWebSite({/* ... */}),
  defineWebPage(),
])
```

### Person

Use Person when your website represents an individual, personal brand, or personal blog.

A personal portfolio, author site, or personal blog usually uses Person.

```
import { definePerson, defineWebPage, defineWebSite, useSchemaOrg } from '@unhead/schema-org/typescript'

useSchemaOrg([
  definePerson({
    name: 'Harlan Wilton',
    image: '/me.png',
    sameAs: [
      'https://github.com/harlan-zw',
    ]
  }),
  defineWebSite({/* ... */}),
  defineWebPage(),
])
```

### LocalBusiness

Use LocalBusiness when your website represents a physical business with an address.

- Extends [**~~Organization~~**](https://unhead.unjs.io/docs/schema-org/api/schema/organization).
- Suits ecommerce businesses with a physical customer location.

A cafe, clinic, or retail store website is a typical case.

```
import { defineLocalBusiness, defineWebPage, defineWebSite, useSchemaOrg } from '@unhead/schema-org/typescript'

useSchemaOrg([
  defineLocalBusiness({
    name: 'Harlan\'s Hamburgers',
    address: {
      streetAddress: '123 Main St',
      addressLocality: 'Harlan',
      addressRegion: 'MA',
      postalCode: '01234',
      addressCountry: 'US',
    },
    image: 'https://example.com/images/storefront.jpg',
  }),
  defineWebSite({/* ... */}),
  defineWebPage(),
])
```

## Automatic relationships

Unhead uses the primary identity for these relationships:

| **Node** | **Property** |
| --- | --- |
| [**~~Article~~**](https://unhead.unjs.io/docs/schema-org/api/schema/article) | `**publisher**`, `**author**` |
| [**~~Product~~**](https://unhead.unjs.io/docs/schema-org/api/schema/product) | `**brand**` |
| [**~~WebSite~~**](https://unhead.unjs.io/docs/schema-org/api/schema/website) | `**publisher**` |
| [**~~WebPage~~**](https://unhead.unjs.io/docs/schema-org/api/schema/webpage) | `**about**` on the homepage when both nodes are registered |

## Related Recipes

- [**~~Blog Posts~~**](https://unhead.unjs.io/docs/schema-org/guides/recipes/blog): Article structured data
- [**~~E-commerce~~**](https://unhead.unjs.io/docs/schema-org/guides/recipes/e-commerce): Product structured data
- [**~~Site Search~~**](https://unhead.unjs.io/docs/schema-org/guides/recipes/site-search): Search action markup

[~~Edit this page~~](https://github.com/unjs/unhead/edit/main/docs/schema-org/2.guides/4.recipes/1.identity.md)

[~~Markdown For LLMs~~](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/2.guides/4.recipes/1.identity.md)

**Did this page help you? **

[**Custom Nodes** Create custom Schema.org types not in built-in helpers. Pass plain objects to useSchemaOrg() with TypeScript support via schema-dts.](https://unhead.unjs.io/docs/schema-org/guides/recipes/custom-nodes) [**Blog** Add Article or BlogPosting structured data with defineArticle() so search engines can understand a post and its author, dates, and images.](https://unhead.unjs.io/docs/schema-org/guides/recipes/blog)

**On this page **

- [Why identity matters](#why-identity-matters)
- [Choose an identity type](#choose-an-identity-type)
- [Automatic relationships](#automatic-relationships)
- [Related Recipes](#related-recipes)