Category: Web Design and Development

  • Headless WordPress: The Easiest & Best Way To Set Up A Decoupled Site

    Headless WordPress: The Easiest & Best Way To Set Up A Decoupled Site

    There is a pervasive myth in the web development community: “WordPress is for novices. Real developers build custom apps.”

    If you’re a developer who loves the clean workflow of Git, the component architecture of React, or the speed of static sites, you might look at WordPress with disdain. You might picture bloated plugins, spaghetti PHP code, and ongoing security concerns.

    But if you ignore WordPress, you are ignoring a tool that powers over 60% of all websites using a CMS.

    That market dominance isn’t an accident, and it isn’t just because it’s “easy” for beginners. It’s because WordPress solved the hardest problem in web development: Content Management.

    As technical experts, we need to stop looking at WordPress as a “website builder” and start seeing it for what it truly is: a highly accessible, open-source, API-driven Content Database.

    Whether you are using a sophisticated Roots.io stack with Git integration or going fully Headless, WordPress gives you complete freedom to manipulate the frontend while empowering your non-technical team.

    However, the allure of “simplifying” the stack often leads developers to swing the pendulum too far in the opposite direction. In an effort to escape database management and PHP, many technical teams migrate to pure Static Site Generators (SSGs), relying solely on Markdown files.

    While this initially feels like a developer’s utopia, offering total control and zero maintenance, it often turns into an operational nightmare for the rest of the organization.

    Who This Architecture Is For

    This approach is not aimed at hobby sites or solo blogs. It is designed for teams where developers and content editors have different needs.

    If you are working with:

    • A marketing or content team that needs editorial autonomy
    • Developers who prefer modern JavaScript frameworks
    • A product or SaaS site where performance and security matter

    Headless WordPress becomes a practical architectural choice rather than an experiment.

    Why You Shouldn’t Use Static Site Generators

    Many teams migrate to Static Site Generators (SSGs) for faster page load times and simpler hosting requirements, as Markdown files power them. On the surface, the idea sounds utopian as it is “Just a bunch of HTML files! No database! Easy deployment!“

    Using a static file-based solution would mean you now need a PR for every update to a blog post. Let’s look at the reality of that workflow in a mid-sized company:

    • A marketing manager spots a typo in a blog post.
    • They can’t fix it. They have to ask a developer. The developer must create a branch, fix the typo, commit, push, open a Pull Request (PR), wait for the CI/CD, and then merge.
    • Your highly paid engineers are spending time fixing typos instead of shipping product.

    We cannot expect marketing teams to learn Git or write perfectly formatted Markdown. We need to empower them with a CMS while retaining our own developer freedom.

    Classic vs. Headless WordPress

    For advanced development teams, the biggest friction point with WordPress isn’t the dashboard; it’s the templating engine.

    You might already have a sophisticated corporate identity, a component library built in React, or a legacy styling setup that your team loves. Trying to shoehorn that existing frontend architecture into the standard WordPress PHP template hierarchy (single.php, header.php, the Loop) can feel like forcing a square peg into a round hole.

    You often end up fighting the CMS rather than leveraging it, translating modern frontend patterns into WordPress-specific PHP themes. This adds complexity, slows iteration, and ties your frontend decisions to the WordPress render cycle.

    This is where the distinction between Classic and Headless WordPress changes the game.

    The Classic WordPress

    In the Classic WordPress model, the backend (admin interface/database) and the frontend (what the user sees) are tightly coupled. They live on the same server and share the same codebase. When a user visits your site, WordPress dynamically generates the HTML based on your active theme.

    For many projects, this is fine (even preferred). But for a technical team that wants to iterate on the frontend independently of the content engine, this monolithic structure can be a bottleneck.

    Developers often try to add their modern components within a custom PHP theme or build complex custom plugins to manage data, aiming to make the WordPress editor feel more like a modern frontend experience.

    While this can offer temporary relief, it often leads to a more complex, heavier application. You are still ultimately constrained by the limitations of the WordPress render cycle and the PHP environment, and you’re forced to maintain a custom codebase that may be difficult for new developers to onboard to. 

    The Headless Revolution

    Headless WordPress decouples this relationship entirely. Think of it as performing surgery: you keep the “Body” (the robust content management, user roles, and database) because WordPress does that better than almost anyone else. However, you sever the “Head” (the frontend display layer).

    In this architecture, WordPress becomes a data source. It sits quietly in the background, waiting for instructions. You then use the WordPress REST API or WPGraphQL to fetch that content and inject it into a completely separate frontend application.

    This shift from “Website Builder” to “Content API” unlocks three massive advantages for technical teams:

    • You are no longer bound by PHP. You can build your frontend in React, Vue, Svelte, Angular, Next.js, Gatsby, or even plain HTML/JS. If your team is already proficient in React, they can build the site using the tools they know and love, simply treating WordPress as a JSON endpoint. You stop hacking themes and start building applications.
    • In a classic setup, your content is trapped in the website’s HTML. In a headless setup, your content is portable data. You can publish a case study once in WordPress and have it instantly available via API to your marketing website, your native iOS/Android app, an internal intranet dashboard, and even a smartwatch interface simultaneously.
    • Because your frontend is physically separated from your backend (often hosted on entirely different servers or CDNs), your database is not directly exposed to user traffic. Even if your frontend site experiences a large traffic spike or an attack, your WordPress installation is far less exposed, since it is not directly serving public traffic and can be further protected behind the API layer.

    If you want to combine the SEO benefits of static sites with the dynamic power of a CMS, pairing WordPress with a framework like Gatsby is a good choice.

    Gatsby pulls your data from WordPress via GraphQL, generates static HTML at build time, and deploys it to the edge. This results in extremely fast page loads that are difficult for traditional PHP-rendered sites to match at scale. If you want to learn more about this architecture, then we recommend reading why Gatsby chose headless WordPress for its blog.

    How To Set Up Headless WordPress with Gatsby

    For this guide, we will use RunCloud to manage our infrastructure. RunCloud offers an excellent balance of server control and ease of use. While a production workflow usually involves local development pushed to a Git repository with CI/CD pipelines (Atomic Deployment), we will perform this setup directly on the server to demonstrate the architecture clearly.

    Here is how you connect the dots between your WordPress backend and your Gatsby frontend.

    Step 1: Set Up the WordPress Backend (The “Body”)

    First, we need the source of truth for your content.

    1. Create the App: Log in to your RunCloud dashboard and create a new Web Application. This will host your WordPress installation.
    2. Install WordPress: Use the RunCloud “One-Click Install” feature (or your preferred installation method) to get WordPress running.

    Important Note: For this WordPress Backend step, do not use your final, public-facing domain (e.g., www.example.com). Use a subdomain dedicated to the backend, such as backend.example.com or internal.example.com. Your final domain will be assigned to the Gatsby Frontend application in Step 2.

    1. Configure Permalinks: This is a crucial step! Go to Settings > Permalinks in your WordPress dashboard. Set it to “Post name” or a custom structure. The default “Plain” setting (?p=123) can sometimes cause issues with GraphQL routing.
    2. Install Essential Plugins: Go to Plugins > Add New and install the following two plugins:
      • WPGraphQL: This exposes your WordPress data via a GraphQL API.
      • WPGatsby: This optimizes communication between WordPress and Gatsby, handling tasks such as cache invalidation and delta updates.

    Your marketing team will log in here to publish content. To them, it appears to be a standard WordPress site.

    Step 2: Prepare the Frontend Environment

    Now, we need a place for the Gatsby application to live.

    1. Create a New Web App: Back in RunCloud, create a second Web Application.
    2. Select Stack: Choose an Empty Web App stack (since Gatsby is a React-based framework running on Node).
    3. Domain: Assign your public-facing domain to this application (e.g., www.example.com).
    create a site on runcloud

    In a production environment, you would develop locally, push to Git, and use RunCloud’s Git deployment feature. For this tutorial, we will initialize the app directly on the server to give you an immediate overview of the file structure.

    Step 3: Install Gatsby via SSH

    Connect to your server via SSH using the system user attached to your Frontend Web Application. Before moving ahead, ensure the Gatsby CLI is installed globally on the server by running the following command:

    npm install -g gatsby-cli

    Navigate to the root directory of your new application (/home/username/webapps/appname). In this folder, you will need to delete the default index.html file by running the following command.

    rm index.html

    Once the directory is empty, run the following command to generate the site skeleton using a WordPress-specific starter:

    gatsby new . https://github.com/gatsbyjs/gatsby-starter-wordpress-blog 

    This command pulls down a pre-configured Gatsby site optimized for fetching data from WordPress.

    You have now initialized the core files for your Gatsby frontend in this folder. You can update the React components, styling, and general structure as you like.

    Step 4: Connect Frontend to Backend

    You need to tell Gatsby where your WordPress API lives. Open the configuration file using your preferred editor (nano or vim):

    nano gatsby-config.js

    Locate the configuration options for gatsby-source-wordpress and update the url setting to point to your backend’s GraphQL endpoint. After editing, it will look like this:

    Configure headless wordpress

    Save and exit the file by pressing Ctrl + O, Enter, and Ctrl + X. 

    For a deep dive into advanced configuration, schema customization, and troubleshooting, we highly recommend reading the official documentation: Gatsby Source WordPress Documentation

    Step 5: Build and Deploy

    Now, we will need to generate the static files that will be displayed on the internet.

    Handle SSL (Optional): If your backend is on a staging server using a self-signed certificate, Gatsby might refuse to connect. You can bypass this temporarily by running:

    export NODE_TLS_REJECT_UNAUTHORIZED=0

    Build the Site: Run the build commands to fetch the data from WordPress and generate the HTML/CSS/JS files in your Gatsby environment:

    gatsby clean
    gatsby build

    Update Public Path: By default, RunCloud points the web server to the root of your application. However, Gatsby compiles your static site into a folder named “public”. Therefore, we will update the public path of the Gatsby web application in the RunCloud dashboard. Please note that we don’t need to modify this setting for the WordPress backend.

    1. Go to your RunCloud Dashboard > Web Application > Settings.
    2. Change the Public Path to /public.
    3. Save settings by clicking the Update Stack button.

    After updating the public path, your website will be immediately accessible on the internet. 

    Suggested Read: What is WordPress Object Caching

    Next Steps and Considerations

    With your Headless WordPress architecture now fully deployed, here are a few things to consider for ongoing maintenance and optimization:

    Continuous Deployment for Content Changes

    Currently, every time your marketing team publishes a new post or makes an edit in the WordPress dashboard (Step 1), you still need to manually run gatsby build on your server (Step 5) to see the changes on the live site. To automate this process, you need to implement Webhooks and CI/CD.

    • Configure Webhooks: The WPGatsby plugin you installed in Step 1 can be configured to automatically send a signal (a webhook) to an external service every time content is saved or published.
    • Trigger a Build: Set up your deployment pipeline (e.g., using RunCloud’s Git deployment feature or a dedicated service like Netlify/Vercel) to listen for this webhook. When the signal is received, the pipeline automatically triggers a new Gatsby build, fetching only the updated content (delta changes) and deploying the new static files.
    • Benefit: This creates a zero-touch content workflow, where the content team publishes content, and the live site updates automatically in minutes, without requiring developer intervention.

    Scaling and Optimization

    Since your frontend is static, hosting it on a global Content Delivery Network (CDN) will drastically reduce load times for international users. Services like Cloudflare or AWS CloudFront can be easily configured to sit in front of your Gatsby application.

    Maintaining Security

    The separation of your backend and frontend inherently improves security, but proactive measures are still essential for the WordPress installation:

    • Regular Updates: Ensure your WordPress core, themes (even those unused for templating), and all plugins (especially WPGraphQL and WPGatsby) are kept up to date. We strongly recommend using Patchstack for this step, as it secures your website from vulnerabilities by using RapidMitigate technology, which protects your website even if the plugin developers haven’t released an update.
    • Firewall Rules: Use the firewall features to restrict access to the WordPress dashboard (e.g., only allow specific IP addresses or VPN ranges) since it’s an internal-only application.

    This decentralized approach gives you the ultimate control to tune and scale each component independently, ensuring both performance and editorial freedom.

    WordPress is a Power-Up, Not a Compromise

    For too long, developers have viewed WordPress as a “necessary evil”, something you tolerate because the client demanded it. It’s time to retire that mindset.

    When you pair WordPress with a modern architecture, such as a Headless setup, it stops being a compromise and becomes a massive workflow accelerator. It solves the content problem instantly, allowing your team to focus on what actually moves the needle: building high-performance user interfaces, optimizing conversion funnels, and shipping code.

    You get the stability of a CMS that powers over 60% of the web, combined with the bleeding-edge speed of a React frontend. 

    You Don’t Need to Be a Linux Expert

    Perhaps the biggest hesitation remaining is the infrastructure. “If I go Headless, don’t I need to manage multiple servers? Do I need to be a Linux sysadmin to keep this secure?”

    This is where RunCloud bridges the gap.

    Powerful architecture shouldn’t require you to spend your time managing low-level server configuration. RunCloud does all the heavy lifting for you. We automate the provisioning, security patching, and server management so you can deploy a WordPress backend and a Node.js frontend in minutes, not days.

    But unlike “Managed Hosting” that locks you in a black box, RunCloud respects your expertise.

    • We handle the tedious tasks: SSL installation, backups, and service monitoring occur automatically.
    • You retain control: You maintain full root access to your server. Want to tweak a custom NGINX config? Go ahead. Need to install a specific server-side library? You have the keys.

    You get the convenience of a managed dashboard with the raw power of a VPS.

    Ready to Build Your Headless Stack?

    Don’t let infrastructure headaches stop you from building the best version of your website. Join developers and agencies using RunCloud to deploy faster, secure their infrastructure, and scale with confidence.

    Sign up for RunCloud today and start building your next project with the freedom you deserve.

    Frequently Asked Questions

    Is Headless WordPress too complex for a small development team?

    While the initial setup requires more architecture than a standard install, it often simplifies long-term maintenance by separating the frontend code from the content database. This separation enables your developers to work with modern frameworks, such as React, without compromising the content editing experience for the marketing team.

    Does using a Headless architecture hurt my SEO rankings?

    On the contrary, a Headless setup often improves SEO by using Static Site Generation (SSG) via tools like Gatsby or Next.js. These frameworks generate pre-rendered HTML that loads instantly and achieves high Core Web Vitals scores, which are a major ranking factor for Google.

    Do I need to be a Linux system administrator to use RunCloud?

    No, RunCloud is designed to eliminate the need for command-line expertise by providing a visual dashboard for server management. We handle the heavy lifting (such as configuring NGINX, firewalls, and SSL certificates) so you can focus on your application, while still providing root access if you ever need it.

    Why use RunCloud instead of traditional “Managed WordPress” hosting?

    Traditional managed hosting often locks you into a “black box” environment where you cannot change server configurations or install custom software. RunCloud offers the best of both worlds: the automated convenience of managed hosting, combined with the flexibility and cost-effectiveness of owning your own VPS infrastructure.

    Will my existing WordPress plugins be compatible with a Headless setup?

    Backend plugins that manage structured data, such as Advanced Custom Fields (ACF), work well by exposing their data via the API. SEO plugins, such as Yoast, can still be used as data sources but require explicit integration in the frontend to render metadata correctly. However, frontend-specific plugins, such as visual page builders or sliders, will not work, as you are replacing the WordPress theme layer with your own custom frontend code.

    Is WordPress secure enough to be used as an enterprise backend?

    WordPress is highly secure when maintained correctly, and a Headless architecture makes it even more secure by decoupling the database from the user-facing site. Since the frontend consists of static files or a separate Node.js app, your actual WordPress database remains hidden from direct public traffic and potential attacks.

    Why not just use a pure file-based CMS instead of WordPress?

    File-based systems (using Markdown) often struggle to scale when multiple non-technical users need to edit content simultaneously. WordPress provides a robust, multi-user database with granular permissions and a user-friendly interface that file-based systems simply cannot match for team collaboration.

    Does running two separate applications (Frontend and Backend) double my hosting costs?

    Not necessarily, because the WordPress backend in a Headless setup requires fewer resources since it isn’t serving public traffic. Furthermore, using RunCloud allows you to host multiple web applications (both your WordPress backend and Node.js frontend) on a single server, keeping your infrastructure costs efficient.

    What happens if my server goes down? Does RunCloud fix it?

    RunCloud provides tools to monitor your server’s health and automatically restart services (such as NGINX or PHP) if they crash. While we manage the software layer and configuration to prevent downtime, you retain full control and ownership of your relationship with your cloud infrastructure provider (like AWS, UpCloud, or DigitalOcean).

  • How to Make Fewer HTTP Requests on WordPress & Speed Up Your Site

    How to Make Fewer HTTP Requests on WordPress & Speed Up Your Site

    A slow WordPress site isn’t just frustrating – it drives visitors away and hurts your SEO.

    In most cases, the cause is simple: too many HTTP requests.

    Every script, image, and font file your browser fetches adds another delay, which hurts your WordPress website performance and Core Web Vitals

    This guide shows you how to cut those requests at the source – and make your site load noticeably faster. You’ll learn how to configure your WordPress site to:

    • Dequeue unnecessary assets properly
    • Combine images using CSS sprites
    • Disable WordPress emojis.

    Let’s get started!

    What are HTTP Requests on a WordPress Website?

    Let’s try to understand this with the help of an example. You can think of your web browser as a personal shopper with a list of things it needs to build the webpage you want to see.

    An HTTP request is a single trip your shopper (the browser) makes to a server to pick up one item on that list. For a WordPress site, this list is long and includes trips to different “stores” (servers):

    • Your Server: It needs to get the logo, background images, the main text content, and theme files (CSS for styling, JavaScript for interactivity).
    • Google’s Servers: It might need to fetch custom fonts (Google Fonts).
    • Facebook’s Servers: It might need to grab a tracking pixel or a “Like” button script.
    • Other Servers: It may need to get a video from YouTube or an icon from a font library.

    Each one of these “trips” is an individual HTTP request. A modern website can easily make 50-100 of these requests just to load a single page, and a slow or disorganized shopping trip makes for a frustratingly slow website.

    Benefits of Making Fewer HTTP Requests in WordPress

    Reducing the number of “shopping trips” your browser has to make provides immediate and significant benefits.

    1. Firstly, it dramatically improves page load speed and creates a much better experience for your visitors.
    2. Secondly, this speed boost directly impacts your SEO and Core Web Vitals, as search engines like Google reward fast, responsive websites with better rankings.
    3. Finally, fewer requests mean less work for your server. This allows it to handle more traffic without slowing down, which is important for growing your business.

    Suggested read: How To Use NGINX FastCGI Cache (RunCache) To Speed Up Your WordPress Performance

    Measuring HTTP Requests with Waterfall Analysis

    The best way to see all these HTTP requests is with a waterfall analysis, which you can find in tools like GTmetrix or your browser’s developer tools (F12 > Network). A waterfall chart gives you a visual breakdown of every single file your browser requests to build the page. It looks like a cascading series of bars, showing:

    • What was requested: Every image, script, and stylesheet.
    • Where it came from: Your server, a CDN, or an external site.
    • How long it took: Long bars are performance bottlenecks.
    http requests in browser

    By analyzing this chart, you can pinpoint exactly what is slowing your site down: too many files, large images, or slow external services.

    Suggested read: How To Use Redis Full-Page Caching To Speed Up WordPress

    How Reducing HTTP Requests Works on a WordPress Site

    As we already discussed, every element on a WordPress site, each image, stylesheet (CSS file), script (JavaScript file), and font, requires the browser to make a separate request to a server to download it. And if a web browser has to perform more tasks, it would take longer.

    If we reduce the number of requests, we can speed up the entire loading process:

    Remove or Replace Heavy Plugins and Themes That Load Excessive Assets

    The single biggest source of unnecessary HTTP requests in WordPress comes from poorly coded or feature-heavy plugins and themes. A complex theme or a “do-it-all” plugin might load dozens of its own CSS and JavaScript files on every single page, even if the feature isn’t being used.

    Auditing and replacing these heavy assets with lightweight, modular alternatives is a high-impact first step toward a leaner, faster website.

    1. Use a tool like GTmetrix or open the “Network” tab in your browser’s DevTools to run a waterfall analysis. Look for clusters of .css and .js files being loaded from specific plugin or theme directories (/wp-content/plugins/plugin-name/).
    2. For each heavy plugin, ask: “Is this functionality critical?” and “Can it be achieved more simply?” For example, a heavy social sharing plugin might be replaceable with simple HTML links or a lighter plugin.
    3. Research plugins and themes that are specifically marketed as “lightweight,” “performant,” or “modular.” Look for options that allow you to disable features (and their associated assets) that you are not using.
    4. Deactivate the heavy plugin on a staging site, install the lighter alternative, and run the waterfall analysis again to measure the reduction in requests.

    Suggested read: The Complete WordPress Speed Optimization Guide

    Load Assets Conditionally and Dequeue Unused CSS/JS Per Page

    Many plugins load their assets globally. For example, the scripts for your contact form are also loading on your homepage and blog posts, where there is no form. Conditional loading is the practice of preventing assets from loading on pages where they are not needed.

    This approach ensures that each page only loads the absolute minimum number of files required for it to function correctly. If you prefer a code-based approach, you can use WordPress functions wp_dequeue_style() and wp_dequeue_script() in your theme’s functions.php file. Wrap them in conditional tags to target specific pages.

    Example: To disable a contact form script everywhere except the “Contact” page:

    add_action( 'wp_enqueue_scripts', 'my_dequeue_scripts', 100 );
    function my_dequeue_scripts() {
        if ( ! is_page( 'contact' ) ) {
            wp_dequeue_script( 'contact-form-7' ); // Use the script's handle
            wp_dequeue_style( 'contact-form-7' );  // Use the style's handle
        }
    }

    Suggested read: How to Reduce Cache Misses & Avoid Them: Proven Tips [FIXED]

    Minify and Combine CSS/JS

    Minification removes unnecessary characters (like whitespace and comments) from code to reduce file size. And after minification, you can bundle multiple CSS or JavaScript files into a single file to reduce the number of HTTP requests.

    However, this strategy is most effective for older HTTP/1.1 servers. Modern servers using HTTP/2 and HTTP/3 can handle many small requests in parallel very efficiently, so combining files can sometimes be counterproductive.

    1. For HTTP/1.1: Use a caching plugin like WP Rocket or W3 Total Cache to enable minification and file combination for both CSS and JS.
    2. For HTTP/2 and HTTP/3: You can enable minification, but be cautious with the combination setting. It’s often faster to load multiple small, minified files that are deferred or loaded asynchronously than one large, combined file that could block rendering. You should test your load times with the combination enabled and disabled to see what works best for your specific site.

    Optimize Fonts (Self-Host, Subset, Preload, Use font-display: swap)

    Web fonts, especially those loaded from external services, can introduce multiple HTTP requests and DNS lookups that slow down rendering. By taking full control of your fonts, you can eliminate these external requests and ensure they are delivered as efficiently as possible from your own optimized server.

    1. Host Fonts Locally: Use a plugin like OMGF (Optimize My Google Fonts) to automatically find the Google Fonts your site uses, download them, and serve them directly from your own server. This eliminates the external request to fonts.googleapis.com.
    2. Subset Your Fonts: Subsetting removes all the characters and weights you don’t use from a font file, and this drastically reduces its size. Many local font generation tools offer this as an option.
    3. Use font-display: swap;: Add this CSS property to your @font-face declaration. It tells the browser to display a fallback system font immediately while the custom font is loading. This prevents a blank text flash (Flash of Invisible Text).
    4. Preload Critical Fonts: Identify the one or two font files needed to render the “above-the-fold” content. Preload them by adding a <link> tag to your site’s <head> to tell the browser to download them with high priority.
      • Example: <link rel="preload" href="/wp-content/fonts/my-font.woff2" as="font" type="font/woff2" crossorigin>

    Suggested read: Server Cache vs. Browser Cache vs. Site Cache: What’s the Difference?

    Reduce External Requests (Fonts, Analytics, Chat Widgets, Ads) or Host Locally

    Every third-party service you add, analytics, heatmaps, live chat widgets, ad networks, and social media feeds, adds external HTTP requests. These requests can significantly slow down your site because your server has no control over the speed and reliability of the third-party server. Minimizing or locally hosting these scripts where possible is key to reclaiming performance.

    1. Use your waterfall chart to identify all requests going to domains that are not your own.
    2. For each external service, decide if its value outweighs its performance cost. Can you remove it?
    1. For services like Google Analytics, plugins like Perfmatters allow you to host the analytics.js script locally on your server. This gives you full caching control and eliminates an external DNS lookup. A server managed by RunCloud will serve this local file with incredible speed.
    2. For non-critical scripts like chat widgets or ad scripts, use a script manager to delay their loading until a user interacts with the page (e.g., scrolls or clicks).

    Suggested read: How to Easily Optimize Your WordPress Website With RunCloud Hub

    Optimize Images (Next-Gen Formats, Lazy Loading, SVG Sprites for Icons)

    Images are often the heaviest assets on a page, and a site with many unoptimized images will generate a huge number of HTTP requests. Modern image optimization techniques focus on reducing file size, deferring loads, and combining multiple small image requests into one.

    1. Convert your JPEGs and PNGs to modern formats like WebP or AVIF. These formats offer superior compression and smaller file sizes with no visible quality loss. We recommend reading this excellent article on Best WordPress Image Optimization Plugins by Patchstack to learn more about image compression.
    2. Lazy loading prevents images and iframes that are “below the fold” from loading until the user scrolls them into view. This drastically reduces the number of initial HTTP requests. This is a native feature in WordPress 5.5+, but many WordPress plugins also offer more advanced control.
    3. For simple graphics, logos, and icons, you should use Scalable Vector Graphics (SVGs). They are incredibly small in file size and scale perfectly without losing quality.

    Suggested read: 8 Best GTmetrix Alternatives for Website Performance Testing (Includes Free)

    Use Resource Hints (preload, preconnect, dns-prefetch, fetchpriority) for Critical Files

    Resource hints are instructions that you can place in your site’s HTML <head> to give the browser a “heads-up” about resources it will need soon. This allows the browser to start fetching critical files or establishing connections early, which can shave valuable milliseconds off your load time by optimizing the request-and-response cycle.

    1. dns-prefetch: You can use this for third-party domains your site needs to connect to, like Google Fonts or Google Analytics. It tells the browser to perform the DNS lookup in the background.
      • Example: <link rel="dns-prefetch" href="//fonts.googleapis.com">
    2. preconnect: This goes a step further than dns-prefetch. It completes the DNS lookup, TCP handshake, and TLS negotiation. Use this for critical third-party domains from which you know the site will fetch resources.
      • Example: <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    3. preload: Use this for a specific, critical file on your own server (like a font file or CSS file) that is needed for the initial render but might be discovered late by the browser.
      • Example: <link rel="preload" as="style" href="/wp-content/themes/my-theme/critical.css">
    4. fetchpriority=”high”: A newer hint you can add to critical <img> or <link> tags (like your LCP image) to signal its importance to the browser.
      • Example: <img src="lcp-image.webp" fetchpriority="high">

    Suggested read: The Best WordPress Caching Plugins To Speed Up Your Site (2025)

    Enable a CDN and HTTP/3 with QUIC to Reduce Latency on Many Small Requests

    A Content Delivery Network (CDN) reduces latency by storing copies of your assets on servers around the world and serving them from the location physically closest to the user. Enabling CDN can dramatically speed up your website.

    HTTP/3 is the latest web protocol, built on QUIC, and designed to be faster and more reliable, especially on mobile or unstable networks. It excels at handling many small, parallel requests without the “head-of-line blocking” that could slow down HTTP/2.

    1. Integrate a CDN: Sign up for a CDN service like Cloudflare, BunnyCDN, or KeyCDN. For a service like BunnyCDN, you’ll get a unique URL to which to point your assets. Alternatively, you can also use RunCloud’s built-in feature to enable Cloudflare Proxy with the flip of a switch.
    1. Enable HTTP/3: This is a server-level configuration and might require you to modify server settings via CLI. However, with RunCloud, enabling HTTP/3 is as simple as flipping a switch in your web application’s settings. This ensures your site is using the most advanced protocol for handling requests efficiently.

    Disable WordPress Emojis, Embeds, and Other Non-Essential Features That Trigger Requests

    By default, WordPress loads a small JavaScript file (wp-emoji-release.min.js) on every single page to convert text emoticons into emojis. It also loads scripts for oEmbeds, which allow you to embed content from sites like YouTube easily. If you don’t use these features, they are just extra, unnecessary HTTP requests.

    1. The easiest way to get rid of them is to use a plugin like Perfmatters or Asset CleanUp, which have simple toggles to disable emojis, embeds, and other WordPress core features like XML-RPC and jQuery Migrate.
    2. Use Code Snippets: If you prefer not to use a plugin, you can add the following code to your theme’s functions.php file to disable these features manually:
    // Disable emojis
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    // Disable oEmbeds
    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );

    Create SVG Sprite Sheets or Icon Sets to Consolidate Multiple Small Assets

    If your site uses multiple small icons (e.g., for social media links, user interface elements), each one is often a separate HTTP request. An SVG sprite sheet is a technique where you combine all of your SVG icons into a single, large SVG file. You can then display any individual icon from that single file using a simple CSS reference, consolidating dozens of potential requests into just one.

    Instructions:

    1. Gather Your SVGs: Collect all the individual SVG icons you use on your site.
    2. Generate a Sprite Sheet: Use an online tool like SVGOMG or a build tool like Webpack to combine your SVGs into a single sprite file. The tool will give you one .svg file and the corresponding HTML/CSS markup.
    3. Load the Sprite: You can either include the SVG sprite inline in your theme’s header.php or footer.php file (best for performance) or load it via JavaScript.
    4. Display an Icon: Use an SVG use element to reference the ID of the icon you want to display from the sprite.
      • Example: <svg class="icon"><use xlink:href="#icon-twitter"></use></svg>

    Implement Critical CSS and Defer/Async Non-Critical JavaScript

    By default, CSS and JavaScript files are “render-blocking”, which means that the browser has to download and parse them completely before it can display the page. Critical CSS is a technique where you extract the absolute minimum CSS needed to style the “above-the-fold” content and place it inline in the HTML <head>.

    You then load the rest of the stylesheet asynchronously. Similarly, you should defer or async non-critical JavaScript so it doesn’t block the initial page paint.

    1. Use a tool like the Critical Path CSS Generator or a service like criticalcss.com to generate the critical CSS for your key pages (homepage, blog post, etc.).
    2. Implement in WordPress:
      • Plugin Method: Caching plugins like WP Rocket have a feature that automatically generates and applies critical CSS for you with a single click. This is the recommended and easiest method.
      • Manual Method: If doing it manually, you would inline the generated CSS in a <style> tag in your site’s <head>.
    3. Load Full CSS Asynchronously: Load the main stylesheet using a non-blocking method.
      • Example: <link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'">
    4. Defer/Async JavaScript: Go through your enqueued scripts and add the defer or async attribute. The defer tag executes the script after the document has been parsed, while async executes it as soon as it’s downloaded. For most scripts, defer is the safer option. You can do this with plugins or programmatically using the script_loader_tag filter in WordPress.

    Wrapping Up: Why You Should Reduce HTTP Requests for Your WordPress Websites

    In this post, we’ve covered a wide array of powerful techniques to reduce the number of web requests for your website. While any single change provides a small benefit, their combined effect can turn a slow, bloated website into a streamlined, fast, and efficient website.

    But why is this so critical? Reducing HTTP requests isn’t just about numbers. Some people even go as far as to create a website which is less than 14KB in size to reduce the number of web requests.

    Finally, a leaner site puts less strain on your server, making it more stable and capable of handling more traffic without slowing down.

    These optimizations only go so far without a fast, reliable server.

    RunCloud takes care of the heavy lifting – managing caching, HTTP/3, and CDN configuration – so your site can load faster and handle more visitors effortlessly.

    Start your free RunCloud trial today and see how quickly your WordPress site can perform when every HTTP request is optimized by default.

    FAQs on Reducing HTTP Requests in WordPress

    How do I reduce CSS and JS files in WordPress?

    Use a caching or asset optimization plugin like WP Rocket or Perfmatters to minify and combine CSS and JavaScript files into fewer, smaller files.

    What plugins help cut down external requests?

    Plugins like Perfmatters and Asset CleanUp are excellent for selectively disabling scripts on pages where they aren’t needed, which stops requests to external services. Additionally, by managing your server with RunCloud, you ensure the remaining essential requests are handled with maximum efficiency by a finely-tuned stack.

    Should I combine or defer JavaScript files?

    On modern servers, you should prioritize deferring JavaScript over combining it, as this prevents scripts from blocking page rendering.

    How do CDNs improve page speed?

    A Content Delivery Network (CDN) stores copies of your assets on servers worldwide, delivering them to users from the closest geographical location to reduce latency. Integrating a CDN like Cloudflare is straightforward with RunCloud, which simplifies the server configuration needed to work in perfect sync for maximum global speed.

    What tools show how many requests a site makes?

    Web performance tools like GTmetrix, Pingdom, and the Network tab in Google Chrome’s DevTools provide a detailed waterfall chart of every HTTP request. Use these to measure the direct performance gains from both your on-site optimizations and the efficiency of a server managed by RunCloud.

    How do I optimize icons with SVG sprites?

    You can combine multiple SVG icons into a single “sprite” file, which is loaded just once and referenced with CSS. This drastically reduces individual HTTP requests.

    Is HTTP/2 or HTTP/3 better for performance?

    HTTP/3 is the newer, faster protocol, but HTTP/2 is still a massive improvement over its predecessor and has wider support. RunCloud takes the complexity out of server management, allowing you to easily switch from HTTP/2 to HTTP/3 with just a few clicks to ensure your site is using the best technology.

  • How To Migrate Away from cPanel Hosting (The Escape Guide)

    How To Migrate Away from cPanel Hosting (The Escape Guide)

    Tired of cPanel’s limits? You’re not alone.

    If you’ve ever been frustrated by slow performance during traffic spikes, blocked from switching PHP versions, or forced to file support tickets just to tweak server settings, you’ve already outgrown cPanel.

    RunCloud is the next step.

    It gives you full control over your own cloud server, with a clean, intuitive dashboard that makes server management simpler, not harder. No more waiting on support. No more working around arbitrary limits.

    This guide walks you through exactly how to migrate your WordPress site from a traditional cPanel setup to a cloud server managed by RunCloud. Step by step.

    No guesswork. No wasted time.

    Let’s get started.

    Note: If you’re not confident handling the migration yourself, RunCloud offers free expert migration for your first site. You’ll find more details at the end of this guide.

    Why Migrate From cPanel to RunCloud?

    You might be satisfied with your current server management platform, but RunCloud solves problems that you may not even know you have.

    Developers using cPanel can find themselves constrained. Switching PHP versions for specific projects, installing necessary extensions (like imagick or redis), or fine-tuning web server configurations (NGINX vs. Apache) can be slow, require support tickets, or simply be unavailable. This friction slows down development cycles and innovation.

    • RunCloud gives you complete control over the underlying cloud server infrastructure, unlike some cPanel hosts that might limit your access. You are not locked into a specific provider’s way of doing things and have the freedom to manage your server directly. This level of control allows for deeper customization and optimization specific to your needs.

    • Creating a testing version of your WordPress website, known as a WordPress staging environment, is incredibly simple with RunCloud’s one-click feature. This allows you to safely test updates, plugins, or design changes without affecting your live visitors.

    • Changing your website’s PHP version is very easy within the RunCloud dashboard. This allows you to upgrade for better performance or switch versions for compatibility testing with themes and plugins.

    • RunCloud provides a secure method to run websites requiring older, outdated PHP versions without jeopardizing the security of other sites on the same server. This is possible using the RunCloud Docker stack, which has built-in isolation that allows legacy applications to function safely alongside modern, secure websites.

    • RunCloud includes built-in integration with Cloudflare and simplifies how you manage your website’s DNS records. This connection lets you handle DNS updates and configurations more efficiently directly through the RunCloud panel, making linking your domain via Cloudflare much smoother.


      This integration allows you to manage DNS records from within the RunCloud dashboard – no need to switch between tools. It also speeds up record updates and helps prevent misconfigurations when pointing your domain to your server.

    • RunCloud uses modern, high-performance stacks (e.g., NGINX + PHP-FPM, support for caching like Redis or Memcached) that can significantly improve load times and Core Web Vitals.

    • RunCloud allows you to conveniently manage websites hosted on servers with different processor types, like ARM and x86, all from one central dashboard. This is useful if you use different kinds of cloud servers for cost or performance reasons.

    • RunCloud supports both widely used database systems, MySQL and MariaDB, giving you flexibility in choosing the right one for your web applications.

    • Managing multiple users or client sites within a single cPanel account can be insecure or inefficient. Granting specific, limited access to developers or team members is often not granular enough, leading to over-sharing of credentials or cumbersome separate accounts. RunCloud is built with teams and agencies in mind, giving you the ability to:

      • Invite team members and assign them specific roles and access to particular servers. Developers can manage their projects without needing full server admin rights.

      • Manage all your servers and client websites from a single, intuitive dashboard, regardless of the underlying cloud provider (AWS, DigitalOcean, Vultr, etc.).

      • Maintain clear separation of duties and access logs to enhance security and make it easier to track changes.

    • On traditional shared cPanel hosting, your site’s performance is often at the mercy of “noisy neighbors” and pre-defined server configurations that may not be optimal for your specific application. Therefore, scaling resources can be limited or require a complete account upgrade. RunCloud provides flexibility in how you manage and upgrade your server resources:

      • When you manage your cloud server with RunCloud, you have the option to use a dedicated server. This means its CPU, RAM, and storage are exclusively allocated to you. It will ensure that your website’s performance is consistent and not affected by other users, a common issue on traditional shared hosting.

      • As your website traffic grows or your application needs change, you can easily scale up or down your cloud server’s resources (CPU, RAM, storage). Most cloud providers (like DigitalOcean, AWS, Vultr, etc.) allow these adjustments with minimal or no downtime.

    • RunCloud ensures you retain full root access to your underlying cloud server. This gives you the ultimate freedom to install custom software, fine-tune configurations, and manage your server environment precisely as your projects require, far beyond the limitations of typical shared hosting panels.

    Is Migrating From cPanel the Right Move for You?

    Before diving into the “how“, let’s address the “why” and “if“.

    Migrating your WordPress site from a cPanel environment to a cloud server managed by RunCloud can unlock significant advantages, but it’s not necessarily the ideal path for everyone. Understanding the trade-offs will help you make an informed decision.

    cPanel is often a good fit if:

    • You manage just one or a few simple websites with stable traffic.

    • You have no immediate plans to host additional sites or require complex server configurations.

    • You don’t need advanced developer tools, deep server customization, or the specific performance benefits of a dedicated cloud environment.

    • You prefer an all-in-one solution that includes email hosting directly within your web hosting panel (even if you don’t always use it).

    If this describes your situation, your current cPanel setup might still be the most straightforward and cost-effective solution.

    However, consider migrating if you’re experiencing these cPanel pain points:

    • Rising Licensing Costs: Per-account cPanel licensing fees can add up, especially if you manage multiple sites or offer hosting to clients. RunCloud’s pricing model, combined with affordable cloud servers, can offer better value at scale.

    • Bundled Services & Bloat: You might be paying for services bundled with cPanel (like integrated email hosting, specific site builders) that you don’t use or prefer to handle with specialized third-party providers.

    • Lack of Modern Automation & Developer Workflows: If you’re struggling with manual deployment processes, limited or clunky Git integration, insufficient API access for custom workflows, or restrictive SSH access, RunCloud offers a more developer-centric environment.

    • Performance Bottlenecks & Control: If your site is outgrowing shared hosting resources, or you need fine-grained control over server software (specific PHP versions, NGINX vs. Apache, caching mechanisms like Redis/Memcached), a cloud server managed by RunCloud provides this power.

    Key Considerations Before Choosing RunCloud & Cloud Hosting

    Moving to RunCloud means managing your cloud server instance. While RunCloud dramatically simplifies this, it’s a different paradigm than traditional cPanel shared hosting:

    • Comfort with Cloud Infrastructure (Basic): You’ll choose a server from a cloud provider (like DigitalOcean, Vultr, AWS, Linode, etc.). RunCloud makes managing it easy, but you’re still responsible for the underlying server instance.

    • DNS Management: You will be responsible for pointing your domain’s DNS records (A records, CNAMEs, MX records for email) to your new cloud server’s IP address and your external email provider. This is typically managed at your domain registrar or a specialized DNS hosting service (like Cloudflare).

    What Happens to Your Email After Migrating?

    Before moving your website files, let’s talk about email.

    One of the most significant differences is moving from an all-in-one cPanel environment to a cloud server managed by RunCloud.

    RunCloud Manages Your Web Server, Not Your Email Server.

    RunCloud excels at configuring, managing, and securing the server that hosts your website. However, it does not provide email hosting services. This is intentional, and it aligns with modern best practices. Separating web hosting from email hosting generally improves reliability, deliverability, and security.

    If Your Email is Currently Hosted on your cPanel Account

    When you switch your domain’s DNS records to point your website to your new RunCloud-managed server, any email accounts hosted on that same cPanel server will stop receiving new emails. Your old emails might still be on the cPanel server (until decommissioned), but new mail will not arrive.

    Why Self-Hosting Email on Your Web Server is Discouraged

    While it might seem convenient to try to set up an email server on your new cloud instance, it’s strongly discouraged for several reasons:

    1. Deliverability Issues: Maintaining a good sender reputation to avoid your emails landing in spam folders is a complex, ongoing task. Dedicated email providers have teams and infrastructure focused solely on this.

    2. Security Risks: Email servers are frequent targets for attackers. Managing their security requires specialized expertise.

    3. Maintenance Overhead: Running an email server involves updates, blacklist monitoring, spam filtering configuration, and troubleshooting, which divert focus from your website.

    4. Resource Consumption: An email server can consume significant server resources that are better allocated to your website.

    While we strongly recommend using a dedicated, external email hosting provider for the above reasons, we understand that some users may wish to explore other options or have specific needs for services like transactional email.

    For reliable email hosting, we recommend:

    • Zoho Mail (free for personal domains)

    • Google Workspace (business-grade email and tools)

    • MXRoute (affordable plans for bulk or agency use)

    If you’re interested in learning more about the complexities of email servers or related services, RunCloud has published several articles that cover these topics:

    However, you should remember that when you update your email server, it’s best to set up your new email hosting and configure the necessary DNS records (MX, SPF, DKIM, etc.) with your DNS provider before or at the same time you update the A records that point your website to the new RunCloud-managed server. This careful timing is key to minimizing the chance of losing any incoming emails during the transition period.

    Moving Your WordPress Site From cPanel to RunCloud: A Step-by-Step Guide

    Before You Begin

    • Back Up Your Existing Site: This is the most important step. Before you touch anything, create a full backup of your current website on cPanel. This includes your website files and your database. Most cPanel hosts have a backup tool. Download this backup file and keep it somewhere safe. You can never have too many backups!

    • Choose Your Cloud Server Provider: RunCloud doesn’t host your site directly; it helps you manage a server from providers like DigitalOcean, AWS, Google Cloud, Vultr, Linode, UpCloud, etc.

      Not sure which provider to choose? Here’s a quick overview:
    1. DigitalOcean & Vultr: Great for beginners. Easy setup, predictable pricing.

    2. AWS & Google Cloud: Ideal for larger, complex projects but slightly more advanced.

    3. Linode & UpCloud: Balance of performance and affordability with strong global coverage.

    Choose based on your budget, location, and technical comfort. RunCloud works seamlessly with all of them.

    • Lower Your DNS TTL: TTL stands for “Time To Live”. It tells servers how long to store your website’s DNS information. Lowering this before you migrate (e.g., to 300 seconds or 5 minutes) means the change will happen much faster across the internet when you finally switch your domain name to point to the new server. You change this where your domain’s nameservers are pointed (your domain registrar or a service like Cloudflare).

      For example, if your domain is registered with Namecheap or GoDaddy, log in to your account, go to DNS settings, and set the TTL value for your A record to 300 seconds (5 minutes). This ensures faster propagation when switching servers.

      Read our blog post on How to Speed Up DNS Propagation to learn more.

    Step 1: Set Up Your New Server with RunCloud

    If you haven’t already done so, create a RunCloud account. Inside your RunCloud dashboard, connect to your chosen cloud provider (like DigitalOcean, Vultr, etc.) using your API key. RunCloud has a simple process for launching a new server directly from its dashboard. It will automatically install and configure the necessary software (like NGINX, Apache, MySQL/MariaDB, PHP).

    Read our documentation on connecting to cloud providers via API to get instructions for your cloud provider.

    Step 2: Create Your Website Space in RunCloud

    Once your server is ready in RunCloud, go to the “Web Application” section and click “Create Web Application”.

    On the next screen, use RunCloud’s “Script Installer” within the Web Application settings to install a fresh, clean copy of WordPress on this new space.

    For now, you don’t need to use your real domain name. RunCloud provides a free test domain that you can use for testing purposes. If you want, you can use this test domain for the migration process. You’ll find this domain listed in your Web Application settings, and can use it to preview your site before making DNS changes.

    Select the correct PHP version (try to match your old cPanel site if possible). RunCloud will set up the necessary folders and configuration for your site.

    📖 Suggested read: 10 Best Self-Hosted Email Server Platforms to Use in 2025

    Step 3: Migrate Your Website Content

    In this section, we’ll guide you through using the popular “All-in-One WP Migration” plugin, known for its ease of use. However, this plugin has file size restrictions in its free version, potentially requiring a paid extension for larger websites.

    As an alternative, especially for sites exceeding the free upload limit, refer to our post on 3 Free Ways to Migrate WordPress from Shared Hosting To Cloud Server. This post offers more flexibility and handles larger migrations effectively, although with a slightly more technical process.

    Note: If you’re migrating between different MySQL or MariaDB versions (e.g., MySQL 5.7 to 8.0), some plugins or exports may throw errors. If you run into issues during import, try exporting only content (not plugins/themes) and manually reinstall them post-migration.

    1. On Your OLD cPanel Site:

      • Log in to your WordPress dashboard and navigate to Plugins > Add New. Next, search for “All-in-One WP Migration”, install it, and activate it.

      • Find “All-in-One WP Migration” in the left-hand menu and click “Export“.

      • Click “Export To” on the next screen and choose “File“.

      • Wait for the plugin to bundle your entire site (files, database, plugins, themes) into a single .wpress file.

      • Once the file has been generated, download this .wpress file to your computer.
    1. On Your NEW RunCloud Site (using the test domain):

      • Log in to the fresh WordPress installation you created in Step 2.

      • Go to Plugins > Add New, then search for “All-in-One WP Migration”, install it, and activate it (the same plugin).

      • Find “All-in-One WP Migration” in the left-hand menu and click “Import“.

      • Click “Import From” and choose “File“.
    • Select the .wpress file you downloaded from your old site.

    • The plugin will start uploading and then processing the file. Free versions of this plugin might have upload size limits. If your site file is too large, you might need the plugin’s paid extension or explore other methods, like manually migrating files/databases or using a different plugin.

    Follow the on-screen prompts and proceed when ready. The plugin will warn you that it’s about to overwrite the site.

    Once the import is finished, the plugin will ask you to save your permalink structure. Log in using your old site’s username and password and rebuild your site’s URL structure.

    📖 Suggested read: How to Install & Set Up FreeScout on Your Personal Server

    Step 4: Test Your Migrated Site

    After the migration, open the RunCloud test domain in your browser. Click around your website to check pages, posts, images, forms, and special features. Make sure everything looks and works exactly like your old site, and fix any small issues you find.

    Step 5: Point Your Domain to the New Server

    Once you’re happy with the migrated site on the test domain, it’s time to make your real domain name point to the new RunCloud server.

    Before we go any further, planning for potential issues and having a strategy to minimize disruption during your migration is essential. While the goal is a seamless transition, some downtime during the DNS propagation phase is often unavoidable; however, you can reduce this by lowering your domain’s DNS TTL (Time To Live) values well before the switch and flushing DNS cache immediately after.

    Before making the final DNS change, thoroughly test your migrated site on the new RunCloud server using its IP address or by modifying your local hosts file to ensure everything functions correctly.

    If you notice any significant problems after the switch, revert your DNS records to your old cPanel server’s IP address (assuming it’s still active). This will allow you to restore service quickly while troubleshooting the new setup.

    1. Find Your Server IP Address: In your RunCloud dashboard, go to your server details. Your server’s public IP address will be listed there. Copy it.
    1. Update DNS Records:

      • Log in to your Cloudflare/Namecheap/Porkbun account (or wherever your domain’s DNS is managed) and find the DNS settings for your domain.

      • You’ll need to update the ‘A’ record for your main domain. Change its value (the IP address) to the new IP address you copied from RunCloud.

      • If you use ‘www’ (e.g., www.example.com), check its record too. You don’t need to change it if it’s a CNAME pointing to your main domain (yourdomain.com). If it’s another ‘A’ record, update its IP address as well.

      • Save the changes.

    2. Review Imported Records: Double-check all the DNS records in Cloudflare to ensure they are correct and that no old IP addresses are present for your web traffic.

    If you are using Cloudflare, you can also use RunCloud’s built-in DNS manager to set up and update records without leaving the dashboard.

    1. Wait for DNS Propagation: DNS changes can take a few minutes to several hours (though usually faster if you lowered the TTL earlier). You can use online tools like whatsmydns.net to check the progress.

    📖 Suggested read: What is DNS & How Does It Work? Everything You Need to Know.

    Step 6: Final Checks and Configuration on RunCloud

    Once DNS has updated, your domain should load the site from your new RunCloud server.

    1. Final Website Test: Browse your live website using your actual domain name. Here’s what to review carefully before going live:

      • Forms (contact, login, checkout)

      • Plugin functionality (especially caching, security, and SEO tools)

      • Theme-specific features and widgets

      • Custom post types or shortcodes

      • License activation for premium plugins/themes

    2. Review Robots.txt and Sitemap: Make sure your robots.txt file (e.g., yourdomain.com/robots.txt) isn’t blocking important pages from search engines. Check that your XML sitemap is working correctly. You might need to resubmit it to Google Search Console.

    3. Enable Caching: Use the RunCloud Hub dashboard for your Web Application to enable server-level caching (like NGINX FastCGI cache). This will significantly speed up your site.

    4. Enhance Security:
      • Fail2Ban: RunCloud configures fail2ban out of the box. Ensure it’s active for services like SSH and WordPress login attempts to block brute-force attacks.

      • Security Headers: Consider adding security headers (like HSTS and Content Security Policy) for better protection. RunCloud provides ways to add custom NGINX configs, and you can use it to manually configure these records in your web server configuration.

    5. Check Cron Jobs: If your WordPress site relies on scheduled tasks (like publishing, updates, or backups), confirm that cron jobs are working after the migration. You can:

      • Use the WP Crontrol plugin to view/edit scheduled events.

      • Disable WP-Cron and set up a real server-level cron job in RunCloud for better reliability. To do this, go to the RunCloud dashboard and navigate to Server Settings > Cron Jobs.

    6. Secure Your Site with an SSL Certificate (HTTPS): RunCloud makes it incredibly easy to install a free Let’s Encrypt SSL certificate for your domain(s) with just a few clicks, or you can deploy a custom SSL certificate if preferred. Once the SSL certificate is active, you can also force HTTPS with a single toggle inside the RunCloud dashboard to ensure all traffic uses the secure version.

    7. Configure Automated Backups: Use RunCloud’s built-in backup features to schedule automated daily or weekly backups of your web application files and databases to an off-server location (like S3, DigitalOcean Spaces, etc.).

    8. Monitor Server Health and Performance: RunCloud provides server health monitoring tools directly within its dashboard. You can track key metrics like CPU load, memory usage, and available disk space, and set up alerts to catch problems early.

    📖 Suggested read: The Best Email Marketing Plugins for WordPress in 2025

    Final Thoughts

    Congratulations! If you followed along, you’ve successfully navigated the migration process and moved your WordPress site from cPanel to your new RunCloud-managed server. Take a moment to appreciate the smoother, faster experience and the powerful control you now have over your hosting environment.

    After reading this guide, you’re now equipped with the knowledge to migrate your WordPress site from cPanel to a RunCloud-managed cloud server. We’re confident that these detailed steps will help you successfully transition.

    However, if you prefer expert assistance for your initial migration or manage multiple sites and value a streamlined process, you can use the RunCloud migration support. Our team can manage your first web application migration for free, ensuring a smooth start to your RunCloud experience. This allows you to see the benefits firsthand with professional guidance.

    Our dedicated paid migration service is also available for subsequent migrations or more intricate setups, starting from $350 per site. Simply provide your site details to receive a quote, and our team will handle the rest, allowing you to focus on your core business.

    Whether you take advantage of the free offer or handle it yourself using this guide, moving to RunCloud opens up a world of better performance, tighter security, and simpler server management.

    Manage your server with less hassle – and more power. Try RunCloud today.

  • The 7 Best Node.js Hosting Platforms for 2026 (Free + Paid)

    The 7 Best Node.js Hosting Platforms for 2026 (Free + Paid)

    Choosing where to host your Node.js application can be tough. Should you use a free platform for quick tests, or invest in a scalable setup that supports complex APIs and MySQL databases? This guide breaks down the best options in 2026 – so you can find the right balance of cost, control, and performance.

    In this comprehensive guide, we’ll cover the best Node.js cloud hosting options available in 2026. We’ll explore everything from free Node.js hosting platforms perfect for testing and development to enterprise-grade solutions for scaling production applications.

    Whether you’re looking to host a simple Node.js website, deploy a complex API, or set up a full-stack application with MySQL integration, we’ll help you understand the trade-offs between managed platforms such as Heroku, Railway, and Vercel versus the flexibility of running your own VPS.

    A Quick Comparison of the Best Node.js Hosting Platforms

    To simplify your decision, we’ve created a comparison table that breaks down the key features of our top picks. Use this as a starting point to identify which platforms best align with your project’s needs. Then, jump to the section below to read a detailed analysis.

    PlatformPricing ModelFree Tier DetailsBest ForKey Features
    RunCloudSubscription5-day free trialDevelopers want full server control with a simple management panel.Atomic Git Deployments, Server Health Monitoring, Multi-server support, Backup/Restore.
    RenderPay-as-you-goYes (for services with usage limits)Startups and developers looking for a modern, autoscaling Heroku alternative.Zero-downtime deploys, Managed PostgreSQL, Private Networking, Docker support.
    Fly.ioPay-as-you-goYes (Generous “free allowance” on resources)Globally distributed applications that need low-latency performance.Global Edge Deployment, Docker-based, Built-in Postgres, Custom Domains w/ SSL.
    VercelPer-user SubscriptionYes (For hobby/personal projects)Front-end developers using frameworks like Next.js and Jamstack sites.Git integration, Serverless Functions, Global CDN, Analytics.
    NetlifyPer-user SubscriptionYes (Generous tier for personal projects)Jamstack and static-first websites that use serverless functions for backend tasks.Git-based workflow, Serverless Functions, Form & Identity Management.
    HerokuUsage-based (“Dynos”)No longer offers a viable free tier for apps.Beginners and teams who need a simple PaaS with a massive add-on ecosystem.Simple git push deploys, Extensive Add-on Marketplace, Managed Databases.
    DigitalOcean App PlatformTiered / Pay-as-you-goYes (For static sites)Developers who have already invested in the DigitalOcean ecosystem.Fully managed platform, Scales from source code, Integrates with other DO products.

    Top Node.js Hosting Platforms

    Here are some of the best cloud hosting platforms where you can host your Node.js application with minimal effort.

    RunCloud

    RunCloud turns your VPS into a powerful, easy-to-manage hosting platform for Node.js applications. It removes the hassle of manual server setup while adding enterprise-grade features.

    Most platforms on this list lock you into their ecosystem. RunCloud doesn’t.

    It gives you full control over your servers – on any cloud provider – while still offering the same modern deployment tools and monitoring features developers expect. RunCloud works seamlessly with every major cloud provider:

    • Deploy on DigitalOcean’s affordable droplets
    • Leverage AWS’s global infrastructure
    • Use Google Cloud’s cutting-edge network
    • Host on Vultr’s high-performance instances
    • Run on Linode’s developer-friendly platform
    • Or even manage your self-hosted servers

    Benefits of Using RunCloud

    • Git Integration: Supports direct deployment from Git repositories 
    • SSL Management: Free SSL certificates and automatic renewal
    • Security Features:
      • Web Application Firewall (WAF)
      • Automated security patches
      • IP blocking
      • SSH hardening
    • Performance Optimization:
      • Built-in Redis caching
      • Server optimization
      • Resource monitoring
    • Team Collaboration: Multi-user access with role-based permissions

    Pricing

    • Essentials: For $9/month, the Essentials plan provides all the fundamental tools to manage a single server with unlimited applications, backups, and 1-click SSL.
    • Professional: The Professional plan, priced at $19/month, is designed for developers shipping to production by expanding to 50 servers and adding advanced tools, such as application cloning and 10 staging environments.
    • Business: At $49/month, the Business plan is tailored for teams managing mission-critical workloads, including zero-downtime atomic deployments, team management, and API access.
    • Enterprise: The Enterprise plan, priced at $399/month, is designed for large-scale businesses that require extensive capacity, supporting up to 500 servers, 50 team seats, and high-volume API access.

    Suggested read: How to install & setup Ghost (NGINX and OpenLiteSpeed)

    RunCloud strikes the perfect balance between convenience and control by offering developers a unique hybrid approach to server management. While its intuitive dashboard simplifies common tasks, you retain complete access to your server’s underlying infrastructure. With full SSH access, you can dive into the command line whenever needed, whether for troubleshooting or advanced configurations.

    Unlike managed solutions that hide the filesystem from you, RunCloud provides direct access to your files, making it easier to debug issues, implement custom solutions, or perform granular backups. This combination of visual management tools and low-level access means platform limitations never constrain you.

    Additionally, RunCloud provides access to its API, which allows you to manage your server exactly as you need while still benefiting from its streamlined interface.

    Suggested read: The Best Web Development Tools To Level Up Your Stack

    Render

    Render is a modern cloud platform that reduces the complexity of deploying and managing Node.js applications. Unlike traditional hosting services that require extensive DevOps knowledge, Render abstracts away the infrastructure complexities while maintaining powerful capabilities.

    The platform automatically handles crucial aspects such as SSL certificate management, continuous deployment from Git repositories, and DDoS protection, which allows developers to focus primarily on their code.

    Paid Plans: Starting at $0/month, paid plan costs $19/month

    Best For: Small to medium-sized applications, startups

    Notable Features:

    • Zero-downtime deployments
    • Automatic scaling
    • Built-in DDoS protection
    • Native PostgreSQL support

    When traffic increases, Render automatically handles load balancing and scaling, requiring no manual intervention. The platform’s integrated PostgreSQL and Redis offerings are particularly valuable for Node.js developers, as they come with automatic backups, point-in-time recovery, and secure private networking. This makes it an excellent choice for novice users who don’t want to handle the infrastructure themselves.

    The platform’s ability to automatically sleep inactive services in development environments, and wake them on demand, helps optimize costs – especially for developers managing multiple projects or staging environments.

    Suggested read: How To Monitor Your Web App’s RAM & CPU Usage with Netdata

    Fly.io

    Fly.io is a developer-centric platform that excels in hosting Node.js applications and takes a unique approach to cloud deployment and pricing. It offers an innovative edge deployment model that automatically distributes applications across global regions for optimal performance. It also provides seamless WebSocket support, built-in Redis integration, and native PostgreSQL hosting capabilities, which makes it a great choice for JavaScript developers.

    Paid Plans: Pay-as-you-go plans, with a simple application costing approximately $15/month

    Best For: Distributed applications, edge computing

    Notable Features:

    • Global deployment with edge locations
    • WebSocket support
    • Built-in Postgres databases
    • Docker-based deployments

    It has sophisticated containerization support using its enhanced Docker implementation. This ensures that Node.js applications can be deployed with minimal configuration while maintaining full access to native Node.js features and packages.

    Similar to other tools in this list, Fly.io automatically handles crucial aspects such as SSL/TLS certification, HTTP/2 support, and global load balancing while still providing developers with granular control when needed.

    But what really distinguishes Fly.io is its approach to regional deployment. Node.js applications can be automatically distributed to edge locations closest to users, resulting in significantly reduced latency and improved application performance.

    Suggested read: How To Create a Docker Image For Your Application

    Cloudflare Pages + Workers

    Cloudflare offers a serverless platform to host Node.js applications using a unique combination of Workers and Pages. This is particularly compelling for Node.js developers because it eliminates the traditional distinction between frontend and backend deployments and allows for seamless integration of serverless functions with static content.

    Cloudflare has its own extensive global network, and it can place compute resources within 50ms of 95% of the world’s Internet-connected population. This results in exceptional website performance and page speed improvements.

    Free Tier Includes:

    • Unlimited sites
    • Unlimited requests
    • 100,000 Workers invocations/day
    • Unlimited bandwidth

    Paid Plans: Starting at $5/month

    Best For: JAMstack applications, serverless architecture

    Notable Features:

    • Global CDN
    • Automatic git deployment
    • Zero cold starts
    • Edge computing capabilities

    Additionally, Cloudflare uses a standard JavaScript runtime that ensures compatibility with existing Node.js packages and libraries while offering free egress and static asset hosting. It integrates essential development tools, including CI/CD pipelines, git-based deployments, and live previews, making it particularly attractive for teams looking to streamline their development workflow.

    It can auto-provision and directly integrate with other Cloudflare services such as KV (key-value storage), Durable Objects (distributed computing), R2 (object storage), and D1 (SQL database), providing developers with a complete ecosystem for building sophisticated Node.js applications.

    Suggested read: The 12 Best cPanel Alternatives to Manage Your Servers

    Railway

    Railway is a developer-first platform with an impressive array of features that takes the pain out of deployment. It supports deploying directly from GitHub repositories, local codebases, and Docker containers. What sets it apart is its developer-centric features that dramatically speed up the development cycle. Railway’s automatic preview environments for pull requests mean you can test changes in isolation before merging to production.

    It also offers horizontal scaling capabilities, with support for 50+ replicas per service and round-robin load balancing, making it a great choice for fast-growing applications. Railway’s networking stack is particularly impressive, offering up to 100 GBPS of transfer speed for private networking between services and up to 10 GBPS for public traffic.

    Advanced users can also take advantage of their extensive observability tools – including 90-day log retention, JSON-structured logs, and comprehensive metrics monitoring.

    Free Tier Includes:

    • $5 credit monthly
    • 512MB RAM
    • Shared CPU
    • 1GB disk

    Paid Plans: Starting at $5/month

    Best For: Full-stack applications, development teams

    Notable Features:

    • One-click deployments
    • Built-in databases
    • Automatic HTTPS
    • Team collaboration tools

    Suggested read: Self-Managed or Managed Hosting: Which One is Right for You?

    Heroku

    Heroku was one of the first Platform-as-a-Service (PaaS) solutions, offering developers a seamless way to deploy Node.js applications without getting bogged down by infrastructure complexities. Heroku’s “dynos” are lightweight Linux containers that provide flexible computing options starting from as low as $7 per month.

    Similar to other cloud providers, Heroku has a comprehensive ecosystem of managed services, from PostgreSQL databases and Redis key-value stores, to automated certificate management and zero-downtime deployments.

    Free Tier: Discontinued

    Paid Plans: Starting at $5/month

    Best For: Enterprise applications, scalable projects

    Notable Features:

    • Extensive add-on marketplace
    • Advanced monitoring
    • Auto-scaling
    • Managed containers
    heroku hosting for NodeJS

    With features such as Heroku Pipelines, developers can create sophisticated CI/CD workflows that automate the journey from code to production. Additionally, Heroku’s Review Apps feature automatically creates temporary environments for pull requests, making code review and testing much easier and faster.

    When it comes to monitoring and maintenance, Heroku provides built-in application metrics, log management, and automated OS patching to ensure your Node.js applications remain healthy and secure.

    Suggested read: Cloud Hosting vs VPS Hosting – Which One Should You Choose in 2024?

    Vercel

    Vercel has a zero-configuration platform that prioritizes developer experience above everything else. It is very popular among JavaScript developers due to its seamless integration with popular frameworks like Next.js.

    What makes Vercel particularly powerful for Node.js developers is its serverless functions architecture. This architecture automatically handles the deployment and optimization of resources across 18 regions, eliminating the need for complex infrastructure management. It also offers automatic edge deployment across hundreds of global locations for lightning-fast content delivery.

    Free Tier Includes:

    • 100GB bandwidth/month
    • Serverless functions
    • CI/CD pipeline

    Paid Plans: Starting at $20/month

    Best For: Next.js applications, frontend-heavy projects

    Notable Features:

    • Edge functions
    • Analytics
    • Preview deployments
    • Team collaboration
    vercel hosting ofr node js

    Vercel also includes built-in DDoS protection at the edge and L3/L4 protection at every location, ensuring applications remain secure without compromising on performance. This makes it a great option for hosting NodeJS applications.

    How to Choose the Right Node.js Hosting for Your Project

    There’s no single best platform – it depends on your project. Use these four questions to narrow your choices and find the best fit for how you build and scale applications.

    1. Scalability

    Your application’s hosting needs will likely evolve over time. Choose a platform that can grow with you.

    • For Personal Projects & Prototypes: Start with a platform that offers a generous free tier. Render, Vercel, and Fly.io are excellent choices that enable you to deploy and run small applications with no initial investment.
    • For Growing Startups: Prioritize platforms that simplify the scaling process. Render’s autoscaling and Heroku’s flexible “dynos” let you handle traffic spikes without manual intervention. A solution like RunCloud on a cloud provider (e.g., DigitalOcean, AWS) also gives you a clear path to scale your server resources as needed.
    • For Large-Scale & Enterprise Apps: Focus on performance, reliability, and global reach. Fly.io excels at deploying applications close to your users worldwide, reducing latency. For maximum control and security, using RunCloud to manage dedicated servers gives you unparalleled power over your infrastructure.

    2. Developer Experience (GUI vs. CLI)

    How your team likes to work is an important factor.

    • GUI-Focused Teams: If you prefer a visual dashboard to manage deployments, environments, and settings, you’ll feel at home with Render, Vercel, or DigitalOcean App Platform. Their web interfaces are intuitive and require minimal setup.
    • CLI-First Developers: For those who live in the terminal, a command-line-interface-driven workflow is faster and more powerful. Fly.io and Heroku are famous for their excellent CLIs that let you deploy and manage apps with just a few commands.
    • The Best of Both Worlds: RunCloud strikes a unique balance. It provides a clean, powerful web dashboard to manage servers provisioned from any cloud provider, abstracting away complex server administration while still giving you the underlying power and SSH access of a full VPS.

    3. Budget and Pricing Models

    Understand how you will be charged to avoid surprise bills.

    • Fixed & Predictable: A subscription model, like that offered by RunCloud, provides a predictable monthly cost, which is great for budgeting.
    • Pay-As-You-Go: If your traffic is variable, the PAYG models of Render and Fly.io are ideal. You only pay for the resources you actually consume, making it highly efficient for apps with inconsistent usage patterns.
    • Tiered Pricing: Platforms like Heroku and Vercel often have structured tiers. These are good starting points, but be sure to monitor your usage to know when you might need to upgrade to the next level.

    4. Database and Integration Needs

    Your application is more than just Node.js code. Consider your database and other service requirements.

    • Integrated Managed Databases: For ultimate convenience, platforms like Render and Heroku offer managed databases that can be provisioned and connected to your application in just a few clicks. This removes the headache of database setup and maintenance.
    • Broad Ecosystem: Heroku’s main strength is its massive add-on marketplace. You can easily integrate dozens of third-party services for logging, monitoring, caching, and more.

    Wrapping Up

    In this post, we’ve explored several powerful platforms for deploying Node.js applications, from Railway’s developer-centric approach to Heroku’s mature ecosystem and Vercel’s cutting-edge infrastructure. Each platform offers unique advantages that could align with your project needs, whether it’s extensive database options, scalability, or edge computing capabilities.

    However, it’s crucial to consider the trade-offs associated with these Platform-as-a-Service solutions. While they offer convenience, users are often locked into their specific ecosystems, with limited control over the underlying infrastructure.

    Your hosting costs can quickly escalate as you scale, and you’re ultimately at the mercy of their pricing models and platform-specific limitations. Many developers want more control over their server environment or the ability to optimize configurations for their specific use cases.

    This is where RunCloud offers a compelling alternative.

    Unlike platform-specific solutions, RunCloud works with any cloud provider – whether it’s DigitalOcean, AWS, Google Cloud, or others – giving you the freedom to choose and switch providers as needed.

    With RunCloud, you get the best of both worlds: complete server control through CLI for when you need to fine-tune your setup, alongside a powerful dashboard that makes server management accessible and efficient.

    Want full control without the complexity?

    Try RunCloud free for 5 days and see how easily you can manage your Node.js servers across any cloud provider.

    Start Your Free RunCloud Trial

    FAQs on Node.js Hosting

    How much does it cost to host a Node.js server?

    Node.js hosting costs vary widely, from free tiers on platforms such as Cloudflare to hundreds of dollars per month for dedicated servers. Factors influencing price include required resources (CPU, RAM), bandwidth, and chosen hosting provider (shared, VPS, dedicated, or serverless).

    How do I run a node server locally?

    Install Node.js and npm on your machine. Then, navigate to your project’s directory in the terminal and run the command node server.js (or node index.js, depending on your main file).

    Which cloud database is best for node JS?

    Node.js is database-agnostic, meaning it works well with various databases. Popular choices include MongoDB (NoSQL, document-based) for flexibility and PostgreSQL (SQL, relational) for robust data integrity, depending on your project’s needs.

    How many clients can a NodeJS server handle?

    Due to its non-blocking, event-driven architecture, Node.js excels at handling concurrent connections. The number of clients depends on server resources, application complexity, and efficient code implementation, potentially scaling to thousands or even millions.

    Which architecture is best for node JS?

    Microservices architecture is often a good fit for Node.js applications as it allows for independent scaling and deployment of individual services. Alternatively, a more traditional monolithic architecture can be suitable for smaller projects with simpler requirements.

    Can I run NodeJS on shared hosting?

    Some shared hosting providers offer Node.js support, but it may be limited. Ensure your chosen provider allows SSH access and custom startup scripts to run your Node.js application effectively.

  • WP Rocket vs LiteSpeed Cache: Which One is Best in 2026

    WP Rocket vs LiteSpeed Cache: Which One is Best in 2026

    Have you ever given up on a website because it was taking forever to load? Almost certainly you have – probably many times. And it’s certainly not something you want visitors to do when visiting your site!

    A slow website can lead to a poor user experience, and improving its speed is one of the best ways to keep visitors happy – and rank higher on Google.

    In this post, we will look at some of the best caching solutions available, from the server-level power of LiteSpeed Cache to the famously beginner-friendly WP Rocket.

    But before we do that, let’s quickly understand the real reason why you need caching plugins.

    What is WordPress Caching and Why Do You Need It?

    Every time a visitor arrives at your site, WordPress has to process the information, fetch necessary pages from the database, process them with PHP, and assemble the final HTML page to serve the visitor. This process happens for every single visitor, and if you get a lot of traffic, your server will become overwhelmed, and the service will slow down for everyone.

    Caching is like preparing your most popular web request ahead of time. Instead of building the page from scratch every time, a caching system takes a snapshot of the fully assembled page and serves that static copy to visitors. This is dramatically faster and uses far fewer server resources.

    The primary reason you need caching is speed. A faster website provides a significantly better user experience, keeps visitors engaged, and reduces the chance they’ll leave your site out of frustration (this is known as lowering the “bounce rate”). Additionally, by reducing the workload on your server your website will be able to handle much more traffic simultaneously without slowing down or crashing.

    Server-Level Caching with RunCloud Hub

    While there are many WordPress caching plugins available, in our opinion, there is only one winner.

    RunCloud Hub is an advanced caching plugin that offers superior performance because it operates before WordPress even gets involved. RunCloud uses a highly optimized NGINX FastCGI cache, which works at the server level to intercept visitor requests.

    This method is incredibly efficient because it completely bypasses the slow process of loading WordPress, executing PHP scripts, and querying the database for the majority of your visitors.

    The caching features built into the RunCloud platform make managing and developing your websites extremely easy. For a new user, the complexity of configuring a typical caching plugin can be daunting. With RunCloud, you can enable a powerful, server-grade cache with a single click in your dashboard, and no complicated settings are required.

    However, this solution is only available for RunCloud users. If you are not a RunCloud user yet, let’s look at some of the other popular caching solutions that are available.

    📖 Suggested read: The Best WordPress Caching Plugins To Speed Up Your Site (2025)

    Caching Plugins for WordPress

    WP Rocket

    WP Rocket has earned its reputation as one of WordPress’s most powerful and user-friendly performance plugins. It’s a comprehensive, all-in-one solution designed to speed up your website with minimal hassle, making it ideal for users who want premium results without a steep learning curve.

    Unlike many other caching plugins requiring technical expertise to configure, WP Rocket automatically applies about 80% of web performance best practices upon activation. This immediate impact on site speed and Core Web Vitals is why it’s a go-to tool for beginners and seasoned developers who value their time and want a reliable, effective optimization solution that works on any hosting platform.

    wp rocket cache plugin

    📖 Suggested read: The Complete WordPress Speed Optimization Guide

    Key Features of WP Rocket

    WP Rocket has powerful features designed for maximum impact with minimal effort. Once activated, it immediately enables page caching and creates static HTML files that drastically reduce load times for subsequent visitors. For even faster performance, its cache preloading feature automatically warms up the cache after you make changes; this ensures that all visitors get the fastest version of your site right away.

    In addition to standard caching, WP Rocket includes advanced features such as LazyLoad for images, iframes, and videos, which delays loading media until it’s actually visible to the user. It also offers database optimization tools to clean up unnecessary clutter like old post revisions and transients, and seamless one-click integration with any Content Delivery Network (CDN).

    For ecommerce sites using WooCommerce or other popular plugins, WP Rocket is intelligently configured to automatically exclude cart and checkout pages from the cache, preventing any interference with the customer’s shopping process and ensuring a smooth, fast buying experience.

    📖 Suggested read: How to Use Redis Object Cache To Speed Up a Dynamic WordPress Site

    WP Rocket Pricing

    WP Rocket is a premium plugin with a transparent pricing structure based on the number of websites you need to support. They offer licenses for a single site ($59/year), a “Plus” license for three websites ($119/year), and a “Multi” license for 50 websites ($299/year), all of which include one year of support and updates.

    LiteSpeed Cache

    LiteSpeed Cache is a powerful site acceleration plugin uniquely designed to integrate directly with LiteSpeed web servers. It is very useful for LiteSpeed servers as it has a deep, server-level integration, which allows it to manage caching more efficiently than many other plugins that operate solely at the application level.

    When your website runs on a server powered by LiteSpeed Web Server (LSWS) or OpenLiteSpeed, the LiteSpeed Cache plugin can communicate directly with the server’s built-in caching engine (LSCache) and deliver remarkable performance improvements, especially for dynamic, high-traffic WordPress sites.

    This integration enables advanced caching capabilities, such as handling logged-in users and private content, that are often difficult to achieve with other caching solutions. However, the plugin’s primary strength is also its most significant limitation: its best features are exclusive to the LiteSpeed ecosystem.

    📖 Suggested read: NGINX Caching for WordPress – Complete Guide & Tutorial

    Key Features of LiteSpeed Cache

    The LiteSpeed Cache plugin for WordPress is much more than a simple caching tool. It allows you to control server-level full-page cache directly from the WordPress dashboard. This will enable you to efficiently handle dynamic content such as WooCommerce shopping carts and logged-in user sessions.

    The plugin also includes an exclusive server-level crawler that automatically travels your site to refresh expired cache pages, ensuring visitors always experience the fastest speeds. In addition to caching, it offers an advanced set of optimization features, including image optimization, a Content Delivery Network (QUIC.cloud CDN) specifically for LiteSpeed, and tools for minifying and combining CSS, HTML, and JavaScript files.

    LiteSpeed Pricing

    LiteSpeed offers a flexible pricing model that covers software licenses and professional services. For its core products, the LiteSpeed Web Server Enterprise has an accessible entry point starting from $0/month, while the more specialized LiteSpeed Web ADC begins at $65/month. Both are available through monthly, yearly, or owned license plans.

    In addition to the software itself, LiteSpeed provides a range of paid support services, including one-time fees for tasks like installation (from $150) and WordPress optimization (from $100), as well as ongoing support options such as hourly assistance (from $150/hour) and a semi-annual optimization service priced at $1,200.

    LiteSpeed Cache Requirements and Limitations

    The biggest requirement for unlocking the full potential of the LiteSpeed Cache plugin is that your website must be hosted on a server running either LiteSpeed Web Server Enterprise, OpenLiteSpeed, or another LiteSpeed product like a WebADC. Without one of these specific server technologies, the plugin’s most powerful feature, the server-level page cache, is completely non-functional.

    In this scenario, LiteSpeed Cache acts merely as a generic optimization plugin, putting it on the same level as many other tools but without its key differentiator.

    This server dependency is the plugin’s major limitation. Many of the best hosting platforms and server management tools are built on highly tuned NGINX and Apache stacks, which are known for their performance, stability, and widespread community. You cannot use LiteSpeed’s server-side cache if your site is on one of these common server types.

    📖 Suggested read: Everything You Need to Know About WordPress Object Caching

    When to Choose WP Rocket Over LiteSpeed Cache

    When your website is not hosted on a LiteSpeed server, you should choose WP Rocket over LiteSpeed Cache. In these environments, LiteSpeed Cache’s signature server-level caching features are disabled, stripping it of its primary advantage. WP Rocket, on the other hand, is built to be universally compatible and deliver exceptional results on any server type, making it the most reliable and powerful choice for the average user.

    Furthermore, WP Rocket is better if you prioritize ease of use and a fast, predictable workflow. Its interface is famously intuitive, and it applies critical optimizations right out of the box with minimal configuration required from the user.

    When to Choose LiteSpeed Cache Over WP Rocket

    The primary reason to choose LiteSpeed Cache over WP Rocket is when your hosting provider explicitly uses LiteSpeed Web Server (LSWS) or its open-source variant, OpenLiteSpeed. In this specific environment, the LiteSpeed Cache plugin can integrate directly with the server’s native caching engine, creating a uniquely powerful integration that is difficult for other plugins to match.

    This deep integration allows it to handle dynamic content, such as ecommerce or membership sites, with incredible efficiency. It also provides access to the free QUIC.cloud CDN, which is tailored for the LiteSpeed ecosystem.

    Securely managing and integrating this plugin with your server environment on traditional web hosting providers can be challenging. But if you use the OpenLiteSpeed tech stack on your RunCloud server, you can enable the LiteSpeed Cache plugin on your WordPress website with a single click.

    📖 Suggested read: LiteSpeed Cache WordPress Plugin Configuration Tutorial

    WP Rocket vs. LiteSpeed vs. RunCloud Cache

    To simplify your decision, this table compares the key aspects of each solution, including the server-level caching provided by RunCloud.

    FeatureWP RocketLiteSpeed CacheRunCloud Cache (Server-Level)
    Primary Caching MethodPlugin-Based (PHP)Server-Integrated (on LSWS)Server-Native (NGINX FastCGI)
    Server RequirementAny (NGINX, Apache, etc.)LiteSpeed Server (LSWS/OLS)RunCloud Optimized NGINX and Docker Stack
    Ease of Use⭐⭐⭐⭐⭐ (Simple)⭐⭐⭐ (Moderately Complex)⭐⭐⭐⭐⭐ (One-Click Activation)
    Performance ImpactExcellentExcellent (Only on LiteSpeed)Exceptional
    Risk of ConflictsLow (Well-coded)Moderate (Many settings)Virtually Zero (Runs before plugins)
    CostPremium (Starts at $59/yr)FreeIncluded with RunCloud Subscription
    Ideal ForUsers who want a simple, universal solution.Users on LiteSpeed hosting.Users who want maximum speed with zero complexity.

    Wrapping Up: Making Your Decision for the Best Cache Plugin for You

    Choosing the right caching solution is one of the most important decisions for your WordPress website’s performance. However, the most significant performance gains don’t come from a plugin alone, but from the server. Both WP Rocket and LiteSpeed Cache are primarily application-level solutions, meaning they work within WordPress.

    A truly exceptional performance strategy should have a server-level cache that operates before WordPress even loads to serve pages with maximum speed and efficiency.

    This is where a third option shines, RunCloud’s full-page cache, which offers a more fundamental and powerful solution to the speed problem.

    If you’ve managed a WordPress site for any length of time, you’ve likely faced these issues:

    1. The “White Screen of Death” occurs when you enable a setting like “Minify JavaScript”, and your site’s layout or functionality breaks completely.
    2. Plugin & Theme Conflicts: Your caching plugin clashes with your page builder, e-commerce plugin, or theme, causing visual glitches.
    3. Changes Not Appearing: You update a page, but the changes don’t show up for you or your visitors because of a persistent cache that’s difficult to clear.

    RunCloud’s server-level cache inherently solves these problems. Because it caches the entire fully rendered page before WordPress or any plugins are loaded, it cannot conflict with them. When you need to see an update, you simply click “Purge Cache” in your WordPress dashboard to instantly serve the fresh version of the page.

    But that’s not all – RunCloud enables you to manage your entire server workflow with unparalleled simplicity. With RunCloud, you can perform all of the following:

    • Create a new server on any cloud provider.
    • Deploy new applications with a single click.
    • Update PHP versions with a single click.
    • Perform automated backups with a single click.
    • Create staging environments with a single click.

    From server setup to full-page caching, RunCloud handles the heavy lifting so you can focus on what matters. Get started with RunCloud in minutes.

    FAQs on WP Rocket vs LiteSpeed Cache

    Is WP Rocket worth the money compared to free LiteSpeed Cache?

    WP Rocket is a good investment for its ease of use and powerful features that work on any server environment. While LiteSpeed Cache is free, its most powerful features are exclusively tied to using a LiteSpeed web server, which isn’t always an option. A better approach is to use a superior server-level cache, like the one-click RunCloud Hub, which provides a massive performance boost on WordPress websites.

    Do I need a caching plugin if my host already has server caching?

    Yes, you can benefit from both, as they perform different jobs. A server cache, like RunCloud’s NGINX FastCGI cache, handles the heavy lifting of page caching for the fastest possible load times. You can then use a plugin to handle secondary optimizations like CSS/JS minification and lazy loading, creating a comprehensive performance strategy.

    Can I use both WP Rocket and LiteSpeed Cache plugins together?

    No, you must never activate two page-caching plugins like WP Rocket and LiteSpeed Cache at the same time. This will create critical conflicts as they fight to control the same processes, almost certainly breaking your website. The correct method is to choose one plugin for its features or rely on a more powerful server-level solution like RunCloud Hub as your primary caching engine.

    How does LiteSpeed Cache compare to W3 Total Cache?

    LiteSpeed Cache is generally more user-friendly and offers unique server-level integrations when used on a LiteSpeed server. W3 Total Cache is a powerful, albeit complex, plugin that offers a high degree of customization but can be overwhelming for new users. If simplicity and power are your main objectives, RunCloud Cache provides a server-level solution that outperforms typical plugin caching and requires just a single click to enable.

    Does LiteSpeed Cache conflict with page builders like Elementor?

    LiteSpeed Cache can occasionally conflict with page builders if its asset optimization settings are configured too aggressively. A more stable solution is to use RunCloud’s server cache for raw speed, as it operates before any plugins load and is therefore inherently conflict-free with Elementor.

    Is WP Rocket easier to configure than LiteSpeed Cache?

    Yes, WP Rocket is widely considered much easier to configure, offering a “set it and forget it” experience that works great out of the box. LiteSpeed Cache, while powerful, presents a more complex interface with many settings that can be confusing for non-experts. But for ultimate simplicity, RunCloud’s server cache is enabled with a single toggle, eliminating complex plugin configurations for your primary caching needs.

    Can LiteSpeed Cache improve Core Web Vitals more than WP Rocket?

    On a LiteSpeed server, LiteSpeed Cache may have a slight edge due to its deep integration, but this advantage depends entirely on the server technology. On any other platform, like the high-performance NGINX servers managed by RunCloud, WP Rocket often performs on par or better. Ultimately, your best Core Web Vitals results will come from a fast server foundation, which is precisely what RunCloud’s optimized stack and server cache are built to provide.

  • What is “401 Error Unauthorized Access” and How to Fix it?

    What is “401 Error Unauthorized Access” and How to Fix it?

    Seen a “401 Unauthorized” or “Access Denied” message when visiting a website?

    This error means your browser couldn’t prove you have permission to view a page.

    The good news: it’s easy to fix. This guide explains what causes the 401 error and walks you through the steps to resolve it quickly.

    Let’s get started!

    Understanding the 401 Unauthorized Error

    When you browse the internet, your web browser and the website’s server exchange messages to deliver the content you want to see. Most of the time, these exchanges are successful, and you never see any error codes. However, if you don’t have the necessary permissions to access a web page, you will see the 401 Unauthorized Error.

    A 401 error happens when the server can’t verify your identity. In most cases, your login credentials are missing, invalid, or expired.

    You might see this error displayed in a few different ways, but they all mean the same thing:

    • “401 Authorization Required”
    • “HTTP 401 Error – Unauthorized”
    • “Access Denied”

    This is a client-side error, meaning the problem is caused by the browser sending either incorrect or incomplete credentials to the server.

    401 vs. 403 Errors – What’s the Difference?

    The 401 and 403 errors look similar but mean different things:

    401 Unauthorized Error403 Forbidden Error
    IssueAuthentication Failure: The server cannot verify your identity.Authorization Failure: Your identity is verified, but you don’t have permission.
    Your Login StatusYou are either not logged in or have provided incorrect credentials (e.g., wrong password).You are successfully logged in with valid credentials.

    Suggested read: How to Fix a 502 Bad Gateway Error

    Common Reasons for a 401 Error

    Once you understand what causes a 401 error, fixing it is simple. Follow these steps to resolve the issue and regain access.

    1. Incorrect Login Details

    Let’s start with the most obvious and common cause: a simple typo. You might have accidentally misspelled your username or entered the wrong password. Check for common mistakes like having Caps Lock on or mixing up similar characters like the number ‘0’ and the letter ‘O.

    2. Outdated Browser Cache and Cookies

    All modern browsers store bits of information from websites you visit in a local storage area called the browser cache. It also saves small files called browser cookies that remember your login status, site preferences, and other session data.

    Storing this information locally is great for website performance, but it can sometimes cause a 401 error. If your browser’s cache or cookies become corrupted or outdated, your browser might send an old, invalid login token to the server. The server, seeing these incorrect credentials, denies you access and returns a 401 error.

    3. An Incorrect URL or an Outdated Link

    Sometimes the problem is as simple as a mistake in the web address. You may have typed the incorrect URL or clicked on an old bookmark that points to a page that no longer exists or has been moved behind a login wall. Certain pages on a website are meant to be private and require authentication. If you try to access one directly without being logged in, the server will correctly block you with a 401 error. Always double-check that the URL is correct and that you’re trying to access a public page or are properly logged into a private area.

    4. Plugin or Theme Incompatibility (For Website Owners)

    Security or firewall plugins can sometimes block valid logins after an update or misconfiguration. Temporarily disabling them can help identify the issue. This is a common source of WordPress errors, and it is often triggered after a recent update to a plugin, a theme, or the WordPress core itself.

    5. Firewall Issues

    A firewall (either on the website’s server or even on your own network) can cause a 401 error. A Web Application Firewall (WAF) is designed to identify and block suspicious traffic. If it detects what it perceives as a threat from your IP address (perhaps due to multiple failed login attempts), it may block your access to prevent a potential attack, which would result in a 401 Unauthorized response.

    How to Fix a 401 Error (Step-by-Step)

    Now that you understand what the 401 error is and where it comes from, it’s time to troubleshoot 401 issues and get you back in. We’ll start with the simplest solutions and work our way up to more technical fixes. Follow these steps in order, as the problem is often resolved within the first few steps.

    1. Double-Check the URL

    This may sound overly simple, but an incorrect URL is a frequent cause of this error. Make sure you have typed the web address correctly. Pay close attention to ensure you haven’t accidentally tried to access a page that is restricted to administrators or logged-in users.

    If you clicked on a link from an email or another website, it might be an outdated link that now points to a protected resource. Try navigating to the website’s main homepage and then finding the page you need from there.

    2. Review Your Login Credentials

    The most common problem is a simple mistake in your username or password. Before trying anything else, carefully re-enter your login details.

    • Check for typos.
    • Ensure your Caps Lock key isn’t on.
    • If you’re still locked out and are not 100% sure of your password, the safest bet is to use the “Forgot Password?” or “Reset Password” link on the login page. This eliminates any guesswork.

    3. Clear Your Browser’s Cache and Cookies

    If the URL and your login details are correct, the next step is to check your browser’s stored data. Outdated or corrupted cache and cookies can cause your browser to send invalid authentication information to the server. Clearing the browser cache is a quick and easy way to fix 401 errors.

    Here’s how to do it on popular browsers:

    • In Chrome or Firefox, open Settings → Privacy → Clear browsing data.
    • Select Cookies and Cached images/files, then confirm.
    • Restart your browser and try again.

    After clearing the data, close your browser completely, reopen it, and try logging in again.

    4. Deactivate Your WordPress Plugins (For Website Owners)

    If you are experiencing the 401 error on your own WordPress site after an update, then a plugin (especially a security or firewall plugin) may be causing this error. The easiest way to check this is to deactivate WordPress plugins.

    • If you can access your dashboard: Navigate to Plugins > Installed Plugins. Select all plugins by checking the top box, and from the Bulk actions dropdown, choose Deactivate. If the error disappears, you know a plugin was the cause. Reactivate them one by one, checking the site after each activation, until the error returns. The last plugin you activated is the culprit.
    • If you are locked out of your dashboard: You’ll need to use an FTP client or your hosting provider’s File Manager. Navigate to the wp-content folder and find the plugins folder. Rename it to something like plugins_old. This will deactivate all plugins. If you can now log in, rename the folder back to plugins and then follow the one-by-one reactivation process from your dashboard.

    5. Check the HTTP Headers (For Advanced Users)

    This is a more technical step. When a server sends a 401 response, it also includes additional headers. These headers contain data that specifies which authentication scheme the server requires (e.g., Basic, Bearer). You can view this header using your browser’s developer tools.

    1. Open the page causing the 401 error.
    2. Right-click anywhere on the page and select Inspect or Inspect Element.
    3. Go to the Network tab.
    4. Reload the page. You’ll see a list of network requests.
    5. Find the request with a 401 status (it will be red). Click on it.
    6. In the details pane, look for the Headers tab. This can give a developer clues about why the authentication is failing.

    6. Contact the Website Administrator

    If none of these steps work, contact the site administrator.

    Include:

    • The URL causing the error
    • The time it occurred
    • The steps you’ve already tried

    This information will help them identify and resolve the issue much faster.

    Wrapping Up: Fixing 401 Errors the Easy Way

    In this post, we’ve seen that “401 error” is rarely a sign of a major problem. More often than not, it’s a simple miscommunication between your browser and the server, usually caused by a minor issue like a typo, an outdated browser cache, or a conflicting plugin.

    Most 401 errors are easy to fix, often caused by old logins, cached data, or a simple typo.

    But if you manage multiple sites, dealing with access issues, plugins, and performance can take up valuable time.

    RunCloud helps you focus on your work while it handles the rest – from security to server management.

    Start your free RunCloud trial today and spend less time troubleshooting.

  • How to Set Up Business Email on Your Domain [With MX SPF DKIM DMARC]

    How to Set Up Business Email on Your Domain [With MX SPF DKIM DMARC]

    Still using a @gmail.com or @yahoo.com address for your business?

    A custom domain email, like contact@example.com, instantly boosts trust and makes your brand look credible and professional. It’s also free advertising as every email you send reinforces your website.

    The only catch is that setting it up means dealing with a few confusing DNS terms: MX, SPF, DKIM, and DMARC.

    This guide breaks them down in plain English and shows how to configure everything correctly using tools like RunCloud and Cloudflare.

    Let’s get started!

    Why Proper Email Configuration is Necessary

    Even if your email already works, proper configuration is critical for three reasons:

    1. Building Credibility & Brand Trust

    A custom domain email is your digital business card. It instantly builds credibility and brand trust. An address like contact@example.com shows you are an established, legitimate business, whereas a generic @gmail.com address can appear unprofessional and temporary to potential clients.

    2. It Helps Avoid the Spam Folder

    The single most important technical reason for proper setup is to prevent emails from landing in the spam folder. Major providers like Google and Yahoo now require email authentication (SPF & DKIM) to verify that you are who you say you are. Without these records, your invoices and client proposals will likely be rejected or land in spam.

    3. Protecting Your Brand from Spoofing & Phishing

    Proper email configuration is an important security measure that protects your brand’s reputation from fraud. These records make it nearly impossible for malicious actors to “spoof” your domain and send phishing emails pretending to be you. This safeguards your customers from scams and prevents the irreversible damage to your brand trust that occurs when your name is tied to fraudulent activity.

    What Do You Need for Your Business Email Setup

    Before we get into the technical settings, let’s break down the three simple things you need to get started. We’ll also cover what you can expect to spend, so there are no surprises.

    A Custom Domain Name

    A domain name is your unique digital address on the internet (e.g., example.com). The great news is that if you already have a website, you do not need to buy a new domain. You can use the same one for your email at no additional cost.

    If you are buying a domain name for the first time, then you should try to pick something that is short and memorable but also represents your brand. Some companies go a little overboard with this and end up spending millions of dollars on a domain name. However, there is no need for that, and if you don’t have a domain yet, you can purchase one from a domain registrar like Namecheap, GoDaddy, or Cloudflare. A standard .com domain typically costs around $10 to $20 per year.

    An Email Hosting Provider

    This is the service that will actually handle sending, receiving, and storing your emails. While some basic web hosting plans include free email, a dedicated provider offers far better reliability, security, and features.

    Professional email hosting is very affordable and is usually priced per user (or per mailbox). Depending on the provider and features you need, you can expect to spend between $3 and $12 per user per month. There are far too many good email providers available out there to cover in one post, so we recommend reading the following posts if you want to learn more:

    Access to Your Domain’s DNS Records

    This sounds technical, but it’s simply the control panel where you tell the internet where to send your email. It’s like a switchboard for your domain, and you just need to know where to find it. You can typically access your DNS settings through the same company where you bought your domain (your registrar) or with your website hosting provider.

    Access to managing your DNS records is free. This essential feature is included with your domain registration or hosting plan.

    A Step-by-Step Guide to DNS Records for Business Email

    Let’s dive into the technical details. This part can seem intimidating, but it’s just a matter of copying and pasting the right information into the right boxes. We’ll walk through setting up each of the four records one by one.

    For this guide, we’ll demonstrate how to add these records using Cloudflare, a very popular and free DNS provider known for its speed and user-friendly interface. The steps will be very similar, no matter which DNS provider you use.

    First, log in to your Cloudflare account, select your domain, and navigate to the DNS > Records section. This is where we’ll be working.

    How to Set up MX Records

    If your domain is a building, then the MX (Mail Exchange) record is the mailing address on the front door. It tells the internet exactly which server to use to deliver your emails.

    Your email provider (like Google Workspace or Zoho Mail) will give you a list of their mail servers and a “priority” number for each. Your job is to enter these into your DNS settings.

    1. In your Cloudflare DNS panel, click Add record.
    2. Select MX from the “Type” dropdown menu.
    3. In the Name field, type @. This symbol simply means it applies to your main domain, and your emails will look like contact@example.com. If you want to use a subdomain for a separate email server, then you can type the subdomain here. For example, if you type txns here, then the resulting email address will look like contact@txns.example.com
    4. In the Mail server field, enter the first server address your email provider gave you (e.g., test.google.com).
    5. In the Priority field, enter the corresponding priority number (e.g., 10).
    6. Click Save.


    Important: Your email provider will probably give you multiple MX records. You must repeat this process for every single one they provide, each with its own unique server and priority number.

    How to Set up SPF Record

    An SPF (Sender Policy Framework) record tells all other mail servers which email systems are officially allowed to send email on behalf of your domain.

    An SPF record is created as a TXT record. You can only have one SPF record per domain, so if you already have one, you’ll need to edit it rather than add a new one.

    1. In Cloudflare, click Add record.
    2. Select TXT for the “Type.”
    3. In the Name field, type @.
    4. In the Content field, paste the SPF value your email provider gave you. For Google Workspace, it looks like this: v=spf1 include:_spf.google.com ~all
    5. Click Save.

    What does SPF Records mean:

    1. v=spf1: This just identifies it as an SPF record.
    2. include:_spf.google.com: This is the list of servers that can send emails on your behalf. It tells everyone on the internet to check and approve anything Google sends on your behalf.
    3. ~all (Soft Fail): This tells servers that if an email comes from a sender not on the list, they should accept it but mark it as suspicious. It’s safer to start with this. –all (Hard Fail) tells them to reject the email completely.

    How to Set up a DKIM Record

    DKIM (DomainKeys Identified Mail) is like a unique, unbreakable wax seal on a letter. It uses a cryptographic signature to prove that the email genuinely came from you and its content hasn’t been altered in transit.

    First, you’ll need to generate a DKIM key inside your email provider’s admin panel. This process will give you two pieces of information: a selector (the name for the record) and a public key (the long text value).

    1. In Cloudflare, click Add record.
    2. Select TXT for the “Type.”
    3. In the Name field, paste the selector your provider gave you. It will look something like google._domainkey.
    4. In the Content field, paste the entire long public key text. Be careful to copy the whole thing, as it can be very long.
    5. Click Save.

    To learn more about this, check out our full-length article on DKIM – What Is It & Why Your Emails Need It.

    How to set up a DMARC Record

    DMARC (Domain-based Message Authentication, Reporting, and Conformance) checks both the SPF records and the DKIM records. Based on what it finds, it follows your instructions on what to do with unverified mail and sends you reports on email activity.

    If you have an existing domain that is sending out emails, we strongly recommend starting with a “monitor only” policy to avoid accidentally blocking legitimate emails.

    1. In Cloudflare, click Add record.
    2. Select TXT for the “Type.”
    3. In the Name field, type _dmarc.
    4. In the Content field, paste the following starter policy: v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com (You are supposed to replace this email with your actual email, but read the next section to find what we recommend).
    5. Click Save.

    Understanding the DMARC policy:

    1. v=DMARC1: Identifies the record.
    2. p=none: This is your instruction. Here, none means “monitor only” and don’t take any action. Later, you can change this to p=quarantine (send to spam) or p=reject (block entirely).
    3. rua=mailto:…: This tells servers where to send daily reports about your email activity, which is incredibly useful for spotting issues. These reports are sent in XML format and are best viewed using specialized software. We recommend using the Postmark DMARC report tool instead of publishing your personal email on the internet.

    Suggested read: How to Flush DNS Cache on Windows, Mac, and Linux

    Using RunCloud and Cloudflare for Effortless DNS Management

    If the steps above seemed tedious and prone to error, you’re not alone. Managing DNS records directly at your domain registrar or a basic hosting panel often comes with frustrating challenges:

    • Clunky Interfaces: The control panels are frequently outdated and confusing to navigate.
    • Disconnected Workflow: You have to jump between your server management panel, your email provider’s instructions, and your DNS provider’s website, increasing the chances of making a copy-paste error.
    • Slow Updates: After you make a change, you can be left waiting for hours due to slow DNS propagation and left wondering if you did it correctly. If you make a mistake, correcting it can be just as slow and stressful.

    RunCloud simplifies DNS management by integrating directly with Cloudflare.

    Instead of jumping between multiple dashboards, you can add or edit DNS records straight from your RunCloud panel.

    This reduces the risk of typos, speeds up propagation, and keeps your workflow consistent across sites and domains.

    Final Thoughts

    Setting up MX, SPF, DKIM, and DMARC isn’t just a technical detail as it’s what ensures your emails reach inboxes, not spam folders.

    Taking a few minutes to configure these records protects your brand, improves deliverability, and builds long-term trust with your clients.

    With RunCloud and Cloudflare, you can handle these configurations from one clean dashboard. No more switching between panels or waiting for updates.

    Manage DNS and hosting the smart way. 

    Get started with RunCloud and set up a professional email the right way.

    FAQs & Common Troubleshooting

    How long does it take for DNS changes to work?

    The process, known as DNS propagation, can traditionally take up to 48 hours for changes to be visible globally. However, when using a fast, modern DNS provider like Cloudflare (which integrates seamlessly with RunCloud), these updates are often nearly instant. This means your new email settings can start working in minutes.

    How do I check if my email records are set up correctly?

    You can easily verify your setup using free online diagnostic tools, which act as a DNS checker for email deliverability. Simply enter your domain name into a trusted service like MXToolbox or DMARCian’s DMARC Inspector. These tools provide a full report on your MX, SPF, and DKIM records, confirming if they are configured correctly.

    My emails are still going to spam after setting this up. Why?

    While correct DNS records are important, other factors heavily influence deliverability, such as your domain’s age and reputation. Be mindful of your email content to avoid spam trigger words, and make sure to “warm up” a new email address by sending emails slowly at first to build trust with providers.

    What’s the difference between ~all and -all in an SPF record?

    The ~all (Soft Fail) tag means that receiving servers should accept the email but mark it as suspicious, which is ideal for testing. The -all (Hard Fail) tag is a strict command to reject any email that fails the test outright. It is always recommended to start with ~all to avoid accidentally blocking legitimate emails while you monitor your setup.

    Can I use multiple email services with one domain?

    Yes, but you must authorize all sending services within a single SPF record, as a domain cannot have multiple. You can achieve this by using the include: mechanism for each service, such as v=spf1 include:_spf.google.com include:sendgrid.net ~all for using both Google Workspace and SendGrid. This ensures both your primary business email and transactional messages are authenticated correctly.

  • How to Install and Deploy Bagisto (Laravel eCommerce)

    How to Install and Deploy Bagisto (Laravel eCommerce)

    Launching an e-commerce store can seem complex, especially when dealing with server configurations and deployment complexities. But what if you could deploy a feature-rich, Laravel-based eCommerce platform in just a few simple steps?

    In this guide, we’ll show you exactly how to install Bagisto, a leading open-source eCommerce solution, using the power and simplicity of the RunCloud server management panel.

    In this tutorial, we will provide a complete, step-by-step walkthrough designed for users with limited knowledge of Linux CLI. You will learn how to set up your server environment, deploy the Bagisto application, connect your database, and perform the final installation, all with the help of RunCloud’s intuitive dashboard.

    Let’s get your online store up and running!

    What is Bagisto and Why Should You Use It?

    Bagisto is a powerful, open-source eCommerce platform built on top of Laravel. It provides a complete solution for businesses looking to create and manage an online store.

    If you’re already familiar with Laravel, then you should definitely try out Bagisto as it extends Laravel’s built-in features, elegant syntax, and extensive ecosystem. This means developers don’t have to build an eCommerce system from scratch; instead, they can use Bagisto’s pre-built modules and extend its functionality using familiar Laravel patterns, which can significantly speed up the development process.

    Bagisto dashboard

    Key Features of Bagisto:

    • Multi-Source Inventory: Manage your stock across multiple locations and channels from a single platform.
    • Multi-Currency and Locale: Easily configure your store to support different currencies, languages, and regional taxes to sell to a global audience.
    • Access Control Level (ACL): Implement a role-based permission system to control what your team members can access and manage within the admin panel.
    • Built-in Payment Integrations: Bagisto supports popular payment gateways, making it simple to start securely accepting payments.
    • Advanced Reporting: Gain insights into your sales, customers, and products with detailed reports and analytics.

    Step-by-Step Guide for Installing Bagisto via RunCloud

    RunCloud is a powerful server management panel that makes deploying and managing web applications like Bagisto incredibly straightforward. By handling the complex server configuration, it allows you to focus on building your application.

    Follow the steps below to get your Bagisto store up and running with RunCloud.

    Step 1: Create a New Database and Database User

    First, your application needs a database to store all its information, such as products, orders, and customer details. Log in to your RunCloud dashboard and navigate to the “Databases” tab on your server.

    Here, you will first create a database user by clicking “Add New Database User“.

    Once you have created the user, make sure you’re in the Database tab and click “Add New Database”. Give your database a name, and from the dropdown menu, select the user you just created to grant it access.

    Step 2: Create a New Web Application

    Next, you need to set up the web application environment where your Bagisto files will be stored. In your RunCloud dashboard, go to the “Web Applications” section and click “Create Web Application“.

    Switch to the “Empty Web App” tab and fill in the basic details for your application.

    You will need to configure a few settings here to ensure Bagisto runs correctly:

    • Enter your domain name
    • Configure SSL
    • Select your application owner
    • Choose PHP version 8.2 (this is the recommended version for Bagisto at the time of writing).

    Finally, under “Web Application Settings“, change the Public Path from its default to /public, which is the standard directory structure for Laravel applications.

    Once you have made the necessary changes, you can deploy the application on your server.

    Step 3: Connect the Database

    After you create the web application, you need to connect the database you created in the first step.

    Go to your new web application in the RunCloud dashboard and find the “Settings” tab on the left-hand menu.

    On this page, you can select your Bagisto database and user from the dropdown menus to attach them to the application. This step ensures that when RunCloud performs a backup of your application, it will include both the files and the connected database in a single backup file.

    Step 4: Connect to Your Server via SSH and Prepare the Directory

    Now it’s time to connect to your server to install Bagisto itself. If you are not sure how to do this, then you can follow our previous guide, which explains how to use an SSH client like Terminal (on macOS/Linux) or PuTTY (on Windows), to log in.

    Once connected, you need to navigate to your application’s root directory using the following command, replacing <root path> with the root path of your application, which is displayed in the RunCloud dashboard:

    cd <root path>

    When RunCloud creates a new application, it places a default public folder with an index.html file inside. Since Bagisto’s installation process will create its own public folder, you must first delete the existing one. You can do this by running the following command in your terminal:

    rm -rf public

    Step 5: Install Bagisto with Composer

    You can now install Bagisto using Composer. Execute the following command in your application’s root directory to download and install all the necessary Bagisto files. The . at the end of the command tells Composer to install the files in the current directory:

    composer create-project bagisto/bagisto .

    Step 6: Initialize the Bagisto Application

    After Composer has finished downloading the files, you need to run the Bagisto installation script. This script will set up your database tables, create your administrator account, and configure other essential settings for your store. To start this process, run the following command in your terminal:

    php artisan bagisto:install

    The installer will prompt you to enter several details:

    • Your database name
    • Username
    • Password (which you created in Step 1)
    • Your desired admin email and password

    Once you have filled in all the information, the installation will complete, and you will see a message confirming its success, along with your admin login URL.

    Note: If you are using a Dockerized server on RunCloud, you will need to use the host value (instead of localhost) in your database configuration. To learn more about this, refer to the documentation on Networking in a RunCloud Containerized Server.

    Step 7: Log In and Start Building Your Store

    Congratulations, your Bagisto store is now installed! You can now access the admin panel by navigating to your domain, followed by /admin (e.g., http://runcloud-demo.com/admin). Use the credentials you set up during the installation process to log in and begin adding products, configuring settings, and customizing your new eCommerce store.

    Step 8: Optimize Your Application Type in RunCloud

    To make managing your new Bagisto store even easier, there is one final step you can take within the RunCloud dashboard.

    Navigate to your web application’s “Settings” page and change the “Application Type” from “General” to “Laravel.” This change unlocks a suite of powerful, Laravel-specific features in your RunCloud dashboard.

    You will see new menu items that allow you to run Artisan commands, manage scheduled tasks (cron jobs), and configure message queues directly from the web interface, without ever needing to log in via SSH for these routine tasks. This feature is one of the many ways RunCloud simplifies application management and maintenance.

    Step 9: Enable Backups and Harden Your Server for Production

    Now that your Bagisto store is running, the final and most critical steps are to secure your application by setting up automated backups and hardening your server’s security settings.

    RunCloud makes this incredibly simple; just navigate to the “Backup” section of your web application in the dashboard, choose your preferred cloud storage provider, and set a schedule.

    Once configured, RunCloud will automatically back up your application files and the connected database, giving you complete peace of mind.

    For securing the server, we recommend reading the following resources:

    Wrapping Up

    And there you have it! In just a few steps, you have successfully deployed a powerful, production-ready Bagisto eCommerce store. You can now log in, start adding your products, and customize your storefront to match your brand.

    Throughout this process, you’ve seen firsthand how RunCloud streamlines what can often be a complex and time-consuming task. From creating databases and managing application settings with a few clicks to providing powerful, application-aware features, RunCloud handles the heavy lifting of server management so you can focus on what truly matters: building your online business.

    While this tutorial focused on Bagisto, a Laravel-based application, RunCloud’s power and flexibility extend far beyond a single framework. Whether you’re looking to host a modern blog using Ghost, set up your own private cloud with Nextcloud, or deploy a custom application built with Next.js, our platform is designed to make it simple and efficient. We encourage you to explore our other guides to see just how versatile RunCloud is.

    Ready to simplify your server management?

    Sign up for RunCloud today.

  • How to Fix the “SSL_ERROR_RX_RECORD_TOO_LONG” Error in Firefox

    How to Fix the “SSL_ERROR_RX_RECORD_TOO_LONG” Error in Firefox

    Seeing the SSL_ERROR_RX_RECORD_TOO_LONG message in Firefox?

    This error usually means your browser or server isn’t handling HTTPS traffic correctly – often due to a simple configuration issue.

    This guide explains what causes the error and how to fix it, whether you’re a site visitor or a server administrator.

    What the SSL_ERROR_RX_RECORD_TOO_LONG Error Means

    When you use Firefox to browse the web, you might occasionally see the error message “SSL_ERROR_RX_RECORD_TOO_LONG”. While the name sounds complicated, the reason behind it is usually quite simple.

    Firefox shows this error when it tries to load a secure (HTTPS) page but receives an unencrypted or invalid response instead. In most cases, the site’s SSL configuration is incorrect, or it’s using outdated security protocols.

    This error can be caused by multiple issues. Let’s break down the common causes:

    Common Server-Side Causes of the Error

    In most situations, the problem isn’t with your computer or browser but with how the website you’re trying to visit is set up.

    • Incorrect port configuration: Firefox connects to HTTPS sites through port 443. If the server handles plain HTTP traffic on this port, Firefox will stop the connection and show this error.
    • Outdated security protocols: Servers still using old SSL or TLS versions (1.0 or 1.1) can’t complete the handshake with modern browsers.
    • Certificate problems: Expired, misconfigured, or mismatched certificates prevent Firefox from validating the site’s identity.

    Common Browser or Client-Side Causes

    Although it is less common, this error can also be caused by the settings on your own computer or within Firefox.

    • Cached data: Outdated cookies or cache files can confuse Firefox when a site’s security settings change.
    • Proxy settings: Incorrect proxy configuration (especially on corporate networks) can block HTTPS connections.
    • Extensions: Overactive security or ad-blocker add-ons may interfere with the TLS handshake.

    Suggesed read: How to Fix err_ssl_protocol Error

    How to Fix the SSL_ERROR_RX_RECORD_TOO_LONG Error

    We now know what causes the SSL_ERROR_RX_RECORD_TOO_LONG error. Let’s see how to fix this quickly and easily:

    Clear Your Browser’s Cookies and Cache

    As we explained above, sometimes browsers try to connect using outdated information, which can cause errors. To fix this, we will simply clear and delete all the cookies and cache for that particular site. This forces Firefox to download a fresh, correct copy of the website.

    1. Clear cache and cookies: Go to Settings → Privacy & Security → Clear Data, select both checkboxes, and confirm. Then restart Firefox and reload the page.

    2. Check proxy settings: Go to Settings → General → Network Settings → Settings…. Choose No proxy, unless you’re on a network that requires one.

    3. Disable extensions: Restart Firefox in Troubleshoot Mode. If the site loads, re-enable your add-ons one at a time to find the culprit.

    4. Update Firefox: Go to Help → About Firefox to install the latest version.

    Check Your Proxy Settings

    Most home internet users connect directly to the web. However, some users on a company or school network use a “proxy server”. This proxy server intercepts all the traffic coming into the network, which can cause errors on the site. If you are using a proxy server, make sure it is configured correctly on your computer:

    1. Go to the Settings menu again (click the three lines in the top-right).
    2. On the General tab, scroll to the bottom to “Network Settings” and click the Settings… button.
    1. This will open a new window. The correct setting for most home users is “No proxy“. If it’s set to something else, change it to “No proxy” and click OK.

    Note: If you are on a corporate or school network, you may need a proxy. If changing this setting breaks your internet connection, revert it and check with your IT department.

    Temporarily Disable Your Browser Add-ons

    As we discussed above, some browser extensions interfere with network connections, and you can fix this by simply disabling the problematic extension.

    1. The fastest way to do this is by restarting Firefox in Troubleshoot Mode (previously called Safe Mode). This temporarily disables all your add-ons.
    2. Click the three-line menu, go to Help, and then select Troubleshoot Mode….
    3. Click Restart.

    Once Firefox restarts, try visiting the website again. If it works now, you know an add-on is the problem! You can then follow the steps below to find out which one.

    1. Go to the menu and select Add-ons and Themes (or press Ctrl+Shift+A).
    2. Click on Extensions.
    3. Disable your extensions one by one using the blue toggle switch, reloading the problem website after each one. When the site finally loads correctly, you’ll find the extension causing the issue.

    Update Your Browser

    The world of internet security is constantly evolving. Every few years, new security protocols (the “rules” for the handshake) are released, and old ones are retired. An outdated browser might not know the latest, most secure handshake that modern websites use to communicate on the Internet. Making sure Firefox is up-to-date ensures it has all the modern tools it needs to connect securely.

    1. Click the three-line menu and go to Help.
    2. Select About Firefox.
    3. A small window will pop up and automatically check for updates. If an update is available, it will download and install it for you.

    If none of the browser fixes worked, the issue is almost certainly on the server. Here’s how to diagnose and correct it as a developer.

    How Developers and Admins Can Fix the Error

    If you are a website administrator, then you are in the best position to resolve the “SSL_ERROR_RX_RECORD_TOO_LONG” error for your website. This error is almost always a sign of a server-side misconfiguration, where the server sends an unexpected response during the initial TLS handshake. The following detailed checks will help you diagnose and fix the underlying issue.

    Use an Online SSL/TLS Diagnostic Tool

    Before you spend too much time manually combing through configuration files, you should use an external tool to give you a detailed report. These services test your server from the perspective of an external client and can pinpoint subtle misconfigurations that are easy to miss.

    You can use a service like Qualys SSL Labs’ SSL Test or DigiCert SSL Installation Diagnostics Tool to perform a deep analysis of your entire SSL/TLS setup. It will grade your configuration and provide a detailed report on protocol support, key exchange, cipher strength, and certificate chain issues.

    The report will explicitly flag common problems such as an incomplete certificate chain (“Chain issues: Incomplete”), support for insecure protocols, or weak cipher suites. This provides an actionable checklist of items to fix within your server’s configuration files.

    Verify Your Server’s Port and Protocol Configuration

    This is the most frequent cause of the error.

    Verify Port and Protocol Settings

    • NGINX: Add listen 443 ssl; to your configuration block.
    • Apache: Use <VirtualHost _default_:443> and ensure SSLEngine on is enabled with valid certificate file paths.

    Check Certificate Installation

    • Install both your main certificate and the intermediate chain from your CA.
    • Confirm the certificate’s CN or SAN matches your domain.
    • Renew any expired certificates.

    Update TLS and Cipher Settings

    • Enable TLS 1.2 and 1.3 only.
    • Disable older protocols (TLS 1.0, 1.1, SSLv2, SSLv3).
    • In RunCloud, select your preferred TLS version from the dropdown menu in the TLS settings.

    Audit the SSL Certificate Installation and Validity

    A faulty SSL certificate setup can prevent the TLS handshake from even beginning properly. The browser needs to validate a complete and correct certificate “chain of trust” to proceed. Any break in this chain or mismatch in information will cause connection failures.

    • Check for Correct Installation: Ensure that you have installed not just the primary domain certificate but also the necessary intermediate certificates provided by your Certificate Authority (CA). A missing intermediate certificate breaks the chain of trust, and while some browsers can fetch them, it is not reliable behavior.
    • Verify Domain Name Matching: The certificate’s Common Name (CN) or, more modernly, a name in the Subject Alternative Name (SAN) field must exactly match the domain the user is accessing. A certificate issued for www.example.com will not be valid for example.com unless both are listed in the SAN.
    • Confirm Expiration: While usually leading to a different error, an expired certificate can sometimes contribute to configuration issues that manifest as this error. Always confirm your certificate is within its validity period.

    Update and Strengthen Your TLS Version and Cipher Suites

    Modern browsers, including Firefox, have deprecated older, insecure versions of the TLS protocol (specifically TLS 1.0 and 1.1). If your server is configured only to support these outdated versions, Firefox will refuse to connect, which can sometimes result in this specific error. You must ensure your server is configured to negotiate a modern, secure protocol.

    • Enable Modern Protocols: Your server configuration should be set to enable TLS 1.2 and TLS 1.3, the current industry standards for security.
    • Disable Obsolete Protocols: Explicitly disable support for TLS 1.0, TLS 1.1, and all versions of SSL (SSLv2, SSLv3). This not only resolves compatibility issues but is also the best security practice to protect against known vulnerabilities.

    If you are using RunCloud, you can do this very easily by selecting the right value from a dropdown menu in your TLS certificate settings.

    Simplifying SSL Management with RunCloud

    Configuring SSL manually can be slow and error-prone.

    RunCloud simplifies it with one-click SSL setup, automatic renewals, and a staging environment for safe testing, helping you avoid common issues like this Firefox error.

    One-Click SSL Certificates with Auto-Renewal

    RunCloud offers a seamless integration with Let’s Encrypt, a free and trusted certificate authority. With RunCloud, you can:

    • Install SSL with a Single Click: Secure your websites with a valid SSL/TLS certificate in seconds, directly from your RunCloud dashboard.
    • Automated Renewals: RunCloud automatically handles the renewal of your Let’s Encrypt certificates, ensuring your sites remain secure without any manual intervention. This eliminates the risk of expired certificates causing errors.

    Making changes directly to a live server can be risky and can inadvertently lead to configuration errors. RunCloud’s staging environment provides a safe sandbox to test any modifications before deploying them to your production site.

    Once you’ve verified that your changes are working correctly in the staging environment, you can easily sync them with your live site.

    Final Thoughts: Simplify SSL Management

    Managing SSL manually can take hours – and a single misstep can break your site.

    With RunCloud, you can deploy, renew, and manage SSL certificates in seconds through an intuitive dashboard.

    Start your free RunCloud trial today and secure your sites the easy way.

    FAQs

    What causes the “SSL_ERROR_RX_RECORD_TOO_LONG” error in Firefox?

    This error almost always signals a misconfiguration on the web server. It happens when Firefox expects a secure (HTTPS) response but receives unencrypted data, often because the server isn’t correctly configured to handle SSL/TLS traffic on the proper port (443). Other causes include an improperly installed SSL certificate or the use of outdated and insecure TLS protocols by the server.

    Is the “SSL_ERROR_RX_RECORD_TOO_LONG” error my fault or the website’s?

    In the vast majority of cases, this error originates from the website’s server, not your browser or computer. While clearing your browser’s cache or checking proxy settings can sometimes help, the fundamental problem usually needs to be fixed by the website’s developer or administrator.

    Why does the website work in other browsers but not in Firefox?

    Firefox is often more stringent and particular about its enforcement of SSL/TLS protocols and security standards. While other browsers might be more lenient with minor server misconfigurations, Firefox’s strict security posture will flag these issues, resulting in the “SSL_ERROR_RX_RECORD_TOO_LONG” error. This means the underlying server issue still exists, even if other browsers don’t display an error.

    How can I fix the “SSL_ERROR_RX_RECORD_TOO_LONG” error as a website visitor?

    As a visitor, your troubleshooting options are limited to your own browser. The most effective steps are to clear your Firefox cache and cookies, disable any proxy settings, and temporarily disable browser extensions to rule out any local conflicts. If the error persists after these steps, the issue must be resolved by the website owner.

    As a developer, what is the most common fix for this error?

    The most frequent cause and fix for developers is an incorrect port configuration on the web server. You must ensure your server is explicitly configured to listen for secure traffic on port 443 (e.g., listen 443 ssl; in NGINX). Verifying that your SSL certificate is correctly installed and valid and that you are using modern TLS versions (TLS 1.2 or 1.3) will resolve most other instances of this error.

    Is it safe to bypass this error by changing my browser’s security settings?

    No, it is highly discouraged to lower your browser’s security settings, such as forcing it to accept an outdated TLS version, to bypass this error. Doing so can expose your browsing activity to security vulnerabilities and defeat the purpose of a secure connection. The error is a warning that the site’s security is not properly configured, and the website’s administrator is responsible for the fix.

    How can RunCloud help prevent this error?

    RunCloud helps prevent this error by simplifying and automating server and SSL management. With features like one-click SSL certificate installation and automatic renewals, RunCloud ensures your certificates are always valid and correctly configured, eliminating a common cause of the error. Furthermore, its easy-to-use dashboard and staging environments allow you to test server changes safely, reducing the risk of misconfigurations that could lead to SSL issues on your live site.

  • The 5 Best UptimeRobot Alternatives for Website Monitoring

    The 5 Best UptimeRobot Alternatives for Website Monitoring

    If your website goes down, every second counts. Uptime monitoring tools alert you before visitors or customers notice.

    Uptime Robot has been the go-to option for years, but its limits and pricing have pushed many users to look elsewhere.

    Here are five reliable, free Uptime Robot alternatives worth considering in 2025 – from simple hosted options to powerful open-source tools you can run yourself.

    Let’s get started!

    What Website Uptime Monitoring Actually Does (and Why It Matters)

    Website Uptime Monitoring is the process of continuously testing a website or web service to ensure it is online and accessible to end-users. It is a specialized service that uses a global network of servers to send requests to your website, API, or server to check for a valid response.

    If an error is found, it immediately triggers an alert to notify you via channels like email, SMS, or Slack so you can resolve the issue before it significantly impacts your users and business.

    In addition to simple “up” or “down” checks, modern monitoring tools also track performance metrics like response time, verify SSL certificates, and check for specific keywords on a page to confirm everything is functioning correctly.

    Suggested read: How to Check Running Processes in Linux Using ps, top, htop, and atop Commands

    Key Features to Look for in Uptime Monitoring Tools

    When choosing an uptime monitoring tool, focus on features that ensure accuracy and fast alerts:

    • Frequent checks: Every 1–5 minutes from multiple global locations.
    • Smart alerts: Email, SMS, Slack, or Discord integrations.
    • Public status pages: Communicate incidents and maintenance clearly.
    • Multiple check types: HTTP/S, Ping, TCP, and SSL monitoring.
    • Extra insights: Response time, incident logs, and uptime reports.

    Suggested read: How To Install New Relic Monitoring on RunCloud

    Top 5 Free Uptime Robot Alternatives for 2025

    Here are the best free alternatives to Uptime Robot, each offering a powerful feature set for keeping your services online.

    1. Uptime Kuma (Self-Hosted, Free)

    Uptime Kuma is a self-hosted, open-source uptime monitor with a clean interface and advanced features. You can create unlimited monitors and set check intervals as short as 20 seconds. Because it runs on your own server, you control performance, data, and reliability.

    It supports a wide range of monitor types, from standard HTTP(s) and TCP ports to DNS records and Docker containers. It integrates with over 90 notification services to ensure you never miss an alert. Its highly customizable status pages allow you to present a professional and transparent view of your service health to users.

    If you want maximum control and reliability, self-hosting Uptime Kuma on a Virtual Private Server (VPS) with a management panel like RunCloud is the ideal setup. Hosting on a RunCloud-managed VPS gives you full server control, ensuring more reliable uptime than on shared hosting, where “noisy neighbors” can drain resources and impact performance.

    Suggested read: How UptimeRobot Can Save Your Website from Downtime Disasters

    2. Pulsetic

    Pulsetic is a fantastic managed monitoring service with a user-friendly interface and a surprisingly generous free-forever plan. It’s an excellent choice for startups, developers, and small businesses that want a powerful tool without the need for self-hosting. The free plan includes 10 monitors, SSL certificate monitoring, and unlimited, customizable status pages that can even be mapped to a custom domain (this feature is often reserved for paid tiers in other services).

    The status pages are beautifully designed and can be translated into any language, which makes it easy to keep a global user base informed. Alerts can be configured for email, Slack, Telegram, and other channels, ensuring your team is notified promptly. Advanced users would like to know that Pulsetic offers insightful performance reports and the ability to customize request headers, which makes it a scalable solution that can grow with your project.

    Suggested read: How To Monitor Your Web App’s RAM & CPU Usage with Netdata

    3. HetrixTools

    HetrixTools offers one of the most feature-rich free uptime monitoring plans out there. Its free-forever plan includes 15 uptime monitors with a rapid 1-minute check frequency from 4 global locations, which helps ensure outage detections are accurate and not just a regional network glitch. This plan also provides a public status page to maintain transparency with your customers and even includes a server resource monitor to help you prevent outages before they happen.

    In addition to simple uptime checks, HetrixTools provides valuable diagnostic tools during an outage and performs necessary actions such as collecting ping and MTR samples to help you debug the issue faster. The platform also monitors domain and SSL certificate expiration and sends warnings to prevent unexpected downtime caused by administrative oversights.

    Suggested read: 7 Best Control Panels for VPS Management (Free & Paid)

    4. Monika (Open Source, Free)

    Monika is a command-line uptime monitor designed for developers who like configuration-as-code. It uses a simple YAML setup and supports automated checks for downtime and slow responses – ideal for CI/CD pipelines or scheduled synthetic tests.

    Like Uptime Kuma, Monika is self-hosted and gives you complete control over your monitoring environment. And you can host it on a VPS managed by RunCloud, which ensures that your monitoring is consistent and reliable.

    Additionally, the RunCloud platform simplifies server management with features like Auto-healing, which can automatically apply updates or restart server services, reducing downtime caused by human error or delays. This automated server management, combined with Monika’s powerful configuration, creates a highly resilient and developer-centric monitoring system.

    Suggested read: Uptime Monitoring Tools: Why You Need Them, and What to Look for

    5. Hyperping

    Hyperping is a premium-feeling monitoring service that offers a sleek user interface, fast alerting, and beautifully designed status pages. While its free plan is not as extensive as some of the other services discussed in this article, it still provides access to advanced features that showcase its power, including synthetic monitoring and checks from several global regions.

    Hyperping is designed for teams that prioritize incident communication and a polished user experience. It offers features like status page subscriptions, multi-language support, and smart on-call scheduling.

    It integrates with popular communication platforms like Slack, Microsoft Teams, Google Chat, Discord, and Telegram for instant alerts. It also supports PagerDuty, OpsGenie, Intercom, Webhooks, and traditional phone and SMS notifications for comprehensive incident management and communication.

    Suggested read: 8 Best GTmetrix Alternatives for Website Performance Testing (Includes Free)

    From Monitoring to Full Uptime Management

    In this post, we’ve highlighted several powerful tools for tracking websites and applications. In addition to the tools we discussed, there are many other excellent solutions available.

    Monitoring tells you when your site is down – but prevention keeps it online.

    The best results come from combining smart monitoring tools with a well-managed, high-performance server environment. This is where a comprehensive server management platform becomes indispensable.

    Why RunCloud is the Central Hub for Reliable Uptime

    While external monitoring tools tell you when you’re down, RunCloud helps you understand why and actively works to prevent it from happening in the first place.

    • Integrated Server Health Monitoring: At its core, RunCloud provides built-in server monitoring that gives you a real-time view into critical health metrics. By tracking CPU, RAM, and disk usage, you can move beyond simple “up” or “down” alerts to analyze the root causes of performance degradation and potential downtime. This insight allows you to optimize your server resources effectively, ensuring high availability.
    • Automated Healing for Proactive Stability: One of RunCloud’s most powerful features is its automated healing service. Instead of waiting for a critical alert and manually intervening, RunCloud can be configured to automatically restart essential services if they fail, providing a self-healing infrastructure that minimizes downtime without human intervention.

    RunCloud gives you more than uptime alerts – it keeps your servers healthy, fast, and self-healing.

    Start your free RunCloud trial today and experience how much uptime improves when your infrastructure manages itself.

    FAQs on Free Uptime Robot Alternatives

    What is the best free uptime tool?

    Uptime Kuma is widely considered the best free uptime tool if you can host it yourself. It offers unlimited monitors and is completely open-source. If you want a managed service that requires no setup, then you can consider Better Uptime.

    How does Uptime Kuma work?

    Uptime Kuma works by periodically sending requests to your defined services, such as websites (HTTP/S), ports (TCP), or DNS records, to check their status. If a check fails to receive the expected response within a set time, it triggers a notification through one of its many integrated channels, like Slack or Telegram.

    Is there a good self‑hosted monitor?

    Yes, Uptime Kuma is an excellent and incredibly popular self-hosted uptime monitor that is both feature-rich and easy to deploy using Docker. It provides a modern user interface and extensive notification options without any subscription fees or limitations on the number of monitors.

    What is the cheapest Pingdom alternative?

    The cheapest Pingdom alternative is a free, self-hosted solution like Uptime Kuma, where your only cost is the minimal server resources to run it. If you prefer a managed SaaS product, Pulsetic’s generous free plan is a powerful and cost-effective alternative to Pingdom’s paid plans.

    What is the best open source uptime monitor?

    Uptime Kuma stands out as the best free open-source monitor for its quick setup, clean interface, and complete feature set. It delivers a polished, premium experience that competes with paid services, all while being completely free and community-driven.

    Are free uptime tools accurate enough?

    Yes, for the vast majority of use cases like websites, blogs, and APIs, free uptime tools are more than accurate enough for reliable monitoring. They typically use multiple global check locations to confirm downtime and prevent false positives, making them a dependable choice for most users.