Cookie-consent tools can correctly block third-party embeds while still creating a poor user experience. In one WordPress project, Termly was added to manage consent and automatically block non-essential scripts. The banner worked as intended, but visitors who rejected cookies were left with large blank spaces where embedded videos would normally appear.
Freshy solved that gap with a small custom WordPress plugin that detects blocked video embeds, inserts a branded consent message in the same space, and lets visitors reopen the Termly preference center if they want to change their choice. The plugin also gives site editors a settings screen for changing the message, button text, visibility, and overall feature status without editing code.
Issue background
A WordPress site needed a Termly consent banner added so visitors could manage cookie preferences before non-essential tracking and embedded content loaded.
The initial setup included:
- The Termly auto-blocking script.
- A consent-preferences link so visitors could revisit their choices.
- Banner styling and placement adjustments.
- Review of cookies that Termly initially marked as unclassified.
Two unclassified items were traced to ZoomInfo WebSights rather than WordPress or Termly. They were associated with visitor identification, analytics, and telemetry data, so the team documented their purpose and appropriate marketing or analytics classification.
After the banner was approved and moved to production, a second usability problem emerged: when a visitor rejected cookies, Termly blocked embedded videos correctly, but the page was left with a large empty area where the video had been.
Diagnosis
The blank-video behavior was not a Termly malfunction. It was the expected result of the consent blocker preventing third-party video content from loading before the required consent was granted.
The limitation was presentation. Termly did not provide a built-in way for this site to replace the blocked iframe with a custom explanatory message.
The developer reviewed the affected pages and confirmed that the scope was limited to a small number of video embeds, including multiple pages with YouTube content.
The team considered a lightweight JavaScript approach that would detect the empty video container and inject replacement content. After the work was approved, that idea was implemented as a small custom WordPress plugin so the feature could be maintained cleanly instead of living as a one-off script.
Resolution steps
The documented implementation was:
- Add the Termly consent banner on staging. The auto-blocking integration was tested before being moved to production.
- Review unclassified cookies. Two items were identified as coming from ZoomInfo WebSights rather than from Termly or WordPress.
- Refine the banner styling. Spacing and alignment in the consent interface were adjusted after review.
- Deploy the approved Termly configuration live. The initial consent banner setup was moved to production after client approval.
- Investigate blocked video behavior. When users rejected cookies, Termly correctly prevented the video iframes from loading but left blank page areas behind.
- Build a custom blocked-video placeholder. Freshy created a small WordPress plugin that detects blocked embeds and replaces the empty space with a branded panel.
- Preserve the video aspect ratio. The replacement panel keeps the same 16:9 space as the original video so the page does not shift when consent status changes.
- Add a clear consent message. The placeholder explains that the visitor must allow the relevant cookies to view the video.
- Provide a direct path back to consent settings. A button in the placeholder reopens the Termly preference center so the visitor can change their consent choice without searching for the banner controls.
- Support more than one video provider. The custom logic was designed to cover blocked video embeds generally, rather than being limited only to YouTube.
- Add editable admin settings. Under WordPress settings, editors can change the heading, message, button label, button visibility, and a master on/off switch.
- Add a live preview. The settings page shows how the placeholder will look while the copy is being edited.
- Clear cache automatically when settings change. Saving the placeholder settings also clears the relevant cache so updates appear on the frontend immediately.
- Test on staging before launch. The feature remained staging-only until the client reviewed and approved it.
- Deploy the custom consent experience to production. After approval, the plugin and its configuration were pushed live.
The custom plugin name and site-specific identifiers are intentionally omitted here because they are not needed to reproduce the solution.
Final outcome
The site ended up with two complementary consent improvements.
First, Termly was successfully deployed as the site’s cookie-consent system, with the banner styled and the previously unclassified ZoomInfo WebSights cookies reviewed.
Second, visitors who reject cookies no longer see unexplained blank spaces where videos should be. The custom WordPress plugin now shows a branded placeholder, preserves the video layout, explains why the content is unavailable, and gives the visitor a one-click way to reopen Termly preferences.
Editors can also manage the placeholder copy and button behavior from WordPress without changing code.
The broader lesson is that privacy compliance and user experience need to be designed together. Blocking third-party content is only half the job. When consent prevents a video or other embed from loading, the page should explain what happened and give the visitor a clear way to change their preference.
If you need help integrating Termly with WordPress or improving the experience around blocked third-party content, contact Freshy. Our WordPress team can implement the consent layer and make sure the site still communicates clearly when optional content is blocked.