Kevin's Guides
Decorative intro photo for: Chapter 11: Optimization for Search Engines & Social Networks

Chapter 11: Optimization for Search Engines & Social Networks

Write a comment

Optimize Joomla for Search Engines (SEO) and Social Networks

If your goal is to get as many visitors to your Joomla powered website as possible, optimizing your website for search engines and social networks is a must.

In this guide, you will learn about how search engines rank pages, how to optimize our content to display nicely in search results, how to make share links for Facebook or other social networks, and more.

Optimizing your content for SEO is important for many reasons.

  • Higher rankings result in more visitors, more conversions, more money for you.
  • Appearing in search results is free (though you can pay for a higher position).
  • Users are searching for your content. Draw in the people actually interested in what your site offers, rather than wasting money advertising to people who might not be interested.
  • No recurring costs, other than maintaining your existing, well-written content.
  • Invest more of your budget and time towards improving your website, rather than advertising.

I do not advertise Kevin's Guides at all. All the traffic comes from search engines, and I've seen traffic increase by several hundred visitors almost every month since I've started. As I add more written and video content, I can attract more visitors without spending a dime on advertising.

If your goal isn't to attract visitors, or your website's for internal company employee use only, you can disregard this chapter.

search logos

Search Engine Optimization

Search Engine Optimization (SEO) is a process by which we change our settings, content, and metadata to appease our corporate search overlords. We're optimizing our pages so they might rank higher in search results. We also provide important information to the search engine, so our pages appear nice when listed in search results.

For this guide, we will discuss page optimization for Google. The same practices still apply to other major search engines.


Traditionally, search engines would scour the web for pages and index them based on their keywords. A keyword is a piece of metadata listing relevant words or word phrases related to a particular page. Metadata is information in a page's source code that isn't visible on the page itself. Metadata is there to provide information to search engines, social networks, and other applications. It's not intended to be viewed as-is directly by the user, though you can if you view any page's source code.

After indexing a page's keywords, a search engine could check a user's search query and match them with whatever pages had the most corresponding keywords. Some basic search tools may still work like this, but all major web search engines have grown beyond this. Keywords are no longer used as part of search engine indexing. If you set keywords for a page, it will not affect how your page displays in search engine results.

That said, Joomla still has a place to attach keywords to your pages. This is useful because Joomla's internal search component, despite being called "Smart Search," isn't nearly as smart as Google or Bing. It's also used by the Related Article's module to display other articles on your site with the same keywords.

If you navigate to the publishing tab of any article and look under the metadata section, you will find a place to enter keywords. If you plan on using Joomla's search feature or the Related Articles module, then enter at least a few keywords with each article. Keywords are entered as a comma separated list, as is shown in the example screenshot. 

In this example, the article is about dog food brands, so I've selected keywords relevant to this. Now if a user searches for "dog food" using Joomla's search, the article will appear. If configured, it would also show up on a Related Article's list for any other article I write on dog food, provided the other article also uses the keyword "dog food."

The more articles your website has, the more specific you should make your keywords. For example, if your website only has 3 articles about dogs, the keyword dog will suffice. If your website is all about dogs and has many articles on them, you'll want to make your keywords more specific.

adding keywords

Page Content Quality

Since Google doesn't use keywords anymore, how does it index pages? It indexes pages based on the actual content of the page. The exact mechanisms of how Google's search algorithms work are not public knowledge. But we know the content of the page, or, more specifically, the quality of the page content, plays a role.

If you take a thousand frequently searched words and put them together on a page, you'll have a page that has a lot of commonly used phrases, but it won't mean anything. It would just be a page with a thousand random words trying to get attention from a search engine. Rather than looking at the words alone, Google's algorithms judge the actual quality of the content and determine how relevant the content is to the user.

Google's algorithms are advanced. Not only do they sort results based on their algorithm's perceived quality of the content, they also use data they learn about the user to order the search results. What appears first for one user might appear on the second page for another user, even if they enter the same search query into Google.

In order to rank higher in search results, write quality content. Use proper grammar. Write meaningful articles that make sense. If Google determines that your articles are useless, they will be treated as such. Don't just make click bait. When people search the web, they're looking for information. Provide good, well-researched information about the topics relevant to your website.

Page Optimization

