{"id":322917,"date":"2026-06-12T12:31:47","date_gmt":"2026-06-12T12:31:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/video-lazy-load\/"},"modified":"2026-06-12T13:19:11","modified_gmt":"2026-06-12T13:19:11","slug":"viddefer","status":"publish","type":"plugin","link":"https:\/\/zh-sg.wordpress.org\/plugins\/viddefer\/","author":16624783,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"VidDefer \u2013 Deferred Video Embeds","header_author":"Kushang Tailor","header_description":"Automatically lazy loads YouTube, Vimeo, and self-hosted videos to boost page speed and Core Web Vitals.","assets_banners_color":"","last_updated":"2026-06-12 13:19:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/dev.to\/kushang_tailor","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"kushang78","date":"2026-06-12 13:19:11"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3571239,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3571238,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3570137,"resolution":"1","location":"assets","locale":"","width":1279,"height":1462},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3570137,"resolution":"2","location":"assets","locale":"","width":2720,"height":1680},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3570137,"resolution":"3","location":"assets","locale":"","width":2720,"height":1840},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3570137,"resolution":"4","location":"assets","locale":"","width":2720,"height":1840}},"screenshots":{"1":"Video configuration and settings","2":"Youtube embed vs VidDefer","3":"Self-hosted embed vs VidDefer","4":"Vimeo embed vs VidDefer"}},"plugin_section":[],"plugin_tags":[68433,4884,247,1609,1610],"plugin_category":[54,56],"plugin_contributors":[179206],"plugin_business_model":[],"class_list":["post-322917","plugin","type-plugin","status-publish","hentry","plugin_tags-deferred","plugin_tags-lazy-load","plugin_tags-performance","plugin_tags-vimeo","plugin_tags-youtube","plugin_category-security-and-spam-protection","plugin_category-social-and-sharing","plugin_contributors-kushang78","plugin_committers-kushang78"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/viddefer\/assets\/icon-128x128.png?rev=3571239","icon_2x":"https:\/\/ps.w.org\/viddefer\/assets\/icon-256x256.png?rev=3571238","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/viddefer\/assets\/screenshot-1.png?rev=3570137","caption":"Video configuration and settings"},{"src":"https:\/\/ps.w.org\/viddefer\/assets\/screenshot-2.png?rev=3570137","caption":"Youtube embed vs VidDefer"},{"src":"https:\/\/ps.w.org\/viddefer\/assets\/screenshot-3.png?rev=3570137","caption":"Self-hosted embed vs VidDefer"},{"src":"https:\/\/ps.w.org\/viddefer\/assets\/screenshot-4.png?rev=3570137","caption":"Vimeo embed vs VidDefer"}],"raw_content":"<!--section=description-->\n<p><strong>VidDefer \u2013 Deferred Video Embeds<\/strong> replaces heavy video embeds with lightweight thumbnail placeholders. The real video only loads when a visitor clicks (or scrolls to) it \u2014 saving hundreds of kilobytes per page load.<\/p>\n\n<h4>Supported Sources<\/h4>\n\n<ul>\n<li><strong>YouTube<\/strong> \u2014 replaces iframes with thumbnail + play button<\/li>\n<li><strong>Vimeo<\/strong> \u2014 replaces iframes with thumbnail + play button<\/li>\n<li><strong>Self-hosted videos<\/strong> \u2014 replaces <code>&lt;video&gt;<\/code> elements (MP4, WebM, OGV)<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Zero configuration \u2014 install, activate, done<\/li>\n<li>Click-to-load or scroll-triggered loading<\/li>\n<li>YouTube thumbnail quality control (SD \/ HQ \/ Max)<\/li>\n<li>3 play button styles: YouTube-style, Circle, Minimal<\/li>\n<li>Custom play button &amp; overlay colours<\/li>\n<li>GDPR \/ privacy notice overlay<\/li>\n<li>Exclude specific pages by ID or videos by CSS class<\/li>\n<li>No jQuery \u2014 pure ES6, &lt; 2KB gzipped<\/li>\n<li>Works with Gutenberg, Elementor, Divi, WPBakery<\/li>\n<li>WCAG 2.1 keyboard-accessible placeholders<\/li>\n<li>Caches Vimeo thumbnails via WordPress transients<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to external video services to display lazy-loaded video thumbnails and metadata.<\/p>\n\n<h4>YouTube<\/h4>\n\n<p>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.<\/p>\n\n<p>This service is provided by YouTube LLC. Terms of Service: https:\/\/www.youtube.com\/t\/terms Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>Vimeo<\/h4>\n\n<p>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\u2019s 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.<\/p>\n\n<p>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.<\/p>\n\n<p>This service is provided by Vimeo.com, Inc. Terms of Service: https:\/\/vimeo.com\/terms Privacy Policy: https:\/\/vimeo.com\/privacy<\/p>\n\n<!--section=installation-->\n<h4>Method 1: Direct Installation (Recommended)<\/h4>\n\n<ol>\n<li>Log into your WordPress admin panel<\/li>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Search for \"VidDefer \u2013 Deferred Video Embeds\"<\/li>\n<li>Click <strong>Install Now<\/strong><\/li>\n<li>Click <strong>Activate<\/strong><\/li>\n<li>Visit <strong>Settings \u2192 VidDefer<\/strong> page directly to configure your video settings.<\/li>\n<\/ol>\n\n<p>Installation takes less than 1 minute.<\/p>\n\n<h4>Method 2: Manual Installation (FTP)<\/h4>\n\n<ol>\n<li>Download the plugin from WordPress.org<\/li>\n<li>Unzip the downloaded file<\/li>\n<li>Upload the <code>viddefer<\/code> folder to <code>\/wp-content\/plugins\/<\/code> via FTP<\/li>\n<li>Log into WordPress and go to <strong>Plugins<\/strong><\/li>\n<li>Find \"VidDefer \u2013 Deferred Video Embeds\" in the list<\/li>\n<li>Click <strong>Activate<\/strong><\/li>\n<li>Configure via <strong>Settings \u2192 VidDefer<\/strong> page<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20it%20work%20with%20my%20page%20builder%3F\"><h3>Will it work with my page builder?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses PHP output buffering to intercept all video iframes and <code>&lt;video&gt;<\/code> tags regardless of how they were added to the page.<\/p><\/dd>\n<dt id=\"does%20it%20support%20youtube%20shorts%3F\"><h3>Does it support YouTube Shorts?<\/h3><\/dt>\n<dd><p>Yes, YouTube Shorts use the same embed format and are handled automatically.<\/p><\/dd>\n<dt id=\"will%20it%20break%20my%20video%20popups%20%2F%20lightboxes%3F\"><h3>Will it break my video popups \/ lightboxes?<\/h3><\/dt>\n<dd><p>Add the class <code>no-lazy<\/code> (configurable under Settings \u2192 VidDefer Exclusions) to any iframe, video element, or wrapping figure tag you want to skip.<\/p><\/dd>\n<dt id=\"does%20it%20require%20an%20api%20key%3F\"><h3>Does it require an API key?<\/h3><\/dt>\n<dd><p>No. YouTube thumbnails use the public <code>img.youtube.com<\/code> CDN. Vimeo thumbnails use the public oEmbed endpoint.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<p>Released June 12 - 2026<\/p>\n\n<ul>\n<li>Initial release<\/li>\n<li>YouTube, Vimeo, self-hosted lazy load<\/li>\n<li>Click and scroll triggers<\/li>\n<li>Admin settings page<\/li>\n<li>GDPR notice support<\/li>\n<\/ul>","raw_excerpt":"Automatically lazy load YouTube, Vimeo, and self-hosted videos to dramatically boost page speed and Core Web Vitals.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/322917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=322917"}],"author":[{"embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kushang78"}],"wp:attachment":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=322917"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=322917"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=322917"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=322917"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=322917"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=322917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}