Ajax Load More – Infinite Scroll, Load More, & Lazy Load
Ajax Load More is the most powerful infinite scroll, lazy load, and load more plugin for WordPress. Use it to automatically load posts, pages, custom post types, comments, and WooCommerce products without refreshing the page. Build custom WordPress queries visually with the Ajax Load More Query/Shortcode Builder, then embed them anywhere using blocks, shortcodes, or template tags. Ajax Load More is developer-friendly, performance-optimized, and compatible with popular plugins like WooCommerce, Advanced Custom Fields, and Elementor. → Get More Information Features Query/Shortcode Builder – Create a custom Ajax Load More query in seconds by adjusting various WordPress query parameters included with the inuitive shortcode builder. Query Parameters – Query WordPress by many different content types. Query by Post Type, Category, Tags, Custom Taxonomies, Search Term, Date Query, Authors and more! Ajax Filtering – The Ajax Load More custom filtering method will allow you to filter and update your Ajax query results. Templates – Edit and extend the functionality of Ajax Load More by creating your own template to match the look and feel of your website. Multiple Instances – Include multiple instances of Ajax Load More on a single page, post or template. Multisite Compatibility – Manage Repeater Templates across all sites in your network. Setting Panel – Customize Ajax Load More by configuring the various plugin settings. Check out the website for more information on the features and functionality of Ajax Load More. Why Ajax Load More is the Best Infinite Scroll Plugin for WordPress Ajax Load More differs from the other WordPress infinite scroll plugins because with ALM, you create the query for displaying the data. This gives you full control over the content you are loading and displaying to your users. What’s New Data Prefetching – Load the next set of posts into memory before the user interacts with the Load More button or infinite scroll. This improves the precieved performance of Ajax Load More by reducing wait times for users. Filters Add-on – The Filters add-on provides front-end and admin functionality for building and managing Ajax based filters and facets. Query Loop – Enable infinite scroll or load more functionality for the WordPress Query Loop block. Pro Bundle – Access to all premium Ajax Load More add-ons in a single installation. Next Page Add-on – Infinite scroll multi-page WordPress content with Ajax Load More. Advanced Custom Fields – Compatibility and integration added for infinite scrolling Flexible Content, Gallery, Relationship and Repeater fields for Advanced Custom Fields. Progress Bars – Display a Progress Bar load indicator with each Ajax request. Scroll Container – Constraining infinite scroll to a parent container. Content Types Ajax Load More can infinite scroll almost any content type WordPress offers – from blog posts to multipage content to WooCommerce products – Ajax Load More can handle it all. Check out the examples below: Standard Posts Custom Post Types Pages Multipage Posts & Pages Single Posts Comments Advanced Custom Fields Parameters Ajax Load More accepts a variety of WordPress query and display parameters that are passed to WordPress via shortcode or PHP function/Template Tag. These parameters allow you to customize the content of the infinite scroll experience by selecting query parameters such as Post Types, Taxonomies, Categories, Tags, Dates, etc… you can also control interactive properties such as button labels, scrolling options and transition styles. → View Parameters Query/Shortcode Builder The Ajax Load More Query/Shortcode Builder provides an intuitive and easy-to-use admin interface that transforms complex WordPress queries into manageable shortcodes. → View Shortcode Builder Example Ajax Load More Shortcode [ajax_load_more post_type="post, portfolio" posts_per_page="6" button_label="Load More"] Examples & Demos Default – Out of the box functionality and styling. Advanced Custom Fields – Infinite scroll Advanced Custom Fields data with Ajax Load More. Attachments – Endless scroll post attachments. CSS Grid – Rendering Ajax Load More listings with CSS GridRe. Destroy After – Remove Ajax Load More functionality after ‘n’ number of pages. Event Listing – Ordering and listing events by custom field date. Filtering – Reset and filter an Ajax Load More instance. Facet Filtering – Implement a faceted search and filter experience for Ajax Load More Infinite Scroll – A look at the new loading functionality and styles. Images Loaded – Download images before displaying ajax loaded content. Masonry – Creating a flexible grid layout with Masonry JS. Multiple Instances – Include multiple Ajax Load More’ on a single page. Paging URLs – Generate unique paging URLs for every Ajax Load More query with the SEO add-on. Pause Loading – Posts will not load until initiated by the user. Preloaded Posts – Easily preload an initial set of posts before completing any Ajax requests to the server. Progress Bar – Display a progress bar load indicator with each Ajax request. Search Results – Returning results based on search terms. Scroll Container – Constrain Ajax Load More to a parent container. SEO & Paging – Combine these two add-ons to create one powerful navigation system. Slideshow Gallery – Create a gallery of posts with Ajax Load More and the Paging add-on. Table Layout – Ajax Load More will display query results in a table format. → See All Examples Note: The Templates Add-On has been installed for use on each of our product demos. Who Uses Ajax Load More? Ajax Load More is perfect for developers, bloggers, and store owners who want to: Improve user experience by reducing page load times. Increase page views and ad revenue by keeping users on the page longer. Create a modern, seamless browsing experience. Simplify navigation on content-heavy sites. Enhance the look and feel of their website with custom templates and layouts. Easily integrate infinite scroll into any WordPress theme or plugin. Add-ons The following add-ons are available to etend and enhance the functionality of Ajax Load More. Cache: Improve website performance by caching the results of Ajax server requests. Call to Actions: Extend Ajax Load More with advertisement and call to action content blocks. Comments: Load and display WordPress blog comments using the core Ajax Load More infinite scroll functionality. Elementor: Add infinite scroll or load more to your Elementor Posts and WooCommerce listing widgets with Ajax Load More and the intuitive Elementor Widget Connector. Filters: Front-end and admin functionality for creating, managing and displaying Ajax Load More filters. Layouts: Predefined responsive layouts for Ajax Load More repeater templates. Next Page: Infinite scroll multipage WordPress content with Ajax Load More and the Next Page add-on. Paging: Replace the default lazy load/infinite scroll functionality of Ajax Load More with a numbered navigation system. Preloaded: Load an initial set of posts before sending any Ajax requests to your server. Query Loop: Infinite scroll the core WordPress Query Loop block SEO: Generate unique paging URLs with each Ajax Load More query. Single Post: Enable infinite scrolling of single posts on your WordPress post templates. Templates: Create and manage Repeater Templates on demand, as well as load templates directly from your theme directory. WooCommerce: Infinite scroll WooCommerce products with Ajax Load More. Ajax Load More Pro The Ajax Load Pro bundle that provides access to all current and future Ajax Load More add-ons in a single installation! Save over 60% when you purchase the Pro bundle. → Update to Pro Extensions The following FREE extensions are available to provide compatibility with popular WordPress plugins and core features. Advanced Custom Fields: Display field type data with Ajax Load More. Relevanssi: Display Relevanssi search results with Ajax Load More. REST API: Enable compatibility with the WordPress REST API. SearchWP: Display SearchWP query results with Ajax Load More. Term Query: Infinite scroll WordPress Terms. Users: Lazy loading WordPress Users with Ajax Load More. Callback Functions Ajax Load More dispatches callbacks during various stages in the plugins lifecycle. Callback functions are dispatched directly from core Ajax Load More or one of the various add-ons. → View All Callback Functions Filter Hooks Ajax Load More has a variety of WordPress filters in place that enable users to hook into Ajax Load More to insert or modify data. → See All Filters Variables Ajax Load More passes the following PHP variables to each repeater template – these template variables can help you style and transform your repeater templates. $alm_current – Returns the current item number in the current Ajax Load More loop and will reset to zero with every ‘Load More’ action. $alm_page – Returns the current page number. $alm_item – Returns the current item number within your loop. $alm_found_posts – Returns the total number of posts found within the entire WordPress query. Plugin Links Official Website Documentation Premium Add-ons Free Extensions Github Please Review Ajax Load More! Your reviews make a big difference! Please consider taking the time to review my plugin. Your ratings and reviews help the plugin grow and provide the motivation needed to keep pushing it forward. → Leave a Review
Top keywords
- load73×5.06%
- ajax65×4.51%
- ajax load56×3.88%
- query24×1.66%
- wordpress23×1.60%
- scroll22×1.53%
- infinite21×1.46%
- infinite scroll19×1.32%
- posts16×1.11%
- custom15×1.04%
- page12×0.83%
- content11×0.76%
Smart LazyLoad – Lazy Load Images, Videos and Iframes
Smart LazyLoad is a free, simple, and lightweight lazy loading plugin. Lazy load WordPress images, videos, and iframes to improve page speed, website performance, and Core Web Vitals scores. Most lazy load plugins stop at optimize images. Smart LazyLoad also defers responsive sources, inline background images, avatars, smilies, HTML5 , and iframes such as YouTube and Vimeo. This plugin also includes support for avatars, emojis, native video, native browser lazy loading, and thumbnail placeholders, as well as the ability to convert YouTube videos. There is nothing to configure to get started — images are lazy loaded the moment you activate it. 🚀 You get two layers of control: A Master Switch for the whole site. A per-post override, so a single post or page can behave differently from everything else. The rest lives on one settings screen: choose what to lazy load, tune performance, decide how placeholders look, and exclude anything that shouldn’t be touched. 📦 What gets lazy loaded? Images — post and page content, featured images, widget images, and comments. Switch on Full-Page Lazy Loading and it also covers markup hardcoded in your theme’s templates. Responsive sources — every inside a is deferred together with its fallback . The browser still picks the format and crop it wants; only the timing changes. Avatars — Gravatars and author photos, which usually sit far below the fold in long comment threads. Smilies — text smilies (e.g. :mrgreen:) that WordPress renders as image files. Smilies rendered as Unicode emoji are left untouched. Background images — an inline style="background-image" built from a single url(), or a manual data-bg attribute. Gradients, image-set(), and multi-layer backgrounds are deliberately left untouched. Iframes — any embedded iframe, including YouTube and Vimeo players. YouTube click-to-play thumbnails — an optional mode that swaps the YouTube iframe for a light, clickable thumbnail until someone actually wants to watch. Thumbnails are served as WebP, with an automatic fallback. Native — HTML5 tags, their children, and poster images. 🎛️ Two layers of on/off control A Master Switch turns the whole plugin on or off for the site Switch it off and every other setting is dimmed, so nothing gets changed by mistake. Nothing is cleared either — turn it back on and your configuration is exactly as you left it A Lazy Load dropdown in the post editor sidebar — Default, Enable, or Disable — lets one post override the site-wide setting, leaving every other post alone ⚡ Performance tuning Skips the first image on the page, and any image WordPress marks as your largest above-the-fold image, to protect your Largest Contentful Paint (LCP) Excluded elements also lose WordPress’s own loading="lazy", so they really do load straight away Adjustable distance-from-viewport threshold, so loading starts as early or as late as you like Use the plugin’s IntersectionObserver engine, or hand the job to the browser’s native loading="lazy" Scan the whole page, or only post content, widgets, and comments — full coverage or the lightest possible footprint Always loads its script in the footer, with an optional defer on top, so it never blocks rendering Can be turned off for logged-in users, so you always see full-quality content while editing 🎨 Appearance while content loads Low-quality image placeholder (LQIP): a tiny blurred preview of the real image instead of a blank box Previews are built in the background and cached, so no visitor ever waits for one Pick which registered image size the preview is built from Adjustable fade-in for the moment content arrives, skipped for visitors who prefer reduced motion Every deferred image holds its exact final size from the first paint, so nothing jumps when it arrives Optional placeholder background colour, shown only until the real image is there 🧩 Compatibility and control A custom exclude field — list your own CSS classes, one per line or separated by commas. No code needed Recognises the usual exclusion markers already: no-lazyload, skip-lazy, data-no-lazyload, data-no-lazy, data-skip-lazy Stays out of the way inside page builder editors (Elementor, Avada, Divi, Beaver Builder, WPBakery, Oxygen) and on feeds, previews, and REST requests Developer filters for placeholders, threshold, exclusions, YouTube thumbnails, and the final markup WP-CLI commands to build or clear image previews across the whole media library One-click “Reset to Defaults” whenever you want to start over 🛠️ Built the right way No jQuery. The frontend script is plain JavaScript built on IntersectionObserver noscript fallbacks, so content is never lost for visitors or crawlers without JavaScript A responsive, card-based settings screen Clean uninstall: removes its own options and post meta when you delete the plugin, and nothing else Configuration Site-wide settings: Settings → LazyLoad The settings screen is organized into five cards: Master Switch — the single toggle that turns Smart LazyLoad on or off for the entire site. When it’s off, every card below it is dimmed and cannot be edited, but nothing about your saved configuration changes. What to Lazy Load — a separate toggle for each type: Images, Responsive Sources, Background Images, Avatars, Smilies, Iframes, YouTube Thumbnail Replacement, and Native Videos. Performance — Skip First Image (for LCP), Threshold Distance, Use Native Browser Lazy Loading, Defer LazyLoad JavaScript, and Disable for Logged-in Users. Appearance — Low-Quality Image Placeholder and its source size, an optional Placeholder Background Colour, and the Fade-in Duration. Advanced — Full-Page Lazy Loading, and a Custom Exclude Selectors box where you list CSS classes to skip — one per line, or separated by commas. A Reset to Defaults button at the bottom restores every option to its original value in one click. Per-post override Open any post, page, or public custom post type in the block editor and look for the Smart LazyLoad panel in the sidebar. Its Lazy Load dropdown has three choices: Default (On) or Default (Off) — label reflects the current Master Switch state; this post simply follows the site-wide setting Enable — lazy loading is always on for this post, even if the Master Switch is off Disable — lazy loading is always off for this post, even if the Master Switch is on The choice is saved as post meta and applies only to that single post — nothing else on the site is affected. Developer filters Every filter is prefixed smart_lazyload_. smart_lazyload_enabled — return `false` to disable lazy loading for the current request. smart_lazyload_svg_placeholder — replace the default inline SVG placeholder used for images. smart_lazyload_placeholder — replace the placeholder value used for deferred iframes (default: `about:blank`). smart_lazyload_excluded_attributes — extend the list of strings that exclude an image, video, or background-image tag from lazy loading. smart_lazyload_iframe_excluded_patterns — extend the list of strings that exclude an iframe tag from lazy loading. smart_lazyload_excluded_src — extend the list of substrings checked against an image or background-image URL itself (not just its surrounding tag) to exclude it from lazy loading; useful for dynamic image generators or known placeholder assets. smart_lazyload_threshold — override the distance-from-viewport threshold, in pixels. smart_lazyload_youtube_resolution — choose the YouTube thumbnail resolution: `default`, `mqdefault`, `hqdefault` (the default), `sddefault`, or `maxresdefault`. smart_lazyload_exclude_youtube_thumbnail — return an array of strings; any YouTube iframe whose markup contains one of them keeps a real iframe instead of the click-to-play player. smart_lazyload_html — filter the processed markup after every lazy-load pass has run. The former do_smart_lazyload and smll_threshold names still work, so existing snippets keep running.