Current OOTB header for a vanilla Backdrop site, when visiting the home page:

<head>
    <meta charset="utf-8">
<link rel="shortcut icon" href="https://example.com/core/misc/favicon.ico" type="image/vnd.microsoft.icon">
<link rel="alternate" type="application/rss+xml" title="Home page feed" href="https://example.com/rss.xml">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="Generator" content="Backdrop CMS 1 (https://backdropcms.org)">
    <title>Home | Backdrop</title>
    [stylesheets ... ]
    [scripts ... ]
  </head>

Proposing to add the following basic meta tags:

Home page

Allow these to be configured from the site information page in /admin/config/system/site-information (same as site name, slogan, and favicon).

<meta property="og:site_name" content="Site Name">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com">
<meta name="description" property="og:description" content="Some short description for the site,
  if provided under admin/config/system/site-information.">

<link rel="image_src" href="https://example.com/sites/default/files/site_logo.jpg">
<meta property="og:image" content="https://example.com/sites/default/files/site_logo.jpg">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:width" content="200px">
<meta property="og:image:height" content="200px">
<meta property="og:image:alt" content="A description of what is in the image (not a caption).
  If the page specifies an og:image it should specify og:image:alt">

Note: see https://developers.facebook.com/docs/sharing/best-practices

  • Use og:image:width and og:image:height Open Graph tags to specify the image dimensions to the crawler so that it can render the image immediately without having to asynchronously download and process it.

Personal note: long sentence w/o any punctuation triggers my OCDs ...you'd expect that Facebook would know better

Social-media-specific meta tags

OpenGraph (og:*) seems to be supported by Facebook, twitter has specific tags:

<meta name="twitter:card" content="** Required!!! **
  There are currently four card types available:
  - 'summary': refines your web content into a snapshot image with a thumbnail,
    title and description. Users can even see the URL of your website displayed
    at the bottom of the card. The idea is to give your viewers a preview of
    your content before they click through to your site. If you use Twitter
    to accelerate your blog traffic, this could be an excellent option.
  - 'summary_large_image': same as 'summary', but trades a bit of the description space
    for a larger image (at least 280 x 150 pixels / still no more than 1MB)
  - 'app': not suitable for sites
  - 'player': suitable for multimedia content
  ">
<meta name="twitter:site" content="Site name">
<meta name="twitter:title" content="Title of content (max 70 characters) - og:title equivalent">
<meta name="twitter:creator" content="The content creator / author.">
<meta name="twitter:description" content="Description of content (max 200 characters)
  og:description equivalent">
<meta name="twitter:image" content="https://example.com/sites/default/files/site_logo.jpg
  URL of image to use in the card.
  At least 120×120 pixels and no more than 1MB
  JPG, PNG, WEBP and GIF formats are supported.
  Only the first frame of an animated GIF will be used.
  SVG is NOT supported.
  equivalent to og:image">
<meta name="twitter:image:alt" content="A text description of the image (max 420 characters).
  equivalent to og:image:alt">

Additional meta tags to consider for Post nodes

<meta property="og:type" content="article">
<meta property="og:title" content="Article title">
<meta property="og:site_name" content="Site name">
<meta property="og:url" content="https://link.to/article">
<meta property="og:image" content="https://link.to/post/image">
<meta property="og:image" content="https://link.to/post/another-image-if-field-configured-for-multiple">

<meta property="article:published_time" content="When the article was first published.
  Format should be: date (year, month, day) and an optional time component (hours, minutes)
  see: https://en.wikipedia.org/wiki/ISO_8601">
<meta property="article:modified_time" content="When the article was last changed. - ISO_8601">
<meta property="article:expiration_time" content="When the article is out of date after. - ISO_8601
  Can be used when unpublished content is allowed to be accessed by anonymous,
  but is marked as expired/unpublished.">
<meta property="article:publisher" content="Publisher(s) of the article.
  It could be the site name, or URL, or both.">
<meta property="article:author" content="Writer(s) of the article.
  Could be a string with the user name, or a link to the user profile.">
<meta property="article:author" content="...can be declared multiple times,
  to include multiple authors.">
<meta property="article:author" content="...although Drupal/Backdrop
  do not support multiple authors per node AFAIK.">

<meta property="article:section" content="A high-level section name. E.g. Technology">
<meta property="article:tag" content="Tag words associated with this article.">
<meta property="article:tag" content="...multiple tags may be defined.">
<meta property="article:tag" content="...another tag">

Additional meta tags to consider if the node is part of a Book

(if the book module is enabled)

<meta property="og:type" content="book">
<meta property="og:title" content="Node title">
<meta property="og:site_name" content="Site name">
<meta property="og:url" content="https://link.to/book">
<meta name="description" property="og:description" content="If the body field is configured
  to include a separate summary - otherwise omit this meta tag">
<meta property="og:image" content="https://link.to/post/image - if this is a Post node,
  otherwise omit this meta tag">
<meta property="og:image" content="...more images">
<meta property="book:author" content="A string with the user name, or a link to the user profile.">
<meta property="book:release_date" content="When the node was published.
  Format: date (year, month, day) and an optional time component (hours, minutes)
  see: https://en.wikipedia.org/wiki/ISO_8601">
<meta property="book:tag" content="Tag words associated with this book - if the node is of type Post">
<meta property="book:tag" content="...multiple tags may be defined.">
<meta property="book:tag" content="...another tag">

Generic meta tags to consider for any node type:

<meta name="description" property="og:description" content="If body field allows separate summary.
  Omit if no summary.
  If this is the home page, then use the summary specified in admin/config/system/site-information">
<meta name="author" content="user name">

Meta tags to consider for user profile pages:

<meta property="og:type" content="profile">
<meta property="og:url" content="Can be an external link to social media,
  but for Backdrop it could be https://link.to/user/profile">
<meta property="og:image" content="Can support multiple images, but for Backdrop core
  we only support a single one - and only if the 'Enable user pictures' setting is enabled,
  otherwise this tag should be omitted.">
<meta property="profile:username" content="The account username">
<meta property="profile:first_name" content="John - If we ever support first/last name OOTB">
<meta property="profile:last_name" content="Doe - If we ever support first/last name OOTB">

Views-generated pages

Perhaps consider extending views to allow a visitor-facing description (besides the admin description), then use that as <meta name="description" property="og:description" content="..."> if the page being rendered is a view.

Page title

Note that we are currently rendering this:

<title>Home | Backdrop</title>

If we want to support or optimize for OpenGraph and schema.org, the we should be doing this instead:

<title property="schema:name">Home | Backdrop</title>
<meta property="schema:name" content="Home | Backdrop">
<meta name="description" property="schema:description og:description"
  content="Add description, if provided in admin/config/system/site-information">

The above combines w3c (name="description"), schema.org (property="schema:description"), and OpenGraph (property="og:description").

GitHub Issue #: 
4995