The Ultimate Joomla SEF URL Guide

This is a 4 part guide to setting up your URLs correctly in Joomla.

It's just about the most detailed guide you'll find anywhere online, hence the name! We present you with the Ultimate Joomla SEF URL Guide:

Introduction: What Are Search Engine Friendly URLs

Very simply - they are URLs that contain information:

  • Is a a Search Engine Friendly URL: /joomla-training/
  • Is not a Search Engine Friendly URL: /index.php?option=com_content&view=article&id=25&Itemid=28

Part 1: Why Use Search Engine Friendly (SEF) URLs?

Better for Search Engines

Search for keywords in Google and they'll be highlighted whether they appear in the page title, description, domain or ... the URL. Check out this search for in Google:

urls1

In this SEOMoz study over 30 SEO experts were polled on the most important factors in ranking well. Coming in at number #6 ... "Keyword Use in Page URL"

Better for Humans

  • Imagine calling up your customer, asking them to visit a page on your site and telling them to go to example.com/index.php?option=com_content&view=article&id=25&Itemid=28. Pretty difficult, right? Much easier to ask them to go to example.com/about-us. People can understand that URLs, then can remember them, than can say them. They also get a very good idea of what the page is about.
  • Studies have shown that people are more likely to click through if they see these readable URLs in search results. 
  • These URLs can also act as a pathway to help people understand where they are on your site.

Better for You When You Move Your Site

The way I often try to explain this .... Imagine if you had a coffee shop with a steady stream of customers. One day you shut your doors and moved to the other side of town. Imagine how many of them would bother to travel the extra 20 minutes to visit you. Now imagine that you didn't even put a note on the door telling them where you'd gone. That's essentially what most people do when they migrate sites. They break all their URLs and often don't even bother to redirect them. From my experience, how people manage the URLs during a migration has a huge effect on visitors numbers:

  • Kept the same URLs: no drop in traffic
  • 301 redirects from old URLs to new: Around a 25% drop in traffic. (read one example here)
  • Broke URLs with no redirects: A 50% or greater drop in traffic

Now imagine how much easier it is to migrate /about-us/ and /contact-us/ URLs than it is to migrate URLs like this: index.php?option=com_content&task=view&id=37

What we're going to do now is show you how to create search engine friendly URLs in Joomla.

Part 2: How to Set Up Joomla's Search Engine Friendly URLs

When you first install a Joomla site, the URLs will look like this:
tutuploadsmedia_1285271037990.png
In order to improve those URLs, we're going to the Administrator area of our Joomla site. Click on Site then Global Configuration.
tutuploadsmedia_1285271084477.png

You'll now see a screen like the one below on the right-hand side:

tutuploadsmedia_1285271287966.png

Under "SEO Settings" there are three options. Here is how the three options will change your URLs if you set them to yes:

  1. /index.php/about-joomla
  2. /about-joomla
  3. /about-joomla.html

My personal preference is to check Options 1 and 2. I don't see the point of adding .html on the end of URLs because it makes them longer and besides: we're not building HTML sites any longer.

Much better, wouldn't you agree?

Where Do These URLs Come From?

Almost everywhere you go in Joomla you'll see a field called "Alias". This is basically means "URL".

If you don't fill it in, Joomla will automatically do it for you. It will clean up any usual punctuation and fill in in spaces with a hyphen.

If you do want to fill it in, you can choose your own URL for the page. One common reason for doing this is to have a long interesting title on the page: "Ten Great Reasons to Use Joomla's Search Engine Friendly URLs" but still have a short URL such as "joomla-sef".

Inside articles:

tutuploadsmedia_1285272109641.png

Inside menu links:

tutuploadsmedia_1285272132316.png

Inside weblinks:

tutuploadsmedia_1285272303043.png

Part 3: Troubleshooting Joomla's SEF URLs

tutuploadsmedia_1285271717090.png

