Has JSON-LD MenuItem

Has JSON-LD MenuItem is a binary signal (1 or 0) that reports whether RankGear finds an @type of MenuItem in a page’s raw HTML. It confirms the type string is present — it does not parse or validate the JSON-LD graph, and the match is case-sensitive, so only the exact spelling MenuItem counts.

Factor IDRG-SCJ-147
FamilyStructured Data – JSON-LD
MeasurementBinary presence (0 / 1)
Measured zoneRaw rendered HTML

What it measures

This factor reports whether RankGear finds an @type value of MenuItem in the raw source. MenuItem is the schema.org type for a single item on a food or drink menu — a dish or beverage with its own name, description, price, and dietary details. The factor answers one yes/no question: is that type declared anywhere in the page’s markup?

How RankGear measures it

RankGear searches the raw HTML for "@type": "MenuItem", allowing flexible whitespace around the colon and an optional schema: prefix on the type value. The match is case-sensitive, so the source must use the exact capitalization MenuItem. It returns 1 on any match and 0 otherwise. This is a string search over the raw source, not a parse of the structured-data graph.

What RankGear looks for

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MenuItem",
  "name": "Margherita Pizza",
  "offers": { "@type": "Offer", "price": "12.00", "priceCurrency": "USD" }
}
</script>

The whitespace around the colon may vary and the value may be prefixed ("@type": "schema:MenuItem"), but the capitalization must match exactly — menuitem or Menuitem returns 0.

ValueMeaning
1A case-exact MenuItem type string was found in the raw HTML.
0No matching MenuItem type string was found (including case mismatches).

How to optimize it

Use MenuItem only for a genuine menu item, and give it an accurate name, description, price or offer, dietary details, nutrition, and availability. Ensure every property reflects content visitors can verify on the page. Treat the 1/0 as an observation of markup presence rather than a target to force: a bare type string satisfies this detector, but it adds nothing unless the page truly describes a menu item.

Important considerations

  • RankGear pattern-matches the raw source text; it does not parse or validate the JSON-LD graph.
  • A matching string outside a valid JSON-LD block can still produce 1.
  • Matching is case-sensitive — the source must use the exact capitalization MenuItem.
  • Validate the complete structured data independently to confirm it is well-formed.
  • This is a prioritization signal that relates to position within a measured result set — presence of the type correlates with, but does not cause or guarantee, any ranking.

Related factors

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