Search engines also rank pages based on how they're optimized. Pages need to be fast, they need to be accessible, and they need to meet certain standards. If your site has nearly the same content as another site, but the other site is faster, mobile optimized, and easier to navigate, Google is going to direct users to the better-optimized website.

To optimize the performance of your website, implement the practices recommended in the previous chapter. This stuff matters to search engines.

Besides the general site performance optimizations, you should also follow the practices below when creating your content.

Heading Structure

Search engines pay attention to the overall layout of your writing. One key type of HTML tag they look at is headings. Headings are used to structure sections of your pages. For example, this sentence is under a heading that says "Heading Structure." 

You should always organize your content with headings above each section. If a page discusses multiple topics, each topic should be under its own separate heading. This not only helps search engines figure out what your pages are about, it allows users with disabilities to navigate content.

If you're not familiar with HTML, there are different heading levels, starting with the H1 (heading 1) tag. The H1 tag is for the most important headings, like the title of an article. You should only have one H1 heading on a page. If you're using the TinyMCE WYSIWYG editor to edit your articles, the H1 tag can be made by selecting the text, or clicking anywhere in a line of text, and then selecting the heading you want from the menu.

make headings

Do not use paragraph text and increase the font size to make your headings. This is not the same as using the heading tag. TinyMCE should say "Heading #" in the toolbar when your text cursor is in a heading.

All headings should follow a specific order, going from the largest heading (Heading 1 tag) to the smallest (Heading 6). Do not skip heading levels. If I want to create a subheading of my first heading, it should be in an H2 tag. If I need more subheadings under that H2 tag, they should be H3 tags. Don't skip right from H1 to H4 just because you think it looks nice.

The screenshot below shows how you might organize headings in an article about dog food. The title is an H1 tag, then it sorts dog foods by organic and non-organic (H2 tag), finally, the brands of dog food themselves are listed with H3 tags. Remember, this is just for demonstration. Really, each section should have a bit more content than this. 

headings example

 It's okay to go up and down in levels as needed, as long as no levels are skipped. The above example goes:

  • Heading 1 - Title of Article
    • Heading 2 - Organic Dog Food
      • Heading 3 - Brands of Dog Food...
    • Heading 2 - Non-Organic Dog Food
      • Heading 3 - Brands of Dog Food...


Making your site accessible to users with disabilities is important and affects your search ranking.

You should select a template that's mobile friendly and has buttons and links that are large enough to be easily clicked with someone's finger.

All images should have alt attributes. Alt stands for alternative. The alt attribute is a string of text that is displayed if an image cannot be loaded. It's also used for assistive technologies and screen readers, so users can know what an image is supposed to be of, even if they can't see it. If using TinyMCE and the Media Manager, there's an option to add "alternative text" or "alt" text to each image when you add them. Always put a brief description of the image in for every image you add. If it's a photo of mountains, write this in the alt text. The only time you don't need an alt attribute is if the image is for decorative purposes only, and adds to value to the content of the page.

If an image is clickable, contains a link somewhere, it absolutely needs an alt attribute set.

Joomla now has a built in accessibility checker. It will show you a preview of your page, along with any notes for areas that need improvement. If you forget to add an alt attribute, Just click the "Accessibility Check" button in the toolbar at the top of the article edit page for any open article.

accessibility check error Example of Failed Accessibility Check (Headings not using proper levels, no alt text)

Page Reputation and Other Metrics

Google also looks at how reputable it judges a page or website to be. The exact factors are not known, but the following factors may play a role. Many of these factors are out of your control. It will take time for your pages to be deemed reputable.

  • Amount of External Links To Your Site: How many other reputable websites link back to your website? The more reputable outside sources linking to your pages, the more Google thinks it can trust your site.
  • Domain Registration Length: How long has your site been around? How long is the domain registered for? Google believes sites whose domain names are registered years out may be more trustable than ones that expire after just a year.
  • Length of Article: A page with very little written content will not rank as high as a well written, longer article.
  • Topic Coverage: Articles that cover a lot of material in depth from an array of perspectives will usually rank higher than one-sided or narrowly written articles.
  • Content Updates: Your content needs to be updated regularly for it to remain relevant, so this may be a factor.
  • Affiliate Links: Pages with too many affiliate links may rank lower, or be considered spam/clickbait.


  • Use good, quality, detailed content on your website. Not junk.
  • Pick a good template and optimize your site performance.
  • Remember to set the alt attribute for all images used.
  • Use headings and order them properly.

