diff --git a/core/includes/common.inc b/core/includes/common.inc
index 4c86953..7bddfcf 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -3268,9 +3268,9 @@ function drupal_build_css_cache($css) {
     // It's possible that the rewrite rules in .htaccess aren't working on this
     // server, but there's no harm (other than the time spent generating the
     // file) in generating the file anyway. Sites on servers where rewrite rules
-    // aren't working can set css_gzip_compression to FALSE in order to skip
+    // aren't working can set gzip_compression.css to FALSE in order to skip
     // generating a file that won't be used.
-    if (variable_get('css_gzip_compression', TRUE) && extension_loaded('zlib')) {
+    if (config('system.performance')->get('gzip_compression.css') && extension_loaded('zlib')) {
       if (!file_exists($uri . '.gz') && !file_unmanaged_save_data(gzencode($data, 9, FORCE_GZIP), $uri . '.gz', FILE_EXISTS_REPLACE)) {
         return FALSE;
       }
@@ -4787,9 +4787,9 @@ function drupal_build_js_cache($files) {
     // It's possible that the rewrite rules in .htaccess aren't working on this
     // server, but there's no harm (other than the time spent generating the
     // file) in generating the file anyway. Sites on servers where rewrite rules
-    // aren't working can set js_gzip_compression to FALSE in order to skip
+    // aren't working can set gzip_compression.js to FALSE in order to skip
     // generating a file that won't be used.
-    if (variable_get('js_gzip_compression', TRUE) && extension_loaded('zlib')) {
+    if (config('system.performance')->get('gzip_compression.js') && extension_loaded('zlib')) {
       if (!file_exists($uri . '.gz') && !file_unmanaged_save_data(gzencode($contents, 9, FORCE_GZIP), $uri . '.gz', FILE_EXISTS_REPLACE)) {
         return FALSE;
       }
diff --git a/core/modules/system/config/system.performance.yml b/core/modules/system/config/system.performance.yml
index 7483921..8f6958c 100644
--- a/core/modules/system/config/system.performance.yml
+++ b/core/modules/system/config/system.performance.yml
@@ -8,3 +8,6 @@ preprocess:
   stale_file_threshold: '2592000'
 response:
   gzip: '0'
+gzip_compression:
+  css: '1'
+  js: '1'
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 25c7adb..d9f9005 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -2214,6 +2214,19 @@ function system_update_8033() {
 }
 
 /**
+ * Coverts css_gzip_compression and js_gzip_compression variables to config.
+ *
+ * @ingroup config_upgrade
+ */
+function system_update_8034() {
+  $variable_map = array(
+    'css_gzip_compression' => 'gzip_compression.css',
+    'js_gzip_compression' => 'gzip_compression.js'
+  );
+  update_variables_to_config('system.performance', $variable_map);
+}
+
+/**
  * @} End of "defgroup updates-7.x-to-8.x".
  * The next series of updates should start at 9000.
  */
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 44993ed..049db84 100755
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -458,8 +458,8 @@
  * configured to cache and compress these files itself you may want to uncomment
  * one or both of the below lines, which will prevent gzip files being stored.
  */
-# $conf['css_gzip_compression'] = FALSE;
-# $conf['js_gzip_compression'] = FALSE;
+# $conf['system.performance']['gzip_compression.css'] = FALSE;
+# $conf['system.performance']['gzip_compression.js'] = FALSE;
 
 /**
  * String overrides:
