This thread is resolved. Here is a description of the problem and solution.
Problem:
You are experiencing a performance issue on your WordPress site using WPML and ACF (Flexible Content + Repeaters), where the option
icl_sitepress_settings
has grown to an unusually large size, primarily due to massive duplication in translation-management custom fields and terms.
Solution:
1) Update the ACF and ACFML plugins to their latest versions to ensure optimal performance and compatibility.
2) Review all ACF field groups to ensure they are properly configured. Remove unused fields or groups, ensure field names are unique within each group, and adjust translation preferences to 'Same fields across languages' where applicable.
3) Consider using a GitHub plugin to clean up the
icl_sitepress_settings
option in the database. This can be tested on a staging copy of your site. However, please be aware that we are not the authors of this plugin and cannot guarantee its behavior.
If these steps do not resolve your issue or if the solution seems outdated or irrelevant to your specific case, we highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If necessary, please do not hesitate to open a new support ticket at WPML support forum for further assistance.
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, Performance
This topic contains 10 replies, has 0 voices.
Last updated by Andrey 2 weeks, 6 days ago.
Assisted by: Andrey.
| Author | Posts |
|---|---|
| March 27, 2026 at 5:10 pm #17933059 | |
|
Philip |
Hello WPML team, We are currently investigating a performance issue on a production WordPress site using WPML + ACF (Flexible Content + Repeaters), and we found that the option icl_sitepress_settings has grown to an unusually large size. Current state The majority of the size comes from: Our findings: In the current database dump: However, after normalizing repeater indexes (e.g. replacing numeric indexes with #), these collapse to approximately: Example: Practical impact: Questions: Additional context We are also seeing heavy queries related to WPML (e.g. COUNT DISTINCT on post IDs), and we suspect this large structure contributes to overall performance degradation. We would really appreciate your guidance on: Thank you in advance! |
| March 31, 2026 at 9:54 pm #17941363 | |
|
Andrey WPML Supporter since 06/2013
Languages: English (English ) Russian (Русский ) Timezone: Europe/Kyiv (GMT+03:00) |
Thank you for contacting WPML support. What you’re observing is currently expected behavior. The icl_sitepress_settings option stores configuration data, including preferences for custom fields, and its size can grow over time as new custom fields are added to the site. That said, we understand your concern regarding performance and scalability. A development ticket has already been created to explore improvements in this area. While it is not yet scheduled, I’ve added your case as an additional vote to help increase its priority. At the moment, there is no supported or safe method to reduce the size of this option manually, nor is there any tool that can do so. However, you can review available maintenance and optimization actions under WPML → Support → Troubleshooting, which may help in related scenarios. Please rest assured that performance optimization is an ongoing focus for our development team, and improvements are continuously being evaluated and implemented where possible. |
| April 1, 2026 at 7:46 am #17941937 | |
|
Philip |
Hi Andrey , Thank you for your reply and for clarifying that this is currently expected behavior. However, after further investigation on our side, we believe there might be an important distinction that we would really appreciate your help clarifying. From what we see in the data, this does not look like stable configuration (as typically expected for something like icl_sitepress_settings). Instead, it appears that the entries are being generated dynamically from actual content structure... Specifically, we are seeing keys like: glob_content_0_glob_content-col_0_..._glob_teaserbox-title These strongly suggest that: - ACF stores nested meta keys with concrete repeater/flexible-content row indexes This would mean that: 👉 the option is growing as a result of content updates, not only configuration changes This raises a few important questions we would really appreciate your input on: 1) Are entries like glob_content_0_glob_content-col_0_... expected to be stored in WPML settings, or do they indicate that WPML is discovering fields from actual post content (including repeater indexes)? If this requires deeper investigation, do you offer any advanced or paid support options where we could work together to analyze this in detail? Our main goal here is to reduce the performance impact of WPML on our site, and currently this growing structure seems to be one of the major contributors. At the moment, we are missing clarity on whether this is expected long-term behavior and what safe mitigation strategies exist.. Any additional technical insight from your side would be extremely valuable for us. Thank you again for your support and for pushing improvements in this area 🙏 |
| April 1, 2026 at 9:55 am #17942471 | |
|
Andrey WPML Supporter since 06/2013
Languages: English (English ) Russian (Русский ) Timezone: Europe/Kyiv (GMT+03:00) |
Thank you for your feedback. Could I kindly ask you to prepare a reproducible case on your staging site where this (unexpected) behavior can be observed? Ideally, it would demonstrate that the entries are being generated dynamically from the actual content structure rather than from direct changes to custom fields (or other manipulations with the custom fields). In the meantime, I’ll try to address your points based on what I know so far: 1. This is currently expected behavior, as the data is designed to be stored in WPML settings. 2. Without testing this specifically, it’s likely that both scenarios are valid — especially if new repeating fields are added to posts, and the content is saved. 3–4. These would require a review of a concrete example to provide an accurate assessment. 5. At the moment, there is no supported or safe method to reduce or clean this data. While our development team is exploring improvements in this area, this may be addressed in future releases. Someone mentioned in the support ticket the following: 6. Ideally, the data should remain stored as designed. That said, if you have normalized indexes, tested the setup, and confirmed that everything works correctly, it may be acceptable to keep it as is. 7. There is no related control available in the WPML UI. If needed, you may trace the behavior through step-by-step debugging to identify how and where this data is being stored in the code. At this time, WPML does not offer advanced or paid support. If a custom solution or deeper debugging is required, it would need to be implemented on your side. As mentioned earlier, this behavior is expected, as WPML stores configuration data (including custom field preferences) in this way. Our development team is aware of similar cases and has already created internal tickets to explore possible improvements. |
| April 3, 2026 at 8:01 am #17947440 | |
|
Philip |
Hi Andrey, As a follow-up to our previous investigation, we have prepared a dedicated staging environment where the issue can be reproduced and analyzed in detail: 👉 Staging environment: stg.starling.work (Access details are the same as previously provided in another thread here https://wpml.org/forums/topic/acf-flexible-content-fatal-error-when-used-with-acfml-wpml-translations/) 🔍 Reproduction steps: We can consistently reproduce the issue with the following steps: Create a new page hidden link 📈 Observed behavior: SELECT option_name, LENGTH(option_value) AS bytes_size Reference: ⚠️ Critical issue The most concerning part: When we delete the page or remove the repeater blocks, 🚨 Impact This leads to: - Extremely large icl_sitepress_settings option (~20MB in our case) We would really appreciate if you could: - Reproduce this directly on the staging environment Thank you in advance for your support! |
| April 7, 2026 at 7:25 pm #17955128 | |
|
Andrey WPML Supporter since 06/2013
Languages: English (English ) Russian (Русский ) Timezone: Europe/Kyiv (GMT+03:00) |
Thank you for providing the details. I’ll take a closer look and update you shortly. In the meantime, could you please let me know how I can access the database on your staging site? I’ve set my next reply as private. |
| April 9, 2026 at 6:56 pm #17960435 | |
|
Andrey WPML Supporter since 06/2013
Languages: English (English ) Russian (Русский ) Timezone: Europe/Kyiv (GMT+03:00) |
Thank you for providing the additional details. I have escalated your case to our second-tier support team and received their feedback. Their recommendations are as follows: 1) Update the plugins (ACF and ACFML) to their latest versions. 2) Review all field groups to ensure they are properly configured: - Remove any fields or groups that are no longer in use - Ensure field names are unique within each group - Most of your groups are in Expert mode; some fields might have the wrong translation preference. Use the “Same fields across languages” option as a baseline to help verify correct translation preferences - We also noticed some “group” type that do not contain anything inside 3) Consider cleaning up the option in the database by using the GitHub plugin I shared earlier; it could be a useful tool for testing this on a staging copy of the site. As mentioned earlier, our development team is aware of similar cases and has already created internal tickets to further investigate and improve this area. |
| April 13, 2026 at 7:00 am #17964765 | |
|
Philip |
Hi Andrey, Thank you for the detailed feedback and for escalating the case - really appreciate it. I have a few follow-up questions, especially regarding point 2, to make sure we fully understand your recommendations and apply them correctly: 1. "Ensure field names are unique within each group" 2. Expert mode vs "Same fields across languages". You mentioned that most of our groups are in Expert mode and that some fields might have incorrect translation preferences. 3. Empty "group" fields. You mentioned that some "group" type fields do not contain anything inside. Also, regarding database cleanup: Thanks again for your support - looking forward to your clarification. |
| April 14, 2026 at 12:34 pm #17968605 | |
|
Andrey WPML Supporter since 06/2013
Languages: English (English ) Russian (Русский ) Timezone: Europe/Kyiv (GMT+03:00) |
Thank you for your feedback. 1. For example, the field group "Footer" is set for that Option Page. You have two fields "Spalte 1/2 links" and "Spalte 1/2 rechts" and they both have the exact same sub-fields with the same field names. You can't have fields with the same name in the same field group. 2. This aligns with the recommendation shared by Dražen here: 3. I’m currently unable to locate this on your staging site, so you can disregard this point. |
| April 16, 2026 at 7:11 am #17972922 | |
|
Philip |
Hi Andrey, Thank you for your message. As for: >> 1. For example, the field group "Footer" is set for that Option Page. You have two fields "Spalte 1/2 links" and "Spalte 1/2 rechts" and they both have the exact same sub-fields with the same field names. You can't have fields with the same name in the same field group. We understand that field names should be unique, but since ACF allows identical sub-field names within different parent fields, could you clarify whether this is a strict limitation of WPML/ACFML? In our case, these fields are already widely used across the project, and renaming them would lead to data loss or require a complex data migration. Is there any safe workaround or recommended approach that would allow us to keep the current structure without renaming fields? Thanks a lot in advance for your guidance. |
| April 16, 2026 at 2:18 pm #17974781 | |
|
Andrey WPML Supporter since 06/2013
Languages: English (English ) Russian (Русский ) Timezone: Europe/Kyiv (GMT+03:00) |
Thank you for your feedback. While ACF itself technically allows duplicate field names, using identical field names can lead to issues when combined with WPML and ACF Multilingual. In such cases, duplicate field names can cause fields not to appear for translation or to be handled as expected. https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/
For this reason, we recommend ensuring that all field names within a field group are unique to prevent potential conflicts with translation. |