WordPress Support Questions
WordPress support articles: find answers to your questions about WordPress Hosting, including setting up email, staging, performance and more.
How do I migrate a website manually?
20i provide an automatic 'one click' Migration Centre that supports migrations from the largest hosts and most popular control panels. This is available to all customers for no extra charge.
Austin B.Is it safe to update the PHP version on my website?
Updating your PHP version on a website can be a critical decision that can affect the functionality and security of your website. On one hand, keeping your PHP version up to date is essential for ensuring that your website runs smoothly, quickly and securely.
On the other hand, upgrading to a newer version of PHP can also result in compatibility issues with your existing plugins and themes, which can cause significant problems and even lead to a website crash.
See how to do it here: How do I change PHP version?
Let's take a closer look at the importance of updating your PHP version and some of the potential drawbacks and issues that you might encounter.
Why it's important to keep PHP up to date?
Security
Outdated PHP versions are more vulnerable to security exploits and vulnerabilities. Updating to the latest version of PHP will help ensure that your website is protected from known security threats.
Performance
Newer versions of PHP are designed to be faster and more efficient, which can result in improved website performance and faster page load times.
Improved features
Updating PHP gives you access to new features and functions that can enhance the functionality of your website.
Better support
Support for older versions of PHP is often limited and discontinued, which can make it difficult to find solutions to problems or get help if you encounter issues.
Potential drawbacks and issues
Compatibility
Updating PHP can result in compatibility issues with your existing plugins and themes. Some plugins and themes may not be fully compatible with the latest version of PHP, which can cause significant problems, including broken functionality and even website crashes. If you're switching between any 7.* or 8.* version then all modern plugins and themes should be compatible. However, if you update the PHP version and notice any negative behaviour changes then you can change back instantly to the previous version to resolve any issues.
If you're switching from a very old version of PHP such as 5.6 then you may wish to review your plugin and confirm with their authors if they're compatible with a higher version of PHP.
Cost
Updating PHP can require significant time and resources, including hiring a developer to handle the update, testing and debugging any compatibility issues, and resolving any problems that may arise.
Risk of downtime
Updating PHP can result in unexpected downtime, which can be costly and time-consuming to resolve.
How can I check which version of PHP I am currently running in WordPress?
Use the Site Health Check feature
WordPress 5.2 and later include a Site Health Check feature, which displays information about your PHP version and other critical information about your website. You can access this feature by going to "Tools" > "Site Health" in the WordPress dashboard.
Check with a plugin
There are several plugins available in the WordPress repository that can help you check your PHP version, including "Display PHP Version" and "Health Check & Troubleshooting." Simply install and activate the plugin, and then check the information displayed on the plugin's settings page.
Check via info.php
You can create a new file called "info.php" in your WordPress root directory and add the following code to it: . Then, open the file in your browser, and look for the "PHP Version" section, which will display the version of PHP you are currently running.
PHP Version Tool on My20i
Every 20i hosting package has access to the ‘Change PHP Version’ tool on the My20i hosting control panel. To use this feature, head to Manage Hosting > [Select Package] > Change PHP Version.
PHP versions of WordPress sites can also be changed in bulk using our WordPress Manager.
In conclusion, while updating your PHP version on a website is important for ensuring the security, performance, and functionality of your website, it's important to consider the potential drawbacks and issues that can arise.
Before proceeding with an update, it's recommended to back up your website, test your plugins and themes for compatibility, and consult with a professional developer if necessary.
If you have Timeline Backups, we’d recommend taking a snapshot prior to amending your PHP version. By taking these precautions, you can minimize the risk of unexpected problems and ensure that your website remains secure, fast, and functional.
Austin B.How do I run a search and replace in the WordPress CLI?
The WordPress Command Line Interface (CLI) search and replace function is a useful tool when you need to make global changes to your WordPress site's content.
Chris WrightWhy could my WordPress migration fail?
The following conditions should be met for the WordPress FTP migration tool to migrate a site. These conditions are usually met by default, unless you've made changes to your WordPress installation.
What to do if a WordPress migration has failed
If your migration fails, adjustments may need to be made to allow the migration tool to work correctly:
- The migration tool looks for the directory with the wp-config.php configuration file. If you’ve manually moved the wp-config.php file to another directory (sometimes done for security) then you’d need to move it to be with the rest of the core WordPress files.
- File and directory permissions should be consistent with WordPress best practice, i.e. directories set to 755 and files set to 644.
- Our IPs used for the FTP migration tool should not be blocked: 185.146.165.4 & 45.8.227.14. If you use a web application firewall (WAF) ensure these IPs are whitelisted.
- Ensure the website's domain name points to the correct web host. If the nameservers for the domain name don’t point to the right host then the migration will fail.
If you’re having trouble diagnosing what’s wrong, please feel free to contact support within your account from the support area.
Austin B.WordPress caching: what you need to know
Optimising your WordPress site for performance can be done in a variety of ways, but few are as important as implementing caching for your site.
Through caching, a lot of the heavier processes and queries that WordPress runs on each page load can be reduced significantly or outright bypassed thanks to temporary storage. So your sites can load as quickly and efficiently as possible and improve your Google CWV (Core Web Vitals).
This can help improve usability and ensure your site experience is the best it can possibly be.
We’ll go over the fundamentals of caching in regard to WordPress in this guide, how caching can be implemented and why you should consider using our inbuilt caching solution, StackCache on our WordPress optimised hosting platform.
Why do I need my WordPress site to cache?
WordPress, at its core, runs on PHP code compilation and back-and-forth query checks within your site’s database. For example, if you want to load your WordPress site’s homepage, the following happens:
- WordPress loads and checks wp-config.php
- It sets up any default constants set in this file
- It then connects to the database, and begin querying for content
- Active plugins are loaded, as well as the pluggable.php file
- The site then loads any defined rewrite rules
- The site’s theme is loaded, and the corresponding functions.php file
- Once all this information is gathered, WordPress parses all the data for the requested page
- It then fetches the page or post contents from the database
- Finally, it loads the site template and displays the page as it should appear with all data
The above generally occurs within the space of seconds.
However, by implementing caching, many internal queries can be stored locally, which can bypass the need to dive into the database and files. The cached content will be loaded instead, vastly increasing your loading speed and site’s performance.
What do WP cache plugins do, and how do they help with the website’s performance?
WordPress caching plugins come in all shapes and sizes. Most generally handle static HTML caching to reduce the amount of processing required per load time.
Most of these will store the cached content locally in a cache folder, a majority of which are found in the wp-content folder. These files are then checked per site load and prioritised in loading over the core files of the site to cut down time and allow for faster speeds.
Some provide additional minification and compression functions for your CSS and scripts to allow for quicker load times.
They may also provide tools that allow for you to prioritise core files over JavaScript, which can be quite slow to load. This will allow your site to load what's essential to get the site to display much faster, reducing your TTFB (Time To First Byte) and load times overall.
What is the advantage of caching with your hosting and not as a plugin?
A plugin alone will naturally have limitations. Even with the plugin locally storing processes to avoid them being re-run, where these files are stored can still lead to slowdown in the long run.
Anyone connecting to the site still has to connect to the webserver, so if you’re in Australia and your site files are stored in the UK, it’s going to take some time for the site to load even when cached due to the amount of network hops and latency of the connection.
This is where 20i handles things differently. By integrating our caching solutions with our hosting’s built-in CDN.
We can store any cached site files directly on the CDN nodes. This means that anyone connecting to your sites will have the caching served directly from the nodes rather than the webserver. This vastly improves load times by completely bypassing having to reach our webservers directly and pushing your site’s performance further still.
How does the 20i WordPress cache solution work?
As caching is so important to the speed and performance of any WordPress site, we’ve taken it upon ourselves to develop our own caching plugin called StackCache.
StackCache acts as a normal WordPress caching feature, but integrates fully with our CDN and Edge Cache to allow you to fully control your site’s performance globally from a singular interface.
Not only this, StackCache compliments Edge Caching directly as it handles all the dynamic content of your site, while the Edge Cache handles all your static content to ensure that all resources get served faster for your visitors. You can specify how long to handle specific types of caching such as Image and JavaScript caching from either the Edge Caching area or StackCache itself.
On top of this, StackCache comes pre-built with our WordPress-optimised hosting, meaning that you can get your site loading faster as soon as it’s placed onto our hosting – no extra setup or additional installs required. And, if you want to get more advanced with your caching solution, you can set additional Cache-Control and Expires headers via a .htaccess file, and StackCache will follow these to store even more for your site.
As you can see, caching can have a major impact on your site’s performance. With our built-in Edge Caching and StackCache solution, our hosting works with you to provide you easy access and control of your site’s caching, allowing you to push the best speeds possible out of your sites.
Reudiger DalchowHow do I migrate a WordPress site automatically?
Migrating a WordPress website to 20i's scalable platform is quick and easy using our Migration Centre.
Austin B.Getting started with the 20i WordPress Manager
20i’s WordPress Manager provides a central hub for you to manage, view, and update all your WordPress websites from a single, easy-to-use dashboard.
When you first access WordPress Manager, you’ll see a detailed overview of each individual WordPress site. The tool automatically fetches information about all installed plugins, themes, and users for each site. It also displays the version of WordPress being used, the PHP version running on the site, and whether any Website Turbo credits are currently applied.
At a glance, you can quickly identify what needs updating - such as plugins, themes, or WordPress core versions - helping you keep every site secure and performing at its best.
You’ll then be presented with a clear table that organises this information across all your sites, making it simple to manage everything in one place:

