Core model¶
SEOntology is centered on the WebPage: the pages a site publishes, the queries they rank for, the links between them, the content they contain, and the measurements taken about them. This page groups the main terms by area. The ontology reference lists every term with its domain, range and description.
Pages and site structure¶
| Term | Meaning |
|---|---|
WebPage |
A specific web page; extends Schema.org's WebPage. |
URL |
The page's URL. hasURL / isURLOf binds a page to its canonical URL. |
Domain |
A grouping of pages by domain or subdomain. |
DirectorySegment |
A logical site segment derived from URL paths. |
PageType |
A reusable classification of a page's purpose (for example product detail or editorial), assigned with hasPageType. |
PageGroup |
An A/B-testing cohort, such as a control or test group. Use PageType for functional classifications. |
Language |
The language of content, for multilingual SEO. |
Page-level text properties include title, metaDescription, bodyText, urlSlug and slugNgram.
Queries and intent¶
| Term | Meaning |
|---|---|
Query |
A search query a page ranks for, usually from Google Search Console. hasQuery / isQueryOf link pages and queries. |
hasPrimaryQuery |
The primary target query of a WebPage or Chunk. |
QueryCluster |
A set of related queries grouped for content planning and gap analysis. Members are linked with hasClusterQuery / isClusterQueryOf. |
ClusteringStrategy |
The method or model used to build a cluster (clusteredBy). |
Intent |
Search intent, linked with hasIntent; a cluster's dominant intent uses dominantSearchIntent. |
EntityGap |
A missing or unlinked entity relevant to a query (hasEntityGap). |
Persona |
The target audience archetype of a page (hasPersona). |
Query classification properties include queryType, keywordType, queryCategory and intent. Cluster metrics include clusterVolume and keywordsCount.
Links¶
Each hyperlink on a page is a Link. A page reaches its links in one of two ways:
- Grouped:
hasLinkGroupfrom theWebPageto aLinkGroup, thenhasLinkfrom the group to eachLink. This is the canonical pattern for navigation, footers, related-content blocks and other clusters of links. - Ungrouped: the direct
linkproperty fromWebPagetoLink, for raw extracted links or a single inline link in body text.
A LinkGroup carries linkGroupName, free text for display ("Footer links"), linkGroupType, the machine-checkable placement (header, footer, body, sidebar or navigation), and linkGroupID.
A Link describes one hyperlink and where it points:
| Term | Meaning |
|---|---|
linkTargetUrl |
The absolute href, as a string. Always set it: it is the destination fact you have from parsing the markup alone. |
linkTarget |
The resolved destination node: a WebPage in the graph, a URL node, or the entity the destination represents. Set it only once the destination has been resolved. Its inverse is isLinkTargetOf. |
linkText |
The anchor text. Accepts language-tagged literals. |
linkRel |
One rel token per value: nofollow, sponsored, ugc, noopener, and so on. |
linkLocation |
Placement of an ungrouped link, with the same values as linkGroupType. When a LinkGroup exists, its linkGroupType takes precedence. |
position |
Order of the link within its group. |
Internal versus external is not a property of the link. Compare domains instead: a link is internal when its linkTarget page shares a Domain (hasDomain) with the source page, or, for destinations that were not crawled, when the linkTargetUrl host matches the source page's domainName.
anchorResource, linkgroupID, noFollow, linkType and the AnchorText class are deprecated. See Compatibility notes.
The Links guide explains the model in depth, with worked examples and queries.
Content and entities¶
| Term | Meaning |
|---|---|
Chunk |
A self-contained section of a page, used for vector search and structured representation. Linked with hasChunk / isChunkOf; described by chunkText, chunkPosition, tokenCount and related properties. |
Topic |
The central subject of a page. |
schema:Thing |
Any entity. about links a page to its main entity and mentions to entities it mentions; both range over Schema.org's Thing. |
ImageObject |
An image and its SEO metadata, with aiGeneratedCaption and captionQualityScore. |
Model |
An AI or ML model used for summarization, classification, scoring or captioning. |
Embedding inputs and outputs are recorded with embeddingText and embeddingValue.
Search and analytics metrics¶
- Search Console:
clicks,impressionsandctr, plus windowed variants for 7 days, 28 days, 3 months and 6 months (for exampleclicks28Days,impressions3Months,ctr6Months,averagePosition28Days). Windowed metrics can be attached to aQueryor aWebPage. - GA4:
users,sessions,engagedSessions,engagementRate,averageEngagementTime,conversions,trafficSourceandlandingPage, interpreted in the measurement context of the dataset that produced them. - Traffic sources: a
TrafficSourceis a source as reported by analytics (google,(direct),chatgpt.com).hasTrafficChannelassigns it to aTrafficChannelsuch as organic search, referral or AI assistant, so AI-assistant referrals can be told apart from generic referrals. - Forecasts:
forecastedTraffic.
Quality and evaluation¶
Link a WebPage to a QualityScore with hasQualityScore, or a Chunk with hasChunkQualityScore, to record assessment results such as contentAccuracyScore, contentDepthScore, seoScore and readabilityScore. evaluationID identifies an evaluation run. isThinContent is a boolean thin-content classification.
Structured data¶
Schema represents the structured-data markup of a page (hasSchemaMarkup / describesPage). StructuredDataProfile describes a structured-data policy aligned with W3C PROF. Profiles can be applicable to a page type, selected for a page, or used to generate markup; these are separate states. See Structured data profiles.