How can profile markup retain identity when a handle changes?

The Citead team, updated

In short. Put the site's persistent account identifier in mainEntity.identifier and treat the public handle as alternateName.

Definition: A stable profile identifier is the value in mainEntity.identifier that a site uses to identify an account within its own system. Google describes this property as a unique site-level identifier, such as an internal database ID that continues to identify a user when the user's social media handle changes.

Key facts

  • Google's ProfilePage structured data documentation lists identifier as a recommended property for the Person or Organization that represents the profile.
  • Google describes identifier as any unique identifier used within your site, including an internal database ID that identifies a user even if their social media handle changes.
  • Google documents alternateName as an alternate public identifier, with a social media handle as its example when a person's real name is used in name.
  • The Schema.org identifier property represents an identifier for any Thing, including ISBNs, GTIN codes and UUIDs, and permits textual strings or URL (URI) links.
  • Google's example places identifier inside mainEntity, alongside name and alternateName, on a Person in ProfilePage JSON-LD.

What should mainEntity.identifier contain?

Use the account key that your site already assigns and keeps stable. Google’s ProfilePage guidance describes the field as “Any unique identifier that's used within your site” and gives an internal database ID as the concrete example. That wording fits a database key or another persistent account value, rather than a handle chosen for public display.

The property belongs on the Person or Organization object nested in mainEntity. Google defines mainEntity as the person or organization that the profile page is about and asks sites to use the correct type when that information is available. For an unknown type of account, the documentation says to default to Person.

"mainEntity": {
  "@type": "Person",
  "name": "Angelo Huff",
  "alternateName": "ahuff23",
  "identifier": "123475623"
}

How does the stable value differ from a handle?

Google’s guidance assigns different roles to these properties. name is the primary way the person or organization is identified. Google recommends real names in that field and describes alternateName as the place for a social media handle when the real name is used in name. If name is unavailable, alternateName can satisfy the documented name requirement.

The handle can therefore change as a public account label changes, while the site’s internal identifier remains the account key. This follows Google’s own example: ahuff23 is the alternateName, while 123475623 is the identifier. Schema.org’s definition is broader than this Google use case: it describes identifier as a property for any kind of Thing and says that identifiers can be represented as text strings or URL (URI) links.

What should a site update when the handle changes?

Keep the value of mainEntity.identifier tied to the same account record. Update the public alternateName when the handle changes, and update the profile URL if the site’s address changes. The profile’s name remains the primary identification field when the site has a real name for the person or organization. Google separately documents sameAs for URLs to other external profiles or home pages.

Google does not prescribe an identifier format or a migration procedure. The documented requirement is that the value be unique within the site and suitable for identifying the profile entity.

How can you check the result?

Google recommends validating structured data with the Rich Results Test and fixing critical errors. Its workflow also says to deploy a few pages, use the URL Inspection tool to test how Google sees them, and ensure the page is accessible rather than blocked by robots.txt, noindex, or login requirements. After Google indexes the pages, Search Console provides the relevant rich result status report for issues.

FAQ

Is a social handle the stable profile identifier?

A social handle is a public alternate identifier documented for alternateName. The stable value for this use case is the site’s unique internal identifier in identifier.

Can identifier be a URL?

Schema.org permits an identifier as a textual string or a URL (URI) link. Google’s ProfilePage table labels the property Text and specifically describes an internal database ID, so a site following this guidance can use its persistent account value.

What if the account type is unknown?

Google says to use Person when the site cannot determine whether the account represents an individual or an organization.

Sources

  1. Google Search Central, "Profile page (ProfilePage) structured data", 8 September 2026
  2. Schema.org, "identifier", undated

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark