Duda installation
Duda Testimonials Using the HTML Widget
Duda’s HTML widget is the documented way to put visible third-party code on a page, and Body End HTML is where invisible scripts go. Agencies building client sites in Duda can drop the StoryProof div into an HTML widget in its own column and load the script once for the site.
- Div for Duda’s HTML widget
- Script for Body End HTML
- Where the widget repeats on every page
Code for Duda
StoryProof code for a Duda site
Duda’s rule of thumb: visible code in an HTML widget, invisible code in the header area or Body End. So the div goes in the widget and the script in Body End HTML.
Part 1 · An HTML widget in its own column on the page
Side panel › Add › Elements › search HTML › drag into a column › Edit Content
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>Part 2 · Body End HTML, once for the whole site
Side panel › More › Settings › Head HTML › Body End HTML
<script src="https://app.storyproof.io/embed.js" async></script>Save, republish the site and open the live page. If the widget needs fixing later, select its column and edit from there.
Your input stays in this browser. The code is only formatted here.
The problem, solved
Agency problems with testimonials on Duda, and the fix
- Problem 1
Clients email quotes for me to paste
Duda’s testimonial widget holds typed text, so every new review becomes a support ticket for the agency.
How StoryProof solves it
Collect and approve testimonials in StoryProof, then choose which approved ones appear in each widget instead of typing quotes into Duda.
- Problem 2
Each client’s reviews must stay separate
An agency with dozens of Duda sites cannot risk one client’s reviews appearing on another’s homepage.
How StoryProof solves it
Give each client a brand space in StoryProof; how many spaces and seats you get is set by your plan.
- Problem 3
I cannot click the code widget anymore
Duda warns that custom code can leave an HTML widget invisible in the editor, still on the page but hard to select.
How StoryProof solves it
The StoryProof div is a single line that renders nothing until the script loads, and putting it in its own column keeps it easy to reach.
- Problem 4
Service pages need different reviews
A client’s plumbing page and boiler page attract different buyers, and one generic testimonial block helps neither.
How StoryProof solves it
Tag testimonials by service and give each Duda page its own widget with the matching set.
- Problem 5
One script per page is a maintenance chore
Copying the full snippet into every HTML widget across a large client site makes cleanup slow.
How StoryProof solves it
Load embed.js once in Body End HTML and it fills every StoryProof div on each page of the site.
Where Duda puts your code
In StoryProof
Install it on a Duda site
Step 1 of 5
Build the client’s widget
In the client’s brand space, choose approved testimonials for the page and copy the widget code.
Step 2 of 5
Add the script to Body End HTML
In the side panel click More, then Settings, then Head HTML. Paste the script line into Body End HTML and save.
Step 3 of 5
Give the widget its own column
Add a new column or container where the reviews should go, so the code can be removed cleanly later.
Step 4 of 5
Drop in an HTML widget
Click Add, then Elements, search for HTML and drag the widget into that column. Open Edit Content and paste the div.
Step 5 of 5
Republish and check
Republish, load the live page in a private window and check desktop and mobile.
Before you start
Duda limits
Team plan or higher
Duda lists custom code as available on Team plans and higher. On a lower plan, a link to the Wall of Love is the code-free route.
Duda support stops at custom code
Duda states that its support cannot troubleshoot custom code. Questions about the widget go to StoryProof.
Header and footer repeat
Any HTML widget in the shared header or footer appears on every page of the site, so keep testimonial widgets in the page body unless that is the goal.
Not a Duda app
StoryProof is not in Duda’s app store and has no Duda integration. It is added as custom code in the HTML widget.
Docs-based, not field-tested
The paths here follow Duda’s help center as of 2026-11-12. They have not been tried on a real Duda site, and Duda’s Editor 2.0 and flex mode name some menus differently.
FAQ
Questions people ask
Short answers to what usually comes up next.
Should I use Duda’s own Testimonial widget instead?
For a few fixed quotes, it is fine. A StoryProof widget suits clients who collect testimonials regularly, in video, audio or text, and want a moderation step before anything is shown.
Can the whole snippet go in the HTML widget?
Yes for a single widget on one page. Body End HTML is tidier once several pages carry widgets.
Why does my widget appear on every page?
It was probably placed in the header or footer, which every Duda page shares. Move the HTML widget into the page body.
Where is Edit Content in Editor 2.0?
In Editor 2.0 and flex mode, click the element to open its floating menu, then choose the content editor option.
Still have a question? Ask the StoryProof team or book a demo.
Stop retyping client reviews into Duda
Give each client their own brand space, approve their testimonials, and embed them with one HTML widget.
Sources
- Custom Code, Duda Support. Checked 2026-11-12.
- Widgets: HTML, Duda Support. Checked 2026-11-12.
Last updated 2026-11-12.