While working on my own website looking for the right balance and SEO options the initial task was mind-boggling, to say the least.
Most articles said that for the right SEO you spend a lot of time for the least amount of gain they are right to some extend.
I do enjoy tweaking everything from my PC to mobile phone and hence my website as well.
While I did find useful articles that gave me a greater insight none were just the right article that covers Joomla SEO.
This is where this article comes in, I will show you my route to a 99% PageSpeed score and a 98% Yslow score.
Remember SEO can be boring with little short-term gain, the gain is long term and a better user experience.
While this article covers SEO for Joomla CMS it can be used as a source for other variants of CMS's and websites.
The big difference will be you will need to find some modules/plugins that are built specifically the CMS you are using.

What is SEO?

Just covering the basic of what SEO is there are plenty of articles on the internet that will cover this in debt.
But to understand what SEO does and means for you some of the basics for you to digest.
SEO stands for Search Engine Optimisation, in layman's terms how to optimize your site to be digested by search engines.
The better your SEO score is the higher you will rank among sites that compete for your market share.
Running a blog or online shop you will end up competing with someone somehow and somewhere.
Whether you post idea's, experiences or you are selling a product you want to reach out to the right people.

The basics of SEO.

The does and don't of SEO, there are some practices that are heavily advertised on the internet regarding SEO.
When caught in the act you will get a penalty and the likes of Google tend to remember those offenders for a long time.
Whatever you do stay away from so-called "black hat" practices like a contagious decease.

Black hat & no goes of SEO.

  • Stuffing of meta-tags relevant or not, never exceeds 20 meta tags.
  • Hiding random text stuffed with keywords like using a white text on a white background.
  • Pay for links to your site also known as link farms.
  • Involvement in a PBN, Private Blog Network resulting in linking loops.
  • Posting your website link on websites and blogs that are not relevant to your content.
  • Certain SEO tools that claim to offer automated link building.

Good SEO practices.

  • Content is king, quality of the content you serve is key.
  • Use your social media to gain exposure to your content & backlinks.
  • Try to use SEO writing, the hardest learning curve of SEO.
  • Guest writing on websites with a higher authority.
  • Correct use of HTML markup such as header text.
  • Using a CDN, Content Delivery Network.
  • Enable Gzip on your server.
  • SEO friendly URL's also known as SEF.
  • Prevent broken links, basic maintenance of checking linked content.
  • Minify HTML, CSS and Java scripts, reducing page size increasing loading speeds.
  • And then some, I will go through the above in greater detail below.

Diving deeper into SEO.

As listed above their SEO involves everything you use while managing a website.
The server(s), content, programming languages, getting natural back links to your website etc.
You can take my word for the black hat SEO practices if not please feel free to google for more information.
Now it is time to get down to the nitty and gritty of SEO and go over everything from A to Z in detail.
If you want to have a sneak and peak of your actual SEO score I use this website for my score tests called GTMetrix.

Preparing your server for SEO.

Once you have installed the basic Joomla, added some of your content and select your template you have the framework to kick of SEO.
The core of your effort will be your server it will be vital to get the right settings depending on the host most settings will be set from the get go.
There are several settings that need to be checked if not set to have the best settings and those all start server side.

The first part is the robot.txt file this will point and set rules for the crawl bots that are used by all search engines.
You can allow and disallow access to files and folders using this handy little text file.
Joomla sets these settings for you, for the most part, I did not change anything with allowing or disallowing.
There are however 2 vital settings that need to be added, first pointing the robots to the URL your sitemap is located.
Copy and paste: Sitemap: into robots text file.
The .xml and robots.txt should be in the main directory unless you want separate files but those are really not needed.
For most servers, this is /public_html unless you installed Joomla in a different folder ensure the right location for your files for it to work properly.
Next is a simple pointer to the URL you want to use this is either or
Copy and paste: Host: into the robots.txt so the robots will see the preferred URL markup your site should be archived under.

Next up is the .htaccess file for the larger part Joomla has added some rules and for SEO you might need to add some rules or change them where needed.
However before you start editing make a backup, I can not state this clear enough make a backup because this file can make your life miserable.
You can get the original if you do not have a backup by downloading the full Joomla .zip file and use that if you can not find it at all or forgot to make a backup.
While it is rare you want to check that you can use the .htaccess file for SEO, check out this article to check whether your host is capable of using the .htaccess file.
Now you can start to make your edits remember rules are set unless they have a # added in front or behind them, there also used a spacer and to point out information.
For browsers to see how long they can store files in the browser cache unless files on the server are updated you need to add some code to inform the browser.
The caches are handled by the browser there is not editing required but the browser needs to know how long it can keep the files, not too long and not too short.
Copy and paste the code below or change the time periods but these base values are SEO optimized.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"

The next bit of .htaccess is a security portion and yes security is something that falls under SEO rules.
When adding this line you plug a small security leak that allows for certain exploits to gain illegal access to your server.
If you are using a server where you can access the actual apache configuration such as have a dedicated hosting machine you want to read this part.
Copy and paste the code below as is, it is SEO optimized.

