Resolving Common JavaScript Conflicts with Speed Optimizer's Combine Files Feature
Content
One of the most powerful features of the Speed Optimizer plugin is its ability to combine multiple JavaScript files into a single, optimized file. This process reduces HTTP requests and can significantly improve your site's loading time. However, this automated process can sometimes conflict with specific themes or plugins, leading to JavaScript errors and broken functionality.
Why Do These JavaScript Conflicts Happen?
The Combine JavaScript Files feature works by automatically merging scripts. This process relies on JavaScript being written according to strict coding standards. When a script from a theme or another plugin deviates from these standards—for instance, by using improper syntax, import statements outside of modules, or having missing dependencies like jQuery—the combined file can break. Common symptoms include:
- Uncaught ReferenceError: jQuery is not defined
- Uncaught TypeError: Cannot read properties of undefined
- Uncaught SyntaxError: Cannot use import statement outside a module
- Contact forms, sliders, or menus failing to work
- Third-party scripts (e.g., Facebook SDK, analytics) not loading
How to Troubleshoot and Fix Combine JS Conflicts
If you encounter a JavaScript error after enabling this optimization, follow these steps to identify and resolve the issue.
Step 1: Identify the Problematic Script
Open your browser's developer tools (F12) and check the Console tab for any red error messages. The error will often point to the siteground-optimizer-combined-js-....js file, indicating the issue originated during the combination process. The error message itself is your best clue for what went wrong.
Step 2: Use the Built-in Exclusion Tool
The most straightforward fix is to exclude the conflicting script from combination.
- Navigate to Speed Optimizer > Frontend > JavaScript.
- Find the Combine JavaScript Files option and click on the Exclude from JavaScript Combination dropdown menu below it.
- Scroll through the list of enqueued scripts and select the one(s) that may be causing the issue. Common culprits are often jQuery, theme-specific scripts, or plugins like Gravity Forms, Smart Slider, or Contact Form 7.
- Save your changes and clear all caches before testing your site again.
Step 3: Exclude Scripts Using Custom Filters (Advanced)
If the script you need to exclude is not in the dropdown list (common for inline or externally hosted scripts like Facebook SDK or analytics), you can use custom filters. Add the following code to your child theme's functions.php file or a code snippets plugin.
To exclude an external script by its URL:
add_filter( 'sgo_javascript_combine_excluded_external_paths', 'js_combine_exclude_external_script' );
function js_combine_exclude_external_script( $excluded_paths ) {
// Add the external script URL to the exclusion array
$excluded_paths[] = 'analytics.ahrefs.com';
$excluded_paths[] = 'cbcmpgs.gateway.mastercard.com';
return $excluded_paths;
}
To exclude a specific file by its handle:
add_filter( 'sgo_javascript_combine_exclude', 'js_combine_exclude_script' );
function js_combine_exclude_script( $exclude_list ) {
// Add the script handle to the exclusion array
$exclude_list[] = 'jquery-core';
$exclude_list[] = 'checkoutwaiting'; // Example from thread #3
return $exclude_list;
}
When Exclusion Isn't Enough
In some cases, the error may be due to a bug in the combining process itself or a fundamental incompatibility. If the above steps do not resolve the issue, you may need to temporarily disable the Combine JavaScript Files option and report the specific error to the Speed Optimizer team so they can investigate it for a future update.
By systematically identifying and excluding problematic scripts, you can often enjoy the performance benefits of JavaScript combination without sacrificing your site's functionality.
Related Support Threads Support
-
Combine JavaScript Files breaks Divi Headerhttps://wordpress.org/support/topic/combine-javascript-files-breaks-divi-header/
-
Combining javascript files breaks the navigation blockhttps://wordpress.org/support/topic/combining-javascript-files-breaks-the-navigation-block/
-
JavaScript Combination Breaks WooCommerce Square Checkouthttps://wordpress.org/support/topic/javascript-combination-breaks-woocommerce-square-checkout/
-
JS optimization causing scripts to 404https://wordpress.org/support/topic/bug-thats-breaking-scripts-defer-render-blocking-causes-scripts-to-404/
-
Submenus broken after Combine JS fileshttps://wordpress.org/support/topic/submenus-broken-after-combine-js-files/
-
Divi can’t have Combine JavaScript Files enabledhttps://wordpress.org/support/topic/divi-cant-have-combine-javascript-files-enabled/
-
Plugin Corrupts Sitehttps://wordpress.org/support/topic/plugin-corrupts-site/
-
Contact Form 7 Not Working Intermittentlyhttps://wordpress.org/support/topic/contact-form-7-not-working-intermittently/
-
Minimize JavaScript fileshttps://wordpress.org/support/topic/minimize-javascript-files/
-
Java Script Error on my sitehttps://wordpress.org/support/topic/java-script-error-on-my-site/
-
Got “jquery is not defined” when enable this pluginhttps://wordpress.org/support/topic/got-jquery-is-not-defined-when-enable-this-plugin/
-
Combine JS Not Working | AMP JS Files Ignoredhttps://wordpress.org/support/topic/combine-js-not-working-amp-js-files-ignored/
-
Combine JS makes website disappearhttps://wordpress.org/support/topic/combine-js-makes-website-disappear/
-
Issue with Iubenda scripthttps://wordpress.org/support/topic/issue-with-iubenda-script/
-
JS minify feature is not working properlyhttps://wordpress.org/support/topic/js-minify-feature-is-not-working-properly/
-
Amazon JS ads not showinghttps://wordpress.org/support/topic/amazon-js-ads-not-showing/
-
Combined JS stops mobile images renderinghttps://wordpress.org/support/topic/combined-js-stops-mobile-images-rendering/
-
Unused javascript, css and render blockinghttps://wordpress.org/support/topic/unused-javascript-css-and-render-blocking/
-
Uncaught No script found with scriptLocation in woo-cormmerce pluginhttps://wordpress.org/support/topic/uncaught-no-script-found-with-scriptlocation-in-woo-cormmerce-plugin/
-
Uncaught SyntaxError: missing }https://wordpress.org/support/topic/uncaught-syntaxerror-missing/
-
Combine JS files not working after last updatehttps://wordpress.org/support/topic/combine-js-files-not-working-after-last-update/
-
Created a new page with JS. Combine JS is enabled, either site or new page workshttps://wordpress.org/support/topic/created-a-new-page-with-js-combine-js-is-enabled-either-site-or-new-page-works/
-
Gravity Forms AJAX form issuehttps://wordpress.org/support/topic/gravity-forms-ajax-form-issue/
-
WordPress 5.7 possible conflicthttps://wordpress.org/support/topic/wordpress-5-7-possible-conflict/
-
Bug in Javascript with your ‘details elements’ helperhttps://wordpress.org/support/topic/bug-in-javascript-with-your-details-elements-helper/
-
Siteground Optimizer JS Errorhttps://wordpress.org/support/topic/siteground-optimizer-js-error/
-
Unable To View Items With Longer Directory Pathshttps://wordpress.org/support/topic/unable-to-view-items-with-longer-directory-paths/
-
Combine JavaScript Files breaks my Accordion Widgethttps://wordpress.org/support/topic/combine-javascript-files-breaks-my-accordion-widget/
-
Siteground Optimizer blocks Facebook embedhttps://wordpress.org/support/topic/siteground-optimizer-blocks-facebook-embed/
-
Combining Javascript files breaks script loading order in Jetpackhttps://wordpress.org/support/topic/combining-javascript-files-breaks-script-loading-order-in-jetpack/
-
Nonce error on contact form submissionhttps://wordpress.org/support/topic/nonce-error-on-contact-form-submission/
-
Combine Javscript causes CloudFlare Mobile Form validation to failhttps://wordpress.org/support/topic/combine-javscript-causes-cloudflare-mobile-form-validation-to-fail/
-
Combine JavaScript Fileshttps://wordpress.org/support/topic/combine-javascript-files-2/
-
JS exclusion questionhttps://wordpress.org/support/topic/js-exclusion-question/
-
Modernize Features, compatibility with WordPress 6.5+https://wordpress.org/support/topic/modernize-features-compatibility-with-wordpress-6-5/
-
Incompatibility with Seriously Simple Podcasting pluginhttps://wordpress.org/support/topic/incompatibility-with-seriously-simple-podcasting-plugin/
-
JS Combination incompatible with Ahrefs Analyticshttps://wordpress.org/support/topic/js-combination-incompatible-with-ahrefs-analytics/
-
Contact form 7 crashes after updatehttps://wordpress.org/support/topic/contact-form-7-crashes-after-update/
-
Possible GCLID script conflicthttps://wordpress.org/support/topic/possible-gclid-script-conflict/
-
Problema al habilitar Combinar archivos JavaScripthttps://wordpress.org/support/topic/problema-al-habilitar-combinar-archivos-javascript/
-
error_log: Javascript TypeError: Cannot read properties of undefinedhttps://wordpress.org/support/topic/error_log-javascript-typeerror-cannot-read-properties-of-undefined/
-
Broken webhttps://wordpress.org/support/topic/broken-web-3/
-
Single page photo missing when “Combine JavaScript Files” is enabledhttps://wordpress.org/support/topic/single-page-photo-missing-when-combine-javascript-files-is-enabled/
-
SGO Heartbeat Triggering Javascript Errorhttps://wordpress.org/support/topic/sgo-heartbeat-triggering-query-monitor-error/
-
dFlip Caching Issueshttps://wordpress.org/support/topic/dflip-caching-issues/
-
404 on js and code not loadinghttps://wordpress.org/support/topic/404-on-js-and-code-not-loading/
-
Uncaught No script found with scriptLocationhttps://wordpress.org/support/topic/uncaught-no-script-found-with-scriptlocation/
-
combined js errorhttps://wordpress.org/support/topic/combined-js-error/
-
Javascript error caused by “Combine JavaScript Files”https://wordpress.org/support/topic/javascript-error-caused-by-combine-javascript-files/
-
Combine Java script breaks mobile menuhttps://wordpress.org/support/topic/combine-java-script-breaks-mobile-menu/
-
Lottie animations not rendered after combining javascript using speed optimizerhttps://wordpress.org/support/topic/lottie-animations-not-rendered-after-combining-javascript-using-speed-optimizer/
-
Contact Form 7 + Remove Query Strings from Static Resourceshttps://wordpress.org/support/topic/contact-form-7-remove-query-strings-from-static-resources/
-
javascript errorhttps://wordpress.org/support/topic/javascript-error-219/
-
Script Google Hosted Libraries and YouTubehttps://wordpress.org/support/topic/script-google-hosted-libraries-and-youtube/
-
Ajax bad request 400https://wordpress.org/support/topic/ajax-bad-request-400-2/
-
ahrefs analyticshttps://wordpress.org/support/topic/ahrefs-analytics/
-
Images not loading on mobile – combine jshttps://wordpress.org/support/topic/images-not-loading-on-mobile-combine-js/
-
Bug in ios & safarihttps://wordpress.org/support/topic/bug-in-ios-safari/
-
Exclude from JavaScript Combination feature possible Bughttps://wordpress.org/support/topic/exclude-from-javascript-combination-feature-bug/
-
Tip: Fixed Missing Images and Drop-down Menushttps://wordpress.org/support/topic/tip-fixed-missing-images-and-drop-down-menus/
-
Combine Javascript files removing javascript when user is not logged inhttps://wordpress.org/support/topic/combine-javascript-files-removing-javascript-when-user-is-not-logged-in/