diff --git a/.htaccess b/.htaccess
index 7e38f73369..eaeeb9de35 100644
--- a/.htaccess
+++ b/.htaccess
@@ -145,32 +145,6 @@ AddEncoding gzip svgz
   # Specifically, disallow autoload.php from being served directly.
   RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
 
-  # Rules to correctly serve gzip compressed CSS and JS files.
-  # Requires both mod_rewrite and mod_headers to be enabled.
-  <IfModule mod_headers.c>
-    # Serve gzip compressed CSS files if they exist and the client accepts gzip.
-    RewriteCond %{HTTP:Accept-encoding} gzip
-    RewriteCond %{REQUEST_FILENAME}\.gz -s
-    RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
-
-    # Serve gzip compressed JS files if they exist and the client accepts gzip.
-    RewriteCond %{HTTP:Accept-encoding} gzip
-    RewriteCond %{REQUEST_FILENAME}\.gz -s
-    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
-
-    # Serve correct content types, and prevent double compression.
-    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=no-brotli:1]
-    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=no-brotli:1]
-
-    <FilesMatch "(\.js\.gz|\.css\.gz)$">
-      # Serve correct encoding type.
-      Header set Content-Encoding gzip
-      # Force proxies to cache gzipped & non-gzipped css/js files separately.
-      Header append Vary Accept-Encoding
-    </FilesMatch>
-  </IfModule>
-</IfModule>
-
 # Various header fixes.
 <IfModule mod_headers.c>
   # Disable content sniffing, since it's an attack vector.
diff --git a/core/lib/Drupal/Core/Asset/AssetDumper.php b/core/lib/Drupal/Core/Asset/AssetDumper.php
index 6f90f8f556..2831f9f80e 100644
--- a/core/lib/Drupal/Core/Asset/AssetDumper.php
+++ b/core/lib/Drupal/Core/Asset/AssetDumper.php
@@ -52,24 +52,6 @@ public function dump($data, $file_extension) {
     catch (FileException $e) {
       return FALSE;
     }
-    // If CSS/JS gzip compression is enabled and the zlib extension is available
-    // then create a gzipped version of this file. This file is served
-    // conditionally to browsers that accept gzip using .htaccess rules.
-    // 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 to FALSE in order to skip
-    // generating a file that won't be used.
-    if (extension_loaded('zlib') && \Drupal::config('system.performance')->get($file_extension . '.gzip')) {
-      try {
-        if (!file_exists($uri . '.gz') && !$this->fileSystem->saveData(gzencode($data, 9, FORCE_GZIP), $uri . '.gz', FileSystemInterface::EXISTS_REPLACE)) {
-          return FALSE;
-        }
-      }
-      catch (FileException $e) {
-        return FALSE;
-      }
-    }
     return $uri;
   }
 
diff --git a/core/modules/system/config/install/system.performance.yml b/core/modules/system/config/install/system.performance.yml
index 11392bd1e4..1ffddde195 100644
--- a/core/modules/system/config/install/system.performance.yml
+++ b/core/modules/system/config/install/system.performance.yml
@@ -3,7 +3,6 @@ cache:
     max_age: 0
 css:
   preprocess: true
-  gzip: true
 fast_404:
   enabled: true
   paths: '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i'
@@ -11,5 +10,4 @@ fast_404:
   html: '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>'
 js:
   preprocess: true
-  gzip: true
 stale_file_threshold: 2592000
diff --git a/core/modules/system/config/schema/system.schema.yml b/core/modules/system/config/schema/system.schema.yml
index c0f6a87e46..73caa81142 100644
--- a/core/modules/system/config/schema/system.schema.yml
+++ b/core/modules/system/config/schema/system.schema.yml
@@ -151,9 +151,6 @@ system.performance:
         preprocess:
           type: boolean
           label: 'Aggregate CSS files'
-        gzip:
-          type: boolean
-          label: 'Compress CSS files'
     fast_404:
       type: mapping
       label: 'Fast 404 settings'
diff --git a/core/modules/system/system.post_update.php b/core/modules/system/system.post_update.php
index bacf743db6..84a306d8e2 100644
--- a/core/modules/system/system.post_update.php
+++ b/core/modules/system/system.post_update.php
@@ -70,3 +70,14 @@ function system_post_update_enable_provider_database_driver() {
     \Drupal::service('module_installer')->install(array_keys($modules_to_install));
   }
 }
+
+/**
+ * Remove obsolete asset aggregation configuration.
+ */
+function system_post_update_system_performance_aggregation_gzip() {
+  \Drupal::configFactory()->getEditable('system.performance')
+    ->clear('css.gzip')
+    ->clear('js.gzip')
+    ->save();
+}
+
