When it comes to making sites search engine friendly - ie Search Engine Optimization (SEO), so they are readily navigated and index by search engine spiders, and pages rank well in, say, Google, Yahoo and MSN Search, Joomla! has a few quirks that are maybe worth a little explanation: to me, rather suggest some of key folks behind Joomla are not really interested in creating websites.
Firstly, though, the essentials of optimising a Joomla! site for search engines are exactly as for all sites, and as I've briefly covered in Free advice on search engine optimization.
Note that info here is dated, and I now use Drupal; but might be of some use.
So, what are the quirks?
Joomla SEO, for a Search Engine Friendly Website
SEF URLs: keywords may help; duplicate URLs a big no-no
NOTE: Joomla 1.5 can generate some real fine URLs, including to help w with SEF; tho if use sh404sef w 1.0.xx and then migrate to 1.5, maybe best to use the 1.5 version of sh404sef to generate identical URLs [otherwise, could have nightmare with massive changes of URLs].
Raw Joomla! URLs - like many content management system URLs - are, to my eye, gobbledegook, with numbers and characters like "&" strewn around.
Joomla! has a SEF ("Search Engine Friendly") URL option that works on much server software, reducing the clutter to mainly numbers and backslashes - these should be easier for search engine spiders to navigate, as well as for humans to type into address fields. To me, though, even with this option on, Joomla! 1.0.xx generates Search Engine Unfriendly URLs, as each link created can result in an extra URL, through addition of a number known as Itemid.
There are better options. These will create URLs with words, usually drawn from titles of categories, and item titles; may help search engines, but certainly more human friendly. Though I've often seen a commercial solution promoted, I'm using an excellent freebie - sh404SEF. This allows you to have URLs without the dreaded Itemids. Includes support for SEF URLs with some components, including Fireboard.
I'm not sure there is really much boost to search engine rankings from having words instead of numbers in URLs (even words that may include keywords and key phrases); seen a couple of forum posts indicating they indeed help. figure, what the heck, can try.
Also, I've chosen to use hyphen as the character to use for replacing spaces, say - which can't appear in URLs. Chose hyphens rather than underlines after coming across post by Googleguy in WebmasterWorld forums.
Ideally, the URLs you generate will also be "Cool" - so won't change as you later change Joomla software etc, yet retain at least some pages with same content.
XML Sitemaps - Ensure URLs are Correct
If you use a xml sitemap (to submit URLs to Google, Yahoo, MSN), ensure it generates the same URLs you wish to have indexed.
I've also read on webmasterworld that should have no more than 100 URLs per sitemap. A tough one to solve w Joomla, for me; I've just tried the full sitemaps.
I have, however, added Joomap to create regular sitemap - which I can link to, works well w sh404sef. Hope this helps search engine robots and users. But also took out "hidden advertising" - which I read of on Alledia, and as noted there not just a tad sly [my wording], but also against Google guidelines.
Page Title: a Big One for SEO
Joomla! has option for using dynamic page titles, which works very well for items; components such as Fireboard and Gallery 2 now also generate decent titles. Though for Fireboard, need to use a patch to ensure that thread pages have titles for threads (from first posts), rather than from last post on page.
For even better titles with Joomla!, use the SEF Patch from joomlatwork - can generate page titles that are simply article titles, without site name (can choose to have site name in page titles, but first ask if you really need it?)
This patch also provides some more features to benefit SEO with Joomla! The regular version is free; there's an extended version available for a price, should you aim for optimum SEO. The patch was set to become part of Joomla 1.5; seems odd that it wasn't (now, should be in 1.6); likewise, seems no good reason why not also included in 1.0.xx.
If you use the patch, you can set the title for your home page via the link to the frontpage component (assuming you use this as the frontpage) at the top of the main menu.
Otherwise, comes from the text you use to link from main menu to the frontpage component.
JoomSEO is a mambot that offers alternative means of creating page titles (only for regular Joomla content and static content items; if you use it and have Fireboard too, need to make small hack to Fireboard to ensure Fireboard titles still display).
In Joomla!, it's a pain to automatically assign tags to titles of Items etc. Need to amend some fairly deep "code" (and I'm no coder); when I tried when earlier using Mambo, didn't work out too well.
However, JoomSEO can set, say, h1 tags for content headings.
My crude solution: I've added definitions for h1 etc to css for templates I'm using, and can then set these tags using editor (eg TMEdit). These can help Google, say, determine the key subject(s) of a page.
Meta Descriptions, Meta Keywords
Though meta description and meta keywords became almost useless with Google, say, as had been abused by spammers, seems they're of some importance again. Partly as they can help Google tell that pages differ from one another; also, Google may use meta description text in search engine results.
With regular Joomla, I believe these are primarily from the meta description and meta keywords you enter for the whole site: so not useful for individual pages. With SEF patch, can enter individually for each (non component) page, which is very useful.
With Fireboard, there's a patch to enable automatic creation of keyword and description tags.
JoomSEO mambot can also generate keywords and descriptions automatically; though it's surely best to create descriptions, especially, individually (as w SEF patch).
Internal Links - Spread Pagerank, Help Bots and Humans
With Joomla! items generally linked to from home page via links to Section, then Category, then Item, I rather suspect pagerank for homepage is diluted by time you've reached the Item (seen a little evidence of this); effect also same from other pages that may have decent pagerank. To try and counter this, I use extra menus with direct links to Items (articles), so trying to share the pagerank more efficiently.
I mostly use sub-menus – rather than one huge menu – as too many links on a page unwise.
Not just helping with SEO; also benefit site visitors, who should be able to navigate the site more readily this way.
Remember, too, that text you use for links is important - Google, say, uses this as an indicator of what the page linked to is about.
Linking from menus, you will probably want to keep the link text short, so it fits within menus.
Can also link to site articles from within articles: indeed, a good idea as Google may give more weighting for links within main text. Plus, of course, can help your visitors navigate: much of work on Joomla SEO also helps make your site more user-friendly.
Whilst on links: Joomla! typically has relatively long URL in link to front page (component); problem partly as leads to apparent duplicates of home page. One solution involves unpublishing Main Menu, while keeping frontpage component as first link on it, and creating new menu that includes your domain link as home page, and sections etc. I've tried this, and works well - also allowing custom page title for home page.
Accelerate the Site
Having pages load faster can of course help human visitors - and maybe make them more inclined to link to your site; plus, helps search engine spiders, so they may index your site more thoroughly.
I've read excellent reviews of Joomla performance booster component from Joomlatwork; but commercial, and price just too high for me, given small amounts of revenue from my sites.
Just started using PageCache component, which you can find at JoomlaPerformance. Perhaps making pages around 10x faster (after they've been visited and cached); doesn't work for Fireboard, unless make small hack to Fireboard I found in bestofjoomla forum.
Here's one that's proven too tough for me. Search engines are happier with pages with good coding, that meets standards; maybe MSN places more emphasis on this than most.
Partly because of templates (varying from one to another), editors, Mambo and Joomla! pages can have plenty of non-standard code. This one is not too bad, but using w3c validator for pages for a site using a different template can yield well over 200 errors. Yet, scanning the code in Dreamweaver, see nearly no yellow highlighting, suggesting Dreamweaver "passes" most of the code. The site's pages are indexed, some do well in Google and Yahoo at least, so I'm not too worried - which is good as I don't have much idea what to do about many an error!
A friend who has/had a Mambo site geared towards generating income spent some hundreds of hours cleaning up the code, to maximise results with search engines (plus page load speeds, browser compatibilities...). Up to you, I think, whether you want to do quite so much faffing.
Content and Adsense
If you have adsense, the adsense bot may get confused by all the links in menus etc. To tell it where the key text on each page is, can try adding code to template, above and below the main text.
Info from: Google Adsense Help Center.
There's more on Joomla and SEO in the forum here - inc copies of some of the posts I've made to Mambo and Joomla! forums (does anyone listen? ... sob; tho since I wrote this, a few of my posts in Joomla forums even received attention from masterchief of J development himself).