CraigsList.com is an example of a high traffic site using static HTML files generated by a CMS (Content Management System). CraigsList's servers can send HTML files without processing them against the database each time before they are sent.
HTML files don't need to be processed like .php, .NET and Cold Fusion pages before they are sent .html files can be sent so fast they will melt the network while the CPU can be idling at 20% capacity.
Recently I built a similar functioning website using a database driven web content management system while working with Eben Design on a project for a law firm in downtown Seattle.
Here were the requirements of the project:
- A web content management system capable of managing multiple websites at the same time
- Search engine friendly pages with unique file names for each page like "work-related-injury.html"
- The content management system needed to add, remove or edit pages on each site including the keywords, descriptions and additional meta data for each page
- They needed to manages all the site without a web master or contracting website consultants every time they wanted to modify their sites
The solution was a File Based Web Content Management Systems to generate static .html pages.
Typically content management systems consist of a few consumer facing web pages based on template designs. The content on the pages changes based on which link was clicked but all the pages have the same file name for example Content.asp?ContentID=494.
The Salt Lake search engine firm advising the law firm was placing a lot of importance on the domain names containing keywords as well as the file names for the pages themselves. I agreed with the SEO firm that it makes a dramatic difference having keywords in the domain names as well as the actual file names. So we needed different file names for each article to help with the SEO goal.
The web admin forms for the content management system looked and reacted the same way as a traditional web content management system, although there was a major difference under the hood. The content management system was adding, editing and removing content from the database, but in addition was also generating static .html pages based on that content when edits were made.
The web server was working harder to create the static pages in addition to managing the database information but only when updates were being made vs. the other 99% time when customer were viewing the content of the website.
When requesting content from a website the web server says what do you want? Oh you want a .html page I don't have to process that with a database search here you go. Contrasted with .php, .NET or Cold Fusion pages that need to be processed each time before sending them.
With static based pages and a content management system the web server has to recreates multiple html pages when one page is removed because the other pages were created with links to the now missing page.
For high volume sites like CraigsList.com it's a great idea to use static pages vs. database powered pages that are constantly recreated based on large amounts of data every time the page is viewed. The static pages are updated when the database changes but then remain constant until there is another change in the database. CraigsList also uses staging servers and a mixture of other methods to protect their actual data servers but that's another topic.
The static pages are created by the database when they are modified then cached and sent straight from RAM to the network card without being processed by the web server each time they are requested. A page must be created one way or another so why not just create a static page in the first place?
One advantage of database powered content pages is a user's login credentials can be authenticated creating secure member only content that is restricted to employees and business partners only. A down fall of static pages is that anyone can view the content of a page on the website by typing in the filename.html
A Combination of Static and Dynamic Web Content
The static pages are created from template design pages and content in the database itself. A site could publish static pages using a web content management system and still have a dynamic keyword search searching for all content containing a given keyword. It would be a personal decision to save a site map because there are bound to be a few content changes but you could just as easily save a static .html version every time there is a change vs. every time the site map is viewed.
The Wrap-up
I'm going to start using a lot more static file based content management systems for my corporate clients. I'm also going to continue using a combination of AJAX and database powered content pages on my personal site because I'm not that concerned with search engines or a mass audience. I also place greater value in having the ability to restrict access to certain content to keep project under wraps and share information based on who has logged in vs. sharing the same static content with everyone that visits my personal site. |