Introduction
Swift Performace is one of the most powerful WordPress Caching plugins showing massive improvement in the website loading speed. Arguably, one of its great advantages is that it comes with a free Lite and premium Pro version, and they both show great results for the purpose of website optimization.
In this tutorial, we will step-by-step walk you through the whole process from installing to configuring it for optimal performance and notable loading speed improvement.
Installation
Depending on which version of the plugin you are going with (Free or Paid), the installation is slightly different.
Free Version
The free one is straightforward, and you can install it from your WordPress admin dashboard as you would any other standard plugin.
Once logged into your WordPress Admin Backend, please navigate through the left-hand side menu bar to Plugins > Add New. Upon doing that, you will be redirected to the plugin installation page. When there, please use the search tool at the top right corner and input “Swift Performance” in the field.
When this is done, the plugin will be presented in the search results. Please click on the “Install Now” button to initiate the installation. Once completed, you have to click the “Activate” button, so the plugin can be enabled.
Premium Version
If you are going with the premium version of the plugin, you have to first purchase it from Swift Performance's website. After doing that, you will be able to log into your account and download the required installation archive, containing the plugin files.
Next, please navigate to the plugin installation page as mentioned earlier, and instead of using the search tool, please click on the “Upload Plugin” button at the top of the page.
Afterward, press the “Choose File” button and select the previously downloaded archive file from your local computer. This action will present the “Install Now” button, and upon pressing it, the installation will be initiated.
After a brief loading period, you will be presented with the details of the installation, and you will see the “Activate Plugin” button. Please press it to finalize the process.
Configuration
As soon as the plugin is successfully installed and activate, you will be prompted with the “Setup” window presenting a few configuration methods.
- Manual Configuration - Selecting the Manual Configuration option will take you directly to the Plugin Dashboard. This option will allow you to enable all the settings you need manually. It is great for people who have previous experience with website optimizations. To get you well acquainted with all settings of the Swift Performance plugin, we will go through the manual configuration and explain everything in great detail.
- Import Settings - Selecting this option will allow you to import a configuration file you exported from a different Swift Performance plugin. It is excellent if you have multiple websites, and you have made the perfect configuration setup. You can then simply deploy it on all your websites to achieve similar results.
- Use Preset - This is an appealing choice, especially if you are new to the plugin. You can choose a preset configuration option, based on what you are aiming to achieve:
- Simple Caching - The most basic optimization preset you can choose from the plugin. It is a decent choice because it is highly compatible with pretty much any website, and you are less likely to encounter any issues when enabling it.
- Limited Hosting - The second option focuses more on server resource usage minimization while also adding more optimizations towards your CSS and JS files, which are not present in the previous one. Ideal for shared hosting servers that offer fewer resources. If selected, please make sure to test your website immediately after applying this option.
- Moderate Optimization - Similar to the previous one, but this option also includes the Prebuild Cache feature, which could be a little more taxing on server resources. In addition to that, you receive better CSS and JS optimization on top of the existing ones. Please, test out your website after applying this option.
- Improve Optimisation (Premium Only) - This preset adds LazyLoad for images and more advanced CSS and JS optimizations while keeping the compatibility reasonably high. As opposed to the above two options, enabling this is less likely to cause issues with your site as CSS, and JS minification and merging can cause FOUC problems. Test out your website immediately after applying this.
- Maximum Optimization (Premium Only) - On top of all the optimizations under the previous presets, you also receive an additional preload element for remote CCS and JS sources and asynchronous execution for JavaScript files. It also includes the awesome Cache Empty Minicart for WooCommerce, which is excellent for e-commerce projects!
- Autoconfig - The auto-config option will scan the server and apply settings based on its configuration/resources. It is an excellent choice if you do not feel confident enough to pick a preset or go over the settings manually to select the best ones. Using this option will typically not break anything after application, but be sure to test the website.
Whatever of the above settings you choose, eventually, you will end up at the settings page with a lot of options to pick from, and you can further adjust your preferences.
Dashboard Tab
The first tab we will go over is the “Dashboard” tab, which contains a few options that may prove useful. On the top left corner, you will see the “Actions” section and underneath the following links:
- Show Rewrite Rules - When you click on this link, all the rewrite rules will be shown underneath the section.
- Setup Wizard - Please use this link if you want to go through the setup process again. We explained it in the previous paragraphs.
- Show log | Clear Log - The first link will show you the plugin logs - very useful for troubleshooting issues related to it. The clear logs options will truncate the log, removing all entries.
- Enable Developer mode(Premium only) - Click on this link to enable developer mode, which disables all caching while active.
- Custom Purge(Premium only) - Click on this link to open a content box where you can enter an URL and purge that page cache individually.
Beneath the “Actions” section, you will see the “Cache Status” section, where you can find information about the generated cache. It is handy to check your cache’s condition and the number of pages cached by Swift Performance.
The last thing we will go over on this tab is the “Warmup Table” section. This functionality will allow you to rebuild your cache whenever you do a cache flush on all your pages or a single one. The table will hold all your pages, and you can change the Prebuiild priority. You can also manually initiate the page re-cache for each page.
Settings Tab
Under this tab, you will find all the optimization settings this plugin offers, and they are quite a few. The page itself is separated into six sections, each targeting a specific area of your site to improve. We will go over them, in the same manner, they are provided by the plugin to avoid any confusion and make it easier for you to follow!
General > General
- Disable Cookies - Disallows Swift Performance to create cookies on your site’s frontend. We recommend leaving this off unless it interferes with the cookies of other plugins, GDPR functionalities, or Google Analytics.
- Hide Footprints(Premium Only) - When disabled, this option will show comments from the plugin inside the site’s source code and include recognizable headers inside the HTTP request. Leaving it disabled is a better choice in our experience, as then you can see which resources are affected by the plugin.
- Use Computer API(Premium Only) - An excellent choice to use on a Shared Hosting Server. Enables the Swift Performance Computer API, which improves the CPU-intensive processes’ speed, such as critical CSS generation or minification.
- Prebuild Booster - This option will be situational and will depend on your server. If you notice that your CPU is struggling, then you should enable this to offload the intensive processes towards memory resources.
- Clear Cache Role(Premium Only) - Allow you to assign the “Clear Cache” option for different roles on your site, such as your Editors, Authors, or even Subscribers.
- Disable Admin Notices(Premium Only) - Use this option to hide the notices to clear the cache when you perform an upgrade of your WordPress, plugins, or themes.
- Beta Tested(Premium Only) - If you like the plugin and want to get exclusive updates on its development, you can check this option and receive information regarding the beta development.
- Debug Log - Very useful to enable when you are having issues with the plugin and you wish to troubleshoot them.
General > Tweaks
- Normalize Static Resources - The query string is a piece of the URL that contains values or variables that are then passed from your browser to a web application to trigger a specific outcome. Sometimes, these query strings are unnecessary and are part of your JS and CSS files. Checking this option removes them, which will increase your page score in performance testing websites such as Gtmetrix or Pingdom. Brings no speed-increasing benefits, however.
- Prefetch DNS - An excellent option that will preemptively resolve external domain names from which your website loads any resources. Speeds up the loading speed of your site and should remain enabled.
- Collect Domains from scripts - You should enable this option to let Swift Performance preload domains within javascript files. If it is not allowed, it will only do so for CSS and HTML files.
- Exclude DNS prefetch - Useful option to exclude domains from the prefetch option. We do not see why you would like to include anything here, as, in our experience, prefetching is entirely harmless and can’t bring any harm to your site.
- Gravatar Cache - If you see that your website displays slow requests from loading your avatars, you should enable it to cache them.
- Custom Htaccess - Swift Performance adds various optimization rules in your .htaccess, such as gzip compression and leverage browser cache. If you want to have custom rules before these, you can use this content box and add them to your website.
- Background Requests(Premium Only) - You can exclude AJAX requests that are unnecessary and slow down your site. An example of this would be the post_view_count request, which is not detrimental to visitors.
General > Heartbeat
- Disable Heartbeat - Limits the WordPress HeartBeat API using AJAX calls to update users about various things happening on your site in real-time - such as post updates. Quite CPU intensive and can cause any slowness to propagate to your frontend. Enable it if this is causing issues with your website loading speed.
- Heartbeat Frequency - You can control the HeartBeat API frequency by using this handy drop-down menu. Typically 60 seconds should be the most optimal time here.
General > Cronjobs
- Limit WP Cron(Premium only) - Whenever someone visits your page, it triggers the WP cron functionality. It has a great process behind it as it updates and refreshes various things on your site, generated by plugins. However, it can sometimes delay loading speed. Use this slider to control how often it executes. We recommend keeping it on the low side (around 20-30) if you have high cron activity.
- Enable Remote Cron(Premium only) - Recommended to use when all your pages are cached, or WP Cron is entirely disabled. The remote cron will handle the work of WP Cron utilizing an API.
General > Google Analytics
- Bypass Google Analytics - Enable this if you want to cache the JavaScript request of Google Analytics locally by combining it with your site’s javascript files. You will likely see no performance gain from it, but your page score should increase (if this is something you care about).
General > Whitelabel
- Activate Whitelabel - You can enable this option to Whitelabel all of the plugin’s references on your site, such as name, slug, cache basedir, table prefix, etc. Good thing if you want to hide your optimization techniques from your competitors and personalize the plugin to your liking.
Media > Images
- Optimize Images on Upload(Premium) - Awesome option - enable it! It will optimize any image you upload using the Swift Performance optimization API.
- Image source(Premium) - Use the dropdown to select which images should be optimized by the plugin.
- Image Optimizer(Premium) - This section will let you select the quality of the images optimized by Swift Performance. It has four presets you can choose from - Lossless, Slightly Lossy, Moderate, and Agresive. The Lossless option gives the best quality with lower compression, while the Aggressive choice provides the highest reduction with the least quality. The other two options are somewhere in between. Our advice is to test each one out and figure out a balance that works best for your site. If you love sliders - there are two which you can manually set to adjust the quality of your PNG and JPEG files manually.
- Resize Large Images(Premium) - This option will depend on the type of website you own. If you use a lot of high-resolution images and you do not bother editing them before uploading, then you can turn it on. Otherwise, you should keep it disabled.
- Keep Original Images(Premium) - Keep this turned on until you find the best optimization and compression method for your images. Afterward, you can disable it to save disk space.
- Generate WebP(Premium) - If you want Swift Performance to generate WebP images for your site, use t his option. We recommend turning this on.
- Serve WebP(Premium) - This setting will require testing. The default one is disabled, and we recommend enabling it by selecting either “Use <picture> element” or “Use rewrites”. You should start with the “Use rewrites” first as it is safest, and should not cause layout issues that may appear when the “Use <picture> element” is used.
- Inline Small Images - This is an excellent option for small websites with tiny images in your website’s “above-the-fold” area. It will help you reduce HTTP requests on your pages and should improve your scores. We do not recommend it for big sites with a lot of pages and images.
- LazyLoad Images - There is a lot of controversy around this setting, and you will find a lot of mixed opinions about it online. It is up for personal preference, and it depends on the type of website and where the majority of the images are. If you have lots of pictures on your site’s pages and most of them are on the top of the page, we recommend keeping this disabled, as LazyLoad could make it seem like the images are not there when the site is visited. This effect harms UX sometimes, and you should play around with it and test your website thoroughly. With some configurations on your end using the next option, we will cover you could work this to your advantage and get a nice performance boost!
- Exclude Images URL - If the above option is enabled, you can add image URLs that Swift Performance will exclude from LazyLoad. If you want to use it but have images on top of your pages, enter their URLs to remove them from LazyLoad, but have the rest of your pictures benefit from it.
- Exclude Images by CSS classname(Premium) - You can exclude images from LazyLoad by entering the CSS classname contained within the image tag or parent element.
- Respect Lazyload Standards(Premium) - This is a pretty straightforward option. It will exclude images that have the skip-lazy class or data-skip-lazy attribute.
- Preload Sensitivity(Premium) - You can use this option to specify the number of pixels you want to load on the LazyLoaded images before the viewpoint.
- Load Images on User Interaction - If you enabled LazyLoad and excluded the images located “above-the-fold”, you do not need to activate this.
- Inline Lazy Load Images - The same goes for this option as we explained for “Inline Small Images” above.
- Lazyload Placeholder(Premium) - You can set placeholders for the images that are LazyLoaded on your site. It is once again up to personal preference, and you should pick the one which is least likely to harm UX.
- LazyLoad Background Images(Premium) - Our recommendation is not to use this option to block background images. The only part of the background image which will load will be from the current viewpoint.
- Force Responsive Images - You will most likely never need to use this option as in 2020, all of the available themes should be responsive, and the images should scale accordingly. If this is not the case, then you should enable this.
Media > Embeds
- Youtube Smart Embed - Using this creates a thumbnail image for the youtube videos you have embedded on your site. They will start playing only when the visitor interacts with them (click or tap). It could be a good option if you have lots of videos embedded from youtube and are all located under the website’s fold area.
- Lazy Load Iframes - Enables LazyLoad for your iframes(embedded videos). Typically these iframes load additional resources that are not needed and could cause slower loading. Enabling LazyLoad for these iframes will start generating them as you scroll down on your website.
Optimization > General
- Enable Server Push(Premium) - Honestly, the speed benefits of this are not worth it. On the first visit, your browser will pretty much cache the majority of the CSS and JS files. It may be useful if your site uses a lot of CSS and JS.
- Optimize Prebuild Only - Should not be checked unless you want to optimize only the prebuild cache, which should not be the case as you want all of the generated cache to be optimized.
- Optimize in Background - Good option if you have a powerful server and a site with lots of posts/pages.
- Fix Invalid HTML - Some plugins or themes may contain invalid HTML, which can mess with the Swift Performance’s DOM parser. Enabling this fixes any issues if this is the case. Activate it only in such a situation.
- Minify HTML - If you are using a proxy-based CDN such as Cloudflare, disable it as it already does this job. Otherwise, you can enable it.
- Disable Emojis - Enable this option to disable the emojis from the WordPress core. It will reduce the number of requests on your pages, and you will see emojis as the browsers support them natively.
- Limit Simultaneous Threads - Enable this option if you are hosting your site on a shared hosting environment with fewer resources or you have a small website. Otherwise, you can limit the simultaneously used CPU threads by a factor of 1, 2, or 3, with three being the most resource-sparing.
- Merge Assets for Logged in Users - We do not think that this option is beneficial towards speed or website score, and you should keep it disabled. Allegedly, it could improve the logged-in user’s experience should you have many admins, writers, authors, etc.
Optimization > Scripts
- Merge Scripts - For this option to be useful, you would need more JavaScript so that the merger can be justified. However, having a lot of JavaScript merged into a single file can cause issues. We do not believe that it is worth activating if you have less JavaScript on your site, as then the requests generated will be minor, and the benefits of this option will be futile. The only real profit this will bring is to increase the score of your pages. You can test it out, see if your site works properly after enabling it and if that’s the case, you can leave it enabled. Merging is a pretty complicated functionality, and we advise you to disable it if you are not 100% sure what you are doing. There is a lot of fine-tuning involved in the settings that can negatively impact your website if not done correctly. While we give you information about what each optimization does, each site is unique. There may be situations where our recommendation does not work out, in which case it is better just to drop merging completely.
- Async Execute - Enabling this can increase your pages’ rendering time, which is an excellent boost to UX. Even if you merge the scripts, Swift Performance will split them in the background and execute each script on the move, resulting in a more pleasant experience.
- Execute 3rd Party Scripts - Depends on how many external scripts you are using on your site. If you do not use many, then you should merge them. Otherwise, leave this option disabled.
- Exclude Scripts - If you notice broken functions after the JavaScript merger or notice elements that render quicker than they should on your pages, you can exclude the scripts containing them by entering them inside this text field. You can use a single word inside (“slider” for example), which will exclude script files containing “slider” from the merger.
- Footer Scripts(Premium) - Adding files inside this text field will separate the essential (scripts that are loaded on the top of your site) and non-essential scripts (those that are at the bottom) from the merged file and make sure that the critical ones will load before the rest. This separation results in a quicker loading speed, and you should enable it.
- Deferred Scripts(Premium) - You can add scripts inside this text field to add the “deferred” attribute. Doing so will tell these scripts to load up once the page has fully parsed.
- Exclude Inline Scripts - Same as the “Exclude Scripts” option, however, it will affect your inline scripts. Inline scripts do not load from external sources. As instead, you typically embed them inside your HTML files.
- Footer Inline Scripts(Premium) - Be careful with this option. Unless you are sure what you are doing, leave this field empty.
- Exclude Script Localization - Some script files could contain localizations, showing which languages are supported. It is not a good idea to include them as this supposedly increases the merged file’s loading time.
- Minify Javascript - If you want to minify JavaScript, we recommend using a proxy-based CDN provider such as Cloudflare. Minifying removes all unnecessary characters from the file (white spaces, comments, etc.)
- Minify with API(Premium) - This is interesting and slower than the above, however, it is safer, and you should use it if the above method causes errors.
- Proxy 3rd Party Assets - This option will let you overwrite the “Expire Headers” for third-party assets such as Google Analytics or other third-party assets you have on your site. Could improve the score in Gtmetrix or Pingdom.
- Separate Scripts - Great option if you are using many methods of creating pages ( different page builders, for instance (Elementor, Thrive, etc.)), as it will create a separate merged JS file for each of your pages. It could be a bit on the heavy side in terms of resources and, more specifically - CPU.
- Print merged scripts inline - Only use if you do not have many critical scripts needed for the initial page load (sliders, menus, pop-ups, ads, etc.).
- Lazy Load Scripts - Excellent if you want to lazy load scripts that do not need to be loaded immediately. Adding the elements inside this text field will cause them to load whenever the visitors need to see them.
- Include Scripts - If you want to preload scripts loaded inside, javascript files include them in this text field.
- Disable jQuery Migrate(Premium) - Activate this if you are using an outdated theme or plugin. Otherwise, we recommend keeping it disabled.
- Preload Scripts(Premium) - Inside this text field, you can specify the exact script you want Swift to preload.
- Custom Inline JavaScript(Premium) - Using the content box, you can add extra custom javascript to your pages.
Optimization > Styles
- Merge Styles - The same goes for this option as for the “Merge Styles”. It will merge all your CSS files into a single larger file, and this will reduce the number of requests on your site, thus improving your page score. Tread lightly here, and be sure to test your website upon activating this option. You may face rendering issues on your site, which is never good for UX.
- Generate Critical CSS - Activate this option only if you are using a lot of CSS as it should technically improve your loading speed and user experience. The more CSS you have, the more time the browser will take to download the resources and, in turn, cause delayed rendering of the page because specific CSS need to precede others.
- Critical CSS method(Premium) - The “Unused CSS” option is the safest, in our opinion, the most optimal way you should use.
- Extra Critical CSS - If you notice that Swift has missed out on vital CSS files needed for the site, you may add those inside this content box so that the plugin can include them in the automatically generated CSS.
- Extra CSS(Premium) - You can use this content box to add additional custom CSS to the plugin’s CSS.
- Disable Full CSS - We advise you to be careful with this option and thoroughly test before enabling it as it may cause styling issues. It disables all “unnecessary” CCS and loads only the one your page needs.
- Compress Critical CSS - Saves a few extra bites when enabled, as the plugin will compress CSS class names if they are long.
- Remove Keyframes - If JavaScript files generate most of your animations or sliders, you can enable this option to remove such from your CSS files. If you are not sure if that is the case, test it out and see what happens.
- Print critical CSS inline - Do not use this option unless your website barely uses any CSS.
- Print full CSS inline - Very situational option which you will most likely never need. In most cases, it will prevent the browser from caching CSS, and it will have to download it every time anew, which will increase page loading speed.
- Separate Styles - Activate this option if you have many pages, and you use different means to generate them (various page builders). It will separate each page’s CSS files into individual files, instead of having a single CSS file for all your pages.
- Minify CSS - Enable this option if you are not using a CDN provider that already handles this for you. It will have a more significant impact on score/speed the more CSS files you have.
- Bypass CSS Import - A recommended option by the developers which will merge your imported CSS with the rest. Should reduce requests, improve score and speed.
- Exclude 3rd Party CSS - You may only need to enable this if you have issues with your third-party CSS files. Otherwise, keep disabled.
- Exclude Styles - Exclude the problematic styles from being merged/minified if you notice any issues. You may only include the name of the CSS file itself, instead of the full URL. (shop-style.css instead of website.com/path/to/file/shop-style.css).
- Exclude Inline Styles - Adding the inline styles inside will exclude them from being merged. This option applies to third-party and all inline CSS you have.
- Include Styles - You can use this text field to add styles manually, which will essentially preload them. Use it for CSS files loaded with JavaScript.
- Preload Styles - Add CSS files that you want Swift performance to preload.
Optimization > Fonts(Premium)
- Preload Fonts Automatically - Enabling this option will preload all the fonts on your website automatically. It can reduce DNS lookup and reduce loading speed. Enable it.
- Manual Preload Fonts - IF you do not want to pre-reload all the fonts automatically, you can disable the above option and enter the fonts you want to be pre-loaded manually inside this text field.
- Use Local Fonts - Enable this option if you are using local fonts hosted on your server.
- Exclude Local Fonts - You may type the local fonts you wish to exclude inside this text field.
- Force Swap Font Display - The “font-display” property instructs how the fonts will load in your browser. Enabling this will activate the “swap” instruction, which will use a fallback font to display text until the other fonts finish downloading. It helps you avoid the so-called FOIT or “flash of invisible text” issue.
Caching > General
- Enable Caching - If you want to use the plugin’s caching aspect, this option needs to be enabled.
- Caching Mode - If speed is all you care about, you should always select the “Disk Cache with Rewrites” option from the drop-down menu. If for any reason, your server does not support rewrites, then you can go with “Disk Cache with PHP”. The last option, “Memcached with PHP”, is excellent. However, your server needs to have Memcached installed. If you are hosting your projects with HostArmada and want to utilize this caching mode, you should consider our Speed Reaper hosting plan.
- Early Loader - Enable to speed up cache serving with PHP. Should always be enabled, despite the caching mode you chose, as Swift Performance will process some of the requests via PHP, regardless of the top option.
- Cache Path - You can define the path to your caching folder inside this text field. You should leave this with the default setting unless there is any technical reasoning behind it.
- Cache Expiry Mode - Depending on your site, you can use either “Action-based mode” or “Time based mode”. The first mode will clear the cache upon modifying, adding, or updating your content. The second one will allow you to define the time frame you wish Swift to flush the cache.
- Short Lifespan Pages(Premium) - Enter the URL of the pages you wish to clear the cache on once every 12 hours, regardless of the cache expiry mode you chose above.
- Clear Cache on Update Post by Page(Premium) - Useful option if you are using “Time based mode”. You can set a page’s ID inside, and its cache will clear when you update or add a new post.
- Clear Cache on Update Post by URL(Premium) - Same as the above one, however, this time, you can define the exact URL inside the content box.
- Clear Cache after Update(Premium) - Choosing this will clear the plugin’s cache each time you update the WordPress core, a plugin, or a theme. It is undoubtedly convenient, however, to be on the safe side, you should keep it disabled.
- Enable Caching for logged in users - Use this option to add caching for logged-in users too. Do not enable it unless you have a lot of logged-in users on your site or use separate content for logged-in users (additional promotions, popups, ads, widgets, etc.)
- Separate Mobile Device Cache - Do not enable unless you are using a different theme for your mobile version.
- Enable Browser Cache - If the server supports this by default, you should disable this option. If that is not the case, then you should enable it.
- Enable Gzip - Same as the above, if the server natively supports gzip, then keep this disabled. Otherwise, enable it for sure.
- Send 304 Header(Premium) - Enable this if you are using the “Disk Cache + PHP” or “Memcached + PHP”. This option will make sure that the 304 headers exist in the HTTP request. These headers will inform the querying server or app that the resource has not been modified since the last time it was cached.
- Cache 404 pages - Disable this option to prevent caching for 404 pages.
- Enable Dynamic Caching - This is one of the most advanced features this plugin has to offer. We highly recommend avoiding it unless you are an experienced web developer who is entirely aware of how to handle website resources. In simple words, this option will allow Swift Performance to cache query strings. These query strings could come into place if your website uses different currencies or separate views based on the client’s country.
- Cacheable AJAX Actions - This is another setting holding advanced options. It allows you to cache resource-demanding AJAX requests by specifying them inside the text field. Do not use it unless you are sure what it does.
- AJAX Cache Expiry Time - If you have the above option enabled, you can define the cache expiry time for the AJAX request.
General > Tweaks(Premium)
- Enable Proxy cache - Adds a proxy element to the caching service of Swift Performance in the face of Cloudflare. Allegedly, it should result in a fast page loading speed. However, you do not have any control over the cache as when you flush the cache on the plugin, the proxy cache remains unflushed. You could give it a try for some time and see if this is an issue for it or not. It may combine well with the “Time-based mode” as you can set the “max-age” value for the cache.
- Ignore GET Params - By default, the plugin will ignore specific GET parameters. You may add even more here, and Swift Performance will skip them.
- Avoid Mixed Content - Disable this unless your website is still using HTTP (which it should not), and you have third-party assets loaded via HTTPS.
- Keep Original Headers - If you have headers that a specific service needs to see in the HTTP requests, leave this enabled. You can also Exclude them using the text field underneath if you choose this option.
- Case Insensitive URLs - You should never have URLs that use capital letters, however, if this is the case, you can use it to convert them to lower-case.
- Strict Host - As WordPress is URL sensitive and typically a single website opens via its designated domain/URL (www or NON-www, depending on your configuration), this option may not see much usage. If you change your domain name regularly, it could see usage, and it will be beneficial, as it will ensure there will be no cache for previously used domain names/hosts.
- Lazyload elements - Adds the LazyLoad functionality to other parts on your site (recent comments, viewed products, filled forms, etc.). Specify their CSS selector to enable it.
- Ajaxify Placeholder - This option allows you to choose the look of the lazyloaded elements before showing up on the site. You can pick Blurred, Hidden, or Cached.
Caching > Exceptions
- Exclude Post Types - By default, WordPress has built-in post types typically utilized by theme developers to create themes. They can also be customized. Inside this content box, you can include the ones you wish to exclude from the cache. Swift Performance will cache any post types, regardless of if they show on the page or not. This increases cache prebuilds up. Exclude any post types you do not display on your pages or any unneeded posts that are no longer relevant to your content.
- Exclude Pages - You should exclude pages that should not be cached. A great example of such are shopping carts, checkout pages, login forms, order forms, and any pages with dynamic content.
- Exclude URLs - If an URL cannot be excluded using the above methods or fits into a separate category, you can omit it by adding it inside this text field.
- Exclude Cookies(Premium) - Exclude the cookies which you do not wish your users to cache.
- Exclude Content Parts - You can enter a specific regex inside this text field, which will be excluded from your URLs and will make Swift Performance exclude it from the cache.
- Exclude User-Agents - Exclude troublesome user-agents from being cached (regex are accepted here as well).
- Exclude Crawlers - You can exclude crawlers from indexing cached pages if you enable this option. We recommend not using this, as this can be controlled on a server level using the robots.txt file.
- Exclude Author Pages - Leave this setting enabled as author pages are barely visited.
- Exclude Archive - WordPress creates archive pages as it assumes most web developers do not bother with them. They contain a list of categories and no other relevant information, which can render your visitors confused if they land there. You should enable this option.
- Exclude REST URLs - Leave enabled - there is no need to cache these types of URLs.
- Exclude Feed - Enable this option as the caching of your feed is not necessary.
Caching > Warmup
- Prebuild Cache Automatically - Leave enabled unless you have an insane amount of pages. If you have many pages, this can result in high server load and slow website loading speed, more so if you use a Shared Hosting Server.
- Prebuild Speed - If you use a Dedicated Server or VPS, use the Unlimited or Multi-thread option. Otherwise, select either Moderate, slow, or Reduced.
- Discover New Pages(Premium) - Looks for and adds new pages if they are not present in the cache warmup. It could be useful if you regularly test out new plugins which deploy pages on your site. Otherwise, leave it out as it tends to cache unnecessary pages.
- Warmup Table Source(Premium) - Leave the Auto option if you do not have many pages. Otherwise, use the sitemap method to define pages with the highest priority.
- Warmup Priority(Premium) - You can drag and drop the pages you wish Swift Performance to cache with priority. The default setup is terrific here.
- Prebuild Author Pages - As mentioned above, these pages are rarely visited, so prebuilding cache is counterintuitive.
- Prebuild Archive - You do not need to prebuild cache for these pages - disable this option.
- Prebuild Terms - Do not activate if you have lots of tags, as the server resources will go towards unnecessary caching.
- Prebuild REST URLs - You do not need to prebuild REST URLs. Leave this setting disabled.
- Prebuild Feed - There is no need to prebuild Feed too. You may leave this setting disabled.
- Enable Remote Prebuild Cache(Premium) - Great option if your server cannot handle the load and prebuild your cache. This option uses an external source to do so. You will most likely never need to activate this, but try it out if you run into issues.
Caching > Varnish
- Enable Auto Purge - If your server uses Varnish, enable it to purge its cache automatically.
- Custom Host - If you are using a proxy-based service, which has Varnish, add the server IP address.
Plugins > Contact Form 7(Premium)
- Smart Enqueue Assets - Excellent option if you are using Contact Form 7, as it will cache its CSS and JS content, making it load faster on your pages.
Plugins > WooCommerce(Premium)
- Cache Empty Minicart - It is quite common to see WooCommerce websites experiencing slowness by the wc-ajax=get_refreshed_fragments AJAX request. Enable this to cache an empty cart and remove the wait time that updates it without refreshing the page.
- Disable Cart Fragments - This option comes with a drop-down menu allowing you to disable cart fragmentation altogether (the small number representing the number of products in your cart) on individual pages. You should not disable it unless it negatively impacts your site.
- WooCommerce Sessions Cache - Disable this option as it attempts to cache the products in your users' carts, and you do not want that.
- Ajaxify Prices - If your store has different locales, you should enable this as it adds the LazyLoad element to your prices.
CDN > General
- Enable CDN - If you are using a CDN provider, you can enable this. It will help you manage the CDN’s cache without having to log inside your CDN provider’s panel.
- CDN Hostname - Enter your CDN provider’s hostname here. It will typically be something like cdn.domain.com or static.domain.com.
- Use Different Hostname for SSL - You should not need this unless your site is not loading via HTTPS, and your current hosting provider does not offer you SSL.
- CDN Custom File Types(Premium) - You can add separate URLs for different file types. For example, you can have URLs for hosting your images: img.domain.com, CSS files: css.domain.com, etc.
- Exclude File Types from CDN(Premium) - You can add file types you want to exclude from your CDN.
CDN > Cloudflare
- Enable Auto Purge - Enable this to enable auto purge and remove the need to log inside your Cloudflare dashboard and clear the cache when you make changes.
- Cloudflare Account Email - Enter the email address you used to sign up with Cloudflare inside this text field.
- Cloudflare API Key - Enter your Cloudflare API key.
- Cloudflare Host - This text field will be typically filled with your domain name.
CDN > MaxCDN(Premium)
- MAXCDN Alias - Enter your MaxCDN alias if you are using MaxCDN.
- MAXCDN Consumer Key - Enter your MaxCDN consumer key if you are using MaxCDN.
- MAXCDN Consumer Secret - Enter your MaxCDN consumer secret if you are using MaxCDN.
Export/Import
These two settings will allow you to either export the settings you have configured for Swift Performance or import existing settings from a configuration you did on another site utilizing the plugin. It could be a good option if you want to use the same setup on different sites. However, note that each website is unique, and something a setup that worked elsewhere could act out on the new site.
Image Optimizer tab(Premium)
Swift Performance is one of the few caching plugins, which has a built-in image optimizer. While it may not be the best one out there, it does an outstanding job, and you can save some money by using it instead of investing in an image optimization plugin such as ShortPixel or Smush.
To use the optimizer, all you need to do is click on the “Optimize Images (All)” button. Clicking on this button will immediately scan all your files and optimize them based on the settings you made earlier in the Media > Images. Note that this process can take some time, depending on the number of images you have, so please be patient.
Database Optimizer
The database tab offers excellent functionality allowing you to perform various optimization and refurbishing tasks on your database. Over time, your database can get filled with unnecessary data that plugins and core WordPress components add.
This area is split into four sections.
General
The “General” section will allow you to optimize and reindex your tables, as well as to clear transients. It will also show you the size of your Autoload data, which you should keep below 1MB.
Posts
The “Posts” section will allow you to tidy up your posts and remove any unnecessary ones. You can use them to clear revisions, duplicated post meta, trashed posts, or orphaned post meta and orphaned attachments. You should always remove these as they do not serve any purpose and clog your database.
Comments
The “Comments” section is analogic to the above one. However, it is related to the unnecessary comments for your posts.
Terms & Users
The “Terms & Users” section will let you clear user-based data, such as capabilities and roles. Additionally, it will store any UX enhancing elements a user has selected for their account. Sometimes this data gets orphaned or persists even after you remove the user, and it is a good idea to remove it.
We HIGHLY recommend backing up your database before running any of the optimization options available just to be on the safe side if something goes wrong.
Plugin Organizer
The “Plugin Organizer” is a genuinely innovative feature allowing you to disable specific plugins on areas on your site where you do not need to load them. Using this requires a deep understanding of your website, and we suggest taking advantage of it only if you know your site thoroughly.
Once you open the Plugin Organizer’s interface, you will see all of them there and a dropdown menu, allowing you to select a rule that will remove them. You can get very specific here and exclude plugins from particular URLs, admin pages, mobile devices, roles, etc.
With this said, you already know how each and every Swift Performance setting works and what element of your website it reflects. We hope our instructions were detailed enough to help you adjust everything as desired and gather a significant loading speed performance.
If you are curious about the effect we managed to achieve using the Swift Performance plugin, we would like to welcome you to check out our recent Swift Performance – Free or Premium solution for Robust WordPress Optimization blog post where you will find "before" and "after" speed test results.