GetPureProof

How to add video testimonials to WordPress (in under 10 minutes)

By , Founder5 min read
Back to blog

How to add video testimonials to WordPress (in under 10 minutes)

Step-by-step across Gutenberg, Classic Editor, and the popular page builders. Plus the troubleshooting playbook for when the widget refuses to render.

Adding video testimonials to a WordPress site should take five minutes. It usually doesn't — not because WordPress is hard, but because the testimonial itself is three clicks and the other two hours are figuring out which WordPress editor you're actually using, what your theme does with Custom HTML, and why the script isn't loading on the frontend even though it looks fine in the editor.

This guide cuts through that. It covers how to add a GetPureProof video testimonial widget to your WordPress site across the three scenarios that cover most setups: the Gutenberg block editor (the default on modern WordPress), Classic Editor (older installs and many agencies), and the popular page builders most teams use. Plus the troubleshooting playbook for when the widget stubbornly refuses to render, and the WordPress-specific performance settings that can accidentally break async loading.

Prerequisites: a WordPress site you can edit, admin or editor role access, and an account with at least one widget created. If you haven't set up a widget yet, start with how it works for the basics.

Step 1 — Create your widget

Before you touch WordPress, you need a widget. This takes about a minute:

  1. Log into your dashboard.
  2. Open the Space containing the testimonials you want to embed.
  3. Click Widgets in the sidebar.
  4. Click New Widget and choose your layout: Wall of Love, Carousel, Single Spotlight, Floating Pop, or Avatars.
  5. Select the testimonials you want in the widget, pick a theme (light, dark, or transparent), and save.

Each widget you create has a unique ID. You can have multiple widgets per Space — one for your pricing page, a different one for your homepage, a third for a blog post — and each gets its own embed snippet.

Step 2 — Copy your embed code

From your widget list, click Code on the widget you just created. You'll see something like:

<div class="pureproof-widget" data-widget-id="your-unique-widget-id" data-mode="inline"></div>
<script src="https://app.getpureproof.com/embed.js" async></script>

Two lines. A container div that tells the embed script where to render the widget, and the async script itself. That's the entire payload — no external dependencies, no framework bundles, no configuration files.

Copy both lines. You'll paste them into WordPress in the next step.

Step 3 — Add the widget to WordPress

Three methods depending on which editor you're using.

Using Gutenberg (the default WordPress block editor)

  1. Open the page or post where you want the testimonials to appear.
  2. Click the + button to add a new block.
  3. Search for Custom HTML and select it.
  4. Paste your embed code into the block.
  5. Click Preview to confirm the widget renders — Gutenberg doesn't execute scripts in the editor view, so the preview is the first place you'll see the actual widget.
  6. Publish or update the page.

The widget should appear on the frontend. If it doesn't, skip to troubleshooting below.

Using Classic Editor

  1. Switch to the Text tab — not Visual. This is critical. The Visual tab will mangle the script tag.
  2. Paste your embed code where you want the widget to appear.
  3. Stay on the Text tab and click Update or Publish. Switching back to Visual before saving may strip the script.

Classic Editor is stricter about inline scripts than Gutenberg. If your user role doesn't have the unfiltered_html capability (WordPress restricts this to Administrators on multisite installs by default), scripts will be silently removed on save. If that happens, either have an Administrator paste the code or switch to Gutenberg — it respects the same capability rules but behaves more predictably.

Using a page builder (Elementor, Divi, or similar)

Most page builders expose an HTML or embed widget that works like Gutenberg's Custom HTML block. Drop it where you want the testimonials and paste your embed code inside.

In Elementor:

  1. Drag an HTML widget from the panel onto your page.
  2. Paste your embed code in the HTML field.
  3. Update the page.

In Divi:

  1. Add a Code module to your row.
  2. Paste your embed code.
  3. Save.

For other builders, look for any element named HTML, Code, Raw HTML, or Custom HTML. The workflow is identical — paste the snippet, save, check the frontend.

If you want the testimonials to appear across multiple pages — a sidebar on every blog post, a footer everywhere, a dedicated testimonials page — you have three options.

Widget area in your admin panel. Go to Appearance → Widgets, find the area where you want the testimonials (sidebar, footer, etc.), add a Custom HTML widget, paste your embed code, save. The testimonials appear site-wide in that area.

