We're Back!

Welcome to a new year of The Blogware Mechanic, the article series that explores ways to customize, enhance and supercharge your Blogware-powered blog in ways that the manuals don't cover. If you've got a Blogware blog and would like it to have the features that those fancy “A-lister” blogs have, this series is for you!
In case you missed some of the previous articles in this series, they are:
- Basic Blog Customization, Part 1. This article covers choosing a color scheme for your blog from the built-in set of color schemes and choosing between Blogware's one-, two- and three-column layouts.
- Basic Blog Customization, Part 2. This article is all about the basics of components: using them, adding and removing them from your blog's sidebars, and adding and removing them from your blog's header and footer.
- How Do I Put a YouTube Video Into a Blog Entry? If you want to stick a YouTube video into you blgo entry, consult this article, which explains how it's done.
This entry marks the first of a series of articles that takes a look at making some very big changes to Blogware's templates, which define the layout of your blog. In this series, we're going to look at:
- Breaking away from Blogware's table-based layout
- Experimenting with custom page layouts
- Search engine optimization
- Google Adsense optimization
- Blogware's template mini-language
- JavaScript tricks
To begin this series, I'm going to start with the first item on the list: Breaking away from Blogware's table-based layout.
Blogware's Table-Based Layout
As you probably know, you can select from one of four possible column layouts in the Blogware control panel:
- A single-column page with no sidebars
- A two-column page with a thin sidebar column on the left and the main content in the wider right column
- A two-column page with a thin sidebar column on the right and the main content in the wider left column
- A three-column layout with thin sidebars columns on the left and right and the main content in the wider center column
For this discussion, I'll limit my focus to the three-column layout.
The layout of a Blogware blog's pages are determined by templates, which are HTML or CSS files that act as a framework for the blog. The content that you provide and your readers provide — blog entries, photos, comments, trackbacks and so on — is inserted into the framework created by the templates, resulting in the web pages that make up your blog.
If you use Blogware's templates “out of the box” (that is, they way they're given to you), your blog uses a table-based layout. In this layout, every blog page you have is essentially a giant HTML table which in turn contains a couple of smaller tables.
If you have a Blogware blog, take a look at the source of your blog's home page. (It won't do to look at the source of this blog, as I've already made big changes to its templates.) You'll see that the page is enclosed within a <table>, and you should see a number of <tr> and <td> tags as well.
In order to make it easier to visualize what's going on with all these tables, I've put together a little diagram below that illustrates the table-based layout of a Blogware blog using the three-column layout:

With Blogware's default templates, a page is essentially a big table with three rows:
- The header row, which in turn contains a three-column table for the header's left, center and right columns
- The main content row, which contains the blog's three columns
- The footer row, which in turn contains a three-column table for the footer's left, center and right columns
Table-Based Layout's Disadvantages
As long as you're only considering human beings reading your blog on browsers made for reasonably large displays using fast connections under ideal network conditions, table-based layout will serve you well. However, by sticking with table-based layout, you're underserving a big chunk of your audience.
Most of the problems with table-based layout have to do with the way the HTML is read and rendered by a browser. While we humans tend to think of web pages as two-dimensional creatures (or even three-dimensional, if you start to dabble with DOM layers), as far as the computer is concerned, they're one-dimensional. Computers don't “see” layout, they “see” HTML source and read it from top to bottom. To illustrate this, I've put together this diagram that shows how a browser reads Blogware's three-column layout:

The browser, when reading the giant table that makes up a Blogware blog page, first reads and renders the header, then the left sidebar, then the main content, then the right sidebar, and finally, the footer.
The end result is that your blog's main content — the “meat”, if you will — is buried deep in the middle of your page. This has a number of implications.
Implications of Table-Based Layout for Mobile Browsers

