WHMCS SEO Module • The Definitive Guide
There are many wrongful convictions in WHMCS community around Search Engine Optimization. Before talking about SEO in WHMCS, it is good to focus on facts and debunk myths.
Plenty of modules promise improvements in search rankings with so-called SEO enhancements. In reality they provide poor results or use technologies no longer in use since 2009. In some cases they even do more harm then good.
Furthermore, from an SEO perspective the design of WHMCS is poor. It is great as a web hosting panel to start a hosting business but it doesn't follow basic rules of visibility. It even prevents indexing and causes duplicate content which is bad for rankings on search engines.
This guide focuses on fundamentals of Search Engine Optimization. It also puts the spotlight on flaws of WHMCS that make the impact of any SEO tactic insignificant and shows how you can overcome these problems.
If you are new to SEO, we know that it feels like learning another language. To help you understanding all new terms we're throwing at you, we compiled a SEO glossary with definitions.
|SEO||Stands for Search Engine Optimization. It is the process of getting traffic from organic search results|
|SERP||Stands for Search Engine Results Page. It is the web page served to users when they search for something|
|Average position||Numerical order in which Google displays your links in the SERP|
|Organic traffic||Visits to a website coming from SERP. It is the opposite of paid traffic generated by paid ads|
|Impression||Number of times your page appears in the SERP|
|Click||Number of times users have clicked on your links that stay inside SERP|
|CTR||Stands for click-through rate. Is the percentage of impressions that resulted in a click. 100 impressions and 5 clicks is equal to 5% CTR|
|Bounce rate||Percentage of visitors who enter the site and leave rather than continuing to view other pages|
|New visitors||Visitors navigating to your site for the first time on a specific device|
|Returning visitors||Visitors that have visited your site before within the past 2 years|
|Sessions||Interactions with your site within a given time frame (eg. page views, shares)|
|Internal linking||Links that point to pages on the same domain like this one: mistakes to avoid in WHMCS|
|Backlink||Link that points from one website to another. They are the holy grail of SEO since they can boost indexing a lot|
|Keyword stuffing||Overusing keywords on pages in an attempt to increase site's ranking. It's a bad practice that can cause a search penalty|
In WHMCS everything involving SEO is nothing more than a string of claims not supported by proofs. You can't just say «Double your visitors», «Improve positioning» with this or that plugin. One should back up every claim with evidence.
To this end we're going to show you a case study example based on our own WHMCS site. This same site you are reading. Keep in mind we recently posted the full case study where you can find more details. Today's statistics are way better!
We achieved the following in a time span of 3 months using Mercury and writing less than 10 articles.
|Average Position||+24%||New visitors||+230%|
|Organic traffic||+224%||Returning Visitors||+224%|
|Click||+247%||Bounce Rate||-57% (less is better)|
We underline that there was no marketing strategy behind this. Articles have been published as soon as they were ready. Nothing was shared on social media. This was just an average WHMCS "as is" with mid-quality content that had no SEO enhancements before.
Let's start with the basics. Probably the most important metric is organic traffic that comes free of charge. Here is the comparison between the last 3 months (blue bar) vs the same period of previous year (orange).
Ovbiously the number of clicks (blue) and impressions (purple) reflects this change.
Don't get us wrong. SEO doesn't magically happen. You can't do much with low-quality content and pre-written articles. Yes, we're talking about ready-made Knowledgebase articles you can purchase online and ones that have been copy-pasted from other sites.
It is worth to say that it's pretty normal that CTR has decreased. Our site had bad rankings. Basically the only way to find us on Google was to type our brand name and so the higher CTR. If I google "katamaze" I'm very likely to come here.
Right now the site ranks on several highly-competivive keywords hence the lower chances to get clicked but that's not bad as we're receiving more traffic. And now here is the 3-months comparison (same period of the previous year).
If you are interested in knowing more about how our rankings are evolving, continue reading how we increased traffic by 306%. Let's move on to discuss about the various elements that constitute a well thought out SEO website.
Years ago I would have said that content is king in SEO but things have changed over the past decade.
An amazing content about a topic, no longer grants high ranking on search engines. Writing quality content takes a significant amount of time, effort, expertise and skill. That's not enough for nowadays standards. You also need to work on SEO.
We'll share with you some content writing tips. It may sound obvious, but keep in mind that you're not writing for algorithms but for people. We're saying that because too often sites pump out poor contents for no real reason.
You don't just sit down and start writing. First you should ask yourself where you want to establish as an authority.
Choose your topic and make a list of contents that address the needs of your audience. In the same time, note down related keywords to include in your articles. This will drive more traffic and naturally attract backlinks.
Speaking of links, as you write contents connect them building internal links. This way search engines understand the structure of your website. They can also establish a hierarchy, allowing you to strengthen your sales funnel.
Stay focused on writing and don't do keyword stuffing. Use descriptive anchor text when linking and don't overuse the same exact text.
Figures suggest that search engines are more willing to rank higher pages with a minimum of 1500 words. To put things into perspective, it is approximately equal to 6 pages of an actual book. That doesn't mean you have to think it as a rule.
Use images, formatting, tables and lists to make everything look more visually appealing. No one likes to read a wall of text. This is not always possible especially for technical articles. The key is not to break the rhythm of your text with long paragraphs that tends to put readers off.
Enrich your content with HTML tags like h1, strong, em.
When a search engine's crawler comes across your content, it looks at the HTML tags to determine how to categorize the material. This opens up a whole new chapter that we will discuss in a dedicated article. Till then, we recommend you to:
- Don't underestimate header tags that go from h1 to h6
- Use alt attribute for images
- Learn the importance of rel="nofollow" attribute
- Understand the difference between b and strong, i and em
Titles are the second most important factor for SEO after page content. Writing effective titles could be hard if you don't know what works and what doesn't. In this field details that can make a significant difference.
Titles are important also for Open Graph Protocol that is widely used on social media (Facebook, Twitter, LinkedIn...) and for Structured Data.
Titles are relatively easy to write but in the same time have an high impact on SEO. That's why this chapter is very extensive. The bad news is that WHMCS doesn't allow to get relevant benefits from titles but we'll discuss it leater.
Some characters take up more space than others. For example "W" is wider than "i". If the width of the title exceed a certain number of pixels, search engines may cut it. This could end up omitting important words from your title. To avoid this problem, just stick to the following rules:
- Keep the title less than 60 characters
- Avoid ALL CAPS titles
- Don't capitalize the first letter of common words
The best place to hide a dead body is page 2 of Google. We're all a little lazy and unwilling to scroll too far down. This also applies to titles. Imagine how many potential customers look for "cheap hosting" on Google everyday. Look at the following examples.
|Search terms "cheap hosting"|
|Cheap Web Hosting | 99% Uptime with SSD & Backup|
|99% Uptime with SSD & Backup | Cheap Web Hosting|
|Reliable Unlimited Disk Space Cheap Hosting Fast Connection|
At first glance, visitors are more inclined to click the first link. That's because search terms are at the beginning of the title. As a general rule you should always put important keywords closer to the beginning of your title.
Inflating your CTR percentage slightly can make a significant difference in the number of sales. Before placing keywords in your titles, remember that keyword stuffing kills your SEO.
|Cheap Web Hosting | 99% Uptime with SSD & Backup Italy|
|Cheap Web Hosting | 99% Uptime with SSD & Backup Germany|
|Cheap Web Hosting | 99% Uptime with SSD & Backup New York|
|Best Hosting Cheapest 1000/Mbps Unlimited Free Bitcoin|
Such titles look very unnatural and can cause severe problems. Visitors are going to be annoyed when they come to your site and realize that you've tricked them to get them there.
As for search engines, they don't fall prey to these tricks and can detect when you're trying to cheat. The consequences range from penalties for your site to removal from search results.
Stop focusing on yourself. Make an extra effort to write titles that are pleasing for your potential customers. Probably as a provider you value storage technology a lot but maybe visitors don't care. They're looking for a cheap hosting and not for the difference between SSD and HD. If you want them to click on your links, give them what they're looking for.
We're not saying that you can't describe your company, but you should approach the topic at a later stage. You can dig deeper into any these subjects on dedicated articles.
Use services like Google Search Console to determine what search terms your audience uses the most and how your site performs in SERP.
If you have a strong brand name, adding it to your titles could increase CTR but there are few things to consider.
Title tag has a limited number of characters available so use it wisely. For example it doesn't look good to add your brand name twice. It's a waste of valuable space. Not to mention that search engines don't like repetition of same words.
For contents that are meant to be shared online (eg. blog posts), it's a different story. It is best not to use brand name since it could discourage people to share your content. Similarly on public forums your URL could be marked as spam.
On the other hand if your brand is not that strong, you could save that space for keywords.
Search engines love variety of contents so bad that the use of same titles on pages drive them mad. We know it's hard but each page must have an unique unique and valuable title.
WHMCS doesn't help. It uses the same meaningless titles across multiple pages decreasing CTR. For example all Cart pages are named "Shopping Cart" and registration page is "Register".
None of your potential customers is looking for "Shopping Cart" on Google. Similarly no one looks for "Register". Turn them into something like "Start your website" followed by relevant keywords. Use products names and groups for cart pages.
Meta descriptions can help your ranking on search results. Many WHMCS modules implements them. Some are popular and inexpensive but we have to address some misconceptions.
First off, meta descriptions can be added to any WHMCS in approximately 2 minutes. A single line of HTML and a Smarty variable is all it takes. That's not even a script. I don't get why people buy modules to do such a simple thing.
Second, these modules claim to improve your rankings but this is false. Meta description is not a ranking factor. It's a brief summary of a page that shows up in search results. It doesn't affect your rankings but CTR. Good descriptions attracts visitors but before you can get there, you need months of A/B testing.
The problem is that many in WHMCS community think of meta description like something that magically grants a medal from Google. That's not how SEO works. Owning car doesn't make you a professional race car driver. Similarly, having meta description doesn't rank you on the first page of Google.
Third, meta description serves no purpose in WHMCS. WHMCS is so terrible at SEO that it doesn't allow to get any befefit from descriptions. Before you can get something from it, structural changes are required. We'll talk about it later, but now let's focus on how to write effective descriptions.
The optimal length for a description is 160 characters but search engines could show longer ones depending on the situation. For example Google shows longer descriptions when search terms are specific. That said, it's recommended to keep them long enough up to 320 characters but never go lower than 160.
Unlike titles, descriptions are not a ranking factor. Search engines don't use them to rank your site. Descriptions are for people hence they should sound compelling and natural.
There's no need use keywords here since they're been already used for titles few pixels above. Focus on writing high CTR and low bounce rate descriptions.
Similarly to page titles, avoid having duplicate meta descriptions. This is especially true for pages that have really important return of investment.
It is worth to say that Google can sometimes create descriptions for your pages. It occurs when a page doesn't have a description or uses one that is duplicated. Google can also decide change your description in case it feels that it is not effective.
That being said, don't let Google define your meta descriptions since they're made taking few lines of text from your page.
It's unbelievable that many in WHMCS community still think of meta keywords tag as a SEO tactic. Some still advertise it as a SEO enhancement. The truth is that this tag has been deprecated by search engines more than a decade ago.
This topic is so controversial that merits explanations. Anyone can claim keywords like "best hosting", "cheapest hosting". There's no moderation. Anyone can stuff out of context and pretentios keywords to obtain unethical advantages. As you can imagine, in a short time this tag became a "spam competition". That's why search engines no loger consider it.
There are no keywords in this world capable of ranking your site higher than your competitor. Meta keywords don't play any role in rankings. As opposite, it can be cause of penalties on search results so get rid of it.
Have you noticed that sometimes a link on Facebook automatically pulls a title, image and description? It happens thanks to OG tags, a technology conceived for social media.
The purpose of OG tags is to improve the shareability of your content on social media. They can also double social engagement if every page is set to have a featured image. Images in fact are more successful at driving clicks. Lastly, OG tags help saving time. All it takes to share a link with title, description and image is one copy/paste.
Now imagine the benefits when people share your content online. OG tags in fact work also when your link is shared on social media by fans driving more traffic to your site.
Guess what? WHMCS doesn't support Open Graph Protocol, descriptions and featured images but don't despair. This same article is written on WHMCS with Open Graph Protocol support thanks to Mercury. It's a module we developed to use WHMCS as CMS like WordPress.
JSON-LD, also referred to as Structured Data and Schema Markup, is a technology that enables search engines to better understand the content of a website which could lead to better ranking. Simply put, it allows them to display content in brand new ways.
Google calls them "Snippets". If you manage to get your content displayed here, your site will attract the vast majority of users. In fact people are more willing to interact with snippets. They're basically free advertising space.
The bad news is that (you know that is coming) WHMCS doesn't support structured data. Moreover it can't be implemented since, similarly to Open Graph Protocol, WHMCS doesn't meet the requirements. Luckily we implemented Structured Data for WHMCS in Mercury.
Something that has always bugged me about WHMCS community is the cult of SEO-Friendly URL.
Yes, an URL that includes keywords instead of parameters improves you site's search visibility. While it's worth implementing them, URLs are a minor ranking factor.
No matter how hard I tried to explain it over the years in WHMCS forum. Some people want friendly URLs like if they're made of gold. That's why one day WHMCS staff decided to please them implementing SEO-Friendly URLs.
When WHMCS introduced friendly URLs, everyone except us was happy. That's because most people were focusing on what they can see but very few noticed greater invisible flaws to the eye. Let's see the before/after comparison taking Announcements as example.
We can agree all agree on the fact that the second link is an improvement but you should see the whole picture. SEO is not all about URL rewrites and a rewritten URL doesn't grant better rankings.
On the contrary in WHMCS such "nicely made" URLs have been implemented in a way that could result in indirect penalties on search results due to duplicate content.
Duplicated content is content that appears on the internet in more than one URL. It can negatively affect your rankings and dissipate your potential in organic traffic.
Search engines will rarely show multiple versions of the same page. This dilutes the visibility of each of your duplicates. In a nutshell duplicate contents is like competing with yourself.
In this respect, WHMCS is a duplicate content generator. Let us show you a quick example with an announcement.
Further URLs can be invented on the fly. The article always opens:
A competitor could exploit this flaw to rank your site as "trash" by spreading URLs like these ones:
Basically WHMCS compromises your rankings without even knowing it. Every announcement can be reached from an unlimited number of URLs. As result, duplicate content is everywhere on your site.
Keep in mind that this defect is not limited to Announcements but applies also to standard URLs.
To avoid exposure to this problem, you have to prevent people from using made-up URLs. Let us show you how it should work taking as example an article of our documentation.
Any attempt to open the article from made-up URLs, results in a permanent redirect to original link. Click on links to try:
Exploiting categories results in a redirect to the root of documentation like follows /docs/aaa/47/summer-promo.
That's how friendly URLs should be implemented. You can't just focus on having a nice URL while you're killing your SEO with duplicate content.
What we just showed you is part of Mercury hence this big problem with WHMCS SEO-Friendly URL has been solved already.
Duplicate content is bad but sometimes you legitimately need to place a parameter in the URL for things like pagination and filters. Let's see some examples.
The above URLs are considered duplicate content (yes, URLs are case sensitive) but there's a way to move forward.
We need to explain to search engines what is the canonical URL for the page (news.php). Sadly WHMCS doesn't help. It is the responsible for duplicate content so for sure it can't be the solution.
If you inspect this page you'll notice that we're already using Canonical URL in WHMCS still thanks to Mercury. This way we don't have to face duplicate content issues.
It's nice that visitors on WHMCS can change language on the fly but this system has a big flaw. It's based on PHP session. Search engines don't use sessions when crawling pages. That means that WHMCS is indexed in default language only.
It looks terrible and in fact it is. Imagine the feeling when you find out that all translations can't seen by search engines. This includes multilingual titles and meta descriptions that took you weeks of work.
To index multilingual versions of your site you have to use different URLs for each language version of a page. Let us take our site as example that is based on WHMCS. Below you can see how we deliver multilangual versions of pages.
|WHMCS Modules|| https://katamaze.com/whmcs
|Billing Extension|| https://katamaze.com/whmcs/billing-extension/specifications
|About us|| https://katamaze.com/about-us
We use multiple domains with WHMCS (katamaze.com for english and katamaze.it for italian) but we could have used also an alias like it.example.com. As result, we have different URLs for different languages that search engines can find and crawl.
This also gives us the opportunity to specify site's target locale. On Google Search Console and Bing Webmaster Tools we target Italian audience on katamaze.it while katamaze.com is used for the rest of the world.
Moreover Mercury allows the use of IP Geolocation in WHMCS to apply contry-specific rules that affect user-experience depending on location.
WHMCS doesn't follow this principle and sticks to PHP session. As you can imagine, writing titles and meta descriptions in multiple languages is a waste of time.
As the name suggests, a sitemap is an XML file that contains a list of all the pages on your website. It tells search engines where is your content and how to reach it assisting crawlers in faster indexation. The sitemap also tells them where are new pages, what pages have been updated and their language.
Don't be tricked to think that sitemap affect the actual ranking of your site. It's just an aid that gives more information about your site to search engines.
Without a sitemap you're just waiting for search engines to find your pages hoping that they do it in a reasonable amount of time. Unfortunately this is what you are subjected to with WHMCS. Not only it has no sitemap but its structure doesn't allow to create one that makes sense.
Before you can get there, WHMCS needs radical improvements. There must be no more issues with indexing, duplicate content and multi-language. As we've already solved such problems, we managed to integrate in Mercury a Sitemap Generator for WHMCS.
It's a small piece of HTML that is on top of every website. It helps search engines to determine the language of the page. From a system like WHMCS that ignores the basics of SEO, we can't expect the proper use of HTML lang attribute. In fact WHMCS assumes that the langue of the page is always "english".
We solved the issue with this piece of code. Mercury uses it to change WHMCS HTML lang depending on language in use.
It's clear that SEO and WHMCS are on two different planets. You can't improve rankings with "cosmetic" changes. A bunch of SEO-Friendly URLs, meta descriptions and action hooks are like a drop in the ocean. It isn't going to work, WHMCS needs substantial improvements.
The good news is that Mercury offers professional-grade SEO tools. It has all features we mentioned in the article:
- IP Geolocation to offer custom user-experience depending on location
- Multi-domain and Multi-brand ranking stategy
- Multilingual titles, meta descriptions, HTML Lang attribute for any page
- Sitemap generator with multi-language support
- Open Graph Protocol to improve shareability on social media
- SEO-Friendly URL
- Canonical URL
- JSON-LD Structured Data
And much more:
- Lab (feature requests, bug reporting, comments, votes)
- Estimated wait time for a ticket
- Changelog for software release
- Live Demo to let customers try your software before purchase
The module includes also our technologies:
- HereLang to translate contents on the fly
- SorTables for data visualization
- Improved fields with MagicInput
This module enables you to use WHMCS as CMS. There's no need to integrate WordPress, Joomla or Drupal anymore.