Reusable block or block pattern. In Gutenberg, you can save a Custom HTML block as a reusable block. This lets you drop the testimonials into any new page without copying the code again — and updates to the reusable block propagate to every place it's used.

Footer via theme settings. Most block themes let you edit the footer template directly. Go to Appearance → Editor, navigate to the footer template, add a Custom HTML block, paste the embed. The testimonials now show in the footer of every page.

One thing to flag: some themes strip inline scripts from sidebar widgets or footer positions even when they allow them in post content. If the widget works in a page body but not in a sidebar, that's your theme filtering — test in the body first to isolate whether the theme or the placement is the problem.

Troubleshooting — what to do if the widget doesn't appear

If the widget shows in the editor but not on the live page, or doesn't show at all, walk this diagnostic in order:

1. Check whether the script tag was stripped.

View the page source in your browser (right-click → View Page Source) and search for pureproof. If you don't find the script tag in the rendered HTML, your editor or a plugin removed it on save. Common culprits: user role restrictions (your role lacks the unfiltered_html capability), security plugins that filter posts for inline scripts, or aggressive content sanitizers in some theme frameworks. Fix: have an Administrator add the code, or check your security plugin for a setting like "strip inline scripts from post content" and add an exception for your page or post.

2. Check whether caching is serving an old version.

WordPress caching plugins cache page HTML aggressively. If you just added the widget and don't see it, clear your site cache, your object cache, and your CDN cache if you have one. Hard-refresh your browser (Ctrl+Shift+R or Cmd+Shift+R) to bypass browser cache. If the widget appears after clearing, your caching plugin is the cause — future updates may need the same clear-cache step each time.

3. Check the browser console.

Open DevTools and look at the Console and Network tabs. If you see a Content Security Policy error, your site or security plugin has a CSP that's blocking the embed script's domain — add app.getpureproof.com to your script-src directive. If you see 404 or 403 on the embed script itself, something is blocking outbound script loads; this is rare and usually traces back to a security plugin's script firewall.

4. Check whether your theme strips scripts from specific contexts.

Some themes strip inline scripts from sidebar widgets, excerpts, or footer positions even when they allow them in post content. If the widget works in a page body but not in a sidebar, test placing it in the body first to isolate whether the theme or the placement is the issue.

5. AMP pages.

If your site serves AMP versions, those strip all inline JavaScript by design — the widget won't render on AMP pages. Either disable AMP for pages with the widget, or accept that AMP and interactive widgets don't coexist in the same URL.

Optimizing the widget for WordPress performance

The good news: the widget is already optimized. The embed script loads async, the actual widget UI renders inside an iframe (isolating its JavaScript from your site's main thread), thumbnails lazy-load with the native loading="lazy" attribute, and no video files download until a visitor clicks play. You don't need to do anything special.

Two WordPress-specific considerations worth flagging:

  • Don't combine or minify the embed script. Most caching plugins offer JS combination and minification. The embed script is already minified and served from a CDN — combining it with your site's JS bundle cancels the async benefit and can break the loader entirely. In your caching plugin's settings, exclude app.getpureproof.com from combine-and-minify rules.
  • Don't aggressively "delay JavaScript execution" on this script. Some performance plugins defer all JavaScript until user interaction. For a testimonial widget that's visible in the initial viewport, this defeats the purpose — the testimonial should render on load, not wait for a click. Add the embed script domain to the exclusion list for the delay-JS feature.

For the broader picture on how testimonial widgets interact with Core Web Vitals and what to audit, testimonial widgets and Core Web Vitals covers the details.

Bottom line

Adding video testimonials to WordPress is a two-line paste into a Custom HTML block, regardless of which editor you're using. The only complications come from user permissions, caching plugins, and security filters — all fixable in under ten minutes once you know where to look.

Create the widget. Copy the embed. Paste it into WordPress. Publish. If it doesn't render, walk the five troubleshooting steps above in order — ninety-nine times out of a hundred, you'll find the problem at step one or two.

You now have browser-recorded video testimonials on your WordPress site with no performance hit, no tracking injected into your page, and no additional plugin to manage. The features page covers what else the widgets can do; pricing starts free.

Add video testimonials to WordPress in under ten minutes

Two lines of embed code. Works with Gutenberg, Classic Editor, Elementor, Divi, and any page builder with a Custom HTML option. No plugin required. No performance hit.

Start free — no credit card