{"id":5973,"date":"2026-02-25T13:47:12","date_gmt":"2026-02-25T11:47:12","guid":{"rendered":"https:\/\/www.scalahosting.com\/kb\/?p=5973"},"modified":"2026-02-26T09:17:43","modified_gmt":"2026-02-26T07:17:43","slug":"non-human-traffic-how-bots-affect-server-load","status":"publish","type":"post","link":"https:\/\/www.scalahosting.com\/kb\/non-human-traffic-how-bots-affect-server-load\/","title":{"rendered":"Non-Human Traffic: How Bots Affect Server Load"},"content":{"rendered":"\n<p>We all know that the more visitors your site gets, the more processing power and memory you need. We also know that complex plugins and heavy scripts can affect resource usage.<\/p>\n\n\n\n<p>However, there are other, less obvious factors determining server load, and ignoring them often results in CPU and RAM usage spikes that appear seemingly out of nowhere. Website administrators are often unsure where these surges come from, and they usually don&#8217;t know what to do about them.<\/p>\n\n\n\n<p>Today, we&#8217;ll lift the curtain on one of the most common causes for unexpected server load \u2013 non-human traffic \u2013 and we&#8217;ll see what you need to do to keep it under control.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Is Non-Human Traffic and How Does It Affect Your Site?<\/h2>\n\n\n\n<p>According to the latest data, about<strong> 51% of all online requests<\/strong> are the result of a machine executing an automated script rather than a person browsing a website. In other words, more than half of a server&#8217;s hardware resources could be used to serve non-human visitors rather than people.<\/p>\n\n\n\n<p>It&#8217;s not just about traffic volume, but also how it&#8217;s generated and what it does. Let&#8217;s take a closer look at the three main sources of non-human traffic.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Search engine crawlers<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Everyone knows how search engine crawlers work. They send HTTP requests, analyze the content of the downloaded page, follow links, and gather information about what your website is about.<\/p>\n\n\n\n<p>Without search engine crawlers, your site won&#8217;t appear on Google \u2013 the primary source of human traffic for most projects. In other words, you probably wouldn&#8217;t want to block search engine crawlers completely. However, you want to have as much control as possible over what they crawl and index and why.<\/p>\n\n\n\n<p>The <strong><em>robots.txt<\/em><\/strong> file is the main mechanism for doing that, but in 2019, Google changed how it reads some directives, so if your site uses a legacy configuration, it may not work as expected.<br>And if the search engine crawlers are let loose, they can push server load through the roof. For example, the screenshot below shows Google crawlers firing <strong>dozens upon dozens of requests per second<\/strong>, resulting in <strong>an average daily CPU load of around 70-80%<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"734\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/google_bot_requests-1-1024x734.webp\" alt=\"Non-Human Traffic: How Bots Affect Server Load, What Is Non-Human Traffic and How Does It Affect Your Site?\" class=\"wp-image-5989\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/google_bot_requests-1-1024x734.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/google_bot_requests-1-300x215.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/google_bot_requests-1-768x550.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/google_bot_requests-1.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AI bots<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Artificial intelligence can be an incredibly versatile tool. However, if an AI language model is to be useful, it must be trained using information available online. That information sometimes comes from your website.<\/p>\n\n\n\n<p>When a user asks an AI a particular question, the model uses its training (based on vast amounts of text), language patterns, and learned relationships between concepts to generate an answer. However, sometimes it doesn&#8217;t have direct access to the required data and has to find it online using specialized <strong>AI bots<\/strong> that send requests to relevant websites.<\/p>\n\n\n\n<p>Speed is of the essence when it comes to AI response generation, meaning bots often have to work overtime trying to find and digest information as quickly as possible. The result?<\/p>\n\n\n\n<p>They sometimes bombard your server with <strong>25 to 100 requests per second<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Malicious bots<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Cybercriminals usually compromise your website by exploiting a <strong>remote code execution (RCE) vulnerability<\/strong> in outdated software (e.g., an old WordPress plugin). Applying all updates and following established security practices helps you minimize the chances of hackers breaking in. It won&#8217;t stop them from trying, though.<\/p>\n\n\n\n<p>The thing that can give hackers persistent access to your server is known as <strong>a PHP shell<\/strong> \u2013 a PHP script that can allow them to do anything from executing system commands to accessing databases to uploading additional files.<\/p>\n\n\n\n<p>Hackers from all over the world are eager to find PHP shells on your website. They&#8217;ll use botnets (global networks of compromised devices) to send <strong>millions of requests<\/strong> to servers worldwide, looking for known PHP shell files.<\/p>\n\n\n\n<p>This activity is more common than you think. In fact, according to Imperva&#8217;s 2025 Bad Bot Report, about <strong>37% of all internet traffic is generated by malicious bots<\/strong>, so at any given time, your server could be hit with hundreds of requests per second.<\/p>\n\n\n\n<p>In the best-case scenario, there are no PHP shells on your hosting account, so your site returns a 404 response to all these requests. This is easier said than done.<\/p>\n\n\n\n<p>If you use a content management system like WordPress, displaying a 404 page involves quite a lot of database queries. For example, for every request, WP needs to retrieve the site&#8217;s title, description, and meta tags. If you use WPML, all the translations must be pulled from the database, and WooCommerce stores must automatically load product listings, descriptions, and photos.<\/p>\n\n\n\n<p>Your server must be doing this numerous times a second while also serving legitimate visitors.<\/p>\n\n\n\n<p>The effects?<\/p>\n\n\n\n<p>The screenshot below shows one of our cheapest shared hosting accounts logging over 60GB of bandwidth in a single week.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"924\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/spanel_web_statistics_example-1024x924.webp\" alt=\"Non-Human Traffic: How Bots Affect Server Load, What Is Non-Human Traffic and How Does It Affect Your Site? 2\" class=\"wp-image-5977\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/spanel_web_statistics_example-1024x924.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/spanel_web_statistics_example-300x271.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/spanel_web_statistics_example-768x693.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/spanel_web_statistics_example.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>In a shared environment, these load levels disrupt the performance of all projects hosted on the server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ways to Protect Your Site Against Unwanted Traffic<\/h2>\n\n\n\n<p>Non-human traffic isn&#8217;t always bad, but if you don&#8217;t keep tabs on it, it could easily spin out of control and drain the hardware resources needed to maintain website performance at the desired levels.<\/p>\n\n\n\n<p>Fortunately, there are a few simple steps you can take to ensure bots don&#8217;t affect loading speeds and server load.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Serve a static 404 page to requests for non-existent PHP shells<\/strong><\/li>\n<\/ul>\n\n\n\n<p>You can&#8217;t stop malicious bots from trying to find PHP shells on your site. What you can do, however, is minimize their effect on the server.<\/p>\n\n\n\n<p>You do that by eliminating the dozens of MySQL queries that your dynamic website would normally need to make to generate a 404 response. The process is pretty straightforward. Log in to your control panel, open the File Manager, and navigate to your site&#8217;s document root folder.<\/p>\n\n\n\n<p>Open the <strong><em>.htaccess<\/em><\/strong> file and add the following to the beginning of the file:<\/p>\n\n\n\n<p class=\"alert-orange\">&lt;IfModule mod_rewrite.c&gt;<br>RewriteEngine On<br>RewriteCond %{REQUEST_URI} \\.php$ [NC]<br>RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteRule .* \/404.html [L,R=302]<br>&lt;\/IfModule&gt;<\/p>\n\n\n\n<p>After you save the changes, the web server will return a static 404 HTML page for every request for a missing PHP file. These requests won&#8217;t reach your content management system at all, so it won&#8217;t need to execute any database queries or use server resources.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use Cloudflare to restrict traffic from outside your geographic region<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Cloudflare&#8217;s free CDN service can be a powerful ally in limiting the impact of non-human traffic on your site.<\/p>\n\n\n\n<p>For example, if you run a regional website and don&#8217;t expect any visitors from outside your country, you can set up a custom firewall rule and block or restrict incoming requests from abroad. Log in to your CloudFlare account and go to <strong>Security<\/strong> &gt; <strong>Security Rules<\/strong> &gt; <strong>Create Rule<\/strong> &gt; <strong>Custom Rules<\/strong>.<\/p>\n\n\n\n<p>The interface is fairly intuitive. First, pick a name for your new custom rule, then use the drop-down menus and fields to set the first condition. Select <strong>Country<\/strong> from the <strong>Field <\/strong>menu, click <strong>does not equal<\/strong> from the <strong>Operator<\/strong> drop-down, and enter your country in the <strong>Value<\/strong> field.<\/p>\n\n\n\n<p>As it stands, the rule covers all foreign traffic hitting your traffic, which could include many malicious bots and AI scrapers. However, it also includes search engine crawlers, and you likely don&#8217;t want to block them.<\/p>\n\n\n\n<p>To implement an exception for them, click the <strong>And<\/strong> button, set the <strong>Field<\/strong> menu to <strong>User Agent<\/strong>, select <strong>does not contain<\/strong> from the <strong>Operator<\/strong> menu, and set the <strong>Value <\/strong>to &#8220;<strong>google<\/strong>.&#8221;<\/p>\n\n\n\n<p>Finally, open the <strong>Choose action<\/strong> drop-down to determine what happens to incoming requests meeting your conditions. If you want to make your website inaccessible outside your country, you can select <strong>Block<\/strong>. If, however, you expect some human traffic from abroad, you can set up a CAPTCHA or a JS challenge to filter out bots.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"498\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-waf-rule-example-1024x498.webp\" alt=\"Non-Human Traffic: How Bots Affect Server Load, Ways to Protect Your Site Against Unwanted Traffic\" class=\"wp-image-5978\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-waf-rule-example-1024x498.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-waf-rule-example-300x146.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-waf-rule-example-768x374.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-waf-rule-example.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Limit AI bot activity with the help of Cloudflare<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Traffic generated by AI bots is a relatively new phenomenon, but it&#8217;s becoming increasingly prominent, with some researchers estimating that it has gone up by around <strong>80% in just 12 months<\/strong>.<\/p>\n\n\n\n<p>Given AI&#8217;s increasing popularity, traffic generated by large language model bots is unlikely to decline anytime soon. Fortunately, Cloudflare can help you ensure they will not affect your server load.<\/p>\n\n\n\n<p>After you log in to your Cloudflare account, select your domain from the menu on the left and click <strong>Overview<\/strong>. On the right, you&#8217;ll see the <strong>Control AI crawlers <\/strong>menu with a drop-down containing three options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Block on all pages<\/strong> \u2013 Cloudflare indiscriminately blocks all AI crawlers, regardless of the page they&#8217;re trying to access.<\/li>\n\n\n\n<li><strong>Block only on hostnames with ads<\/strong> \u2013 AI crawlers are blocked only on pages, where you display ads.<\/li>\n\n\n\n<li><strong>Do not block<\/strong> \u2013 AI bots are allowed to crawl your website freely.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"789\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-block-ai-1024x789.webp\" alt=\"Non-Human Traffic: How Bots Affect Server Load, Ways to Protect Your Site Against Unwanted Traffic 2\" class=\"wp-image-5979\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-block-ai-1024x789.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-block-ai-300x231.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-block-ai-768x592.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/02\/cloudflare-block-ai.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>After you make the changes, it could take around 5-10 minutes for them to take effect.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Impose rate limits on good bots<\/strong><\/li>\n<\/ul>\n\n\n\n<p>There is a <em>crawl-delay<\/em> directive in the <strong><em>robots.txt<\/em><\/strong> file that, in theory, allows you to limit the impact of search engine crawlers on your server load. However, while some search engines, like Bing and Yandex, respect it, Google doesn&#8217;t, so its effects are limited.<\/p>\n\n\n\n<p>You obviously want your site crawled and indexed by Google, but you don&#8217;t want it to cause CPU spikes. Yet again, Cloudflare has a solution.<\/p>\n\n\n\n<p>Log in to your account and go to <strong>Security<\/strong> &gt; <strong>WAF<\/strong> &gt; <strong>Rate Limiting<\/strong>. You can then add a rule for <strong>Selected<\/strong> <strong>Bots<\/strong> and impose a rate limit on them to ensure they don&#8217;t cause chaos. Setting it at around <strong>30 requests per minute<\/strong> is pretty much guaranteed to help you avoid performance issues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We all know that the more visitors your site gets, the more processing power and memory you need. We also know that complex plugins and heavy scripts can affect resource usage. However, there are other, less obvious factors determining server load, and ignoring them often results in CPU and RAM usage spikes that appear seemingly [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"none","_seopress_titles_title":"Non-Human Traffic: How Bots Affect Server Load | ScalaHosting KB","_seopress_titles_desc":"Non-human traffic can strain your server. Explore how search crawlers, AI scrapers, and malicious bots impact performance \u2013 plus smart ways to control and reduce the load.","_seopress_robots_index":"","footnotes":""},"categories":[34],"tags":[],"class_list":["post-5973","post","type-post","status-publish","format-standard","hentry","category-web-hosting"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/5973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/comments?post=5973"}],"version-history":[{"count":2,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/5973\/revisions"}],"predecessor-version":[{"id":5990,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/5973\/revisions\/5990"}],"wp:attachment":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/media?parent=5973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/categories?post=5973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/tags?post=5973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}