Who Has Better SEO? WordPress or Joomla?
There are hundreds of WordPress vs Joomla SEO blog posts on the net every year. These blog posts usually focus on comparing certain features that one CMS has over the other and is usually geared towards plugins and extensions. Most WordPress vs Joomla posts you find on the net are used for link bait and traffic to their website. These posts are just regurgitated content written by hired content writers that have no real world experience using either platform for actual clients or their own business. There have been others that mention WordPress vs Joomla SEO differences too, and those are all 100% based on the opinions of the author of the post and not backed by any proof to substantially qualify their claims.
We decided to test the SEO of both WordPress and Joomla as they come “out of the box” in a head to head test. This test will hopefully put to bed all the theories that are spread throughout the world every year by the so called SEO’s that just guess at everything they do. So let’s put this to bed right now and get on with the test results and how we did it.
The idea behind this test was to determine if there is an “out of the box” SEO benefit between WordPress and Joomla content management systems without using any plugins/extensions. This test could possibly determine if Google favors one CMS over the other.
WordPress vs Joomla SEO Test Video Presentation
You can subscribe to our channel here https://www.itdwebdesign.com/Subscribe
My Pre-Test Assumptions
I thought I should document my assumptions up front about what I believe the test results could ultimately show. My initial thoughts based on many years of experience working with both Joomla and WordPress and SEO in general boils down to 3 points. These are my personal predictions.
- Due to their simplicity, I “think” that all 4 HTML websites will rank above the CMS websites.
- I have a fair assumption that WordPress could possibly edge out Joomla, but not the HTML websites.
- Although Joomla has a few more SEO settings and features in the core application than WordPress does, I think Joomla could come in at last place.
Will I be right? There’s only one way to know for sure. TEST IT!
We used a fake keyword that was not in Google’s database so that we could accurately test the websites against each other in an isolated search result. This way only our URLs would show up for this keyword.
I reached out to a fellow SEO tester, Kyle Roof from the SEO Intelligence Agency, to get some advice on how he would set up the test and validate if I was setting this test up properly. After taking his recommendations into account here’s what I decided.
Keyword = xzsaelueqzowd
For the URLs we decided to register 6 new domains.
In order to have something for the CMS sites to benchmark against, we also used a set of 4 identical HTML websites to be our “control” sites. Having a total of 6 sites allows us to have a larger pool of sites to measure the outcomes.
Each of the 6 domains were an exact match domain for the keyword with the only difference being a,b,c,d,e,f added to the end of each domain in order to keep them as consistent as possible.
- xzsaelueqzowda.com – HTML Control Website – Bootstrap 4 Bare Template
- xzsaelueqzowdb.com – HTML Control Website – Bootstrap 4 Bare Template
- xzsaelueqzowdc.com – HTML Control Website – Bootstrap 4 Bare Template
- xzsaelueqzowdd.com – HTML Control Website – Bootstrap 4 Bare Template
- xzsaelueqzowde.com – WordPress 5.1 Website – Twenty Nineteen Theme (core)
- xzsaelueqzowdf.com – Joomla 3.9 Website – Protostar Template (core)
- In order to have some consistency in the HTML control websites I used a very basic Bootstrap 4 template to ensure mobile friendliness to compare to the default WordPress and Joomla themes.
- All sites used the exact same content on each home page. (331 words 2,113 characters)
- Each site included the keyword as the H1 tag.
- Each site had the keyword used as the site title.
- Each site’s home menu items were renamed to be the keyword and was a hyperlink.
- All sites were hosted on the exact same hosting package.
- Server was Apache LiteSpeed running PHP 7.2 at a Singlehop data center in Chicago.
- All sites were non-secure protocol (http).
- Due to the fact of WordPress not having meta keyword and meta descriptions without the use of a plugin, all other sites did not use these to keep it a fair comparison.
- So with the site title, H1 tag, and the menu item, the keyword was mentioned three times on each website homepage.
- None of the websites included any sub pages, only homepages with identical content.
WordPress Specific Settings
- Version: 5.1.0
- Default Theme: Twenty Nineteen
- Site Title is the keyword
- No tagline used
- For the homepage I simply made a standard page and entered the raw html paragraphs into the code view. I did not build the paragraphs using the Gutenberg editor in order to ensure the page code was clean and no other markup and classes were included.
- All widgets were removed
- Footer code was removed from the Twenty Nineteen Theme to eliminate variables of the test having external links and real words in the footer.
Joomla Specific Settings
- Version: 3.9.3
- Default Template: Protostar
- For the home page I created a standard Joomla article. I then pointed the homepage menu item to use this article. For that menu item’s parameters I disabled any meta information such as category, author, dates, etc so that only the title and content was displayed.
- All modules were removed
- SEF URL’s were enabled in the global configuration settings. Joomla SEF Settings
- Footer code was removed from the Protostar template to eliminate variables of the test having external links and real words in the footer.
What did the WordPress and Joomla websites look like?
Here’s what each sites visually looked like. Nothing special. Just plain website homepages.
STATIC HTML SITES
The Test Results
As I got started I wondered what other factors could I benchmark with these websites while I have them set up. So I figured what the hell, while I’m at it let’s test the speed of these sites while we are at it and see where they shine and fall short. So we went over to GTmetrix.com and checked the speed of each website.
There was not any caching enabled for any of the websites and absolutely nothing was optimized at all. I fully expected the HTML site to load faster than the CMS websites simply due to the CMS overhead included in those sites.
HTML SITE SPEED TEST RESULTS
WORDPRESS SITE SPEED TEST RESULTS
JOOMLA SITE SPEED TEST RESULTS
Google Search results
This post will primarily focus on the Google search results but we will also address Bing and Yahoo results as well.
The first thing we did was entered all 6 websites into Google Search Console and submitted each URL to be crawled. Here’s a screenshot only 20 minutes after submitting to Google Search Console.
The middle 3 sites were bouncing up and down and all over the place. However the top and bottom sites were the most consistent.
But wait, weren’t there 6 sites? Here’s where things started to get a little complicated.
The HTML Site “C” never made it into the index because Google flagged it and selected a canonical URL to the Joomla (F) website URL. This is interesting because the sites were submitted to be crawled in search console in alphabetical order (A through F) and all URLs except “C” showed up in the results in the order they were submitted in about the same amount of time (5 to 6 minutes each).
I would have assumed Google would have selected one of the other 3 HTML sites with the identical code base to be the canonical. And since the canonical is to the Joomla website URL (F), it might be a factor for why site “F” is outranking HTML site “B” and the WordPress website (E) in this early stage.
I knew that Google had the ability to select canonical URLs on a single domain in order to handle duplicate content on multiple pages within that single domain. However I was taken back that it also did this between separate domains and that it happened not long after HTML site “C” & Joomla site “F” were submitted. I almost didn’t catch this in search console and I kept submitting site “C” to be indexed a few times and wondering why it was not showing up in the results. There was not any clear message that stood out about this so you have to pay attention to what is going on in the discovery and Crawl areas below the URL submission field.
Search console kept telling me for website C that the “URL is not on Google”.
Even though site “C” was removed from the keyword search results, if I searched for the URL directly, Google did display the snippet. So the site was in fact indexed and in the Google database. It was just not included in the keyword search results.
Running SEO Audits
Just to make sure there were no “hidden” issues I ran a website SEO audit scan using our WebSite Auditor software on each URL. All of the SEO audit scans came back nearly identical with no issues or red flags so I was confident that we would have a very clean and competitive test.
The results remained the same for the next hour before I finally gave up and went to bed for the night.
The Next Morning
So the next morning I checked Google to see if it had settled and it appears to have finally stabilized the rankings. All of the HTML control sites were listed at the top (except for site “C” that Google decided to canonical on it’s own).
I was still not convinced with these results as I was still not 100% sure if the canonical for HTML site “C” to the Joomla site “F” was a factor for Joomla being ranked above the WordPress site “E”. So I needed to get that canonical from site “C” removed so we could eliminate that variable. I needed to be 100% sure of the accuracy of the results.
So I was like, “Game on Google! Let’s do this!”
In my attempt to get Google to remove the canonical, I figured if the page content was updated to be different from the other sites (unique) then, in theory, Google should remove the canonical when the site is resubmitted. So I replaced the ipsum text with a different set of ipsum with the same word count and same amount of paragraphs. I left everything else the same.
Then in search console requested that site “C” be recrawled.
Then I waited to see what Google would do with HTML Site “C”. I figured since the initial crawl request was completed within 5-6 minutes when the sites were first submitted to be crawled it shouldn’t be a long wait.
I waited about 15 minutes. No change.
And I waited some more… After 25 more minutes still no change. So I requested the crawl again. (Yes, I’m impatient)
Then I waited even longer…….ZZZZZZZZZZZZZZZZ!!!!!!!!!
After an hour of waiting, I was like WTF! Then it hit me like a sledgehammer to the forehead! GOOGLE CACHE!!!
So I needed to remove the HTML Site C from the Google cache so that the new content would be shown in the results.
To do this I went to the following URL:
And then I started the waiting game, AGAIN! At this point I was at the mercy of the Google que.
And after about an hour there was a new updated message in search console.
After reviewing the reason for the denial it “somewhat” made sense why it was denied.
“The content you submitted for cache removal appears on a third-party page.
As you may know, most information in our search results is actually located on web pages that are not owned by Google. Even if we removed this page from our index, the content in question would still be available on the web.”
However, even if the content is duplicated on a 3rd party website, what the hell does that have to do with this website being cached? Whatever Google! I was back to square one with getting HTML Site C reindexed.
I resubmitted the URL to be recrawled AGAIN in search console. This time it appeared to work. The canonical was removed, and search console showed that it crawled the new content from the HTML Site C homepage. Hallelujah!!!
Now it was just a matter of waiting for Google to also include HTML Site C in the rankings for our keyword. The old content was still showing up in the results snippet when the direct URL was searched so I figured this would take some time before Google updated the search results snippet and included the site in the keyword search results.
I again requested a new index for site C just for the hell of it.
I checked the status again a few days later and all HTML websites had been removed from the index and an automatic canonical had been sent to site “F”. There is not any obvious logic as to why site “F” was selected to be the canonical.
Bing Search Results
We were also curious about what Bing thought of this test. So we entered each URL into our Bing Webmaster account and verified each site. Then we submitted each URL to be crawled. After waiting 12+ hours we checked the Bing search results for our keyword.
It was disappointing to find that all 6 sites were not displayed in the Bing search results. After clicking on the link that states that some results (ALL) have been removed it was clear that Bing handles sites with low quality ipsum content much differently than Google does.
“Some pages captured in the Bing index turn out to be pages of little or no value to users and may also have characteristics that artificially manipulate the way search and advertising systems work in order to distort their relevance relative to pages that offer more relevant information. Some of these pages include only advertisements and/or links to other websites that contain mostly ads, and no, or only superficial, content relevant to the subject of the search. To improve the search experience for users and deliver more relevant content, Bing might remove such search results, or adjust Bing algorithms to prioritize more useful and relevant pages in search results.”
Yahoo Search Results
Just as we suspected, since Yahoo fetches search data from Bing search engine, Yahoo also displayed no search results for our keyword. But I was very tempted to buy a vacuum and a new suit so I can look good while cleaning my house.
When I set up the domains for this test I was curious about whether or not the a, b, c, d, e, and f at the end of the URL would play a role in the ranking order. This was why we have 4 HTML websites as the control sites. I wondered if the domains would rank in alphabetical order. However it was not the case with the 3 HTML sites that did rank as they were in the following order: A, D, B.
It is obvious that testing multiple domains in this manner is a real challenge. There is a very limited window to see how Google reacts to a website that has identical content.
My lingering questions are:
Since each site was submitted in search console and indexed in alphabetical order, then site “A” is the first website that should have been seen as the originating author. So why is it that all 4 HTML websites received and automatic canonical to site “F”? Why is the WordPress site “E” the one that was omitted in the search results?
One Final Tweak
One final test was needed in order to set my mind at ease. I had to know for sure that the ranking positions between WordPress and Joomla were not just an unexplained anomaly.
So since the WordPress website was currently ranked in second place I wanted to see if I could get it above Joomla into first position with only one change to the text.
So I added the keyword as the first word in the first paragraph of content. This means that the WordPress website now has the keyword mentioned in 4 places on the page instead of only 3.
I then requested the site to be recrawled and waited.
30 minutes later we checked and the site had been recrawled. I noticed in this new result that Google set a canonical for the URL to itself.
Also the change we made to the content by adding the keyword did not make any difference.
Conclusion Of Test #1
So here we are at the moment of truth. Were my original pre-test predictions correct?
Here is a screenshot of the final Google Search results of our WordPress vs Joomla SEO test.
Given the amount of blog posts that I have read over the years about everyone saying that WordPress is better for SEO than Joomla, I was a bit surprised to see that Joomla ranked higher than WordPress in this test. It is definitely not what I expected to see. It’s clearly not the case when you compare the core applications as they come out of the box with no plugins, extensions, optimizations, or other advantages.
So as far as THIS WordPress vs Joomla SEO test goes, here are the ending results.
- First Place = 4 HTML Control Websites (Before being completely removed from index due to duplicate content)(I have to rate the HTML sites in first place because they were consistently above the CMS websites before removal from the index)
- Second Place = Joomla CMS (Ended in first place and all canonicals from HTML websites pointed to site “F”)
- Third Place = WordPress CMS (Indexed but omitted from results)
What Did We Prove?
Honestly? NOTHING!. I would honestly say that this first test is inconclusive. Why? Because I believe I should have never used the HTML websites as “control” websites. I think they caused more problems that good because of the canonicals they received, I am now left with questionable results. It could be that the Joomla site is only on top because of the other HTML websites having a canonical pointed to it. Who knows?
So I ran a second test without any HTML control sites and used a completely new keyword. I figured this second test would surely confirm or challenge the first test’s outcome.
Test #2 Without HTML Sites
Keyword = hweoxsvnsnavanasdjsdg
Domains: (keyword with a & b added to the end)
- hweoxsvnsnavanasdjsdga.com (WordPress)
- hweoxsvnsnavanasdjsdgb.com (Joomla)
The second test was the same as the first one with only the domains and keywords changed and there were not any competing HTML websites.
This time I tracked exactly how much time the domains took to show in the index.
- Site “A” (WordPress) was submitted in search console to be crawled at 12:57pm. It shows in the index at 1:02pm (5 mins)
- Site “B” (Joomla) was submitted in search console to be crawled at 1:03pm. It shows in the index at 1:06pm (3 mins)
Ironically the WordPress website was omitted again once the Joomla site was indexed even though it was indexed first.
Keep in mind this was immediately after indexing. So I waited a couple of days and checked again to see if there was any change. Nothing had changed.
Final Conclusion Of Test #2
I think that given these results, and given that the WordPress website was submitted, crawled, and indexed first, I think it should have had a slight advantage over a site with identical content being submitted afterwards.
So in test #2 I think it is assumed that Joomla is the winner. Is it? I am still not sure. Maybe there are other methods of testing this scenario that I did not think of. I am very open to suggestions.
Let me also remind you of our GTmetrix scans in the beginning where WordPress had a slight edge over Joomla.
It appears for some reason that Google is favoring the Joomla website however there is not any clear evidence why this is happening. Now that I have run this second test I am willing to say that Joomla core has a minor SEO advantage over WordPress core as they come out of the box in a head to head test such as this.
We’re Not Done Yet
But wait, there’s more! I feel I have to mention a few things about these tests that could have produced a much different outcome. And everything I say from this point on is only my personal opinion based on experience and not tested fact. So take it for what it is worth.
As for out of the box SEO features and flexibility regarding SEO, I believe that Joomla core definitely has a huge advantage over WordPress core. Here’s a few reasons why I believe this,
- Joomla has more global settings for SEO in the core such as URL rewrites, prefered website version, and appending the site name into the title of each page.
- Joomla has keyword meta and meta descriptions at both the menu and article levels. WordPress does not have either of these.
- Joomla has a natural content and URL structure that is easy to manage with categories and menu item levels for creating content silos. WordPress requires manual manipulation in order to create content silos.
Now it might appear like I am favoring Joomla over WordPress. But that is definitely NOT the case. If I were to take SEO plugins and extensions into the factors, WordPress would be my clear preference when it comes to SEO. Why?
- I believe that due to the size of CMS market share that WordPress has, it has a bigger advantage over the amount of available quality SEO plugins that are available. These developers have more users and customers and have more money to keep developing better software products. The commercial Joomla extension ecosystem has been dying a slow painful death for many years and those developers simply cannot afford to produce features at the same rate as WordPress developers have the luxury of doing..
- The quality of SEO plugins that are available for WordPress are much better than anything that is available for Joomla. I have used a ton of Joomla SEO extensions over the years and none of them can compare to the quality and development of features of plugins such as Yoast, WPSSO, and others.
- WordPress uses only content slugs for their URLs. Period! Menu items have no effect on the URL structure. However, Joomla uses aliases from both menu items and articles which produces very inconsistent URL results.
- WordPress allows you to move a menu item to a different level or even a different menu altogether without it affecting the URL structure. With Joomla if you do this your chances of creating a 404 error is extremely high because menu aliases and menu item levels affect the hierarchy of the URL structure.
- WordPress menu items do not have the natural ability to affect the URL structure, it is less likely to produce duplicate content URLs. Joomla can have many menu items with different names pointing to the same article, which can easily produce multiple URLs to the same content. With Joomla you must really know what you are doing to prevent this but it is not as intuitive as WordPress. Many of my own clients that use Joomla constantly have this issue and it negatively affects their SEO.
- WordPress does not seem to produce nearly as many dynamic (non-sef) URLs as Joomla does. I have consistently seen many Joomla sites with hundreds if not thousands of indexable dynamic URLs. WordPress typically produces much less of these types of URLs.
With that being said, I think each CMS has advantages that differ from each other and it just comes down to your own personal preference. If you are comfortable and proficient with managing proper SEO with either system then it really doesn’t matter which one you use. Especially if you are using plugins and extensions. It literally just comes down to your own preference and comfort level.
What do you think? Leave a comment and let us know.
I was invited to join the “SEO This Week” show on Youtube to discuss my test. The Co-Host, Ted Kubaitis, had some great suggestions for additional tests. I will be doing some additional testing to “remove the anvil” from the test variables. You can see the discussion start at the 44 minute mark if you want to skip ahead.