This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Tagged: Exception
This topic contains 26 replies, has 0 voices.
Last updated by David Gaitan 1 month, 2 weeks ago.
Assisted by: David Gaitan.
| Author | Posts |
|---|---|
| February 16, 2026 at 1:23 pm #17825830 | |
|
rogelioP-4 |
Here is the response I received from my host provider: I have generated a log file for the specific request (full SQL, not summarized), ideally for queries with Query_time > 5s, about 20 most recent records and can be found in public_html/slow_queries_over5s_recent20.log or by accessing the URL: hidden link These are the IP address recorded accessing the site in relation to the log with Query_time: 72.953276 69 172.71.167.174 hidden link |
| February 17, 2026 at 5:38 pm #17830138 | |
|
Lauren |
Thanks — this is progress. 1. Cloudflare note: the IPs listed (172.x / 162.x / 198.41.x) are Cloudflare edge IPs, so they don’t identify the real visitor. To pinpoint the source, we’ll need the requested URLs and/or the real client IP via Cloudflare headers (e.g. CF-Connecting-IP / X-Forwarded-For) or Cloudflare analytics/logs for that same time window. 2. Raw slow queries: could you please paste here the full content of 1–3 slow-query blocks from slow_queries_over5s_recent20.log, especially the one with Query_time: 72.953276? Each block should include the # Query_time… header lines and the full SELECT … statement. With that, we can identify which post type/meta keys/taxonomies are involved and whether it originates from a specific plugin/theme filter/search page. 3. Immediate mitigation: please ensure page caching is enabled for non-logged-in visitors, and if you’re using Cloudflare, add a rate limit / cache rule for common heavy endpoints (/wp-admin/admin-ajax.php, /wp-json/) and any filter/listing pages. This reduces repeated uncached DB-heavy requests and usually prevents another spike even before the root cause is confirmed. |
| February 20, 2026 at 4:02 pm #17838999 | |
|
rogelioP-4 |
Hello, here is the response I received from my host provider: The available logged queries that required ~70s to be executed were exported to the 70squeries.txt file present in the home directory of the plalla.com cPanel. Here is the exact location: /home/plallaco/ An additional file named slowqueries.log was created, and all logged slower queries were exported to it. This file is present in the same location. You can obtain both files and share them with your web developer so they can review the matter. |
| February 20, 2026 at 9:13 pm #17839463 | |
|
Lauren |
We don't have cpanel access, so please upload the logs/files to something like DropBox or Google Drive and share the links here. You can use my email lauren.j@onthegosystems.com to share the documents with. Thanks! |
| February 26, 2026 at 1:49 pm #17856764 | |
|
rogelioP-4 |
This is the response I received from the host provider: I have generated a log file for the specific request (full SQL, not summarized), ideally for queries with Query_time > 5s, about 20 most recent records and can be found in public_html/slow_queries_over5s_recent20.log or by accessing the URL: hidden link These are the IP address recorded accessing the site in relation to the log with Query_time: 72.953276 69 172.71.167.174 hidden link I also had another MySQL query spikes few hours ago: These are the MySQL queries which were recorded by the server at that moment: | 75835 | plallaco_live_with_wpml | localhost | plallaco_live_with_wpml | Query | 3 | executing | SELECT wpci_posts.* and a lot of PHP processes: 2829079 plallaco 20 0 818324 180932 130612 R 5.9 1.1 0:00.44 lsphp:/home/plallaco/public_html/index.php Here are the top IPs with most access during the last hour: 55 162.159.104.105 As of now, the server is stable again and we will continue to monitor it closely. |
| February 26, 2026 at 2:14 pm #17856919 | |
|
rogelioP-4 |
The available logged queries that required ~70s to be executed were uploaded to this drive: hidden link |
| February 27, 2026 at 12:28 am #17858427 | |
|
Lauren |
Thanks — the raw slow query log identifies the source. The slowest queries are property listing/filter queries on wpci_4_* tables (post_type = 'property') with taxonomy property_status=pre-construction and multiple postmeta joins using fave_* meta keys (e.g. fave_agents, fave_property_agency). These queries are examining ~5M rows and taking ~70 seconds, which will spike MySQL load under traffic. WPML’s language joins can appear in regular content queries, but in this case the bottleneck is the theme/plugin’s property filtering query structure (multiple meta joins + COUNT DISTINCT), especially when hit repeatedly. While we continue investigating, please enable/confirm caching for logged-out visitors and add Cloudflare rate limiting for likely hotspots (/wp-admin/admin-ajax.php, /wp-json/, and the property filter/search URLs). This typically prevents repeat spikes immediately. Next, please share the top requested URL(s) during the spike (via Cloudflare analytics or access logs including CF-Connecting-IP) so we can identify exactly which page/endpoint is triggering these property queries and advise the best long-term fix (theme/plugin configuration or query optimization). |
| March 3, 2026 at 1:07 pm #17868543 | |
|
rogelioP-4 |
Hello, here is the response I received from my host provider: The last load spike is related to (207.180.211.2) and the fact that it made a lot of hits towards URLs like this: 207.180.211.2 [28/Feb/2026:21:36:21 +0000] 104.200.19.32 443 "GET /%c0 HTTP/2.0" 404 53193 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" Since this does not look legitimate, my colleague blocked that IP address, but the server load spike was caused by it, so I am unable to provide other top URL hits as your developers want, because there are simply none. You can request this next time when the load spike is increased, and if it's strictly caused by your website. |
| March 4, 2026 at 3:46 pm #17872520 | |
|
David Gaitan Supporter Languages: English (English ) Spanish (Español ) Timezone: America/Managua (GMT-06:00) |
Hello Rogelio! I am David, from the WPML dev team. I am going to take over this ticket, so I'll be here to help you solve this situation. Please give me a moment just to hook up on the issue and try to have my own findings. Will back with soon! |
| March 4, 2026 at 10:06 pm #17873254 | |
|
David Gaitan Supporter Languages: English (English ) Spanish (Español ) Timezone: America/Managua (GMT-06:00) |
Hi Rogelio! Thank you for your patience! I have read all the conversation and now I have a better sense of the situation. Let me start with the mysql spikes situation: 1. A large and heavy query generated by a filtering feature. Sometimes, filters bring situations like this in the way how the database increase or the site start receiving visits. So, based on this knowledge, let's start with some "short terms" improvements: 1. Page caching: Enable full page cache for logged-out visitors on listing and archive pages so repeated hits do not hit MySQL. (think that Lauren already recommended this before) Now, I have reviewed the theme code in order to see what else we can do and found some "long terms" improvements to follow (these probably will require a developer): 1. Target AJAX first: Rate-limit or cache responses for: 2. Sort by title: If listing or search default sort is "Sort by Title" (a_title / d_title), consider changing the default to "Newest first" (d_date) in theme options (listing page meta fave_properties_sort, or options search_default_order / taxonomy_default_order). Title ordering on large posts + postmeta joins is expensive. 3. Indexes: Since we have hard filtering, always indexing is important to improve the performance on SQL queries. So, ensure wp_postmeta has a composite index on (meta_key, meta_value(X)) for the main filter keys (fave_property_price, fave_property_bedrooms, fave_property_bathrooms, fave_agents, fave_property_agency, fave_featured). Your site uses several filters: price, bedrooms, bathrooms, agents, agencies, etc. We are not asking for a different index for each of those. We’re asking for one index that works for all of them. That one index is built so the server can quickly find rows by: So the same index helps when someone filters by price, by bedrooms, by agents, or by any combination. One change, all those lookups get faster. IMPORTANT: For this improvement, I do recommend do this first on a test or staging environment. Would be great to have a developer to attack this one. Please let me know if you need more information about it. 4. Reduce meta_query clauses: Where possible, avoid stacking many fave_* meta_query conditions in a single query. The theme's Houzez_Data_Source::property_filter_callback and Houzez_Property_Search::properties_search add all active filters; if the site uses many filters at once, consider (with theme/developer) a two-step approach (e.g. taxonomy + one main meta filter first, then refine) or a denormalized table for filterable fields. Conclusions |
| March 7, 2026 at 6:06 pm #17879620 | |
|
rogelioP-4 |
Hi David, Thank you for the detailed breakdown. Since I don't have a technical background, I’m going to look for a developer to help me implement these recommendations Could you tell me what specific kind of developer I should be looking for? Do you have any recommendations on where I can find someone reliable—would a platform like Fiverr be a good place to look? One last thing: I urgently need to translate the website into two more languages this month using WPML. Is it possible to do that before these issues are resolved without making the performance worse, or is it absolutely necessary to fix the MySQL spikes first? |
| March 9, 2026 at 3:53 pm #17882623 | |
|
David Gaitan Supporter Languages: English (English ) Spanish (Español ) Timezone: America/Managua (GMT-06:00) |
Hi Rogelio, I have dedicated some extra time investigating here the situation because we have similar situation like this in our track list. So, from our end we are working on finding an improvement for these filtering cases. However, your particular issue is more focused on the theme you are using right now. Here are some thoughts about it: - The Houzez theme is causing the heavy database load; it does not follow good practices on the main listing/search paths (caching exists but isn’t used there, and there’s no protection against repeated heavy requests). So, this information is helpful to provide to a developer in order to improve the theme. Important to clarify that main issue is on the theme and the way how it runs queries on the filtering features. Regarding the other question on adding the new languages. Adding more languages will be equal to have the same issue. The problem is not how many languages do you have, the problem is the way how the queries are running on the theme when customer navigates/uses the filtering. If you need more information about the issue, I'll happy to help. Best, |