The embed widget is one script tag. When nothing shows up on the page, the cause is nearly always one of the five checks below, so go through them in order.
1. Re-copy the snippet
Copy the snippet again from /mentor/settings/embed and replace what is on the site. It should look exactly like this:
<script src="https://movementors.com/embed.js" data-mentor="MENTOR_ID" async></script>
Things that quietly break it:
- The
srcmust be exactlyhttps://movementors.com/embed.js. The script has to load from movementors.com. data-mentormust be the mentor ID exactly as the snippet generator wrote it. It is an ID, not your profile URL and not your name. If it was typed by hand, that is the prime suspect.- No second copy of the snippet on the same page. The widget loads once per page and ignores a duplicate tag.
There is no separate container to paste: the widget renders where the script tag sits, unless the snippet uses data-target.
2. Check your plan
The widget is a Premium feature. On Free or Pro, the script loads but shows a short "embed unavailable" notice instead of your schedule. Check your plan at /mentor/settings/billing and upgrade if you want the widget.
3. Check the origin allowlist
If you added origins at /mentor/settings/embed, the widget only renders on those sites. The site's origin must match exactly: scheme plus domain. https://example.com and https://www.example.com are different origins, so list both if the site answers on both.
An empty allowlist means any site may embed. If the widget works on one site but not another, this is the first thing to check.
4. Open the browser console
On the page where the widget should appear, press F12 (or right-click, Inspect, then Console) and look for red errors mentioning movementors.com.
- "Refused to load the script" with "Content Security Policy": the site's CSP is blocking the widget.
script-srcmust allowmovementors.com(andconnect-srctoo, for the widget's data requests). This is common on corporate sites; whoever manages the site's headers can add it. - JavaScript disabled: the widget needs JavaScript. Without it, nothing renders.
- Ad blockers rarely block a plain script tag like this one, but strict corporate filters sometimes do. Test in a private window, or from another network, to rule that out.
5. Check what your site builder allows
The snippet works in any site builder that lets you add custom HTML containing scripts:
- Squarespace: a Code Block.
- Wix: the HTML embed element.
- Webflow: the Embed element.
- WordPress: the Custom HTML block.
Some builders and page tools strip <script> tags from custom HTML. The widget cannot run there; the fallback is a button that links to your MoveMentors page instead.
Changes not showing up?
The widget's catalog response is cached for 30 to 60 seconds. A new class, a price change, or a new session appears in the widget within about a minute. If you just edited something, wait a minute and refresh the page.
Common questions
The widget renders but says embed is unavailable. That is the plan gate. See step 2.
The widget renders but shows no classes.
Check that you have upcoming published sessions. Also check the snippet's data-kind: a widget with data-kind="retreats" renders an empty list if you have no upcoming retreats.
It works on one website but not another. Almost always the origin allowlist (step 3) or the second site's CSP (step 4).
Will the widget work if MoveMentors is down? No. The script and the data load from movementors.com. The rest of the page is unaffected.
Next steps
- Embed widget advanced: every attribute and setup pattern.
- Mentor tiers: the plan that unlocks the widget.