{"id":286647,"date":"2026-03-15T10:34:19","date_gmt":"2026-03-15T10:34:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/total-website-speed-optimization\/"},"modified":"2026-08-23T10:29:53","modified_gmt":"2026-08-23T10:29:53","slug":"speedora-total-website-speed-optimization","status":"publish","type":"plugin","link":"https:\/\/uk.wordpress.org\/plugins\/speedora-total-website-speed-optimization\/","author":21071514,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Speedora Total Website Speed Optimization","header_author":"Kirtikumar Solanki","header_description":"Comprehensive website speed optimization plugin featuring page caching, CSS\/JS minification, image lazy loading, WebP conversion, database optimization, and performance diagnostics.","assets_banners_color":"7d93c6","last_updated":"2026-08-23 10:29:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/profiles.wordpress.org\/solankisoftware","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/speedora-total-website-speed-optimization\/","header_author_uri":"https:\/\/profiles.wordpress.org\/solankisoftware","rating":0,"author_block_rating":0,"active_installs":0,"downloads":418,"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":"solankisoftware","date":"2026-05-23 12:51:28"},"1.2.0":{"tag":"1.2.0","author":"solankisoftware","date":"2026-08-23 10:29:53"}},"upgrade_notice":{"1.2.0":"<p>Recommended update. Page cache, purge, minify, and delay-JS now match the settings. Save Speedora settings once to write Apache gzip\/expires rules. Clear Speedora cache after upgrading.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3483024,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3483024,"resolution":"772x250","location":"assets","locale":"","width":772,"height":256}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3483024,"resolution":"1","location":"assets","locale":"","width":1703,"height":675},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3483024,"resolution":"2","location":"assets","locale":"","width":1703,"height":780},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3483024,"resolution":"3","location":"assets","locale":"","width":1706,"height":706},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3483024,"resolution":"4","location":"assets","locale":"","width":1705,"height":766},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3483024,"resolution":"5","location":"assets","locale":"","width":1705,"height":687},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3483024,"resolution":"6","location":"assets","locale":"","width":1701,"height":778},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3483024,"resolution":"7","location":"assets","locale":"","width":1708,"height":1295},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3483024,"resolution":"8","location":"assets","locale":"","width":1706,"height":1754}},"screenshots":[]},"plugin_section":[],"plugin_tags":[146,4884,1736,247,15376],"plugin_category":[52,54],"plugin_contributors":[244270],"plugin_business_model":[],"class_list":["post-286647","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-lazy-load","plugin_tags-minify","plugin_tags-performance","plugin_tags-webp","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-solankisoftware","plugin_committers-solankisoftware"],"banners":{"banner":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/banner-772x250.jpg?rev=3483024","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/icon-256x256.jpg?rev=3483024","icon_2x":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/icon-256x256.jpg?rev=3483024","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-1.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-2.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-3.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-4.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-5.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-6.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-7.png?rev=3483024","caption":""},{"src":"https:\/\/ps.w.org\/speedora-total-website-speed-optimization\/assets\/screenshot-8.png?rev=3483024","caption":""}],"raw_content":"<!--section=description-->\n<p>Speedora is a free, all-in-one speed plugin. It caches pages, minifies HTML\/CSS\/JS, lazy-loads media, converts images to WebP, and removes unused WordPress baggage. Settings are grouped by feature, and child options stay locked until their parent is enabled.<\/p>\n\n<p>Do not run Speedora page cache together with another page-cache plugin (WP Super Cache, W3 Total Cache, LiteSpeed Cache, and similar). Use one page cache at a time.<\/p>\n\n<h4>Page caching<\/h4>\n\n<ul>\n<li>File-based full-page cache for guests (optional cache for logged-in users)<\/li>\n<li>Separate cache files for mobile\/desktop and for Polylang\/WPML languages<\/li>\n<li>Cache lifetime, automatic purge on update, and smart purge of the changed URL<\/li>\n<li>Cache preload for homepage, sitemap URLs, and newly published posts<\/li>\n<li>Skip URLs with query strings (tracking parameters such as utm_source are allowed)<\/li>\n<li>Never-cache list (path fragments such as \/cart\/)<\/li>\n<li>WooCommerce: do not cache cart, checkout, or account pages<\/li>\n<li>Cache hits send the X-Speedora-Cache header<\/li>\n<\/ul>\n\n<h4>Browser cache and gzip<\/h4>\n\n<ul>\n<li>Cache-Control, ETag, and Last-Modified on HTML when page cache is off<\/li>\n<li>Apache .htaccess expires for CSS, JS, images, and fonts<\/li>\n<li>Apache gzip\/deflate for HTML, CSS, JS, and SVG<\/li>\n<li>Rules are written with WordPress insert_with_markers (marker: Speedora)<\/li>\n<\/ul>\n\n<h4>HTML, CSS, and JavaScript<\/h4>\n\n<ul>\n<li>Minify HTML (whitespace, comments, optional inline CSS\/JS)<\/li>\n<li>Minify local CSS and JS into copies under uploads (skips wp-includes)<\/li>\n<li>Exclusion lists by handle or filename<\/li>\n<li>Load CSS asynchronously, unload listed stylesheets, optional critical CSS<\/li>\n<li>Remove ?ver= from asset URLs<\/li>\n<li>Defer or async JS (jQuery is never deferred)<\/li>\n<li>Delay JS until first interaction (overrides defer\/async while enabled)<\/li>\n<\/ul>\n\n<h4>Images and video<\/h4>\n\n<ul>\n<li>Lazy load images and iframes<\/li>\n<li>Priority-load the first content image (LCP) and decoding=\"async\"<\/li>\n<li>WebP conversion on upload (PHP GD with WebP) and serve .webp when the file exists<\/li>\n<li>Optional lossy WebP quality<\/li>\n<li>Resize oversized originals to a maximum width<\/li>\n<li>YouTube click-to-play: thumbnail until the visitor clicks<\/li>\n<\/ul>\n\n<h4>Fonts, DNS, and CDN<\/h4>\n\n<ul>\n<li>Google Fonts display=swap<\/li>\n<li>Host Google Fonts locally (downloads CSS and woff2 into uploads)<\/li>\n<li>Optional font preload URLs and lazy-load of Google Fonts stylesheets<\/li>\n<li>DNS prefetch, preconnect, and hero-image preload<\/li>\n<li>Instant internal-link prefetch (Chrome Speculation Rules)<\/li>\n<li>CDN URL rewriting for wp-content and wp-includes<\/li>\n<li>Optional Cloudflare cache purge (API token + zone ID)<\/li>\n<\/ul>\n\n<h4>WordPress, WooCommerce, and database<\/h4>\n\n<ul>\n<li>Remove emoji, wp-embed, Dashicons (guests), generator tag, shortlink, REST discovery links<\/li>\n<li>Optional: disable RSS, XML-RPC, comments, jQuery Migrate, file editor<\/li>\n<li>Heartbeat interval and disable Heartbeat on the public site<\/li>\n<li>Delay Analytics, Ads, Meta pixel, YouTube, Maps, and chat widgets until interaction<\/li>\n<li>WooCommerce: disable cart fragments and shop CSS\/JS off shop pages<\/li>\n<li>Database cleanup: revisions, drafts, trash, spam, transients, OPTIMIZE TABLE<\/li>\n<li>Limit how many revisions WordPress stores going forward<\/li>\n<li>WP-Cron schedules for cache cleanup, DB cleanup, image optimize, and preload<\/li>\n<li>Safe mode turns every optimization off without wiping settings<\/li>\n<\/ul>\n\n<h4>Admin tools<\/h4>\n\n<ul>\n<li>Settings tabs: Caching, HTML, CSS, JavaScript, Images, Network, Database, WordPress, Core Web Vitals, Automation<\/li>\n<li>Dependent options (greyed out until the parent is on)<\/li>\n<li>Diagnostics score and recommendations<\/li>\n<li>Tools: clear cache, one-click DB cleanup, batch images, import\/export, reset<\/li>\n<li>Per-post\/page CSS and JS unload meta box<\/li>\n<li>Admin bar: clear cache<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>speedora-total-website-speed-optimization<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>Speedora Total Website Speed Optimization<\/strong>.<\/li>\n<li>Open <strong>Speed Optimizer<\/strong> in the admin menu.<\/li>\n<li>Keep the Balanced defaults, or turn features on tab by tab.<\/li>\n<li>Visit the site once so page cache can store HTML. Check the <code>X-Speedora-Cache<\/code> response header (MISS then HIT).<\/li>\n<li>Optional: <strong>Speed Optimizer \u2192 Tools<\/strong> to clean the database or batch-optimize images.<\/li>\n<li>Optional: <strong>Diagnostics<\/strong> for a configuration score and tips.<\/li>\n<\/ol>\n\n<p>Apache (including WAMP): open wp-admin or save settings so gzip\/expires rules are written to <code>.htaccess<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Will this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. Optimizations run on the front end only. The first view of a page builds cache; later views are served from files.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20wp%20super%20cache%2C%20w3%20total%20cache%2C%20or%20litespeed%20cache%3F\"><h3>Can I use this with WP Super Cache, W3 Total Cache, or LiteSpeed Cache?<\/h3><\/dt>\n<dd><p>Do not enable page cache in two plugins at the same time. You can use Speedora minify\/lazy-load with a host cache only if Speedora page cache is off, and you have tested the site.<\/p><\/dd>\n<dt id=\"are%20search%20engines%20excluded%20from%20cache%3F\"><h3>Are search engines excluded from cache?<\/h3><\/dt>\n<dd><p>No. Public HTML is cached for all guests, including crawlers. That is normal and usually desirable.<\/p><\/dd>\n<dt id=\"is%20checkout%20or%20cart%20cached%3F\"><h3>Is checkout or cart cached?<\/h3><\/dt>\n<dd><p>Not if WooCommerce is active and the WooCommerce cache exceptions stay on. Cart cookies also skip cache.<\/p><\/dd>\n<dt id=\"does%20gzip%20work%20on%20nginx%3F\"><h3>Does gzip work on Nginx?<\/h3><\/dt>\n<dd><p>The gzip and expires options write Apache <code>.htaccess<\/code> rules. On Nginx, enable gzip in the server config instead.<\/p><\/dd>\n<dt id=\"does%20webp%20require%20extra%20software%3F\"><h3>Does WebP require extra software?<\/h3><\/dt>\n<dd><p>PHP GD with <code>imagewebp()<\/code> is required to create WebP files. Serving an existing <code>.webp<\/code> file only needs that file on disk.<\/p><\/dd>\n<dt id=\"what%20if%20the%20layout%20breaks%3F\"><h3>What if the layout breaks?<\/h3><\/dt>\n<dd><p>Turn on <strong>Safe mode<\/strong> under Automation, or disable Delay JS \/ async CSS first. You can also reset settings from Tools.<\/p><\/dd>\n<dt id=\"can%20i%20export%20settings%3F\"><h3>Can I export settings?<\/h3><\/dt>\n<dd><p>Yes. <strong>Speed Optimizer \u2192 Tools<\/strong> includes JSON export and import.<\/p><\/dd>\n<dt id=\"does%20it%20send%20data%20to%20third%20parties%3F\"><h3>Does it send data to third parties?<\/h3><\/dt>\n<dd><p>Not by default. Optional features contact Google (download fonts) or Cloudflare (purge API) only when you enable them and provide credentials.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20wordpress%20multisite%3F\"><h3>Does it work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>It can be network-activated, but settings are per site. Test on a staging network before production.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Page cache now starts on template_redirect so 404, search, preview, and WooCommerce skips work<\/li>\n<li>Smart cache purge deletes the correct files for a URL (including device\/language variants)<\/li>\n<li>Never-cache URL list and skip query-string URLs (utm\/gclid\/fbclid still cache)<\/li>\n<li>Apache gzip and static expires via .htaccess<\/li>\n<li>Host Google Fonts locally<\/li>\n<li>YouTube click-to-play facades<\/li>\n<li>WebP URLs rewritten in post content when a .webp file exists<\/li>\n<li>Third-party script delay now rewrites script tags (Analytics, Ads, pixel, and similar)<\/li>\n<li>Settings UI: dependent options, ordered tabs, help text on every field<\/li>\n<li>Removed non-working options (PHP gzip stub, fake combine CSS\/JS, unused CSS)<\/li>\n<li>Safer JS minification; disable-embeds and Heartbeat run at the correct hooks<\/li>\n<li>Disable file editing no longer sets DISALLOW_FILE_MODS<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Instant link prefetch via Speculation Rules<\/li>\n<li>Priority-load the first (LCP) image and async image decoding<\/li>\n<li>Remove Gutenberg duotone SVG filters and optional classic-theme block CSS<\/li>\n<li>Disable WooCommerce CSS\/JS on non-shop pages<\/li>\n<li>Limit stored post revisions<\/li>\n<li>HTML minification runs early enough to affect full page output<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: page cache, minify, lazy load, database tools, diagnostics<\/li>\n<\/ul>","raw_excerpt":"Speed up WordPress with page cache, minify, lazy load, WebP, gzip, local fonts, and Core Web Vitals tools.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/286647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=286647"}],"author":[{"embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/solankisoftware"}],"wp:attachment":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=286647"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=286647"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=286647"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=286647"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=286647"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=286647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}