Joomla SEO: Basics & Checklist

I know there is a lot of information on my site, and I can image that this may be a bit too much for beginners, or you need a shorter checklist to see whether you have covered all steps. For those, I wrote this article. It only contains the basic steps needed to optimize your Joomla website for SEO. It is set up as practical as possible. Note that this page at new sites. For existing sites, you should also be careful not to change your URL's, which is what happens with some of the steps I describe. So, let's jump straight in:

I know there is a lot of information on my site, and I can image that this may be a bit too much for beginners, or you need a shorter checklist to see whether you have covered all steps. For those, I wrote this article. It only contains the basic steps needed to optimize your Joomla website for SEO. It is set up as practical as possible. Note that this page at new sites. For existing sites, you should also be careful not to change your URL's, which is what happens with some of the steps I describe. So, let's jump straight in:


Before you start configuring, I assume you have chosen a clever domain name, a reliable webhost (I can recommend Siteground) and a template that performs well in both SEO and performance. Also, it is crucial to spend some time looking for keywords that you could use in strategic locations on your site. And one more thing you should understand: we want to rank high, but we also want people to click on our links in the Google result pages. For this, we need to optimize both the Page title (1) and the Metadescription (2), as they will appear in Google:

serp google

Joomla Global Configuration

One thing that you should do first is to go to the location of your Joomla installation, look up the file called htaccess.txt, and rename it to .htaccess.

Then, assuming you already installed Joomla, go the Global Configuration screen, and fill in the required parameters. I only indicate stuff that might need changing. If the default is fine, I will not discuss it in this article.


  • Review your Site Name. Make sure it is short but relevant
  • Use URL Rewriting: Set it to Yes. This ensures the index.php string is removed from your URL's.
  • Include Site Name in Page Titles: Often a good idea (not always). Doing so prepends or appends the Site Name to you Page Titles.
  • Site Meta Description Contrary yo what is often said, I advise you to leave both empty, to prevent the risk of duplicate metadescriptions
  • Site Meta Keywords: Leave empty, this field is totally ignored by search engines

Next, go to the System and Server tabs for some performance options. First, set Cache to On – Conservative caching:


Next step, set Gzip Page Compression to Yes:


URL Routing

A bit hidden are the options for URL Routing. This sounds complicated, but just follow along: for new sites the described settings are best for clean URLs:

Go to the Articles overview and click on the Options button (upper right). In the Integration tab, you will see an option called URL Routing. By default, it is set to Legacy. Set it to Modern. After doing so, you see a setting called Remove IDs from URLs. Set it to Yes:

modern url routing 2

