WebPage schema, explained
WebPage describes a single page. Google has no rich result for plain WebPage, but it is useful glue: isPartOf ties the page to your WebSite, about and mainEntity say what the page is about, and breadcrumb links its BreadcrumbList. Subtypes such as AboutPage and ContactPage describe common pages; ProfilePage has its own Google feature.
What it's for
Schema.org defines WebPage as "a web page". Every page is implicitly one, so the value of marking it up is the connections: which site it belongs to, which entity it is about, what its breadcrumb trail is, and when it was last changed.
Useful subtypes
| Subtype | Use for | Google feature |
|---|---|---|
AboutPage |
Your about page | None |
ContactPage |
Your contact page | None |
CollectionPage |
Category and listing pages | None |
ItemPage |
A page about one item | None |
ProfilePage |
A page mainly about one person or organization affiliated with the site, such as an author page | Profile page |
FAQPage |
Visible questions and answers | Retired May 2026; see FAQPage |
QAPage |
One question with user-submitted answers (forums) | Q&A |
Key properties
| Property | What it holds | |
|---|---|---|
url, name |
The page URL and title. | — |
isPartOf |
The WebSite, by @id. |
— |
about, mainEntity |
The thing the page is about. For ProfilePage, mainEntity is required. |
ProfilePage: required |
breadcrumb |
The page's BreadcrumbList, by @id. |
— |
datePublished, dateModified |
When the page was published and last changed. ProfilePage recommends dateCreated and dateModified. |
ProfilePage: recommended |
primaryImageOfPage, inLanguage |
Main image and language. | — |
Minimal example
{
"@context": "https://schema.org",
"@type": "AboutPage",
"@id": "https://example.com/about/#webpage",
"url": "https://example.com/about/",
"name": "About Example Co",
"isPartOf": { "@id": "https://example.com/#website" },
"about": { "@id": "https://example.com/#organization" },
"dateModified": "2026-10-21"
}
Common mistakes
- ProfilePage on the wrong page. Google says the home page of a store or a site reviewing other organizations isn't a valid profile page; the page must focus on one person or organization affiliated with the site.
- Using the page URL as the @id of the organization it describes. Give the page and the entity different identifiers (
/about/#webpagevs/#organization). dateModifiedthat changes on every build without a real content change.
Sources
- schema.org: WebPage, ProfilePage
- Google Search Central: Profile page structured data (last updated 8 September 2026)