Meta description outside the head
What it is
The page has a meta description, but none of its <meta name="description"> tags is inside the <head>. Metadata belongs in the head. Usually the tag was written there, but an element that is not allowed in the head, such as an <img>, <div> or <iframe>, came before it, so browsers and crawlers read the tag as body content. Sometimes an embed or content block puts the tag in the page itself.
Why it matters
Google says that when it meets an invalid element in the head , it ignores the elements that follow it. Your description is then likely to be passed over for the snippet. The canonical, robots or hreflang tags after the same point may be ignored as well, which can matter more than the description itself.
How Asky checks it
Asky parses the page’s raw HTML the way a browser does, so a stray element closes the head early just as it would in a browser. The page is reported when it has at least one <meta name="description"> and none of them is inside <head>. When one is in the head and another in the body, the page is reported as having more than one meta description instead. Tags added by JavaScript are not seen. The length checks still read the first tag, wherever it is. A title after the same stray element may be reported as outside the head too.
Reported as an error with high severity.
How to fix it
- Open the page source and read the head from the top. Find the first element that is not
<title>,<meta>,<link>,<script>,<style>,<base>,<noscript>or<template>: often a tracking pixel<img>, an<iframe>from a chat or consent snippet, a<div>added by a plugin, or stray text. - Move that element into the body. If a snippet insists on the head, place it after all your metadata.
- If an embed or rich text block put the tag into the page content, remove it there and set the description in the page’s SEO field.
- Check that exactly one description is now in the head: a second copy, for example from the SEO field, is reported as more than one meta description.
- Check that the title, canonical and robots tags that followed the stray element are inside the head too.
Example
On https://example.com/pricing a chat widget’s <iframe> in the head pushes the description into the body:
<!-- Before: the <iframe> ends the head -->
<head>
<title>Pricing Plans for Teams and Agencies | Example Co</title>
<iframe src="https://chat.example.org/widget" title="Chat"></iframe>
<meta name="description" content="Compare plans for marketing teams and agencies, with monthly or yearly billing, volume discounts and a free trial.">
</head>
<!-- After: the widget loads from the body -->
<head>
<title>Pricing Plans for Teams and Agencies | Example Co</title>
<meta name="description" content="Compare plans for marketing teams and agencies, with monthly or yearly billing, volume discounts and a free trial.">
</head>
<body>
<iframe src="https://chat.example.org/widget" title="Chat"></iframe>