The embed widget is a JavaScript snippet on Premium-tier accounts. When it does not render, the issue is usually one of these.
1. Are you on Premium?
The widget is Premium-only. If you are on Free or Pro, the script returns an empty response.
Check /studio/settings/billing. If you are not on Premium, upgrade.
2. Is the snippet pasted correctly
The snippet has two parts:
<script src="https://movementors.com/embed.js" data-studio="your-slug" data-mode="list" async></script>
<div id="movementors-embed"></div>
Both lines need to be present. The script loads the widget code; the div is where the widget renders.
Common mistakes:
- Only the script tag is pasted, missing the div.
- The
data-studioattribute has a typo (it should be your studio's slug). - The script src URL is wrong (should be exactly
https://movementors.com/embed.js).
Re-copy from /studio/settings/embed to be sure.
3. Open browser console
If the snippet is correct but nothing renders, open your browser's developer console (F12 or right-click → Inspect → Console).
Look for red error messages. Common ones:
"Refused to load the script..."
Your site's Content Security Policy (CSP) is blocking us. You need to allow movementors.com in:
script-src(for the JavaScript).frame-src(for the iframe the widget renders in).connect-src(for API calls the widget makes).
Update your CSP header on your site to include these. If you do not control the CSP (you are on Squarespace / Wix), check their docs for "Custom CSP" or whitelisting external scripts.
"Failed to fetch"
Your network is blocking the request. Common causes:
- Corporate proxy / firewall.
- Browser extension blocking trackers (Privacy Badger, etc).
- Adblockers.
Test in an Incognito / Private window with extensions disabled. If it works there, an extension is the cause.
"Cross-Origin Resource Sharing (CORS) error"
Your domain may not be allowed by our CORS policy. We allow all origins by default; CORS errors usually indicate a different issue (the response itself failed, and the browser reports as CORS).
Check the network tab for the actual response status. A 403 or 404 means the script URL is wrong.
4. Studio slug is wrong
The data-studio attribute must match your studio's slug exactly. Case-sensitive.
If you changed your slug, update the snippet on your site.
5. JavaScript errors on your own site
The widget assumes a working JavaScript environment. If your site has a JavaScript error BEFORE the widget loads, the widget may not initialise.
Check the console for any non-MoveMentors errors. Fix those first; the widget often comes back.
6. The container div is hidden
Make sure the <div id="movementors-embed"></div> is in the page and not hidden by CSS.
Inspect element on the div; check that it has dimensions (height > 0) and is visible. Sometimes a parent container has display: none or height: 0.
7. The widget is rendering but in the wrong place
The widget renders inside the <div id="movementors-embed">. If that div is in the wrong place on your page, the widget will be too.
Move the div to where you want the widget. Refresh.
8. Layout looks broken
The widget is responsive but may collide with your site's CSS. Check:
- The container has enough width (at least 320px for mobile; 600px+ recommended).
- Your site's CSS is not setting
* { display: block }or similar overrides on the widget's internal elements. - The container does not have
overflow: hiddencutting off the widget.
Try wrapping the snippet in a container with reset CSS:
<div style="all: revert; width: 100%; min-height: 600px;">
<script src="..." ...></script>
<div id="movementors-embed"></div>
</div>
9. Squarespace / Wix / Webflow specifics
Each builder has its own way of embedding custom HTML:
- Squarespace: Use a "Code Block" element. Paste the snippet.
- Wix: Use the "HTML Embed" element.
- Webflow: Use the "Embed" element.
- WordPress (Gutenberg): Use the "Custom HTML" block.
If your builder restricts which domains can be embedded, you may need a paid plan that allows external scripts. Check their docs.
10. Mobile rendering
If the widget works on desktop but not mobile:
- Test in mobile-specific browsers (Mobile Safari, Chrome on Android).
- Check viewport meta tag:
<meta name="viewport" content="width=device-width, initial-scale=1">should be on your page. - Check the container's mobile width.
The widget is designed for mobile but assumes a sane viewport setup.
Common questions
Can I have multiple widgets on one page?
Yes. Each <div id="movementors-embed"> needs a unique ID. Use movementors-embed-1, movementors-embed-2, etc, and reference the same in a corresponding data-target attribute on each script tag. See embed widget advanced for the details.
The widget loads but classes are not appearing. Check that your studio has active classes. The widget filters out inactive classes. Also check the filters configured in /studio/settings/embed; you may have filtered too aggressively.
Can I customise the widget's appearance further? Yes, via CSS variables. See embed widget advanced.
Will the widget work if MoveMentors is down?
No. The widget loads scripts from movementors.com. If we are down, the widget fails. Your site's other content is unaffected.
Next steps
- Embed widget: the basics.
- Embed widget advanced: customisation and edge cases.