Skip to main content
HTML Validation

Element “meta” is missing one or more of the following attributes: “itemprop”, “property”.

About This HTML Issue

The <meta> element is most commonly used inside the <head> section to define metadata like character encoding, viewport settings, or descriptions. Inside <head>, attributes like charset, http-equiv, and name are perfectly valid. However, the HTML specification also allows <meta> to appear inside the <body> — but only under specific conditions.

When a <meta> element appears in the <body>, it must have either an itemprop attribute (for microdata) or a property attribute (for RDFa). It must also have a content attribute. Additionally, it cannot use http-equiv, charset, or name attributes in this context. These rules exist because the only valid reason to place a <meta> tag in the <body> is to embed machine-readable metadata as part of a structured data annotation — not to define document-level metadata.

Why this matters

  • Standards compliance: The HTML living standard explicitly restricts which attributes <meta> can use depending on its placement. Violating this produces invalid HTML.
  • Browser behavior: Browsers may ignore or misinterpret <meta> elements that appear in the <body> without proper attributes. For example, a <meta http-equiv="content-type"> tag inside the <body> will have no effect on character encoding, since that must be determined before the body is parsed.
  • SEO and structured data: Search engines rely on correctly structured microdata and RDFa. A <meta> element in the body without itemprop or property won’t contribute to any structured data and serves no useful purpose.

Common causes

  1. Misplaced <meta> tags: A <meta> element meant for the <head> (such as <meta http-equiv="..."> or <meta name="description">) has accidentally been placed inside the <body>. This can happen due to an unclosed <head> tag, a CMS inserting tags in the wrong location, or simply copying markup into the wrong section.
  2. Missing itemprop or property: A <meta> element inside the <body> is being used for structured data but is missing the required itemprop or property attribute.

Examples

Incorrect: <meta> with http-equiv inside the <body>

This <meta> tag belongs in the <head>, not the <body>:

<body>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <form>
    <input type="text" name="q">
  </form>
</body>

Fixed: Move the <meta> to the <head>

<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>My Page</title>
</head>
<body>
  <form>
    <input type="text" name="q">
  </form>
</body>

Incorrect: <meta> in the <body> without itemprop or property

<div itemscope itemtype="https://schema.org/Offer">
  <span itemprop="price">9.99</span>
  <meta content="USD">
</div>

The <meta> element is missing the itemprop attribute, so the validator reports the error.

Fixed: Add the itemprop attribute

<div itemscope itemtype="https://schema.org/Offer">
  <span itemprop="price">9.99</span>
  <meta itemprop="priceCurrency" content="USD">
</div>

Correct: Using property for RDFa

The property attribute is also valid for <meta> elements in the <body> when using RDFa:

<div vocab="https://schema.org/" typeof="Event">
  <span property="name">Concert</span>
  <meta property="startDate" content="2025-08-15T19:00">
</div>

Incorrect: <meta name="..."> inside the <body>

The name attribute is only valid on <meta> elements inside the <head>:

<body>
  <meta name="author" content="Jane Doe">
  <p>Welcome to my site.</p>
</body>

Fixed: Move it to the <head>

<head>
  <title>My Site</title>
  <meta name="author" content="Jane Doe">
</head>
<body>
  <p>Welcome to my site.</p>
</body>

Find issues like this automatically

Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.

Help us improve our guides

Was this guide helpful?

Ready to validate your sites?
Start your free trial today.