Search Appearance & Search Metadata

Google will look for a few key pieces of information when displaying your pages in search results. You should care what your search results look like, as the more engaging and relevant they are, the more likely someone will click on them.


Google displays a headline/title above each search result it finds. It gets this information based on what the title element is set to in a page's HTML.

By default, Joomla uses the title of the article, or the title of the menu item you're looking at, to create the title element.

This is the one piece of information you have the most control over, as far as search results are concerned.

Give pages a title that's engaging, short, and descriptive. It should explain in a few words exactly what the page is about, so people can decide if it's something they're interested in quickly.

A guide on this website shows people how to set the favicon (new tab/window icon) for the Cassiopeia template in Joomla 4. This is what the search result for this page looks like when I search Google using the terms "changing the Cassiopeia favicon."

google search result for cassiopeia favicon page

As you can see, it displays the title of the page near the top of the result, the name of my website and the category the article belongs to, and a short snippet of text taken directly from the page. The title is the largest, most prominent part of the search result.

If you'd like, you can add the title of your website to the beginning or end of every page title on your website using the setting in the Site tab of the Global Configuration.

gconfig sitename

Meta Description

The next piece of information Google looks at when displaying search results is the meta description of the page. A meta description is a concise, relevant description of the page, limited to 160 characters.

You can set the meta description for a page in several places. For each article, you may set a meta description under the meta description field of the publishing tab. You can also set the meta description under the Metadata tab of any menu item.

Google's advice is to write a meta description for each page on your site.

If you set a good meta description, that's highly relevant to the page, Google may opt to use it instead of the snippet generated from the page content. You can view Google's official suggestions for writing meta descriptions in their search documentation

Robots Meta Options

The last important meta option you should review is the Robots option. This option tells search engines whether they should index your pages.

You may find this option in three places - The Global Configuration under SEO, the publishing tab under each article, or the Metadata tab under each menu item. The options do the following:

  • Index, Follow: Search engines will index and follow your page. This page will display in search results.
  • Index, Nofollow: Search engines will index the page, but they won't follow links on the page.
  • Noindex, Nofollow: Search engines won't index or follow your page. The page should not be shown in search results.

You may want to set certain pages to Noindex, Nofollow if they're lacking in content, temporary, or only serve very specific tasks. For example, I don't allow search engines to index my login form page, user profile pages, or donation page, since there's no reason for people to access these pages from search results. 

socials cardtop

Social Sharing

Another easy way to gain traction on the web is to add social sharing buttons to your website. Social share buttons allow your users to easily share your site's content on their favorite social networks with just a couple clicks.

Joomla does not include social sharing links as a core extension. To add social sharing links to your pages, you have a couple options.

Manually Add HTML

The first option is to add a share button manually. Social networks provide tools to make it easy to generate social share buttons for a given page. You can then copy the HTML code provided by these tools and paste them either in your article's source code or in a custom module.

This might be an option if you only need to add social sharing buttons to a few pages, but it will become tedious if you need to add them to many pages. The share buttons generated are per-page.

Here are some links to the tools you can use to generate social share buttons.

Use A Third-Party Extension

The better option is likely to use a third party extension. There are many you can check out in the Joomla Extension's Directory. They're usually modules or plugins. Some templates may have built in sharing features as well.

  • JED - Social Share Extensions
  • Stupid Simple Socials - A free module I made for this website. Includes social buttons for Facebook, Twitter, Pinterest, and LinkedIn.
  • Social2S Sharing Plugin - Adds social share buttons to the top or bottom of your content articles. Available in free and paid (29€, about $30 USD) versions.
  • Joomla Line Like - Add social buttons to the top or bottom of your content. Completely free. The developer appears to be Russian, and the translation in the settings needs improvement. Still, a good free option.
  • AMPZ Social Share - The best paid option, with extensive customization features. Starting from around $30 USD.

Remember, when using any third-party extension, test it extensively to make sure it doesn't break a feature of your website.

Social Metadata

