Description
VidDefer – Deferred Video Embeds replaces heavy video embeds with lightweight thumbnail placeholders. The real video only loads when a visitor clicks (or scrolls to) it — saving hundreds of kilobytes per page load.
Supported Sources
- YouTube — replaces iframes with thumbnail + play button
- Vimeo — replaces iframes with thumbnail + play button
- Self-hosted videos — replaces
<video>elements (MP4, WebM, OGV)
Key Features
- Zero configuration — install, activate, done
- Click-to-load or scroll-triggered loading
- YouTube thumbnail quality control (SD / HQ / Max)
- 3 play button styles: YouTube-style, Circle, Minimal
- Custom play button & overlay colours
- GDPR / privacy notice overlay
- Exclude specific pages by ID or videos by CSS class
- No jQuery — pure ES6, < 2KB gzipped
- Works with Gutenberg, Elementor, Divi, WPBakery
- WCAG 2.1 keyboard-accessible placeholders
- Caches Vimeo thumbnails via WordPress transients
External services
This plugin can connect to external video services to display lazy-loaded video thumbnails and metadata.
YouTube
When YouTube lazy loading is enabled, the plugin uses YouTube’s public thumbnail CDN to display thumbnail images for YouTube videos. The visitor’s browser requests the thumbnail image from YouTube when a lazy-loaded YouTube placeholder is displayed. The request includes the YouTube video ID in the thumbnail URL and may include normal browser request data such as the visitor’s IP address and user agent.
This service is provided by YouTube LLC. Terms of Service: https://www.youtube.com/t/terms Privacy Policy: https://policies.google.com/privacy
Vimeo
When Vimeo lazy loading is enabled, the plugin optimizes page performance by replacing heavy video players with a lightweight placeholder image. To generate this placeholder, your WordPress server makes a secure background request to Vimeo’s public oEmbed API to fetch the video’s thumbnail URL and, optionally, its title. To minimize external requests and maximize site speed, this data is automatically cached locally using WordPress transients, meaning the server only contacts Vimeo when the metadata isn’t already saved.
During this brief server-to-server connection, your site shares minimal, standard data with Vimeo to fulfill the request. This includes the specific Vimeo video URL (which contains the video ID) and a standard User-Agent string identifying your website’s URL alongside the plugin’s name and version. No personal user data is transmitted, making it a seamless and privacy-conscious way to boost your site’s loading times.
This service is provided by Vimeo.com, Inc. Terms of Service: https://vimeo.com/terms Privacy Policy: https://vimeo.com/privacy
Screenshots




Installation
Method 1: Direct Installation (Recommended)
- Log into your WordPress admin panel
- Go to Plugins Add New
- Search for «VidDefer – Deferred Video Embeds»
- Click Install Now
- Click Activate
- Visit Settings VidDefer page directly to configure your video settings.
Installation takes less than 1 minute.
Method 2: Manual Installation (FTP)
- Download the plugin from WordPress.org
- Unzip the downloaded file
- Upload the
viddeferfolder to/wp-content/plugins/via FTP - Log into WordPress and go to Plugins
- Find «VidDefer – Deferred Video Embeds» in the list
- Click Activate
- Configure via Settings VidDefer page
FAQ
-
Will it work with my page builder?
-
Yes. The plugin uses PHP output buffering to intercept all video iframes and
<video>tags regardless of how they were added to the page. -
Does it support YouTube Shorts?
-
Yes, YouTube Shorts use the same embed format and are handled automatically.
-
Will it break my video popups / lightboxes?
-
Add the class
no-lazy(configurable under Settings VidDefer Exclusions) to any iframe, video element, or wrapping figure tag you want to skip. -
Does it require an API key?
-
No. YouTube thumbnails use the public
img.youtube.comCDN. Vimeo thumbnails use the public oEmbed endpoint.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“VidDefer – Deferred Video Embeds” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “VidDefer – Deferred Video Embeds” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
Released June 12 – 2026
- Initial release
- YouTube, Vimeo, self-hosted lazy load
- Click and scroll triggers
- Admin settings page
- GDPR notice support