Meta tags must go in the <head> section. This isn't a best practice—it's the HTML specification. Browsers parse the head before rendering the body, so placing meta tags anywhere else means they won't be read by crawlers or browsers when they need to be. Search engines like Google expect meta tags in the head and won't honor them elsewhere. Your meta description, robots directives, canonical tags, and Open Graph markup all become dead code if you stick them in the body. The same applies to viewport settings, character encoding declarations, and hreflang tags. We've audited sites where developers accidentally placed meta tags after the opening <body> tag during template refactors—those pages effectively had no meta descriptions in Google's eyes. The technical reason is straightforward: the head contains metadata about the document, while the body contains the actual content. Meta tags define how browsers and crawlers should interpret, display, or index the page. By the time a parser reaches the body, decisions about rendering, indexing directives, and social sharing previews have already been made. Common meta tags that must be in the head: - Meta description and title (though title uses its own tag) - Meta robots and googlebot directives - Canonical and alternate language tags - Open Graph and Twitter Card markup - Viewport and charset declarations At Ottawa SEO, we catch this during technical audits by checking the raw HTML structure, not just what rendering tools show. Some JavaScript frameworks can accidentally inject meta tags into the wrong section if you're not careful with component structure. Server-side rendering usually handles this correctly, but client-side frameworks require explicit head management through libraries like React Helmet or Nuxt's head() function. If you find meta tags outside the head in your source code, move them immediately. This isn't a minor optimization—it's a structural requirement that affects indexing, sharing, and user experience. Validators like the W3C Markup Validation Service will flag misplaced meta tags as errors, not warnings.