We'll still in the early phases of the mobile browser adoption curve, but if you look around at any major airport's departure lounges, chance are you'll see at least a couple of people checking out web sites on their web-capable mobile phones or Blackberry devices. According to this article in Opera Watch, the Opera Mobile Browser alone has been built into 40 million mobile phones and had been downloaded 2.5 million times as of August 2006.
Different mobile browsers treat table-based layout differently. Some will render the page the way a desktop browser would, which forces the user to scroll not only up and down, but sideways in order to view the page. Opera's mobile browser takes a smarter approach: it renders table-based layout as a single column, going row by row, then column by column, in same order as the one shown int he diagram above. This eliminates the need for sideways scrolling, but your mobile readers will have to scroll downwards a long way to get to your articles, especially if you have a very long left sidebar.
It would be better if there were an alternative layout method that would server both “stationary” and mobile users well. In such a layout, “stationary” users would get the full three-column experience, while mobile users would read your blog as a long, thin single column, with the main content near the top, followed by the sidebars.
Implications of Table-Based Layout for Visually-Impaired Readers
Specialized browsers or browsers that have a special mode for impaired readers are pretty much like mobile browsers; many also break down a table-based layout into a long strip that displays the content in the same order as shown in the diagram above. By using a table-based layout, you're doing your visually-impaired readers a disservice.
I've seen a number of people dismiss this by saying that “it's political correctness run amok” or that “blind users make a statistically insignificant fraction of the readership”.
Let me go Machiavellian for a moment and ignore the moral issues and go for sheer pragmatism. What if I told you that there was a small cabal of blind users out there who are so influential that ignoring their needs is tantamount to web suicide? Would you care about blind user then?
You should. Those blind users are the search engines.
Implications of Table-Based Layout for Search Engines

For the 99.9999% of us whose sites aren't in the top 100, most of our visitors do not come directly to our web pages. Instead, some of them come in through referring links from other sites, but the vast majority come in by way of search results, especially Google search results.
As a “blind” reader, Google isn't aware of the layout of your blog and scans it in the order shown in the diagram above. “So what?” you might ask, “Google, unlike people, has infinite patience and doesn't mind waiting until it hits the middle of my blog's HTML to get to the main content.”
While Google is infinitely patient, it operates under some constraints:
- It must index billions of web pages — and very often, too. That means that Google is designed scan web pages as quickly as possible, and to this end, it takes some shortcuts.
- To Google, content at the beginning of the page is more important than the content at the end of the page. This is one of those shortcuts I mentioned in the previous point. Have you ever decided to read a magazine article based on the first couple of paragraphs? It is generally believed that Google's algorithm works on the same principle: that the “gist” of a web page can be determined by the content near the beginning.
- There is an upper limit to how much of a web page search engines will index. This upper limit varies from search engine to search engine, and they generally don't publicize what this upper limit is. According to this article at SitePoint, here are the points after which various search engines stop indexing a page:
- Yahoo! stops indexing after reading 210K of page data
- Google stops indexing after reading 520K of page data
- MSN Search stops indexing after reading 1030K of page data
This limit isn't likely to affect most blogs — even 210K worth of page data is plenty of text and JavaScript.
Implications of Table-Based Layout for Readers Using Desktop or Laptop Computers With Regular Browsers
In a three-column table-based layout, the main content of your blog doesn't load and render until the parts the table that precede it have been loaded and rendered. If you've got a lot of JavaScript in the <head> section and a busy header and left sidebar, there can be a noticeable lag between the time your blog's pages load and the time the main content becomes visible.
Table-based layout also tightly couples content with design, which greatly increases the file size of your blog's pages (remember, bandwidth costs money). It also makes it harder to modify your blog's design or keep the design consistent.
Recommended Reading
I could go on covering the disadvantages of table-based layout, but the presentation titled Why Tables for Layout is Stupid does the job so well that I thought I'd simply point you there. Don't let the fact that it's from ancient history — 2003! — irk you; the points it makes are still valid today.
What's Coming Up Next
You've probably guessed where this is going: CSS-based layout. In the next installment, we'll look at replacing Blogware's table-based layout by changing its base template. Not only will you get a look at Blogware's underlying template system, but you'll also get a look at its template scripting language.