Skip to content

Content, SEO, translations, videos, and courses

New staging website. Use https://beti.worldyogaalliance.org/admin/content and its linked staging routes. Check the target public page after any save.

Choose Content in the Admin workspace sidebar or open /admin/content. The tabs are Contact requests, Testimonials, Videos, and SEO and translations.

The content workspace has two different kinds of write: editorial content and visibility, and SEO/cache operations. Check the public route after saving because a record can be saved but unpublished, hidden, excluded from the sitemap, or waiting for cache invalidation.

Contact requests is a read-only queue. Each detail shows the sender’s subject, name, email, and message. Select Reply by email to open the approved mail workflow. The admin screen does not send a broadcast and does not edit the original request.

In Testimonials, cards show Published or Hidden. Select Hide or Publish (the exact action follows the current state), then reload the list and check the public page. The action changes public visibility; it does not rewrite the testimonial text or attribution.

Open Videos to see Video library with Video, Visibility, Views, Created by, and Actions. Rows can show Active / Inactive and Public / Private.

  1. Select Edit metadata.
  2. Edit Name, English name, Thai name, Simplified Chinese name, Duration, Creator user ID, Description, Stream URL, Stored video path, and Stored cover path as needed.
  3. Set Public and Active deliberately.
  4. Select Save video metadata.

The editor explicitly says that uploads, transcoding, and video creation remain outside this editor. Hide video / Publish video changes active/public state. Do not enter a private storage credential in a path field.

The editor saves metadata only. A successful metadata update does not upload a video or generate a cover.

Open Content → Courses at /admin/content/courses. The page calls these Internal courses and explains that they are for members with a school or teacher profile.

  1. Select New course or Edit on an existing course.
  2. Enter Course title.
  3. Check Publish for members only when the lessons are ready.
  4. Add a plain-text Description.
  5. Under Lessons, enter each Lesson title and YouTube URL or ID.
  6. Use Add lesson or Remove lesson N to keep the ordered list correct.
  7. Select Create course for a new course or Save course for an existing course.

There must be 1–50 lessons. Every lesson needs a title and a valid YouTube URL or the 11-character video ID. Use a watch or share URL, not an arbitrary streaming address. Reopen the course and check lesson order after saving.

Select Delete only after confirming that all lessons will be removed. Course deletion is a business write and cannot be undone from this editor.

Open SEO and translations or /admin/content?view=cms&site=platform. The selector is Select page and locale and contains:

  • Page — the registered CMS page (site / routeKey).
  • Locale — currently en, th, zh, or hi.
  • SEO target — Page, School, Teacher, Event, or Platform event.
  • Target ID / key.
  • Load.

For a page target, the translation card is labelled Translation · {locale}. Edit Title, Excerpt, rich-text Body HTML, and Slug; then choose Published in {locale} and select Save translation. Title and Body HTML are required. To remove a locale entry, select Delete translation and confirm.

Use the page’s public locale route to check headings, links, formatting, and publication. Keep HTML intentional and do not paste secrets or untrusted scripts into the body.

The SEO card is labelled SEO · {locale}. The editable fields are:

  • SEO title
  • Focus phrase
  • Meta description
  • Open Graph title
  • Open Graph description
  • Open Graph image URL
  • Twitter title
  • Twitter description
  • Twitter image URL

Expand Technical SEO controls for Canonical URL, No index, No follow, Include in sitemap, and Structured data JSON. The SEO estimate displays a score out of 100 and checks. Select Save SEO, wait for the result, and inspect the corresponding public page and social metadata after the cache is updated.

Only set No index or No follow when the content owner has approved it. A staging hostname already sends an environment-level crawler exclusion; that does not automatically exclude a production page from search.

The Cache controls card says Current environment only · no database or media deletion. The buttons are Purge page, Purge site, and (for a superuser) Purge all caches.

  1. Save the translation or SEO record first.
  2. Choose the smallest scope that contains the changed page.
  3. Confirm the prompt Purge {scope} cache in this environment?.
  4. Reload the public page and confirm the new content.

Cache invalidation is environment-scoped. A successful save followed by an invalidation error can show Saved, but cache invalidation failed. Please retry the purge. Retry the purge after checking the public page; do not duplicate the editorial write.

Choose Content → Translations or /admin/content/translations. The page is titled Interface translations and offers language tabs English, ไทย, 中文, and हिन्दी.

  1. Choose the language.
  2. Use Find interface text to locate a key.
  3. Edit its translation and select Save translation.
  4. To return to the source text, select Restore default.

Keep placeholders such as {count} and formatting tags unchanged. The editor validates message syntax and the key’s placeholders. A fallback English message can appear until a valid translation is saved; reload an open page to see a change.

Reopen the saved record and view the public page. Check publication, visibility, sitemap settings, and cache separately. If a save reports that cache invalidation needs a retry, check the public page before saving the same content again; the editorial change may already be stored.