Skip to content

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.

Each hyperlink on a page is a Link. A page reaches its links in one of two ways:

  • Grouped: hasLinkGroup from the WebPage to a LinkGroup, then hasLink from the group to each Link. This is the canonical pattern for navigation, footers, related-content blocks and other clusters of links.
  • Ungrouped: the direct link property from WebPage to Link, 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, impressions and ctr, plus windowed variants for 7 days, 28 days, 3 months and 6 months (for example clicks28Days, impressions3Months, ctr6Months, averagePosition28Days). Windowed metrics can be attached to a Query or a WebPage.
  • GA4: users, sessions, engagedSessions, engagementRate, averageEngagementTime, conversions, trafficSource and landingPage, interpreted in the measurement context of the dataset that produced them.
  • Traffic sources: a TrafficSource is a source as reported by analytics (google, (direct), chatgpt.com). hasTrafficChannel assigns it to a TrafficChannel such 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.