Has Schema Offer

Has Schema Offer checks whether a page declares the legacy Schema.org Offer type by its http://schema.org/Offer URI. It returns 1 when that exact URI is present in the body markup and 0 when it is not — it detects the type declaration only, not whether the offer data is complete or valid.

Factor IDRG-SCH-014
FamilySchema.org
MeasurementBinary presence (0 / 1)
Measured zoneBody HTML without scripts

What it measures

This factor detects the legacy Schema.org Offer type URI on the page. Offer is the vocabulary type used to describe a product or service being made available for a given price, currency, and availability. RankGear records the type declaration as a simple present-or-absent signal — it does not read the price, seller, or availability values behind it.

How RankGear measures it

RankGear searches the body HTML case-insensitively for the exact string http://schema.org/Offer. If that URI appears anywhere in the measured zone, the factor is 1; otherwise it is 0. The match is literal and version-specific: only the http:// form of the type URI counts.

What RankGear looks for

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="price">49.00</span>
  <meta itemprop="priceCurrency" content="USD">
  <link itemprop="availability" href="http://schema.org/InStock">
</div>
ValueMeaning
1The http://schema.org/Offer URI is present in the body markup.
0The URI is absent — no legacy Offer type was detected.

How to optimize it

Use Offer markup only where the page describes a real offer, and populate it with accurate price, currency, availability, URL, and seller data. Because this factor keys on the http://schema.org/Offer URI specifically, markup that uses the HTTPS URI or a bare JSON-LD @type of Offer will not be counted here even though it is valid schema. Treat the value as an observation of what the tool can see, not a target to satisfy for its own sake — the goal is honest, current offer markup, not the presence of one particular URI string.

Important considerations

  • The match is literal: the HTTPS form (https://schema.org/Offer) and bare JSON-LD @type declarations are missed, so a page can carry valid Offer markup and still read as 0.
  • RankGear does not validate the offer details — presence of the type says nothing about whether the price, currency, availability, or seller fields are correct or complete.
  • Keep price and availability current; stale offer data can create a mismatch between markup and the live page.
  • Do not mark general descriptions as offers — reserve the type for genuine, purchasable offers.
  • This is a correlation-based prioritization signal within a measured result set. Adding the URI does not by itself cause a page to rank, and its absence does not mean a page cannot.

Related factors

Part of the Factors reference · how RankGear measures · glossary.