Go to Plugins->Add New and browse to your zip file for Scalability Pro. Upload then activate. You should also visit wp-admin > Super Speedy and enter your license key so you can download updates without having to re-upload a zip file every time.
After you have installed and activated Scalability Pro, you should visit the Settings->Scalability Pro page.
Table of Contents
Creating Indexes
The first thing most people will do with Scalability Pro is to create the indexes. These indexes speed up various areas of your site without changing any functionality, so you can safely enable all of these to see your site running faster.
Visit the Indexes tab, click Select All then hit UPDATE INDEXES. You should ideally do this at a low traffic time for your site as creating the indexes on larger sites can take a few minutes and can slow down the site for front-end users. You should also avoid editing anything while the indexes are being created or you’ll likely see the edit not complete.
Scalability Pro Options
The options below involve either removing, altering or microcaching certain slow parts of WordPress. These options are grouped into tabs to make it simpler for you to target your performance problem.
Please read the description next to each item carefully so you know if you should activate it or not. These options are ‘safe’ in that when you change the option back, your site will be as it was before.
Below you can find descriptions of each option along with the known or possible side-effects.
Archive Pages Tab
The archive pages options involve optimisations surrounding WP_Query and specifically when WP_Query is used to fetch multiple items, e.g. fetch 20 products for your product category page.
Remove sort options (sortorder)
This option lets you use the natural index and sort order on your posts. When WP_Query (used by WooCommerce, Custom Post Types, and Blog archives) fetches posts/products, it avoids custom sort options, requiring less CPU for sorting.
SQL Impact: This prevents extra sorting operations, reducing the time and resources needed to retrieve data, especially beneficial for large datasets.
Side Effects: Disables your default sort option. The natural DB sort order may vary based on insert order, affecting display consistency. Note if someone adds ?orderby to a URL (e.g. they choose a specific order from a dropdown) then this option is bypassed.
Remove SQL_CALC_FOUND_ROWS (calctotals)
This option removes SQL_CALC_FOUND_ROWS from SQL queries.
SQL Impact: Speeds up queries by avoiding a table scan to count the total number of matching items. Significant performance boost for large datasets IF the table scan is removed (other parts of the SQL query could still cause a table scan)
Side Effects: Pagination will show there being 100 pages regardless of how many there actually are. That means if you use this option, you probably want to use some kind of infinite scroll plugin.
Alter main query to use EXISTS rather than LEFT JOIN (changetoexists)
This option alter the main WP_Query SQL call to use WHERE EXISTS instead of a LEFT JOIN. This can significantly improve performance by removing the need for sorting and grouping results.
SQL Impact: Can turn a 4.6-second query (for 820,000 products) into a 0.05-second query by reducing the overhead of JOIN operations.
Side Effects: This is experimental and may cause compatibility issues with plugins and themes that rely on the default query structure. It might also lead to unexpected behavior or broken admin pages if not thoroughly tested. Future updates aim to stabilize this feature based on user feedback and extensive testing. If you find this option breaks any particular plugin, please post a screenshot below.
Optimise WooCommerce Group By (optimisewoogroup)
This option optimizes some queries by removing unnecessary GROUP BY clauses.
There are 2 cases when this can kick in:
- The query only selects from wp_posts and does not join to other tables – in these cases we can remove DISTINCT and we can remove GROUP BY as they make no sense.
- The query only selects rows from wp_posts but does also join to other tables, e.g. to wp_postmeta – in these cases we can use DISTINCT instead of GROUP BY. The GROUP BY operation requires first a sort of the data, then it removes duplicates whereas DISTINCT only removes duplicates, no initial sort.
SQL Impact: Avoids unnecessary sorting & table scans and which can dramatically improve query performance.
Side Effects: Should not have side effects. It only removes GROUP BY and DISTINCT when safe to do so, or it replaces GROUP BY with DISTINCT but only when safe to do so. It may result in the order of results changing if the ORDER BY clause is not present (since GROUP BY would order by the grouping column whereas DISTINCT will not)
Remove OR check for private items on front end (optimiseprivatecheck)
This option optimizes WP_Query to only check for published items.
SQL Impact: Removes redundant post status checks, improving query performance.
Side Effects: Private items will not be visible on the front end. In addition, some FSE’s are affected negatively by this option, e.g. Elementor draft pages will not be editable, so if you are using Elementor FSE then don’t use this option.
Single Pages Tab
This tab currently just has one optimisation on it, specifically for WooCommerce variations.
Remove Woo Ajax variations calculations (removeajaxvariationscalc)
Removes the count of WooCommerce product variations, which can slow down product detail pages.
SQL Impact: Reduces the overhead of variation counting queries.
Possible Side Effects: Speeds up initial page load. May slow down the variation drop-down box when clicked. May have no affect if you have altered how the variation form displays on the page.
Imports Tab
Defer term counting (defertermcounting)
Defers term counting operations to improve import performance. By default, terms will be recounted after every product update. Counting terms can take a few seconds on large websites, so avoiding this can significantly speed up imports.
SQL Impact: Prevents frequent term count updates, reducing the load on the database during imports.
Possible Side Effects: Term counts might be inaccurate until manually recalculated.
Cache Post Counts (cachepostcounts)
Caches post counts for all the various post types to replace the WP cache which gets wiped as soon as any item is updated/added/deleted.
SQL Impact: We create a little table and intercept the count terms command and if we previously counted, we return from the table cache. This covers queries like SELECT count(*) from wp_posts where post_type = ‘posts’. WordPress *has* a cache for this already, but they wipe the cache every time a post/product is added/updated/deleted which is all the time if you are importing.
Possible Side Effects: Cached counts may become stale and not reflect real-time data changes.
Remove Image Sizes Globally (removeimagesizesglobally)
This option removes unnecessary image sizes globally across your WordPress site.
SQL Impact: This does not have a direct SQL impact, but it significantly reduces the disk space usage and the number of image size variations generated during media uploads. It helps to prevent clutter and bloat in the uploads directory.
Possible Side Effects: If your theme or plugins rely on specific image sizes that are removed, it could cause images to display incorrectly or not at all in certain contexts. Be sure to verify that your active theme and plugins do not depend on the image sizes you remove.
Optimize Action Scheduler (optimiseactionscheduler)
Removes old clearable items from the Action Scheduler table.
- SQL Impact: Keeps the Action Scheduler table smaller and more efficient.
- Possible Side Effects: None noted.
Optimize Product Attributes Lookup (optimiseproductattributeslookup)
Optimizes the WooCommerce product attributes lookup table.
SQL Impact: Removes redundant columns from lookup queries.
Possible Side Effects: None noted.
Optimize Product Attributes Lookup (optimiseproductattributeslookup)
Optimizes the WooCommerce product attributes lookup table.
SQL Impact: Removes redundant columns from lookup queries.
Possible Side Effects: None noted.
[add remaining items above from this chat Plugin Optimizations Summary (chatgpt.com)]
[add items from chatgpt]
[add items from gpt]