Did that get your attention? Changing these settings is useful, but it is the most common way to cause temporary problems with your site. You'll know that you've made a mistake if your site start's looking like the image above.

However, don't worry, there's no real harm done. If you see this, immediately go back to Administrator >> Site >> Global Configuration and change all the settings to "No". Your site will be back to normal.

However, the solution is not always straightforward and each hosting company is a little different. Here are some ways to fix the problem. I'm going to put them in order - try the first solutions first then move on the trickier solutions if you still have problems.

1) Rename the htaccess.txt file

tutuploadsmedia_1285276503397.png

Login via a file manager so that you can access your Joomla files. You're looking for a file called htaccess.txt that is the main area of your Joomla files. You're going to do just one thing: rename that file from htaccess.txt to .htaccess:

tutuploadsmedia_1285276779443.png

Now go and check whether your URLs are working. If not, let's move on to the next step:

2) Check Your Server

This will check to see whether your server is correctly set up with a feature called mod_rewrite which, well ... rewrites your URLs.

1) Go to Administrator >> Site >> Global Configuration and turn on all 3 SEO settings. 2) Rename your htaccess.txt file to .htaccess as in the step above. 3) Next place only these following lines in your .htaccess:

Options +FollowSymLinks
 Redirect /joomla.html https://www.joomla.org

4) Point your browser to: https://www.yourdomainame.com/joomla.html 5) If it redirects you to joomla.org - then mod_rewrite is working. If it gives you an error - mod_rewrite is not working and you'll need to contact your host to get it setup.

Note: if your site is located in subdomain example "test" you need to insert in .htaccess as:

Options +FollowSymLinks
 Redirect /test/joomla.html https://www.joomla.org

That brings us to the next point:

3) Are You in a Sub-folder?

tutuploadsmedia_1285277393246.png

If your Joomla site is located in the sub-folder you may have another change to make. 1) Rename your htaccess.txt file to .htaccess as in the step above. 2) Find this line inside your .htaccess file:

# RewriteBase /
3) Change this line to remove the hash mark and include your folder name:
RewriteBase /subfoldername

If that doesn't work, you could also try simply removing the hash mark:

RewriteBase /

Part 4: Using an Extra Search Engine Friendly URL Extension

It is possible to get even greater control and flexibility over your Joomla URLs by using a extension. Be warned, these components will also introduce extra complexity, so you they are only recommended if you are in a competitive industry and rankings are very important for you. Most sites will be fine with the basic Joomla SEF URLs that we talked about above.

SEF URL extensions go from very simple to very complex. If you are moving an existing, well-established site to Joomla, you would be well advised to use one of these to mimic your current URL structure so that you can keep your URLs unchanged.

Joomla 1.5 SEO Extensions

  Ace SEF [-] Artio SEF [-] SEF Advance [-] sh404SEF [-]
SEF URLs The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
Metadata The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
No-Follow The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
404 Pages The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
Cross-Linking The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
h1 tags The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
Alt tags The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
Price The Ultimate Joomla SEF URL Guide Free with link, $19 without The Ultimate Joomla SEF URL Guide Free with link, 29 Euros without The Ultimate Joomla SEF URL Guide 40 Euros The Ultimate Joomla SEF URL Guide $37
Unencrypted The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide The Ultimate Joomla SEF URL Guide
Overall The Ultimate Joomla SEF URL Guide Very robust. Easy-to-use and has a medium number of options. Numerous plugins for other extensions. The Ultimate Joomla SEF URL Guide More features than SEF Advance, easier to use than sh404SEF. The Ultimate Joomla SEF URL Guide Less features but easier to use than the other SEF URL components. The Ultimate Joomla SEF URL Guide The most features but also the most complexity of all three SEF URL extensions.
Website Address https://www.joomace.net https://www.artio.net https://www.sakic.net https://dev.anything-digital.com

Add Embed Codes to Joomla Articles

How to Embed anything in Joomla

Update: we highly recommend the OSEmbed extension for embedding code in Joomla.

