---
title: "Google Search Fields"
description: "Use typed required and recommended properties for Google Search structured data features."
canonical_url: "https://unhead.unjs.io/docs/schema-org/guides/core-concepts/google-search-fields"
last_updated: "2026-08-04T10:41:39.511Z"
---

Unhead types the Google-supported properties used by its Search feature helpers. The types also resolve nested identities, URLs, dates, and known Schema.org relations.

Google changes feature requirements independently of Unhead releases. Check the [structured data feature gallery](https://developers.google.com/search/docs/appearance/structured-data/search-gallery) before publishing. Extra Schema.org properties still pass through to JSON-LD.

## Composed features

### Profile page

Use `defineWebPage()` with `ProfilePage`. An inline Person or Organization becomes the page's `mainEntity`.

```ts
defineWebPage({
  '@type': 'ProfilePage',
  'dateCreated': new Date('2026-01-01'),
  'mainEntity': definePerson({
    name: 'Ada Lovelace',
    alternateName: 'ada',
    identifier: 'profile-1',
    interactionStatistic: {
      '@type': 'InteractionCounter',
      'interactionType': 'FollowAction',
      'userInteractionCount': 42,
    },
  }),
})
```

### Q&A page

Register a `QAPage` and one Question. The Question resolver links itself as `mainEntity`.

```ts
useSchemaOrg([
  defineWebPage({
    '@type': 'QAPage',
  }),
  defineQuestion({
    name: 'How should this be configured?',
    answerCount: 1,
    suggestedAnswer: {
      text: 'Use the typed helper.',
      author: {
        '@type': 'Organization',
        'name': 'Unhead',
      },
      datePublished: new Date('2026-01-02'),
      url: '/answers/typed-helper',
    },
  }),
])
```

### Speakable content

Provide either `cssSelector` or `xPath`. The type rejects an object containing both.

```ts
defineArticle({
  headline: 'Release notes',
  speakable: {
    cssSelector: ['.headline', '.summary'],
  },
})
```

### Paywalled content

Set `isAccessibleForFree` to `false`, then describe each paywalled section with a `WebPageElement`.

```ts
defineArticle({
  headline: 'Subscriber report',
  isAccessibleForFree: false,
  hasPart: {
    cssSelector: '.paywall',
    isAccessibleForFree: false,
  },
})
```

### Carousel

Summary-page carousels use `ListItem.position` and `ListItem.url`.

```ts
defineItemList({
  itemListElement: [
    defineListItem({
      position: 1,
      url: '/products/one',
    }),
    defineListItem({
      position: 2,
      url: '/products/two',
    }),
  ],
})
```

### Video enhancements

Video supports Clip key moments, BroadcastEvent livestream details, interaction counts, region restrictions, and SeekToAction URL patterns. `contentUrl` or `embedUrl` can be used without the generic `url` property.

```ts
defineVideo({
  name: 'Launch stream',
  thumbnailUrl: '/poster.jpg',
  uploadDate: new Date('2026-01-01'),
  contentUrl: '/video.mp4',
  regionsAllowed: ['AU', 'NZ'],
  hasPart: {
    name: 'Introduction',
    startOffset: 0,
    url: '/watch?t=0',
  },
  potentialAction: {
    target: '/watch?t={seek_to_second_number}',
    'startOffset-input': 'required name=seek_to_second_number',
  },
})
```

## Other typed Google properties

The existing helpers also expose these Google-supported property groups:

- Dataset funding, identifiers, measurement techniques, parts, catalogs, and downloads
- Event identity unions, repeated previous dates, and offer validity
- Image creator, credit, copyright, and license metadata
- Job posting remote locations, credentials, identifiers, and experience substitution
- Local business departments, coordinates, menus, ratings, and reviews
- Organization contact points, legal identifiers, loyalty tiers, return policies, and shipping conditions
- Product variants, categories, certifications, audiences, identifiers, member pricing, sizes, and 3D models
- Recipe sections, ratings, repeated images and yields, and Person or Organization authors
- Review subjects, Person or Organization authors, and positive or negative notes

Required property alternatives are represented as unions where the same helper does not serve a broader Schema.org use case. Examples include Offer price sources, AggregateRating counts, remote job locations, SoftwareApplication ratings, and speakable selectors.