The WordPress Manager displays the following details for each website:
- Site name (URL) with a direct link to the live site
- User access permissions (who can manage the site)
- Current WordPress version in use
- SSL certificate status (installed or not)
- Shows if a staging site has been created for the site — staging sites can be created from Managed Hosting > Options > Manage > Staging, the WordPress site will need to be on 20i's WordPress platform, if it's on a Linux Hosting package type you can perform a platform transfer to move it.
- 20i CDN caching status
- Number of available updates
- Update breakdown by type — plugins and themes, including quantities
- Timeline backup snapshots associated with the hosting package
- PHP version currently running
- Website Turbo status (enabled or not)
- Malware scan results, indicating any infections
- Site status — either Active (live) or Disabled
- Hosting management options
Is it possible to bulk manage the WordPress Sites?
If you select a number of sites in the tick box on the left, you can then apply bulk actions to those sites:
- Install WordPress
- Install the Core WordPress Files
- Upgrade WordPress Version
- Update Plugins
- Update Themes
- Verify Plugin checksums
- Purge Stackcache
What does 'Verify Plugin Checksums' do?
A checksum is a unique identifier made from the genuine code produced by the plugin’s developers. Basically. it’s a long string of numbers that’s made by applying mathematic transformations to the data. It’s unique, and if any changes are made to the plugin’s code, the checksums won’t match.
So it’s a way of checking that the plugin you have installed hasn’t been tampered with. If the checksums match, the plugin code is as the developer intended.
Can I download the data available in the WordPress Manager?
At the bottom of the page, you’ll have an option to download all this information as a .csv file. The CSV will look similar to this summary view, but also includes the names of all the themes and plugins.
How do I manage individual sites?
Of course, you may not want to apply changes just in bulk. You can still manage individual sites by clicking on it.