Social networks provide developer tools which enable us to have greater control over what is displayed when users share a page on their networks. Facebook, for example, allows you to set which image gets displayed when a page is shared. If your page contains multiple images, it might select the wrong one, or a less-important image. So configuring this is important. In some cases, you may benefit from creating an entirely custom image specifically for when someone shares your page on Facebook.

Facebook Open Graph

Facebook reads a set of metadata, collectively referred to as Open Graph (OG), from your page to discern certain information from it. This data then shows up whenever someone posts a link to your page on their Facebook feed.

It's highly customizable. With Open Graph metadata, you are able to set:

  • Title: The title displayed in the feed post
  • URL: The link to the page
  • Description: A short description of the content
  • Image: The specific image to use

There is no way to set Open Graph metadata in Joomla by default. You will have to use a third-party extension to enable this functionality. If you don't add this metadata to your pages, Facebook will try its best to guess what to include. Without the data, you have no control over what information Facebook selects to use, and people may be less inclined to visit your page.

If you don't add the OG metadata, Facebook will use the page's title and the description set in your meta description box under the publishing tab of each article. Note that the metadata set under the publishing tab is different from the OG meta data. If you have the OG description set, Facebook will use the description from the OG metadata rather than the regular description metadata. The image used is usually the first large image from your article. This may or may not be the most relevant, or properly sized image for Facebook feeds.

The best extension I've found for adding Facebook metadata to articles is Tagz - Open Graph. There's both a free and a paid version. The free version has all the functionality you need to manually add and customize OG metadata with each of your Joomla articles. The paid version has more advanced features, like bulk metadata creation, but the free version will suffice for many use cases. It supports setting metadata for Twitter as well.

og exampleSharing the Chapter 1 page on Facebook

Open Graph Image Size

When selecting an image designed to show up in Facebook feeds, it will support any image size. That said, some sizes work better than others. Here are the suggested dimensions for images you add to your OG data.

  • Landscape: 1200x630 - Looks better in desktop feeds.
  • Portrait: 630x1200 - Looks better in mobile feeds.
  • Vertical: 1200x1800 - Looks best in mobile feeds.
  • Square: 1200x1200 - Shows up nicely in all form factors. A good happy-median for desktop and mobile viewing.

Twitter Cards

When you share a page on Twitter, it will be displayed as a "card." Conveniently, Twitter reads the same open graph metadata properties as Facebook does. They do have a few additional fields you can customize just for Twitter, if you'd like to link the page to a specific Twitter account.

If you set metadata for the following properties, Twitter will read them and add them to cards for your page.

  • Twitter Site: The Twitter username for your website account, if you have one.
  • Twitter Creator: The Twitter username for your article's author account - if they have one.
  • OG URL: The page URL, taken from Open Graph metadata
  • OG Title: The page title, taken from Open Graph metadata
  • OG Description: The page description, taken from Open Graph metadata
  • OG Image: The image to be used on the card, taken from Open Graph metadata

Since Twitter and Facebook both use Open Graph, my suggestion is to use the Tagz - Open Graph extension for adding both Facebook and Twitter metadata to your Joomla articles.


You should now understand the importance of optimizing your website and content to appear nicely in search results and on social media platforms.

Remember, making these optimizations can increase your site traffic without the need for a huge marketing budget. Make sure you optimize your website's performance and implement these practices in order to gain traction.

It may take several months, but as long as you continue to offer well-produced and meaningful content, your audience will grow.

Write comments...
You are a guest ( Sign Up ? )
or post as a guest
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.

Related Guides

Front End User Content Editing in Joomla
Learn how to setup your Joomla website for authors, editors, and publishers to work on articles.
Sorting Articles With Tags (Tag Management)
How to use tags to sort articles in Joomla 4.
Building Multilingual Sites in Joomla
How to configure Joomla 4 to support additional languages in the frontend, backend, and your content.
Stupid Simple Socials Module
Easily add social sharing buttons to your Joomla content with this free module. Supports Facebook, Twitter, Pinterest, and LinkedIn.
Managing Media in Joomla 4
Learn how to use the media manager to add videos, images, and more to your Joomla articles. Includes how to embed YouTube videos.
Chapter 5: Categories
How to organize articles into categories in Joomla 4.
Main Menu
Kevin's Guides
Full size image will appear here.