Hi, I’m Sheila, a technology consultant, web designer, project manager and author. I help heart-centered business owners, the lightworkers of the world, with technology. I build websites and make technology work for them, so they can spend more time focusing on growing their business and doing what they love.

How to Fix Divi When Page Updates Won’t Save

If your site is on Siteground and you’ve had issues with Divi seemingly not saving pages, your problem may be the SG Optimizer plugin. I’ve spent too many hours over the past 3 weeks working with plugin developers and Divi support trying to figure out why page updates were saving on some sites I support and not saving on other sites I support.

I could reproduce the issue on multiple sites, but not all sites.

After enabling the Divi Builder, I would make a change and then save it and exit Visual Builder, but the change wasn’t there. I would click Refresh and the change was there. Then I would enable Visual Builder and the change was gone, I would click refresh while in the builder and the change would appear,

The backend and front end just didn’t match without lots of refreshes in between. So frustrating!

After having every plugin disabled and still having the issue, I turned on WP-Debug. That found some additional errors, but still didn’t solve the problem.

Looked under the covers in wp-config. Still nothing.

Then .htaccess. I discovered that there was browser caching code from the SG Optimizer plugin that had been deactivated and deleted. I deleted this code and everything returned to normal.

The code I deleted from .htacesss is below.

I hope this saves someone some hours!

# Leverage Browser Caching by SG-Optimizer
<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault                                      “access plus 6 months”
  # CSS
    ExpiresByType text/css                              “access plus 1 year”
  # HTML components (HTCs)
    ExpiresByType text/x-component                      “access plus 2 months”
  # HTML
    ExpiresByType text/html                             “access plus 6 months”
  # JavaScript
    ExpiresByType application/javascript                “access plus 1 year”
    ExpiresByType application/x-javascript              “access plus 1 year”
  # Manifest files
    ExpiresByType application/x-web-app-manifest+json   “access plus 0 seconds”
    ExpiresByType text/cache-manifest                   “access plus 0 seconds”
  # Media
    ExpiresByType audio/ogg                             “access plus 1 year”
    ExpiresByType image/gif                             “access plus 1 year”
    ExpiresByType image/jpg                             “access plus 1 year”
    ExpiresByType image/jpeg                            “access plus 1 year”
    ExpiresByType image/png                             “access plus 1 year”
    ExpiresByType image/svg                             “access plus 1 year”
    ExpiresByType image/svg+xml                         “access plus 1 year”
    ExpiresByType video/mp4                             “access plus 1 year”
    ExpiresByType video/ogg                             “access plus 1 year”
    ExpiresByType video/webm                            “access plus 1 year”
    ExpiresByType image/x-icon                          “access plus 1 year”
    ExpiresByType application/pdf                       “access plus 1 year”
    ExpiresByType application/x-shockwave-flash         “access plus 1 year”
  # Web feeds
    ExpiresByType application/atom+xml                  “access plus 1 hour”
    ExpiresByType application/rss+xml                   “access plus 1 hour”
  # Web fonts
    ExpiresByType application/font-woff                 “access plus 1 year”
    ExpiresByType application/font-woff2                “access plus 1 year”
    ExpiresByType application/vnd.ms-fontobject         “access plus 1 year”
    ExpiresByType application/x-font-ttf                “access plus 1 year”
    ExpiresByType font/opentype                         “access plus 1 year”
</IfModule>
# END LBC
I deleted this code as well:
# GZIP enabled by SG-Optimizer
<IfModule mod_deflate.c>
    <IfModule mod_filter.c>
       AddOutputFilterByType DEFLATE “application/atom+xml” \
          “application/javascript” \
          “application/json” \
          “application/ld+json” \
          “application/manifest+json” \
          “application/rdf+xml” \
          “application/rss+xml” \
          “application/schema+json” \
          “application/vnd.geo+json” \
          “application/vnd.ms-fontobject” \
          “application/x-font-ttf” \
          “application/x-javascript” \
          “application/x-web-app-manifest+json” \
          “application/xhtml+xml” \
          “application/xml” \
          “font/eot” \
          “font/opentype” \
          “image/bmp” \
          “image/svg+xml” \
          “image/vnd.microsoft.icon” \
          “image/x-icon” \
          “text/cache-manifest” \
          “text/css” \
          “text/html” \
          “text/javascript” \
          “text/plain” \
          “text/vcard” \
          “text/vnd.rim.location.xloc” \
          “text/vtt” \
          “text/x-component” \
          “text/x-cross-domain-policy” \
          “text/xml”
    </IfModule>
</IfModule>
# END GZIP