What Web Hosting Works Best with MemberPress?

Picking The Right Web Host For MemberPress

We're asked this question a lot, so we've decided to share what we've learned about various popular hosts and their compatibility with MemberPress. We've outlined this information below.

Most importantly, caching that is too aggressive just doesn't mesh well with the dynamic needs of Membership sites. And web hosts that are unwilling to work with customers to make some caching exclusions should be avoided. We've found most decent WordPress web hosts are willing to work with caching exclusions or at least have options to disable their caching.

Therefore, no matter what hosting you pick, be sure to spend a little extra time investigating what form(s) of caching they use and how configurable those features are.

Following are our recommendations on some of the most popular hosting services, listed in alphabetical order.


20i WordPress Hosting

Their managed WordPress hosting comes with the StackCache plugin that you'll have to adjust, as shown in this image, to ensure proper MemberPress functionality:

If you've used some other pages than the default "thank-you", "account", "login", and "register", you'll have to adjust for that.

Their hosting panel has settings for deferring JavaScript, so if you encounter some functional issues with your website, you might need to switch that option off, if enabled, or at least exclude jQuery from deferring.


Bluehost Managed WordPress Hosting

We haven't heard of many issues with Bluehost Managed WordPress hosting aside from the Varnish caching feature they have enabled by default. So be sure to turn off Varnish caching if you use MemberPress with Bluehost's Managed WordPress hosting.


Bluehost Shared Hosting

Though there shouldn't be any issues with Bluehost's shared hosting, we've received some recent reports of Bluehost forcing server-level Varnish caching on sites using too many resources, which can cause unexpected issues with MemberPress.

Therefore, if your site is growing and traffic is picking up, we recommend moving off of shared hosting.

For both types of hosting, please check whether you have the Must-Use plugin section in your Dashboard Plugins section, and if you do, make sure that the Endurance Page cache plugin is disabled.


Cloudways Hosting

Cloudways often comes with the Breeze caching plugin pre-installed. In order to adjust it, please check the Breeze section of our How to Set Up Popular Caching Plugins with MemberPress page.

Some Cloudways hosting plans come with Varnish cache enabled. If you encounter it, you'll have to adjust it according to this page of their online documentation: https://support.cloudways.com/en/articles/5496342-how-to-use-varnish-at-cloudways#h_4f3846fd10.

According to this paragraph from the above page:

If you use an incomplete destination URL such as (/booking/) and if such path has more succeeding links such as booking/list or booking/items, all such items will not be cached by Varnish.

You'll need to exclude these URLs (based on default MemberPress settings): /thank-you/, /account/, /login/, /register/, /mepr/ and /unathorized/.


DigitalOcean Hosting

Generally, DigitalOcean works well with WordPress and MemberPress. Make sure that you set up the Breeze caching plugin based on our recommendations. If you plan to protect static files like PDFs, you'll need to have them add some code to your Nginx host file to allow this to work properly with MemberPress' file protection Rules (Custom URI Rules). To learn how to do this, please see the Nginx section on this page. Or, as an alternative, you can use our Downloads add-on, which is included free with MemberPress.


Dreamhost / DreamPress Hosting

The standard shared Dreamhost package appears to have an issue with the mod_security, where Stripe webhook will fail with the "500 Internal Server Error" and "Invalid encoding: ISO-8859-1"

If this happens to you. you'll need to contact their support and ask them to adjust mod_security.

DreamPress hosting package uses server-level Varnish caching, which can cause unexpected issues with MemberPress. This most often shows up as issues with PayPal sending IPN notifications to your site. If you have verified that the IPN settings are correct in both MemberPress and PayPal, but PayPal IPN keeps retrying to send and eventually fails, contact DreamPress to resolve the issue.

