The Case Against Joomla’s “Redirect” Extension

Almost a decade ago, we explained how Joomla’s Redirect Manager extension works. Fast forward to now (April 2023), nothing really has changed; the system still works in the same weird and inefficient way in the latest version of Joomla (4.2.9 at the time of writing this article). But not only it is weird and inefficient, […]

Migrating K2 to Joomla 4 – Why We Gave Up!

Note: Needless to say, it is important that you backup your website before migrating to Joomla 4. Warning: Before migrating to Joomla 4 from Joomla 3, it is critical that K2 (as an extension) is completely disabled, otherwise, you will end up with a broken website and you will need to restart the migration from […]

“0 Missing field in database: Joomla\CMS\Table\Extension extension_id” Error on Joomla Website

Note: This post partly assumes that your server is running WHM/cPanel. Solutions may differ if your server is running a different platform. About a week ago, a client approached us and told us that they were having a problem on their corporate website, where they are seeing the following error: 0 Missing field in database: […]

Modulo by Zero Error when Migrating to Joomla 4

We are currently migrating a Joomla 3 website to Joomla 4. Among the hundreds of errors that we saw during the migration process, there was this one: Modulo by Zero This error was interesting, because it was just weird and very short. It meant that we were dividing by zero somewhere in the code, but […]

How We Blocked an IP from Accessing HubSpot Pages

It’s Saturday, and we received an interesting email from one of our clients. The client said that someone was manually spamming their HubSpot forms with odd data. HubSpot is good at blocking spammers, but manual spam is really hard to catch. The client asked us to block this person from accessing their HubSpot pages. There […]

How to Disallow Google from Indexing Your HubSpot Gated Documents

Here’s a common scenario: you create a HubSpot landing page with a form. Once people fill in that form, they are redirected to a gated document (possibly an e-book or a whitepaper). The system is simple and works flawlessly, you are happy, and your client is happy! A few weeks later, your clients emails you […]

The Elusive “Thank You” Message On HubSpot Forms

Say you have a HubSpot form that you want people to fill in. The HubSpot form that you have is very long with many input fields that you need for your business. You embed it on one of your pages and then you send out an email with a link to that page. People fill […]

How Leads Can Download Multiple Gated Assets with One HubSpot Form

Here’s the problem: A client of ours has many gated whitepapers on HubSpot, and they wanted to group them into pages where each page contains the related whitepapers, by topic. So, in essence, the HubSpot landing page consists of a simple lead generation form which, at the end, contains a checkbox list consisting of whitepaper […]

How We Created a Multi-Step Form in HubSpot

As you may already know, HubSpot only allows for single-step forms. They don’t have a built-in function to create multi-step forms. They do advertise a workaround, which is creating two landing pages, each containing a form with a set of fields, where the first page, when submitted, is redirected to the second page using the […]

How We Added HubSpot Pages As Events in Google

A client of ours asked us to list some of their HubSpot pages as virtual events in Google. These pages were mainly webinar registration forms. To the untrained eye, the task seems to be very simple, because it consists of simply adding some structured data in the HTML as described by Google here. In reality, […]

Increasing K2’s Limit to More than 100 Items

While working on a Joomla website powered by K2, we noticed that one of the pages, containing a big list of company names, is only limited to display the first 100 companies. We checked the backend of the Joomla website, and the limit was set to display 1,000 items for that particular category. We increased […]

Joomla’s Biggest Drawback: Sorting

We manage very large Joomla installations, and a constant question we get from editors working on these websites is: “I am trying to order articles on my website, but it is not working, how do we do that?” And then we start to explain that first they need to choose the category when listing articles […]

Our New Passion: Integrations

For the past decade, our (almost) exclusive focus was the Joomla product. However, in the past few years, we suffered from an increasing appetite to a specific marketing niche: integrations. We tried to stem this appetite by avoiding such jobs as much as we can, we tried to quench it by taking as many integrations […]

Weird Error While Updating a Joomla Website

While trying to update a Joomla website to the latest version we encountered the following weird error: Could not open /home/[user]/public_html/administrator/modules/mod_latestactions/mod_latestactions.xml for writing At first glance, we didn’t know what that error was because we didn’t know that the module mod_latestactions existed in Joomla. A quick research revealed that this was a new module and […]

Adding Complex Logic to HubSpot Emails

One of HubSpot’s powerful features is the ability to have a workflow send an email. Typically, the workflow contains the logic (if-then-else), and the email contains some dynamic data, such as the first name of the person, the title of the person, the company that the person works in, etc… However, the email cannot contain […]

How We Are Handling Traffic from Bots

An emerging and an extremely annoying issue that (almost all) large websites are currently experiencing is bot traffic. Of course, bot traffic has always been an issue, but it was, to a certain extent, manageable and way less vexing. However, recently, bot traffic has become very aggressive, especially on high traffic websites. So why this […]

Filtering Out Bad/Bot Traffic in Google Analytics

A couple of weeks ago, we received an interesting email from the marketing team of a high traffic Joomla website: they told us that their traffic in Google Analytics was increasing substantially, and while they were excited about the issue, they were thinking that it was too good to be true, and so they wanted […]

