Bulk Editing of a Few Products Incredibly Slow
-
Hello! We have been struggling with bulk editing speed on our WooCommerce store for quite some time now. Today we upgraded to a much more powerful AWS instance (16GB, 4core) and have noticed speed improvements in many areas except for the bulk editing.
More information: we currently have more than 2000 products in the store, most of which are listed as Out of Stock. We will frequently need to take 10-20 products out of stock at one time, where we would like to check the box for the products in the products list, select “Edit” under Bulk Edit, and then hit Apply. In the next area that appears, we would like to select “Out of Stock” or “In Stock” and hit Save. Even if we only have 3 products checked, this operation will always take longer than 60 seconds, and up until I extended the script operation time to 90 seconds on the server, we would encounter the 504 nginx timeout. Now, the operation typically completes, but is painfully slow for a server with this kind of resources.
Other than extending the script run time before termination, I watched the RAM usage on the server (we have 11GB free), and I’ve increased RAM for frontend operation to 512M and backend (wp_max_memory_limit) to 2048M.
I’m assuming it’s because we have a high number of products and many of the products have many variations due to color and size.
Your help is appreciated!
The page I need help with: [log in to see the link]
-
Hi @reberiii
Thanks for that. If sync is off, then orders will show as unsynced, that is expected. And it sounds as if you have already removed legacy data. I don’t believe removing order data will have an effect: order data is now stored separately from product data, which is where you’re experiencing the problem.
Overall, it sounds as if your SQL server is taking strain. The admin processes are, from necessity, hard-core SQL queries, and although object caching can help, at the end of the day there has to be a SQL write/read.
Your database doesn’t even look that big. Setting up a staging site, and running Query Monitor on it might expose any rogue issues. That would be my next step. A staging site would also allow you to run in conflict mode, to see if dropping all plugins (except WooCommerce) and switching to a default theme like Twenty Twenty Five or Storefront, helps speed things up.
For a more detailed picture, a tool like New Relic or similar APM is an excellent, though somewhat more complex, choice.
Here’s another update: I’ve removed the earliest five years of orders from the site, taking the total number from just shy of 10K to over 5K. I have noticed that when I take the same three products in and out of stock, the amount of time necessary has decreased by about 20 seconds, and now takes 32-43 seconds depending upon the operation. Publishing or updating a product still takes the same amount of time.
Here’s the latest system status:
WordPress Environment<br><br>WordPress address (URL): https://spiritwear.fipcreative.com<br>Site address (URL): https://spiritwear.fipcreative.com<br>WC Version: 9.4.1<br>Legacy REST API Package Version: The Legacy REST API plugin is not installed on this site.<br>Action Scheduler Version: ? 3.8.2<br>Log Directory Writable: ?<br>WP Version: 6.7<br>WP Multisite: –<br>WP Memory Limit: 2 GB<br>WP Debug Mode: –<br>WP Cron: ?<br>Language: en_US<br>External object cache: ? Server Environment<br><br>Server Info: nginx/1.26.2<br>PHP Version: 8.2.25<br>PHP Post Max Size: 8 MB<br>PHP Time Limit: 90<br>PHP Max Input Vars: 3000<br>cURL Version: 7.68.0<br>OpenSSL/1.1.1f<br><br>SUHOSIN Installed: –<br>MySQL Version: 8.0.35<br>Max Upload Size: 2 MB<br>Default Timezone is UTC: ?<br>fsockopen/cURL: ?<br>SoapClient: ?<br>DOMDocument: ?<br>GZip: ?<br>Multibyte String: ?<br>Remote Post: ?<br>Remote Get: ? Database<br><br>WC Database Version: 9.4.1<br>WC Database Prefix: wp_<br>Total Database Size: 799.88MB<br>Database Data Size: 441.46MB<br>Database Index Size: 358.42MB<br>wp_woocommerce_sessions: Data: 0.30MB + Index: 0.02MB + Engine InnoDB<br>wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB<br>wp_woocommerce_order_items: Data: 2.52MB + Index: 1.52MB + Engine InnoDB<br>wp_woocommerce_order_itemmeta: Data: 34.09MB + Index: 46.31MB + Engine InnoDB<br>wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB<br>wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_actionscheduler_actions: Data: 7.03MB + Index: 8.94MB + Engine InnoDB<br>wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_actionscheduler_logs: Data: 6.06MB + Index: 3.50MB + Engine InnoDB<br>wp_commentmeta: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wp_comments: Data: 8.52MB + Index: 12.61MB + Engine InnoDB<br>wp_imagify_files: Data: 0.02MB + Index: 0.08MB + Engine InnoDB<br>wp_imagify_folders: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_iwp_backup_status: Data: 0.05MB + Index: 0.00MB + Engine InnoDB<br>wp_iwp_file_list: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_iwp_processed_iterator: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_mail_catcher_logs: Data: 33.02MB + Index: 0.00MB + Engine InnoDB<br>wp_options: Data: 3.52MB + Index: 0.52MB + Engine InnoDB<br>wp_postmeta: Data: 261.00MB + Index: 223.34MB + Engine InnoDB<br>wp_posts: Data: 38.58MB + Index: 19.06MB + Engine InnoDB<br>wp_term_relationships: Data: 7.52MB + Index: 4.52MB + Engine InnoDB<br>wp_term_taxonomy: Data: 0.23MB + Index: 0.16MB + Engine InnoDB<br>wp_termmeta: Data: 0.09MB + Index: 0.22MB + Engine InnoDB<br>wp_terms: Data: 0.09MB + Index: 0.09MB + Engine InnoDB<br>wp_tm_taskmeta: Data: 1.52MB + Index: 0.28MB + Engine InnoDB<br>wp_tm_tasks: Data: 1.52MB + Index: 0.11MB + Engine InnoDB<br>wp_usermeta: Data: 0.02MB + Index: 0.05MB + Engine InnoDB<br>wp_users: Data: 0.02MB + Index: 0.06MB + Engine InnoDB<br>wp_vi_wbe_history: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wc_admin_note_actions: Data: 0.06MB + Index: 0.02MB + Engine InnoDB<br>wp_wc_admin_notes: Data: 0.06MB + Index: 0.00MB + Engine InnoDB<br>wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wc_customer_lookup: Data: 0.17MB + Index: 0.13MB + Engine InnoDB<br>wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_wc_order_addresses: Data: 2.52MB + Index: 2.86MB + Engine InnoDB<br>wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_wc_order_operational_data: Data: 2.52MB + Index: 0.61MB + Engine InnoDB<br>wp_wc_order_product_lookup: Data: 1.52MB + Index: 0.56MB + Engine InnoDB<br>wp_wc_order_stats: Data: 0.28MB + Index: 0.22MB + Engine InnoDB<br>wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB<br>wp_wc_orders: Data: 4.52MB + Index: 2.11MB + Engine InnoDB<br>wp_wc_orders_meta: Data: 15.58MB + Index: 16.08MB + Engine InnoDB<br>wp_wc_product_attributes_lookup: Data: 0.34MB + Index: 0.23MB + Engine InnoDB<br>wp_wc_product_download_directories: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_wc_product_meta_lookup: Data: 7.52MB + Index: 13.56MB + Engine InnoDB<br>wp_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB<br>wp_wcpdf_invoice_number: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wml_entries: Data: 0.03MB + Index: 0.00MB + Engine InnoDB<br>wp_wpmailsmtp_debug_events: Data: 0.02MB + Index: 0.00MB + Engine InnoDB<br>wp_wpmailsmtp_tasks_meta: Data: 0.02MB + Index: 0.00MB + Engine InnoDB Post Type Counts<br><br>af_c_fields: 1<br>attachment: 14506<br>def_reg_fields: 10<br>nav_menu_item: 3<br>page: 8<br>post: 1<br>product: 2067<br>product_variation: 54021<br>shop_coupon: 30<br>shop_order_placehold: 5582<br>wccf_product_field: 14<br>wcpa_pt_forms: 11<br>wp_global_styles: 2 Security<br><br>Secure connection (HTTPS): ?<br>Hide errors from visitors: ? Active Plugins (20)<br><br>Disable Bloat for WordPress & WooCommerce: by Disable Bloat – 3.4.9<br>Gallery Captions for WooCommerce: by John Beales – 1.9.1<br>Export Order Items Pro for WooCommerce: by WP Zone – 2.1.33<br>Index WP MySQL For Speed: by Oliver Jones<br>Rick James – 1.5.2<br><br>Query Monitor: by John Blackbourn – 3.16.4<br>Redis Object Cache: by Till Krüss – 2.5.4<br>Server IP & Memory Usage Display: by Apasionados<br>Apasionados del Marketing – 2.1.0<br><br>Woocommerce Custom Product Addons (5.x.x): by Acowebs – 5.1.0<br>Advanced Order Export For WooCommerce: by AlgolPlus – 3.5.6<br>WooCommerce.com Update Manager: by Automattic – 1.0.3<br>WooCommerce Checkout Field Editor: by WooCommerce – 1.7.18<br>WooCommerce Stripe Gateway: by Stripe – 8.8.2<br>PDF Invoices & Packing Slips for WooCommerce: by WP Overnight – 3.9.0<br>WooCommerce Protected Categories: by Barn2 Plugins – 2.7.5<br>WooCommerce: by Automattic – 9.4.1 (update to version 9.4.2 is available)<br>ManageWP - Worker: by GoDaddy – 4.9.20<br>Mail logging - WP Mail Catcher: by James Ward – 2.1.10<br>WP Mail SMTP: by WP Mail SMTP – 4.2.0<br>WP Migrate Lite: by WP Engine – 2.6.11<br>WP-Optimize - Clean, Compress, Cache: by TeamUpdraft<br>DavidAnderson – 3.7.0 Inactive Plugins (5)<br><br>Bulky - Bulk Edit Products for WooCommerce: by VillaTheme – 1.2.7<br>Imagify: by Imagify Image Optimizer – Optimize Images & Convert WebP & Avif – 2.2.3.1<br>PW WooCommerce Bulk Edit: by Pimwick<br>LLC – 2.131<br><br>WooCommerce Custom Fields: by RightPress – 2.3.4<br>WP Sheet Editor - WooCommerce Products: by WP Sheet Editor – 1.8.15 Dropin Plugins ()<br><br>advanced-cache.php: advanced-cache.php<br>db.php: Query Monitor Database Class (Drop-in)<br>object-cache.php: Redis Object Cache Drop-In Must Use Plugins (4)<br><br>Endurance Page Cache: by Mike Hansen – 2.2.1<br>Index WP MySQL For Speed Upgrade Filter for mu-plugins.: by – 1.5.2<br>ManageWP - Worker Loader: by GoDaddy – 1.0.0<br>WP Migrate Lite Compatibility: by Delicious Brains – 1.3 Settings<br><br>Legacy API Enabled: –<br>Force SSL: ?<br>Currency: USD ($)<br>Currency Position: left<br>Thousand Separator: ,<br>Decimal Separator: .<br>Number of Decimals: 2<br>Taxonomies: Product Types: external (external)<br>grouped (grouped)<br>simple (simple)<br>variable (variable)<br><br>Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)<br>exclude-from-search (exclude-from-search)<br>featured (featured)<br>outofstock (outofstock)<br>rated-1 (rated-1)<br>rated-2 (rated-2)<br>rated-3 (rated-3)<br>rated-4 (rated-4)<br>rated-5 (rated-5)<br><br>Connected to WooCommerce.com: ?<br>Enforce Approved Product Download Directories: –<br>HPOS feature enabled: ?<br>Order datastore: Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore<br>HPOS data sync enabled: – Logging<br><br>Enabled: ?<br>Handler: Automattic\WooCommerce\Internal\Admin\Logging\LogHandlerFileV2<br>Retention period: 30 days<br>Level threshold: –<br>Log directory size: 4 MB WC Pages<br><br>Shop base: #4 - /shop/<br>Cart: #5 - /cart/ - Contains the [woocommerce_cart] shortcode<br>Checkout: #6 - /checkout/ - Contains the [woocommerce_checkout] shortcode<br>My account: #7 - /my-account/<br>Terms and conditions: #1411 - /terms-and-conditions/ Theme<br><br>Name: Storefront Child<br>Version: 1.0<br>Author URL: https://woocommerce.com<br>Child Theme: ?<br>Parent Theme Name: Storefront<br>Parent Theme Version: 4.6.0<br>Parent Theme Author URL: https://woocommerce.com/<br>WooCommerce Support: ? Templates<br><br>Overrides: – Admin<br><br>Enabled Features: activity-panels<br>analytics<br>product-block-editor<br>coupons<br>core-profiler<br>customize-store<br>customer-effort-score-tracks<br>import-products-task<br>experimental-fashion-sample-products<br>shipping-smart-defaults<br>shipping-setting-tour<br>homescreen<br>marketing<br>mobile-app-banner<br>navigation<br>onboarding<br>onboarding-tasks<br>pattern-toolkit-full-composability<br>product-custom-fields<br>remote-inbox-notifications<br>remote-free-extensions<br>payment-gateway-suggestions<br>printful<br>shipping-label-banner<br>subscriptions<br>store-alerts<br>transient-notices<br>woo-mobile-welcome<br>wc-pay-promotion<br>wc-pay-welcome-page<br>launch-your-store<br><br>Disabled Features: product-data-views<br>experimental-blocks<br>minified-js<br>product-pre-publish-modal<br>settings<br>async-product-editor-category-field<br>product-editor-template-system<br>blueprint<br>reactify-classic-payments-settings<br>use-wp-horizon<br><br>Daily Cron: ? Next scheduled: 2024-11-20 17:53:10 -05:00<br>Options: ?<br>Notes: 106<br>Onboarding: completed Action Scheduler<br><br>Complete: 26,980<br>Oldest: 2024-10-20 05:48:31 +0000<br>Newest: 2024-11-19 20:49:32 +0000<br><br>Failed: 56<br>Oldest: 2022-04-05 17:48:37 +0000<br>Newest: 2024-11-18 21:36:33 +0000<br><br>Pending: 4<br>Oldest: 2024-11-20 13:31:05 +0000<br>Newest: 2024-12-13 16:19:37 +0000 Status report information<br><br>Generated at: 2024-11-19 15:51:31 -05:00<br>
Hello reberiii,
Thank you for your reply.
I understand you’ve reduced the number of orders on your site, which has slightly improved the time for stock updates but not for publishing or updating products.
As suggested previously, setting up a staging site and using Query Monitor can help identify any underlying issues. On the staging site, running in conflict mode by disabling all plugins except WooCommerce and switching to a default theme like Twenty Twenty-Five or Storefront could provide further insights into improving the speed. For more details, you may refer to this guide.
Let me know if you have any questions or concerns.
I am here to help ??Best regards.
Hello @doublezed2 !
Thank you for following up! As I mentioned previously, I took the plugins on the live site and disabled all of them aside from WooCommerce without any performance gain. As for the theme test, I just did that one now. I am already running a Storefront Child Theme, but tested it with Twenty Twenty-Five, and the operation speed did not change.
I am in the process of creating a new install of WooCommerce/Wordpress on a new account on the server, but the import of 2K+ products takes a very long time, and apparently didn’t complete entirely the first go ’round, so we’re running it again today. I’ll report back what I find there.
Thanks!
- You must be logged in to reply to this topic.