## Misc Security ##
ServerSignature Off

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* ? [F,L]

The next part is setting up the server for the nice and so much needed clean URL's, this is part of the SEF part where you SEO Joomla from the back end.
Clean URL's are craved by search engines since they give a clear picture what the page is about by using in the most cases title of the article or file name.
Scroll down to the part that says ## Mod_rewrite in use. and make sure that you uncomment by removing the # in front of RewriteEngine On.
This will prep your server to parse SEF settings later on in the Joomla administrator backend and this part also you need to add a rewrite to an URL make up.
You can access your web page through several combinations with URL make ups, HTTP:// or with www. the code here will force a browser to use one markup.
All traffic will now point towards a single URL makeup you can also replace the HTTP:// with https:// if you have an SSL certificate.
Copy and paste the code below you can change it around to the URL make up of your taste and the URL you will use in search engine webmaster tools.

## Mod_rewrite in use.

RewriteEngine On

rewritecond %{http_host} ^ [nc]
rewriterule ^(.*)$$1 [r=301,nc]

Scroll all the way down you will find the final rule that must be uncomment to enable SEF look for RewriteBase / and remove the # in front.
There is no need to edit any more items or add more coding now you need to save the .htaccess file.
Ensure you have a copy of the .htaccess this file is now ready to be uploaded again or saved directly on the server.
One final action must be taken while this is on the server for the .htaccess to work and starts doing it's magic, click on the file on your server.
Remove the.txt from the end and place a .(dot)at the beginning so the file is called .htaccess and the server can read the file to deploy the settings.

Preparing Joomla for SEO.

For this part, we need to dive into the back end of Joomla you probably have guessed you need administrator rights to gain full access.
Part of SEO is the web page loading speed and the size of the pages especially the landing page, your main URL: in most cases.
To ensure you have the best loading speed refrain from installing modules and plugins you won't need or don't use if that is the case remove these.
They tend to clutter the calls your web page makes on the server slowing down the loading process reducing your SEO score.
Even modules and plugins that are not in use could potentially leave clutter on your web pages so remove them if you do not need them.
For some SEO work, I only had to use 2 modules/plugins that will aid in a better experience, robots access, and loading speeds.
There are other modules and plugins I have tested these two giving me the best experience you could test out other modules or plugins if you wish.
The first plugin/module is called Aimy Sitemap it will crawl your Joomla content and index it into a sitemap.XML you later must submit to search engines.
Crawl robots will have an easier time indexing your website and you can assign priority number giving an indication to the robots the importance on your content.
The second module/plugin is called Jbetolo it does optimization of your Joomla framework for you by minifying HTML/CSS and javascript, compression and correct headers.
Resulting in faster loading speeds of all your content and clearing up some of the Joomla framework resulting in a higher SEO score.

Now to start from the top the biggest portion is located in the Global Configuration panel under System on your right-hand side you see the SEO Settings.
Preparations have been made for this portion by editing the .htaccess file, set Search Engine Friendly URLs, Use URL Rewriting and Adds Suffix to URL to YES.
Save & Close these settings now go to Extensions --> Plugins and type System - SEF plugin enable and save this plugin to finish the SEF settings.
This will rewrite your content URLs to something like you can test this by browsing the front end of your website.
Below that is the Cookie settings, the pain is too much over the gain thus I will not cover these settings furthermore the SEO score will not benefit greatly from it anyway.

Open System --> Global Configuration and the left-hand side you have Site Settings here are some site Meta to fill out, describe your website in the Meta Description.
Add your Meta Keywords you can use several words and space but close the keyword with a, to add the next Meta Keyword remember to use no more than 20.
It will look something like: your name,site name,content 1,content 2,location 1,location 2 also worth mentioning try to have at least 10 Meta Keywords.
Google has lowered the weight of scoring for Meta Keywords but it is still widely used so having them is handy either way.
Right below that is the Robots option make sure that is set to Index, Follow so Joomla does not block access to your content unless wished otherwise.

Staying in the Global Configuration panel we move on to the system there are several settings that need your attention both have a high SEO score weight.
The Cache Settings set Platform Specific Caching to YES and System Cache to ON - Progressive caching you can lower or increase the Session and Cache Time if you wish.

Moving to the next tab called Server there is HTTPS option if you have HTTPS certificate and you can get it for free with CloudFlare a CDN provider.
The CDN portion I will cover further down in this article it will have an impact on SEO so having HTTPS is a good idea and you can for free so that is even better.
Then there is one final option called Gzip Page Compression you turn this on, reducing content size for people browsing your website greatly.
Gzip has a nice weight on SEO score as well and it will reduce resource usage by browsers this will help if you run on a resource-stretched server.
Error reporting can be turned off while testing out your settings but when you are done and satisfied you can turn this off, it can be useful for finding errors if any occur.

