
Time for action-measuring the scale of your site
- Pull out the paper we used to create Intended Outcomes.
- Below the heading, write Scale & Size.
- An important factor determining efforts on a site is its content. Write Content below Scale & Size.
- List down the different aspects of our site content.
- Think about each aspect and put in your answers next to it. For our Yoga site, we will have about 300 pages in five sections. At least one video with each yoga posture (Aasana). We won't need to update this content frequently. Mostly, we won't have to do any editing after our site is launched. Similarly, our content is not time sensitive and archives won't be applicable to us.
- Another important factor that will determine the scale of operations is the number of users and what they will do on our site. Write down Users and the key factors related to site users below it.
- Now speculate about the number of users. We may have fewer users in the first few months, but we can expect approximately 10,000 users eventually.
- Our site is going to be only in one language—English—for now. Write down English against Content Languages.
- How many times do we expect a user to visit our site in a month? Maybe once or twice. Most of our visitors will be first-time visitors coming via search engines. Write this down.
- Similarly, we may have about five million total page views or visits in a month. Once you have written that, our list may look like the following image.
Note
Alexa (www.alexa.com) is a useful tool to understand hits and site popularity. Review your competitors' statistics and you can get a fair idea of where you need to reach.
- Make a new main item called Overall at the same level as Users. Under that, write down Disk Space, Bandwidth, and Team.
- Now look at the list and the numbers we have written. Look at the number of pages and the amount of media content. For the Yoga site, our estimate is that we will need about 1GB space for all files and database combined.
- As we have video content, we will need more bandwidth. For a start, a monthly usage of 300GB bandwidth is sufficient. Bandwidth is typically calculated by multiplying the average page size (including images and video), number of pages, and number of hits. A typical CMS site may need a 5GB bandwidth every month. Let's write that down.
- Reviewing all information so far, we can also say that we will need a content writer, a graphic designer, a person for online marketing, and a general administrator. Who else will we need to create and manage our site? Well, we will need to involve our existing staff in the entire process. One of our team members can take care of general administration after the site goes live. We will also need to get professionally created videos. Let's put all this down in Team.
Finally, our Overall section may look like this:

What just happened?
We evaluated the size and scale of our web site. Size and scale are mainly driven by the amount of content and the number of visitors. These numbers are interdependent. If we increase the number of pages or users, the disk space and bandwidth will be affected as well.
You may not come up with exact figures here. If you don't know the number of visitors or page impressions you should expect, compare with competitors and then take a guess.
Our purpose in calculating these numbers is to determine server, team, and management requirements. If we expect to scale quickly, we should even consider scalability options now.
Are you expecting a lot of visitors?
If you expect a lot of visitors and traffic on your web site, you should give weight to the performance optimization features of a CMS. Let us first review some features needed for better performance.
- Well-written code: If code is messy, other performance enhancements will yield limited results. Messy code may have too many database queries, inefficient use of disk or network resources, and too many loops or operations that may take a long time to complete. This will slow down any web application. Look out for what people say about the code quality of a particular CMS before you make your selection.
- Caching: Typical CMSs generate all pages dynamically, querying the database on every page request. This would be an overhead if you don't have a lot of dynamic content, or even if your frequency of updates is low. Caching stores dynamically generated pages for a while, eliminating the need to query the database for that time. Just enabling caching on your CMS can give you a huge performance boost. A variation of caching would be exporting your site as static HTML pages. Every time you change something, all affected pages can be published again.
- Load balancing and database replication: You may want to distribute server load across multiple servers via load balancing. You can also add multiple database servers and keep them in sync via database replication. In most cases, you will need to take the help of specialists, but you want to make sure that your CMS can work in such environments.
If these points sounded too technical to you, you can consult an expert. Server management and scaling up may be new to many development teams. So, if you really need high performance, get someone who's done it before.
Pop quiz
- If your average page size is large, let's say 300Kb per page, what will be the impact?
- It will take lot of time for me to generate that content.
- It will take lot of time for the server to process that page.
- It will take lot of time for a page to load and user may get irritated.
- It will take time to load for user, and also a higher bandwidth.
2. If your server is slow, what will be its impact?
- All dynamic pages will be processed slowly, increasing page load time.
- Video files will take longer to load.
- We can't have thousands of users on it.
- No visible impact.
3. What could be an easy performance optimization for a CMS?
- Add an additional server and load balance.
- Remove unnecessary plug-ins from CMS.
- Keep the database on a separate server.
- Publish the site as static HTML pages.
Have a go hero-take some measurements!
We talked about reviewing competitors' statistics to understand what we can expect. It's a good time now to do that. Go ahead and find out about the scale and size of three competitors' web sites. Use Alexa, Google Analytics, or any other service.