Now we're getting back on track with a far smoother support system, it's released me from the shackles of just answering questions all day. As a result, ...
To celebrate both Independence Day on 4th July and the biggest UFC fight card of the year on the 7th July, we are running a double promotion. On 7th July ...
Great news - we have a new hire. Technically, he's been working for me for a few months now, off and on, but he's working full time now. Freddy has taken a ...
Note: Faster Woo Widgets has been renamed to Super Speedy Filters and a lot of progress has been made since this article was released. The original free plugin ...
Firstly, my apologies to those of you not using External Images. We have a change coming very soon which will give you the option to choose which email updates ...
Check out my latest Super Speedy Search update. Firstly, I've removed the hidden shortcode in the code as some were using that instead of the widget. I've also ...
In todays Super Speedy Search upgrade, I've added a new relevancy options feature to let you choose how the results of the searches are sorted. Previously, ...
I realised yesterday that all the lovely updates I've been making for Auto Infinite Scroll have not been reaching you. In the initial release, I had neglected ...
Note: Faster Woo Widgets has been renamed to Super Speedy Filters and a lot of progress has been made since this article was released Since pivoting the ...
There have been a large number of plugin updates over the past few weeks and some more which are rolling out today and tomorrow. These have been updates for: ...
Everyone else measures theme performance using GT Metrix. If you go do a Google search now for 'fastest WordPress themes' or similar, you'll find EVERY ...
The Foundthru demo site has been built to demonstrate the functionality and performance of the various plugins available from www.superspeedyplugins.com. Key ...
The latest update adds some Scalability Pro performance boosts. It includes two new options to further optimise the scalability of your website. Replacing LEFT ...
Hi everyone - If you've been using Price Comparison Pro, you know how awesome it is at scraping prices from ANY website. BUT - the configuration is a major ...
We have launched 3 new plugin packs - our Performance Plugin Pack, our Affiliate Plugin Pack and our Premium Plugin Pack (includes all plugins). To celebrate ...
In this minor upgrade I've fixed the custom CSS styling box so it saves properly now and I've added 'currency CSS'. Important note if you are using a non £ ...
You can just uninstall now and we delete the indexes for you and everything is back to normal, unless you had your term recounts switched off for a while in which case you might need to visit WooCommerce > Status > Tools > Recount Terms
Sorry – I meant the Archive tab which lets you alter WP Query functionality. If you disable these ones, it’s one of these that’s interfering with how Grid Builder work – let me know which option it was so we can update our FAQ.
There is so much that could be done here – Amazon have a new thing which is kind of a related products system but say you are looking at blue trainers, they then suggest shorts that colour co-ordinate and a t-shirt that colour co-ordinates to try and cross-sell visitors to buy an entire outfit.
Related products tends to be alternative products, then there are ‘customers who views this purchased these’, or ‘you may also like’ which tends to be bundles with small discounts, e.g. batteries to go with toys and then there’s the ability to make custom blocks.
If you want to talk about this further and flesh out ideas, come join us on our Discord server.
Also, thank you for the note on our breadcrumbs, I’ll get that fixed asap.
FYI – if you need more support, come join our Discord and we can chat on the channels directly
I’ll have a look and fix this for you
2. Yes, if you have images hosted somewhere else it lets you use that single store of images
3. No – you will not be able to resize these external images – in fact, only the FULL size image is every used.
If you are worried about data usage, then wherever your images are stored – e.g. images.yourdomain.com – if you place a CDN like Cloudflare in front of your domain then you can have Cloudflare resize the images on-the-fly for whatever sized device and whatever CSS setting is configured for that image. This works incredibly well and shifts all image resizing jobs over to your CDN.
You get the beta option with the plugin – if I were you I’d buy the Super Speedy Pack and install Scalability Pro, Super Speedy Search AND Super Speedy Filters.
I’m not familiar with this codecanyon plugin, but I had a look and as far as I can tell it just creates the relevant taxonomies for you (vehicle part, engine size etc) so Super Speedy Filters will let you filter on these and you can filter progressively and adaptively.
e.g. progressively – only show X filters once Y filters have been selected
e.g. adaptive – only show values which match existing filters.
Our plugin automatically hides irrelevant attributes in each category. If you configure the shoe_size attribute but then someone views the shirts category, the shoe size category will not display.
There are many context-sensitive widget plugins available – here’s my preferred one which lets you provide URL wildcards for free: https://wordpress.org/plugins/widget-context/
There’s also this one: https://wordpress.org/plugins/widget-options/
Here’s the option we have directly inside Super Speedy Filters to hide filters until other taxonomies have been selected: https://i.imgur.com/TZAD3Kt.png
But really, for full control, the Widget Context plugin works perfectly along with Super Speedy Filters. It depends how much control you need. Our automatic widget display/hiding works incredibly well but some users choose to hide some filters until a category is selected for example and THEN they rely on our auto display/hide functionality.
Regardless, if our display/hide/auto-hide functionality is not enough, the Widget Context plugin adds everything else you could possibly need. It’s fast too, tested against our 800,000 product demo store.
In the meantime, you can probably speed up these queries quite a bit by adding the following advanced/beta/undocumented options to your wp-config.php – please test and let me know:
if (isset($_REQUEST['fastajax']) && $_REQUEST['fastajax'] == 'true') {
define('WP_USE_THEMES', false);
}
if (isset($_REQUEST['sss'])) {
define('WP_USE_THEMES', false);
}
define( 'SSS_USE_FAST_SUGGESTIONS_AJAX', true ); // depending on your hosting, this may break the suggestions ajax callback
define( 'SSS_FAST_VISIBILITY_CHECK', true);
The above should go in your WP-CONFIG.php (not functions.php) and should go anywhere before the line which reads:
/* That's all, stop editing! Happy publishing. */
Agreed – I have an upgrade planned where I’m actually going to hold onto all the 2-character suggestion combinations in a front-end JSON object, so no DB calls will occur until 3 or more characters are entered.
There already IS a delay, but maybe it’s too low (I think it’s 50ms at the moment) and I should definitely add an option to increase the delay and/or delay until the user hits space or enter.
Ok, I’m going to implement a fix for this. I may need you to run a bulk update against your products to change a postmeta value, I can explain how to do a bulk update like this using your export/import tool if you don’t have a bulk updater plugin.
I’d actually replied to you 5 days ago, but I made the mistake of replying privately which meant only admins can see it, not even you. Anyway – yes, happy to help – contact me through Discord, provide your order number, I’ll get this fixed right away.
Hi – yes – the update is please contact me on our Discord server, you’ll find the link at the bottom of every page on this website to join – and send me your order number, I’ll get it fixed.
Hi – sorry for the delay in replying. Can you please come message me through Discord and I can get this resolved for you? You can message in the #super-speedy-filters channel. I’ll need to diagnose your issue.
Hi – as mentioned on Discord, if you can set up a staging/dev environment with a job I can run to import and delete the jobs and provide me SSH access then I can take a look into this.
It would be easier if you could provide the slow query logs for the delete operation, for any queries > 0.5 seconds while the delete is running.
If the slow query log doesn’t come up with anything, then I’ll need xdebug installed on your dev server where I can run the delete operation and capture the execution of the delete and step through it to investigate why it’s slow.
You can see how to install Xdebug here: https://www.superspeedyplugins.com/2022/11/23/installing-xdebug-remotely-debug-wordpress-gather-profile-traces/
An update on the above – if you have variable numbers of images, it’s better to wrap the prepending job of imageurl + image path inside a function so that image URLs are passed through empty in the import if the image path does not exist.
See the section titled Prepend Image Names with Image URLs for more info on this page.
Fixed
This has now been fixed. Please update to 2.73 and confirm here that it’s working for you now.
Thanks for letting me know – I’ll take another look at this and figure it out properly for you.
Bear with me, I’m looking at this now.
Hi – checking – which part of affiliate coupons is supposed to be using external images? Or are you saying that affiliate coupons stops external images displaying ANYWHERE?
We’re adding a sitemap to super speedy filters soon. But if you’re saying inline filters are producing different URLs to your sidebar filters then that’s a bug that I need to fix.
Hi – the debug output is for the beta versions only, but I agree, it can get massive if you have debugging and verbose mode enabled.
Check your verbose mode in Settings > Super Speedy Filters > Advanced
I’ll try and add MySQL 5.6 compatibility by the end of April, but really you should upgrade – either MariaDB 10.2+ or MySQL 8+ – both give speed boosts to database queries, as well as elimination of intermittent slowdowns which happen with 5.6.
Stuart – for faster answers, click the DISCORD link inside your account area and come chat directly to us.
Ah – the latest version of FWW requires MySQL 8 or MariaDB. You should ask your hosts to upgrade you.
If you want to use an older version, version 3.22 is the last version that doesn’t require MySQL 8.
I’m going to try and make a version that’s still fast that doesn’t require MySQL 8 or MariaDB.
I have confirmed the bug is what I think it is – if I change the default sort order in Appearance > Customise > WooCommerce > Product Catalog then all the products appear again.
I’ll get this fixed in my dev environment – it seems to be new to the way WP_Query is behaving with the new WooCommerce update – but it would be very helpful if you could get me FTP access to this site so I can confirm it working here too.
To clarify, the IP address in the last screenshot is my residential address – don't whitelist that one, whitelist my static VPN address of 18.132.134.226 please.
Looking into this, thank you for providing details
Spoke too soon again – 6.31 still has this issue. 27 seconds added to wp-admin. Maybe it will go away when the new Product Attribute Table has been created.
https://i.imgur.com/oCs3IQq.png
I’ll report back once that’s happened.
My bad – I’d updated our demo sites where we test everything to WooCommerce 6.31 which is actually the latest version and this issue is already fixed.
Foundthru was still on an older version which I’ve now updated and confirmed this issue is also fixed there.
Also – this is the best starting point: https://www.superspeedyplugins.com/2021/09/29/solving-wordpress-performance-problems/
Install Query Monitor, check your slow pages, look for slow queries and queries with very high row counts. High row counts commonly means that data is being parsed with PHP.
e.g. the vanilla WooCommerce Price Filter – it loads ALL of your products into memory and then using PHP calculates what the minimum and maximum price should be. On a 100,000 product store that will kill your server.
My filters have been built to scale and are tested every single release against multiple million product stores to ensure we haven’t messed up scalability and performance.
Related question: https://www.superspeedyplugins.com/question/questions-about-plugin/
Related question here: https://www.superspeedyplugins.com/question/price-comparison-pro-import-new-price-via-price-rule/
I am implementing this week – if you can join the #price-comparison-pro channel on our Discord server we can chat more about which rules to implement and test cases to confirm it’s all working perfectly before release.
Wow thanks – sorry I took so long to see this! If anyone else needs help and I miss a question, please visit our Discord server (personal invite in your account area) and nudge me to help you.
All 3 of these features implemented two weeks ago.
If you use a price range < $100 it's any price $100 or less. You can have overlapping price ranges if you wish since we don't count items per price range, so you can have < $100, $100 – $500, $500 – $2000 etc
Yes I can make a refund – but the latest beta version of Super Speedy Search is awesome – you can play with it here: https://demotemplate.demo.superspeedyplugins.com/
If you want to proceed with a refund, please email your order number to refunds@superspeedyplugins.com
Hi – sorry for the delay in replying – I don’t have time right now to code this, but probably in mid-february I will have time. If this is something you’re still interested in come chat to me on Discord and I’ll get it scheduled in and detailed in our Trello development board.
Thank you for letting me know – what kind of crash were you experiencing? I just tested logging in to my-account and it’s working for the two different users i tested.
Hi – still delayed on getting to this, it’ll be done by end of Feb for sure, maybe before then. But to answer your customers question about including categories in the URL, you can do that with FWW without using Premmerce link manager.
You can try switching off the permalink overrides in Faster Woo Widgets settings – there is a setting at the top to switch off the override – this would allow you to visit the product page even if it’s /product-category/category/product – but it will also prevent other pretty permalink features from FWW to be used.
It may be a workaround that works for you though – maybe you’re ok with having URL parameters for attributes?
Hi – I found the issue with Rehub – it was not overruling the rehub search box. If you can please test with 2.50 beta you should find a new option at the bottom of the settings > Super Speedy Search page. Choose to Override the WooCommerce Product Search and the Regular Search form and it should work perfectly now.
This has been fixed in release 2.50
This problem was our batch SQL processor failing due to timeouts. The client has 2 million products which shouldn’t really matter – the batches should work regardless the size of the database.
I’m working now on fixing this to make the batch processor work for every size.
Would you be willing to sponsor this feature add? I can heavily discount it for you and throw in a plugin bundle too. I have other bugs I’m fixing pre-new-year, so in any case it’ll need to wait until the start of January.
FYI – If you can please download the latest Scalability Pro from your downloads page, it fixes the issue with PHP 8. It was a cascading issue – if the site was unavailable for some reason (cloudflare was blocking plugin updates!) then it was crashing in PHP 8.
I’ve updated the plugin checker and I’ve migrated it to check for updates against my bitbucket repo so now it doesn’t break if the plugin updater website is not available.
Can you please make sure you are using the latest version? The latest version is 4.76
So you want something which will update your price to match your competitors price or your acquisition price * 1.04 (whichever is higher)?
Hi sorry I missed this – refund processed. Come join us on Discord if you like.
Sorry about the delay with this – I see adding compatibility with Premmerce Permalink Manager as a priority, but before the new year we’re focusing on fixing these bugs and getting FWW and SSS out of beta.
This is the board we’re trying to clear before New Year: https://trello.com/b/L9XeJrWC/plugin-development-bug-fixes
FYI – if you use WooCommerce it will automatically know the URLs for that one affiliate product, and then you can use an import tool like WP All Import to import the other URLs for that product.
Refund processed
I’ve created a Trello card here: https://trello.com/c/9H9uXS8Y/270-rebuild-ancestors-not-working-on-mariadb
Can you please send me access details for your server to me through Discord? I suspect there may be one of the SQL commands needs a slightly different format for MariaDB, but I can fix that quickly if you provide access.
I’ve created a trello card for this here: https://trello.com/c/9H9uXS8Y/270-rebuild-ancestors-not-working-on-mariadb
Can you please come to our Discord server and provide access for me to your server so I can test this issue with MariaDB? It should work with MariaDB but it’s possible one of the SQL commands needs to be slightly altered for MariaDB but I’ll need to find out which one.
Longer term, I’ll get another demo site set up using MariaDB to improve the testing process.
If you are saying that attribute filters are working but the category one is not, can you please try saving the widget again? Also, check the visibility settings, parent term restrictions (should be 0 by default) and other filter dependency (e.g. requiring another attribute to be set before displaying).
If none of these solve it, activate query monitor, clear your object cache and load a page where the category filter is supposed to appear. Maybe Query Monitor comes up with a red warning? If so, click that and send me a copy of the database error.
I think I see what you mean now – you want the category name of the /women/ part of the category (parent to this category) to be displayable. Currently this is not possible unless maybe you also have an attribute or tag which holds the word ‘women’ or ‘men’ – if you have an attribute like that, you can add that to the title.
I think I see what you mean now – you want the category name of the /women/ part of the category (parent to this category) to be displayable. Currently this is not possible unless maybe you also have an attribute or tag which holds the word ‘women’ or ‘men’ – if you have an attribute like that, you can add that to the title.
So – you want it to keep the existing filters when you click onsale? e.g. it should go to /sale/hbx/?
Why not hide the products you don’t want to see through the back end? Anything permanent like this should not be SQL’d on the fly – update the products to hide them from the catalog.
You say the shop is still slow, but since you removed that sorting, the main query dropped from 2.5 seconds to 0.2 seconds. Still not perfect, but it’s usable.
https://i.imgur.com/JkWEUHU.png
For anyone on our Discord server, you can follow the rest of this thread here: https://discordapp.com/channels/837258064704438282/857584095618007070/898291387399798844
It’s highly likely that Scalability Pro *has* optimised your main query, but Scalability Pro cannot do much with awful woocommerce filters where the SQL queries are not actually slow – where all the slowness happens in PHP. That’s why I created Faster Woo WIdgets to fix this other main issue for slowness in wordpress. To check your slow main query, delete all the indexes and deactivate scalability pro, then load your shop, open queries in query monitor, look for the MAIN query, check the time. Then reactivate scalability pro, add the indexes and check the main query time again. It’s always faster – that’s what it does. But you’re only as fast as your slowest bottleneck. I don’t advise refunding scalability pro, I advise adding faster woo widgets and super speedy search.
If your slow queries are coming from woocommerce, scalability pro will only speed up the MAIN query. To speed up all the filter queries I made the plugin Faster Woo Widgets. The only way to optimise those slow filters was for me to write replacements from scratch.
Hi – sorry – no progress yet. Been working on bug fixes for FWW first. It should be done in November. Sorry about this extended delay but I will make it compatible with Permalink Manager Pro as soon as I can. It should be very early November so about 3 or 4 weeks away.
Auto infinite scroll does not create indexes. If this is referring to Scalability Pro, indexes are up to date as soon as you edit anything – they are maintained directly in the database.
If this is referring to Faster Woo Widgets, there is a button in there to re-index and recreate the object_ancestors table we create.
If this is referring to Super Speedy Search, the current beta version maintains the indexes automatically, the upcoming beta version has a newly created table which will be maintained automatically but there will also be a button to rebuild the table if needed.
There’s no harm to having multiple indexes – I said before, there will be a minor impact on writes to postmeta and a little extra space used on the disks, but not much to notice. I’ll upgrade Scalability Pro to detect other optimisation plugins and indexes created by other plugins now that they seem to be adding indexes too!
Also note that your /shop/ page is probably very slow due to your filters. All other filters we have tested do not scale well. It’s why I coded up our Faster Woo Widgets plugin so be sure to check that out too.
Hi – yes, can you provide any more details? If you wish, come join us on our Discord server where we can chat live and I can help you.
Hi – if you message me directly on Discord you can send access there. Also, you can create a private answer onto this question if you wish with acess details.
Thank you for letting me know this is using Permalink Manager Pro. I’ll get a solution figured out for you for this.
Also – if you could please contact me through Discord (link in your account area) and provide me with SFTP access, that would help a lot in debugging how your permalink manager is working.
Neo – can you please add more content to the Trello card? WordPress does not natively allow non-unique slugs, so I’m guessing you must be using a permalink manager plugin of some sort?
e.g. if I create a 2nd category called Jeans under /women/ when I already have /mens/jeans/ then wordpress creates the category slug as /women/jeans-women/
My plugin will have to be updated to work with whichever permalink manager you are using. Please update the trello card to help me figure this out.
This was fixed again (failed first attempt) back when I added the wp_fww_ancestors table. This single table is prepopulated in the background and eliminates the need to join to so many tables.
This was fixed – it was a situation with lots of top-level taxonomy terms. I refactored how the pretty-permalink URLs are dealt with and also added options to settings page to enable/disable key features to make narrowing down any future freezes far easier, while also giving more control to admins over which plugins to use for which pieces of functionality – e.g. some people like to use other plugins that alter Woo titles, so you can now disable that feature too in FWW.
https://www.superspeedyplugins.com/knowledgebase/collapsible-filters/
https://www.superspeedyplugins.com/knowledgebase/products-in-stock-filter/
https://www.superspeedyplugins.com/knowledgebase/filterable-products-on-sale/
I added this back in version 3.00 or so – you could always use the Widget Context plugin, but anyway now in Faster Woo Widgets we have the following two options:
Hide this filter until X,Y,Z taxonomies/attributes are selected – e.g. you could enter ‘product_cat’ here to hide other widgets (and speed up your shop by not running the code) until the product category is chosen.
Disable this filter until X,Y,Z selected – actually runs the code but then makes the filter transparent and not clickable until product_cat is selected (for example). A tooltip text box is also provided so you can inform the users what other filters they need to select in order to use this filter – e.g. “Please select a Car Make before choosing a Car Model.”
Implemented – I think you actually provided the code for this!
Implemented a while back – I’ll get better at keeping these feature requests up to date – I’ll keep a link to the feature request in the Trello card from now on.
Implemented back in 2.51 – sorry for not updating this – we’re on 3.18 now
Implemented in version 2.90 I think – there or thereabouts. We have a nice little circle next to the filter title showing how many values in that filter are selected.
I’ve asked Glyn to build a demo site for you so we can find out. This may not be completed until Monday.
https://trello.com/c/MQpOMray/250-create-quick-demo-for-vehica-theme-for-user-to-test-external-images
Which version?
Actually – it was added in version 2.34 – sorry again for not updating this feature request. Got a new docs guy on board now, so this will become a thing of the past.
Sorry for being so slow to update this feature request – compatibility with Woo Brands and other custom taxonomy plugins fully working from version 2.53 which was back in April. For reference, we’re on version 3.18 now!
This is fixed – i think in version 2.99 roughly
Implemented in beta 3.03
This is fixed:
https://foundthru.com/shop/animal/?s=dog+bed
https://i.imgur.com/D6t2IEy.png
8 matched items in widget, 8 on the page.
Similarly here:
https://foundthru.com/shop/?s=dog+bed
Flavours not listed any more.
https://i.imgur.com/oTI1Vff.png
This is theme dependent. e.g. Rehub:
https://i.imgur.com/2h6UgWz.png
versus Woodmart:
https://i.imgur.com/2vD2cwh.png
Can you please test disabling the option in scalability pro that removes pagination and ordering and re-test with formidable forms?
If setting those options to ‘slowest’ fixes this please let me know and I’ll update the plugin to fix this with formidable forms.
Yes, you can delete it manually. I’ll figure out why it’s not deleting properly.
Also – please note that the Walmart site is using Ajax to populate the page – if you view source on the page, the prices do not exist. That means, to scrape the site you should use the Scraper API Rendered option.
There’s a beta update released today – can you check if that fixes it, and if it doesn’t please come join our discord server where we can help you over chat. https://discord.gg/AqSpnCeQnf
Note: That’s quite a hard thing to debug since the ‘save product’ or ‘publish product’ button does stuff in the backend and THEN shows the next page, so you don’t see any of its activity in Query Monitor. If you can create a dev clone of your site then we could run xDebug on the Save Product button to find out everything that happens. You could also perform a grep through your source code to find which plugins or custom functionality is hooking onto the Save Product button. If you SSH to your server, then change directory to your plugins folder then you can run this to find plugins that add to the save product hook: grep “‘save_post'” . -R -l
Then repeat this inside your wp-content/themes folder to search your theme and child theme.
I’ve seen cases where the permalink changes don’t stick – visit Settings > FWW, hit Save, then Settings > Permalinks and hit save. If it’s still causing an issue, please come to our discord server and I’ll help you out: https://discord.gg/AqSpnCeQnf
And finally – we just added a new bonus to the bundle packs where you get access to our Discord server to chat directly to us and help us with development.
To clarify – if you can provide me with a dev/test environment for the Yith Brand images, I’ll make sure that it’s possible to use the image from Yith for the inline filters.
Hi – The Faster Woo Widgets plugin contains some upgraded code of the Super Speedy Sale Page. Please disable the Super Speedy Sale Page prior to activating Faster Woo Widgets.
I’ll get this error fixed in future versions, but regardless the Faster Woo Widgets plugin is going to tell you to deactivate the Super Speedy Sale page as it’s redundant if you have FWW installed.
See my separate answer.
We have a copy of the theme, we are installing it on a demo site, we’ll get back to you today with an answer.
This theme was investigated, and we found it compatible with one exception (including a workaround for that exception): https://www.superspeedyplugins.com/knowledgebase/featured-image-broken-with-the-houzez-theme/
Hi – I see bakeware coming back sub-second – https://foundthru.com/?s=bakeware&post_type=product – maybe you’d checked before I reactivated Super Speedy Searhc.
It’d be great if you could tell me if you tried this and if it was compatible with the Real Homes theme – if it’s not, if you can send me a copy of the theme I’ll make it compatible.
Sorry about the delay with getting to this. I’ll try and get a solution for you over the weekend. One thing to check is changing the display option for gallery to the default and then it normally works – see this other answer for a similar situation:
https://www.superspeedyplugins.com/idea/plugin-not-working-with-houzez-theme/
See this other question for help with this: https://www.superspeedyplugins.com/idea/plugin-not-working-with-houzez-theme/
What I mean is: on your search results page you could include a Faster Woo Widgets taxonomy or category widget and this widget would be filtered based on the search you’d just performed. That means you could present a list of matching taxonomies/categories/attributes/colours/whatever above the search results and provide this extra option you want to provide to your users to show matching taxonomies.
Also – re: Faster Woo Widgets – yes, categories, custom taxonomies, ajax price etc, yes – I’ve re-enabled a bunch of these – they all got disabled when I’d put Oxygen onto that website to test the speed of Oxygen. If you click here then expand the BRANDS widget you’ll see a custom taxonomy in practice – same with TAGS:
https://foundthru.com/dogs/
Sorry for the temporary slow demo site but we use it a lot for testing various things and fixing them. I’ve got Glyn building a large demo store that won’t be edited and it’ll have various subdomains so you can see it all with different options, different themes etc and I’ll figure out some way of allowing potential customers to try out the admin panels too.
It doesn’t really matter – taxonomies can be hierarchical, so if you don’t need hierarchical then use attributes. There are a few extra display options for attributes rather than taxonomies.
I think I would need to take a look at your import to help you with this – can you submit a private answer with credentials and provide the URL of the import that fails so I can look? Would also be useful to see your debug.log file.
Can I help you with Faster Woo Widgets? It’s an awesome plugin and we’ve been working hard on it – you know there is a beta version available with major new features for SEO, permalinks, canonical control, custom taxonomies, woo brand compatibility and more?
And if it doesn’t work, I’ll alter the plugin to make it work or write a guide for you showing the workaround to make it work.
Update on this – we’re looking at Oxygen properly next week. I’ve had many reports from Oxygen users that while the Oxygen front-end is very fast, the admin area is incredibly slow so I’ll be looking at speeding that up.
Alternatively, curry’s are changing the HTML on page load, if you view source you’ll see better CSS classes you can use. I found this for regular price for currys:
#product-actions .prd-past-amounts span[data-key=”was-price”], #product-actions .prd-amounts .current
(note there are 2 selectors in there since the regular price will change CSS selectors if there is a sale happening)
and then for sale price you can just use:
#product-actions .prd-amounts .current
https://i.imgur.com/At8AxX5.png
Ok – can you please test your WooZone/AZone Imports now and let me know if: A) They still work, B) They are far faster
I discovered that WooZone is doing a whole lot of unnecessary work every row it imports – basically it recalculates everything to tell you how fast it’s done it, and yet calculating this stuff is what is slowing it down…
I had to alter the actual WooZone code – I have a note of the alterations I made and will write these up into the case study. If this works for you and you like the speed, we can send the optimisation instructions from the case study to the Azone plugin authors so they can improve their speed.
Ok – so that URL loads, but I don’t see price comparison pro on it anywhere. Can you set up a test page where I can see what you’re trying and link me to that URL?
I can see you have Price Comparison Pro activated when I look at the source code (I can see it’s loading some CSS in the source) – what is it you’re expecting Price Comparison Pro to do here?
Which images do you want it to load? That’s not quite what it does. I need more info to be able to help.
The example you sent me, it looks like it’s correctly grabbing the price but that’s from ao.com rather than currys – do you have the currys example you said wasn’t working?
I logged in, I saw this in your CSS: https://i.imgur.com/OZB9inK.png
The CSS selector should just be what I said, the # at the beginning means CSS ID whereas the . at the beginning would correctly identify the element based on the CSS class.
These are all fixed in beta 2.66 – the ‘override yoast’ option is renamed to ‘override meta titles and meta descriptions’ – if you don’t enable that, it won’t override your rank math seo stuff.
Why don’t you just alter your import job to import those variation values as options instead? WP All Import will definitely be able to help with this and the options will just be custom postmeta data.
I get a 404 error on that page, but anyway to answer your question I’ll need something more specific. Provide me a URL where you’ve added Price Comparison Pro and I can investigate to find out why it’s not scraping.
Here’s CSS to use to grab the price from that page: .summary .woocommerce-Price-amount.amount
Have you followed the guide to using the SelectorGadget chrome extension? It really helps make it quick and easy to figure out which CSS selector you need to identify the price on the page.
There are a few choices for Product Options/Product Addons. Here’s a free one: https://wordpress.org/plugins/woo-extra-product-options/
Or there’s this: https://wordpress.org/plugins/wc-fields-factory/ or https://codecanyon.net/item/woocommerce-custom-fields/11332742 or https://wordpress.org/plugins/woo-custom-product-addons/
They all do similar things – basically let you collect additional info (e.g. with a select box containing compatible models) before purchase.
re: your single attribute – If model and type depend on each other then yes, one attribute, but if there are a list of models and a separate list of types that don’t depend on each other and are valid on their own then 2 attributes would work.
Just one thing – have you tried this: Add your faster woo widgets to your sidebar, visit settings > Faster Woo Widgets, configure permalinks, hit Save, visit Settings -> Permalinks, hit Save – then test – I know this fixes a known bug in another scenario when permalink slugs end up duplicated so that may also work here.
Hi – I’ve got the access details, I’ve been working on a case study but I’ll take a look at this as soon as I can and see if it’s something simple to add compatibility. I’ll try and take a look tomorrow morning, you’ll have an answer for sure by Monday.
Ok – thank you for providing access, I’ll try to take a look at this tomorrow morning.
Ok – coupon code: info36 – https://www.superspeedyplugins.com/product/price-comparison-pro/ – will work against the Unlimited Use + Lifetime support option there
I did see some slow queries before with query monitor and show processlist, in particular WooZone has some very badly written SQL queries. It may be possible to optimise them a bit using indexes, but really it looked like I need to rewrite them to run fast.
No unfortunately not! You sent me your public key, that’s not how SSH works – if you can’t make an SSH key, I just need SSH access to be able to log onto the server – there’s a guide here: https://www.superspeedyplugins.com/2019/02/22/how-to-add-the-wp-intense-ssh-key-to-your-server/
But when I say SSH access, I mean to be able to log onto your server, not just FTP, but to be able to see and interact with the services – mysql, php, nginx, apache, redis, whatever you’ve got – in particular I need to access mysql to enable the slow query log. It might be your host doesn’t provide SSH access? If so, I’ll need to clone your environment to my own so I can actually work on this.
Cool, ok, I’m logged in – where is the example I can look at, which website are you trying to scrape, which CSS selectors did you try, which widget is it, where is it?
Can you add a private answer here and i’ll send you a private coupon to get it again (for free), that’s the easiest way.
Changelog is up to date – fresh update released today, but still not for product variations. I’m kind of holding fire on optimising this because Woo are restructuring their tables which will help me optimise. In the meantime, use product rules where possible instead of variations and use an object cache to speed up the remaining variations.
Product rules and product options are better/faster if the price doesn’t change with these options or if the price changes by a set amount.
Hi – I can issue a refund – sorry I missed this private question – I still don’t see a question though – I could try logging into your site but I don’t know: 1) Which URL you have tried this on? 2) Which sites are you trying to scrape? 3) Which URLs are you trying to scrape.
Please – if you wish to continue using the plugin, I can help you, but please ask a fresh question and provide full details about what you are trying to do rather than just “It’s not working”
Replied to your email, waiting on SSH access so I can enable the slow query log and find out the query groups that are performing badly here.
The EXPERIMENTAL option was the 3rd or 4th option down relating to fixing LEFT JOINS. The way this is handled is improved in the latest beta and avoids these errors.
That’s odd – I see it in your downloadable product permissions. Did you contact me in another way and we resolved this already?
That’s great news! Thanks for letting me know
Fixed in 3.75
Fixed in version 3.75
Done
Yes please – or you can add the screenshots here with Imgur. I specifically need an import I can run and ideally re-run multiple times so I can spot what is slowing down WooZone.
I’ve created a coupon for you since without it you won’t get updates – coupon code is PHILIPRENEW – it’ll work for 100% off the Scalability Pro lifetime unlimited license. Sorry for the hassle with this, it was my mistake deleting the old product when updating licenses.
The login you provided doesn’t work
Are you entering this into wp-admin->WP Intense? If so and it’s still not working, can you please create a private answer below and tell me your license key and order number? (You are correct the license key is the API key from your account area)
I’ve added this new option – show price ranges as text links – in Faster Woo Widgets beta 2.47. The user can choose to display the price ranges in a drop down box, or as text links like this:
https://i.imgur.com/5AofyJ2.png
https://i.imgur.com/cLBNxVs.png
Fixed in beta 2.47. Counts now appear inline, inside the label, and I’ve greyed them out a little and switched the ordering of the CSS style sheets since a recent WooCommerce update was causing their CSS to overrule ours.
https://i.imgur.com/ESyCe2o.png
https://i.imgur.com/VL0G2B6.png
I’ve also added a KB guide on how to customise the appearance of the product counts:
https://www.superspeedyplugins.com/knowledgebase/how-to-customise-the-product-counts-in-the-attribute-and-category-widgets/
Hi – are you still looking for help with this?
FYI – I’m trying to reproduce this in my own environment anyway, but if you can provide access it’d be v helpful
I’ve had a quick look at this – rounding up the pcpro bugs for a quick sprint today – I see 8.50 with 10 scored out (looks correct), I see 8.50 at the top of the comparison table (also correct). The part I see that’s wrong is in the add to cart button – I think this is coming from your theme probably.
https://www.comparebh.com/product/apple-20w-usb-c-power-adapter/
https://i.imgur.com/8KUBUGV.png
I also see the wrong price in your price history section – https://i.imgur.com/EYC4SO0.png
I can’t access your wp-admin however – could you please create a private answer here and provide me access to wp-admin? I would like to be able to edit the product to see what’s contained inside it. I’m guessing at this stage that somehow the sale price is not being updated into WooCommerce but Price Comparison Pro is updating the sale price on the page since it has the prices cached.
That would make sense with what you’d said earlier I think – that only the cheapest regular price is being set in Woo rather than the cheapest overall price.
Thanks for reporting back – I’ll update the answer and the plugin will be fixed so that this won’t happen on any future sites that don’t use categories.
Houzez theme is now fully compatible with one caveat – there is a display option inside the Houzez theme where the authors have neglected to surround an image URL with quotes.
When images are being uploaded to WordPress, that is fine, since image URLs will have a standard format – but when using external images, and in your specific case, some image URLs could have brackets in them.
This affects only the featured image, and only with 1 of the 5 display options in the Houzez theme. You can see a workaround for this here if you need that specific display option in Houzez:
https://www.superspeedyplugins.com/knowledgebase/featured-image-broken-with-the-houzez-theme/
I think so long as you added the category widget, visited settings then hit save, then you can delete the category widget and it should still work with ‘filter’ in the base permalink if you wish that.
I’ve fixed that – the way I fixed it was by adding a category widget, visiting Settings -> Faster Woo Widgets then hitting the save button then deleting the category widget again. I’ll add a fix to ensure you don’t need to go through this and you can have a shop without categories.
With one caveat – when you check your shop, please can you empty your object cache and any widget cache you have enabled? Somehow I’m seeing /filter/… still appear as a URL even though I’ve changed the attributes only filter base to /shop/
Can you please check your shop and confirm you can’t see this doubling/trebling bug again?
More specifically – it’s also when you have the ‘attributes only filter’ set to something other than ‘shop’ – or whatever the shop url is. I’ll figure out a fix for this – in the meantime, I’ve altered your setting to ‘shop’ instead of ‘filter’: https://i.imgur.com/4goPMtf.png
So it seems to be with certain themes, if you don’t have a product category widget, and if you have the shop set to the home page, this is when this doubling bug appears. Working on a fix now.
Thanks for this report. I’ll try and have this figured out today.
Ok – send the credentials to credentials@superspeedyplugins.com – they get deleted from there after a month. Let me know when you’ve sent them. I’m not working tomorrow, but I’ll take a look Thursday and figure this out for you.
And failing that, can you provide credentials (FTP and wp-admin) so I can take a look? You can answer with a private answer here, or edit the original question and enter the info in the hidden area.
If you install the plugin mentioned here, how many image sizes does it tell you that you have? https://www.superspeedyplugins.com/2017/05/31/speeding-wordpress-imports-datafeedr-wp-import/ If you reduce the active image sizes to just the 3 or 4 you really need, how fast does your import proceed?
Off the top of my head, the only thing I can think might cause something like this is the ‘trailing slash’ feature in WordPress – do you have trailing slashes disabled? e.g. do your site URLs always end with a slash or always end without a slash?
Ok – when you say ‘variations’ you actually mean ‘attributes’ – right? But yeah, it really should not be doubling the attributes.
I’ve not seen this elsewhere – to figure it out I’ll need FTP and wp-admin access – can you update this question with credentials to access your site? (add them in the private area, not public!)
Thank you for the detailed bug report. I understand what you mean – I will take a look at this as soon as I can, probably Thursday this week. Added to the bug card here: https://trello.com/c/FooPbLkM/134-bug-and-perf-roundupany-plugin-this-sprint-includes-small-bugs-and-perf-improvements-from-any-plugins-other-than-fww
Hi – please get back to me if you’re still looking for this. I have time to do a free perf analysis this week.
In your case, you are not yet using an Object Cache – this should be your first thing to do to improve performance.
I can see lots of meta-related queries, these are get eliminated (cached for multiple pages rather than rebuilt every page), so adding an object cache will give you a good boost.
Read this getting started guide: https://www.superspeedyplugins.com/2018/06/30/wordpress-performance-quick-start-guide/
You need good hosting, object cache, then if stuff is still slow consider my plugins.
For extra debug info, if you enable debug logging then any queue processing or scraper processing errors will get output there: https://www.superspeedyplugins.com/2020/09/02/how-to-enable-debug-log-to-collect-wordpress-error-messages/
I guess you mean ‘filters’ being doubled, like /filter/black/black ? If so, can you confirm this is only happening when you have the shop as your home page? It’ll help me massively in tracking down this bug.
Ah – ok, interesting that you found 2 bugs here: shop as home page is not working (I think I know why, I’ll implement a fix) and 2nd bug that variations are being doubled?
Can you explain more on the variations being doubled? That shouldn’t happen. Is this also from the shop home page?
I’ve added this bug to the current bug fix sprint here – https://trello.com/c/FooPbLkM/134-bug-and-perf-roundupany-plugin-this-sprint-includes-small-bugs-and-perf-improvements-from-any-plugins-other-than-fww
Hi Yannick – I cannot log in – I tried /wp-admin, /wp-login.ph and /my-account/ but none of them give me a login area.
Can you upload screenshots of what you see in Query Monitor? It would be useful to see:
1) The top QM bar (total queries, total query time, total page time)
2) All queries, ordered by execution time (descending) – screenshot of slowest queries
3) Queries by component
4) Queries by caller
It does indeed seem very slow, but it’s difficult to tell right away what the problem is.
Are you still seeing this? Would you be able to view the wp-content/plugins/faster-woo-widgets/readme.txt file? The version number is at the top of that file.
Implemented in beta 2.46
And to answer your question about which plugins – it depends how many products you have – if it’s more than 3000 (including variations) then Scalability Pro will speed up the main WP_Query on both the archive and the product detail page. You should also look into getting Faster Woo Widgets (use the latest beta version) since this provides adaptive filters which are very very fast – when I tried filtering on your shop I regularly saw ‘no matching results’ which wouldn’t happen with adaptive filters.
Hi yes – I’ve been working on FWW updates, finishing that today and the rest of the week and next week is going to be other business – bug fixes, perf improvements etc.
I’ve added this to the list of tasks for this sprint: https://trello.com/c/FooPbLkM/134-bug-fixes-any-plugin
Harvey – could you please send a copy of Oxygen builder? I need it to add compatibility and fix the css.
The task is added on this card – https://trello.com/c/8WXnL17h/132-fww-custom-taxonomy-filter
I’ve added some fallback code to beta 2.45 so that it does INNER JOINs for the first 5 attributes that are selected but then reverts to the slower WHERE EXISTS for other attributes after that.
This should still be very fast since the first 5 INNER JOIN attributes should reduce the result set size that the WHERE EXISTS has to filter across.
Can you please try installing 2.45 and let me know if that fixes your error?
Regarding Oxygen Builder – I’d like to add support for this – can you please send me a copy of the plugin and I’ll test it on my local dev? I’ll fix up the default CSS etc too since yes, you are correct, the filters ‘inherit’ whatever your theme has configured for WooCommerce filters, so if that CSS is removed by Oxygen I’ll have to implement some defaults.
Ok – for the filters you added, were a lot of them custom taxonomies? Are they hierarchical custom taxonomies?
72 filters sounds like a LOT! With the way the underlying database is designed, to avoid the 61 table limit I will have to redesign the underlying table structures so that filters can be in a WHERE clause rather than a JOIN clause.
re: the shortcode bug, thank you for letting me know. I’ve added an item to my bug list here:
https://trello.com/c/8WXnL17h/132-fww-custom-taxonomy-filter
Can you tell me what theme you are using too or which builder you are using? I’ll get that installed on my dev environment so I can replicate what you are seeing.
Even more helpful would be if I could get SFTP and wp-admin access to that site if it’s a dev/test site?
Just a quick update that all reported bugs have been fixed in beta 2.40. There is still more testing to happen, so more bugs may turn up, but so far it’s looking very good.
Quite a few extra features because of this custom taxonomy – for example, you can add the custom taxonomy terms to your SEO titles, shop titles etc, and you can even use our ‘Inline Filters’ option to include clickable filters beneath your product (configurable) which show you the value for that product and provide a link to view other similar products.
For example, products with ‘brands’ set, you can choose to show ‘brands’ inline, then any product with a brand will have an extra hyperlink beneath it allowing you to filter to only show the brands of that specific product.
Next I’ll be finishing the testing, confirming no more bugs, then as much documentation as I can, then this will all be released to core.
I’ve added some 3 year plans, if you upgrade within 6 months you would get whatever you paid already reduced from the price of whichever 3 year plan you go for: https://www.superspeedyplugins.com/product/wpintense-plugins/
Let me know and I’ll make you a discount coupon when you’re ready.
I’ve seen this in current beta – is it beta you’re using?
Do you have your WP Cron running? If you install the WP Crontrol plugin or something similar you can see your cron jobs in the queue and any error messages from them.
Here’s the Trello card confirming this was fixed in beta in May 2020.
https://trello.com/c/FOxFmv3X/84-uncaught-error-operator-not-supported-for-strings-bug-found-on-client-beta-site
Visit settings page, save settings, this error should go away once you’ve saved settings once. Fixed in beta.
I’ve added a task to my trello card to double check this line in 2.27, but current beta 2.38 has no errors of this kind in various environments.
You can see the changelog here since 2.27 – a LOT of changes – I recommend you test beta on a dev server, but saving the settings in 2.27 should fix that bug.
https://www.superspeedyplugins.com/assets/plugins/faster-woo-widgets/beta/readme.txt
Fixed in 2.34 for categories AND custom taxonomies
Found the bug, fixed it. There was a product category called ‘uncategorized’ and this was conflicting. I’ve implemented a better check to prevent the main query running unless it’s on a page where it’s required.
I’d appreciate any comments and help anyone can provide with testing the new feature to address this feature request – more info available here: https://www.superspeedyplugins.com/2021/03/01/adding-a-custom-taxonomy-widget-to-faster-woo-widgets/
I’d appreciate any comments and help anyone can provide with testing the new feature to address this feature request – more info available here: https://www.superspeedyplugins.com/2021/03/01/adding-a-custom-taxonomy-widget-to-faster-woo-widgets/
I’d appreciate any comments and help anyone can provide with testing the new feature to address this feature request – more info available here: https://www.superspeedyplugins.com/2021/03/01/adding-a-custom-taxonomy-widget-to-faster-woo-widgets/
I’d appreciate any comments and help anyone can provide with testing the new feature to address this feature request – more info available here: https://www.superspeedyplugins.com/2021/03/01/adding-a-custom-taxonomy-widget-to-faster-woo-widgets/
A little update on this:
The custom taxonomy is pretty much ready with only a couple of things left that really matter:
There is a bug preventing taxonomy titles appearing and I haven’t implemented URL rewrites for /brand/pedigree/ yet – but I have implemented /pedigree/ – so, remove the base from the custom taxonomy in FWW Settings page and you can see this all working.
I’d love your help to test this, especially if you have a dev/test server with Yith or Woo Brands or any custom shop taxonomy – the latest beta is 2.34 updated 5 minutes ago. If you do install it (from your account -> downloads):
1) Visit Appearance -> Widgets, add new custom tax widget, choose the taxonomy and any other stuff you want (the tax base field is not properly used yet, so you can ignore that)
2) Visit Settings -> FWW, scroll to the Remove /product-category/ prefix section and you’ll find your taxonomies – you can re-order them and you can tick the box to remove the permalink prefix (e.g. remove /product-category/ or remove /brand/) – make sure to tick that just now since I haven’t implemented the rewrite rules for /taxonomy/* yet
That’s it – visit your shop and test. I’m adding items to my testing checklist to try and make sure nothing falls through the cracks – if you find any issues, let me know – I’m probably most worried about behaviour here:
* Single product page where product has multiple taxonomies
* Product tag archives
* Brand/custom tax archives (e.g. woo brands, yith brands – specifically I mean the extra archives these plugins create like the A->Z list of brands and where those clicks lead to)
You can use the software forever, but the yearly license is for updates and support. It’s similar to other plugins that do yearly licenses to cover ongoing support and development costs. I used to only sell the plugins with lifetime licenses, but there wasn’t enough revenue to cover development costs so I had to take on performance analysis and optimisation jobs to have enough revenue to develop the plugins. I reduced the price when I moved to a yearly license structure, and I have nice upgrade options – if you upgrade within 6 months of purchase, you get the full amount you spent already as a discount. After that, you get 50% of what you spent as a discount on any upgrades.
The category widget has been refactored, so in beta 2.34 this bug is fixed
Fixed in the custom taxonomy and I’m about to refactor the category widget to extend the custom taxonomy widget so it’ll use the same code except with ‘product_cat’ fixed and a different title.
I think I need a better name for the ‘Reset/Do not reset filters’ option in the category and custom taxonomy widgets.
If you have reset chosen, all categories will always display, and the product counts will be the full product counts for those categories.
If you have donotreset chosen, only the categories which match your other selected filters or other selected taxonomies would be shown, and the product counts would be reduced.
For example, if you were on /shirts/white/, with donotreset chosen then only the categories with ‘white’ items would be shown, and the product counts for those categories would show the number of white items in that category.
https://i.imgur.com/uuqw4wc.png
I don’t think “Reset filters” or “Do not reset filters” captures this functionality properly – if anyone has ideas for what to call these two options let me know.
There’s an upgrade planned for Scalability Pro which will allow you to temporarily alter the ‘registered sizes’ when you are importing to only import 2 sizes – one for Woo thumbnails and the other for the featured image. In the meantime, you can try installing the ‘Image Sizes’ plugin and have a look at how many registered sizes you have – if you remove sizes you don’t need, your imports will speed up: https://www.superspeedyplugins.com/2017/05/31/speeding-wordpress-imports-datafeedr-wp-import/
What is it that’s causing you to add products so slowly? Is it import speed, or sourcing products?
This bug will also be fixed in this sprint: https://www.superspeedyplugins.com/idea/fww-2-33-broken-pagination-on-category-taxonomy-archives/
I’ve updated the Trello card with more findings, thanks in part to @twardy.
In particular, this feature add-on will:
To explain, here are some URL examples with the product brands custom taxonomy – here I’m using ‘shirts’ as a product category, ‘white’ as a product attribute, and ‘adidas’ as a custom taxonomy (in this case a brand custom taxonomy):
All of these URLs would be allowed:
In the widget settings, I’ll allow users to configure the /brands/ slug, and in the FWW settings page I’ll allow users the same control currently available for product categories – i.e. you will be able to remove /brands/ from the canonical URL so /adidas/ works as well as /brands/adidas/ but the /brands/adidas/ would have a canonical URL pointing at /adidas/.
Now with the addition of additional taxonomies, users will also need a way to order the taxonomy slugs, so I’ll be adding that in too – it’ll use a similar kind of drag and drop config as I’m using for attribute ordering, but in the case of taxonomies, slugs would always be used – with attributes, it can be either slugs or attribute key/value pairs.
e.g. if the user has both a brand taxonomy, the settings page will allow them to configure if the canonical should be /adidas/shirts/ or /shirts/adidas/
The good news is that last years work on refactoring the code to use a Link class makes this all a *lot* easier – that class will handle everything relating to:
If you have comments on any of this, let me know in the comments.
Also – if you’re thinking to get Price Comparison Pro, I recommend you get the plugin pack – it includes PCPro and you can then have peace of mind that performance issues will never hurt you.
https://www.superspeedyplugins.com/product/wpintense-plugins/
That’s great news, 12000 products is not so many, but it’s enough you’ll notice a speed boost from Faster Woo Widgets and Scalability Pro.
We already have the option to allow you to control the category order – please visit the settings page of FWW Beta and enable the “Allow Manual Sorting” option. This gives a slight performance impact, but will then respect whatever ordering you have chosen for your categories/attributes.
Also – there is already an option to show just the children of the current category. One potential use case is to have 2 category widgets – one showing the top level hierarchy only and the other showing only the children of the currently selected category. This 2nd widget option will only display IF a category is actually selected.
To use this option, visit Appearance -> Widgets, expand your FWW Category widget, then change “Type of category list” to “Children”.
This was added in the beta version about 6 months ago – I’ve still to document how it works, although it’s pretty clear from the settings page – you can either have ?onsale=1 (or whatever URL parameter you wish) or you can have /sale/dogs/ etc so /sale/ would come before your filters.
In addition, the beta version allows you complete control over how these on sale pages behave for googlebot – e.g. you have separate control over indexing the onsale pages as well as canonical, nofollow and noindex control. You can ommit onsale pages from googlebot if they have fewer than X items, or if they have more than Y attributes selected, or if they have more than Z values per attribute selected.
The on sale pages will be included in the upcoming complete top & bottom text control feature upgrade which will allow you granular level control over text above and below your product pages.
https://i.imgur.com/byQ2yXa.png
It’s working perfectly with that setting – so:
If you have “Display current category as removable filter” set to yes then clear filters will revert to /shop/ otherwise it’ll revert to category.
https://i.imgur.com/W7jT9v7.png
Ah – wait – that’s by design – if you click ‘clear filters’ it wont count the category as a filter.
I’m testing with the Existing Filters widget – there’s an option in there to have category be a filter in that widget. In *that* case then the ‘clear filters’ button should revert to /shop/ instead of /dogs/
This is sort of still an issue – it doesn’t go to a 404 page or anything, but:
https://foundthru.com/dogs/?s=bowl
When you click to remove ‘bowl’ it correctly goes to /dogs/ but when you click to ‘clear filters’ it only goes to /dogs/ rather than to /shop/.
I’m guessing it’s a conflict with the ‘do not reset’ category option.
All fixed in beta with the new FWWLink class.
Titles and tags and everything has been massively improved.
I don’t have any repro for this. Can I ask: Have you disabled sorting with the Scalability Plugin?
If so, disable that option if you wish to be able to sort your archive results.
You can see it working here:
https://foundthru.com/baking/bakeware/?orderby=price-desc
Fixed a while ago in beta
I’m closing this bug – if you wish to follow progress on Yith & Woo Brands compatibility, it’s being added through a custom taxonomy widget which you can upvote to follow here:
https://www.superspeedyplugins.com/suggestions/allow-filtering-products-by-any-custom-taxonomy-terms-e-g-brand-or-product-tag-new-fww-fast-custom-taxonomy-widget/
Fixed in 2.33
Confirmed – if you use slugs for each of the parameters, it works, but if you use key/value URL parameters it doesn’t work.
Fixing it now.
Fixed in 2.33.
I have no repro on this at all, nor any similar reports from other users.
Thanks KT for debugging this – I’ve fixed this in 2.33 which you can see on Liam’s site.
2.33 will be deployed along with other updates soon.
Liam – re: the a-p-c filtering issue:
If there is no category, then there *must* be a preceding slug, e.g. /filter/ or /filtr/ or /f/ or whatever.
You set this inside FWW settings under the “Attributes-only permalink base” setting – please do not leave this empty.
Here you can see a-p-c filtered correctly with pretty-permalinks:
https://instylr.co.uk/filter/a-p-c
Also – when you change the permalink settings, you may need to visit /wp-admin/options-permalink.php and hit the save button. The plugin attempts to do this for you, but it seems like sometimes it doesn’t succeed.
Hi – this was an error – the version WAS 2.32 but the plugin header wasn’t updated to reflect that.
There’s another new version coming out shortly too.
They will be replaced. When the external_image_url field gets updated, it causes a function to run to update the hidden _external_image_url to be an array image version of whatever list of images is in external_image_url. The first image will be the featured image, all others will be gallery images. I did in the past have a separate field for gallery images and I could reintroduce this if you wish – this would mean that you could, optionally, keep 1 featured image in the external_image_url field and then your gallery images into a different meta field.
I’ve provided email in the private area.
Use the email dave@superspeedyplugins.com. Also – if I need SSH for this, can you give me the direct IP address? Regularly people have a CDN in front of their domain, but if you don’t have that then I should be able to use k-watch.nl to connect
Hi – sorry about the delay – I see the ‘passphrase’ – but you didn’t provide any URL so where am I supposed to visit in order to help you?
Which version of External Images is this for?
You could use this CSS: span[data-id=”hotelOnly-price”] or span[data-id=”flightAndHotel-price”]. If you want to ask any extra questions, please ask a fresh question.
What list generation are you referring to?
That’s odd it’s not showing the URL. If you can please update your question and add the login creds under the private info box that would be great. I may need SFTP access too. You can provide creds or add my SSH key:
https://www.superspeedyplugins.com/2019/02/22/how-to-add-the-wp-intense-ssh-key-to-your-server/
This definitely sounds like the query to update the on-sale flag has not run. The plugin basically uses an on-sale flag in wp_postmeta to tell if a product is on sale or not. The default WooCommerce way is to actually compare the regular price with the on-sale price and if the on-sale price is lower, then it shows the on-sale flag. That’s very slow to run that code every time, which is why running an overnight job works better.
If you are saying that even after you’ve run the code to update the flag, and it’s run successfully, that products don’t show then maybe this is coming from the object cache. If this is the case, please update your question to provide in the ‘private info’ box your access credentials and a URL where the on-sale flag IS or ISN’T showing as expected and I’ll take a look.
Ok
Also note: The latest Faster Woo Widgets plugin is still in beta and has a LOT of upgrades compared to the core version including significant improvements over SEO options (indexability, canonical, titles and more) as well as control over on-sale pages etc.
Note: Scalability Pro has optimised the MAIN query but it doesn’t optimise these third party filter plugins because of how badly their SQL queries are written – it’s just not possible to optimise them.
If filters are the cause of your slow down, get my Faster Woo Widgets plugin or Elastic Search. My plugin is cheaper and arguably better, working with your existing MySQL database.
This is because in the code there is a check to see if the requested image is a fullsize image. I’d presumed resizing was only for other images, I hadn’t foreseen this use of Photon as a CDN.
I’ve removed this check from the beta version of External Images version 2.53 – please can you download this from your account area, upload it and test it on your dev site?
Can you update your question and include a wp-admin username and password? I’m seeing a cached version of the page so I can’t help with this info. I’ll need to install Query Monitor too. If you want to try and identify issues yourself, I have a little guide here:
https://www.superspeedyplugins.com/2018/06/30/wordpress-performance-quick-start-guide/
The wp-admin password you provided me is not working. Your plugins page will probably be running slowly because that page runs all the plugin update checks. If you have unauthenticated plugins, these will keep checking every time /plugins.php is loaded and can cause 30 seconds or more load time.
I’m keen to check your /shop/ page though, so please update your question private info with the correct wp-admin password.
Is this the beta version you’re referring to? If so, can you please update your question and provide a link to your product attributes page so I can see what is going wrong?
This looks like a bug. I’ve checked the code and the actual code looks correct. In order to figure this out, I’ll need access to your debug.log and SFTP and a wp-admin account on your dev site where I can see this happening.
Can you please update your original question above and add this private info?
I’m working on a solution for you so this will be easier to translate – it’s technically possible using CSS but that’s not ideal, so let me come up with something good for you.
I don’t see the screenshot – can you update your original question with the screenshot instead of providing an answer to your question? Or add a comment on my answer.
Hi – please bear with me – I’ve replicated this behaviour and I’m working on a fix for you.
Sorry – my email isn’t tracked for this stuff – I’ll check now and get back to you. FYI I’ve updated the Q&A system so you can provide private info here, but I’ll check for your email.
Good, thanks for letting me know.
I’ve updated an extra setting on our outbound mail server so your mail server should be able to authenticate us now and allow the emails through. Please confirm.
All of this control has been added into FWW beta – the latest beta version is 2.32.
If you try with 2.32 and are still experiencing your filters not working then please enable your debug log and update your question with any errors from the log.
https://www.superspeedyplugins.com/2020/09/02/how-to-enable-debug-log-to-collect-wordpress-error-messages/
Yes, you can choose which URL to scrape however you wish and each unique URL you scrape can have its own unique affiliate URL (or direct or cloaked URL).
It doesn’t yet work with product variations out of the box but yes, you could code this up yourself so that when a different variation is selected you could show a new shortcode specific to that variation which would include the price comparison URLs and table and affiliate URLs.
If you code that up, then you could have a default displayed on the page.
Currently, there are two options for the buy button – either keep it as set in WooCommerce, or alter the WooCommerce price and buy button to reflect the cheapest product found. I could maybe code something extra up here for you if I can understand you further – if you want that, please create a feature request.
For a demo, check out https://www.foundthru.com where you’ll find some examples. Let me know if there are other specific examples you’d like to see.
Just to confirm – these are ‘warnings’ – in the beta version there will be warnings as well as usually a lot of debug output.
In the beta versions I make use of the error_log a lot.
Instead of displaying these warnings on the page, you could chuck them to the debug.log file – see this article:
https://www.superspeedyplugins.com/2020/09/02/how-to-enable-debug-log-to-collect-wordpress-error-messages/
Note – the shortcode I was referring to is the one specific to WooCommerce products for Price Comparison Pro.
There IS another shortcode which can be used to display the pricing table on ANY page – the shortcodes and their parameters are listed in the settings page of Price Comparison Pro.
Thanks – I’ve read your tickets and appreciate the new styles you’ve provided for Faster Woo Widgets. I’ll update the answer to this question once I integrate your suggestions into the beta code for Faster Woo Widgets.
And OP, can you confirm if you are using External Images too and if this problem persists?
Hi Liam – can you confirm if this is still happening? I think this error was in conjunction with External Images and was fixed. I think this was fixed at the beginning of September – https://www.superspeedyplugins.com/assets/plugins/external-images/readme.txt
Forgot to update this bug. It was fixed back in April in the beta version of Faster Woo Widgets.
Can you confirm which version of FWW this is for?
That definitely sounds odd – can you please submit a ticket with wp-admin access to your site and I’ll take a look?
Auto Infinite Scroll was pretty much created to work in conjunction with the ‘remove pagination’ option and I use it on plenty of sites. The ‘remove pagination’ option actually only changes the DB query for calculating total pages and instead fakes there being 1000s of pages then relies on Auto Infinite Scroll fetching the next page until there are no more.
Also – please note, there are other workarounds for Brands as others have pointed out in other feature requests. For example, you can create a BRAND attribute and then FWW works perfectly with that.
Hi Neo – sorry for the delay in replying – I’m coding more updates to FWW next week.
Please forward me a copy of the YITH plugin and I’ll test it against my development sites. Please send that through a ticket.
Please create a ticket for refunds.
Also – please be more specific in your description of what isn’t working or why you cannot use the plugins as this helps us improve the plugins for others in future.
It *was* a bug – related to WooCommerce no longer returning true to the is_shop() query.
I’ve implemented a workaround.
Can you add the specific error message you are getting? To grab the error message from your import, enable your debug.log file: https://www.superspeedyplugins.com/2020/09/02/how-to-enable-debug-log-to-collect-wordpress-error-messages/
I would also recommend in general two of my plugins – Scalability Pro and Faster Woo Widgets for your larger sites – they are designed to make large sites continue to operate quickly. Also Super Speedy Search if you have search functionality on your site – as fast as elastic search without the monthly cost and still uses your MySQL database.
1) You need to link to an actual product page – you are trying to scrape a price from this page: https://www.suryadental.com.br/luva-nitrilo-supermax.html?___SID=U but it has no price on it
2) You need to configure your CSS or xPath selectors for some websites – there are default configs, but for many websites you need to configure your own selectors – see https://www.superspeedyplugins.com/knowledgebase/how-to-identify-css-selectors-to-identify-retail-sale-prices/ and more generally https://www.superspeedyplugins.com/kb/price-comparison-pro/ for guides
3) You need to configure the logo in the config area of Price Comparison Pro – wp-admin -> Price Comparison Pro -> Price Comparison Pro, then scroll to that website, then paste in an HTTPS logo URL in the relevant box
4) There are 4 different styles available, they are listed in the settings page – full width, panel, float left and float right are all available, you are currently using float right – I suggest you try panel. If it looks odd, it may be down to the ‘position’ you are adding the price comparison pro box – in the settings you can choose which hook to use to place the box. I suggest you try panel and then try changing the hook choice to position it.
All of these items are technically questions, not bugs, I’m closing this bug report.
If you have further questions, please ask them through our Q&A system.
2.51 now released – please re-open this bug if it still doesn’t work for you – note: you will need to re-run your product set imports – quickest way on a dev site is to move all product sets to trash, wait until all products deleted, then restore all product sets and wait for them to re-import.
What happens if you use the Photon image resizer option? Also, can you provide a URL where I can see a badly formed image? Your lightbox must be overriding our CSS – If I can see it, I can fix it.
The latest version 2.51 works more gracefully so if the external image URL doesn’t exist it will default to the existing woo fallback image.
Variation images and variation galleries have been implemented
This looks like it’s working now with 2.40 upwards.
I’m closing this bug report and opening a separate feature request.
There are far too many ways that third party plugins implement their own galleries, so rather than try and cover them all I’ll add a Gutenburg External Images gallery block that you’ll be able to place wherever you like on your page.
Here’s the feature request – please upvote and add comments:
https://www.superspeedyplugins.com/suggestions/add-external-images-gallery-gutenberg-block/
This has been fixed in version 2.51 due out later today after testing is complete
This has been fixed in version 2.51, due to be released today once testing is complete.
External Images now includes additional variation images as external images as well as variation galleries.
This is compatible with Woo Additional Variation Images, although you configure the External Variation Images using a separate box.
Hi guys – looking to figure this out – can either of you please enable the debug.log and send me a copy after running a product set import?
Please note: I have not tested this with WooMultiStore, but I’ll provide support for you to ensure you get the speed you’re looking for. If WooMultiStore uses multisite under the hood, then these plugins will already work – you need to recreate the indexes with Scalability Pro on each site. If it does something else custom then I may need to alter or add some indexes to support the speed you’re looking for.
Sorry about delay – impromptu holiday last week, back on the case now.
I’m going to go ahead and presume this is working for you now.
If it is not, please raise a bug report again and tell me specifically the theme you are using as well as whether the gallery is present on your post type edit page and whether it’s present on the front end.
If you are using a custom post type with gallery support, please let us know the theme or plugin custom post type and create a ticket with the theme/plugin zip attached so we can investigate.
You can see bol getting scraped here: https://foundthru.com/2020/06/30/bol-test-page-to-fix-commas-as-decimal-separators/
This has been implemented in beta 3.73.
Specifically, I’ve added a decimal symbol config to allow you to choose if it should presume , or . or something else is the decimal separator.
Also, I had to code something up for websites similar to bol.com which are actually using spans with images inside them for the decimal separator. When this gets scraped, it turns into whitespace, e.g. 19.99 becomes 19 99, so now if there is no decimal separator present in the scraped results, it will replace the whitespace with a decimal place to product 19.99.
I’ve released an update which avoids using the getimagesize function. Please upgrade to 2.48 and you should find it works perfectly for you now.
I think there’s an issue with your hosting blocking the remote getimagesize function.
Can you check with your hosting company?
I’m investigating a workaround to avoid using getimagesize in the meantime.
Can you confirm version 2.46? Also, please confirm you only have 1 of the plugins installed – it’s a little odd the plugin is installed in the external-images_ folder (not the suffix underscore)
I have a completely different line on line 441 so I’m pretty sure this will clear up if you check for updates for the plugin and update and ensure there’s only 1 plugin running.
Note: Latest version is 2.46
Please test again with latest update and run the ‘convert db’ too. I’ve recoded the conversion function to be far simpler and fewer possibilities of error.
If it still fails in some cases, please create a ticket and reference this bug report URL.
This has been implemented
This has been implemented. You can now search any taxonomy name, e.g. shirts or dresses and it’ll include everything within those categories (if you select this in the settings page).
Failing that, please try version 2.46 – I have refactored the code in the conversion process to be a very simple single code path and have tested it on 3 sites and see no failures.
I’ll need to dig into this further – can you please create a ticket referencing this bug report URL and provide wp-admin and ideally SFTP access?
I’ll figure out what’s going wrong for you.
Please update to 2.44 and re-run the DB update. I’ve tested these two combos and there’s no good reason why they are not being saved properly so I think it may be an issue with the ‘ei_converted’ marker that tells the plugin that the images have been converted to arrays from the input field external_image_url.
This ei_converted field gets reset whenever the external_image_url meta field is updated – can you confirm you are allowing wp all import to run the do_action calls? If you are not, please update a separate meta field in your imports called:
ei_converted
And set it to 0 (zero).
Can you describe how you are importing the rest of the images? The easiest way is to load them all into the external_image_url with pipe | separator between each URL.
Upgradea to 2.43
Upgrade to 2.43 for this to be fixed.
Thank you for callstack – please upgrade to 2.43 to remove this error.
This is a great idea – about to get coding on Price Comparison Pro upgrade once I’m finished with Super Speedy Search.
This has been implemented and pushed live in 2.40.
There are now variation featured images and variation galleries.
This may not be fully compatible with other variation gallery plugins – if you find an incompatibility it will almost certainly be JavaScript related where the other plugin ends up hiding the gallery we display.
If this happens to you, please create a bug report including details of the incompatible plugin and raise a ticket sending a copy of the plugin and referencing your bug report and we’ll get it fixed.
If this persists with the newly live 2.40 version, please send a copy of the gumlet plugin in a ticket and reference this bug report.
Live 2.40 version is out now. If you still have an issue importing to the external_image_url field (not _external_image_url – leave off the leading underscore) then please send a copy of this webtoffee import tool in a ticket and i’ll figure it out for you.
2.40 pushed live.
Fixed
Hi – please check with the latest beta version which should fix this.
This is a known bug with some websites – I’ve bumped up the relevant trello card to top priority to get this fixed.
These websites all have cloudflare or cloudflare style scraping prevention in place – there are 3rd party scraping providers which can get past this.
I need to work through each of them and find which ones can scrape each of these then add that 3rd party scraper to the plugin.
Confirmed as a bug – the plugin grabs the biggest image from the search result, which in this case even though it looks small on screen is this express image:
https://k.nooncdn.com/s/app/2019/noon-bigalog/600292aa55b441e703c86f257bf07530bd5934e3/static/images/noon-express-en.png
I need to alter the config section for search comparison to let users enter a CSS class for websites where the widget picks up the wrong image.
I’ve tested all of these in the latest beta version and they’re all working perfectly.
It doesn’t “autofill” – it’s not loading products onto your site – but it *will* automatically search those third party sites on your WooCommerce product detail page, or any other custom product detail page if you use our shortcodes.
It keeps a cache of the search results, but most of the time it’s probably performing a fresh search of those third party sites each time, so you might want to get the proxy service listed in the plugin settings.
https://www.superspeedyplugins.com/knowledgebase/how-to-set-up-the-search-comparison-widget/
Ok – finally implemented – I figured out a different approach. I had been trying to catch the underlying code to spoof it into thinking there was an image, turns out it was far easier to add a new view with the external_image_url in it then use JavaScript to update the images on the fly.
KB article describing how to use here:
https://www.superspeedyplugins.com/knowledgebase/woocommerce-advanced-bulk-edit-compatibility/
I recommend you use the latest beta 2.34, but in all versions what you need to do is import your external images to a custom meta field called external_image_url
In all import tools there will be an option to map your source fields to a custom meta destination field – i.e. you don’t use the ‘product image’ feature in whichever import tool, you use custom meta import.
Separate the image URLs with a pipe symbol for galleries too.
Beta now allows you to import images to product variations as well – again, import to the external_image_url custom meta field.
This is fixed in 2.34 – the issue was I’ve moved the internal storage of image URLs from external_image_url to _external_image_url.
This was done to make it more stable when importing images etc – you still import to external_image_url but the plugin will map that pipe separated list of image URLs to an array that it places in _external_image_url.
Because of this, after you upgrade to beta 2.34 you’ll need to run the DB update button on the notice that appears in wp-admin.
Please back up your database prior to doing the upgrade and let me know this works for you. It would have been fine for fresh beta installers, but because you installed 2.32 and then 2.33 this is where the issue came from (presumably you’d already run the DB update in 2.32 and I didn’t update the db version control variable).
This has been implemented in beta 2.34 and there’s a new KB article here:
https://www.superspeedyplugins.com/knowledgebase/photon-image-resizing/
This has been implemented in beta 2.33
You can provide access through a support ticket but only existing customers can create support tickets. Did you take a look at the article I linked above? It goes through all the possible performance issues you could have?
Also – so you know, our demo site https://foundthru.com has 800,000 products on it using our plugins and it’s very fast.
This is ‘by design’ really. The option is there to remove this calculation because *many* customers won’t disable variations and the calculations this runs become unnnecessary.
If you DO disable variations in your shop then don’t use this option.
I changed the way the match operator is added to the main query now so this should be fixed.
https://trello.com/c/abIUlaOa/52-super-speedy-search-get-feedback-from-svaldesm
Sorry for missing this! Please can you download the beta version of FWW and confirm this is no longer an issue?
There was an issue discovered relating to URL rewrites which sounds sort of close to what you’re describing that has been fixed in beta.
To clarify – Scalability Pro includes an option for sites which don’t use pagination (e.g. you use infinite scroll) where disabling product counts can make a difference to performance of the main WP_Query.
If you enable this option, Scalability Pro avoids counting products in the Query and instead fakes a count of 9999 pages which will give weird product counts.
So, if you enable it, you need to hide product counts and use an infinite scroll system rather than pagination. It’s only one option – more info provided next to the option inside Scalability Pro.
I’ve changed this to ‘Approved’ and I’ll run an actual comparison of third party hosts including SSDNODES as soon as I can.
I’ve created the Trello card for this here, but it’s at the back of a fairly long backlog:
https://trello.com/c/qLWH6oj9/75-doc-create-comparison-of-hosting-providers-including-ssdnodes-aws-digital-ocean-would-be-easiest-to-compare-through-gridpane-to
I don’t track all the various hosting companies to be honest. If they provide good support, if they provide a good admin interface, if they have good SSD and GB ethernet and backups then I consider that viable for my stack.
If you want a better conversation about the right hosting company to use, I can highly recommend you chat to Jeff or any of the team over at Gridpane – they have built an interface on top of an improved version of my stack and they are the most passionate hosting company I have ever talked to. Can’t recommend them enough to be honest.
“You can pick companies like Digital Ocean, VULTR and Linode, or you can bring your own server from almost any provider that has Ubuntu KVM based VPS servers available. AWS and Google Compute Engine support, natively within the application, is coming very soon. ”
So – probably SSDNODES would be fine if they use KVM?
https://gridpane.com/faq/
Can you confirm the shop page is not using any special effects (image resizing etc) on the images? If so, please switch them off.
https://www.superspeedyplugins.com/knowledgebase/for-specific-themes-widgets-or-shortcodes-external-images-are-not-being-displayed/
Can you add more info about this?
apply_filters(‘woocommerce_pro…’, Array) #4
Whatever that plugin is that starts ‘woocommerce_pro…’ sounds like it’s causing your issue.
I’ve added this item to the Trello board: https://trello.com/c/3S2dadBD/74-ei-add-ability-to-configure-variation-images-using-ei
There’s a dev cycle of Price Comparison Pro due, so probably around a couple of weeks for it to be in beta – all users can download the beta version. It’ll probably be another two weeks after that before we push it live into core.
https://trello.com/c/TUZ8kDN0/73-pcpro-add-option-to-allow-users-to-replace-rather-than-add-scraped-images
Note: These options are now all in the beta version tested and confirmed working. You can see progress here: https://trello.com/b/L9XeJrWC/wp-intense-plugin-development
Implemented in beta. Rules for overriding title are now: If yoast option disabled AND any attribute filter is present.
Affects:
Browser title (meta title), og:title, twitter:title, schema.org name and description, meta description
I’m adding an option into this release to disallow overwriting category URLs when no attributes present. Trello card linked above.
Only concern I have is that Yoast picks up the correct category – it *should* do, so it should be trivial.
Can I get feedback on this? I think the brands landing page can be implemented with the suggested new feature or allowing top and bottom HTML per URL.
Basically – FWW will generate a list of all combinations of categories and canonical attributes and then for each you will be able to view and edit the top and bottom HTML.
This would allow for example:
/nike/ -> You could have HTML above and below the nike products
/adidas/ -> You could have unique HTML above and below the adidas products
/adidas/copa-mundial/ -> You could have unique HTML above and below these beautiful football boots.
https://trello.com/c/qy1GHWHG/41-fww-add-generated-sitemap-urls-tab-and-allow-users-to-configure-top-and-bottom-text-including-bulk-edit
Looking for feedback on this before I implement it: https://trello.com/c/qy1GHWHG/41-fww-add-generated-sitemap-urls-tab-and-allow-users-to-configure-top-and-bottom-text-including-bulk-edit
Looking for feedback on Trello card – some questions for this. https://trello.com/c/qy1GHWHG/41-fww-add-generated-sitemap-urls-tab-and-allow-users-to-configure-top-and-bottom-text-including-bulk-edit
Fixed in beta. Release coming soon. More info about canonical update here:
https://www.superspeedyplugins.com/idea/force-permalink-ordering-set-in-fww/#comment-41486
The canonicals have been fixed on beta. See https://www.superspeedyplugins.com/idea/force-permalink-ordering-set-in-fww/#comment-41486
This is fixed in beta and more options have been added related to canonicals. You can now:
1) Configure order of each attribute
2) Configure if attribute is in canonical or not
3) Configure if attribute is indexable or not
4) Any URL parameters not registered as canonical and/or the product category, will not be included in the canonical. That means minprice, maxprice, orderby, and any attributes any malicious competitors add will *work* but the canonical will always be sorted. e.g. if you have the attribute order as flavour then colour you could have /dogs/beef/white/ and /dogs/white/beef/ but the canonical will ALWAYS be correct. This is the best approach.
Note I’ve separated out the extra ‘noindex’ + rel=nofollow too. So you can specify that if a particular attribute is in the URL then the page should be set to noindex if you wish, or you can just rely on the canonical.
And values per attribute are now always sorted in the canonical – regardless if you use pretty permalink or URL parameter.
This has been fixed in beta and can be seen on foundthru now
This is fixed on beta – now foundthru.com/?product_cat=1 returns 404 and foundthru.com/?cat=1 redirects correctly to the post category
Implemented on beta:
https://foundthru.com/books/science-fiction/
This has been implemented and tested in beta. Release coming soon. You can see it in action on https://foundthru.com/books/science-fiction/
This has been implemented and tested in beta. It’s fast and it includes 301 redirects from the old product category URLs to new ones.
It also updates the canonical URLs if you’re using Yoast.
It’s back in pages with /product-category/ in the URL, not when /filter/ is in the URL. It’s in beta too.
Trello card made and this is being worked on.
I’ll have a look into this.
Testing underway for the fix for this.
Presumably this was the ‘remove sorting’ option in scalability pro.
Thanks for clarification.
Please change the setting inside Scalability Pro to not disable the product counts. Then it will work.
If you have disabled variations, this perf enhancement will not work. Other option is to delete the variations.
This is in progress. It was harder than anticipated. I’ll get it released as soon as I can.
It’s coming – can you please check the current fix for this and I’ll get the other feature requests all implemented too:
https://www.superspeedyplugins.com/suggestions/remove-the-category-base-from-the-permalinks/#comment-38080
This has been implemented on foundthru now and I’d really appreciate all interested parties testing and letting me know if you see any issues at all:
https://foundthru.com/baking/
Working on a fix for this.
To delete indexes, click the delete button then refresh the page.
re: performance, it improves underlying raw MySQL performance. If you have other issues as outlined here then there will be separate solutions:
https://www.superspeedyplugins.com/2018/06/30/wordpress-performance-quick-start-guide/
Before I approve this, can you confirm the performance issue still exists when you’re using Scalability Pro with WooCommerce for Facebook?
For some reason this had been placed in the ‘auto infinite scroll’ group.
There is an option to disable the category box in wp-admin, but your feature request still makes sense – it would be better to keep the functionality and only load it when a user clicks the box.
The other request is here – please upvote: https://www.superspeedyplugins.com/suggestions/remove-pagination-per-post-type/
It speeds up querying across all post types since all posts are in wp_posts and wp_postmeta etc.
However, there is a separate request to be able to configure options per area – e.g. per post type for removing pagination etc.
I’ll decline this one in favour of that other request.
Hi – it would be possible to implement this currently using CSS.
Basically, you need to alter the CSS for whatever you call your ‘multi’ and use a background image instead of a solid colour.
e.g. Create a new colour, give it a unique colour code and note that code down. Name the colour ‘Multi’ then add this CSS:
.wpilabel.wpicolour[style="background-color:#012345"] {
background-image:url(https://www.yourimage.com/image.png);
background-repeat:no-repeat;
background-size:cover;
}
Replace the background-color code above with whatever code you set for your ‘multi’ and the image url with whatever background image you’d like to use.
Is this related to this? https://www.superspeedyplugins.com/suggestions/filter-by-brands-perfect-woocommerce-brands/
FYI it was this light-gallery that was added:
http://sachinchoolur.github.io/lightGallery/
I added the lg lightgallery instead of OWL. It’s better, faster, more feature-packed.
It’s this one: http://sachinchoolur.github.io/lightGallery/
The plugin was improved significantly to handle this – there is one option now in the plugin that may need to be selected depending on how your theme handles these things.
We’ve erred on the side of caution and you may find 2 images displaying in your thumbnails (rather than no image) – if this happens in your theme, visit the settings page and enable the option to fix double images.
The plugin was altered a while back to choose from the 2 possible fields from Datafeedr.
In addition, there is an option to check on import which of these images is larger and use that one – i.e. rather than just a preference of which field, it automatically checks for the largest.
If there’s anything remaining in this feature request, please reopen.
I’ve moved this plugin request to Scalability Pro group.
If others would like to see faster WooCommerce for Facebook, please let me know and I’ll get hold of the plugin and see what can be done to optimise it.
To be honest, Scalability Pro should already optimise it, but if anyone else can provide feedback it’d be appreciated.
This is now possible using CSS. It actually defaults to ‘Out of stock’ now but it’s configured using CSS with a :before property, so if you wish to alter the text you can do so through CSS.
This was implemented a while back. Sorry for not updating the feature request.
Hi – in a recent update, we added a great lightbox feature that includes click and zoom and other features.
Can you confirm I can close this feature request now?
First thing that needs to happen here is the class name for the free super speedy sales page needs to be altered so that it doesn’t conflict with FWW.
Second, I need to update the settings page of SSS to make it clear what shortcodes and widgets are available.
This is an odd one. In order for this error to happen, it means the shortcode is running outside of the WooCommerce product loop.
It relies on there being a global $product variable, which *should* exist.
Maybe in the WC_Tab plugin you added the pcpro shortcode inside the tab? And maybe inside there it’s outside of the product loop somehow?
I’ll investigate, but if you have any further info to shed on this it would be helpful.
There is an option already in the plugin to not change the titles and description. Presumably they are saying this isn’t working and that is causing ‘product tags’ to be removed somehow.
Action: Fix the option so that if admin disables the titles and descriptions through FWW that the code really doesn’t run.
This has been implemented in 2.22 due out shortly.
There’s also a KB about it now:
https://www.superspeedyplugins.com/knowledgebase/minimum-products-required-to-index/
Implemented in v2.22 which will be released shortly.
This is implemented in 2.22, which will be released once testing is finished.
I’m not seeing this bug. It looks like it was fixed MID MARCH even though you reported this in April.
Can you please confirm?
Here’s the changelog entry:
= 2.12 (23rd March 2019) =
* Removed category description text when any filters other than category are applied
* Fixed pagination bug (if not using inf scroll and you had attributes with values or 2, 3 etc) so that URL removes pagination when filters are added
* Fixed 'clear filters' bug where it should not have been removing the product category from the filters if 'display cat as filter' was set to no
Related: https://www.superspeedyplugins.com/forums/topic/seo-friendly-pagination-for-fww-and-auto-infinite-scroll/
https://www.superspeedyplugins.com/suggestions/compatible-fww-with-numeric-pagination-in-the-shop/
Can you check if this is related to another feature request for Shortcodes?
https://www.superspeedyplugins.com/suggestions/shortcode-attribute-ffw-on-the-product-page/
As I understand it, this will list ATTRIBUTE NAMES based on filters in the shortcode, or with no filters – e.g. show all brands, show all colours, show all sizes etc.
What else would then be displayed?
e.g. Colours – White, Blue, Black etc
* White example – could show count of white products, but should it also show a break-down of category counts or attribute counts that are in white?
Could show: White (1,200) or it could be White with an attribute image, then a list of top categories underneath, e.g. Shirts (75), Jeans (2), Blazers (17) etc
That would mean the shortcode would need to take a few params:
1. Attribute to show
2. Filters for the attribute
3. Attributes/category to group by in the attribute description (e.g. category above for shirts, jeans, blazers etc)
Another example:
Brand: Adidas, Nike, Puma
Filter could be Men, Women, Children etc in the shortcode.
Dimension would probably be category, but could instead be Colour – if it were colour, you could have the filters of Men’s Shirts:
Adidas: White (17), Blue (5), Green (3)
Nike: White (25), Blue (7), Green 2) etc
Presumably pagination would be required? Because some shops have a lot of attributes. Although maybe just the top X would suffice?
What else am I missing?
Does this relate to the Woo Brands functionality?
This should be listed as a bug. I did not realise this bug was back in the plugin. I’ll get this fixed in this round of bug fixes.
Looks like there are more examples of sites using this technique.
https://www.superspeedyplugins.com/forums/topic/sites-not-scraping/
http://www.jdsports.co.uk
http://www.footlocker.co.uk
http://www.footasylum.com
http://www.size.co.uk
http://www.footpatrol.com
18montrose.com
http://www.thehipstore.co.uk
http://www.adidas.co.uk
This was added in version 2.20
This was fixed a couple of versions ago.
There is a related bug that needs a new bug report about images not appearing in bulk edit.
Just an update on this so far:
I’ve created a test service using the library listed above to use this python cfscrape (cloudflare security bypass) library.
It’s working for some cloudflare protected sites, but not yet all.
I’m still working on this – you can see, for example, this URL times out:
http://scraper.superspeedyplugins.com:6543/?url=https://www.size.co.uk/product/white-puma-x-ralph-sampson-low-og/140715/
I’m still debugging the http errors generated by this to figure out this bypass.
Ah – you also have Faster Woo Widgets installed. Disable the super speedy sale plugin – I’ve added the functionality directly into Faster Woo Widgets.
I’ve still got documentation to do on this, but you can follow the guide from the product page for Super Speedy Sale page with just FWW installed.
I’ll get this fixed asap and change the class names so the free option is still available.
That’s odd. So do errors display when you enable debug? Can you try adding define(‘WP_DEBUG_LOG’, true); and define(‘WP_DEBUG_DISPLAY’, false); too?
I believe this is fixed in release two days ago. Please re-open if this is still happening and provide a URL.
This has been fixed in 2.18 but more testing is required, particularly in conjunction with Super Speedy Search.
You can test it over on https://foundthru.com/?s=bowl&post_type=product
Now as you’re looking for you can see:
1. /product-category/dogs/?s=bowl works
2. If you click a filter FIRST rather than a product category, it will use the permalinkbase from FWW settings page.
I’ve been working all day on FWW bug fixes, but some more testing is required to make me rest assured that the changes I’ve made aren’t breaking anything else.
I’m intending to set up Selenium to handle regression testing so that I don’t have to worry about bug fixes breaking things from the past.
Let me know what you think of the fixes over on foundthru.
Fixed in 2.18. Parent category now always correctly included.
Fixed in 2.18, shortly to be released. Here’s the relevant part of the changelog:
Fixed in dev version due out today.
I can’t reproduce this bug. I’ve tested it with multiple attribute types with both pretty permalinks and non-pretty permalinks.
Please provide more details so I reproduce this bug.
1. Which type of attribute?
2. Pretty permalinks or normal permalinks?
3. Is the attribute part of the pretty permalinks or is it a query parameter?
I’ve found that the text is NOT duplicated if you use the permalink URL:
https://foundthru.com/product-category/dogs/barbecue/
That’s the equivalent to https://foundthru.com/product-category/dogs/?filter_flavour=160
However, if I disable pretty-permalinks on foundthru and then reload the URL you provided, things actually get worse, not better – now the category text is listed *twice* with 2 separate titles.
Dogs
Dogs are called a man’s best friend for good reason. If it weren’t for dogs, our population would never have exploded after we left Africa and we wouldn’t have destroyed the neanderthals.
For thousands of years, they’ve been by our side helping chase and tire down prey, cleaning up our scraps, warning us of approaching predators (their sense of smell is 200,000 times better than ours!) and now all they want is a little love.
Buy your dog a toy, a bed, a treat, a rope to tug on – it doesn’t matter, you know your dog will love it.
Buy barbecue flavour Dogs
Dogs are called a man’s best friend for good reason. If it weren’t for dogs, our population would never have exploded after we left Africa and we wouldn’t have destroyed the neanderthals. For thousands of years, they’ve been by our side helping chase and tire down prey, cleaning up our scraps, warning us of approaching predators (their sense of smell is 200,000 times better than ours!) and now all they want is a little love. Buy your dog a toy, a bed, a treat, a rope to tug on – it doesn’t matter, you know your dog will love it.
I’ve got a fix in the works and it should be out in today’s release if testing goes well.
This has been fixed and deployed in 2.17.
The issue took a little longer to discover because the root cause wasn’t as discussed above. The cause was actually when a site-owner had a different product category slug other than /product-category/ in use – i.e. it wasn’t related to manual sort ordering at all.
Fixed, tested, released.
Some more relevant content:
Hi there,I’d like to provide a bit more in-depth overview. Spaces on our platform is indeed Object Storage, much comparable to Amazon S3. Spaces integrates with the s3 API, so a lot of the same behaviors and features you see with S3 are able to be used in conjunction with Spaces.
With the launch of our CDN, Spaces now includes a built-in content delivery network (CDN) at no extra charge. Our standard 1TB of free bandwidth and overage pricing for Spaces will include usage for the origin and CDN combined. This provides you the ability to turn on global edge caching for a Space in any of our available Spaces regions.
This differs from Amazon CloudFront in that CloudFront does integrate directly with AWS, so that CDN is serving more than just S3, and integrates with other products. The CDN we’re able to offer with Spaces will only cover Spaces, and excludes other services you may be running, such as Droplets or block storage (Volumes).
I was able to take a look at the price calculation you performed and included the link to (thank you!), and the values you have there are correct. The main reason you’re seeing such a discrepancy is the logic above – with CloudFront, you’re seeing a CDN working on top of all AWS services, whereas Spaces CDN here at DigitalOcean would only cover your objects stored in Spaces.
I hope this sheds some additional light on the questions you had. If you have further questions or concerns, please let me know, and I’ll be happy to assist!
Swimmingly,
Mandi B.
Developer Support Engineer
FYI, I sent a calculation of costs for the same services on AWS Cloudfront as on a DO Spaces CDN of $5 a month, which resulted in almost $90/month on AWS. When more performance is needed costs on AWS Cloudfront rise even faster in comparison with DO Spaces CDN. So I asked if this price difference could be declared by significant differences between these services.
Also this price calc:
Here’s the link to the price calculation btw: https://calculator.s3.amazonaws.com/index.html#s=CloudFront&key=files/calc-77eeca9ea0765d2d1e7037a16a5f6e639f4517dc&v=ver20190523q4 (Please click on the “Services” tab to see the values I filled in)
I cannot reproduce this.
1. I see images being scraped properly
2. They update on page immediately upon successful scrape
Can you confirm:
1. URL you are trying to scrape
2. Your image CSS selector you’re using
3. The scraping type you are using.
Fixed in dev version. Now there is a span like this:
And css like this:
.lastchecked:before {
content:”Last checked:”;
}
So you can override the text through CSS.
This has been fixed in the dev version, will be deployed today.
This has been fixed in dev version.
This has been fixed in the dev version. Shortly will be released.
I understand what’s happening here now.
In this case, you have a menu_order set for your attributes and that menu order is less than the order set for your category.
Categories need to come first, so I need to amend this code so that categories will always come before attributes and that should solve the bug.
Fixed in version 2.15 – please update your plugin. Thank you for the bug report.
I’ve implemented this in the dev version – added rel=”nofollow” to all external links in the price comparison tables.
Turns out this was related to a collation issue in the database. If you experience this issue, please see this declined bug report for info and a fix:
https://www.superspeedyplugins.com/idea/collation-error-when-re-queueing-scraped-items/
I figured out why the affiliate link was being incorrectly updated.
After the price table has been sorted and all prices fetched (or failed to fetch), the top price is the one that gets updated.
This sorting has been fixed, but separately I’ve added belt & braces in the back-end to ensure this is never updated incorrectly due to broken JavaScript or similar.
This has been implemented in the dev version, coming out soon.
The plugin now correctly identifies if other prices still exist for this product and will only mark it out of stock once all external links are returning no prices.
It also is now correctly keeping out of stock prices at the bottom of the sorted table.
I could not reproduce the affiliate link being updated.
I’ve double checked the code here, and the plugin is correctly using the WordPress default collation for the queue table.
If you encounter this issue on your site, you somehow ended up with non-default collations installed in your database and you should fix them.
Here’s a plugin which will fix your table collations:
https://wordpress.org/plugins/database-collation-fix/
This has been fixed in 2.11. Please update and confirm.
Please use pipe | symbol to separate your images.
I’ve kept backwards compatibility with commas for other customers.
Hi – I think this is fixed? Can you confirm?
Hi – I’m testing this locally. Here are my settings:
2 widgets – category & colour widget
Permalinkbase: product-category
Everything seems to be working. Can you message me directly with your URL and ideally access so I can figure this one out?
1) I’ll get this figured out – so if a search query exists, and the category filter is removed, it should go to site base url
2) The categories are being affected by the search query. What behaviour would you like here?
3) I’ll add the current search string as an existing filter that is removable through a click.
For my own reference for (1):
http://plugins.test/product-category/hoodies/?s=hoodie&post_type=product
Then the ‘clear filters’ link is correct but the ‘Hoodie’ link is not correct.
This is restricted to cases where product-category widget set to not reset and to be removable through existing filters.
Hi – can you please check against 2.14 and confirm this bug is fixed?
I had real difficulty reproducing it, and I suspect the main problem was auto-update not working.
This bug has been fixed in the dev version.
Additionally, the following bugs were fixed:
Removing final attribute filter, if category is present, will revert back to the category URL. If final attribute removed but no category, the remove attribute link will revert back to the shop URL.
Also – if permalinks were enabled, but not all permalinks were set up in the ‘permalink ordering’ section, this was causing those filters to be missed. This was clearly an edge case as you’d normally set the ordering for all your items in the permalinks and only exclude certain items from the canonical URLs.
There’s an additional bug here, possibly only in dev version, if a filter is removed and the remaining URL is just the category, then it should revert back to the /product-category/ permalink to avoid duplicate URLs.
This has been fixed in the dev version. Now the behaviour is much better:
1. If product-category set, then it’ll use /product-category/ (or whatever permalink you have)
2. If no category set, it’ll use the permalinkbase set inside FWW settings
3. If no cat set and permalinks not in use, the URL will be /shop?filter_color=xyz etc
Hi – I found a bug in the json file for Faster Woo Widgets that was preventing auto-updates. This has been fixed.
Note: At the same time, I’ve also added ajax to the category widget – I can’t remember why I didnt’ add it before but it doesnt’ really make sense to not have it on the categories.
I’ve recoded the way the plugin detects the sidebar so now it will work for ANY sidebar that contains our widgets. This is in dev version, due out today.
This has been fixed in dev version.
There was a bug relating to how WooCommerce now provides a static function to grab the search query which we’re now correctly using.
In addition, the search query was not previously filtering the attribute filters (only categories), so the code has been added to attributes too, so those counts will be restricted to only those which fulfil the search string.
This has been fixed. At the same time, I discovered an error in the JSON file for Faster Woo Widgets preventing auto updates. This has been fixed too.
Hi – I think the update server was briefly down. Can you confirm if this issue persists please?
Hi – I believe this was fixed 1st April version 4.49.
You can see the changelog here:
https://www.superspeedyplugins.com/product/scalability-pro/
Turns out it was a bug in how WordPress dbdelta works!
Re-open this if the issue still exists somehow.
Hi – thanks for the bug report. I believe you contacted me separately through the on-site chat.
This looks like it was fixed in the release on the 1st April (version 4.49). You can view the change log here: https://www.superspeedyplugins.com/product/scalability-pro/
Re-open this if I’m incorrect about this now being fixed.
Hi – sorry about the delay. I’ve had to do some important admin work.
re: the URL re-scraper, can you provide more info about what you are attempting to rescrape?
Have you used the bulk import command to add all your existing WooCommerce products to the scraper queue?
Hi – There is code in the plugin that is meant to catch the 404 error that is returned when the last page fails to load. On catching this error, the code hides the spinner.
Can you provide a URL where I can see this happening and scroll to the bottom?
It’ll be helpful so I can check if the /page/x that is failing to load actually does return the correct 404 status or maybe the 404 status has been overridden by a separate plugin you have?
Ok – so this is happening inside a *single taxonomy*. e.g. if users search for Blue, Black and Red dog toys (with either expand or narrowing set for multi-select) then when the user removes Blue it removes ALL the colours.
From what I see, it’s definitely not removing OTHER taxonomies. e.g. if you have blue, black (colour) + leather (material), then you click to remove leather, it is retaining blue and black, and similarly, if you remove blue the bug remains that it removes blue and black, but it’s not removing leather.
Can you please confirm this is an accurate description?
I’ll get this fixed in next update.
Ok – I can see why this would happen. The standard ‘page’ is not the same as a woocommerce archive page, and the ajax feature requires that in order to update the filters after a new search request has completed.
I’ll figure out a solution for this, but it’s probably going to have to involve specifying a CSS selector in the admin area to identify the sidebar.
I’m struggling to reproduce this in my dev environment. I can see it on your site, but I cannot reproduce it.
Can you tell me what settings you have for your widgets?
The following bugs have also now been fixed:
https://www.superspeedyplugins.com/idea/category-description-text-duplicated/
https://www.superspeedyplugins.com/idea/filter-not-working-correctly-on-pages-higher-than-1/
https://www.superspeedyplugins.com/idea/clear-filter-redirect/
The code was in there to do this, but had a bug. That bug has been fixed but it’s still possible to achieve the previous functionality if you wish.
In the “existing filters” widget, if you set ‘display category as filter’ to yes then when user clicks ‘clear filters’ it will revert to /shop/ or whatever your shop URL is.
If you have it set to no, it will now correctly send the user to /product-category/dogs/ or /filter/dogs/ depending on which approach you are using instead of /shop/ – i.e. the category will not be removed by the clear filters button.
The plugin was mistakenly thinking the /2/ out of /page/2/ was actually a filter in cases where you actually have attributes with values of 2 (e.g. dress sizes or something).
This has been fixed so that it checks:
$GLOBALS[‘wp_rewrite’]->pagination_base
And if the URL contains that (by default /page/ but could be altered for other languages) then it’ll stop processing the URL from that point onwards.
This has been further updated to remove the description on page 2+ etc
This has been fixed in version 2.12. Now, if any filters other than category are applied, the category description text will not appear.
That should fix part of this problem, but I’m flummoxed as to why the title is appearing twice for you. That seems very odd – please can you update to 2.12 and let me know if this is completely fixed? Otherwise I’ll need access to your server to figure the duplicate title part.
2.12 will be released in an hour or two.
This fix has been implemented, available to see on foundthru.com, will be deployed in upcoming release.
This has been implemented – demo available over on foundthru.com – will be released with upcoming plugin update.
This was actually implemented a while back and is already included.
The latest version, deploying today, includes a couple of minor bug fixes for this feature.
To get it, use the display option ‘search’ in the attributes widget.
Ok – I’ll try and get this into this release.
It’s half compatible right now:
https://foundthru.com/filter/dogs/?s=bowl
Above will search the dogs category for ‘bowl’.
The parts not yet compatible are:
I think I understand what you are saying:
If user clicks ‘red’, but has not clicked a category (if you allow this) then the category list should be restricted to ‘red’ products. That’s already achievable.
Currently, when I test this on foundthru.com, I see all the categories – i.e. not restricted to the attributes at all. That’s the intended behaviour. The categories are more like top-level-pages really – and the default behaviour is to reset all attribute filters when a category is selected.
You can change this behaviour by altering the widget settings – which I’ve just done now – so that if you visit:
https://foundthru.com/filter/beef/
You see only the category of ‘dogs’ since that’s the only category containing ‘beef’ products.
Yes I agree – it’s a little too dangerous. The primary problem is that a hyphen is also used for spaces inside a category/attribute. So, if you had the following categories:
boys
boys-toys
toys
It would be impossible to distinguish. If you feel you really need this, come back to me again in future and I’ll take another look.
This has been implemented in the latest version, currently in dev on foundthru.com, will be rolled into upcoming release.
Some notes: The option now correctly prevents multiple selections in the WIDGETS – BUT – there is nothing to stop a user manually typing the additional items into the URL.
However, if you use our canonical URL feature properly then this won’t matter, even if discovered by google bot.
This has been implemented and tested and will roll with the upcoming release.
Multi-select bug noted elsewhere
Taxonomy ordering bug noted elsewhere
Bug of min price and max price not appearing is new. Changing title to reflect this bug.
By seo description I mean custom text on the top or bottom of the page just like the description of a category, but showed only with the certain combination of filters:
e.g
if url is ‘/shoes/nike/black’ or active filters are ‘shoes and nike and black’ show ‘description 1’
if url is ‘/shoes/adidas/white’ or active filters are ‘shoes and adidas and white’ show ‘description 2’
We wrote about it earlier:
“I’ll add the ability to edit meta-description, seo description, and even to add/inject product category descriptions to the top or bottom of your shop to create better landing pages.”
This will be added in next update. To flesh this out a bit:
1) Nofollow tags will be added to hyperlinks if they have < X products - will only apply to attributes - i.e. follow will always happen for product categories 2) Noindex meta will be added to pages with < X products
This has been implemented
Yes – it can be complicated to get the hang of! Probably Self is a better metric for troubleshooting, but it depends, if that item is called 1000s of times, maybe look at the caller and see why it’s calling so many times.
There’s also a great plugin that I discovered called Code Profiler Pro that can help you narrow in. Then there’s New Relic which you can install and it has a low footprint and once set up can help you identify resource hogs more easily than the cache grind stuff if you’re struggling.
Remember our Discord server too for live chat!
Use the rest API to set the postmeta field ‘external_image_url’ and populate it with the image URLs separated by the pipe symbol.
Thank you for this fix. I’m using Gridpane these days, hence I have not updated this stack building guide, but this will be very useful info for others.
Hi sorry, I don’t have an update for this article in the latest Ubuntu. Most of it will still be the same. I’m focusing entirely on my plugins now and using Gridpane for hosting.
MariaDB used to perform much better than MySQL, pre MySQL 8, but now they are very similar in performance – all 3 actually are very similar – MySQL 8, Maria DB and Percona DB.
I’m busy coding upgrades to Super Speedy Search, Super Speedy Filters and my new Super Speedy Imports plugins – after that I should be able to find time to write an upgrade for the latest Ubuntu.
No sorry, it’s very cheap though, or you can use Claude or Gemini.
Buy, install, create indexes, READ EACH OPTION, enable the options which are safe for your site, then you’re done.
Both of you are correct. In reality, fetching 20 rows from the DB rather than 50 would normally not make much difference. However, it could be that some other plugin then runs 10 queries per item, so rather than a single query returning an extra 30 rows, now you have those extra 30 rows PLUS another 300 queries hitting your site.
On top of that, just actually returning more data is not great practice for mobile users – not just because of data transfer, that is one issue on mobile over 3g or 4g etc, but then also the more HTML in your phones browser, the slower the page will respond.
I’m not sure why you’re thinking to return 50 rather than return 10 items and just have them infinite scrolled. If your infinite scroll is fast enough, users will not notice the items loading because they should already be loaded by the time the user scrolls down.
How big are they and how many of them are there? Then the other question, are they actually used and looked up on every page? If they are not used on every page then turning autoload to off will help.
You can test turning off items to check before & after performance by setting autoload to anything other than ‘on’ – the PHP code does not check for alternative values, it only grabs items that have ‘on’. When get_option is called and the option requested is not an autoload item, in that case a SQL query is created to grab that item and they ignore the autoload option in that case.
i.e. you could set autoload to ‘test_freemius’ and this would switch autoload for those options off, and then if you need to switch them back on then you can target all the options with autoload=’test_freemius’ in order to reset autoload to ‘yes’
Hi – thanks for contacting me through Discord as well – Jet Engine compatibility was added a couple of days ago.
The object cache already does this. The real issue is how WooCommerce implemented variations as complete individual products when normally all that changes in a variation is sku, price, stock and image. They have added some speed ups for archive pages, because previously archive pages – e.g. if they were calculating price ranges – had to go grab all the underlying variations rather than just fetch from an array and quickly display.
All of the product options plugins I’ve tried have been ok, the different architecture where there are no multiples of multiples makes them inherently fast.
Either Yith or Acowebs are good choices, probably best to avoid WooCommerce official plugins, they tend to be naff.
If you don’t need prices to change (e.g. fixed +€10 for large or +X%) then the free version of Acoweb would probably do what you need https://wordpress.org/plugins/woo-custom-product-addons/
Ok, noted, and thank you! Everyone else, use the Managed Challenge rather than the Interactive Challenge.
Yes, but there’s no plugin I’m aware of yet that does this. Some of my clients have custom-built ajax code to make the basket completely ajax driven so the entire page can still be cached. I’ve had a plan for a while to build a plugin to fix this entire cart issue for high-traffic-spike sites, but I’m still busy upgrading all the plugins I have already!
Because they would still use up nginx, php and sql resource to run the page prior to failing the captcha. If I were to do this again, I would just block the traffic using Cloudflare. Back then I was using my own custom-made stack with fail2ban etc. I no longer rely on fail2ban, although I still have it as a backup plan on my servers.
This code is inside my Scalability Pro plugin, but if you’re replicating it manually you can put it in the functions.php file. Maybe give it a different function name from mine in case you end up installing Scalability Pro.
Thank you for your kind comments. Remember to come and join our performance-obsessed Discord server for more help!
Yes, that’s a SQL query but that was for that specific investigation. These optimisations have all been added to Scalability Pro so that’s the best way to get these speed boosts.
Install Scalability Pro, create indexes from indexes tab then choose whatever other options from the Import tab to speed things up further.
I’ve used memcached when multiple web servers are involved before. Yes, one of the issues with moving multi-server with WordPress is that there are so many database calls so network latency and all the overhead of network calls becomes a real issue.
Why would it be read only though? You want the web servers to be able to update the redis cache if they need to, so why not just use a regular Redis cluster which is writeable by the web servers?
I take it you also have databases on a different server to the web servers then? Are you not seeing high latency from that? How many DB queries do you tend to get per page?
The basket and checkout are addressed in the automatic Cloudflare rules. What issues are you experiencing?
Please update to latest version released today and og:image tags should now be working properly with Rankmath and Yoast etc.
If they all truly have their own unique prices, you’ll have to stick with variations.
If the prices change a relative amount, e.g. small +£0, medium +£10, large + £20 then you can use product options. There are a few of these plugins around.
Re: Object cache and siteground, I’m sure they can handle giving you a Redis Object Cache. This will probably give you your best speed boost. Once a product has been loaded once in e.g. product detail or in the archive, the product object is cached so next time on product detail or in the archive, there’s no need to refill everything. This works best if you have a few popular products which are viewed more than others.
Come onto our Discord. I’ve literally just taken over that plugin. It had an XSS scripting vulnerability in it which I’ve fixed and performance on it is looking great. It’s not properly released to the public yet, but come ask about it in Discord and I’ll send you a copy.
This sounds like an issue with the Wholesale Prices Plugin. If you can enable Query Monitor and capture the queries from the wholesale prices plugin there may be optimisations I can implement through my Scalability Pro plugin.
Do that, grab the screenshots, then come paste those screenshots into our Discord Server so I can help you https://discord.gg/AqSpnCeQnf
You need my Super Speedy Filters plugin. I tried originally to bake everything into Scalability Pro but in the end Search and Filters had to be separate plugins. You’ll also need redis-cache.
No I don’t, but there’s a new update out for External Images today which may help. If it doesn’t, come chat to me on our Discord server.
You need to figure out your imports – that’s the biggest issue. Other than that, you just need our Super Speedy Pack to get to a million products on half-way decent hosting.
Thank you for your kind words!
That’s great news – if you can spare a minute, reviews really help drive sales – you can leave a review here: https://www.superspeedyplugins.com/product/scalability-pro/#reviews
Click the ENABLE button next to Image Sizes: https://i.imgur.com/7o98hqh.png
Then you can pick which image sizes you wish to keep.
Please check you have your cron job properly configured to run every minute or every 2 minutes.
Also, on the imports tab of spro, click the enable/add button next to the image sizes option then choose the WooCommerce catalog image sizes to keep.
Thank you for the review, I’m very glad we helped you out!
It replaces the Datafeedr API but I have not used this myself for a while now. I’ll get back to this plugin in a few months once my other plugins have all received their updates.
In the meantime, you can get a decent speed boost for imports using Scalability Pro, or you can try this free plugin but bear in mind it REPLACES the plugin of the same name from Datafeedr. There are not so many changes they have made since I coded this plugin so you are not missing out on much if you use this one but you do get far faster speed. You can check their changelog for the past 2 years to see what they added to their updates.
Glad to hear you’ve found us! Remember to check out our Discord server too, link at the bottom of every page.
Thank you – we have a lot of resources here and if you are ever stuck, come join our Discord server.
Yes if you need stock options per combo then you need variations. If the options do not affect stock levels then you should options – add ons, options, called different things by different plugins and yes this functionality is unfortunately not native. Unfortunately you only get variations as native functionality for handling this stuff which leads to performance issues when people use them for things that would be better served by product options or product addons.
Thank you, glad to be able to help and very happy that everyone is happy with our Discord server for support 🙂
Thank you for your kind review, we’ve worked hard on speeding up wp-admin. Got more speed boosts coming too for edit.php to make it even faster!
If you are determined to use varnish, you can actually use varnish AS your load balancer and it will also cache.
Hi, yes, to be fair it’s been fixed for a while. Just when you’re logged out only, so when you’re looking at status = published rather than status in (published, private) then it’s quite a bit faster with scalability pro.
I’m working on some case studies to demo this difference, will publish soon. In any case, if it doesn’t help you enough we have a 60-day money back guarantee.
Thank you so much for your review! Just one clarification for others, we also read from the DB for the terms and stock levels, but I write the queries myself to be ultra fast and SSF has it’s own highly optimised object relationships table which is far superior to the default ones provided with WordPress.
For example, if you have a term which contains 20 other terms – e.g. different types of clothing inside the clothing category, default WordPress/WooCommerce will grab all the child terms of the clothing category and then perform a SQL statement like this: WHERE term_id in (1, 2, 3, 4, ….) IN statements in SQL are terrible and prevent further use of indexes. My table lets you say WHERE topterm_id = 1 and this naturally includes the children. I’ll write up a full info article on this soon.
Also – if you have a look at the defines.php file, you’ll find some BETA level performance optimisations if you’re looking for EVEN MORE speed boost. Really! These beta options need to be added by adding the define to your wp-config.php file currently, but soon they will be in your options page.
There’s not really a perfect resource out there to be honest. I’ll make sure and get something written up to help explain how to create indexes yourself if you have uncovered slow queries that would benefit.
In the meantime, there is the official MySQL documentation which is a little tricky to read: https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html
And there’s a quite good article from spinupwp about indexes with some examples: https://spinupwp.com/wordpress-database-optimization-indexing/
The best things you can do right now is to try and reduce how many variations you have and use an object cache. The object cache helps with variations a lot, but if you have > 1000 variations then things will still be slow.
If a variation changes the price consistently and you do not have different images for that variation, then probably this could be a product option or product addon.
Scalability Pro does not help with product variations. It helps with many other areas, but not product variations.
Any further improvements require custom coding – but in most cases, you can make it work although sometimes you need to customise the code a little.
For example, there is some code in a lot of themes which alters the ‘sales flash’ to show a ‘percentage discount’ – this code got copied from the businessbloomer website where it had been submitted very badly coded. Basically, they looped through all child variations and got the prices from them. This involved loading each product variation. The code rewrite for this involves using a function available on the parent product to get child variation prices in an array. This is maintained at the parent level and is far faster, uses less RAM etc.
So – if you have a performance issue due to product variations, there’s a high chance that your codebase (some plugin feature or some theme feature) suffers from this bad coding pattern.
If you search for get_children() in your code base and then look at that code, if you see the code is performing a loop and then creating an object with each child variation then this code could probably be rewritten.
Thank you very much for your kind words! Glad to ease your performance pains.
It still hasn’t completed on my million product site – I increased the batch size to 10,000 – it should be done soon. I don’t like how they build these tables – they make them super reliable on every site but as a result, they take ages to build.
My tables use MySQL 8 features (recursive CTEs) to make building and maintaining these tables really fast.
re: WP All Import – I’ve run into problems twice with it recently. I may start changing my recommendation. Which import tool are you using now?
re: SOLR/Super Speedy Search – my own super speedy search plugin doesn’t yet include ‘Search Suggestions’. This is what I’m working on right now. Search suggestions will use its own custom table I create, will pull n-grams from posts/taxonomies/post meta, will record n-gram counts per taxonomy, and will then be able to instantly appear as you type.
Also – I need to update my ajax calls to be faster – I want super speedy search to be showing suggestions literally as you type which it WILL once I’m finished with the search suggestions.
re: The ‘and’ operation – you asked this on Discord – I’m adding the option – this is specifically when you DO NOT use a fulltext index. I’m also updating the fulltext index to span across wp_posts, wp_postmeta and wp_terms/wp_term_taxonomy so that the fulltext index can also do the AND operation you need. This will be faster and produce more relevant results, but I’ll also add this AND option into the ‘normal’ LIKE-based search for completeness.
In my ajax results, there is the option to show search results per taxonomy – e.g. music exams – and then a ‘VIEW ALL’ link which will then give you the search results full page for music exams.
You can also optionally configure each widget to search specific post types if you wish, but I think this all in one solution with a single search box will work well for you.
Thank you. Glad to have you on board.
Check your debug log, it should tell you what’s going wrong.
If you have variations where a variation changes the price by a specific amount – e.g. medium + £10 or large + £20 then you can have them as rules rather than variations.
If you have varitions where the price doesn’t change and the images don’t change, you can have them as product addons. It’s a shame variations are the only default included in woo because people overuse them and end up with a slow site.
I’m probably going to go with WPI WooCommerce Product Filters. In the meantime, I’ve rebranded all the plugins and packs to be prefixed with WPI since Glyn started doing outreach and people currently can’t find us if they search for WPI plugin packs…
Which version of the plugin are you running? Make sure you run version 2.75, you should also use an object cache to speed things up since the faster woo widgets plugin makes use of that to remember work it has done from page to page.
If you need further help, I’ll need credentials to access your site – you can email credentials to credentials@superspeedyplugins.com where they’ll be deleted after 4 weeks.
WPI Fast Filters for WooCommerce?
The price filter has to join to wp_postmeta – it does it in the fastest way possible, but still – it’s a range query on a meta_value column that isn’t numeric so can’t use an index. I’m working on a solution for that soon.
re: searching taxonomies – I’ve got that bit disabled in the beta right now because it wasn’t quite working how I wanted it – if you had a taxonomy called Books, it was returning every product under books when really it should just show you the matching taxonomy options.
But note: if you search ‘Harry Potter’ on foundthru.com, you’ll see the taxonomies on the side DO become filtered because they have the ‘adaptive filters’ setting enabled. This may be close to what you want, but how about you tell me how you’d like it to behave and I’ll add that as an option?
I was coding Super Speedy Search Beta updates today, so the code is all fresh in my mind and I can implement something cool for you.
re: dropdown with thumbnails – that WAS in super speedy search, it’s not right now, but there is a widget that will update the actual woocommerce results (rather than a dropdown) – it just ajaxes the woocommerce archive as you search. If you type into the SIDEBAR Super Speedy Search you’ll see the products searching immediately without the user having to hit enter. If they DO hit enter currently then it DOES go to a new page.
The top search box is also super speedy search but not ajaxified.
I’ve added a price range slider for you, but it’s not recommended to use this on your shop home page – it should be restricted to when a taxonomy is selected (e.g. when a category or brand is selected) otherwise you see 10s perf on this million product store which is pretty slow.
https://foundthru.com/dogs/
Not yet but this sounds like a great feature to let users choose if the header nav bar or footer should be included – not quite full screen then, but if you have a fixed/floating bar then it would still work well.
If you submit a feature request then I’ll email other fullscreen typeform users to gather more feedback for this option so we can make it perfect.
https://www.superspeedyplugins.com/feature-requests/
Not bad, but it has custom taxonomy filters, colour filters, ajax filters, ajax sorting etc, it’ll soon have distance filters, it has great SEO and permalink control and they’re really fast.
Difficult to encapsulate all that in a name.
Yes – I thought I’d linked it in the article, but here’s the overall changelog page:
https://www.superspeedyplugins.com/support/change-logs/
I removed them from the product page just because Google is complaining about the page being far too large for mobile devices so Google wasn’t ranking my pages. I’ll add them back in along with some other cool stuff like lists of plugins/themes compatibility, but it’ll come back in with Ajax.
From that link above, you’ll find the changelogs in text format but they’ll be back on the product pages soon when I find the time to ajaxify them.
Hah – yeah I like the alliteration. Fast Fluid Filters? Or Fluid Filters Software so the acronym would be FFS. People might think we sell drainage equipment though.
I’ll say a ‘caveated’ YES – it depends what other plugins you are using too. But yes, 500K products is fast on $20 per month digital ocean server and your server is massive compared to that.
Ok – I’ll have to alter the stats function to return something I guess. It checks its import speed after every row – this is why it’s running so slowly, it counts how many it has left to do and how many are done after every item imported. This calculation should ideally be done when the import is finished, not per row.
And if you really DO want to force users to select the compatible device when buying (to reduce returns?) then just add that as a Product Option instead and force users to pick one in order to purchase. With that approach, you’d still have a Simple Product rather than a Variable Product, so you’d just sidestep this product variations performance issue.
You say it’s the same product, regardless of which machine it’s compatible with – so why have these as variations at all? Just have them as a product attribute so users can search on that attribute filter. The compatible attribute will still appear on the product detail pages, but it makes no sense for the users to choose the machine for a single part when it’s the same part for all machines.
You should change this variation to just be an attribute – then, if you use my Faster Woo Widgets plugin, you can have the ‘compatible device’ as a scrollable list of items with a little search box above for them to enter their device name to show that attribute from 1500 possibilities. Then the search results would show all parts for that device with a single add to cart button available from the /shop/ product archive since there really are no variations the way you described. You’re selling that one product, it just so happens to be compatible with 1500 devices, but it’s still a SIMPLE PRODUCT not a VARIABLE PRODUCT. You might have variations if the same part was available in different colours, or maybe with different power outputs or EU/US connectors or something like that, but even then you might have them as separate products like ‘EU kettle plug’, ‘US kettle plug’ or whatever.
Yeah I don’t see why not – it’s an open source control panel so I’m sure it could be modified to install and configure this stack. Would be very cool.
I’ve added our Subscribe box to the sidebar, subscribe to the newsletter and get notified for new articles.
WooCommerce orders are stored in wp_posts, so yes it’s best to create the indexes at a quieter period. With 40,000 orders, and 1500 products, your wp_posts table is probably only 100,000 rows or fewer though. It’s your wp_postmeta table that may take a little longer, it might be as many as 1 million rows. Even then though, the indexes for 1 million rows take a few seconds. With MySQL 5.6+ (hopefully you’re on MySQL 8 right?) then CREATE INDEX statements (that Scalability Pro uses) are non-blocking. They are CPU and disk heavy though, so create the indexes at night if you’re worried.
The best approach would be for you to apply the indexes on your staging environment – a clone of your live – and then you’ll see how quickly they get created.
Dude that’s pretty unfair – you purchased the plugin and then didn’t ask any questions. The only question you ‘asked’ was, give me a refund. Our refund policy is great – 60 days money back guarantee – I only ask that you give me 7 days to address any issues you experienced. You haven’t actually told me about any issues you experienced. I’d be happy to help, but you didn’t actually ask for help.
Can you please provide a link to the Rankmath zip file you use so I can download it to my dev environment and test it. Have you tried unticking the box to overrule yoast? i think it would be the same function.
LOL – Full of *knowledge* – that’s not normally how that phrase goes!
First, follow this guide to reduce image sizes. Then install Scalability Pro. If you’re still having issues after that there’s something really wrong and I’ll need to take a look personally. If you try both of those, can you please ask this question in the public Q&A area and link to that question here and I’ll answer. In the question, you can provide private credentials so I can access your site and take a look.
I don’t have any ICO files in Faster Woo Widgets – in fact, I don’t have ICO files in any of my plugins.
I suggest you install Sucuri and check your WordPress core files for hacks since it looks like you are hacked.
I am pleased to confirm that a new Custom Taxonomy widget was added in beta 2.34 to add compatibility for Yith Brands, Woo Brands etc. Many improvements made to Faster Woo Widgets since then too – complete control over your custom taxonomy URLs etc.
https://www.superspeedyplugins.com/assets/plugins/faster-woo-widgets/beta/readme.txt
Hi – the bug is fixed in 2.53 Beta (30th November 2020).
Please download the latest beta version and test with that.
You can see the fix in the changelog here:
https://www.superspeedyplugins.com/assets/plugins/external-images/beta/readme.txt
No firm ETA yet, sorry. Schedule pretty much looks as follows: This week & next is bug & perf fixing + FWW testing. FWW should be released next week I think.
After FWW is released, I’ll have a sprint dedicated to Scalability Pro – there are quite a few potential things to include in that upgrade.
I haven’t prioritised this as high as maybe I should since there are workarounds that really help – reduce how many variations you have (e.g. using product options or product addons) and use a persistent object cache (e.g. redis or memcached). On top of that, recent versions of Woo have included ‘helper’ tables to improve performance, so I need to take time with a proper Scalability Pro sprint to examine how I can use those tables to further optimise, or whether I actually need to go the whole hog and create my own tables to improve performance.
Oops, sorry, check again now, 2.45 has been pushed.
I consider the current beta to be stable – it’s just such a big release that before pushing to core I really need to have all the docs in place to help people use everything to the fullest.
You can see the changelog here: https://www.superspeedyplugins.com/assets/plugins/faster-woo-widgets/beta/readme.txt
And you can view a lot more detail of what’s been fixed and implemented in this current sprint directly on this Trello card:
https://trello.com/c/8WXnL17h/132-fww-custom-taxonomy-filter
If you close that Trello card, then look to the right, you can see all the stuff done in beta for Faster Woo Widgets – there’s a LOT.
Cool – that looks easy – thanks for the help and the function link.
Thanks – that’ll be very useful for others. I’ve got a fresh guide for Ubuntu 20.04 in the works, probably coming out in May.
I’ll be releasing a 20.04 version in the summer. Focusing on plugin updates first.
Thank you for the links.
Beaver Builder compatibility was added in the last beta update. If I can get one or two more confirming it’s working perfectly I’ll push those updates to core.
Hi – the update for variations is not out yet and not in the current sprint – you can see the Trello card for it here: https://trello.com/c/WXbeCZ21/88-scalability-pro-speed-boost-for-product-variations
Make sure you have an object cache (Redis is best, but Memcached is also good). It’s not a perfect solution but it does help a bit.
Aiming to have this fix implemented in February.
I’m never happy to hear about unhappy customers – I’m really sorry it didn’t speed things up for you.
Here’s a guide explaining what each of the plugins do:
https://www.superspeedyplugins.com/2018/06/30/wordpress-performance-quick-start-guide/
As for contacting us – please use the Q&A through the site and you will get a response – I don’t see any questions from you. I do not reply to email questions any more if that’s where you tried to contact me. This was an intentional decision to eliminate the vast number of questions I used to answer in private – now other customers can benefit from the questions and answers.
You can see my blog article discussing this here:
https://www.superspeedyplugins.com/2020/12/07/december-development-update/
If you are really in a rush, you can contact me through facebook, but if it’s a general question I’ll still ask you to ask the question through our Q&A system.
For refunds – email refunds@superspeedyplugins.com
I just looked through my emails and I see that your site crashed when you were creating the indexes – this is almost certainly due to your server running out of disk space. The indexes don’t take up too much extra space on your disks, but they do need some free space in order to be created.
Thank you! This plugin was built for large stores or large blogs, so it’s really great to hear from happy customers.
Thank you – I’m sure some of my readers would appreciate it if you shared a github link to your ansible playbooks.
Thank you for letting us all know.
In the settings page you would enter just the DOMAIN for the website(s) you are configuring.
Then in the shortcode where you are placing the box you add your URLs and affiliate URLs.
You might want to check your RAM consumption on the server. If you run the
top
command through SSH, you’ll see your PHP processes.If you see some of them consuming a lot of RAM then you probably have a memory leak. Quickest and easiest way to fix that (other than finding the leak) is to recycle your PHP processes.
You could switch your PHP config to this:
pm = ondemand
pm.max_children = 32
pm.process_idle_timeout = 3s
ondemand rather than static will ensure the PHP processes get recycled. You’ll probably see a slightly slower speed when your site hasn’t had visitors in a while, but you should see higher overall capacity.
https://serverfault.com/questions/939436/understand-correctly-pm-max-children-tuning
Can you log into MySQL by justting running the mysql command from SSH?
If you have configured a root password, then you can create a credential file to avoid having to enter the username and password every time. See this guide:
https://serverfault.com/questions/358903/store-the-mysql-client-password-or-setup-password-less-authentication
To configure the 2nd domain:
Thank you! I’m glad you’re happy – I’m aware it’s quite daunting at first to build your own stack and I probably will at some point make an automated build for all this, but there’s a big benefit to going through the steps yourself so you understand your own stack a lot more.
Remember to check out my plugins too once your store gets bigger as even with this stack WooCommerce will slow down once it gets bigger unless you use our plugins.
Please visit the settings page and configure how you wish your permalinks to display and this warning should disappear.
The primary part Scalability Pro optimises for imports is checking against wp_posts or wp_postmeta for existing data – i.e. should the import update or insert.
So, it depends on your custom import script – I can recommend the WP All Import plugin – one-off license fee and it works with any size of file.
Sorry for your poor experience, August had me pulled in all directions.
Done – sorry for absence – it’s been a weird month. Working on two bugs in External Images now, Faster Woo Widgets again after that.
Are you sure DB replication is running properly? You can test by modifying data manually in wp_options on one server and checking on the other.
The other potential issue is maybe your web server cannot actually connect to the database on the other server – you can test that using the MySQL command with the IP of the other node.
Also – you should make sure you use the INTERNAL IP addresses for the database host.
If gallery does not display, ensure you are using DEFAULT gallery in your theme – if you use any advanced theme gallery functionality, quite often they pull the image URLs directly from the database rather than using the default WP functions.
Please raise a bug if this issue persists – I’m working on External Images next few days.
My current road map is: Faster Woo Widgets update, another Super Speedy Search update, then thorough docs and videos for everything, THEN I’m doing a new hosting stack alongside a hosting comparison of the best hosting options out there.
There are by nature plenty of ‘warnings’ in the beta version – some deliberate, some not deliberate. You should switch off error display and use error logging instead if you’re using the beta version of any of our plugins.
Yeah, you should install the latest of all components. I’ll get an updated article out before the end of the year.
That looks pretty cool. I’m still finishing off plugin updates for Faster Woo Widgets, but once that is done and live I’ll be taking a fresh look at stack options and hosting options for people.
Great! Thanks for letting me know.
I’ve looked at the priorities – now with the above releases out the door, I was going to do more work on the support pages – I am pulling them together to pull bugs, feature requests, kbs, articles and everything else all into one browsable and searchable place, but I’m going to defer the work on that so I can get back to FWW.
So, upshot is I’m working on FWW again today and the rest of the week. I have a bug with my system email I need to fix first.
Thanks for the styling fixes. I’ll be back to FWW very shortly, this week it should be.
Well your load balancer should have your public domain name, then on that node you use the “upstream clusternodes” block and then “proxypass http://clusternodes“.
upstream clusternodes {
ip_hash;
server 10.130.47.4 max_fails=3;
server 10.130.47.11 max_fails=3;
}
Ok – well currently you can do it through the Super Speedy Search widget, BUT it will use your default search results template so results may look ugly.
All questions answered, all tickets answered.
If you’re using cloudflare, they won’t proxy traffic through that port. I checked for you and it seems they allow you to use 8443, so either you can change your config everywhere to forward traffic for 8443 to node 1, or you can access node 1 using the IP address directly with the port number 8443 on it, or alternatively you could configure a different sub domain admin.yourdomain.com in cloudflare and alter your nginx config so that requests for admin.yourdomain.com get directed to node 1.
https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/#:~:text=CloudFlare%20protects%20and%20accelerates%20web,)%20and%20443%20(HTTPS).
Please check the latest version – I’ve removed the use of the getimagesize function which is where I think this problem may have been coming from.
If each site has its own dedicated server and stack then apply the optimisations there. Nginx is really fast out of the box as a reverse proxy.
You should look at http://www.superspeedyplugins.com/performance/ for a guide to which plugin improves which thing.
If you have query monitor installed, you can check and see if your main query is slow – if it is, Scalability Pro will help.
However, you’re saying the filters are what is causing slowdown so it’s highly likely you need Faster Woo Widgets instead.
Thank you for your review and I’m glad to hear about another area where this plugin is popular. I hope you find the recent updates useful too – we added variation images and variation galleries as well as image preview in the admin area and better compatibility with theme magnifying glasses etc.
Updated and checked your website last week.
I would need to re-review to check, but I don’t actually think Elementor is all that bad – it gets a bad press for performance, but from what I’ve seen any performance issues it has come from WooCommerce shortcodes and the like, as well as maybe too much JS – but too much JS doesn’t impact Scalability and there are other solutions that can help with JS.
Ok – can you please create a ticket for me and provide SFTP and wp-admin access and I’ll figure this out and fix it for you?
No, I didn’t use that plugin – do the queries go away if you add an object cache?
Yes, if you install Query Monitor, you’ll see a slow main query – it optimises those primarily. For the variations you should add Redis object cache – see my stack building guide: https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
You can use Apache, it’s just that Apache is a memory hog so you’ll get a lower total number of simultaneous visitors possible.
re: Raspberry Pi – that’s an interesting use case, let me know how it goes.
Do you have Redis object cache installed and configured? That’s the number 1 thing to boost variation speeds currently.
I meant to say – provide wp-admin access & sftp access through a ticket.
Is there any chance you could provide wp-admin access and sftp access to your dev site where I can see this and figure out the issue?
Ok – this gives me a good clue – I think the issue might be when converting empty image fields. I’ll test this, see if I can reproduce then release an update shortly.
Ok – I’ve changed to a belt & braces approach for those who were on the beta program, so it’ll re-run updates for all rows now. Even though the db_version had been altered in the latest version, it sounds like each external_image_url had been marked as converted.
In version 2.36, it will re-run the conversion for all of your images.
Please let me know – if it fails again, can you please tell me what you have in your external_image_url meta field for an example image and ideally create a ticket and provide me admin access so I can take a look at the database myself – having said that, this belt & braces approach should work now although the conversion will take longer.
You could use my plugin External Images which allows you to reference external images in your site.
If you need the actual images copied across to S3 on your behalf too, please upvote this feature request and add comments: https://www.superspeedyplugins.com/suggestions/add-option-to-migrate-all-existing-images-to-s3-or-other-external-storage-location/
Alternatively, I have an old article on my old website that might be useful to you – it lets you mount your S3 bucket on your server and then WordPress believes it’s uploading images when it’s actually sending them to S3. Let me know if you want an updated version of this article: https://www.affiliatewebdesigners.com/2015/06/02/using-amazon-s3-to-store-your-affiliate-product-images/
If it’s consuming all your CPU, it may be ‘faster’ but it’s not more scalable. And technically, if nginx uses 5% CPU and litespeed uses 100%, then it’s not actually faster, it’s just better at using all the CPU.
I’ll check all this in my future guide – if you can provide any more info about what litespeed is doing to consume 100% CPU that would be very useful – maybe it’s pre-preparing gzips of static files?
The current live version allows featured images and gallery images.
The current beta version has above (improved editor) as well as variation images.
I’m working on adding variation gallery images too into beta.
re: SKU, WooCommerce has a field you can set for SKU. A good import tool is WP All Import.
Thank you – there are other videos coming out soon and a fresh article for ubuntu 20 and other options for clustering as well as hosting reviews and comparisons.
If you’re happy administering your own site with SSH, then my stack guides are great but if you’re looking for a control panel I can recommend Gridpane.
If you need further help, I’m running a deal right now where plugin pack purchases until the 12th June get a 50% off coupon for 2 of my performance analysis and optimisation options.
I’ll be running new benchmarks in june or july, comparing hosts along with a brand new fastest stack build for 2020.
Litespeed will definitely be getting reviewed, primarily for the selective cache purge and the cached gzip of files.
Hah – I didn’t realise this was a British-specific phrase.
You can either change the wp_ database prefix in wp-config.php for each website but you’d have to change each table you already have in those databases.
Alternatively, you can use different redis databases for each site and just choose the relevant database in the Till Krus Redis plugin – the default redis database is database(0), and by default Redis has 16 ‘databases’ already for you. If you need more databases for more than 16 sites, check this guide: https://stackoverflow.com/questions/35621324/how-to-create-own-database-in-redis
To configure each website to use its own Redis database, you can add this to wp-config.php:
DEFINE('WP_REDIS_DATABASE', 1);
(the default is 0, and the default max is 15 giving a total of 16 Redis databases available by default)
https://github.com/tillkruss/redis-cache/blob/master/README.md
There’s really not much perf improvement in my experience – maybe 2 or 3% speed improvement which is very difficult to observe in practice. But yes, my future guide will use PHP 7.4 so feel free to install that instead of PHP 7.3.
That’s very odd. Never seen that before. Possibly your server is running out of RAM? From a Google search it seems this is related to Firefox addons – maybe try disabling them and trying again?
#summary would match elements like
In the case of the theme in this example, there is a
Yes, I’ve also added this note to the trello card: https://trello.com/c/EV2C3GOv/99-doc-write-new-rocket-stack-guide-for-ubuntu-20
You should add it, I always advocate belt & braces but to be honest this should have been in the security part.
The particular vulnerability here is quite complicated to reach – you need to have a vulnerable plugin which allows someone malicious to alter wp-config.php or similar, upload an image, then execute the image – the image actually contains PHP code. But it is a vulnerability so yes you should add it.
I’ve added this info to the new DOC trello card for the next article: https://trello.com/c/EV2C3GOv/99-doc-write-new-rocket-stack-guide-for-ubuntu-20
1. Either Autoptimize or alternatively you can minify using Cloudflare – it works pretty well and has some good stuff for moving javascript further down the page to improve page speed.
2. Sure – a cache primer is good, but having an extra page-caching system is mostly redundant as nginx will serve up the cached page before it hits WP-Optimize’s version.
Ok – I’ve bumped the trello card up in priority to the current backlog.
[EDIT: Scalability Pro was made multisite compatible quite a while back]
Hi – it’s not yet multisite compatible because the index names when created at each invidivual site would not be unique.
If this is a priority for you, I can bump the request up the list.
I’ve created a trello card for this job here:
https://trello.com/c/vV0o8XTc/97-spro-make-scalability-pro-multisite-compatible
It would be great if you could add any extra comments about how you’d like to see it administered – would it be better to have it setup and configured at the network level or to give site-owners the job of creating the indexes? I presume network level would be best? You can add comments directly onto the Trello card.
I’m not sure where you’re .user.ini file is coming from, but you can add a rule to nginx server {} blocks like this:
location ~ \.user\.ini$ {
deny all;
}
Great! How is it so far?
Also – with variations, there are plugins and theme features I’ve seen a lot where the code loops through each product variation on the archive page. For example – if you have functionality to change ‘ON SALE’ to ‘-20%’ or similar then that is very frequently badly coded.
I’ll be adding some functionality to Scalability Pro to scan the plugin and theme codebase to identify potential causes of slowdown.
Make sure you have an object cache in use – those can be used by logged in and logged out users and help a lot with product variations.
Yeah Ubuntu 20 only got released a week ago, so it’ll probably be another few weeks before all the other software items are available.
Glad to hear it – remember to leave a review on our plugin pages. Reviews really help.
Not tested it yet. I’ll build a fresh guide soon. Main difference is PHP 7.4 is the default version.
This is Scalability Pro – if you remove the ‘Pagination’ then Scalability Pro fakes there being 1000s of pages, i.e. you should then hide product counts and use an infinite scroll plugin if you use this optimisation.
Visit Settings->Scalability Pro and change the ‘Remove Pagination’ option to ‘Keep pagination’.
This optimisation is not for everyone. I advise you to read thoroughly the text under each option.
When Scalability Pro removes pagination, it doesn’t alter your theme, it just changes the SQL query to be faster. By not counting all the products, the query runs more quickly.
The unfortunate side effect is then that wordpress doesn’t know how many pages you have, so Scalability Pro fakes the page count to a high number. Customers who use this feature (mostly large affiliate stores) use infinite scroll instead of pagination and hide the product counts at the top. If that’s not for you, then choose to KEEP pagination.
For users logged in, or commenters, they will see the uncached page (i.e. they will see fresh comments) but for users logged out it will take until the nginx page cache expires before they see the new comments (if the page was in the cache before this extra user commented)
For new pages, these have never been cached before, so the main issue here is that your archive will not show the new page in the archive for 60 minutes (if your archive page has been cached inside the last 60 minutes). You can decrease this if you wish in the nginx config file for your site. You can also flush the nginx cache manually using the WordPress Nginx plugin.
You can also use ajax comments if you wish since ajax is never cached, so then users would see that being up to date.
My next stack build will include a selective page caching system so that rather than flushing the entire cache, it will be possible to automatically flush your archive pages but leave everything else cached.
Wondering if maybe your failure to use MariaDB is related to the authentication method used by default?
For PHP 7.4, it should be a matter of altering the nginx config file. If you take a look at the last commit on my github repo you’ll see the change going from 7.2 to 7.3:
https://github.com/dhilditch/wpintense-rocket-stack-ubuntu18-wordpress/commit/4504c3e6113fac61ed4f26ddf134e368d4d91839
Very odd – was there nothing tell you anything useful in any of the error logs for nginx, php, mysql?
If I were you, I’d disable the page caching in WP Rocket as it’s wasteful when you have Nginx handling it for you. The Nginx helper plugin can be useful to clear the page cache.
Bear in mind, WP Rocket doesn’t include an object cache which is really the most critical cache in WordPress.
I’ve yet to run the benchmarks. I have a task created here which I’ll get to once all my plugins have had their upgrades released: https://trello.com/c/qLWH6oj9/75-doc-create-comparison-of-hosting-providers-including-ssdnodes-aws-digital-ocean-would-be-easiest-to-compare-through-gridpane-to
You should keep the local php.ini version when upgrading so you retain all your changes from the default settings.
Hi – in WP All Import you would set the external_image_url field to:
https://127.0.0.1/mysite/images/{imagefield}
The curly braces part will be whatever fieldname you drag over using WP All Import.
Please can you try the beta version? Also, I think this *may* be related to the minimum token length set in your mysql. Let me know if beta is the same, it’s in your account downloads.
It sounds like you’re using a different theme and this theme is trying to grab something from wp_postmeta.
By default, wp_postmeta doesn’t have a usable index on (meta_key, meta_value).
I highly recommend you get my Scalability Pro plugin and click the button inside there to create indexes which will fix this.
That’s great news! I was really surprised by this issue because I’d never experienced it personally.
Is it possible that you’d updated WooCommerce but not updated the database or something? I guess it might have been fixed in a WooCommerce update.
The only thing Woo say about this is that they use the PHP Locale to determine price formatting. They have an option for decimal and thousands separators in their settings pages, but this is only for DISPLAY not for reading and interpreting data coming in.
https://github.com/woocommerce/woocommerce/issues/25864
I’ve yet to test with Litespeed – I’ve heard good things. I’ll be running my own comparisons once I get a bunch of plugin updates out the door.
You should just use the one CDN really. If you like KeyCDN then use them, some people report issues sometimes with Cloudflare but to be honest given the size of them there will be issues for some users.
Faster Woo Widgets already improves this quite a bit, as does Scalability Pro, and also adding an object cache helps.
I’m not sure when I’ll get the upgrade to fix product variations permanently, but it’ll definitely be this year.
Yeah ondemand is useful – particularly because it fixes any memory leaks you may have. Basically the worker threads are constantly getting killed and restarted fresh, as needed, so it will definitely save you memory.
re: the security policy, I didn’t enable it by default because it could theoretically break some plugins. It will make your site more secure and less vulnerable to any malware that may try to install itself – more specifically, it’ll make your site more secure against the impacts of an infected. You’ll need to test adding it with your site.
https://wordpress.org/plugins/redis-cache/
You can also use W3 Total Cache – it’s in the Object Cache settings page there. In fact, W3 Total Cache gives a bit more control but the one above I use a lot.
Ok, then so far, the best approach to speeding these up is to add Redis to your site and the Redis plugin by Till Krus. My upgrade to fix this further is not yet ready.
Is it possible for you to change any of your variations to product options? e.g. if there are any variations which don’t alter the price at all, they should be made product optoins, and if you have variations that change the price by a consistent amount across all other variations then they should be product options too. E.g option 1 +£0, Option 2 + £15, Option 3 + £30 etc
That sounds odd. I guess it’s possible that something got full deprecated in 7.4 and this has broken a speed plugin you have?
Which speed/caching plugins are you using?
Yes – if it’s possible with your config. Product Options can help too. Variations are really intended for anything that changes the price in a unique way. So – if you ave product options that when enabled add £10 consistently for option A, +£30 for option B etc then options are a better choice than variations.
Variations give the advantage that the specific combination of options can have its own totally unique price, but the major downside that they really slow down woo.
I’ll get back to working on the fix for this soon – got other updates coming out shortly.
When you first install this version, visit the settings page and hit save. It’s a known issue in the current version, fixed in the upcoming beta release.
This is implemented in beta – you can see the specific card on the trello board here:
https://trello.com/c/cvkrkeTv/46-fww-add-option-to-allow-users-to-pull-category-title-from-yoast-and-only-override-when-attribute-filter-is-present
It’d be great if you could add some examples to the trello card for me to use in testing.
This is the last item to be added to this release – everything else looking stable.
After this, comment I created an extra option in my-account to upgrade to lifetime. It’s very generous. If you upgrade within 6 months, you get the full price of what you paid discounted from the lifetime option. If you upgrade after 6 months, you have 50% of the price you paid discounted from the lifetime option.
Guide for sitemaps here: https://www.superspeedyplugins.com/2019/04/12/how-to-configure-nginx-for-yoast-seo-sitemaps/
This guide is next in the list. Please upvote this idea here to be notified when it’s released:
https://www.superspeedyplugins.com/idea/create-guide-to-installing-googlepage-speed-module/
Redirects from all the redirect plugins I’ve tried work perfectly for me, but to be honest I’ve never tried redirecting an image. Can you give an example so I can inspect it in Chrome? I’ll need an example of the page containing the image, the original image URL, the new image URL.
Can you please create a feature request here and I’ll add it to the roadmap?
https://www.superspeedyplugins.com/feature-requests/
What issue are you seeing with the country code part?
I’ve created a doc request for you – upvote here and you’ll be notified when it’s written
https://www.superspeedyplugins.com/idea/create-guide-to-installing-googlepage-speed-module/
That’s a misplaced header. If you look further up the article you’ll see some PHP optimisations.
Thanks for getting in touch. There will be an update out shortly with better means of communication. If you’re an existing customer, you can raise a ticket here: https://www.superspeedyplugins.com/submit-ticket/ If you’re a new customer, you can email support@superspeedyplugins.com. I’ll be migrating away from intercom today probably, so these emails will be arriving directly at my gmail inbox instead.
Thanks – I thought I’d fixed this. It’s fixed now. Was an outdated plugin called user role editor that had a backdoor to update wp-settings.php – It was basically this one: https://blog.sucuri.net/2018/04/obfuscation-through-legitimate-appearances.html
You’ll need a separate nginx entry for your 2nd website.
I’ll be releasing a trello board today with current plugin work and as soon as I can I’ll release the roadmap.
I agree the support channels are a problem right now – I’m working on it.
This will be caused by one of your plugins. I recommend you install query monitor and view queries by time and by component on the page after you update the post.
If you remove wordpress_logged_in| from the line, it will not skip the cache for logged in users, unless one of the other cookies exists (comments, cart etc).
If you want to disable the cache for admins only, you will need to add a function to the login hook. This function would check if the user is admin, then set one of the other cookies which would bypass the page cache – e.g. you could set wordpress_no_cache (doesn’t matter the value you give it, only that it exists)
You should also delete the cookie on logout. There’s a stackoverflow with the two functions you’d need here – just change the cookie name:
https://stackoverflow.com/questions/33256109/set-cookie-before-log-out-and-after-admin-login
Do you have any errors in the error log from wp all export? It exports in batches, so it shouldn’t ever time out. Do you have Scalability Pro installed?
Replied – sorry about delay – looks like you have 2 missing }’s
It looks like your first server {} block for port 80 does not have the closing brace. ‘}’ is missing.
This is great! Thanks for helping out.
No keep everything in the guide. I don’t have recommendations though for virtualmin vs webmin because I don’t use either. Maybe one of my readers can help you.
Probably when you opened in firefox the first time it wasn’t cached yet – try refreshing in firefox and you should see the cache hit.
You can change how long the the nginx fastcgi cache lasts for. Also, new posts *should* automatically wipe the nginx cache but alternatively you can install the nginx plugin to allow you to manually flush the cache.
Follow the guide and set up a cluster. Clusters provide high availability since you only need 1 out of 3 (or however many nodes you have) to be online in order for your service to be available.
I’m not sure – can you share your nginx config file? Maybe a different rule is being matched first?
I presume you restarted nginx after adding the sitemap rewrite rules?
Either add a primary key to tables where a PK doesn’t exist or don’t use strict mode. It’s extra tables created by plugins that are the culprit here, and almost always there’s an obvious primary key that can be added and if not then a composite primary key can be created which guarantees uniqueness.
Thanks, I found other bugs. This feature has been deferred so I can get the other updates out and then I’ll get back to this again
I know this is highly desired. I’ve implemented the basics of this but it comes with many bugs so I’ve removed it for now so I can release other FWW bug fixes and improvements, coming out this week hopefully.
Check out our later stack build: https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
Implemented it, got basic functionality working but many bugs. I’m fixing other things in FWW just now but I’ll get back to this.
Yes, I hired three. 2 quit because the work was too difficult and the other’s work was not so good.
So, back to coding myself for now. All the best developers I know avoid PHP unfortunately, but once I get enough revenue from the plugins I’ll try hiring again – there’ll be an article out soon explaining the new approach which I think will work well for the next year to get things moving fast again.
1. These nodes are effectively independent nodes and can run on their own if they have to, so yes 100GB would be required on each disk. If you want to avoid this, you’d need to use a SAN or something.
2. You could have one extra node that is your staging server and then disconnect that from the cluster. But better practice would be to have a separate cluster.
Thanks for the comments – foundthru is actually a dev server as well as a demo server so it frequently has some random stuff set up on it.
If you’d like to talk about consulting, use the quote request form.
Make sure you have DNS pointing to the server and try restarting nginx.
I’m not sure with multisite – maybe try disabled the nginx cache completely and test that? In the https://github.com/dhilditch/wpintense-rocket-stack-ubuntu18-wordpress/blob/master/nginx/snippets/fastcgi-cache.conf file you can change this:
# Don't skip by default
set $skip_cache 0;
to:
# Don't skip by default
set $skip_cache 1;
Then check if it’s letting you log in. If it does, that’ll confirm it’s the nginx cache that’s the problem for multisite and probably then you’ll need to add a better cache key – currently:
fastcgi_cache_key “$scheme$request_method$host$request_uri”;
If you have a domain variable, you could add that to the key.
Thanks for help with testing. I found other issues too where pages were being overridden. This will need a bit more work before I can release. Other fixes being released first.
Sounds like you have uncommented the SSL cert line prior to actually running letsencrypt. You should comment out those SSL lines, then get nginx started, then run letsencrypt again.
FWW is undergoing refactoring to make future features and bug fixes far quicker. Refactoring takes time but the release should be out soon. It has many speed boosts and new features.
I haven’t tested using a separate managed db engine yet from digital ocean but it’s on my list of things to test.
There’s no difference to setting up multisite in a cluster vs a standalone server. Just follow the normal multisite multidomain config. This will include altering your nginx config files: https://www.digitalocean.com/community/tutorials/how-to-set-up-wordpress-multisite-with-nginx-on-ubuntu-14-04
Prioritising. I’ll get a fix out asap.
There are lots of ways you can set up clusters. In the guide I’ve listed I have web + db on each node. But yeah, you could do it your way too.
Yes it will work – you would still benefit from having MySQL 8, PHP 7.3, Redis and Nginx. Virtualmin would be used just to create databases & configure the website info in nginx.
It looks like it’s compatible with Ubuntu 18 so just install it and try it out.
Gridpane
After you modify php.ini, you’ll need to restart php with: service php-fpm restart
If you’re looking for a managed service, Gridpane have the fastest managed service out there. You can deploy to loads of places – Digital Ocean, AWS etc.
That’s fair, but onboarding the new dev is taking longer than anticipated. In any case, I am now freed up to develop again too this week, so you’ll see movement finally.
It’d help me if you keep these comments to specific feature requests or in the forum rather than on this unrelated article.
It’s still in dev I’m afraid. My new dev is taking a while to get up to speed but we’re getting there.
Thank you! I love you too 🙂
Not that I know of unfortunately – even if you somehow got the plugin files only onto 1 node the other nodes would then notice missing plugin files and deactivate the plugin(s) in the database which would repl back to the first node.
If someone else has a solution, maybe they can offer one.
Maybe multisite is what you are looking for?
You are welcome! Thanks for the feedback.
Hi – I find CentOS a pain to be honest, and the argument about it being more stable doesn’t apply to this stack. Having said that, I have helped someone else install it all on CentOS and basically you’re swapping out apt-get for yum to install each component.
Also – CentOS puts config files in different places, but if you use the find command then that will help, e.g. find . -name redis.conf
There was a minor upgrade to FWW last week and our new developer is continuing with bug fixes on that plugin as he familiarises himself.
Try switching to FULL (not STRICT) SSL with Cloudflare. Presumably you enabled the option to redirect non-HTTP to HTTPS with certbot.
If you use the ‘flexible SSL’ it will access your site through HTTP not HTTPS. You should use FULL but not FULL STRICT. Full will mean you use the Cloudflare SSL on front-end and then communication between Cloudflare and your server will be over your Letsencrypt SSL cert.
Ok – can you please send me a copy of the facebook sync plugin so I can investigate the code?
I have a developer hired (finally!) who will be fixing this bug this week hopefully.
That’s odd – they should do – can you please create a bug for External Images with as many details as possible?
I’ve messaged him. Thanks. Got a few other interested parties. Hopefully have someone on board next week.
I’ve asked Igor for the latest version of Rehub – seems the ‘ajax’ option is the problem.
In the meantime, you can disable the ajax option and use our own ajax in Faster Woo Widgets which will definitely work.
Can you also please send me a copy of the martfury theme and I’ll ensure that gets compatibility added.
The more themes get added, the more generic the plugin becomes – i.e. adding compatibility for one theme normally creates compatibility for dozens or even hundreds of other themes if they use that same technique for grabbing thumbs/galleries/featured images.
I have no issues with price filtering or anything else and this is the first report I’ve had about this.
Can you provide access and a URL where I can see what you’re meaning? Then I’ll be able to debug. Contact me through support@superspeedyplugins.com.
I don’t do custom stack builds for customers any more. Pretty much all of them expected me to then manage the site maintenance for them which I have no interest in doing.
I can recommend Gridpane. It’s a little more technical minded than most managed services, but if you can handle that you get superb performance.
Yes to all of these. There are many changes coming, but the investment I need to hire devs has stalled. It should be here this month.
Right as of this minute I’m working on some bug fixes for FWW, a paid feature request for external images and also I have an updated http://www.superspeedyplugins.com website coming soon which includes buddypress with the idea being that site-wide activity will be far more visible including bug fixes, additions to changelog, feature requests, forum posts etc.
If you choose N then it should ask you next if it should create a ~/.my.cnf file for you. Once it does, edit this file and enter your username and password creds then re-run the script.
This means you didn’t copy the 2 files that exist in the fail2ban plugin folder. Look in the guide above for the cp command.
I don’t think I understand the question – you need php-fpm to actually process PHP code.
I avoid Apache just because it’s normally a memory hog, but yea you can put mysql and redis on their own servers easily enough and change the IP addresses instead of ‘localhost’. Make sure you use local network IP addresses for better performance. If using digital ocean, you can tick the box for ‘private networks’ when creating droplets and then your servers have two IP addresses – one public, one private and local.
Sounds like your file permissions are wrong, or maybe you have a setting in wp-config.php disabling the editor? There’s a guide here for disabling the editor, so presumably reversing one of these techniques will solve your issue:
https://themeskills.com/disable-wordpress-plugin-theme-editor/
Personally I would recommend editing your theme in a dev environment using Filezilla + visual studio code or with a local dev environment using something like Laragon which makes it easy to get a local wp up and running.
Maybe you have two default servers in your nginx files? Or maybe you have two sections in a single file for the same domain listening on port 80?
You can install redis wherever you like, but typically you’ll install it on your web server.
Which theme are you using? Please provide a link where I can download the theme and I’ll figure out why the archives are not working for you. Also, please confirm which version you are running of the plugin.
Hi – creating the external_image_url field yourself is correct if you’re importing. What happens when you edit the item? Can you see the external image there? This is the first step in diagnosis.
Sounds like you need to change /home/826397.cloudwaysapps.com/vaxvhpbyme/public_html/ in the nginx sites-available file to point to /var/www/domain.com
That’s not true at all. I chatted to you through on-site chat, helped you with scraping a bunch of different websites, you even said that it was working great, but then you much-later decided to go a different direction and told me that all the other plugin authors for this demo site you made have issued you refunds.
I had already provided you lots of personal support, at least 3 hours of my own time to help you use the plugin to it’s fullest and coded up extra stuff into the plugin to help further.
Then after you sent me the message saying you wanted a refund, despite the product doing what it’s meant to do, despite you actually saying that too, you issued a PayPal claim rather than continue talking to me. So then a week later I replied through PayPal and sent them screenshots of your still-live website still using my plugin and using it properly to scrape prices and PayPal resolved the claim in my favour.
Are you sure it’s not from another plugin? Or did you set ‘brand’ as the permalink in FWW?
Is it maybe Woo Brands or the Codecanyon one?
It’s fine if so, I’ve been meaning to add compatibility for a while.
Would you be able to send me over fresh credentials for your store – both FTP and wp-admin? I’ll include your site as a test-case for my upgrade. Should be ready by Friday.
What are you using here to display ‘brand’? Is brand an attribute? If so, it should work.
If it’s from another plugin, I’ll have to code something up – but let me know because I’m coding extra features for FWW right now.
You are welcome and thank you for taking the time to comment here and being so quick with the fix.
My affected clients are MOST pleased with you 🙂
You are welcome Marius. I’m impressed with how quickly they moved on this. I got an email back 3 hours ago confirming that the optimisation is now live in the free version and will shortly be live in the premium version.
Switch off the experimental option in Scalability Pro.
Depending on your plugins you’re using, you may have to switch off the ‘remove ordering’ option in Scalability pro too.
The firewall is included and fail2ban automatically adds rules to your firewall.
Check out my stack maintenance guide for administering fail2ban etc, but you can also look up iptables. For example, the following command will list all firewall rules that have been created (e.g. by fail2ban or anything else):
iptables -L
Thanks! That’s the primary reason I built it. That and the ability to have millions of products in your affiliate store without the need for massive amounts of storage space.
Is this 98% time used by unserialize?
That probably reflects using an object cache?
There are 2 key purposes here:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-headers-behavior
This script determines if the fastcgi_cache should be hit or bypassed. Based on things like cookie for items added to basket or user logged in etc.
You’ll find the cache headers line 13 in this file which is included in the main script:
https://github.com/dhilditch/wpintense-rocket-stack-ubuntu18-wordpress/blob/master/nginx/snippets/fastcgi-cache.conf
Ok cool – and what about the scenario where there is a blue (£10), red (£15) and green (£20) variation and the user searches for red?
I am fairly certain I can actually filter this quickly at the DB level and get the prices from and eliminate the need for the per-variant code, and in that case, I’ll be able to show: £15.
But would you want the ‘red’ variation image to show or the parent product variation image?
And would you want it to show price: £15 or ‘Prices from £10’ in this case too?
Can you describe your products? Do they have lots of variations? If so, I’m working on a solution:
https://www.superspeedyplugins.com/2019/07/06/my-journey-fixing-woocommerce-slow-speed-with-many-variations-part-1/
What do you mean ‘wrong default attribute widgets have been used’?
Can you elaborate so I can add to the FAQ/troubleshooting?
Yes – firstly, MemCached is the best alternative.
If that option isn’t available, hopefully you at least have SSD disks then you can test if you get a speed boost by persisting objects to disk.
The W3 Total Cache plugin gives you that option. After installing that plugin, use these options:
Before you do this, you should measure the performance of your slow page using Query Monitor. Then, after you’ve done the above, refresh the slow page TWICE. Once to populate the object cache and then second time to see the page generation speed using your disk-based object cache.
You should see the total number of queries drop on the 2nd page load after enabling your object cache, and a whole bunch of transients will be moved to RAM instead of the DB. If it’s faster with your particular disks, you should now find EVERY RELATED page is faster.
e.g. once the object cache for your shop is populated, you’ll find other shop pages faster too.
You may find initial population of the object cache per page-type is slower than before depending on your disk types.
Let me know your results.
Update coming – this seems to be happening on sites that have decimal for thousands separator but no comma for decimals.
Sorry, what’s this regarding?
Yeah attributes are useful IF the price doesn’t change per variation, but I have many clients who have real need of the price changing per option-combo.
Yes, I tried it. The problem with NFS is that the file system from each node will try to write or read the file directly. This often results in race conditions. When it reads the file, it grabs a ‘read lease’. This read lease doesn’t prevent other nodes from reading the file, but when the file is then written to that node will have to wait until all read leases are released. That causes sudden halts.
Worse than that is possible – if some PHP script grabs a read lease at first, then the same script on a different node grabs a read lease, and then node 1 attempts to write to the file it will fail indefinitely – this is the race condition.
There are a couple of workarounds – avoid writing to files – seriously, that’s an option, since files in WordPress should really only be written once and everything else should be in the database. We’re talking plugin files, images, css, js etc. But, some plugins will write to files and some custom code does too.
Using Unison, everything is written locally and then queued to be written to the other nodes avoiding any possibility of the local node not being able to quickly read or write to its own files.
Yes – sorry for not including it originally – I’ve added it to the article now. I’m running benchmarks on the key problems my customers have – mostly around huge stores and large numbers of woocommerce product variations – and I’ll link to that benchmark article once it’s released.
I’m not sure what support you rely on from Ubuntu, I’ve certainly never thought to contact them for anything. I have multiple sites using PHP 7.3 – the reason it’s in here is because it’s 10% faster than PHP 7.2.
https://kinsta.com/blog/php-benchmarks/
I have not tried SlickStack or HTTPS MU plugins – let us know here if you do.
I had created an ansible playbook in the past but I disliked it because really ansible is focused on deploying multiple droplets and then updating all of them across the board.
I prefer the individual server-level granularity, but if you are up for creating an ansible playbook I would definitely link it here.
You should maybe look at one of the other comments in here from someone who has created a docker deployment script – similar but probably better than ansible.
There are some comments in this article from others covering how they did it but generally you need:
That’s it really, it’s fairly simple, but droplets are so cheap these days I just do 1 site per server.
Hmm – this sounds like you’ve somehow switched off port 80 completely. You should keep your site listening on port 80 and have that rule redirect to 443. Letsencrypt should automatically add this rule for you.
Keep cloudflare off – use the little cloud bypass icon – until you’ve completed full installation.
Hi – yes – it should do. Let me know if it doesn’t work for you and I’ll investigate.
If post_type=product is removed, it won’t know which template to use.
See https://foundthru.com/?s=bowl&post_type=product vs https://foundthru.com/?s=bowl
1. Yes, just finished this fix – if last filter is removed, it goes to search URL (not necessarily the shop base, depends your config)
2. Ok, I’ll add this now
3. Ok – I’ll add the search string to the h1 title, and I’ve already added the search string as a removable filter to the existing filters widget
It’s definitely compatible with WP All Import – instead of importing images to the IMAGE area of WP All Import, you just import those URL(s) to a new meta field called external_image_url. This field can contain multiple images separated by pipe | symbol.
I’m uncertain re: WP Residence, but it *should* be compatible and if not I’ll add a fix to make it so. Given this uncertainty, you should test on a clone of your site first. We have been constantly making improvements to make it automatically compatible with as many themes as possible but in some cases some themes will try to read the thumbnail URL directly from the database. A future upgrade is going to be coded to detect this attempt to read the thumbnail URL from the database and override it by pulling the relevant URL from the external_image_url field, but in any case I can code specific alterations for specific themes fairly quickly.
In addition to PHP, Nginx has its own max upload configuration setting. That’s what the client_max_body_size refers to and what this error refers to.
Did you add client_max_body_size 250M; inside the http {…} area?
Thank you – I’ll update the article to reflect this.
service php7.2-fpm restart
The file will be inside /etc/nginx/sites-available for the redirect.
I use wget for cron. Not sure why your cURL is not working. Maybe you don’t have letsencrypt set up and are using cloudflare instead? This may cause this I guess.
Hi – we temporarily removed the onsite chat. You can email me at support@superspeedyplugins.com.
Is it possible you migrated an existing site? If so, the file permissions would have been copied across when you copied over the previous files.
I’ve written a full guide to migrating reliably here:
https://www.superspeedyplugins.com/2017/05/18/migrating-huge-wordpress-sites-reliably/
That’s odd. So if it installed, you definitely had the DB creds correct. Maybe you didn’t set up the www-data:www-data permissions for the /var/www/rocketstack folder?
I haven’t run the performance tests yet. I’ll be comparing WP Engine, Grid Pane, Kinsta and Siteground in a new article soon.
It sounds like you maybe migrated a site over the top of the fresh rocketstack installation. If so, you’ll need to update your wp-config.php file to reference the correct database and db name and db user.
Please update to 2.16 and confirm bug fixed.
Not possible. Cloudways is too locked down. They use a combo of Apache, Varnish and Nginx.
In my experience supporting people, I’ve found their stack to be a bit overcomplicated and not as fast as the raw stack in this guide.
I pulled my recommendation for Cloudways as a result about a month ago.
Hi – I think I know the cause of this but can you please tell me which theme this is?
I can implement a solution quickly if the cause is what I think it is.
Nothing I’m aware of should break with WP 5.2.
Did you use certbot to run letsencrypt and did it complete without errors?
One key note: If you are using Cloudflare, when you are running the certbot you should have the Cloudflare bypass option on. (arrow going around the cloud rather than through the cloud in DNS settings)
Hi – there are two aspects to adding an extra node. One is file synchronisation, using Unison. The other is adding an extra node with your database.
If you use Cloudflare, you need to pay these days to use a strict SSL, otherwise use the Flexible SSL certificate option.
If you don’t use Cloudflare, you shouldn’t see issues.
Did you restart nginx? The certbot should restart it for you, but if not, try restarting nginx and take a look at your rocketstack.conf file and confirm the certbot added the SSL certificate lines.
I was maybe a bit confident saying ‘definitely’… It’s next up in feature development and shouldn’t take too long.
It’s on there by default. Removing it clears things up.
Hi – it really depends on what you’re using. If you’re using Yoast sitemaps for example, then yes you need to add some extra rewrites covered here:
https://www.superspeedyplugins.com/2019/04/12/how-to-configure-nginx-for-yoast-seo-sitemaps/
It’s up to you. Google Pagespeed or new relic are both decent, but I like using xDebug when there are any tricky issues. Less overall load on the server.
Sounds like you might have updated to 7.3. In putty/ssh, type: service php7 then hit tab, it’ll complete the service name for you then add a space and the word restart.
Use your root db user rather than the wordpress db user.
hi – the noindex tag one is definitely coming next week and hopefully SEO text based on filters.
You’ll need to restart the php service after changing these values using:
server php7.2-fpm restart
I don’t use WP Rocket. I just rely on: fastcgi_cache, autoptimize plugin and sometimes some cloudflare features.
You’re better off not proxying them due to how large they are. There’s an odd issue with Asos where it tries to detect image type using https and fails – BUT the images DO work with HTTPS.
You can either alter the image URLs for Asos to be https instead of http or you can install SQL Executioner plugin and run this command to tell External Images to simply change http to https:
update $options set option_value = ‘yes’ where option_name like ‘eissl-images.asos%’;
Hi – it’s possible – install SQL Executioner plugin then run this code in it:
update $options set option_value = ‘yes’ where option_name like ‘eissl-images.asos%’;
One thing to try: Visit your Settings -> Permalinks and hit SAVE. This will force-refresh your permalinks. May be related. I cannot reproduce this bug.
Ok – trying to figure out a solution for this. In meantime, if you need old zip file, let me know and I’ll send you one.
Fixed in current dev version. Update coming out today.
Update to FWW coming out today.
Hi – sorry for the delay in getting back to this. I’ve re-opened this bug and I’m working on it now along with other bug fixes for FWW.
I do not have it dockerized yet, but this is definitely something for the future.
I am in talks with someone about recommending a great managed service that includes clustering options however. More to follow soon.
Very cool – thank you for the info – others will definitely find it useful. I pretty much always only run one website per server, given how cheap droplets are these days.
I’ve added a sitemap configuration article which gives full info.
https://www.superspeedyplugins.com/2019/04/12/how-to-configure-nginx-for-yoast-seo-sitemaps/
Yes – they will be next in the queue, after some other bug fixes I’m working on.
Use Flexible SSL or upload your certificate to Cloudflare.
Hi – please check the database connection errors troubleshooting section on this page. It’s highly likely that you ran the command to secure mysql but then you chose the new authentication plugin. There’s a guide above to changing that back for your WordPress db user.
Yes – if you want to use FULL on Cloudflare, you need to upload your own SSL certificate to Cloudflare. I believe they moved this feature into the premium plans however, so Flexible is what you should use unless you want to pay them.
Given that you have an SSL on your site, you still have fully encrypted traffic, except with 2 different SSL certs – one by Cloudflare, and one by Letsencrypt.
This is currently the newest one. You can follow some additional tips you’ll find in the comments to get the latest version of MySQL and PHP. Other than that, you can use these two commands to get everything to update:
apt-get update
apt-get upgrade
There are a few possibilities here:
You can check for compression using a variety of online tools, e.g. https://www.whatsmyip.org/http-compression-test/
You can also see more background info here: https://serverfault.com/questions/818549/nginx-gzip-not-working
Great, thanks! I’m working through this on another site right now.
Thank you for this and for helping our readers. I’ll get the article updated once I’ve built a new stack. Should be today.
Hi – thank you – I will get the mysql thing updated ASAP.
re: WooCommerce, the nginx config comes with configuration for WooCommerce. This detects the WooCommerce add-to-cart cookie and then prevents caching for that user from that point onwards.
Hi – I am working on a guide to show you how to do this just now.
https://www.superspeedyplugins.com/2019/04/12/how-to-configure-nginx-for-yoast-seo-sitemaps/
Hi – sorry for delay. I was moving country. Price Comparison Pro is going to be getting worked on very soon, bugs first, feature requests second.
Hi – my support chat is now up to date. Can you please check your email?
If it’s a bug you’re reporting, please use our new bug reporting feature rather than reporting it through chat. Same for feature requests or documentation requests.
Hi – yes – working on this guide for you now.
I’ve sent you a message privately to gain access to Flatsome theme so I can add this by default. I presume they are doing something weird for it not to be automatically compatible, but in any case I’m ready now to figure this out.
Hi – it’s great to hear that others are building clustering solutions to make this simpler. I’ll gladly make your comment visible for others, and yes I’d be keen to get access to a sandbox to play with and run performance tests.
You won’t need it for normal WordPress stuff, but if you want to enable it for other reasons you could do so. If you’re thinking to resize images on-the-fly, you may be better off using the service provided by Cloudflare to handle this as it’ll alleviate load from your server.
See the answer someone else provided in a comment on this thread for adding http2
The easiest to add is to add PHP MyAdmin using a subfolder. You can also add it as a subdomain if you wish, but a subfolder will not require any alterations to your nginx config.
Or you can use PHP Miniadmin – http://phpminiadmin.sourceforge.net/
Your changes look good. That’s if you haven’t enabled HTTPS. If you have enabled HTTPS and letsencrypt on your server, there should be a second block inside rocketstack.conf for 443 SSL traffic, but yes, those edits look good to me.
I’m not sure how you’re getting this error. Please check the database troubleshooting section. Is it possible you have a different default authentication method for MySQL users than the one listed in this article?
There’s a guide here for Ubuntu 16 which should work – https://www.digitalocean.com/community/tutorials/how-to-install-ioncube-on-ubuntu-16-04
Thank you for your help with this.
Please try visiting wp admin -> Settings -> Permalinks then hit ‘Save’.
Which version of Ubuntu are you using and which hosting company?
Hi – that’s a great idea and something I’ll likely approach in the future. I have considered in the past doing similar one-click installs on Digital Ocean and AWS, so no reason to not include these other platforms at the same time.
Hi – sometimes permalinks get stuck – you’ll probably find that if you visit Settings -> Permalinks in wp-admin then click ‘Save’ (yes without changing anything) that it will start working
Released last week
Yes it is
Thank you for your kind words.
Hi – I’m really sorry about the poor level of support the past week and a half. I’ve been relocating from Scotland to Greece.
I’ll contact you through our chat system regarding your refund.
As for the warning in the plugin, I think maybe you’re on an older version of the plugin? If so, please re-download the latest version from your account page since there was an older version which had a bug around the auto-update, so updates weren’t happening properly.
Release is coming today. There is a LOT in this one.
Hi – it sounds like phpmyadmin is not yet MySQL 8 compatible. Maybe it’ll be as simple as getting the very latest phpmyadmin. The part that has been deprecated has been deprecated for a while, specifically performing a GRANT PRIVILEGES and creating the user at the same time.
See this stack overflow for more info:
https://stackoverflow.com/questions/50409788/mysql-8-create-new-user-with-password-not-working
You could find the code inside the phpmyadmin that is performing this GRANTandCREATE and alter it to the new format, but presumably someone else has done this already.
You may also run into issues relating to the new default authentication method in MySQL 8 – see this stackoverflow about that:
https://stackoverflow.com/questions/49948350/phpmyadmin-on-mysql-8-0
Yes, should be fine, providing the update packages are available. Debian is normally slower at releasing stable updates than Ubuntu.
Plugins have all been using $wpdb->get_results for a while now, rather than constructing their own db connection. If you are integrating third-party php, rather than plugins, then you may have to rewrite older mysql_* functions to use the newer functions.
Hi – please check the database connection errors troubleshooting section on this page. It is highly likely that’s what you are experiencing and you need to change the mysql authentication type for the wordpress db user.
Hi – sorry – sometimes I get lost in code. I’ve added two new robot paths to intercom last week to help keep people updated and I’ve started a dev diary to keep you notified about what’s being worked on.
Faster Woo Widgets is almost there including both the things in those links.
Yes – a couple of bug fixes were removed in a hotfix due to them causing other more serious bugs. They will be back in with this release.
You should ensure you generate the script from your OWN phpinfo.txt file. Instructions included above for how to generate that. Don’t follow my steps, as they’re particular to that specific server.
Once you generate your phpinfo file, copy/paste the contents to the link above where it will then provide specific instructions for your server.
Check out my article on configuring your stack to see how to control mysql memory usage. 40% is about right though. You need to leave RAM for the operating system, nginx, redis, the php processes.
https://www.superspeedyplugins.com/2019/02/14/stack-configuration-customisation-and-optimisation-guide/
Can you visit Settings -> Permalinks and hit save and try again?
Hi – for a file manager, you can use FileZilla. There are other web-based file managers you can use. I’ll cover these in my upcoming article.
I’m also adding info about multiple websites on one install to this upcoming article.
Hi – please change your server_name _; inside your rocketstack.conf file in sites-available.
Change it to reflect the domain name of your site.
Then run:
service nginx restart
Oops – my bad – my fault for replying from back-end where you can’t see threads. Glad to hear it.
Sure – when you set up your sitemap at first, you should ensure that you don’t include anything in it that you don’t want indexed, simply because it will use up your crawl budget. But – if there IS an item in your sitemap index which is subsequently set in your normal SEO plugin to noindex, then having this in the sitemap will help the bots index the fact that this page is now no-indexed immediately and can help you remove the item very quickly from the google/search engine index. If you don’t have the item in your sitemap, how can google then read the fact that this page is now set to noindex? Especially if it’s not linked elsewhere on your site anymore?
So, what I’m saying, is you should be able to set up your sitemaps nicely once, and maybe revisit if you add further custom post types, but other than that, you can have your seo plugin manage the noindex, and leave these noindex items in the sitemap. They have a ‘lastmod’ property on them so when they get set to noindex, they will notify bots, they’ll see the changed date, they’ll read noindex, they’ll remove the item from the cache, they won’t index it again until the lastmod property changes again.
If you have cloudflare on your site, ensure you have clicked the cloud icon in the DNS tab to bypass cloudflare until you have your SSL configured.
If the SSL still doesn’t register, follow the troubleshooting section for the SSL – there’s an alternative way now to generate the SSL certs that seems to be a bit more reliable across different platforms.
If you don’t follow the ‘defaults’ when securing mysql, then you’ll have to follow the troubleshooting.
Yes it’s difficult, but you’ll learn a lot about managing and running your own server, which is ultimately the best way to have total control over your wordpress environment in the most cost-effective way.
If you’re interested, ping me a message through our on-site chat, I’ll give you my public key, you can give me access, and I’ll figure it out and report back here with the solution.
Can you confirm that your /var/www/rocketstack folder is ownder by user and group (separate things) called www-data?
“It _should_ be able to handle it fine” – Yes, it should, but it doesn’t, not on large sites.
You are correct, the part I optimised is the sub-query of a larger query. Here is the larger query from directly inside their code:
You can also see this full query including the sub-query with late row lookups in the screenshots I make after optimisation.
From the above code, you can see they have implemented an old optimisation which I also implement for the BWP plugin as part of my optimisations in this article – namely, late row lookup. Here are two reference URLs – the first, is specifically from someone in Germany to get Yoast to optimise their previous query (when they just did select p.* … order by limit…):
https://wordpress.org/support/topic/plugin-wordpress-seo-by-yoast-performance-suggestion/
And here’s a more in-depth article explaining why this optimisation helps:
https://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/
BUT – since Yoast originally wrote that optimisation, someone else on their team has modified their code to include this redundant check:
Now – if the index was only required for seeking against post_type, post_password, post_status and post_date then this would be the end of the matter. But there is an ORDER BY statement inside the sub-query on post_modified. This post_date != part of the query, even if we have an index on post_type, post_password, post_status, post_date, post_modified prevents use of the index PAST the post_date. Because we did a != instead of =, we cannot guarantee that the remainder of the items in the index are in order. So the query optimiser is forced to perform a sort on the entire remainder of the index. In this case, that’s 1.4 million rows.
By removing the post_date != ’00-00-00 00:00:00′ I allow this index to be used and I eliminate the sorting operation. That’s where this speed boost comes from.
As for why I cut out the sub-query to analyse it separately, I did that because this is the part of the overall query that was slow. This is the part that needed optimisation. Like I said, you can see the full query in the screenshots with the optimised part in the subquery, and the outer query of select p.* from (select p.id …) x join wp_posts p on x.id = p.id …
If you doubt that this index-breaking post_date clause is part of Yoast, you can check it here:
https://github.com/Yoast/wordpress-seo/blob/a1628d1570a8e8cca896312509ac986182836c30/inc/sitemaps/class-post-type-sitemap-provider.php
In the above, you’ll find this line:
AND {$wpdb->posts}.post_date != '0000-00-00 00:00:00'
As for WHY this code got altered, I cannot find the answer. Here’s the blame link:
https://github.com/Yoast/wordpress-seo/blame/a1628d1570a8e8cca896312509ac986182836c30/inc/sitemaps/class-post-type-sitemap-provider.php
In there, there’s one red herring, which is really just someone mostly refactoring, but is not when this != was added:
https://github.com/Yoast/wordpress-seo/commit/0aaf711796d62656ff78d14ec53309014742d077
Anyway, as per your suggestion, I’ve submitted a bug to Yoast’s bug tracker. This is the 2nd bug I’ve submitted to them (although the first was over twitter) and the last time they were very quick at implementing the suggestions.
https://github.com/Yoast/wordpress-seo/issues/12161
I would recommend you leave your XML sitemaps to include all your URLs, and use your SEO plugin to control noindex.
Imagine you have a page which is currently in your sitemap and is currently set to indexable. Image you change it to noindex. Because it is in your sitemap, googlebot will find it more quickly and will spot the meta noindex tag and will thus quickly remove it from their index.
Not sure why your uploads folder is changed from being owned by www-data:www-data. Is it possible you are uploading plugins or files using filezilla directly?
Is it possible your uploads are blocked for another reason? e.g. max size?
Absolutely. 1) It moves transients into RAM only which is a major speed boost and 2) It gives you a lightning-fast object cache which is another major speed boost.
There is no downside.
If they are inbound webhooks where the endpoints are on your server, then you’ll need to configure nginx to call the correct PHP scripts. If they are outbound webhooks then I see no reason for them not to work.
It’s WordPress Popular Posts shortcodes inside Tabs Responsive with my own CSS to get it to stick once you scroll a little and my own CSS for the styling.
Thanks for the suggestion. I didn’t check it, because they don’t have anywhere close to the options in BWP and because of this I presume they don’t paginate their results, or optimise their queries. I might be wrong however. Are you using it on large sites?
Something else is happening in your install. You have a cron job or something running that’s performing imports or something. I have Rehub on https://www.foundthru.com and it IS incredibly lightweight – one of the fastest, most scalable themes I’ve seen.
If you’re uncertain where your SQL queries are coming from, install Query Monitor then view your pages, click the Query Monitor bar and then choose View queries by component or View queries by caller. This will help you identify the culprit.
If it is indeed your imports, then you should set up a query log in mysql to find where you’re queries are being generated, but almost certainly it’s import jobs you’re running which is not related to rehub, it’s related to the imports.
When you ran the command to secure mysql, did you choose the defaults, or did you choose the new encryption algorithm for mysql user passwords?
If you chose the new method, then you should edit /etc/mysql/mysql.conf.d/mysqld.cnf and add the following line at the end:
default-authentication-plugin = mysql_native_password
Yes – you can install it afterwards, or you can use phpminiadmin.
More control over this will be added in the next release. I’ll also try and add the ‘repeater’ meta box to give more control here.
Hi – this was fixed back then. Sorry about the temporary bug.
Hi – sorry – this has been fixed. I’ll release another update once this ordering of taxonomy values has been fixed properly. I changed it so that URLs like /filter/green/blue/ would always be in the correct order, i.e. /filter/blue/green/
Hi – what error are you experiencing? Perhaps the plugin you are using needs some configuration? Typically this would involve copying a line into your nginx.conf file or to your sites-available/rocketstack.conf file.
Hi – it might be caching a redirect related to cloudflare? This is the most common reason for this. If it’s still happening to you, ping me in the chat so I can look at your config and figure this out.
MariaDB is still a good choice, but MySQL 8 is as fast as MariaDB and there’ll be a lot more support around the internet for MySQL 8. Performance-wise, they’re very similar.
Whatever caching plugin you use should change this setting for you, so no need to manually alter it.
I wouldn’t recommend upgrading an existing droplet unless you’re ok with downtime. You’d be better off creating a new droplet then migrating your site. I have a guide to migration here: https://www.superspeedyplugins.com/2017/05/18/migrating-huge-wordpress-sites-reliably/
Repeat the steps in the guide to create a new cache folder for the 2nd site and adjust the config accordingly.
This will also work – I prefer to use separate config files per website, but you can have multiple inside the same file if you wish.
Actually – I really prefer completely separate droplets per website.
Sorry – you need to create a separate cache folder for each site and change the config to reflect that too.
Create a separate folder for caching the second site – e.g. /var/www/cache/site2 and change the config file
Probably the 4th or 5th January.
Hi – thank you for your kind comments, and thank you for your help improving the plugin 🙂
Sorry I can’t help you further. Setting up a cluster is definitely not for everyone – you really should have sysadmin skills.
Yes – change the ‘server_name’ variable to reflect your site. That should stop these redirects. It may also be your cloudflare SSL flexible certificate (if you’re using one). If so, you should switch to FULL.
Import the gallery image URLs to the eigallery meta field.
Hi – place your gallery images in CSV format into a custom field called ‘eigallery’ and they’ll appear. It’s ok to repeat your featured image in here, it’ll be de-duplicated. If your featured image is not in the CSV list, it’ll be added to the gallery anyway.
It’s up to you – there is an Nginx plugin which lets you purge. Here’s a good plugin by the same guy that makes the Redis plugin:
https://wordpress.org/plugins/nginx-cache/
1) Add your domain to the server_variable instead of just _ there.
2) It includes rules for WooCommerce to bypass the nginx fastcgi_cache. You can test this by opening the network tab in chrome developer tools (F12) then reload the page and look at the ‘headers’ sub-tab and view if it was a cache HIT or BYPASS. You’ll notice a BYPASS as soon as products added to basket.
3) Create additional files for each site in /sites-available/ and separate folders under /var/www/. Ensure you specify the server_name variable.
Enter the server_name variable to match the domain you are matching.
Also, you should delete the /sites-available/default file.
Sorry – I linked the wrong tuning-primer.sh script.
Use this instead:
cd ~
rm tuning-primer.sh
git clone https://github.com/BMDan/tuning-primer.sh
cd tuning-primer.sh
./tuning-primer.sh
Check permissions on the file – they should be owned by www-data:www-data.
Add this to rocketstack.conf:
include snippets/gzip.conf;
Or use Cloudflare for compressing files to save CPU on your server.
Hi – see my other responses here – you can either use Cloudflare to compress your files and set browser caching or you can add this line to rocketstack.conf:
include snippets/gzip.conf;
Not soon – I’m focusing on plugin upgrades over the coming months including Price Comparison Pro, Scalability Pro, External Images, Faster Woo Widgets and bug fixes for the others.
Either use Cloudflare to compress files or add this line to your rocketstack.conf file:
include snippets/gzip.conf;
You are correct. In the guide, I presume you will use Cloudflare to compress files but if you wish to add gzip using nginx, simply add this line to your rocketstack.conf file in the nginx/sites-enabled folder.
include snippets/gzip.conf;
You can put that after this line:
include snippets/nginx-cloudflare.conf;
There are other snippets in that folder that can be useful under various scenarios which I will cover in future guides.
Yes it is – the easiest way is to create a copy of the nginx/sites-available/rocketstack.conf file for your 2nd domain. You will need to create a separate folder, separate database, separate SSL certificate etc but yes – just repeat the config steps but change rocketstack.conf to point to your other domain. You’ll need to change the server variable to refer to the domain you are adding.
Hi – sorry for the delay – there’s an upgrade out today which should fix any issues you are experiencing.
I’m now working on documentation for External Images for the rare themes that do not use the correct functions to grab thumbnails etc – even with these themes, External Images will work but with those it will take a little modification to your child theme.
Hi – if you use our External Images plugin then the 2GB droplet will be big enough. It takes a while to import images and it also takes a lot of storage space.
This sounds like something specific to your install. Some plugin has some broken code when trying to use the object cache.
Enabled your debug.log file by editing wp-config.php and then load your product pages and check the log file to find out the culprit.
No need for varnish when you’re using the Nginx fastcgi cache – it’s being used in this config instead of varnish, is AS fast, but most importantly is easier to configure and debug.
Hi – I’ve updated the article – you may find now the command stretches across on top of the sidebar, but now the — (double dash) will be properly represented instead of being turned into a single longdash.
It sounds like you might not be running Ubuntu 18.04? What OS are you running?
Oops – thanks for this – I’ve updated the guide to fix these issues.
Nice idea – it’ll include it in my stack-tests when I have my benchmarks ready which will be done after I’m finished two plugin upgrades.
But this link looks useful for what you need: https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-with-http-2-support-on-ubuntu-18-04
Hi – it should do – but if it’s not, what happens if you change the owner on the parent folders on each node? Do new files then inherit the parent? If you still have issues, contact me through our on-site chat.
1) Automatic
2) No, follow my guide
3) If you mean a storage volume, Digital Ocean do not yet allow you to connect them to more than one node. This would be great – like a storage area network (SAN).
If you need individual help, get in touch through our on-site chat system.
Get in touch through our on-site chat and I can help you out.
Hi – if you get in touch through chat and show me your use case, I can code something up.
New guide for Ubuntu 18 is live – https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
New guide it out – check it out – https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
It’s released – https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
Hi – it’s out – sorry about the delay – https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
It has been released – benchmarks coming soon too – https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
I have released it – check it here: https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
It’s out now – https://www.superspeedyplugins.com/2018/10/20/installing-the-fastest-wordpress-stack-ubuntu-18-mysql-8/
Please check our guide to maintaining your cluster. It should help you figure out what’s going wrong – it includes methods for diagnosing failing db clusters etc.
https://www.superspeedyplugins.com/2018/04/26/how-to-maintain-and-manage-a-wordpress-cluster/
What happens?
Without cookies enabled you won’t be able to login. Probably your security essentials are stopping the download link opening too.