Discourse Events

The Discourse Calendar / Events Upcoming Events routes appear to omit all Open Graph and Twitter-card metadata from the initial server-rendered HTML response.

This is reproducible on a hosted Discourse site where normal pages correctly emit social metadata and a valid site OpenGraph image is configured.

Example affected route:

https://www.mbacommons.com/upcoming-events/month/2026/8/1

Steps to reproduce

  1. Configure a valid site OpenGraph image.
  2. Confirm the homepage or a normal topic emits normal Open Graph metadata in raw HTML.
  3. Open /upcoming-events/month/2026/8/1.
  4. Inspect raw view-source: / initial server response, not the post-JavaScript DOM.

Actual result

The Upcoming Events route returns HTTP 200, but the raw HTML contains:

  • no og:image
  • no og:title
  • no og:description
  • no og:url
  • no twitter:card
  • no twitter:image

I also tested using LinkedInBot/1.0; the result is identical.

A raw-HTML production audit on the same site counted:

  • homepage: 11 social metadata tags
  • normal topic: 14
  • Upcoming Events: 0

The homepage and normal topics correctly use the configured site OpenGraph image, so the site-level branding configuration itself is working.

Expected result

Upcoming Events routes should emit crawler-visible, server-rendered social metadata, including at minimum:

  • og:title
  • og:description
  • og:url
  • og:image, falling back to the configured site OpenGraph image
  • corresponding Twitter-card metadata

This needs to be in the initial HTML because LinkedIn and similar social crawlers cannot rely on client-side theme JavaScript.

LinkedIn Post Inspector currently reports:

Add an og:image tag to the page to have control over the content's image on LinkedIn.

A global theme head_tag injection does not seem appropriate because normal pages already have correct metadata and it could create duplicate/conflicting tags. This appears to need route-aware server-side handling for Upcoming Events or use of Discourse’s normal social-metadata rendering path.

2 Likes