Push Vs. Pull – The Battle for the Best CMS
A content management system (CMS) provides the necessary infrastructure for multiple parties to effectively contribute content and collaborate throughout the information lifecycle.
From a technical point of view, there are fundamental differences between a Push CMS and a Pull CMS. This article outlines and compares the two, explaining why a Push CMS is advantageous to a Pull CMS.
What is a Push CMS?
A Push CMS is characterized by the caching and delivery of content as flat files (files that stand alone, independent of a database) in a Web server-neutral format. In a Push CMS, content is aggregated from the repository and "baked" into a standard file which is then pushed, via open standards, to the appropriate Web server(s). A Push CMS typically exists inside the corporate firewall, as illustrated below.
What is a Pull CMS?
In a Pull CMS, special delivery software is installed directly on the live Web server(s). When a request is made for a Web page on the Pull CMS, the necessary content pieces are pulled from the database and assembled into a single page. A Pull CMS typically exists outside the corporate firewall.
Both Push CMSs and Pull CMSs provide users the ability to update and manage information in a distributed manner. However, the two types of systems are fundamentally different when considered from a technical architecture and publishing perspective.
Advantanges of a Push CMS
- Search Engine Index-Friendly URLs
When content is pushed out to the Web server(s) in flat file format, that content is inherently search engine-friendly, as search engines were designed to index file-based Websites. For example, a URL produced by a Push CMS looks like this:
Alternatively, a URL produced by a Pull CMS may look like this:
The key problem with the Pull CMS URL is that search engines have a more difficult time following links that contain variables. Many search engines ignore everything after the "?" in the URL and thus do not index all the pages on the site. This is not an issue with a Push CMS. Additionally, in a Push CMS, search keywords found in the URL help contribute to higher search result rankings.
Search engine-friendly URLs are also important when using site analysis and click-through software. With a Push CMS, a product like Web Trends, for example, will work without additional configuration. Integrating a program like this to work with the custom dynamic URLs generated by a Pull CMS can be difficult if, indeed, it’s possible at all.
- Multi-Server Content Publication
The publication of content to multiple servers is easy with a Push CMS. In order to publish to an additional server, an administrator adds the server access information to the central repository, and the content is pushed out via open standards (such as FTP, SFTP, VPN, mapped network drives, or local file systems). The same process applies to the maintenance of a mirrored backup of a live Website on a second machine.
With a Pull CMS, the delivery of content is tied to the edge servers, so the CMS delivery engine must be installed on each live server that will serve content. To add another machine, the server must be configured specifically for the Pull CMS software. The maintenance overhead may grow dramatically with each addition of a Pull CMS edge server.
- Content Independence from the CMS
When a Push CMS delivers content, the files are in a fully self-contained format. Making content available this way provides three major benefits:
- These files can be archived or moved around without administrators having to worry that such movement might cause the information in those files to become inaccessible. For a Pull CMS, the delivery of content is tied to the method of implementation of the delivery engine (typically, proprietary methods are used). If the Pull CMS stops working or the database goes down, the entire site goes down with it. The Pull CMS delivery engine is inextricably tied to the availability of the site.
- Content independence from the CMS, as provided by a Push CMS architecture, makes it easy to migrate the content to other applications, or to an entirely new system, as all the information is in open standards format files. Typically, with Pull CMSs it is difficult to retrieve system data and make it available in a new CMS or other program through a file format, as all the data is locked in a proprietary database layout.
- Upgrades or maintenance patches for a Push CMS need only be applied to one server. Administrators of a Pull CMS must apply the needed upgrades and maintenance patches to every server, which creates additional management costs.
- Web Server Optimization
Web servers are optimized to serve file-based content. Different caching mechanisms and routines designed to enhance the performance of the site are driven around the concept of serving files. Since a Push CMS pushes out content that is already optimized for the Web server, the site is going to be able to support more visitors than a Pull CMS that relies on its own implementation to serve pages for visitors. Building and caching a Pull CMS page from a database is hardware-intensive and up to the Pull CMS delivery engine to manage.
A Push CMS, on the other hand, does the "heavy lifting" ahead of time and gives the Web server content in the format around which the server was designed and optimized. If the site needs to have database-oriented content, a Push CMS easily accommodates that need. The files that call on special database content in real-time are just assets within the Push CMS.
- Infrastructure Integration
A Push CMS, existing behind the corporate firewall, integrates more securely with infrastructure like LDAP/Active Directory and existing database servers. Being behind the corporate firewall enables the Push CMS to directly use and interact with existing components. A Pull CMS, installed on the edge Web server to run an Internet site, is outside the corporate firewall and therefore requires special access to LDAP/Active Directory, and its own database server that also exists outside the corporate firewall. This creates security problems and requires additional management time from administrators. Some Pull CMS applications do have administrative tools that exist behind the corporate firewall.
A Push CMS provides many unique benefits when compared to a Pull CMS. These benefits are not always readily apparent when evaluating different CMS products as the products "seem" to work the same on the surface. The business user experience with both a Push CMS and Pull CMS is the same. The real difference between the two technological approaches is evident from a management and administrative vantage point. A Push CMS provides many advantages over a Pull CMS.