Course SEO and Sharing
Every course page already produces a sensible search snippet and a rich link preview with nothing configured: the title comes from the course title, the description from the start of the course description, and the share image from the course thumbnail.
When you want to write those yourself, each course has a Search & Sharing section with five fields. Leave any of them empty and that value keeps deriving exactly as it did before, so turning this on for one course changes nothing about the rest.
Where to find it
Open a course for editing and expand Search & Sharing. It is on all three editors -- the wp-admin course editor, the front-end course builder (Pro), and the REST API -- so whichever way you author, the same five fields are there.
The fields
| Field | What it controls | When left empty |
|---|---|---|
| Search title | The <title> of the course page and the og:title in a shared link |
The course title |
| Search description | The meta description and og:description |
The first part of the course description |
| Share image URL | The image a shared link shows (og:image) |
The course thumbnail, then the site logo |
| Share image (media ID) | The same, picked from the media library | Used only when no Share image URL is set |
| Search visibility | Whether search engines may index the course | Visible in search |
A couple of details worth knowing:
- Search title also changes the page title, not just the social preview. If you set one, you are naming the page as search will show it.
- Search description is not truncated. Derived descriptions are capped at 155 characters so machines get a clean snippet, but a description you typed is printed in full -- if you wrote 200 characters, you meant them.
- Share image URL wins over the media ID. This mirrors how the course thumbnail already resolves, so a course imported with an external image URL keeps working without an attachment in the library.
Search visibility
Search visibility is a fixed list, not a free-text robots field:
- Visible in search (default) -- no robots directive is printed.
- Hide from search -- prints
noindex. - Hide from search and do not follow its links -- prints
noindex,nofollow.
Free text is deliberately not offered. A typo such as no-index is silently
ignored by crawlers, so you would believe a course was hidden while it stayed
indexed.
Hiding a course from search is not access control. A noindex course is
still public to anyone with the link. To actually restrict who can open it, use
a pricing model that gates access -- see
Pricing and Access Models and
Invite-Only Courses -- or turn on Private site in
General Settings.
If you also run Yoast SEO or Rank Math
These fields are still the ones that apply. Courses live in Learnomy's own tables rather than as WordPress posts, so Yoast and Rank Math cannot see a course at all and offer no snippet editor for one. Learnomy keeps ownership of the head tags on its own pages for exactly that reason. See SEO Plugin Handoff for what each plugin owns where.
For developers
The five values are columns on the course row -- seo_title,
meta_description, og_image_url, og_image_id and meta_robots -- and are
readable and writable through the course REST endpoints alongside every other
course field.
learnomy_meta_description_max_length-- filter (int, default155) for the cap applied to derived descriptions. An authored Search description is never capped, regardless of this value.learnomy_seo_yield_to_plugin-- filter (bool) controlling whether Learnomy suppresses its canonical and Open Graph tags in favour of another SEO plugin. See SEO Plugin Handoff.