Using WordPress as a CMS

Even though WordPress is a blogging platform, its Pages function allows you to use it as a general web publishing solution for static content. When I started looking at replacing my Dreamweaver-designed site by a database driven system, I had a brief look at Typo3, Joomla and some other systems. WordPress impressed me with its promised 5-minute install (which only took around three hours), its easy user interface and the fact that the comments function could also be used for static pages. I played around a little and then spend weeks migrating all existing content to the new system.

Two years later I have learned a lot about WordPress but I am still struggling with using it as a CMS. Currently this site consists of over 400 web pages. This page gives an overview of the way is set up. Hopefully it is of use to you and I would appreciate feedback if you have a solution to some of the problems that I am still struggling with.

Using WordPress posts versus pages at this point in time only uses pages, not posts. I made this choice early on while designing the site. What initially attracted me to the use of pages was their straightforward translation to web pages and the easy way to create a browsable hierarchy of content by using the ‘Parent page’ function. All the information I read about posts related to blogging, which I didn’t care for. In hindsight, going for pages over posts was probably an incorrect choice. There is nothing that stops you from creating web pages that are each based on a single post. A visitor will not notice the different between a site using posts or one using pages. A clear structuring of the posts can be done by using a hierarchy of categories.

There are, in fact, a few advantages to using posts over pages:

  • WordPress has been designed to handle posts and pages in a specific way. It is optimized for handling posts and may offer better performance when all content is stored in posts. Another example of this preference for posts is the fact that the WordPress search function doesn’t work for pages.
  • Theme developers envision pages and posts to be used in a particular fashion. By using WordPress in a different fashion, you may limit your choice of themes.
  • In the Admin panel you can filter posts on their creation date and their category. Pages cannot be filtered this way. This makes managing 1000 posts much easier than managing the same number of pages.
  • Posts can have excerpts, which may be useful for creating an automatic table of content, and they can have tags, which may be useful for SEO purposes.

How to manage lots of pages

Managing hundreds of pages with WordPress can be done but there are some limitations.

  • WordPress 2.7 seems to be slower than previous versions when you browse through pages. I find it easier to just navigate the actual site and use the ‘Edit’ function than to try and locate a page in the administrator view. A collapsible page hierarchy would make life a lot easier in the administrator ‘Pages’ window.
  • One function that I sorely miss is being able to sort pages on their modification date. When you blog, an article is finished once you have published it. Pages, however, should go through a revision cycle and get updated every year or so. I have not yet found a way to easily find the oldest pages on my site. As a work-around, I installed the Page Date plug-in which allows me to modify the creation datea of pages. By entering the current date when modifying a page, it is possible to check which pages are in need of an overhaul. Avoiding this extra work would be nice though!
  • Another issue that I struggle with is that there are hundreds of links between all the pages of this site or with pages on other sites. Dreamweaver has a really useful function to check if all links on pages are valid. WordPress doesn’t have such a function. I have to rely on Google Analytics (and the Ultimate Google Analytics plug-in) but this is a clumsy way of checking links. I have a plug-in called Broken Link Checker but it often generates time-outs so I only use it from time to time.
  • With each new release the back-end system of WordPress got a bit better but I am still not completely happy with the Editor and the Page navigation system.

How to let visitors navigate a static WordPress site

The standard WordPress navigation functions are meant for blogging and useless for pages.

  • I have added a collapsible navigation tree in the left column using the Fold Page List plug-in. It works nicely alongside the Page Menu Editor plug-in which gives you more control over the names and labels used in the navigation tree.
  • Fold Page List also has a breadcrumb function to generate a navigation path like the one at the top of the site.  I haven’t used this yet and rely on the Breadcrumb Navigation XT plug-in instead.
  • On average visitors only look at 1.55 pages of my site. I would like to increase this low percentage by pointing visitors to other pages that relate to the one they are reading. It took me a while to find the Microkid’s Related Posts plug-in. It allowed me to add a second navigation section called ‘related pages’ to the left column of pages. This list shows relevant links to other pages on either my site or elsewhere. It is going to take a while before all pages get such links. Hopefully that will increase the average page count per visitor.

How to search the site

By default the WordPress search function does not search static pages. You need to install a plug-in like Search Pages for this. Why such a basic function is still missing in the WordPress core is beyond my comprehension.

How to make the site search engine friendly