Next up are the above-mentioned plugins, go to Components to find Jbetolo and Aimy Sitemap.
Jbetolo works out of the box for me you can just turn it on by selecting the Status to drop down menu and select Enabled.
You can tinker with the options but the out of the box settings work perfect and you will get little gain from tweaking them further.
Aimy Sitemap is also very easy to use it is a couple of clicks and a short waiting period while this module crawls your site and gather all the content.
Remember this is a crawling bot as well so will adhere to the robots.txt file you prepared earlier when setting up the server.
Just to give you a short run down if you feel overwhelmed, Crawl Website it will return data you need to select the content you want in your sitemap.
This is done by select them left-hand side of the Manage URL's menu, you can also assign priority to each item if you wish.
Make sure to select top right side a number of items displayed to all it does not remember items selected when moving to the next page if you do.
Change frequency I personally have set to daily even though that is not the case but this way I have the bots frequently visiting the XML file to read content.
When you are done with setting the above options to your liking ensure you click Write Sitemap this will generate the sitemap.xml in your site root.
Next, you can click Notify Search Engines this will ping 3 search engines that you have created a sitemap, Google, Bing, and Yandex.
The URL will be when you did not change that option: this file must be submitted to search engines under the webmaster tools.

Search Engine Webmaster Tools.

The 3 main search engines that have the largest market share have a special backend for webmasters where you can monitor and digest website details from the search engine side.
Here you can also add your sitemap what results in a better crawl rate and indexing of your website besides the robots.txt file on your server root.
Search Engines give a high score to sitemaps with the right markup even more so one that has been submitted on the webmaster tools backend.
What are the difference between the sitemap pointed out in the robots.txt and the sitemap submitted directly to a search engine is that you need to proof ownership of the domain.
There are several ways of having ownership verified a common way is uploading an HTML/XML file to the website root another one is adding a record to the DNS registrar.
Search engines give a high rating to content served through the sitemap from the webmaster tools since this is confirmed content with ownership details giving credit to the content.
It will not negate the rest of the SEO rules, you still need to serve good content and use good SEO practice overall.
Make sure to register an account so you can make use of all features and submit your sitemap to each search engine, you can submit the same sitemap to each and all search engines.

After confirming ownership you can submit your sitemap from the Aimy Sitemap module it will take up to several days for the first crawl to happen.
More time is required for statistics to be displayed such as backlinks, keyword search results and crawl statistics for each search engine.
In the meantime, there is a website I like to use with some handy SEO tool called use this to check your keywords, another SEO score checker among others.
There is a backlink maker tool there as well, that I want to highlight it will submit your website URL to various website SEO and information sites such as these are good backlinks.
The only reason I took the plunge so to speak is because I know this website has solid tools and does not recommend or uses black hat SEO tricks that will get you a penalty.

CDN, Content Delivery Network or Content Distribution Network.

Using a CDN will gain you a nice chunk of SEO score with Yslow vastly increases your page loading speed and increased security with a shared SSL.
For my website, I am using CloudFlare what offers a single site with free services with an option to buy a subscription on a monthly basis.
A CDN will store the content of your website over a cloud network of data centers and then serve the content to the end-user from the closest data center.
You will have to create an account with CloudFlare in order to use their services but the first URL will be free if you have more websites add them on another free CDN service.
Important to remember that the SSL certificate will take up to 24 hours to be issued to your site do not enable HTTPS links in Joomla and the .htaccess file.
If you already own an SSL certificate you can also use that throughout the CloudFlare CDN service make sure to check your settings.
The process of adding your website to the CloudFlare service is a click by click process the only real effort is pointing the name server to those of CloudFlare in your domain registrar.
Two name servers will be displayed that you need to add in your domain DNS registrar, most likely your host provider CloudFlare has examples of most hosting company's.

SEO Writing.

Writing in itself is an art to top it off you need to write in SEO in sort that means you need to sprinkle in keywords and your tags throughout the article you are writing.
While doing all that you need to ensure you do not overdo it, there is really no way I can show you as I am currently even as I am writing this article a student regarding the subject matter.
This will be a skill you will pick up over time experienced writers like journalist will have much easier time being a good SEO writer.
SEO writing is not going to put you on the first search rank on every keyword it will make it easier getting there especially over the long run since the quality content is king.
But at the end of the day, you are still writing for humans and not for robots the user experience itself must not be lost another key factor to consider as an SEO writer.


Getting links to your site is a process you that will take time with good content you could become a reference or your content is shared among the social webs.
Cross promotion can also serve you well and exchange links on the same content with other websites to gain backlinks,
Posting on relevant forums and websites will also help you gain backlinks but ensure that the content from websites and communities align with your website.
Gaining good high-quality backlinks will take time and you will have to keep adding good content to gain links without having to ask for it and for robots to find the links.

Final Words.

Complete this process will take some time and when you are done remember to head back to GTMetrix to check your SEO Score.
I hope this article is helpful in gaining the top search position related to your site and remember to link my article I could use the backlinks for sure!

Paul Ripmeester