You’ll be presented with a menu that will indicate updates and malware scan results, as well as the options to manage plugins, themes and users.
Ben GaysonFix Modified Core WordPress Files
A WordPress installation will always contain its core PHP files and directory structure. You might be familiar with the WordPress configuration file, wp-config.php, which connects the WordPress installation to the desired database, or the wp-content directory which contains plugin and theme files. The only files you may need to edit are the wp-config.php file and the .htaccess file. However, as standard there's no need to edit these files right away.
Modifying core WordPress files can be dangerous and result in the WordPress installation not passing a checksum. At 20i, if your WordPress installation does not verify against the official WordPress checksum then some of the 20i WordPress tools may be limited until the installation passes this check.
An installation that does not verify against WordPress's checksum returns the following message:
When your installation does pass, the following message is returned:
There are three methods you can use to re-install WordPress core files:
1. Use the 20i Checksum Report tool
2. Re-Install/Update WordPress Via WP-Admin
3. Verify and Re-install WordPress using the WP CLI
How To FIx Modified WordPress files (Replace Modified Core WordPress Files) Without Damaging Existing Content?
You can re-introduce missing core files, or fix modified core files without harming your hard work. The methods below won't affect the WordPress database, wp-config.php file to wp-content folder. These methods only re-install the core WordPress files.
1. Use the 20i Checksum Report tool
The easiest way to fix missing or modified core files is to use the 20i WordPress Checksum Report tool. This scan checks if your core files match what exists in the official WordPress core repository.
If your files have changed, it’s likely that either you have either modified them yourself (which is not recommended), or your WordPress installation has been infected by malware which has modified your core files.
If your installation verifies against the WordPress checksum, you'll receive this success message:
If your installation contains modified or missing core files, you'll be shown which files are missing and an option to automatically re-install those whilst preserving your WordPress installation.
2. Re-Install/Update WordPress via WP-Admin
This method is straightforward and can be done by logging in the WordPress Admin area via /wp-admin.
Log in to the wp-admin dashboard of your WordPress site - Click Dashboard
- Click Updates
- Select Check Again to check for an update - If you have the latest version of WordPress
- Select Re-Install Now to re-install the core WordPress file
3. Verify and Re-install WordPress using the WP CLI
At 20i the WP Command Line Interface (CLI) is installed by default and can be used by connecting via SSH. Learn more about connecting via SSH here.
You can use the WordPress wp core verify-checksums CLI command to check your own installations files against WordPress's own checksum to ensure all core files match the official repository.
- Connect to your site via SSH.
- Change into the directory where your core WordPress installation is located, usually public_html.
- Run the command
wp core verify-checksums - You'll either receive a Success message indicating that your installation verifies against the WordPress checksum.
Success: WordPress installation verifies against checksums.- Or you'll receive an Error message indicating your installation is has modified or missing core files.
Error: WordPress installation doesn't verify against checksums.
- If your core files have been modified or are missing, you can re-install those files using (whilst keeping your installation safe) by running
wp core download --force
Debugging modified core WordPress files is outside the remit of the 20i Support Team. However, we can help you you perform a re-install of the core WordPress files if you're having any problems with the above process.
Austin B.WordPress Tools: Error WordPress is not installed
A key feature of our WordPress hosting is our integrated WordPress tools suite available directly through the hosting management page. It offers a range of functions without having to access the admin area, such as adding new users or managing your plugins.
/** The name of the database for WordPress */ define( 'DB_NAME', 'database_name_here' ); /** Database username */ define( 'DB_USER', 'username_here' ); /** Database password */ define( 'DB_PASSWORD', 'password_here' ); /** Database hostname */ define( 'DB_HOST', 'localhost' );Your database connection details can be accessed via the MySQL Databases area on your package. To access these:
- Log into My20i and head to your Manage Hosting area.
- Select Options > Manage on the hosting package you’d wish to edit.
- Head to the Web Tools section and select MySQL Databases.
Set the details in the file to match the details specified on the above page, and your site will then be able to connect to the database.
If your WordPress site continues to throw a database connection error despite the details being correct, it is possible that your database may be corrupted and will need to be repaired.
This can be done via SSH using the command wp db repair. We have a guide on how to connect to your hosting package via SSH.
Once you’re connected, navigate to the public_html folder with the command
cd public_html
And run wp db repair – you’ll receive output as the site goes through and runs repair on each table. Once it has completed, retest the site and it should be back online.
3. Website Errors
Once a valid WordPress installation is detected, the system uses WordPress CLI to pull data such as the Plugins, Themes and Users. If a 500 error is occurring on the site, however, it will prevent the CLI from running. This will result in the tools also failing to load via the UI, so it’s important to check your site for any 500 errors.
500 errors are critical errors that get reported directly to the Error Logs area of your package. We have a full guide on how to check and debug ‘Error 500’.
4. Must-use Plugins
If the site loads fine and there’s notable errors within the site itself, it’s possible a plugin on the site is interfering with our platform’s ability to detect your WordPress install.
Most commonly, this is caused by Must-use Plugins, or mu-plugins. These are critical plugins used by specific platforms and processes in order to function, stored in a folder of the same name on the site separate from standard plugins. Platforms such as WP Engine have their own mu-plugin that they use for additional functionality – however, they aren’t required on our hosting and actually can interrupt the platform’s ability to detect the WordPress installation. It is worth checking your site’s mu-plugins folder, and remove any unrequired to function on the 20i platform. If you’re unsure, take a backup of the folder before you remove any.
5. Change PHP Version
Another cause could be the PHP version that's currently being used on the website. It could be that the PHP version is out of date which causes problems with Wordpress or the installed plugins/themes.
You can update the PHP version from the Change PHP Version page when you manage the hosting package. This will show the current PHP version currently in use and you can choose another version within the drop down to update it to a newer version.
6. wp-salt.php
One final common cause of the WordPress tools not being able to display on a WordPress package is the system being unable to detect the WordPress Salts. These are security keys generated to protect WordPress, and are defined in the wp-config.php file.
Our system checks for these as a part of its installation check, and if it fails to find them it can result in the system believing WordPress is not installed. Some systems and setups store the salts in a separate file called wp-salt.php. If this is how your site stores these, you’ll need to remove the salts from this file and instead place them back in wp-config.php. This will then allow the system to detect your WordPress install as normal.
By carrying out these steps, you can perform a number of checks to determine why your WordPress installation may not be detected. Generally, the cause boils down to either errors on the site itself, or a plugin or configuration interrupting the platform’s ability to detect your installation. Once these are cleared, you’ll be able to see WordPress Tools once more, and manage your site directly via My20i.
Corey SeymourWordPress knowledge: use SMTP with and without plugins
Sending emails directly from your WordPress site can be critical to your site’s success. It could be from a contact form to help your clients get in touch if they’re interested in your services, order emails to confirm details and provide receipts for purchases, or password reset emails to allow users access to their accounts.
WordPress itself comes with functionality out of the box that can allow for sending emails, but it’s not as secure as it could be, and can more often than not result in your business-critical emails resulting in the Spam folder.
Making use of SMTP with your WordPress site, however, can ensure that all of these important emails make it to their intended audience. Setting them up is much easier than you’d think. This guide will step you through what SMTP is, why it’s important to make use of it on your WordPress sites, and explain a couple of ways for you to get started using SMTP as soon as possible.
What is SMTP?
SMTP, also known as the Simple Mail Transfer Protocol, is the main protocol used to send and receive email. A majority of email systems make use of SMTP to send out emails between servers. These emails can then be retrieved using email client protocols such as IMAP or POP3.
Why should I use SMTP with WordPress?
By default, WordPress makes use of PHP Mail using the wp_mail function to send emails from contact forms, product orders and other functions that send out automated emails. However, PHP Mail lacks any form of authentication – it simply sends with the from address it’s provided directly from the server itself.
As a result, PHP Mail often gets used to spoof email addresses, commonly enough that some mail hosts simply mark emails from PHP Mail as spam or may even get blocked.
SMTP, on the other hand, connects to a mailbox directly and authenticates the connection using the mailbox password before it sends. This means that only setups with the correct mailbox details can actually send out emails. This is considered much more secure and can ensure that your site’s emails are less likely to be seen as spam and make their way to your intended recipients.
How can I connect using SMTP?
Connecting your WordPress site to your mailboxes using SMTP first requires you to understand where your emails are hosted – each mail host has a different hostname for their SMTP services. Knowing what this is can save you a headache in the long run. Some services have setups available to allow you to use smtp.yourdomain.com to connect, but this requires that subdomain on your domain to be pointed to their services.
If your emails are hosted here with us at 20i, our SMTP settings are as follows:
Hostname: smtp.stackmail.com
Port: 465 (SSL) or 587 (TLS)
Security: SSL/TLS
Username: Your email address you want to send with
Password: The password of the mailbox you want to send with
If you use Office365 to host your mailboxes instead, you’ll need to use their SMTP details:
Hostname: smtp.office365.com
Port: 587
Security: STARTTLS
Username: Your email address you want to send with
Password: The password of the mailbox you want to send with
Other mail hosts will provide guidelines or quick references online that will specify the SMTP connection details you need. If you’re unsure, check with them directly to confirm.
Once you have the details you need, it’s time to connect. Doing so can be done a couple of ways, depending on how confident you are with coding.
Connecting to SMTP using a Plugin
If you’re unsure and want an easy way to do it, there are a great number of WordPress plugins that handle the heavy workload of the connection for you, allowing you to simply pop in your SMTP details and begin sending straight away. We'll demonstrate the setup SMTP in WordPress with a plugin using two examples of popular ones. These are:
WP Mail SMTP
WP Mail SMTP is a free plugin that comes with a wizard that runs automatically upon installation and steps you through setting up your SMTP connection. When you first install it, you’ll be prevented with the following screen:

Select Let’s Get Started and you’ll be presented with some options for what type of SMTP service you use – there’s various auto configurations for different hosts, such as Google, Office365, Mailgun and SendGrid. If you use 20i’s mail services, you’ll want to select Other SMTP. If you’re unsure, check with your current mail host.

On the next page, you’ll be presented a form – follow the steps here to fill out your details. SMTP Host is where you’d input your hostname, and Encryption is your security – we recommend SSL or TLS, depending on what host you use.

Make sure that Authentication is enabled, then input your SMTP Username and SMTP Password – these are the email and the mailbox password respectively. Lastly, set a From Name, which is the name that will appear as the sender of the email, and the From Email. You’ll want to make sure the From Email matches the SMTP username.

WP Mail SMTP will then prompt you with some additional preferences – you can choose to enable these based on what you’d like of the plugin. If you’re unsure, leave it as default.

