Myth: Joomla is Bad at SEF URLs

Joomla gives strong control over search engine friendly URLs - once you understand how it all works.

It can be easy to miss the ease of Wordpress's SEF options, until you learn the power of Joomla's aliases.Fact: Joomla can do SEF URLs in just two steps, provided the same features any other system would need.

I hear it all the time: 'Joomla can't do SEF URLs,' or, 'Joomla is inferior at handling SEF URLs.' Neither is true. It is true that you can't edit the exact URL for an article within the article editor, but that's because Joomla's SEF URL features are more powerful than such a method could handle. So instead, we have the ubiquitous "alias" field - which, when used in direct menu links, produces exactly the URL you want. You just have to curate them by hand, and in order to do that, you have to understand how they work.

Amusingly, this is cited as a point of inferiority. Users who want one button to a feature, can be put-off both by the learning curve, and by hand-curating URLs. To them, I say, don't hand-curate URLs, unless you must. Though large sites may wish for automation of drill-down URLs worth framing, the inclusion of item IDs don't hurt search rank one whit.


For those who don't know, here's how to enable SEF URLs in Joomla 2.5 or later:

  1. Login to the Joomla Administrator panel.
  2. Click Global Configuration.
  3. Take the site offline for testing by choosing Yes for the “Site Offline” option.
  4. Save the Global Configuration.
  5. Login to your web hosting.
  6. Rename the file “htaccess.txt” to “.htaccess” (dot at the beginning, with nothing preceding it).
  7. Go back to the Joomla Administrator, Global Configuration.
  8. Make sure you're on the Site tab.
  9. The top-right area contains an option for “Search Engine Friendly URLs.” Choose Yes.
  10. Also choose Yes for “Use URL Rewriting.”
  11. Save and Close the Global Configuration.
  12. You may need to clear Joomla's cache.
  13. Reload the homepage of your site - preferably the actual homepage, not a drill-down page.

In addition to these two options, make sure to rename htaccess.txt, to .htaccess. If this breaks your site, just rename it again and turn URL rewriting, off. Then, ask your web host why mod_rewrite isn't enabled.

In addition to these two options, make sure to rename htaccess.txt, to .htaccess. If this breaks your site, just rename it again and turn URL rewriting, off. Then, ask your web host why mod_rewrite isn't enabled.

You should now be seeing SEF URLs on almost all your links.

I can hear some people already: AHA!, they say, catching the "almost" in that sentence. The fault, however, isn't in Joomla. If you're seeing non-SEF URLs, it's probably because of an extension which doesn't take advantage of this new Joomla feature. Once the extension gets caught-up to the new feature, that extension will use SEF URLs just like Joomla's native features do.

There is one definite point of inferiority, however. You don't get actual control over the exact URL. Article ID numbers will appear in links, for example. This can be solved by adding a link to a menu. You need not publish the menu where this link sits. It does take some hand-curating and a little planning to get consistency from the method of using Menu aliases to micromanage URLs, however, so it's not recommended that you do this on a news site.

A simpler system like Wordpress can provide seamless perfection in its SEF URLs, because it only has two types of content to worry about, articles and pages. Joomla has several content types by default, and most front-end extensions add more content types. As the 3.X series of Joomla progresses, a more unified experience will emerge, both due to improvements in Joomla, and due to extension programmers catching up with the relatively-new SEF URL feature.