OSEmbed is the easiest way to embed anything in Joomla. Using just a URL, you can add YouTube videos, Google Maps, Facebook posts, Twitter tweets, Flickr images, Vimeo videos and over 60 other types of media.

OSEmbed really is the best way to embed everything in Joomla.

Read more: Add Embed Codes to Joomla Articles

Edit Your Joomla Site's Offline Logo

This is Part 2 of a series of tutorials on Joomla's offline page:

If you have a normal Joomla site setup, anyone can come along and visit. Anyone can browse around and see what you're doing.

However, what happens if you're building site for a client? You don't want the whole world to see. The same is true if you're developing a site for yourself and aren't ready to make it public.

To solve this, Joomla allows you to work on a site in private where only you (and your client) can see it? Instructions for doing that are here. This tutorial follow on from a simpler set of instructions showing how to take your site offline.

Video Showing How to Edit Your Joomla Site's Offline Logo

Step-by-Step Tutorial Showing Edit Your Joomla Site's Offline Logo

However, if you're expecting vistiors you might want to customize the login page so that it contains your logo and your information. Here's how to do it:

Change the Logo

tutuploadstutuploadsmedia_1285182376223.png

The default Joomla offline page has a large Joomla logo and the message "The site is down for maintenance. Please check again soon."

tutuploadsmedia_1285183985578.png

In order to to start changing the page, go to the Administrator area of your website, click "Site" and then "Media Manager".

tutuploadsmedia_1285184030120.png

Click the red X next to the file called joomla_logo_black.jpg. We're going to delete that file so that you can upload your own.

Here's the thing ... you must make sure that the file you're uploading is also called joomla_logo_black.jpg. If it isn't yet, rename it.

tutuploadsmedia_1285184322369.png

At the bottom of your screen, click "Browse" to find the image on your desktop. Then click "Start Upload". If your image had uploaded successfully you should be able to visit the front of your site and see the new logo.

tutuploadsmedia_1285184392948.png

Changing the Text

tutuploadsmedia_1285184468984.png

If you'd like to change the text that appears on your offline page, go to Site >> Global Configuration and you can edit two area:
- Offline Message
- Site Name

tutuploadsmedia_1285184503954.png

Click Save when you're done and visit your new offline page:

tutuploadsmedia_1285184569039.png

Remove Welcome to the Frontpage from Joomla

This is probably the most popular question we get asked by Joomla beginners setting up their first sites. "How do I remove the "Welcome to the Frontpage" text from my home page?"

Fortunately the answer is fairly simple (once you know it). Here's how to either remove or change that text:

tutuploadsmedia_1285178314187.png

Login and Go to Main Menu

tutuploadsmedia_1285178435809.png

Login to the Administrator area of your site and click "Menus" then "Main Menu".

tutuploadsmedia_1285178466178.png

Click "Home" in the list of menu items.

tutuploadsmedia_1285178503867.png

On the right-hand side, click "Parameters (System)".

There are two ways to fix this problem:
1) You can change "Welcome to the Frontpage" to something that matches your site.
2) You can set "Show Page Title" to "No" and just remove it entirely.

Introducing NUVO: Joomlashack's Latest Joomla Template!

NUVO Joomla template

This week we're proud to introduce you to our newest September Joomla template creation, NUVO!

Ultra-modern, sleek, powerful and designed to give you maximum control over the appearance of your site (without ever having to touch a line of HTML or CSS code), NUVO puts YOU in the driver's seat! Buckle up and have some fun. NUVO is waiting for you!

Read more: Introducing NUVO: Joomlashack's Latest Joomla Template!

Travertine, our Newest Joomla 1.7 Template

 

Travertine Joomla 1.7 TemplateNot one month after the launch of Joomla 1.7 and here it is:  our 20th Joomla 1.7 Template, Travertine !


Versatile, customizable, powerful and designed to give you maximum control over the appearance of your site (without ever having to touch a line of HTML or CSS code), Travertine puts YOU in the driver's seat!