Before Optimizing Your Joomla Website

At itoctopus, we have optimized many, many Joomla sites and we have written many articles on optimizing Joomla sites. But, before optimizing any Joomla website, we do check/ask about the server powering the website. If we think the server is too weak for our beloved CMS, then we recommend that the client upgrade to a […]

“0 – Using $this when not in object context” Joomla Error After Updating to PHP 7.1+ – How to Handle

After updating PHP through EasyApache 4 to PHP 7.3 and then changing the PHP version in the MultiPHP Manager to 7.3, we encountered the following error on a Joomla website: 0 – Using $this when not in object context A fast research revealed that this problem was caused by some legacy code in the template, […]

The Ideal Server for a Large Joomla Website

We are currently moving a large client of ours to a very powerful server, and we thought it would be a good idea to share the hardware specifications of said server with our lovely readers (all 1 billion of them!). Without further ado, here they are: Intel Dual Xeon Gold 6130 (32 cores): This dual […]

Load Issues on Your Joomla Site? Maybe it’s Clamd!

One of our clients was having serious load issues on their Joomla website during peak hours. At first, we thought it was MySQL – but further investigation revealed another, more subtle culprit: it was clamd, yes, the seemingly innocent virus scanner, was the root cause of the problem. To make a long story short (is […]

The Importance of Checking the “lfd.log” File

A substantial portion of our work for our managed clients consists of monitoring their servers, and a large part of that monitoring consists of checking the logs, and seeing if there is anything unusual about them. We check all the pertinent logs, but there is one log file that is really close to our hearts, […]

Joomla MySQL Database Unexpectedly Goes Down

We had a weird error yesterday morning. A client emailed us and told us that his Joomla website stopped working all of a sudden, and it was displaying a blank page. We checked his Joomla website and we checked the logs, and it didn’t take us long to discover that the problem was with the […]

4 Reasons Why Your Joomla Article Updates Are Not Reflecting Immediately

During the past 13 years, we had our fair cases where updates to Joomla articles were not reflecting immediately. We have finally decided to make a quick list containing the 4 reasons of why your changes to a Joomla article are not reflecting or are reflecting but not immediately (it only took us 13 years […]

“End of script output before headers: index.php” Error on Joomla Site

A non-regular client of ours, after updating their Joomla website to 3.9.1 a couple of weeks ago, started seeing the following classical error on their homepage: Internal Server Error What was interesting was 2 things: 1) the error didn’t happen immediately after the update, but rather a few hours later, and 2) the error disappeared […]

How We Modified the Joomla Search Plugin to Include Synonyms

We were commissioned by the marketing department of a global education website to enhance the Search plugin of their Joomla website. In essence, they wanted us to include the synonyms of a word in the search results. For example, if someone types in the word “house”, we also include the words “home”, “residence”, etc… At […]

“[] operator not supported for strings” Error on Joomla sites

A regular client of ours contacted us this morning telling us that after updating PHP from 5.6 to 7.2 on his server, he saw the following fatal error on the homepage of his company website: [] operator not supported for strings. We did see this problem before on another client’s Joomla site, and it was […]

How to Identify Contacts Who Downloaded a File from a HubSpot Page

If you are an avid reader of our blog, you will notice that our main focus is currently on 3 things: security, performance, and marketing. Marketing is an extremely vast domain and our clients always have exciting challenges for us. For example, we just finished working on a huge HubSpot-Tealium-Constant Contact integration project. Essentially, the […]

Joomla’s Search Results Have <span class=”highlight”> – How to Fix!

A client of ours emailed us this morning and told us that the search functionality on their website is acting funny, and asked us to take a look. So, we tested the search by entering a term relevant to the client’s business, and we noticed that many titles in the search articles had something like […]

How to Load JavaScript Files Asynchronously in Joomla 3.8

In this day and age, most web developers out there want to load everything asynchronously – you know – just to please Google, despite the fact that loading JS files asynchronously may result in some erratically unpredictable behavior. In fact, from an SEO perspective, ensuring that the website looks good on mobile devices is an […]

DFP Ad Targeting with HubSpot on a Large Joomla Website

An exciting project that we have just finished is DFP (now Google Ads) ad targeting using HubSpot on a large Joomla website. In short, here’s how the system works: Someone visits the Joomla website and fills in a HubSpot form – the person is automatically assigned a hubspotutk which is associated to his HubSpot profile. […]

“The parameter platforminfo.class must be defined.” Error on Joomla

A new client called us a couple of days ago telling us that he successfully updated the Joomla website of the company he works in, however, he told us that they had to revert back because of some issues on the website resulting from the update. He told us that after reverting back, he saw […]

Seeing Gibberish when Trying to Update a Joomla Website

A client called us yesterday morning and told us that they were having issues trying to update their Joomla website. They didn’t give us any details, they just told us that they were seeing an error and that they wanted our help. As usual, we gratefully and immediately obliged… We logged in to the backend […]

How to Share a Database Table Across Different Joomla Websites

