width=device-width, initial-scale=1.0 Title, description, canonical and robots tags with values actually filled in the SEO backend fields are already emitted by EXT:seo (core hooks, zero config, driven off the "pages" table). og:type/site_name/ locale/url are never set by EXT:seo (or by anything nested in
with real content), so they're safe to set unconditionally here. website {site.configuration.websiteTitle} {language.locale.languageCode}_{language.locale.countryCode}
Fallbacks for og:title/description/image + twitter:* — rendered last on purpose. Meta tags are first-write-wins (TYPO3\CMS\Core\MetaTag), so anything more specific set while
rendered (news detail's own Opengraph partial, a future plugin) already won by the time this runs; these only fill in when nothing more specific claimed the property — e.g. plain pages, or the "og_title" etc. SEO fields were left empty. {page.pageRecord.title} {page.pageRecord.description} og_image empty → fall back to the page's own "Media" field (pages.media, resolved as {pageMedia} by page.typoscript) when it's an image; only fall back further to the static site default when the page has no media of its own either. summary_large_image {page.pageRecord.title} {page.pageRecord.description}