Article headings (<h1>'s)

Now, prepare your site for correct article headings (meaning the H1, H2 tags, etc in HTML). Your goal is to make sure that every page contains a correct H1-heading (only 1), corresponding to your main message for this page. In most cases, this will be the title of the Joomla article. You can achieve this by:

  • Creating a template override. This is often the best option, but it's a bit technical.
  • Use an extension to set the correct headings
  • Play with the article options, by switching off the display of the article title in the article options, and by typing in an H1 in the article editor.
  • Use the Page Display options in the menu-item for the article to set a correct Page Heading (article title should again be switched off)

If all this sounds to complicated, just skip it. This something that can be corrected at any time, without issues.

Metadata for individual articles

At this stage, your default global settings should be fine, and it's time to worry about your individual articles. Let's first look at metadata. Usually, when we talk about basic metadata, we talk about these 3:

  • Page title: This is the <title> element in HTML (used for the first line for your site in the Google search results). It is usually made up of either the article or menu-item title, possible preceded or appended with the Site Name (if switched on). Make sure the combined length is under 65 characters, while still being as relevant as possible.
  • Meta description: (used for the 2 lines of description for your site in the Google search results): This can be either filled in in article or menu-item, but preferably do it on article level. Maximum length is around 160 characters. Make sure you don't use both, risking article-settings being overridden by Menu-item settings. Only for stuff like blog- or list-views fill in the menu-item meta description. Basically: make sure every URL has a correct meta description
  • Meta Keywords: Do not use, Google totally ignores it

You can set your metadata in each article (under the Publishing tab), but you also find the same settings in menu-items (Metada tab). Note that metadata set in the menu-item overrides the metadata set in the article. In the beginning, I advise you to set metadata in the articles:

article metadata

Using an extension like OSmeta (or SH404SEF for advanced users) can help you to keep an overview and make further customizations.


Every image should be optimized for both SEO and performance. It already starts when you create the image on your PC: Make sure you give it a file name that is relevant for the image. If it is an image of a bird, name it bird.jpg, etc. Secondly, make sure you make it as light as possible. An image quality of 60% is often good enough for the web, and it can save you many kB's. Also, crop it to the exact size you will use it for. Also, there are dozens of optimization techniques you can use to save further kB's (, responsive images, bas64-encoding, etc.).

Then, while adding it to your Joomla article, make sure you add an alternative description for the image. If the filename is already relevant, you may use the JCE-editor, which simply takes the filename (without the extension), and uses it as the alt-text. In HTML view, this should result in something like this:

<img src="/images/image-xxx.jpg" alt="alternative description here">

Build a nice structure

Make sure you build a proper and logical structure, especially if you have a larger site. Subdivide your articles in categories and also make sure to properly open up these categories in the menu-structure. As an example, here on this site, I have categories for SEO, Speed, Extensions and Blog, and all are collected to a separate menu-item. It sounds so simple, but a proper structure is really the foundation for proper SEO.

Robots.txt file

This file helps Google and other search engines to understand the nature and content of your site. Robots.txt is provided by Joomla, but you may want to check whether it contains the correct values. For older sites, they may contain the following lines:

Disallow: /images/
Disallow: /media/
Disallow: /templates/

This blocks access for Google to folders that are relevant for understanding your site. With new Joomla installs, these lines are no longer active, but if you have an older site, make sure to remove the lines for images, media and templates.


Then Sitemaps. These help Google in indexing your site. Best is to use an extension for this. OSmap is perfect for beginners. Just install it and look up the URL for your sitemap: Go to Components >> OSmap and lick on the word XML:


The actual sitemap will open up. Copy the URL from your browser and rememeber it for Google Search Console (see lower down this page)

Avoid duplicate content issues

Duplicate content can be a real killer for your SEO efforts. Especially avoid linking the same article to multiple menu-items. 

Also something that can often be fixed quite easily, is to avoid access to both the www and non-www version of your website. Using some simple rules in your .htaccess file can easily fix this, making only one of those accessible, and routing traffic from the non-preferred to the preferred one. And, if you SSL, amke sure to enforce the https version.

Other means of avoiding duplicate content can be achieved with further .htaccess tricks and use of canonical URLs. Often this is stuff for advanced users. I see many beginners trying to use these, often doing more harm then good!

404 errors and pages

Avoid changing URLs in your website. If you rename an article or a menu-item, make sure to retain the alias, as otherwise your URL will change. If you do have to change this, make sure you create a so-called 301-redirect that leads the old URL to the new one. You can use the Joomla core Redirect Manager for this.

Also make your template displays a nice-looking errorpage to your users instead of the ugly default Joomla error page.

Leverage Browser caching for faster loading

This technique is a very simple way to enhance the performance of your site. Simply add some code to the .htaccess file of your website and any user who has once visited your site will have a much faster pageload on subsequent pages and visits. Also, this technique has hardly any serious drawbacks. Note this is a simple version, extend as needed:

<IfModule mod_expires.c>
expiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"

Further optimization of your website loading time should be attempted if possible. Again: there are numerous techniques, check the performance section of this site (especially about optimizing CSS and Javascript). Also pay attention to mobile performance.

Google Search Console

SEO is often a process of many small steps and optimizations, and there are many more steps to take, but for this I advise you to read the other SEO articles on my site, or read my book. However. One last step I definitely advise you to take is to register your site with Google Search Console. The process is pretty easy to do, and Google will instruct you of the steps to take. Especially with new sites, registering them speeds up the indexing of your site a lot! The one task within the tool you should absolutely perform is to submit the URL of your sitemap.

SEMrush is fully built and written by Simon Kloostra, Joomla SEO Specialist and Webdesigner from the Netherlands. I have also published the Joomla 3 SEO & Performance SEO book. Next to that I also sometimes blog for companies like OStraining, TemplateMonster, SEMrush and others. On the monthly Joomla Community Magazine I have also published a few articles. is not affiliated with or endorsed by The Joomla! Project™. Use of the Joomla!® name, symbol, logo and related trademarks is permitted under a limited license granted by Open Source Matters, Inc.
© 2021 All rights reserved.