SEO / SEF for Joomla

SEO / SEF for Joomla

Article Audience: Webmasters

The default Joomla installation comes with SEF (Search Engine Friendly) capabilities however these are not enabled. Both search engines (and probably users too) hate dynamic pages with lots of parameters example

http://www.yourcompany.com/index.php?option=com_content&task=section&id=6&Itemid=43

In this tutorial we describe specific Joomla techniques to conver the above example to this

http://www.yourcompany.com/section/category/title.html

Core SEF

Joomla default installation allows you to implement basic SEF addresses. This can be done by doing the following:

  1. Using an FTP client or otherwise rename the htaccess.txt file in the root folder of the installation to .htaccess.
  2. Switch on SEF urls in the Global Configuration > SEO
  3. Switch on dynamic page titles, for your titles to reflect the title of your current content item.

This changes your original parameterized URLs to something like http://www.yourcompany.com/content/view/20/31/. This is much better than we had previously however, we are still quite a long way from our ideal scenario.

The sh404SEF component

The sh404SEF component is a great component for converting dynamic addresses to look like static addresses. It also does a lot more improvements for excellent Joomla SEO

  1. Download the component from the above page.
  2. Install the component as per standard procedure via the admin backend (Installers > Components > and choose the component zip file.
  3. Change your .htaccess file such that 3rd party SEF components are enabled:

########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]         ##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
#RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section

########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]         ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section

  1. As can be seen in the above code the core SEF have been remarked (#), and the 3rd Party SEF have been enabled.
  2. Click on Components > sh404SEF > sh404SEF Configuration in the backed and enable the component. The rest of the options by default are mostly correct unless you have done any particular changes. You can investigate and set to your liking.
  3. Save the configuration and browse through all pages in the your website. On each access of a non-friendly url, the component creates a new friendly URL.
  4. If you don't like the addresses which have been created you can go to Components > sh404SEF > View / Edit SEF URLs and change them to your liking.
Always remember that you do not have to include your home URL in any of the friendly URLs. The component will do it automatically.
 

Joomla SiteMap
 

Site maps are great, once again both for users and for crawler's. The JSitemap component is great component which allows you to create a Joomla site map quickly and easily from your menus. Installation and setting up only takes a couple of minutes and you get a great looking sitemap. Install the component via the normal installation, go to Components > JSitemap > choose the menus which you want to get populated by the site map, you can tweak the CSS settings used to display and a number of other configurations and you're good to go. Just add a link to the component in one of your menus or anywhere you like for that matter.

Using headers H1, H2 for Titles

By default the core installation of Joomla shows the page / section / category / content item as a <td> with a CSS style for contentheading. This is not the ideal scenario for search engines. Search engines would rather see H1s, H2s etc, and the difference to the user is invisible. Therefore, to override this we have to hide each Page Title. Instead of displaying the page title, copy the title to the editor, and change the stlye to H1. And now you have an HTML header as the title. This has a drawback that your titles become static, because they are actually embedded in the content, however I think this is a small trade-off for the SEO advantage that we gain.

One more thing...

Do you have friends or a Facebook group who you think would find this useful? Share this with them and then let me know what they think.

Want to supercharge your website?

 
Our website loads FAST ... just 1.29 seconds. We're hosted on FAST InMotion VPS servers We want YOUR website to be fast too, so we've gotten you an exclusive deal - 47% OFF for DART Creations friends + FREE domain! Check it out NOW!