Read more: Travertine, our Newest Joomla 1.7 Template

Understanding the Layout of the Bolt Template

Bolt is professional template that we provide free to our training students. It's simple, fast and loads as fast as a lightning bolt (hence the name!)

Because Bolt is not a complex template it's a great place to start learning Joomla template design. This tutorial will show you how to modify the column widths in Bolt. Hopefully it will also give you a good example of one method for creating flexible layouts:

Default Three Column Layout

tutuploadsmedia_1285001780347.png

The first thing you should know is that the Bolt template is 960px wide. That's how much space we have to work with. By default, there are three elements taking up that space - the left column, center column and right column,. They are controlled by only four CSS elements.

First of all we have the left div. This div is straightforward and the most important element is the width:

#left {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:160px;
 }

Next there is a second layer of CSS added to the left div. This only happens when there are three columns live on the site. The margin is 660px from the edge of the right column and actually controls the placement of left column. If this number were -770px then the left column would disappear off to the left-hand side of the site.

.threecolumns #left {
 margin:0 0 0 -660px;
 }

This is the CSS that controls the main body text. The left margin of 170px keeps the main body out of the way of the left column which is 160px wide.

.threecolumns #center {
 margin:0 10px 0 170px;
 width:480px;
 }

Finally we have the right column. This is even simpler than the left column - the main element is the width of 300px.

#right 
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:300px;
 }

Change the Right Column Width With Three Columns

tutuploadsmedia_1285002963912.png

We're going to reduce the right column size so that it is only 200px wide rather than 300px. Here's what we need to change.

Remember that the left column position is definited by its margin from the right column. So if the right column shrinks, we need to increase the margin if we want the left column to stay in the same place. Because the right column is shrinking by 100px, we're going to increase the margin by 100px from 660px to 760px.

.threecolumns #left {
 margin:0 0 0 -760px;
 }

Also, we're going to allow the center of the site to take up the extra 100px so let's increase its width from 480px to 580px:

.threecolumns #center {
 margin:0 10px 0 170px;
 width:580px;
 }

Finally, we actually need to shrink the right column from 300px to 200px:

#right 
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:200px;
 }

Change the Left Column Width With Three Columns

tutuploadsmedia_1285005808248.png

We're going to increase the left column size so that it is 260px wide rather than 160px. Here's what we need to change.

Remember that the left column position is definited by its margin from the right column. However, the controlling element is the left-hand side of the left column. That's not moving. Neither is the right column. So we can leave this part alone:

.threecolumns #left {
 margin:0 0 0 -660px;
 }

We do need to change the width of the left column. This is fairly simple: we just change 160px to 260px:

#left {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:260px;
 }

We're going to take that extra 100px from the center of the site so let's decrease its width from 480px to 380px:

.threecolumns #center {
 margin:0 10px 0 270px;
 width:380px;
 }

Finally, we can leave the right column alone:

#right 
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:300px;
 }

Default Left Column Layout

tutuploadsmedia_1285001895841.png

Whereas the three column layout can be tricky, the two column layouts are much more staightforward. We're just using simple widths for the two columns:

#left
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:160px;
 }

.leftcolumn #center {
 margin:0 0 0 170px;
 width:790px;
 }

Changing the Left Column Width

tutuploadsmedia_1285003398385.png

We're going to increase the size of the left column by 100px so let's increase the width from 160px to 260px:

#left
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:260px;
 }

For the center column we need to reduce the width from 790px to 690px in order to add that width to the left column. We also need to accomodate the left column by increasing the margin from 170px to 270px:

.leftcolumn #center {
 margin:0 0 0 270px;
 width:690px;
 }

Default Right Column Layout

tutuploadsmedia_1285002006873.png

Again, the two column layout is staightforward. We're just using simple widths for the two columns:

.rightcolumn #center 
 {
 margin:0 10px 0 0;
 width:650px;
 }

#right 
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:300px;
 }

