{"id":52140,"date":"2016-07-21T17:51:07","date_gmt":"2016-07-21T17:51:07","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/lazy-load-for-comments\/"},"modified":"2026-05-25T12:09:22","modified_gmt":"2026-05-25T12:09:22","slug":"lazy-load-for-comments","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/lazy-load-for-comments\/","author":13607416,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Lazy Load for Comments","header_author":"Joel James","header_description":"","assets_banners_color":"333333","last_updated":"2026-05-25 12:09:22","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/JoelCJ","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/lazy-load-for-comments","header_author_uri":"https:\/\/duckdev.com\/","rating":4.7,"author_block_rating":0,"active_installs":2000,"downloads":203359,"num_ratings":28,"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":"joelcj91","date":"2016-11-17 17:24:30"},"1.0.0.1":{"tag":"1.0.0.1","author":"joelcj91","date":"2017-06-26 06:59:10"},"1.0.10":{"tag":"1.0.10","author":"joelcj91","date":"2025-12-09 13:32:21"},"1.0.2":{"tag":"1.0.2","author":"joelcj91","date":"2017-02-08 06:22:10"},"1.0.3":{"tag":"1.0.3","author":"joelcj91","date":"2018-12-10 05:55:04"},"1.0.4":{"tag":"1.0.4","author":"joelcj91","date":"2018-12-22 10:38:39"},"1.0.5":{"tag":"1.0.5","author":"joelcj91","date":"2019-01-19 10:45:05"},"1.0.6":{"tag":"1.0.6","author":"joelcj91","date":"2019-01-27 11:58:07"},"1.0.7":{"tag":"1.0.7","author":"joelcj91","date":"2019-03-14 06:35:21"},"1.0.8":{"tag":"1.0.8","author":"joelcj91","date":"2019-03-14 07:59:16"},"1.0.9":{"tag":"1.0.9","author":"joelcj91","date":"2019-06-22 04:00:27"},"2.0.0":{"tag":"2.0.0","author":"joelcj91","date":"2026-05-25 12:09:22"}},"upgrade_notice":{"2.0.0":"<p>Major rewrite with React, REST API and block theme support. Your existing load-method setting is migrated automatically \u2014 no manual steps required.<\/p>"},"ratings":{"1":0,"2":2,"3":1,"4":1,"5":24},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3548143,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3548147,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3548143,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3547560,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3547560,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3547560,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.0.1","1.0.10","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3547560,"resolution":"1","location":"assets","locale":"","width":767,"height":461},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3547560,"resolution":"2","location":"assets","locale":"","width":799,"height":448},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3547560,"resolution":"3","location":"assets","locale":"","width":767,"height":303}},"screenshots":{"1":"Loading behaviour settings.","2":"Load button settings.","3":"Cache management."}},"plugin_section":[],"plugin_tags":[107,4884,126293,5896,247],"plugin_category":[44,54],"plugin_contributors":[126295,78159],"plugin_business_model":[],"class_list":["post-52140","plugin","type-plugin","status-publish","hentry","plugin_tags-comments","plugin_tags-lazy-load","plugin_tags-lazyload-comments","plugin_tags-page-speed","plugin_tags-performance","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-duckdev","plugin_contributors-joelcj91","plugin_committers-joelcj91"],"banners":{"banner":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/banner-772x250.png?rev=3547560","banner_2x":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/banner-1544x500.png?rev=3547560","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/icon.svg?rev=3548143","icon":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/icon.svg?rev=3548143","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/screenshot-1.png?rev=3547560","caption":"Loading behaviour settings."},{"src":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/screenshot-2.png?rev=3547560","caption":"Load button settings."},{"src":"https:\/\/ps.w.org\/lazy-load-for-comments\/assets\/screenshot-3.png?rev=3547560","caption":"Cache management."}],"raw_content":"<!--section=description-->\n<p>Comments are heavy. A long thread can pull in dozens of avatars, gravatar lookups and reply scripts \u2014 all of which the browser downloads before the visitor has even reached them. <strong>Lazy Load for Comments<\/strong> defers all of that until the visitor either scrolls to the comments area or clicks a button.<\/p>\n\n<p>The result: fewer HTTP requests, faster Largest Contentful Paint and a happier Lighthouse score, without changing how your comment template looks.<\/p>\n\n<p>Version 2.0 is a complete rewrite. It uses the WordPress REST API to fetch the rendered comments on demand and works with both <strong>classic themes<\/strong> (<code>comments_template()<\/code>) and <strong>block themes<\/strong> (the core Comments block) out of the box.<\/p>\n\n<blockquote>\n  <h4>Features<\/h4>\n  \n  <ul>\n  <li>Lazy-load comments on scroll, on button click, or turn the plugin off without deactivating it.<\/li>\n  <li>Works with classic themes and block themes (the core Comments block).<\/li>\n  <li>Loads comments inline for search engine crawlers, so indexing and SEO are not affected.<\/li>\n  <li>Per-post cache of the rendered Comments block \u2014 REST renders stay fast.<\/li>\n  <li>Minimum-comment-count threshold so short threads still render inline.<\/li>\n  <li>Customisable load-button text, style and extra CSS classes.<\/li>\n  <li>Clean React settings page under <em>Comments \u2192 Lazy Load<\/em>.<\/li>\n  <li>No jQuery dependency. Front-end script is vanilla JS and intentionally small.<\/li>\n  <li>Translation-ready. Hooks and filters available for further customisation.<\/li>\n  <\/ul>\n<\/blockquote>\n\n<p><strong>Useful links<\/strong><\/p>\n\n<ul>\n<li><a href=\"https:\/\/duckdev.com\/product\/lazy-load-for-comments\/\">Plugin website<\/a><\/li>\n<li><a href=\"https:\/\/docs.duckdev.com\/lazy-load-for-comments\/\">Documentation<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/support\/plugin\/lazy-load-for-comments\/\">Support forum<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<p><strong>From the WordPress admin (recommended)<\/strong><\/p>\n\n<ol>\n<li>Go to <em>Plugins \u2192 Add New<\/em>, search for <strong>Lazy Load for Comments<\/strong> and click <em>Install now<\/em>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open <em>Comments \u2192 Lazy Load<\/em> and pick the load method that suits you.<\/li>\n<\/ol>\n\n<p><strong>Manual install<\/strong><\/p>\n\n<ol>\n<li>Upload the <code>lazy-load-for-comments<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from the <em>Plugins<\/em> screen.<\/li>\n<li>Open <em>Comments \u2192 Lazy Load<\/em> to configure the settings.<\/li>\n<\/ol>\n\n<p>For the full configuration guide, see the <a href=\"https:\/\/docs.duckdev.com\/lazy-load-for-comments\/loading-behaviour\">official documentation<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20block%20themes%3F\"><h3>Does it work with block themes?<\/h3><\/dt>\n<dd><p>Yes. The plugin detects whether the active theme is a block theme and either swaps the classic <code>comments_template()<\/code> output or replaces the rendered <code>core\/comments<\/code> block, whichever applies.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20caching%20plugin%3F\"><h3>Will it work with my caching plugin?<\/h3><\/dt>\n<dd><p>Yes. The placeholder rendered server-side is plain HTML, so full-page caches can cache it safely. The actual comments are fetched from a public REST endpoint, which is also cache-friendly.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20the%20load%20method%3F\"><h3>How do I change the load method?<\/h3><\/dt>\n<dd><p>Open <em>Comments \u2192 Lazy Load<\/em> and pick one of <strong>On scroll<\/strong>, <strong>On button click<\/strong> or <strong>Disabled<\/strong> on the <em>Settings<\/em> tab.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customise%20the%20load%20button%3F\"><h3>How do I customise the load button?<\/h3><\/dt>\n<dd><p>The button text, the style (inherit your theme's style or use the plugin's built-in style) and extra CSS classes can all be set under <em>Load Button<\/em> on the <em>Settings<\/em> tab.<\/p><\/dd>\n<dt id=\"does%20it%20support%20comment%20plugins%20like%20disqus%20or%20jetpack%20comments%3F\"><h3>Does it support comment plugins like Disqus or Jetpack Comments?<\/h3><\/dt>\n<dd><p>No \u2014 this plugin only handles the <strong>default<\/strong> WordPress comments. Third-party comment systems (Disqus, Jetpack Comments, etc.) replace the comment area entirely, so there is nothing for this plugin to lazy-load.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disable%20lazy%20loading%20for%20a%20specific%20post%20or%20page%3F\"><h3>How do I disable lazy loading for a specific post or page?<\/h3><\/dt>\n<dd><p>Use the <code>lazy_load_for_comments_can_lazy_load<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'lazy_load_for_comments_can_lazy_load', function ( $can ) {\n    if ( is_page( 'contact' ) ) {\n        return false;\n    }\n    return $can;\n} );\n<\/code><\/pre><\/dd>\n<dt id=\"are%20comments%20still%20indexed%20by%20google%3F\"><h3>Are comments still indexed by Google?<\/h3><\/dt>\n<dd><p>Yes. By default the plugin detects search-engine crawlers from the User-Agent and serves them the original (inline) comments markup, so indexing is not affected. You can turn this behaviour off on the <em>Settings<\/em> tab if you'd rather always lazy-load.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>The <a href=\"https:\/\/docs.duckdev.com\/lazy-load-for-comments\/\">official documentation<\/a> covers most setups. For everything else, the free <a href=\"https:\/\/wordpress.org\/support\/plugin\/lazy-load-for-comments\/\">WordPress.org support forum<\/a> is the best place to start.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite using React and the WordPress REST API.<\/li>\n<li>Added support for block themes (the core Comments block).<\/li>\n<li>New React settings page under <em>Comments \u2192 Lazy Load<\/em>.<\/li>\n<li>Settings for load method, minimum comment count, button text, button style and loader visibility.<\/li>\n<li>Per-post cache of the rendered comments block, with a \"Clear comments cache\" action in the settings.<\/li>\n<li>Crawlers receive the inline comments by default so SEO is preserved.<\/li>\n<li>Removed the dependency on jQuery.<\/li>\n<li>Existing v1.x load-method setting is migrated automatically on upgrade.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added compatibility for the Divi theme builder.<\/li>\n<\/ul>","raw_excerpt":"Speed up your posts by lazy-loading the WordPress comments on scroll or click. Works with classic and block themes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/52140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=52140"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/joelcj91"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=52140"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=52140"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=52140"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=52140"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=52140"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=52140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}