WordPress installation
Show customer testimonials on a WordPress page without another plugin
The block editor already has what you need: a Custom HTML block. Paste the StoryProof code into it, update the page, and the widget appears for visitors. The catch is user roles, so check yours first.
- Code ready for a Custom HTML block
- Why a Contributor or a multisite site admin sees the script vanish
- Where it belongs on posts, pages and landing pages
Code generator
Your code for the Custom HTML block
Enter the widget id from StoryProof. Both lines go into one Custom HTML block, placed where the testimonials should sit in the page.
A Custom HTML block in the post or page
Block editor › Block Inserter (or type /html) › Custom HTML › Edit HTML
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>
<script src="https://app.storyproof.io/embed.js" async></script>Press Update in the modal, then Update or Publish the page, and open it in a logged-out window to check what visitors see.
The code is assembled in your browser. Nothing is sent anywhere.
The problem, solved
WordPress testimonial problems, and how StoryProof avoids them
- Problem 1
I do not want yet another plugin to maintain
Each testimonial plugin brings its own updates, settings screen and compatibility risk with your theme.
How StoryProof solves it
The widget is two lines of HTML, a div with the widget id and an async script, which fit in the Custom HTML block the editor already has.
- Problem 2
Every re-save risks an editor stripping the script
If a Contributor or site admin touches the block to add a quote, the script can vanish and the section goes blank.
How StoryProof solves it
The widget loads its testimonials from StoryProof on each view, so new approvals appear without anyone reopening or saving the block.
- Problem 3
Widgets on many pages mean many script copies
Repeating the script in every post makes it hard to find and fix all the copies later.
How StoryProof solves it
Load embed.js once per page, for example from the footer, and it fills every StoryProof widget div on that page.
- Problem 4
My best reviews already sit on G2 or Capterra
Retyping reviews from other platforms into a plugin’s fields takes an afternoon and invites copy mistakes.
How StoryProof solves it
Import reviews from supported platforms by CSV upload or manual entry, on every plan including Free, then add them to the widget.
In StoryProof
Add it in the block editor
Step 1 of 4
Copy the widget code from StoryProof
Choose the layout and the approved testimonials it should show, then copy the code. Widgets per workspace: Free 1, Starter 5, Pro unlimited. A small "Powered by StoryProof" badge shows until Pro.
Step 2 of 4
Insert a Custom HTML block
Open the page, click the Block Inserter, or type /html into an empty paragraph and press Enter. Click Edit HTML to open the code panel.
Step 3 of 4
Paste and update
Paste the two lines, press Update in the panel, then update the page itself. Saving as a role without unfiltered_html removes the script at this point.
Step 4 of 4
Check the published page logged out
Open the live URL in a private window. If the block is empty there, reopen it in the editor: a missing script line means the role that last saved it could not keep scripts.
Where it fits in a WordPress site
Before you start
What can go wrong on WordPress
The script disappears after saving
WordPress strips script tags from Custom HTML blocks saved by users without the unfiltered_html capability, such as Contributors. On multisite networks only Super Admins have it by default.
Security and caching plugins
Some plugins that combine or delay JavaScript can hold back third-party scripts. If the widget is blank only on the live site, exclude the embed script from those settings and clear the cache.
Hosted plans can restrict code
Managed WordPress hosts and hosted WordPress plans set their own rules on custom code. Check your plan if the Custom HTML block is missing.
No WordPress plugin
StoryProof installs with embed code. There is no plugin in the WordPress directory and none is needed.
Branding on lower plans
The "Powered by StoryProof" badge shows on Free and Starter, and can be removed from Pro.
FAQ
Questions people ask
Short answers to what usually comes up next.
Do I need a plugin to add testimonials to WordPress?
No. The Custom HTML block is built into the block editor and accepts the StoryProof embed code, as long as the person saving it is allowed to save scripts.
Why does my embed code disappear when an editor saves the page?
WordPress removes script tags when the saving user lacks the unfiltered_html capability. Have an Administrator, or a Super Admin on multisite, save the block.
Does it work with Elementor or other page builders?
Page builders have their own HTML element. Paste the same two lines into it; the block editor steps on this page describe the default editor only.
Should I save the block as a pattern if the widget goes on several pages?
A synced pattern lets you place the same Custom HTML block on many pages and edit it once. Whoever saves the pattern still needs the unfiltered_html capability, or the script is stripped from every copy.
Still have a question? Ask the StoryProof team or book a demo.
Get the code for your first widget
Collect or import testimonials, approve the best ones and paste one block into WordPress.
Sources
- Custom HTML block, WordPress.org Documentation. Checked 2026-11-04.
- WordPress multisite prevents everybody but super-admins from adding HTML blocks with script, Kaspars Dambis. Checked 2026-11-04.
Last updated 2026-11-04.