SEO & structured data
What the theme does for search engines automatically, and the few knobs worth knowing. Structured data for events, blog posts and your organization ships out of the box.
What’s automatic
Every page gets a description, canonical URL, full Open Graph and Twitter card
tags, og:locale, and a robots.txt advertising your sitemap. You don’t
configure any of it.
The site also emits /llms.txt, a short plain-text summary for AI agents:
what the community is, the next upcoming event (regenerated every build so it
stays true), how to join, and links to the key pages and the calendar feed. On
Astro it is always generated; on Hugo add LLMS to the home page’s outputs
(the demos and starter already do).
The theme also emits JSON-LD structured data:
- Event on event pages (rich-result eligible),
- Organization on the home page,
- BlogPosting on blog posts.
Validate any page with Google’s Rich Results Test.
Event rich results
Event pages become eligible for Google’s event rich results. The theme reads
your existing front matter, no new required fields. The event’s start time is
parsed from the free-text time field, best effort:
time value | interpreted start |
|---|---|
6:00 PM | 18:00 |
18:30 | 18:30 |
12:00 AM | 00:00 |
6:00 PM · doors 5:30 | 18:00 (leading token) |
doors at 5:30 | date only (no leading time) |
| (absent) | date only |
Only a leading HH:MM[am/pm] token is read, so put the real start time
first. Write date as a plain calendar date and the clock time in time.
Optional event fields:
cancelled = true: marks the event cancelled (a visible badge and the structured data), so the two never disagree.online = true: an online event (virtual location, online attendance mode).price,currency,cost: for paid events (costis the displayed text,price/currencyfeed the structured offer).imageAlt: alt text for the social share image.
Knobs
[params.seo] (Astro: SITE.seo):
currency: default offer currency (defaultUSD).noindexTaxonomies = true: keep tag pages out of search results.faqJsonLd: emit FAQPage JSON-LD fromfaqblocks (defaulttrue).
See also FAQ sections for the faq shortcode.