mainEntity
mainEntity · Not mentioned by Google (for Article)
Appears in
What is it?
mainEntity identifies the primary subject described in a page or CreativeWork. On an FAQ page, the main entity is the list of questions. On a product page, the main entity is the product. On an article about a person, the main entity is that person. It is the inverse of mainEntityOfPage.
Why this matters for AEO
AI answer engines use mainEntity to identify the core subject of a page. When a page contains multiple structured data objects, mainEntity tells the AI which one to prioritize for answer generation. On FAQ pages, AI systems extract the Question objects from mainEntity to directly answer user queries with structured Q&A content.
What the specs say
Schema.org: Thing. Indicates the primary entity described in some page or other CreativeWork. schema.org/mainEntity
Google: Not mentioned in Article docs. However, Google's FAQPage documentation uses mainEntity extensively to hold an array of Question objects. Google FAQPage docs
How to find your value
- FAQ page — The list of questions and answers on the page
- Product page — The product being described
- Profile page — The person or organization being profiled
- Article — The primary topic entity (if applicable)
Format and code
Type: Thing (any schema.org type)
FAQPage with mainEntity (common pattern):
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is JSON-LD?",
"acceptedAnswer": {
"@type": "Answer",
"text": "JSON-LD is a method of encoding linked data using JSON."
}
},
{
"@type": "Question",
"name": "Is JSON-LD required for SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "JSON-LD is not required but is Google's recommended format for structured data."
}
}
]
}
ItemPage with Product as mainEntity:
{
"@context": "https://schema.org",
"@type": "ItemPage",
"mainEntity": {
"@type": "Product",
"name": "Some fancy product",
"color": "blue",
"material": "wood"
}
}
Webflow implementation
Static pages
For an FAQ page, add the questions directly in custom code:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Your question here?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your answer here."
}
}
]
}
</script>
CMS template pages
For CMS-driven FAQ pages, use a nested collection list or hardcode the questions per page. Webflow's custom code embeds do not support iterating over multi-reference fields in JSON-LD directly.
In Schema HQ
The mainEntity field configures mainentity for faq pages by reading question/answer content from the page. for article pages, it uses mainentityofpage (the inverse) which is more common in article markup.
Real examples
devMode.fm (devmode.fm/about):
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is the devMode.fm podcast all about?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A bi-weekly show about web development tools and techniques"
}
}
]
}
TYPO3 Schema Docs (docs.typo3.org) :
{
"@type": "ItemPage",
"mainEntity": {
"@type": "Product",
"name": "Some fancy product",
"color": "blue",
"material": "wood",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4",
"reviewCount": "126"
}
}
}
Related fields
FAQ
When should I use mainEntity vs mainEntityOfPage?
Use mainEntity when you are describing a page and want to point to its primary subject (WebPage → Entity). Use mainEntityOfPage when you are describing an entity and want to point to the page it lives on (Entity → WebPage). They are inverses of each other.
Is mainEntity required for FAQ pages?
Google's FAQPage documentation structures all Q&A content inside mainEntity. While Google does not use the word "required" for the mainEntity property itself, the documented pattern places all Question objects inside it. Following this structure is necessary for FAQ rich results.