WP Mail SMTP will then run a quick test of the settings you’ve used – if there’s any errors, you’ll then be prompted to recheck your details.
If not, you’ll see the following screen:

And you’re all set to send your emails using SMTP.
Easy WP SMTP
Easy WP SMTP aims to make setting SMTP up and testing as quick and as simple as possible. Once it’s installed, head to the Settings tab of your WP Admin area, and you should see a new option for Easy WP SMTP.

Once selected, you’ll be greeted with a form with all of your needed details. From Email Address is the email address you wish to use for sending, and your From Name is the name you want the email to appear to come from. Reply-To Address is the address used for the Reply-To field, and you can also set a BCC Email Address if you want to have a copy of the email sent to another mailbox.

Below that, you have entry fields for your SMTP Host, which is your email provider’s SMTP hostname, the Encryption, which is the security, and your SMTP Port. Set these to your mail provider’s required settings, and select Yes on SMTP Authentication.
Lastly, enter the mailbox you wish to send from into SMTP Username and the mailbox’s password in SMTP Password, and hit Save Changes.

You can then navigate to the Test Email tab at the top of the form, and send a test email to check the SMTP settings are configured correctly.
If everything is configured correctly, you’ll get a popup confirming your email went through, and you’ll be all set to begin sending emails from your WordPress site using SMTP.

