--- title: Deduping Nodes description: How to add multiple of the same node to your schema graph. --- **Quick Answer:** Schema.org nodes are automatically deduplicated by their `@id`. Only one node of each type (like `WebPage`) can exist by default. Later definitions merge with earlier ones unless you specify a custom `@id`. ## How does node deduplication work? When generating many of the Schema.org nodes a default global `@id` is used to help with best practices. For example: ```ts import { defineOrganization, useSchemaOrg } from '@unhead/schema-org/@framework' useSchemaOrg([ defineOrganization() // generates the nodes with an #identity id ]) ``` This allows the node relations to be automatically mapped for best practices. ```ts import { defineWebPage, useSchemaOrg } from '@unhead/schema-org/@framework' useSchemaOrg([ defineWebPage() // knows to link the #identity id ]) ``` ## How do I add multiple nodes of the same type? The default `@id` can prevent having multiple nodes of the same type. Provide your own `@id` to create separate nodes: ```ts import { defineOrganization, useSchemaOrg } from '@unhead/schema-org/@framework' useSchemaOrg([ defineOrganization({ '@id': '#some-company' }) ]) ``` ## How do I replace a node instead of merging? Use `tagDuplicateStrategy: 'replace'` to fully replace a node instead of merging properties: ```ts import { defineOrganization, useSchemaOrg } from '@unhead/schema-org/@framework' useSchemaOrg([ defineOrganization({ '@id': '#some-company', 'name': 'Bar Company', 'url': 'https://bar.com', }), ]) useSchemaOrg([ defineOrganization({ '@id': '#some-company', 'name': 'Foo Company', }) ], { tagDuplicateStrategy: 'replace' }) // Replaced! // { // '@id': '#some-company', // name: 'Foo Company', // } ```