If you encounter the issue where Stripe webhook fails to work properly and transactions end up in Pending status or missing completely, please ask their support to check the error log file. If they find the " 418 I'm a teapot" error code (please don't laugh) 😀 you'll have to ask them to adjust their mod_security and create rule exceptions for the tags in the "418" error message they see on their end. That should solve the issue.


GoDaddy / MediaTemple Managed WordPress Hosting

GoDaddy's Managed WordPress Hosting uses an aggressive form of caching, which, due to the dynamic nature of membership plugins like MemberPress, can cause unexpected behaviors.

We cannot recommend nor do we support GoDaddy's Managed WP Hosting, as we've seen continued issues with it, and GoDaddy has so far not allowed anything to be excluded from their over-aggressive caching. 

If you must use GoDaddy, we recommend moving onto one of their Shared or Business (which may be a better option for higher traffic sites) hosting plans that do not use aggressive caching.


GoDaddy / MediaTemple Shared or Business Hosting

GoDaddy's and MediaTemple's Shared and Business Hosting plans are not subject to the aggressive caching used in their Managed WordPress plans, and both work just fine with MemberPress.


GridPane Hosting

This hosting uses Nginx, and you'll need to add this piece of code to either a website-specific config or a server-level config to exclude default MemberPress-generated pages:

if ($request_uri ~* "(/thank-you.*|/account.*|/login.*|/register.*|/mepr.*/|/unauthorized.*)") { set $skip_cache 1;<br> set $skip_reason "${skip_reason}-request_uri"; }

For details, please refer to https://gridpane.com/kb/exclude-a-page-from-server-caching/ or contact their support for assistance.


Imperva Incapsula Hosting

Coming soon!


Kinsta Managed WordPress Hosting

Though we don't have any direct experience with Kinsta, their support has reached out to us to let us know that they've seen many MemberPress customers using their Managed WordPress Hosting without any issues.

It's important to note that they use strictly an Nginx based web-server, which means you will not be able to use our Apache .htaccess rewrite Rules that are typically available to Apache-based web-servers. This is not a problem if you don't plan to use our Custom URI Rules to protect any locally hosted static files like PDFs, ZIPs etc. All other content protection Rules will work just fine with Nginx. As an alternative, you can use our free Downloads add-on to manage and protect files instead.

Kinsta also uses various forms of caching, so we make the following recommendations for our MemberPress users on their awesome platform:

  • Disable their HHVM option (this will prevent object caching from being enabled, which can have some unexpected results). Update: It looks like HHVM is no longer available with Kinsta. Object caching can still be enabled if you purchase their Redis add-on, which we do not recommend.
  • Do not use any caching plugins like W3TC, WP Rocket, WP Super Cache, or WPFC etc. These are not necessary, given the other caching options that are provided for free with your Kinsta hosting plan.
  • Go to your WordPress Dashboard >
    • /register* (This may be different if you've set a different Memberships slug in your MemberPress options)
    • /login* (Don't cache the login page)
    • /account* (Don't cache the account page)
    • /mepr* (Don't cache the IPN, Webhook, and other Notification and API endpoints)
    • /thank-you* (Don't cache the Thank You page)
    • /unauthorized* (Don't cache pages related to built-in redirect in case of unauthorized access)

      You can find detailed instructions here.


Liquid Web Managed WordPress Hosting

Liquid Web's Managed WordPress Hosting uses a built-in Varnish cache that is automatically enabled on all their Managed WordPress websites when they are created. However, it interferes with the proper operation of MemberPress.

Luckily, Varnish caching can be easily disabled from the Managed WordPress Portal. Disabling it is a quick process that takes just a few clicks. Here you can find an instruction on how to do that: https://www.liquidweb.com/kb/organizing-your-sites-in-managed-wordpress-portal/


Namecheap EasyWP Managed WordPress Hosting

Namecheap's Managed WordPress Hosting uses object caching and EasyWP caching plugin that can't be disabled. Due to the dynamic nature of membership plugins like MemberPress, you'll have to contact their support and ask them to exclude pages from MemberPress -> Settings -> Pages tab. Due to the NO_AUTO_VALUE_ON_ZERO being set in the SQL_MODE in the database, please ensure that you use the latest version of all MemberPress add-ons.

However, Namecheap's shared hosting runs well with MemberPress without the need for any adjustments.


One.com Hosting

Some of One.com hosting plans come with Varnish enabled. If your website is on such a plan and you have issues with MemberPress, you'll need to disable Varnish completely since you can't exclude individual URLs/URIs from it.

This is how it should be done:

First, disable the Performance Cache plugin if you have it enabled.

Then add this to the .htaccess file located at the root of your WordPress installation:

Header add "Cache-Control" "no-cache"

That should permanently disable the Varnish cache. If you don't feel comfortable doing it on your own, please contact their hosting support and ask for assistance.


Pantheon Hosting

Pantheon hosting comes with a built-in cache. Based on this page from their online documentation - https://pantheon.io/docs/cache-control you should create a must-use plugin and install it in order to exclude specific MemberPress pages from caching.

Thi sis based on MemberPress default pages in the MemberPress -> Settings -> Pages tab:

/* * Set $regex_path_patterns accordingly. * * We don't set this variable for you, so you must define it * yourself per your specific use case before the following conditional. * * For example, to exclude pages in the /news/ and /about/ path from cache, set: * * $regex_path_patterns = array( * '#^/news/?#', * '#^/about/?#', * ); */

$regex_path_patterns = array( '#^/thank-you/?#', '#^/account/?#', '#^/login/?#', '#^/register/?#', '#^/mepr/?#', '#^/unauthorized/?#',);

// Loop through the patterns.foreach ($regex_path_patterns as $regex_path_pattern) { if (preg_match($regex_path_pattern, $_SERVER['REQUEST_URI'])) { add_action( 'send_headers', 'add_header_nocache', 15 );

// No need to continue the loop once there's a match. break; }}function add_header_nocache() { header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );}

If you don't feel comfortable doing that yourself, please get in touch with their support and ask for assistance.


PixelInternet Hosting

This hosting comes with the Edge Caching For Speed enabled in all of its plans. In order to ensure proper functionality of MemberPress, you'll need to contact their support and ask them to exclude "thank-you", "account", "login", "register", "mepr", and "unauthorized" URLs/URIs from that cache. If you've changed defaults to your own pages for the first four, you'll have to adjust for that.


Pressable Hosting

Pressable hosting comes with the built-in Batcache. In order to exclude MemberPress pages from caching, you'll need to add these lines to the end of the wp-config.php file:

if ($_SERVER['REQUEST_URI'] == '/thank-you/' && $batcache) { $batcache->max_age = 0; } if ($_SERVER['REQUEST_URI'] == '/account/' && $batcache) { $batcache->max_age = 0; } if ($_SERVER['REQUEST_URI'] == '/login/' && $batcache) { $batcache->max_age = 0; } if ($_SERVER['REQUEST_URI'] == '/register/' && $batcache) { $batcache->max_age = 0; } if ($_SERVER['REQUEST_URI'] == '/mepr/' && $batcache) { $batcache->max_age = 0; } if ($_SERVER['REQUEST_URI'] == '/unauthorized/' && $batcache) { $batcache->max_age = 0; }

This applies to the defaults offered by MemberPress. If you've changed those to something else, you'll need to adjust the code accordingly.


RunCloud

This is not an actual hosting company but more of an interface that can be used by several cloud hosting providers like DigitalCloud, AWS, Google Cloud, Vultr and maybe some other providers. It contains something called RunCloud Hub that comes with built-in caching and an interface to control it. More about it here - https://blog.runcloud.io/runcloud-hub/.

In order to adjust caching for MemberPress, please go to your WordPress Dashboard > Settings > RunCache. Once there, go to the Rules section and add these URLs to the Exclude URL Path text box:

/thank-you.*/account.*/register.*/mepr.*/unauthorized.*

The /login.* should be there as one of the default values. Please don't delete any of the defaults already there.

Once done, please save the changes and select the Clear All Cache option from the RunCloud Hub menu in the Admin bar. If you have changed the defaults offered by MemberPress in the Pages tab, you'll have to adjust URLs to reflect those used on your case.


SiteGround WordPress / Shared Hosting

SiteGround has also been a very good host for MemberPress users. But as with WP Engine and other caching hosts, we recommend disabling their SG Optimizer that comes pre-installed with every shared hosting plan. At the very least, ensure that register, thank you, mepr, account, unauthorized, and login pages are not cached.

Also, you'll need to disable the Memcached at the bottom of the same page.

IMPORTANT NOTICE: It appears that Siteground, on its shared hosting plans, caches every page even if you don't have the SG Optimizer plugin installed and activated. In order to ensure the proper functionality of MemberPress, please install and activate SG Optimizer and adjust it as outlined in the link below.

Detailed instructions are located here.


Strato Shared Hosting

If you experience an issue where Stripe transactions are not getting through on Shared Hosting plans, please contact their support and ask to deactivate two functions that are active by default in the hosting profile:

  • ServerSide Security (ServerSide AntiVirus, ServerSide AntiSpam)
  • PHP Boost

Another reason that causes both Stripe and Paypal transactions to fail is the setting in the Strato Dashboard that stops "Guestbook Spam":

You need to disable that if payments are not reaching MemberPress. More about that in this article (in the German language) - Strato und Paypal: IPN kommt nicht an - webdecker - Webseiten PHP Contao Programmierung Berlin.


WP Engine WordPress Hosting

WP Engine has been a very good host for MemberPress, and we have no problem recommending them. However, there are a few things you should do if you plan to use WP Engine and MemberPress.

  1. Contact their support and ask for your /register, /login, /mepr, /account, /thank-you, and /unauthorized pages to NOT be cached
  2. Disable their Object Caching as it can cause some unexpected issues.
  3. If you plan to protect static files like PDFs, you'll need to use our Downloads add-on, which is included free with MemberPress.
  4. If you experience any issues with Cron jobs, you can enable WP Engine Alternate Cron - a service on the server that checks for "due now" crons every minute. To enable Alternate Cron, simply reach out to WP Engine Support. Additionally, alternate cron can be used to mimic a server cron because WP Engine does not support true linux, or server side, crons. Alternate cron runs at a consistent minute interval and can be used instead to run other processes that require a schedule.

WPX WordPress Hosting

WPX has its own WPX Cloud CDN, and in order to secure proper MemberPress functionality, the default MemberPress pages will need to be excluded from caching. You can do that yourself by adding this piece of code to the .htaccess file:

<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_URI} "/thank-you/" [NC,OR]RewriteCond %{REQUEST_URI} "/login/" [NC,OR]RewriteCond %{REQUEST_URI} "/account/" [NC,OR]RewriteCond %{REQUEST_URI} "/register/" [NC,OR]RewriteCond %{REQUEST_URI} "/mepr/" [NC,OR]RewriteCond %{REQUEST_URI} "/unauthorized/" [NC,OR]RewriteRule ^ - [E=nocache:true]Header always set Cache-Control "no-cache" env=nocacheWordPressProtect captcha, 2</IfModule>

However, if you're not comfortable changing the file yourself, you can get in contact with WPX Support and ask them to do it for you.

Please note that if you've used some other pages than those set up by default, you'll need to change the above code to reflect that. The same applies to any additional "Thank You" or registration pages realised using MemberPress shortcodes. Those would need to be excluded as well.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.