Without Plugins
If you’re more confident with PHP coding and the inner workings of WordPress, you can also set up your SMTP details directly using code. To do this, you’ll need to have set up a WordPress child theme – WordPress themselves provide a guide on how to do so here [ https://developer.wordpress.org/themes/advanced-topics/child-themes/ ]
Note: Before attempting this, make a backup of your site files so that you have a restore point.
In order to do so, first head to your wp-config.php file in the core folder of your WordPress site and add the following code:
// Configure your site to use SMTP
define( 'SMTP_USER', 'email@example.com' ); // Username to use for SMTP authentication
define( 'SMTP_PASS', 'MAIL_PASSWORD' ); // Password to use for SMTP authentication
define( 'SMTP_HOST', 'smtp.stackmail.com' ); // The hostname of the mail server
define( 'SMTP_FROM', 'email@example.com' ); // SMTP From email address
define( 'SMTP_NAME', 'FROM_NAME' ); // SMTP From name
define( 'SMTP_PORT', '587' ); // SMTP port number - likely to be 25, 465 or 587
define( 'SMTP_SECURE', 'tls' ); // Encryption system to use - ssl or tls
define( 'SMTP_AUTH', true ); // Use SMTP authentication (true|false)
define( 'SMTP_DEBUG', 0 ); // for debugging purposes only set to 1 or 2
This sets up the base configurations for your SMTP setup – you’ll want to modify the values above to match the recommended settings provided by your email host, and your own personal preferences.
Then, head to your child theme folder in wp-content > themes and open functions.php. In this file, add the following code:
// Configures SMTP authentication for your site
add_action( 'phpmailer_init', 'send_smtp_email' );
function send_smtp_email( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_HOST;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Port = SMTP_PORT;
$phpmailer->Username = SMTP_USER;
$phpmailer->Password = SMTP_PASS;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_NAME;
}
And that’s it – your site should now be able to use SMTP for sending your emails directly from your website.
Setting up SMTP with the above steps can ensure that your sent emails are safe, and better improve your chances of having them arrive with your clients without being flagged as spam and potentially missed.
Austin B.When does StackCache clear my cache automatically?
Our inbuilt StackCache plugin stores your site files and content locally to get the best-possible speeds out of your WordPress website.
However, when you’re working on your site, you’ll want to make sure any changes you do make are reflected on the site itself. As such, we’ve integrated rules that StackCache follows automatically so that it clears the cache to show the latest renditions of your site.
Depending on the type of changes made to the site, different amounts of content will need to be cleared. Below is a full breakdown of the different types of cache clear that StackCache does automatically, and what triggers these to be cleared.
Events that fully purge the WordPress site cache
Changes made to the WordPress site that affect the whole site, such as swapping the site’s theme, will need a clear of the entire site’s current cache. So we purge the cache for the whole site in the case, including all pages and resources.
Here’s a list of events and actions that will trigger this type of purge request:
- Switching the WordPress theme
- Saving settings in the Customise area
- Activating a plugin
- Deactivating a plugin
- Autoptimize cache purge: When a cache clear is requested in Autoptimize, StackCache will also do a full clear.
Events that purge a single page
For changes that only affect a small section of the site, such as editing a single page or updating a current post, a full clear isn’t usually necessary. So StackCache will only run the clear on the URLs that have been changed rather than the whole site.
The events that trigger this are listed below:
- Moving a post to the Trash folder
- Deleting a post or page from the site
- Restoring a deleted post
- Editing a post or page
- When a post or page comment is added or updated
- Updating a post
Note: Our StackCache system treats WooCommerce products as posts, and so any changes made to your products that match with the above will also fire off cache requests.
Can I make StackCache purge more frequently?
Sometimes, based on how often you update aspects of your site, you may want to always make sure that you’re displaying the latest version of your site. Rather than just running cache clears on individual parts of the site, you can enable options within StackCache itself to allow for a more aggressive cache clearing setup. To do this:
- Log into wp-admin on your WordPress site.
- Navigate to the StackCache section in the column on the left-hand side of the page.
- Here, you’ll see StackCache’s main settings. Two of these include:
- Make Automatic Cache Purging Purge Everything: when we detect content changes, we purge the cache automatically for the post/page URL modified, the index page and your site’s RSS feed automatically. Enabling this option will trigger a full cache purge whenever these events are detected.
- Perform Automatic Cache Purging For All Post Types: by default, we only purge the cache automatically when standard post types are modified. Enabling this option will trigger a cache purge regardless of post type.
With this knowledge, you can better manage and customise StackCache to work with your WordPress site. Provide the best possible experience for your visitors by serving fresh content when needed - without sacrificing site speeds.
Reudiger DalchowHow do I use 20i's WordPress staging environment?
Sites on our WordPress-optimised platform have access to a full staging environment. Staging allows you to make a clone of a live WordPress site on a staging server in moments. You can then make changes without affecting the live site.
Austin B.What is a 404 error and how do I fix it?

What is a 404 error?
A 404 Error, also known as a ‘Not Found’ error, indicates that the resource that a website requested couldn’t be found. This can happen for individual resources like images or CSS files, or for entire sections of a site like a page or the home area. When this occurs, debugging can be a little difficult if you’re unsure what to look for. There likely won’t be any information in the Error Log that can narrow this down.
Why do I get a 404 error code on my website?
404 Errors on your site are usually caused by the path to a file you want to load being defined incorrectly, or that resource simply not being present in the files. Depending on what content is missing, there are different steps you can take to debug and resolve these errors. Below covers three of the most common 404 error occurrences on sites and how to resolve them.
1. What causes an error 404 across my whole website?
If the 404 occurs when trying to load your site directly, then the site isn’t able to locate and load the index file using the site’s current home directory. This is commonly caused by the site’s Document Root being set to a folder that doesn’t exist on the system.
How to fix the 404
- Log in to your control panel (My20i)
- Select the package that is showing the 404 error under Manage Hosting
- Head to the Domains section in the package
- Here, you’ll be able to see the current Document Root set for your domain. You need to make sure that this is pointing to the folder that contains your site files.

- Once that’s been changed to the correct folder for your site, hit the Update button and allow the system 15 minutes to adjust. The 404 message should then stop occurring.
2. What causes the 404 error on all subpages In WordPress?
Another common issue is a WordPress site throwing 404 Not Found errors on every page on the site, except for the homepage. This is caused by the site’s permalink structure not being set up correctly, which can be solved from within WordPress itself. To resolve this:
- Log in to the WP Admin area of your WordPress site.
- From the Dashboard, hover over Settings and select Permalinks.

- This page is defines what URL structure your WordPress site uses to display and load its subpages and posts. Make sure this value is set correctly based on your preference, and then hit Save Changes.
-
If the value is already set correctly, hit the Save button regardless. This forces WordPress to rebuild the permalinks internally, which should bring your site’s pages back online and allow them to display once more.
3. Why do my site’s images return a 404 Error?
This generally relates to either the site images not being present in the file manager, or the file path to those images being defined incorrectly.
In order to debug this:
- Log in to your My20i control panel
- Select the package that is showing the 404 error under Manage Hosting
- Head to the File Manager in your package, and navigate to the folder the images should be stored in. Make sure that the images are present there under the correct file name.
- Once done, check your site’s configuration file.
Some setups - such as OpenCart - have a definition for the image file path, for example:
define('DIR_IMAGE', $_SERVER['DOCUMENT_ROOT'].'/image/');
This needs to be set correctly in order for the images to properly load without a 404 error.
WordPress sites have a Media section under Settings in WP Admin that need to be configured to point to the correct uploads folder in order for site images and uploaded content to load and be editable
If your site wasn’t built with a CMS and instead was built using HTML/CSS, you’ll need to check your site’s files and make sure the hardcoded paths to the images you’re attempting to load are correct.
Do you support WordPress multisite?
Yes! All our platforms have full support for a WordPress Multisite network. You just need to follow the Create A Network article from the WordPress codex to get this setup.
Lloyd CobbDo 20i offer WordPress CLI?
If you're using WordPress, you may wish to make use of the WP Command Line Interface (CLI) to make changes to your installation.
How do I create a WordPress hosting package that includes a set theme and plugins?
When creating multiple WordPress sites, you may want to use a similar structure and appearance. Recreating the same structure over and over with just a few changes can be exhausting – instead, what you may want to do is set up a template, and then use that as a basis for your sites. This template could include a specific theme and some key plugins to get you started off without having to repeat the same work. But how to you go about making and using a template with 20i’s hosting?
The answer comes in the form of 20i’s Clone Package tool. This tool allows you to create direct copies of another package and install it on a fresh one with a new domain.
1. Setting up a template package
First of all, you’ll want to set up your template package. The package can be on either our Linux or our WordPress hosting. However, we would recommend making the template the same package type as the packages you intend to clone them to.
- Log into My20i and select Manage Hosting
- Head to Add Hosting Package
- Either select a domain from the drop-down menu or type your domain to create a domain reference
- Select the Package Type you’d like to create
- Select Create Hosting Package
Once this package has been created, open it up and install WordPress, as well as any plugins and themes you intend to use. Configure them to how you want them to be, and your template will be ready to use.
2. Making use of the clone tool
Now that you have your template set up, you can use it to create your first site.
- Log into My20i and select Manage Hosting
- Head to Add a Hosting Package and select Clone From Existing Package in the top right

- Select the template hosting package you created previously from the dropdown box that appears
- Once selected, create your hosting package as you normally would. Select or type the domain name, choose the Platform Type and assign any StackCP Users if required.
- Select Create Hosting Package to complete setting up the new package
Once the cloning process completes, the site will be set up with all of the themes, plugins and content you put in place on the template, but will have the new domain attached to it. You can do this as many times as you need and can even set up templates for non-WordPress sites such as Magento or Joomla.
By following these steps, you can save yourself time creating the same base site repeatedly. Our cloning tool allows for you to copy site formats across and use them as a basis for future development.
Reudiger DalchowWhat are the Free Tools with WordPress Hosting?
We have a suite of WordPress Tools which make the management of WordPress sites much easier.
Austin B.What's the difference between a staging site and the ‘Stackstaging’ temporary URL?
Our WordPress hosting platform makes use of both a staging environment, which can be used for site development, and our temporary URLs, which can be used to test a site before the DNS is pointed to 20i.
Chris WrightHow do I manage subdomains on the WordPress platform?
Our WordPress platform is optimised just for WordPress. We've developed our own custom plugin - StackCache - that controls our edge caching tech.
Lloyd CobbWhat StackCache settings should I use with the MemberPress WordPress plugin?
What is MemberPress?
MemberPress is a membership plugin for WordPress. It features a paywall and subscription system that allows you to charge users for any kind of content. You could offer software, e-books and even online courses that you make and charge users for them.
Reudiger DalchowHow to fix the WordPress index.php file being outputted
What is the WordPress index.php file?
The index.php file is part of the WordPress template hierarchy, which is a system used by WordPress to determine which template file should be used to display a specific page or content type. When a visitor requests a page on your website, WordPress checks the template hierarchy to determine which template file to use. If a more specific template file is available, WordPress will use that instead of the index.php file.
In most WordPress themes, the index.php file includes PHP code that retrieves and displays the content of your website's homepage. This code typically includes calls to WordPress functions that retrieve information from the WordPress database, such as the site title, tagline, and featured content.
While the index.php file is the default template file for your website's homepage, it is often customised or replaced by a theme's home.php, front-page.php, or custom-page.php template files. These files are more specific and provide greater control over the appearance and layout of your website's homepage
Why is the index.php been outputed and how you can fix it
Occasionally, you may encounter a WordPress site that outputs the contents of the index.php file directly to the browser.
There are two common reasons for this.
1. It's usually caused by the permissions set on the index.php file itself. Using the File Manager's Permissions tool make sure the permissions for this file is set to 640: right click on index.php > Permissions > Type '640'
Now try viewing the site in your browser.
2. If changing the permissions hasn't resolved this, ensure you have a .htaccess file in place inside public_html with the basic WP configuration found here: https://wordpress.org/support/article/htaccess/#basic-wp.
If you have a non-standard configuration in your current .htaccess file, make sure to take a copy of this so that you can add it back later if required. After entering the basic WP data, try viewing the site in your browser.
If you’re still seeing the index.php file being output feel free to let our Support Team know.
Austin B.Why am I getting a 'Too Many Redirects' error?
'Too Many Redirects' errors are caused by sites stuck in a loop of redirects.
RewriteCond "%{REQUEST_URI}" "^/" RewriteRule ".*" "https://my.domain.com/" [L,R=301]In the above example, we have our condition:
RewriteCond "%{HTTP_HOST}" "domain.com$"Which states that, if the URL contains ‘domain.com’, redirect the site. However, this will lead to a loop, as our subdomain also contains ‘domain.com’, resulting in the too many redirects error.
A much better way to do this redirect would be instead to use:
RewriteCond %{HTTP_HOST} !^my\.domain\.com [NC]
RewriteRule ^(.*)$ http://my\.domain\.com/$1 [R=301,L]Which instead uses the condition:
RewriteCond %{HTTP_HOST} !^my\.domain\.com [NC]This checks to see if the URL is not the subdomain, and redirects the site if it’s not.
It’s worth looking through your rules and making sure this type of logical loop doesn’t occur.
If you’re unsure, try renaming your .htaccess file. If the error stops when doing so, something in that file is causing the loop itself.
Mixed Content
The term ‘Mixed Content’ refers to when parts of a website on HTTPS try to load content over HTTP. In more uncommon cases, this can result in a site correcting itself to HTTP, then redirecting to HTTPS, resulting in a loop between the two which causes the ERR_TOO_MANY_REDIRECTS.
In cases such as this, it’s best to temporarily remove any rules that may be enforcing HTTPS, and then updating all of your site’s URLs to ensure they’re either all on HTTP or all on HTTPS.
We have a full guide on finding and fixing mixed content here.
Force HTTPS Scripts
Some Content Management Systems (CMS) such as Joomla have options that can force HTTPS connections to your site as a part of the integration. Enabling these makes tweaks to the code to enforce this – however, if you’ve already included your own scripts to force HTTPS or are using 20i’s option to do so in the SSL/TLS area, then this could potentially conflict and lead to a loop.
Check your current CMS setup to see if any options to force HTTPS connections are enabled. If they are, disable or remove any other scripts or options that will be enforcing this to remove any conflicts.
Caching
Caching can also cause a redirect loop as site and server caching can store redirects, resulting in a rule that has been removed to continue to be used.
The quickest way to check to see if this is the case is to visit the site with a query string at the end, for example:
https://mydomain.com/?nocache
Anything after the '?' is ignored, so you can write anything. Doing so will bypass the cache on the site and force the site to load directly.
If the site then loads fine without the redirect error, you can confirm that caching is what's causing the redirect.
Check your site for any cache folders and clear them, and then clear the edge cache from within your package:
- Log into My20i and head to your Manage Hosting area
- Select Options > Manage on the hosting package you’d wish to edit
- Select Edge Caching from under the CDN section of the package

At the bottom of the Edge Caching page, select Purge Everything. The server cache will be cleared within a few minutes.
Now you should be free of the 'too many redirects' error. Get in touch with our support team if you need further help.
Why might WP All Import cron imports fail?
If you run a WooCommerce store or hosting a WordPress site where you need to import and export data WP All Import is a widely used tool to managed this. It can be frustrating when the crons you set-up are failing.
There are a few reasons why WP All Import cron jobs/scheduled tasks may fail to run. The methods below will optimise the crons so that they should always run successfully and at the desired time.
Switch the standard HTTP method to PHP-CGI
WP All Import uses HTTP GET calls to perform the import process which can cause imports to time out after 5 minutes. We'd recommend optimising the method used to perform the import by switching to use the PHP command line. That way the crons have a much longer timeout and can do all the hard work in the process itself; all while avoiding the HTTP timeout.
To do this, you can add your cron jobs using the following structure (i.e. a WGET) and we'll handle the rest for you.
Within Scheduled Tasks in your 20i account, you'd add/adjust your cron to use WGET.

Don't run the trigger and processing crons at the same time
For example, if you run the processing cron every 5 minutes, don't perform a trigger on the hour, perform the trigger a 2 minutes past the hour to avoid collisions and job locking. The example below shows the trigger and processing crons in place, but timed so that they'll never run at the same time.

Ensuring these two optimisations are in place should ensure that WP All Import scheduled tasks complete successfully every time.
Austin B.How to fix the "Error Establishing Database Connection" in WordPress
The Error Establishing Database Connection error is one of the most commonly experienced errors on WordPress sites. The error itself indicates that the connection between your website files and the database has dropped.
/** The name of the database for WordPress */ define( 'DB_NAME', 'database_name_here' ); /** Database username */ define( 'DB_USER', 'username_here' ); /** Database password */ define( 'DB_PASSWORD', 'password_here' ); /** Database hostname */ define( 'DB_HOST', 'hostname_here' ); /** Database charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The database collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' );Each section is labelled via comments that show what each area is used for.
The main details you’ll need to check here are the Database name, Database hostname, Database username and Database password. If any of these details are wrong, the connection to the database won’t be possible and you’ll need to change the details accordingly. But where do we find these database details?
Your site’s database details can be accessed and updated via your hosting package:
- Log into My20i and head to your Manage Hosting area
- Select Options > Manage on the hosting package you’d wish to edit
- Head to the Web Tools section and select MySQL Databases

- Under Manage MySQL Databases you’ll see your databases and their current Server, Database/Username and an area where you can update the password

Going back to the wp-config.php file, you can use the above details to fill out and update your connection details:
- The Server is your Database hostname
- Database/Username is the Database name and Database username
- The Database password is the password you’ve added to the Change Password area.
Once these have been updated, recheck your site and the database connection error should no longer display.
2. Checking the database connection
You can also use the above details to test whether your database connection is working. This can be useful to find out if the problem is with the details being used or if there’s something wrong with the database itself.
To do this, head to your site’s File Manager or use FTP to create a new file in the root folder of your site. You can name this whatever you’d like, but make sure that the file is saved as a .php file such as test.php.
Once done, add the following code to the file:
$host = 'hostname';
$user = 'username';
$pass = 'pass';
$test = mysqli_connect($host, $user, $pass);
if (!$test) {
die('MySQL Error: ' . mysqli_error());
}
echo 'Database connection is working properly!';
mysqli_close($test); Replacing ‘hostname’, ‘username’ and ‘pass’ with the database hostname, database username and database password respectively.
Once that’s set up and saved, load the script via your site. If, for example, you named your file test.php you can load this by visiting your site and appending /test.php to the end of the URL i.e., domain.com/test.php.
If the script loads and displays an error, there’s a problem with the details being used. If it instead displays the line Database connection is working correctly! then the credentials being used for the database are correct.
If that’s the case, and your site is still showing a database error, then the problem may be with the database itself. It will need to be repaired.
3. Repairing a corrupt database
The issue can sometimes be that your database itself has become corrupt. This isn’t a common occurrence. However, it can happen with the amount of data, rows and tables that can be created and removed by various third-party plugins and functions.
One way to test if this is the case is to try and connect via wp-admin. If you receive the following error:

It means that the database has been corrupted. Fortunately, there are tools that can be used to repair this, using both WordPress and PHPMyAdmin.
4. Using WordPress’ database repair tool
To access the tool WordPress provides to fix this, you’ll need to edit your wp-config.php file and add the following line of code before the line: ‘/* That’s all, stop editing! Happy publishing. */’.
Define(‘WP_ALLOW_REPAIR’, true);
Once this code has been added, head to the following URL:
https://domain.com/wp-admin/maint/repair.php
Replacing ‘domain.com’ with your domain. This will open up a repair wizard built into WordPress that will attempt to repair your database. Follow the steps in the wizard and, when it’s finished repairing, your site should come back online.
Once you’ve finished with the repair tool, remove the above line of code from your wp-config.php file.
WordPress CLI also provides a quick tool to repair the database. To access this, connect to your site via SSH and navigate to the root folder of your WordPress installation. You can then run the command:
wp db repair
This will start a full repair of the WordPress database.
5. Repairing a database with phpMyAdmin
You can also repair the database using phpMyAdmin.
To do so:
- Log into My20i and head to your Manage Hosting area
- Select Options > Manage on the hosting package you’d wish to edit
- Head to the Web Tools section and select phpMyAdmin
- Select Sign-In on the database you need to repair
- You’ll be signed into phpMyAdmin. Select your database on the left, and you’ll see a selection of your database’s current tables.
- Select all of your tables with the checkbox next to each
- From the drop-down at the bottom of the screen, select Repair table

This will run the SQL REPAIR TABLE command on all of your selected tables, which will attempt to repair and remove any corruption or broken data from these tables.
6. Repairing corrupted WordPress files
In some rare instances, the issue may lie with the files of the site rather than the database itself. This can happen when the connection during an FTP upload is interrupted, or malware infects the WordPress site and modifies the core files. If this is the case, you’ll need to replace the core files of the site with a fresh copy directly from WordPress.
In order to do this, first head to download WordPress’ latest version – you can find this here:
https://wordpress.org/download/
Once you have a copy of these files, unzip them on your local device and remove the wp-content and wp-config.php files. Then, connect to your site via FTP and upload the folders and files to your site’s root folder, overwriting your current core files with the fresh upload.
Note: provided that you remove the wp-content files, doing this won’t affect the content of your website – text, images etc.
Once done, your site should be loading with the correct files necessary.
Alternatively, you can use the following WP CLI command after connecting via SSH to achieve this as well:
wp core download --force
There are a number of potential causes and fixes for ‘Error Establishing a Database Connection’ errors within WordPress. By making use of the above steps, you should be able to pinpoint and fix this error, and bring your site back online as soon as possible. Always be sure to take a backup before attempting any form of manual change to your site files and database.
Austin B.Error 500 after migrating a WordPress website using Wordfence
After migrating a WordPress website you may see a 500 error when testing the website. If you’re using the Wordfence plugin then chances are this is caused by an old path used within the files that will need to be updated.
To confirm if this is the issue, you can check the error logs on the package. You can do this by following these steps:
- Sign in to My20 and navigate to Manage Hosting > Options > Manage
- Select Access/Error Logs
If the issue is due to the path Wordfence is set to use then it will show an error similar to this:

This will display the path from your old host which will need to updated within the .user.ini in the website files.
Before we do that, you’ll need to get the path you need to replace it with. This can be retrieved when managing the hosting package under the Account information section on the right-hand side.

The home path will be the one needed and, in this example, it will be: /home/sites/23b/1/1bb7851745/
Next you will need to go to the file manager and locate the .user.ini which in most cases will be in the public_html folder - but this can depend on how the website is set up. Once you find the .user.ini file, edit it and it should look something like this:

You’ll need to change the /var/www/vhosts/domain.com to the home path link, appended with /public_html/wordfence-waf.php
So in this example you’d need to change /var/www/vhosts/domain.com/public_html/wordfence-waf.php to /home/sites/23b/1/1bb7851745/public_html/wordfence-waf.php
The path will need to follow the same path where the wordfence-waf.php file is located which should be the same location as the .user.ini by default.
Save the changes to the file and test the website again. This should have resolved that error. If there’s an error still showing on the website, then it’s possible that there could be another problem. The error log should have more information about it.
If there are still problems, please contact our support team who will be able to help further.
Reudiger DalchowHow to change your WordPress URL
Rebrands and name changes take place from time to time, so you might need to update the WordPress URL that your site uses. Or, you may have finally finished creating your site on a development domain or subdomain and be ready to bring your site live, but you’re unsure how to go about doing so.
define( 'WP_SITEURL', 'http://20i-example.com' );Change the WordPress URL with WP-CLI
For this fourth step, you will require SSH access to utilise WP-CLI (this is available to all 20i customers). Once you have connected to the hosting package via SSH, change directory to your WordPress installation – this is public_html for WordPress hosting packages. You will then need to run the following two commandsL
wp option update home 'http://20i-example.com' wp option update siteurl 'http://20i-example.com'
Search and Replace with a plugin
Occasionally there may be other instances of the old URL being set within the database after a URL chance. Editing the database of your site manually can be risky if you’re unfamiliar with the process.
Alternatively, you can use a third-party plugin to do it for you.
We recommend Better Search Replace. This plugin provides an easy to understand UI in your wp-admin area where you can search for certain entries in your site’s database and update them. This includes searching for your current site URL and updating it.
To do this:
- Log into your wp-admin area of your site, and search for the Better Search Replace plugin in your site’s Plugins > Add New area
- Select Install and Activate
- Better Search Replace will now appear as an option under Tools. Select it from the dropdown menu, and you’ll be presented with a form like below:

- Enter your current URL in Search for and the URL you’re updating to in Replace with. You’ll see further down a selection of checkboxes:

- Use Run as dry run if you want to see what tables the search and replace will update without actually changing anything, and hit Run Search/Replace
- Once you’re happy with what changes will be made, uncheck the Run as dry run option and run the search and replace again
This will update all of your site’s URLs in the database for you.
Updating your site’s URL on WordPress can be handled with multiple different tools and approaches depending on where and how your site is hosted. Always make sure to take backups before making any major changes like this, to ensure that you have a restore point.
FAQs
Do I need to add a redirect to allow my WordPress site to load the new URL?
WordPress should automatically redirect any attempts to connect to your old URL to the new domain you’ve added, so a redirect shouldn’t be required.
I finished updating all of my site’s URLs but the old site still shows, what’s going on?
It’s likely due to one of three reasons. Either the old URL still exists inside the domain in some form, a redirect exists on the domain that is correcting to the old URL or the old URL is caching.
Check your database and .htaccess for any references to the old URL, and run a full purge of the Edge Cache.
Jordan GravesWhich PHP functions are disabled on your WordPress platform?
Our WordPress platform has been specifically designed to offer the best security, performance and reliability for WordPress.
Lloyd CobbProtecting your WordPress contact form from spam using CAPTCHA
Adding a CAPTCHA to your WordPress contact form is a great way to prevent spam submissions and ensure that the messages you receive are from real users. In this guide, we'll walk you through the process of adding a CAPTCHA to your WordPress contact form using the popular Contact Form 7 plugin.
Chris WrightHow do I configure StackCache?
StackCache comes free for all WordPress sites on our WordPress Managed Hosting and Reseller WordPress Hosting platforms. StackCache has a number of options that can be used to personalise your caching, depending on what your site needs.
#={"images":"A86400","css":"A86400","javascript":"A86400"} ExpiresActive ON ExpiresByType "image/jpeg" "A86400" ExpiresByType "image/jpg" "A86400" ExpiresByType "image/gif" "A86400" ExpiresByType "image/png" "A86400" ExpiresByType "image/svg+xml" "A86400" ExpiresByType "image/webp" "A86400" ExpiresByType "image/vnd.microsoft.icon" "A86400" ExpiresByType "image/x-icon" "A86400" ExpiresByType "image/ico" "A86400" ExpiresByType "font/ttf" "A86400" ExpiresByType "font/otf" "A86400" ExpiresByType "application/x-font-opentype" "A86400" ExpiresByType "application/x-font-woff" "A86400" ExpiresByType "application/x-font-ttf" "A86400" ExpiresByType "application/font-woff" "A86400" ExpiresByType "font/woff2" "A86400" ExpiresByType "application/vnd.ms-fontobject" "A86400" ExpiresByType "text/css" "A86400" ExpiresByType "text/javascript" "A86400" ExpiresByType "application/javascript" "A86400" #-StackCacheStackCache Configuration
Further changes can be made to the behaviour of WordPress and StackCache using the settings available in this section.

- Automatic WordPress Updates: This adds a rule to wp-config that disables WordPress core updates – useful for if you wish to keep your WP version to a specific one for security or compatibility. This is enabled by default.
- Hide Purge Cache Link: The header bar at the top of wp-admin has an area that states Purge Cache and allows for you to purge the cache from anywhere in wp-admin. This option hides that link if it’s not needed. It’s disabled by default.
- Allow Editors to control StackCache: By default, StackCache is only accessible by wp-admin users with Administrator level access. This option changes it to allow Editor roles access as well, in case these need to clear the cache to show new updates. This is disabled by default.
- Disable StackCache: This temporarily disables the StackCache plugin entirely for debugging purposes. By default, this is enabled.
Advanced Options
The Advanced Options area allows for more specific cache-related modifications to be made to StackCache.
These settings can cause issues with the caching if implemented poorly, and so we recommend only enabling these on advice of either a developer or our support team.
These options are as follows:
- Remove PHP Session Cookies From All Pages: Prevent PHP Sessions from being started by your website. This will allow cache to function if PHP Session cookies are preventing it.
- Remove PHP Session Cookies Matching Empty PHP Sessions: This prevents any empty sessions being set by PHP cookies.
- Remove All Cookies From Your Homepage: Stops any cookies being set by your home page to help guarantee a cache hit. If you require cookies around your site but are looking for a quick loading home page, this can enable full page caching on your homepage whilst allowing cookies to be set on subpages.
- Make Automatic Cache Purging Purge Everything: When we detect content changes, we automatically purge the cache for the post/page URL modified, the index page and your sites RSS feed automatically. Enabling this option will trigger a full cache purge whenever these events are detected.
- Perform Automatic Cache Purging For All Post Types: By default, we only automatically purge the cache when standard post types are modified. Enabling this options will trigger a cache purge regardless of post type.
- Disable WordPress Built-in Theme / Plugin Editor: This is the equivalent of defining DISALLOW_FILE_EDIT in your wp-config.php file.
- Hide WordPress Version: Strip the meta generator tags from the page source and RSS feeds. This makes it harder for bots to identify the version of your WordPress site.
Cache Exclusions
The last page of settings allows for cache exclusions to be added to StackCache.

This informs StackCache to not cache that endpoint. Several examples are given of the formatting required for these rules. You can add multiple new rules using the Add Another Rule button if needed, which will create a new field for you to add an additional rule to.
Note: This only excludes the pages from StackCache caching. Origin and CDN cache can still cache these pages if implemented.
Ruth TurnerWhat is the WordPress CLI?
WordPress CLI is the command line interface for WordPress. This allows you to manage numerous different aspects of your WordPress website without logging in directly to the WordPress dashboard.
Examples of the tasks that can be accomplished include managing plugins, themes, users and roles.
There is no need to install WP-CLI, this comes preinstalled with every WordPress hosting package automatically.
Connecting to the package via SSH
Before obtaining access to WP-CLI, you will first need to connect to the hosting package via SSH. To see how to connect to your hosting package via SSH, please see our guide How do I connect a website via SSH?
Listing plugins
To list all of the plugins installed, the core command is wp plugin list. You can specify further, and add the --status=active argument, which only lists plugins with the status 'active'.
-bash-4.2$ wp plugin list --status=active
+-----------------+--------+--------+---------+
| name | status | update | version |
+-----------------+--------+--------+---------+
| bbpress | active | none | 2.6.11 |
| buddypress | active | none | 14.0.0 |
| classic-editor | active | none | 1.6.4 |
| classic-widgets | active | none | 0.3 |
| jetpack | active | none | 13.7 |
| performance-lab | active | none | 3.3.1 |
+-----------------+--------+--------+---------+
You can take this one step further by formatting the results as a count and totalling the number of active plugins using the --format=count argument.
$ wp plugin list --status=active --format=count
6Installing plugins
Installing plugins with WP-CLI is easy. The only piece of information required is the plugin name. In this example, we're installing the plugin: User Switching.
The core command for installing a plugin is wp plugin install [plugin-name]. You can add arguments to the end of a command for a further action. In the following example, that is --activate to automatically activate the plugin as soon as it has finished installing.
$ wp plugin install user-switching --activate
Installing User Switching (1.0.9)
Downloading installation package from https://downloads.wordpress.org/plugin/user-switching.1.0.9.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'user-switching'...
Plugin 'user-switching' activated.
Success: Installed 1 of 1 plugins.This saves an additional step of activating the plugin after installation.
Updating plugins
The core command for updating a plugin is wp plugin update [plugin-name], however, as with most commands you can add arguments to specify the action. Replacing the plugin name with the --all argument will update all plugins at once. Other arguments that can be used include: [--exclude=<plugin-name], which allows you to exclude a specified plugin from the update or [--minor], to only perform 'minor' patches (e.g. from 1.3 to 1.3.3, instead of 1.4).
$ wp plugin update --all --minor
Success: Plugin already updated.
Creating users
The core command for creating new users is wp user create [name] [username] --role=[role-name]. Similarly to the plugin commands, there are numerous arguments to be added to specify the action further. [--user_pass=<password>] allows you to set a pre-defined password for the user - by default, a random password is generated.
$ wp user create bob bob@example.com --role=author --user_pass=password123
Success: Created user 3.
Creating user roles
The core command for creating a new user role is wp role create [role-name] [role-group]. When creating a new role, you must assign the 'role group', which acts as the permission group that will be assigned. In the following example, the role group assigned is 'Approver'.
$ wp role create example-role Approver
Success: Role with key 'example-role' created.Retrieving site options
The core command is wp option, with numerous different sub-commands to help add & manage new options for your site. The most common would be to retrieve the site URL. This can be retrieved via the following:
$ wp option get siteurl
https://mydomain-uk.stackstaging.comMore WP-CLI
For a fully comprehensive document on all WP-CLI options, visit https://developer.wordpress.org/cli/commands/
Jordan GravesHow to Use Search and Replace in WordPress on My20i
Overview
You can use the WordPress Search and Replace tool in My20i to quickly update text or URLs across your WordPress database without plugins or logging into the WordPress dashboard. It’s beneficial when updating URLs after migrating your site, fixing repetitive text, or replacing outdated information.
Prerequisites
- Your WordPress website must be hosted on 20i’s Managed WordPress Hosting platform.
- WordPress must already be installed on your hosting package.
Steps
- Log in to your My20i control panel.
- Click on Manage Hosting.
- Choose the relevant hosting package, then click Options and select Manage.
- In the WordPress Tools section, click on Search/Replace.
- Select your environment (Live or Staging) using the dropdown menu.
- In the Search box, enter the text or URL you want to find.
In the Replace box, enter the new text or URL to replace it with. - Toggle Run as Dry Run to preview changes without modifying your data.
(We strongly recommend running a dry run first.) - Click Run Search and Replace.
After running, you'll see either a summary of potential changes (Dry Run) or confirmation of changes applied to your database.
Important Notes
- The tool updates database content only. It does not modify any WordPress files.
- Always run a dry run first to review the potential changes.
- Ensure you have a recent backup before performing live replacements, especially on production sites.
Related Articles
- How to change your WordPress URL
- I installed WordPress on the temporary URL, how can I change it to my domain name?
Chris Wright





Joshua Rosato
Josh Sargent