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
- Configure a valid site OpenGraph image.
- Confirm the homepage or a normal topic emits normal Open Graph metadata in raw HTML.
- Open
/upcoming-events/month/2026/8/1. - 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:titleog:descriptionog:urlog: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.