We know, we’ve been lazy this month, as this is our first article and it’s now the 31st – but, we were working on exciting projects so rest assured that we’ll make it up to you in the next month. One of the exciting projects that we worked on was the sharing of a database […]

How to Truncate a Table Using Joomla’s Database Abstraction Layer

We know, you’ve always dreamt of truncating a database table using the Joomla database library, but you didn’t know how to do that, so you used the following code instead: $db = JFactory::getDbo(); $sql = ‘TRUNCATE TABLE `mytable`’; $db->setQuery($sql); $db->execute(); The above code works, but it doesn’t say much about your Joomla skills. A cleaner […]

Protecting Joomla’s Files and Directories from Accidents

A few days ago, a managed client of ours called us and told us that their website stopped working, and that that event coincided when an employee was trying to upload a file to the images folder using FileZilla. We immediately knew what the issue was, as it happened to another client of ours a […]

A Custom Module Is Always Better than a Joomla Plugin

When a Joomla developer is asked to add some JavaScript tracking code to a Joomla website, he typically codes a content plugin in order to achieve this result. This, of course, works. But, it’s a very inefficient way of doing things. Why? Because this can be done easily with a custom HTML module and a […]

Your PHP Changes Are Not Showing on Your Joomla Website? Maybe It’s OPCache

Earlier today, we ran into a very weird issue… We were making some changes to a cron PHP file (under the cli folder), but our changes were not taking effect. This was very odd because we were sure that no caching was enabled anywhere on the server, at least so we thought. What was odd […]

How to Implement DFP Ad Targeting on Joomla Sites

Lately, we have been working increasingly on marketing (from a very technical perspective), specifically on ad targeting. Essentially, our clients are being pressured by their own clients to target visitors with matching ads. For example, if someone is a big reader of car articles on a news website, then he will be targeted with car […]

5 Disadvantages of Using a Custom Made CMS Rather than Joomla

One of our non-regular Joomla clients revealed to us their wish to build their own CMS. They told us that the number one reason why they’re doing this is because maintaining a large Joomla website is very costly. They also cited other reasons, including having to go through the trouble of updating their site every […]

The Apple Touch Icon Files and Joomla Performance

If you want to see something interesting, then do the following: ssh to the server hosting your Joomla website. Change to the domlogs folder. Run the following grep on the main log file of your domain: grep ‘MobileSafari’ yourjoomlawebsitelogfile.txt > mobilesafari-log.txt After doing the last step, you should have a mobilesafari-log.txt file in your current […]

How We Solved a Major Problem with the “System – Page Cache” Joomla Plugin

One of the most annoying problems with the System – Page Cache plugin is the fact that when you update an article, then that update won’t reflect on the website immediately, as the cached page would still be served to the visitors and won’t be refreshed until it “expires”. In fact, the absolute majority of […]

Using the Eximstats Database to Monitor the Health of Your Joomla Site

Note: The following post assumes that your Joomla website is powered by a WHM/cPanel server and that the Eximstats service is enabled (you can enable the Eximstats service from WHM’s Service Manager). At itoctopus, we go at great lengths to monitor the security of our managed Joomla websites, to the point where we check the […]

How to Display an “Edit Article” Link on the Joomla Frontend when Logged in to the Backend

On any news site, one of the most convenient things for editors is to have an “Edit Article” link on the article page. Such a link will save a lot of time for the editors since without it they will need to go to the backend, search for the article (which will put pressure on […]

Why Switching Your MySQL Host to May Break Your Joomla Website

Many Joomla administrators think that is equivalent to localhost when it comes to MySQL connections, and they think that they can change the value of $host in their configuration.php file from localhost to and the website will still work as it should. In reality, if they’re using cPanel, then the website will go […]

How to Use MySQL Persistent Connections on Joomla Sites

A somehow controversial subject in the database world is MySQL persistent connections: Some claim they have a performance benefit, others claim they’re bad and they can cause some memory issues on the server. At itoctopus, we have decided to put an end to the controversy by running experiments on a large Joomla website in order […]

On Closing MySQL Connections on Joomla Sites

If you’re an avid reader of our blog, then you may already know that we have a passion for optimizing Joomla sites. A passion so strong, that we spend the absolute majority of our spare time researching new optimization techniques. More often than not, our research yields interesting results. For example, about a week ago, […]

A Simple .htaccess Rule to Punish Bad Bots Hitting Your Joomla Site

We manage quite a few large Joomla sites, and all of these sites get their fair share of bad traffic caused by bad bots. What most system administrators do is that they block these bad bots with an .htaccess rule. At itoctopus, we go the extra mile and we punish those bots. How do we […]

Joomla Article Remains Locked After Saving and Closing It

One of the (almost unique) features that Joomla has is “locking” articles. So, when someone is editing an article, that article is locked to prevent others from editing it. The lock is released when the article is “closed” by clicking on the Save & Close button, the Save as Copy button, or the Close button. […]

Do We Really Need the Joomla “System – User Log” Plugin?

Almost all Joomla administrators do not think about disabling any core plugins that are enabled by default – which is a fine approach, but not when you’re running a large site. Some of these plugins have very little use for many Joomla sites and, as such, they are better off disabled. Take, for example, the […]