Bloggers can build up an audience of repeat visitors, but a site like this one gets 75 percent of its traffic through Google searches. Good SEO is crucial and something that I am still struggling with.

  • The All-in-one SEO plug-in takes care of the title, keywords and description of each page.
  • The Google XML Sitemaps plug-in makes sure Google can easily find all the pages and the changes to them.
  • There are several long pages on this site, which I originally split into manageable chunks using <!–nextpage–>. The problem with this is that such paged pages all share the same keywords and Google does not like duplicate keywords. Worse still: it took me 3 years to notice that Google only indexed the first page.  I have stopped using <!–nextpage–> altogether, so now some pages on this site are a bit too long for comfortable reading.
  • The Google Webmaster tool indicated that search pages are also indexed, which leads to duplicate tags. Since search results are irrelevant and led to ‘duplicate tags’ warnings in Google Analytics, I have created a robots.txt file which filters away the search results.
  • When I migrated my site to WordPress, the number of page views dropped by 50% because all the URLs of pages changed. One of the most stupic mistakes I made was not realising that there are easy ways of redirecting pages to their new location. Now the Redirection plug-in takes care of this.

Which theme to use

I am not an expert on this but I learned a lot by being a reviewer of the original draft of the WordPress Theme Design book by Tessa Blakely Silver.

  • When I started out with WordPress I played around with some themes and settled on Digg 3-column designed by Small Potato. It took me a while to realise that I should instead have picked a theme that gets updated regularly because some changes to the WordPress software also require updates to the theme.
  • The theme also turned out to be fairly SEO-unfriendly. It put the site name in <h1> tags which may be fine for a blog but I prefer each page’s title to be considered the most important element. Apparently this is an issue with many themes out there. The theme also used <h2> tags for things like navigation and <h3> for all subtitles within the page content. It is much better to have the tagging work just the other way around.
  • Looking at the XHTML that was generated, the theme first put the header, then the left column followed by the main column and then the right column and footer. This meant that the actual content of each page was in the last quarter of the code with a lot of useless navigation info in front of it. I’ve read that this isn’t that important anymore for SEO purposes but that ideally the actual page content should be at the top of all the code.

Because I really liked the look of the Digg theme, I decided to stick to its aesthetics and overall lay-out but completely rework the underlying code to fix the above issues. This will probably be an ongoing effort since I keep running into things that need a bit of tweaking. Creating a custom theme was made a lot easier by testing it on a virtual machine from JumpBox.

One other thing that I changed is optimizing the CSS so that pages also get printed properly, without the header or sidebars. This may be irrelevant for a blog but visitors of a ‘reference’ type of site need proper print output.

How to secure content

One of my worries when I left Dreamweaver was security: what happens if the database is corrupted or somehow gets lost. This is presumably a worry for all WordPress users. Next to the back-up function that my hosting company offers, I rely on the WordPress Database Backup plug-in which mails me a weekly back-up.

I have had an issue with the entire web site going down with HTTP error 500 messages once. The hosting company couldn’t pinpoint the error but they were very helpful in terminating hanging processes repeatedly while I searched around for a solution. At some point in time the site started working again without me knowing what exactly caused or solved the problem. I have implemented these 2 tricks which seem to frequently fix such issues:

  • Add a text file named “php.ini” with only the text “memory=20MB” (no quotes) to the /wp-admin/ directory. This typically needs to be done with 1&1 hosting but might be useful for others as well.
  • Add “AddType x-mapp-php5 .php” (no quotes) as a new line of text to the .htaccess file in the root directory of the site.


After two years of using WordPress I am still happy of making the switch to an open-source database driven system. I use a number of very expensive software systems at work. Compared to the web engines of SAP, Notes and the likes, WordPress is more stylish, easier to use and more flexible. The open architecture and wide range of plug-ins made it fairly easy to work around some of the limitations of the system. Is WordPress the ideal solution for a site like this? That is hard to tell without doing an extensive comparison with alternatives like Drupal or Joomla. I do hope that in the future CMS-functions get a bit more attention from the WordPress developers!

9 thoughts on “Using WordPress as a CMS

  1. I want to start my blog in WordPress, thanks for giving your little but appreciatable knowledge on behalf of this. AOL mail users rates are increasing day by day just because of 24×7 presents customer support number. If you’re getting an error like Unable To Login AOL Account Problem just followed the link- for the quick response.

  2. we had a dreamweaver based site for my company for a long time. In the last 2 months, we have switched to a wordpress site, and have never looked back. Of course we have to use a ton of plugins- SEO stuff, database backup, but over all, as a Las Vegas Printing Company we can’t even begin to tell you the difference it makes in managing our website.

  3. Directory submission isn’t as powerful as it once was but that doesn’t mean that you shouldn’t do it. A link portfolio should be diverse and part of that portfolio can include directory links from quality directories.

  4. Hello, this is very informative. I was looking for information for my other site and I found this very helpful, especially the part about posts vs pages. I’m thinking I need to go the post route now.

    the part about the database back up i good too. I’ll have to make sure I do that. I’m a wordpress newbie.

  5. It’s a very interesting subject I was looking around about more information but you got really what i was looking for in your article so thanks and keep it up you have a great blog .
    I’m very interested in CMS and all its related subjects.

Leave a Reply

Your email address will not be published. Required fields are marked *