Modern Joomla templates (version 1.6 and up) are designed to be search engine friendly (SEF). In older versions of Joomla such as version 1.5, templates were based on HTML tables, which are hard for web spiders to crawl.

CSS-based tableless templates are better, but they still have a problem: The leftmost module (which is the site menu) usually comes first in the web page’s HTML. If a spider has to crawl through the menu first, it may devalue the actual content of the page because that content is so far removed from the start of the page.

To avert that situation, today’s Joomla templates float columns to the left and right, depending on the width of the page in a browser, to ensure the correct placement of the web page’s content (as displayed by a Joomla component) and navigation menu (as displayed by a Joomla module). Such templates also have a container element that contains the columns.

Here’s what part of such a template might look like in CSS:

   #container {
    width: 100%;
   #column_1 {
    width: 25%;
    float: left;
   #column_2 {
    width: 45%;
    float: right;

In the template’s index.php file, the two columns (column_1 and column_2) would be placed inside the container such that the second column — the one that displays the web page’s content — comes first in the HTML (but actually is positioned to the right in the browser due to the template’s CSS).

And the second column — the one that displays the menu — would come later in the page’s HTML (but actually is positioned to the left in the browser due to the template’s CSS).

In other words, the HTML generated by such templates presents the content of the page to a web spider first, before the main menu. Then the spider bases its analysis on the page’s actual content, not on the items in the main menu.

Here’s what the column handling might look like in such a template’s index.php file:

  <div id="container">
    <div id="column_2">
     <jdoc:include type="component">
    <div id="column_1">
     <jdoc:include type="modules" name="left">