Changing the Right Column Width

tutuploadsmedia_1285002140533.png

We're going to make the right column narrower by 100px. So in order to fill up that space, let's make the center column wider by 100px:

.rightcolumn #center 
 {
 margin:0 10px 0 0;
 width:750px;
 }

Now let's remove 100px from the right column.

#right 
 {
 float:left;
 font-size:1.2em;
 overflow:hidden;
 width:200px;
 }

User Meta Plugin Extends Joomla's User Fields

User Meta is a small plugin that allows you to collect extra information from your users.

Most solutions to this problem require you to install a large and complex extension. Although User Meta does require a little coding it is a small and lightweight solution. Here's how you use it.

Download User Meta

tutuploadstutuploadstutuploadsmedia_1284730825816.png

Go to Joomlacode.org and download the User Meta plugin.

Upload User Meta

tutuploadstutuploadstutuploadsmedia_1284730917614.png

In your Joomla site, go to Extensions >> Install/Uninstall and upload the User Meta plugin. Then go to Extensions >> Plugin Manager and enable the plugin.

Setting Up the User Fields

tutuploadstutuploadsmedia_1284734098149.png

Next, we'll go and set up our extra user fields. Open your file manager and browse to /plugins/system/usermeta/. Open the user.xml file.

What you'll see are the current parameters that users see. These are "Back-end Language", "Front-end Language", "WYSYWYG Editor for this User", "Help Site for this User" and "Time Zone for this User":

tutuploadstutuploadsmedia_1284734156732.png

Add Your Own Fields

tutuploadstutuploadsmedia_1284734376785.png

You can create your own parameters in here using Joomla's default system. It's the same plugin language used for all templates and extensions. I've chosen to use a radio button for this example, hence type="radio".

If you have any predefined choices you can save them using options as in the example above. When you save your user.xml file, go and login to the front of your site and visit the normal Joomla user account page. It should look like the image below:

tutuploadstutuploadstutuploadsmedia_1284732564632.png

Adding the Fields to Your Site's Registration

tutuploadstutuploadstutuploadsmedia_1284732447739.png

You can also add these fields to any Joomla layout page. However, it makes sense to add it to the registration form so you can collect this information when people join. All you need to do is insert: {UserMeta}. In order to use it in the registration form, I've edited /components/com_user/views/register/tmpl/default.php. The result is shown below:

tutuploadstutuploadstutuploadsmedia_1284732616218.png

 

Remember Not to Hack Core Files

If you do use this last technique for your site's registration, rather than hack the core registration file, it's best to just override it. Copy the file from /components/com_user/views/register/tmpl/default.php to /templates/your-template-name/html/com_user/register/default.php

Joomla's User Menu Links

One of our Joomla students was wondering what options they could set up for their site's users.

Joomla comes with eight different menu links for users to interact with. 6 of them allow users to control their account by logging in, registering or editing their account. The other 2 links allow people to submit information.

Here are the 8 links with the administrator view first (Menus >> Main Menu >> New) and then the front-end view that your users will see.

Default Login Layout - Allow People to Login to Your Site

tutuploadsmedia_1284151080898.png
tutuploadsmedia_1284151390192.png

Default Registration Layout - Allow People to Register on Your Site

tutuploadsmedia_1284151113151.png
tutuploadsmedia_1284151407652.png

Default Remind - Recover Your Forgotten Username

If you've forgotten your username for your account, Joomla will send a reminder to your email address.

  • If you've forgotten your email also ... you'll have to ask the site administrator.
  • If you are the site administrator and you've forgotten your username and email (!), try this tutorial.
tutuploadsmedia_1284151154838.png
tutuploadsmedia_1284151431507.png

Default Reset Layout - Reset Your Lost Password

