Skip to main content

⚠️ Feature request: Built-in Schema.org / Google Rich Results support for Courses

Hi friends,

First, thanks for the great work on Fluent Community.
I’d love to suggest a feature that would really help SEO for course-based sites: native Schema.org JSON-LD for courses, lessons, and member spaces, compliant with Google Rich Results.

Test : https://search.google.com/test/rich-results

(I had already raised this observation and thought it had been addressed in the latest update.)

Why

Right now, Fluent Community doesn’t appear to output JSON-LD for courses by default. I added custom code to inject and validate structured data, and it works — but native support would be much cleaner and more reliable for everyone.

What would help

  • Course pages (@type: Course)

    • Required fields:

      • name, description, url

      • provider{ "@type": "Organization", "name": "...", "url": "..." }

      • hasCourseInstance{ "@type": "CourseInstance", "courseMode": "online", "url": "...", "courseWorkload": "P12H" }

        • Note: courseWorkload or courseSchedule is required by Google; courseWorkload must be ISO 8601 duration (e.g., P12H, PT1H30M).
    • offers (Google expects it even for free courses):

      • Paid example: { "@type": "Offer", "price": 39, "priceCurrency": "EUR", "availability": "https://schema.org/InStock", "priceValidUntil": "YYYY-MM-DD", ... }
      • Free example: { "@type": "Offer", "price": 0, "priceCurrency": "EUR", "availability": "https://schema.org/InStock" }
    • isAccessibleForFree should be a boolean (true/false), not a string/URL.

  • Lesson/session pages

    • Use @type: WebPage (unless you model lessons separately), inherit isAccessibleForFree from the parent course or expose a per-lesson override.
  • Member spaces (/space/.../home)

    • Use @type: WebPage with isAccessibleForFree: false by default (configurable).

Admin UX

  • Add fields in the course editor: price, currency, promo price/validUntil, workload (duration), mode, start/end dates (optional).
  • Allow a course to be marked Free vs Paid; generate the right offers automatically (price 0 if free).
  • Provide a toggle to enable/disable JSON-LD globally and per course.
  • Output JSON-LD server-side (in <head>) so Google can read it without relying on JS rendering.
  • Use filters/actions so advanced users can modify the payload.

Bonus (to avoid conflicts)

  • If third-party SEO plugins also output Course markup, consider:

    • a setting to disable Fluent Community’s JSON-LD, or
    • a filter to merge/extend existing JSON-LD cleanly.

I’m happy to share working examples or help test. This would make Fluent Community more SEO-friendly out of the box and help sites get consistent “Course” rich results in Google.

Thanks again for considering it!

David & ChatGPT5 😉

⚠️ Feature request: Built-in Schema.org / Google Rich Results support for Courses

\= 1.7.72 (Date: July 08, 2025) = We have added the schema for Public and Private Courses.

D@vid

Shahjahan Jewel 

I thought it was working, but it isn’t.

D@vid

Shahjahan Jewel 
provider, hasCourseInstance, offers
Google scan 👇

Sean

We also need to make Private courses searchable on Google. There is no option to offer paid spaces and grow your community through SEO.

VOTE: https://community.wpmanageninja.com/fluentcommunity-roadmp/#/idea/989/

Lukas List

Unfortunately for me, there’s nothing there yet... so I have to start my ideas with self-solutions.