{"id":383087,"date":"2026-10-10T13:28:19","date_gmt":"2026-10-10T13:28:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lndle-speed\/"},"modified":"2026-10-12T12:31:51","modified_gmt":"2026-10-12T12:31:51","slug":"lndle-speed","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/lndle-speed\/","author":23581491,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.10.5","stable_tag":"0.10.5","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"LNDLE Speed \u2013 Page Cache, WebP, Lazy Load & Performance","header_author":"LNDLE Media GmbH","header_description":"Page cache, preload, lazy load, CSS minification and cleanup tools. Optimized for Elementor.","assets_banners_color":"434954","last_updated":"2026-10-12 12:31:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/lndle.media","rating":5,"author_block_rating":0,"active_installs":0,"downloads":139,"num_ratings":1,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.10.0":{"tag":"0.10.0","author":"lndle","date":"2026-10-12 07:05:16","revision":3740668},"0.10.5":{"tag":"0.10.5","author":"lndle","date":"2026-10-12 12:31:51","revision":3741505},"0.9.0":{"tag":"0.9.0","author":"lndle","date":"2026-10-10 13:27:53","revision":3738090},"0.9.1":{"tag":"0.9.1","author":"lndle","date":"2026-10-10 14:35:59","revision":3738161},"0.9.2":{"tag":"0.9.2","author":"lndle","date":"2026-10-11 16:09:14","revision":3739756},"0.9.3":{"tag":"0.9.3","author":"lndle","date":"2026-10-12 05:40:05","revision":3740547}},"upgrade_notice":{"0.10.0":"<p>Google Fonts can now be served from your own server \u2013 switch it on under &quot;Files&quot;.<\/p>","0.9.3":"<p>Important fix: in 0.9.1 and 0.9.2 no WebP files were created. After updating, start the run under &quot;Media&quot; once.<\/p>","0.9.2":"<p>Only the directory listing and the FAQ have changed; the plugin itself is unchanged.<\/p>","0.9.1":"<p>Adds WebP creation and delivery, Defer JavaScript, CSS combining and asynchronous CSS, font and hero image preload, a YouTube facade and the scheduled database cleanup.<\/p>","0.9.0":"<p>First public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3738160,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3738160,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3738160,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3738160,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.10.0","0.10.5","0.9.0","0.9.1","0.9.2","0.9.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3738160,"resolution":"1","location":"assets","locale":"","width":1260,"height":928},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3738160,"resolution":"2","location":"assets","locale":"","width":1260,"height":1808},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3738160,"resolution":"3","location":"assets","locale":"","width":1260,"height":771},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3738160,"resolution":"4","location":"assets","locale":"","width":1260,"height":2191},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3738160,"resolution":"5","location":"assets","locale":"","width":1260,"height":1234}},"screenshots":{"1":"Dashboard with the system status","2":"Setup wizard with the recommendations for this server","3":"Cache settings","4":"Media: lazy load, WebP creation and delivery","5":"JavaScript and CSS settings"}},"plugin_section":[],"plugin_tags":[146,76538,3778,3853,15376],"plugin_category":[52,54],"plugin_contributors":[285531],"plugin_business_model":[],"class_list":["post-383087","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-elementor","plugin_tags-google-fonts","plugin_tags-page-cache","plugin_tags-webp","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-lndle","plugin_committers-lndle"],"banners":{"banner":"https:\/\/ps.w.org\/lndle-speed\/assets\/banner-772x250.png?rev=3738160","banner_2x":"https:\/\/ps.w.org\/lndle-speed\/assets\/banner-1544x500.png?rev=3738160","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lndle-speed\/assets\/icon-128x128.png?rev=3738160","icon_2x":"https:\/\/ps.w.org\/lndle-speed\/assets\/icon-256x256.png?rev=3738160","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lndle-speed\/assets\/screenshot-1.png?rev=3738160","caption":"Dashboard mit dem Systemstatus"},{"src":"https:\/\/ps.w.org\/lndle-speed\/assets\/screenshot-2.png?rev=3738160","caption":"Einrichtungsassistent mit den Empfehlungen f\u00fcr diesen Server"},{"src":"https:\/\/ps.w.org\/lndle-speed\/assets\/screenshot-3.png?rev=3738160","caption":"Cache-Einstellungen"},{"src":"https:\/\/ps.w.org\/lndle-speed\/assets\/screenshot-4.png?rev=3738160","caption":"Medien: Lazy Load, WebP erzeugen und ausliefern"},{"src":"https:\/\/ps.w.org\/lndle-speed\/assets\/screenshot-5.png?rev=3738160","caption":"JavaScript- und CSS-Einstellungen"}],"raw_content":"<!--section=description-->\n<p>LNDLE Speed is a caching and front-end optimization plugin for WordPress sites running on Apache-compatible servers. It stores finished HTML pages as static files, serves them through <code>.htaccess<\/code> rewrite rules, optimizes the HTML while a page is cached, creates WebP versions of your images and serves Google Fonts from your own server.<\/p>\n\n<p>After activation, a setup wizard inspects the site and proposes settings. You decide which of them are applied, and every setting can be changed later.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Page cache<\/strong> \u2013 Pages are saved as static HTML files in <code>wp-content\/cache\/lndle-speed\/<\/code> and served directly by Apache or LiteSpeed. On other web servers the cache is served through PHP by the <code>advanced-cache.php<\/code> drop-in.<\/li>\n<li><strong>Automatic cache clearing<\/strong> \u2013 When a post, page, comment or term changes, the affected pages and their archives are cleared. Changes to themes, menus, widgets, plugins and Elementor templates clear the whole cache. Cached pages also expire after a configurable lifetime.<\/li>\n<li><strong>Cache preload<\/strong> \u2013 After the cache has been cleared, the plugin reads your XML sitemap and requests the pages one after another via WP-Cron, in short time-limited runs. If no sitemap is found, it uses the most recently modified published content.<\/li>\n<li><strong>Browser cache rules<\/strong> \u2013 Optional Expires and Deflate (GZIP) rules written to <code>.htaccess<\/code>.<\/li>\n<li><strong>Lazy load for images and iframes<\/strong> \u2013 Adds the native <code>loading=\"lazy\"<\/code> attribute. The first images on a page (two by default) are left out so that the logo and hero image load immediately. Exclusions by file name or class are possible.<\/li>\n<li><strong>Lazy load for video posters<\/strong> \u2013 Preview images of videos load shortly before the video scrolls into view, and the video file itself only loads on playback. Videos with autoplay are not changed.<\/li>\n<li><strong>Missing image dimensions<\/strong> \u2013 Adds <code>width<\/code> and <code>height<\/code> to local images that have neither, to avoid layout shifts.<\/li>\n<li><strong>WebP images<\/strong> \u2013 Creates a WebP version next to every JPEG and PNG upload, with the quality you choose. A background run does the same for the images already in your media library, and you can recreate all WebP files after changing the quality. The original files are never changed, and the WebP files stay in place when the plugin is removed.<\/li>\n<li><strong>WebP delivery<\/strong> \u2013 Either through <code>.htaccess<\/code> rules, which send WebP to browsers that accept it while the URLs in the HTML stay the same, or through <code>picture<\/code> elements in the HTML, which also works on servers without <code>.htaccess<\/code> and behind a CDN. The setup wizard recommends the method that suits your server.<\/li>\n<li><strong>Hero image preload<\/strong> \u2013 Finds the most important image at the top of the page and preloads it, in the format the browser will actually load.<\/li>\n<li><strong>Defer JavaScript<\/strong> \u2013 Scripts are loaded after the first paint instead of blocking it, with the execution order preserved. Scripts can be excluded by file name or keyword; the setup wizard excludes known cookie-banner scripts on its own.<\/li>\n<li><strong>CSS minification and combining<\/strong> \u2013 Minifies local stylesheets that are not minified yet and combines consecutive local stylesheets into one file. The original files are not changed.<\/li>\n<li><strong>Asynchronous CSS<\/strong> \u2013 Stylesheets you list (icon fonts, animations) are loaded without blocking the first paint.<\/li>\n<li><strong>Google Fonts from your own server<\/strong> \u2013 Fonts that a page requests from Google are downloaded once into <code>wp-content\/uploads<\/code> and served from there. Visitors no longer connect to a Google server, which is what the German and Austrian data protection authorities ask for. New fonts are picked up automatically; the download runs in the background, never while a visitor waits.<\/li>\n<li><strong>Google Fonts display swap<\/strong> \u2013 Adds <code>display=swap<\/code> to Google Fonts stylesheet URLs that are already on the page.<\/li>\n<li><strong>Font preload and preconnect hints<\/strong> \u2013 Adds <code>preload<\/code> links for the font files you enter and <code>preconnect<\/code> links for the origins you enter.<\/li>\n<li><strong>YouTube preview images<\/strong> \u2013 Embedded YouTube videos are replaced by their preview image; the player only loads after a click.<\/li>\n<li><strong>WordPress cleanup<\/strong> \u2013 Disable the emoji script and the embed script, remove the generator tag, RSD, wlwmanifest and shortlink from the head, remove Dashicons for visitors who are not logged in, remove jQuery Migrate on the front end, and reduce or disable the Heartbeat API.<\/li>\n<li><strong>Database cleanup<\/strong> \u2013 Removes revisions, auto-drafts, trashed posts, spam and trashed comments and expired transients, then optimizes the tables. On demand at the push of a button, or once a week in the background.<\/li>\n<li><strong>Setup wizard<\/strong> \u2013 Detects the web server, Cloudflare, an existing server-side page cache, other caching and optimization plugins, plugins that already lazy-load images, Elementor, WooCommerce, cookie banner plugins, directory protection and the WP-Cron configuration, and recommends settings based on what it finds.<\/li>\n<li><strong>Tools<\/strong> \u2013 Admin bar entries to clear the whole cache or the current page, and a \"View as visitor\" link that shows the optimized page while you are logged in.<\/li>\n<\/ul>\n\n<h4>What is not cached<\/h4>\n\n<p>Logged-in users, requests with query strings (common tracking parameters such as <code>utm_*<\/code>, <code>gclid<\/code> and <code>fbclid<\/code> are ignored), password-protected posts, search results, 404 pages, feeds, REST requests, and visitors with a comment-author or WooCommerce cart cookie. The WooCommerce cart, checkout and account pages are always excluded. You can exclude further paths in the settings.<\/p>\n\n<h4>Elementor<\/h4>\n\n<p>LNDLE Speed is built with Elementor sites in mind. The cache is cleared when Elementor templates are saved or when Elementor regenerates its CSS files, the Elementor preview is never cached or optimized, and the setup wizard points out when Elementor's CSS print method is set to inline output.<\/p>\n\n<h4>Requirements and limits<\/h4>\n\n<ul>\n<li>Apache or LiteSpeed with <code>.htaccess<\/code> support is recommended. On other web servers (for example Nginx) the <code>.htaccess<\/code> rules have no effect; cached pages are then served through PHP, and the browser cache rules do not apply.<\/li>\n<li>WordPress Multisite is not supported.<\/li>\n<li>There is no separate cache for mobile devices and no cache for logged-in users.<\/li>\n<li>Cache preload and cache expiry depend on WP-Cron. On a site that is served mostly from the cache, a real cron job calling <code>wp-cron.php<\/code> is recommended.<\/li>\n<\/ul>\n\n<h4>LNDLE Speed Pro<\/h4>\n\n<p>LNDLE Speed Pro is a separate plugin available at <a href=\"https:\/\/lndle.media\/plugins\/speed\/\">lndle.media\/plugins\/speed\/<\/a>. It replaces the free plugin, takes over its settings and adds:<\/p>\n\n<ul>\n<li>AVIF images, created alongside WebP and served first where the browser supports it<\/li>\n<li>Image optimization: compress and downscale JPEG and PNG files, remove metadata, keep the originals and restore them again<\/li>\n<li>Delay JavaScript until user interaction<\/li>\n<li>Elementor background images: preload the hero background per breakpoint, including slider slides, and lazy-load the ones below the fold<\/li>\n<li>Detection of the fonts actually used above the fold, in the setup wizard<\/li>\n<li>A check that measures how many bytes each delivery method really saves on your site<\/li>\n<li>Detection of Cloudflare Rocket Loader<\/li>\n<li>Automatic updates and support<\/li>\n<\/ul>\n\n<p>The Pro features are not contained in this plugin: the code for them is only part of the separate Pro plugin. Everything in the feature list above works without Pro, and your settings are kept if you switch.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress dashboard, go to Plugins \u2192 Add New, search for \"LNDLE Speed\", then install and activate it. Alternatively, upload the <code>lndle-speed<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate the plugin on the Plugins screen.<\/li>\n<li>After the first activation you are taken to the setup wizard at Settings \u2192 LNDLE Speed. It lists what was detected on your site and the recommended settings.<\/li>\n<li>Switch the recommendations you want on or off and click \"Apply recommendations\".<\/li>\n<li>Open your site in a private browser window and check that pages look and work as before. The response header <code>X-LNDLE-Speed: HIT<\/code> shows that a page was served from the cache.<\/li>\n<\/ol>\n\n<p>If another caching plugin is active, deactivate it first. Two page caches interfere with each other.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. The cache is cleared when you save Elementor templates or when Elementor regenerates its CSS files, and the Elementor preview is never cached or optimized. If Elementor prints its CSS inline, the setup wizard suggests switching the CSS print method to \"External File\", which works better with a page cache.<\/p><\/dd>\n<dt id=\"what%20does%20the%20plugin%20write%20to%20my%20server%3F\"><h3>What does the plugin write to my server?<\/h3><\/dt>\n<dd><p>On activation and whenever you save the settings, LNDLE Speed writes the following:<\/p>\n\n<ul>\n<li><code>wp-content\/advanced-cache.php<\/code> \u2013 the WordPress drop-in that loads the cache engine before WordPress itself. If a drop-in from another caching plugin already exists and that plugin is still active, the file is not replaced; you get a notice and can replace it manually. The previous drop-in is then kept in the database and written back when LNDLE Speed is deactivated.<\/li>\n<li><code>wp-content\/cache\/lndle-speed\/config.php<\/code> \u2013 a generated configuration file for the cache engine, in the plugin's own cache directory. That directory denies direct access to PHP files.<\/li>\n<li><code>define( 'WP_CACHE', true ); \/\/ LNDLE Speed<\/code> in <code>wp-config.php<\/code>. If <code>WP_CACHE<\/code> is already set to <code>true<\/code>, the file is left unchanged. An existing <code>WP_CACHE<\/code> line with another value is replaced.<\/li>\n<li>A block between <code># BEGIN LNDLE Speed<\/code> and <code># END LNDLE Speed<\/code> at the top of the <code>.htaccess<\/code> file in your site root, containing the rewrite rules for the page cache and, if enabled, the browser cache rules.<\/li>\n<li>The folder <code>wp-content\/cache\/lndle-speed\/<\/code> with the cached pages, the minified and combined CSS files and a small <code>.htaccess<\/code> file that sets the response headers for cached pages.<\/li>\n<li>One <code>.webp<\/code> file next to each converted image in <code>wp-content\/uploads\/<\/code>, named after the original (for example <code>photo.jpg.webp<\/code>), as long as WebP creation is switched on. The original files are not touched.<\/li>\n<\/ul>\n\n<p>When you deactivate the plugin, it removes its <code>.htaccess<\/code> block, its own <code>advanced-cache.php<\/code> (or restores the drop-in that was there before), the <code>WP_CACHE<\/code> line it added, the folder <code>wp-content\/cache\/lndle-speed\/<\/code> with the configuration file, and its scheduled events. When you delete the plugin, its options are removed from the database as well. The generated <code>.webp<\/code> files are deliberately kept: deleting them would be irreversible, and you can remove the <code>uploads<\/code> folder's <code>.webp<\/code> files yourself at any time.<\/p>\n\n<p>Not removed automatically: a <code>WP_CACHE<\/code> line that was already in <code>wp-config.php<\/code> before activation. Removal requires that the files are still writable at the time of deactivation.<\/p><\/dd>\n<dt id=\"my%20host%20already%20has%20a%20server%20cache.%20do%20i%20still%20need%20the%20page%20cache%3F\"><h3>My host already has a server cache. Do I still need the page cache?<\/h3><\/dt>\n<dd><p>Usually not. The setup wizard requests your home page and looks for response headers of a server-side page cache (for example Varnish, Nginx FastCGI cache or LiteSpeed) and of the Cloudflare HTML cache. If it finds one, it switches the page cache and the preload off in its recommendations so that pages are not cached twice. The other features \u2013 lazy load, image dimensions, CSS minification and the WordPress cleanup \u2013 can be used together with a server cache. In that case, clear the cache at your hosting provider after changing settings or content.<\/p><\/dd>\n<dt id=\"how%20does%20serving%20google%20fonts%20locally%20work%3F\"><h3>How does serving Google Fonts locally work?<\/h3><\/dt>\n<dd><p>Switch on \"Serve Google Fonts from this website\" under \"Files\". When a page requests a stylesheet from <code>fonts.googleapis.com<\/code>, the plugin notes the address and downloads it in the background, together with the font files, into <code>wp-content\/uploads\/lndle-speed-fonts\/<\/code>. From then on the page links to that local copy, and the <code>preconnect<\/code> to Google is removed. Visitors never connect to Google. The download needs an outgoing connection from your server to Google once per font set; if your host blocks that, the page keeps using the Google copy and nothing breaks. Fonts that a theme or plugin already hosts itself are not touched, and font files cannot be converted into another format by the plugin.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20anywhere%3F\"><h3>Does the plugin send data anywhere?<\/h3><\/dt>\n<dd><p>No. The plugin has no tracking, does not contact a license or update server and loads no external scripts or fonts.<\/p>\n\n<p>It makes HTTP requests to your own site only: the cache preload requests your sitemap and your pages so that they are cached, and the setup wizard fetches your home page from your browser to look for cache headers. Pages are only preloaded if they belong to your own domain. Sitemaps on other domains are ignored.<\/p>\n\n<p>The settings page contains links to the LNDLE Speed Pro page on lndle.media. They are plain links; nothing is loaded from there unless you click them.<\/p><\/dd>\n<dt id=\"which%20images%20are%20converted%20to%20webp%3F\"><h3>Which images are converted to WebP?<\/h3><\/dt>\n<dd><p>JPEG and PNG files in the media library, including the sub-sizes WordPress creates. The WebP file is written next to the original and is only kept if it is actually smaller. Images that are already WebP, AVIF, SVG or GIF are left alone, and so are the original files \u2013 nothing is overwritten.<\/p><\/dd>\n<dt id=\"which%20webp%20delivery%20method%20should%20i%20choose%3F\"><h3>Which WebP delivery method should I choose?<\/h3><\/dt>\n<dd><p>On Apache or LiteSpeed without a CDN in front of the site, the <code>.htaccess<\/code> rules are the better choice: they also cover background images in CSS and leave the HTML unchanged. On Nginx, or behind a CDN or server cache that may ignore the <code>Vary: Accept<\/code> header, use the <code>picture<\/code> element instead. The setup wizard makes a recommendation based on what it finds on your server, and you can switch at any time.<\/p><\/dd>\n<dt id=\"does%20it%20improve%20the%20core%20web%20vitals%3F\"><h3>Does it improve the Core Web Vitals?<\/h3><\/dt>\n<dd><p>That is what the plugin is built for. The page cache cuts the server response time, which is what Time to First Byte measures. The hero image preload and the WebP delivery shorten the Largest Contentful Paint, because the browser finds the most important image earlier and downloads a smaller file. Adding the missing width and height to images prevents the layout shifts that Cumulative Layout Shift counts. Defer JavaScript and the combined, asynchronous stylesheets reduce the work the browser has to do before the first paint, which shows up in Interaction to Next Paint. How much each of them is worth depends on the site; the plugin measures nothing and promises no score.<\/p><\/dd>\n<dt id=\"how%20is%20this%20different%20from%20the%20other%20caching%20plugins%3F\"><h3>How is this different from the other caching plugins?<\/h3><\/dt>\n<dd><p>It is built around Apache and LiteSpeed with <code>.htaccess<\/code>, and around Elementor sites. Cached pages are served by the web server itself, without starting WordPress. The setup wizard looks at the server, the installed plugins and the response headers before it recommends anything, instead of switching everything on at once. There is no account, no external service and no tracking.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Cart, checkout and the account pages are never cached, and visitors who have something in their cart are served uncached pages. The rest of the shop is cached as usual. Be careful with aggressive JavaScript settings on a shop and test the cart, the variations and the checkout after switching them on.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20together%20with%20cloudflare%20or%20another%20cdn%3F\"><h3>Can I use it together with Cloudflare or another CDN?<\/h3><\/dt>\n<dd><p>Yes. The setup wizard detects Cloudflare and other proxy caches and adapts its recommendations, for example by suggesting the <code>picture<\/code> element for WebP instead of the <code>.htaccess<\/code> rules, because a CDN in front of the site may ignore the <code>Vary: Accept<\/code> header. After changing settings or content, the cache at the CDN has to be cleared separately; the plugin cannot do that for you.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multisite%3F\"><h3>Does it support Multisite?<\/h3><\/dt>\n<dd><p>No. Multisite networks are not supported, and the setup wizard shows a warning when it detects one.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20nginx%3F\"><h3>Does it work on Nginx?<\/h3><\/dt>\n<dd><p>Partly. Without <code>.htaccess<\/code>, cached pages are served through PHP instead of directly by the web server, which is slower than on Apache or LiteSpeed, and the browser cache rules have no effect. The setup wizard tells you which web server it found.<\/p><\/dd>\n<dt id=\"my%20staging%20site%20is%20password%20protected.%20why%20does%20the%20preload%20not%20work%3F\"><h3>My staging site is password protected. Why does the preload not work?<\/h3><\/dt>\n<dd><p>With HTTP basic authentication in front of the site, the preload receives a 401 response. Add <code>define( 'LNDLE_SPEED_HTTP_AUTH', 'user:password' );<\/code> to <code>wp-config.php<\/code> so that the preload and WP-Cron requests can authenticate.<\/p><\/dd>\n<dt id=\"how%20do%20i%20check%20a%20page%20without%20the%20cache%3F\"><h3>How do I check a page without the cache?<\/h3><\/dt>\n<dd><p>Append <code>?nolndlespeed<\/code> to the URL to bypass cache and optimization for a single request. Append <code>?lndle-speed-guest<\/code> to see the page as a visitor would, with all optimizations, while you are logged in.<\/p><\/dd>\n<dt id=\"how%20do%20i%20exclude%20an%20image%20from%20lazy%20load%3F\"><h3>How do I exclude an image from lazy load?<\/h3><\/dt>\n<dd><p>Add the class <code>skip-lazy<\/code> or the attribute <code>data-no-lazy<\/code> to the image, or enter part of the file name or class under \"Lazy load exclusions\".<\/p><\/dd>\n<dt id=\"is%20the%20database%20cleanup%20reversible%3F\"><h3>Is the database cleanup reversible?<\/h3><\/dt>\n<dd><p>No. Revisions, auto-drafts, trashed items and spam are deleted permanently. Create a backup first.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.10.5<\/h4>\n\n<ul>\n<li>Fixed (Setup): a response header such as \"x-cache-status: MISS\" was read as \"the server already caches the pages\", even though MISS and BYPASS mean the opposite. On such sites the setup wizard deselected \"Page cache\" and \"Preload cache\" without reason. The check now asks twice and only counts a reply that really came from a cache.<\/li>\n<li>Fixed (Pro, \"Delay JavaScript\"): if a consent tool parks third-party scripts and releases them after consent (Borlabs Cookie, Complianz, Real Cookie Banner, Cookiebot and others), jQuery is no longer delayed on that page. The released script used to run before the delayed jQuery and failed with \"jQuery is not defined\". This extends the fix from 0.10.3 to scripts that are not in the page as JavaScript yet.<\/li>\n<li>Improved: when the plugin is deleted, the folder for the locally stored Google Fonts is now removed as well, not just the font files inside it. Nothing else in your uploads folder is touched.<\/li>\n<\/ul>\n\n<h4>0.10.4<\/h4>\n\n<ul>\n<li>Improved (Pro, \"License\"): the license key now has a \"Save license key\" button of its own, right next to the field. It saves the key and checks it with the license server in one step, and the result is shown on the spot. \"Check license now\" is a button of the same form, so a key that has just been entered can no longer be lost.<\/li>\n<li>Fixed (Pro, \"License\"): the field no longer contains the stored key in masked form. It stays empty and shows the mask as a placeholder, so a pasted key can no longer mix with the mask and be discarded without a message. An empty field means \"keep the stored key\"; the key is deleted with \"Remove license\".<\/li>\n<\/ul>\n\n<h4>0.10.3<\/h4>\n\n<ul>\n<li>Fixed (Pro, \"Delay JavaScript\"): when an inline script is excluded under \"JavaScript exclusions\" and uses jQuery \u2013 a consent banner or a content blocker, for example \u2013 jQuery itself is no longer delayed. Those scripts run immediately again, as their exclusion intends. Consent and the scripts that depend on it must not wait for the first click.<\/li>\n<li>Everything else is unchanged: without such a script jQuery is delayed as before, and scripts with data-no-optimize are never touched.<\/li>\n<\/ul>\n\n<h4>0.10.2<\/h4>\n\n<ul>\n<li>Fixed (Pro, \"Delay JavaScript\"): inline scripts that matched an entry under \"JavaScript exclusions\" but call jQuery ran before the delayed jQuery and failed with \"jQuery is not defined\" (for example the content blocker scripts of Borlabs Cookie with the default exclusion \"borlabs\").<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>New: Google Fonts can be served from your own server. The fonts are downloaded once into the uploads folder, the page links to the local copy and the preconnect to Google is removed \u2013 no visitor connects to Google any more.<\/li>\n<li>The setup wizard reports whether the home page requests fonts from Google and recommends the new setting when it does.<\/li>\n<li>The setup wizard also points out font files that are still in the old TTF or OTF format and would be about 70 percent smaller as WOFF2.<\/li>\n<\/ul>\n\n<h4>0.9.3<\/h4>\n\n<ul>\n<li>Fixed: WebP files were not created. In 0.9.1 and 0.9.2 the conversion was started only in the Pro edition, so neither new uploads nor the run over the media library produced any files. Please start the run under \"Media\" once after updating.<\/li>\n<li>New: a button that deletes the generated WebP files again, without touching your original images.<\/li>\n<li>New: the media settings show how much of the media library already has a WebP file, and which format a visitor's browser gets.<\/li>\n<li>The WebP quality is now set with a slider from \"Smallest files\" to \"Highest quality\" instead of a bare number.<\/li>\n<li>Fonts in WOFF, TTF and OTF format can be preloaded as well; so far only WOFF2 was recognized.<\/li>\n<li>The cache rules in <code>.htaccess<\/code> switch themselves off if the plugin folder is removed without deactivating the plugin first.<\/li>\n<\/ul>\n\n<h4>0.9.2<\/h4>\n\n<ul>\n<li>Plugin title, short description and tags reworded so that the plugin can be found in the directory.<\/li>\n<li>New entries in the FAQ on the Core Web Vitals, WooCommerce and CDNs.<\/li>\n<li>No functional changes.<\/li>\n<\/ul>\n\n<h4>0.9.1<\/h4>\n\n<ul>\n<li>New: creates WebP versions of JPEG and PNG images, on upload and for the existing media library.<\/li>\n<li>New: serves WebP either through <code>.htaccess<\/code> rules or through <code>picture<\/code> elements, whichever suits the server.<\/li>\n<li>New: preloads the hero image of a page.<\/li>\n<li>New: Defer JavaScript, with exclusions by file name or keyword.<\/li>\n<li>New: combines consecutive local stylesheets and loads selected stylesheets asynchronously.<\/li>\n<li>New: preloads the font files you enter.<\/li>\n<li>New: replaces embedded YouTube videos with their preview image until they are clicked.<\/li>\n<li>New: the database cleanup can run once a week in the background.<\/li>\n<li>The setup wizard recommends the delivery method that suits the server it finds.<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Page cache, WebP, lazy load, CSS\/JS optimization and local Google Fonts for WordPress and Elementor, with a setup wizard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/383087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=383087"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lndle"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=383087"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=383087"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=383087"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=383087"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=383087"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=383087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}