Many people will use the same password on many sites (it's not a good idea, but people do it anyway). So for security reasons Joomla will create a new password for you rather than send out the old one. First, you'll have to enter a token that Joomla send to your email address.

tutuploadsmedia_1284151192280.png
tutuploadsmedia_1284151462052.png

Default User Layout - Just a Simple Welcome Message

To be honest, this is not much use. Sorry.

tutuploadsmedia_1284151231854.png
tutuploadsmedia_1284151586132.png

User Form Layout - Allow Users to Edit Their Account

If you'd like to turn off the bottom 5 dropdown boxes from Back-end language down to Time Zone, you can do that by going to Site >> Global Configuration >> System >> Front-end User Parameters >> set that option to "No".

tutuploadsmedia_1284151262602.png
tutuploadsmedia_1284151656269.png

Article Submission Layout - Allow Users to Send in Articles

tutuploadsmedia_1284151929152.png
tutuploadsmedia_1284152163133.png

Web Link Submission Layout - Allow Users to Send in Weblinks

tutuploadsmedia_1284152106961.png
tutuploadsmedia_1284152211537.png

Using Firebug to Edit Joomla Templates

UPDATE: Firebug is not supported anymore. Please try Dev Tools in Firefox, or Developer Tools in Chrome instead.

Firefox is a great browser for working with Joomla templates.

In another tutorial we covered the Webdeveloper plugin. In this tutorial we'll cover the Firebug plugin which allows you to debug and edit your template's HTML and CSS files:

Install the Firebug Plugin

tutuploadsmedia_1284144459090.png

Click "Install Firebug For Firefox". You'll have to restart your browser for the installation to finish. When it is over, you'll see an extra Firebug icon in the bottom-right of your browser.

Enable Firebug

tutuploadsmedia_1284144729647.png

Click on the icon and it will be enabled.

Reload Your Page

tutuploadsmedia_1284145028942.png

Refresh your page and you'll see Firebug starting to do it's work in a new panel at the bottom of your browser. There are lots of features in Firebug. We're going to use a couple that will allow us to analyse our Joomla template.

Use the Firebug Inspect Feature

tutuploadsmedia_1284145182073.png

In the bottom-left hand corner of your browser, click on the blue arrow. You should get a pop-up message saying "Click an element in the page to inspect". That's what we're going to do.

Click the Logo

tutuploadsmedia_1284145307193.png

Click on the Joomla logo. There will be a blue box around the outside. At the bottom of the page, you'll see Joomla's HTML layout on the left and its CSS on the right. We can see that the logo area is placed on the page using this HTML:

. We can also see that it's controlled by the CSS i div#logo

tutuploadsmedia_1284145350669.png

Edit the CSS

tutuploadsmedia_1284145653721.png

Put your cursor into the background CSS and it should pop-up as in the image above. You can edit any part of this. I'm going to choose to edit the image. I'm going to replace it with the Google logo: https://www.google.com/images/logos/ps_logo2.png

tutuploadsmedia_1284145692246.png

When you've done that, click your cursor somewhere else on the page and you should see that your change has taken effect:

tutuploadsmedia_1284145833414.png

OK, that's great, but the image is still too large. Let's go back to the CSS. I'm going to change the width of the logo to 498px and also change the height of the logo to 140px.

tutuploadsmedia_1284145897594.png
tutuploadsmedia_1284145929992.png

Refresh your page and you'll be back to the design. All those changes only took place in your browser. No-one else saw them.

Fixing CSS Problems

tutuploadsmedia_1284146338876.png

Imagine that I have a problem with the CSS in my template ... I'd like to change the color of my links. To get started, enable the Inspect feature and click on a link. The CSS will appear beneath. This image above shows all the CSS affecting the link, regardless of what file it appears in.

tutuploadsmedia_1284146509272.png

If you want to know where the CSS is stored so that you change it, Firebug will tell you exact file location and line number. However, first we need to make and test our changes. All you need to do is click on and change the color CSS:

tutuploadsmedia_1284146655488.png

I'm going to change #135CAE to #FF0000 and that will change all the links to red:

tutuploadsmedia_1284146772920.png