--- name: meta-in-body description: "Use when auditing HTML document structure. Applies to any page where meta tags (noindex, canonical-url, description, viewport, OG tags) may have been injected into the body by CMS plugins, widgets, or JavaScript rendering." metadata: category: seo priority: high difficulty: beginner estimatedTime: "5" source: frontendchecklist.io url: https://frontendchecklist.io/en/rules/seo/meta-in-body --- # Meta Tags in Body Meta tags placed in the document body are ignored by search engines and most browsers—directives like noindex or canonical-url are silently ineffective, causing pages to be indexed or de-indexed unexpectedly. ## Quick Reference - All tags must appear inside
, never inside - Browsers may ignore or move misplaced meta tags, making them ineffective - Crawlers like Googlebot only process meta tags found in - Validate with HTML validator or inspect parsed DOM to confirm placement ## Check Parse the HTML and check whether any elements appear outside —i.e., inside or after the closing tag. Flag each misplaced tag by name/property. ## Fix Move all tags into the section before . If they are injected by a script after the DOM is built, refactor the injection to target document.head instead of document.body. ## Explain Meta tags are document-level metadata and must live in . When placed in , they fall outside the metadata model of the document—search engines and browsers do not honour them, so directives like noindex or canonical-url will have no effect. ## Code Review Parse the rendered HTML and check the DOM structure. Find all elements. For each one, traverse up the parent chain — if any ancestor is or if the element appears after in the source, flag it. Pay special attention to: meta name='robots', meta name='description', meta property='og:*', and link rel='canonical' placed in body. --- For full implementation details, code examples, and framework-specific guidance, see `references/rule.md`. Rule page: https://frontendchecklist.io/en/rules/seo/meta-in-body