<< All Blog Posts

Why Upgrade to Plone 4

Plone 324 banner

Learn how Six Feet Up can help you Upgrade to Plone 4 and about our WebUnity multisite package for Plone.

A question we often hear when discussing projects with clients is, "Why should I upgrade to Plone 4?" This post will attempt to answer that question by highlighting some of the changes that affect both users and developers.

1. Benefits for Users


Hanno Schlichting has done some benchmarks for major releases in the 4.x line, summarizing:

Compared to Plone 3.3 Plone 4.0 is about 50% faster, ranging from 30% for edit pages up to 70% for anonymous page views.

In order to illustrate the impact I used one large real site and tweaked it to resemble a default Plone 4.0 and 4.1. … For pages doing either multiple catalog searches or catalog searches over large amounts of content, we get an improvement of 2x up to 4x. For an edit screen that doesn't even show the navigation tree, there's less benefit. But even rendering the top sections and the language selector results in a 1.4x improvement for this site.

Methodology: Using the Funkload suite with an increasing number of concurrent requests over time. All numbers relative to Plone 2.5 with Plone 2.5 as the baseline — i.e. 100% means twice as fast as Plone 2.5.

Latest Product Versions

Each major release of Plone consists of updates, bug fixes and feature additions to a large number of products. For example, the version of the Products.ATContentTypes (the core product behind Plone's stock content type framework) has seen a very large number of changes since the version released in the 3.x line.

Modern Visual Editor

In Plone 4.0, the default visual editor was switched from the aging Kupu product to the more modern TinyMCE. Jon Stahl wrote a good article comparing the two. In it, he cites the following improvements of TinyMCE over Kupu:
  • It gets the “Link” drawer right.  Kupu has two separate drawers, one for internal (inside your site) links, and one for external links.  That’s confusing and awkward for users.  TinyMCE combines these into a single drawer and raises Kupu by adding point-and-click support for mailto: and https: links and control over whether links open a new window.  The overall design of the drawer is a lot cleaner and it feels a lot more responsive.
  • Similarly, Product.TinyMCE’s “Image” drawer is also a nice improvement.  Its features are basically equivalent to Kupu’s, although its support for image captioning is a bit cleaner.
  • Product.TinyMCE’s support for creating and editing HTML tables is pretty solid.  This was always a weak area for Kupu, and a very difficult task for any graphical HTML editor.
  • Products.TinyMCE handles Flash embedding in a clean and user-friendly way.  Flash embedding is possible in current versions of Kupu, but often feels a bit awkward and unreliable.

Improved Search

Plone 4.0 introduced changes to the advanced search form to make it more user-friendly, and Plone 4.2 introduced changes to simplify the search results screen.


Better Large File Handling

Plone 4 introduced a large change in how large files are stored. Instead of serializing them into the ZODB, they are stored directly on the filesystem.

Potsdam Institute For Climate Impact Research had a 16.5 GB database containing documents and other media:

  • Upgrading the entire site to the new, filesystem-based storage: 51 minutes.
  • Plone database size: reduced from 16.5 GB to 3.0 GB.
  • Memory footprint on the heavily cached server:  reduced from 10 GB to 3 GB.
  • Load on the site while in heavy use: reduced to 10-20% of the previous CPU usage, with no intermittent massive spikes, as had been the case with Plone 3.
  • File transfers were faster, with no discernable increase in memory usage while large documents were being downloaded.

2. Benefits for Developers

Modern Version of Python

The latest release in the Plone 4 line supports Python 2.7, which is the most current version of Python 2. This is a welcome change for many developers, as it contains many useful enhancements to the standard library coupled with many performance enhancements.


Better Packaging

The Plone 3 line included many packages that were still had not completely adopted modern Python packaging practices. This led to many problems when deploying Plone, as it could easily try to install sets of packages that were completely incompatible with your configuration. The 4.x line has reached the point where all products have been packaged using up to date practices. This means that dependency tracking is greatly simplified, and it allows you to see at a glance the exact versions of all software in use. For example, you can examine the versions.cfg file for Plone 4.2.1 which shows the version of every dependency of the CMS.


With the move from version 3 to 4, Plone solidified its position as an industrial strength CMS.  While maintaining its proven security and ease-of-use advantages, Plone 4 has stepped up its technical game in terms of speed, large file handling and memory usage to handle sites which must run under even the most serious conditions.  A lot of the other advances are more subtle, but the updated editor and search are sure to provide immediate improvements in usability and satisfaction compared to Plone 3.  And while you many not see the under-the-hood code cleanup, updated Python and move to modern Python packaging, anyone using a Plone 3 site upgraded to Plone 4 will immediately see the results in terms of snappier response and an improved experience for users from start to finish.


Thanks for filling out the form! A Six Feet Up representative will be in contact with you soon.

Connect with us