Concrete CMS Website Page Changes Save Successfully but the Updated Content Is Not Appearing on the Live Page

Hello Concrete CMS Community,

I am currently facing one specific problem with my website running on Concrete CMS where changes made to the content of an existing page appear to save successfully in the dashboard, but the updated content does not consistently appear on the public version of that same page. The problem is specifically related to the published page continuing to display an older version of the content even though I can see the new content while editing the page in the Concrete CMS dashboard. The page itself remains accessible and functional, and there is no obvious error during the editing or publishing process. Some updates become visible immediately after publishing, while occasionally an individual content change continues displaying the previous version on the live page. I am trying to troubleshoot this as one specific stale-content problem rather than multiple unrelated Concrete CMS issues.

I have verified that I am editing the correct page and the correct content area before making the change. After modifying the content, I save and publish the page through the normal Concrete CMS workflow, and the dashboard indicates that the operation has completed successfully. When I return to the public page, however, the older content can still be visible instead of the version I just published. If I return to the page editor, the new content is still present there, which confirms that the edit itself has not been lost. The problem is therefore somewhere between the successfully saved/published page version and what Concrete CMS ultimately serves to a visitor. This behaviour is intermittent because the same publishing process works normally for many edits, making it difficult to identify a specific page configuration or content type that consistently triggers it.

I have also tested the affected page in a fresh browser session and in private browsing to determine whether the old content is simply being retained by my local browser. The older version can still appear in those tests, so I am not confident that clearing the browser cache is the correct solution. I have also tried accessing the page from a different device, and the behaviour can still occur, which makes the issue appear to be related to the website rather than one particular browser session. I am interested in determining whether Concrete CMS is serving a cached version of the page or whether another layer is retaining the previously published output. The important clue is that the content editor shows the latest version while the public page can continue showing the older version, and eventually the new content may appear without me making another edit.

I have been reviewing the Concrete CMS cache configuration because I suspect that an older rendered version of the page may be being served after the content is published. I have not changed the site’s caching configuration while troubleshooting because I want to isolate the exact cause first. I am also checking whether the affected page behaves differently from pages whose updates appear immediately. The issue does not seem to affect the entire website at once, and most pages continue reflecting their latest published content normally. This makes me wonder whether there is a particular page-level cache state or publishing sequence involved. I would like to know what Concrete CMS diagnostic information I should inspect to determine whether the public request is actually generating the current page version or returning a previously cached representation.

I have started recording the time when an edit is made, when the page is published, and when the new content first becomes visible publicly. I am also comparing the page source and the content visible in the Concrete CMS editor so I can determine whether the stale content is already being generated by Concrete CMS or whether it is introduced after the CMS produces the page. I have not found an obvious PHP or application error during the affected updates, and the website remains available throughout the process. I would prefer not to repeatedly clear all caches as a workaround because that does not explain why the published content sometimes remains stale in the first place. If there are specific Concrete CMS tools, logs, cache commands, version information, or debugging techniques that can show which page version is being served for a particular request, I would like to use them to isolate the issue.

I would appreciate guidance from the Concrete CMS community on how to systematically troubleshoot this specific situation where an existing page is successfully edited and published, but the public page occasionally continues displaying the previous content. In particular, I would like to know which Concrete CMS cache settings, page-version information, logs, debugging tools, or server-side checks I should examine when the problem occurs. I would also appreciate advice on how to distinguish between Concrete CMS’s own page caching and any external caching layer that might be serving an older response. My goal is to make page publishing reliable so that once an updated page is successfully published, visitors consistently receive that latest version without requiring repeated manual cache clearing, browser refreshes, or waiting an unpredictable amount of time for the new content to appear. Sorry for long post!

There are three possible causes of your problem with an old cached page being displayed instead of the current version.

  1. Concrete cms cache ( not likely since you have been clearing it )
  2. Browser cache also not likely for the same reason.
  3. A servers cache system running in the back end.
    You should look in your servers control panel for a caching system, there are various flavours available, so ask your hosts tech department about any backend caching they have setup on your account.

EDIT Are you sure your pages are not waiting for approval?

Thanks, that gives me a useful direction. I had been focusing mostly on Concrete CMS’s own cache because the editor consistently shows the new content, but I hadn’t fully considered that a server-level cache could be sitting between Concrete and the public request. I’ll check the hosting control panel and ask the host whether there is any reverse-proxy, page cache, Varnish/Nginx cache, or other backend caching enabled for the site, including whether it has any rules for invalidating cached pages after a Concrete CMS publish.

The approval point is also worth checking. I’m using the normal edit/publish workflow, so I assumed the content was immediately published, but I’ll verify the page version and approval state rather than relying only on what the editor shows. Is there a particular place in Concrete CMS where you would recommend checking whether the public page is serving an approved/published version versus a newer unapproved version? If I confirm the page is definitely approved and the host has a backend cache, would you recommend testing by temporarily bypassing that cache for just the affected page rather than disabling the entire caching system?

Dashboard → Sitemap → Page search → Advanced → Version status → Unapproved → Search

On the caching issue generally, on my small sites, i have never found any speed advantage with caching enabled so i rarely (never?) have caching on. It only causes problems like what you’re seeing. This is only my experience. Larger sites or sites with specific caching needs may well benefit from it.

Maybe not so much the size of the site in pages as the volume of traffic.