
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Sun, 05 Apr 2026 16:44:38 GMT</lastBuildDate>
        <item>
            <title><![CDATA[From Googlebot to GPTBot: who’s crawling your site in 2025]]></title>
            <link>https://blog.cloudflare.com/from-googlebot-to-gptbot-whos-crawling-your-site-in-2025/</link>
            <pubDate>Tue, 01 Jul 2025 10:00:00 GMT</pubDate>
            <description><![CDATA[ From May 2024 to May 2025, crawler traffic rose 18%, with GPTBot growing 305% and Googlebot 96%. ]]></description>
            <content:encoded><![CDATA[ <p><a href="https://www.cloudflare.com/learning/bots/what-is-a-web-crawler/"><u>Web crawlers</u></a> are not new. The <a href="https://en.wikipedia.org/wiki/World_Wide_Web_Wanderer"><u>World Wide Web Wanderer</u></a> debuted in 1993, though the first web search engines to truly use crawlers and indexers were <a href="https://en.wikipedia.org/wiki/JumpStation"><u>JumpStation</u></a> and <a href="https://en.wikipedia.org/wiki/WebCrawler"><u>WebCrawler</u></a>. Crawlers are part of one of the backbones of the Internet’s success: search. Their main purpose has been to index the content of websites across the Internet so that those websites can appear in search engine results and direct users appropriately. In this blog post, we’re analyzing recent trends in web crawling, which now has a crucial and complex new role with the rise of AI.</p><p>Not all crawlers are the same. Bots, automated scripts that perform tasks across the Internet, come in many forms: those considered non-threatening or “<a href="https://www.cloudflare.com/learning/bots/how-to-manage-good-bots/"><u>good</u></a>” (such as API clients, search indexing bots like Googlebot, or health checkers) and those considered malicious or “<a href="https://www.cloudflare.com/learning/bots/how-to-manage-good-bots/"><u>bad</u></a>” (like those used for credential stuffing, spam, or <a href="https://www.cloudflare.com/learning/ai/how-to-prevent-web-scraping/">scraping content without permission</a>). In fact, around 30% of global web traffic today, according to <a href="https://radar.cloudflare.com/traffic?dateRange=52w#bot-vs-human"><u>Cloudflare Radar data</u></a>, comes from bots, and even exceeds human Internet traffic in some locations.</p><p>A new category, AI crawlers, has emerged in recent years. These bots collect data from across the web to train AI models, improving tools and experiences, but also <a href="https://en.wikipedia.org/wiki/Artificial_intelligence_and_copyright"><u>raising issues around content rights</u></a>, unauthorized use, and infrastructure overload. We aimed to confirm the growth of both search and AI crawlers, examine specific AI crawlers, and understand broader crawler usage.</p><p>This is increasingly relevant with the rapid adoption of AI, growing content rights concerns, and data privacy discussions. Some sites and creators are looking to <a href="https://www.cloudflare.com/learning/ai/how-to-block-ai-crawlers/">limit or block AI crawlers</a> using tools like <code>robots.txt</code> or <a href="https://blog.cloudflare.com/bringing-ai-to-cloudflare/#enabling-dynamic-updates-for-the-ai-bot-rule"><u>firewall rules</u></a>. Others, like Dutch indie maker and entrepreneur <a href="https://x.com/levelsio/status/1916626339924267319"><u>Pieter Levels</u></a>, have embraced them: “<i>I’m 100% fine with AI crawlers… very important to rank in LLMs [large language models]</i>”.</p><p>It’s important to note that crawlers serve different purposes. For example, the <code>facebookexternalhit</code> bot is not included in this analysis, as it is used by Facebook to fetch page content when generating previews for shared links. However, within this post, we are only focusing on AI and search crawlers that are indexing or scraping website content.</p>
    <div>
      <h2>AI-only crawlers perspective</h2>
      <a href="#ai-only-crawlers-perspective">
        
      </a>
    </div>
    <p>Let’s start with an AI-only crawler perspective that we currently have on <a href="https://radar.cloudflare.com/explorer?dataSet=ai.bots&amp;dt=12w"><u>Cloudflare Radar</u></a>, focused only on crawlers advertised as AI-related. To identify them, we’re using here a <a href="https://github.com/ai-robots-txt/ai.robots.txt/blob/main/robots.json"><u>list</u></a> derived from an open-source project that helps website owners manage and control access to AI crawlers — especially those used to train large language models (LLMs). It also provides guidance on what to include in <code>robots.txt</code><i> </i>files (more on that below). The data shown below is based on matching those crawler names with user-agent strings in HTTP requests. (Further details, including one exception, about this method can be found at the end of the blog post.)</p><p>The AI crawler landscape saw a significant shift between May 2024 and May 2025, with <code>GPTBot</code> (from OpenAI) emerging as the dominant force, surging from 5% to 30% share, and <code>Meta-ExternalAgent</code> (from Meta) making a strong new entry at 19%. This growth came at the expense of former leader <code>Bytespider</code>, which plummeted from 42% to 7%, as well as other AI crawlers like <code>ClaudeBot</code> and <code>Amazonbot</code>, which also saw declines. Our data clearly indicates a reordering of top AI crawlers, highlighting the increasing prominence of OpenAI and Meta in this category.</p><p><b>May 2024</b></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3W6ZVHbwe8r5R5pYrZE7Aw/20a6ef0f77c015ae932848861c04b556/image6.png" />
          </figure><p><b>May 2025</b></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5joaVYfpzHZe7K8VEfCZCV/729f22a39f51d54b80cae35dd38e42b4/image3.png" />
          </figure><table><tr><td><p><b>Rank</b></p></td><td><p><b>Bot Name</b></p></td><td><p><b>Share (May 2024)</b></p></td><td><p><b>Rank</b></p></td><td><p><b>Bot Name</b></p></td><td><p><b>Share (May 2025)</b></p></td></tr><tr><td><p>1</p></td><td><p>Bytespider</p></td><td><p>42%</p></td><td><p>1</p></td><td><p>GPTBot</p></td><td><p>30%</p></td></tr><tr><td><p>2</p></td><td><p>ClaudeBot</p></td><td><p>27%</p></td><td><p>2</p></td><td><p>ClaudeBot</p></td><td><p>21%</p></td></tr><tr><td><p>3</p></td><td><p>Amazonbot</p></td><td><p>21%</p></td><td><p>3</p></td><td><p>Meta-ExternalAgent</p></td><td><p>19%</p></td></tr><tr><td><p>4</p></td><td><p>GPTBot</p></td><td><p>5%</p></td><td><p>4</p></td><td><p>Amazonbot</p></td><td><p>11%</p></td></tr><tr><td><p>5</p></td><td><p>Applebot</p></td><td><p>4.1%</p></td><td><p>5</p></td><td><p>Bytespider</p></td><td><p>7.2%</p></td></tr></table><p>For additional context, the list below includes further information about the bots with higher crawling shares seen above. This information comes from the same open-source <a href="https://github.com/ai-robots-txt/ai.robots.txt/blob/main/robots.json"><u>list</u></a> mentioned above and from publications by companies like <a href="https://platform.openai.com/docs/bots"><u>OpenAI</u></a>, which explain how their crawlers are used. </p><ul><li><p><b>GPTBot</b> – OpenAI’s crawler used to improve and train large language models like ChatGPT.</p></li><li><p><b>ClaudeBot</b> – Anthropic’s crawler for training and updating the Claude AI assistant.</p></li><li><p><b>Meta-ExternalAgent</b> – Meta’s bot likely used for collecting data to train or fine-tune LLMs.</p></li><li><p><b>Amazonbot</b> – Amazon’s crawler that gathers data for its search and AI applications.</p></li><li><p><b>Bytespider</b> – ByteDance’s AI data collector, often linked to training models like Ernie or TikTok-related AI.</p></li><li><p><b>Applebot</b> – Apple’s web crawler primarily for Siri and Spotlight search, possibly used in AI development.</p></li><li><p><b>OAI-SearchBot</b> – OpenAI’s search-focused crawler, likely used for retrieving real-time web info for models.</p></li><li><p><b>ChatGPT-User</b> – Represents API-based or browser usage of ChatGPT in connection with user interactions.</p></li><li><p><b>PerplexityBot</b> – Crawler from Perplexity.ai, which powers their AI answer engine using real-time web data.</p></li></ul><p>Webmasters can inform crawler operators of whether they want these bots and crawlers to access their content by setting out rules in a file called <a href="https://www.cloudflare.com/learning/bots/what-is-robots-txt/"><code><u>robots.txt</u></code></a>, which tells crawlers what pages they should or shouldn’t access. <a href="https://blog.cloudflare.com/ai-audit-enforcing-robots-txt/"><u>As we’ve seen recently</u></a>, crawlers honoring your <code>robots.txt</code> policies is voluntary, but Cloudflare announced tools like <a href="https://blog.cloudflare.com/cloudflare-ai-audit-control-ai-content-crawlers/"><u>AI Audit</u></a> to help content creators to enforce it.</p><p>Now, as we’ve seen, the landscape of web crawling is evolving rapidly, driven by the merging roles of search engines and AI. AI is now deeply integrated into search, seen in Google’s AI Overviews and AI Mode, but also in social media platforms, like Meta AI on Instagram. So, let's broaden our analysis to include these wider AI-driven crawling activities.</p>
    <div>
      <h2>General AI and search crawling growth: +18%</h2>
      <a href="#general-ai-and-search-crawling-growth-18">
        
      </a>
    </div>
    <p>A broader view reveals the growth of crawling traffic from both search and AI crawlers over the first few months of 2025. To remove customer growth bias, we'll analyze trends using a fixed set of customers from specific weeks (a method we’ve used in our <a href="http://radar.cloudflare.com/year-in-review/"><u>Cloudflare Radar Year in Review</u></a>): the first week of May 2024, a week in November 2024, and the first week of April 2025. </p><p>Using that method, we found that AI and search crawler traffic grew by 18% from May 2024 to May 2025 (comparing full-month periods). The increase was even higher, at 48%, when including new Cloudflare customers added during that time. Peak AI and search crawling traffic occurred in April 2025, with a 32% increase compared to May 2024. This confirms that crawling traffic has clearly risen over the past year, but also that growth is not always constant. Google remains the dominant player, and its share is growing too, as we’ll see in the next section.</p><p>As the next chart shows, crawling traffic increased sharply in March and April 2025 and remained high, though slightly lower, in May.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/hePknXM0crXK4jX5e7LxZ/0956ac5024915734a9c0f20c8f15bc16/image4.png" />
          </figure><p>The patterns on the above crawling chart also seem to reflect broader seasonal patterns and general human Internet traffic patterns. In 2024, traffic dropped during the summer in the Northern Hemisphere, with August and September being the least active months. And like overall Internet traffic, it then rose in November, when people are typically more online due to shopping and seasonal habits, as we've seen in <a href="https://blog.cloudflare.com/from-deals-to-ddos-exploring-cyber-week-2024-internet-trends/"><u>past analyses</u></a>. </p>
    <div>
      <h2>Googlebot crawling grew 96% in one year</h2>
      <a href="#googlebot-crawling-grew-96-in-one-year">
        
      </a>
    </div>
    <p><a href="https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers"><code><u>Googlebot</u></code></a>, which indexes content for Google Search, was clearly the top crawler throughout the period and showed strong growth, up 96% from May 2024 to May 2025, reflecting increased crawling by Google. Crawling traffic peaked in April 2025, reaching 145% higher than in May 2024. It's also important to mention that Google made changes to its search and launched <a href="https://ahrefs.com/blog/google-ai-overviews/"><u>AI Overviews</u></a> in its search engine during this time — first in the US in May 2024, then in more countries later.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1qFVGagpgYIti7p741j8uW/77dc4bc61bec86faa6b80b293997dffd/image1.png" />
          </figure><p>Two trends stand out when looking at daily data for Google-related crawlers, as shown in the graph below. First, <a href="https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers"><code><u>Googlebot</u></code></a> and the more recent <code>GoogleOther</code> (a <a href="https://searchengineland.com/google-launches-new-googlebot-named-googleother-395827"><u>web crawler from 2023</u></a> for “research and development”) account for most of Google’s crawling activity. Second, there were two visible drops in crawling traffic: one on December 14, 2024 (around a Google Search <a href="https://status.search.google.com/incidents/V9nDKuo6nWKh2ThBALgA#:~:text=Incident%20began%20at%202024%2D12,Time"><u>update</u></a>), and another from May 20 to May 28, 2025. That May 20 drop occurred around the same time as the rollout of AI Mode on Google Search in the US, although the timing may be coincidental.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/16kB3kDeprY3LMetEDPS10/8f2bafc7568579377624d6c0aaeb1751/image5.png" />
          </figure>
    <div>
      <h2>Breakdown of top 20 AI and search web crawlers </h2>
      <a href="#breakdown-of-top-20-ai-and-search-web-crawlers">
        
      </a>
    </div>
    <p>Ranking crawlers by their share of total requests gives a clearer picture of which bots are gaining or losing ground, especially among those focused on search and AI. The table below shows a clear trend: some AI bots have grown rapidly since last year (with growth beginning even earlier), while many traditional search crawlers have remained flat or lost share (as in the case of Bing and its <code>Bingbot</code> crawler). The main exception is <code>Googlebot</code>.</p><p>The next table shows the percentage share of each crawler out of all crawling traffic generated by this specific cohort of over 30 AI &amp; search crawlers observed by Cloudflare in May 2024 and May 2025. The table below also includes the change in percentage points and the growth or decline in raw request volume. Crawlers are ranked by their share in May 2025. Key crawler shifts include <code>GPTBot</code> rising sharply (+305%), while <code>Bytespider</code> dropped dramatically (-85%).</p>
<div><table><thead>
  <tr>
    <th><span>Rank</span></th>
    <th><span>Bot name</span></th>
    <th><span>Share May 2024</span></th>
    <th><span>Share May 2025</span></th>
    <th><span>Δ percentage-point change</span></th>
    <th><span>Raw requests growth (May 2024 to May 2025)</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>1</span></td>
    <td><span>Googlebot</span></td>
    <td><span>30%</span></td>
    <td><span>50%</span></td>
    <td><span>+20 pp</span></td>
    <td><span>96%</span></td>
  </tr>
  <tr>
    <td><span>2</span></td>
    <td><span>Bingbot</span></td>
    <td><span>10%</span></td>
    <td><span>8.7%</span></td>
    <td><span>-1.3 pp</span></td>
    <td><span>2%</span></td>
  </tr>
  <tr>
    <td><span>3</span></td>
    <td><span>GPTBot</span></td>
    <td><span>2.2%</span></td>
    <td><span>7.7%</span></td>
    <td><span>+5.5 pp</span></td>
    <td><span>305%</span></td>
  </tr>
  <tr>
    <td><span>4</span></td>
    <td><span>ClaudeBot</span></td>
    <td><span>11.7%</span></td>
    <td><span>5.4%</span></td>
    <td><span>-6.3 pp</span></td>
    <td><span>-46%</span></td>
  </tr>
  <tr>
    <td><span>5</span></td>
    <td><span>GoogleOther</span></td>
    <td><span>4.4%</span></td>
    <td><span>4.3%</span></td>
    <td><span>-0.1 pp</span></td>
    <td><span>14%</span></td>
  </tr>
  <tr>
    <td><span>6</span></td>
    <td><span>Amazonbot</span></td>
    <td><span>7.6%</span></td>
    <td><span>4.2%</span></td>
    <td><span>-3.4 pp</span></td>
    <td><span>-35%</span></td>
  </tr>
  <tr>
    <td><span>7</span></td>
    <td><span>Googlebot-Image</span></td>
    <td><span>4.5%</span></td>
    <td><span>3.3%</span></td>
    <td><span>-1.2 pp</span></td>
    <td><span>-13%</span></td>
  </tr>
  <tr>
    <td><span>8</span></td>
    <td><span>Bytespider</span></td>
    <td><span>22.8%</span></td>
    <td><span>2.9%</span></td>
    <td><span>-19.8 pp</span></td>
    <td><span>-85%</span></td>
  </tr>
  <tr>
    <td><span>9</span></td>
    <td><span>Yandex</span></td>
    <td><span>2.8%</span></td>
    <td><span>2.2%</span></td>
    <td><span>-0.7 pp</span></td>
    <td><span>-10%</span></td>
  </tr>
  <tr>
    <td><span>10</span></td>
    <td><span>ChatGPT-User</span></td>
    <td><span>0.1%</span></td>
    <td><span>1.3%</span></td>
    <td><span>+1.2 pp</span></td>
    <td><span>2,825%</span></td>
  </tr>
  <tr>
    <td><span>11</span></td>
    <td><span>Applebot</span></td>
    <td><span>1.9%</span></td>
    <td><span>1.2%</span></td>
    <td><span>-0.7 pp</span></td>
    <td><span>-26%</span></td>
  </tr>
  <tr>
    <td><span>12</span></td>
    <td><span>Timpibot</span></td>
    <td><span>0.3%</span></td>
    <td><span>0.6%</span></td>
    <td><span>+0.3 pp</span></td>
    <td><span>133%</span></td>
  </tr>
  <tr>
    <td><span>13</span></td>
    <td><span>Baiduspider</span></td>
    <td><span>0.5%</span></td>
    <td><span>0.4%</span></td>
    <td><span>-0.1 pp</span></td>
    <td><span>7%</span></td>
  </tr>
  <tr>
    <td><span>14</span></td>
    <td><span>PerplexityBot</span></td>
    <td><span>&lt;0.01%</span></td>
    <td><span>0.2%</span></td>
    <td><span>+0.2 pp</span></td>
    <td><span>157,490%</span></td>
  </tr>
  <tr>
    <td><span>15</span></td>
    <td><span>DuckDuckBot</span></td>
    <td><span>0.2%</span></td>
    <td><span>0.1%</span></td>
    <td><span>-0.1 pp</span></td>
    <td><span>-16%</span></td>
  </tr>
  <tr>
    <td><span>16</span></td>
    <td><span>SeznamBot</span></td>
    <td><span>0.1%</span></td>
    <td><span>0.1%</span></td>
    <td></td>
    <td><span>2%</span></td>
  </tr>
  <tr>
    <td><span>17</span></td>
    <td><span>Yeti</span></td>
    <td><span>0.1%</span></td>
    <td><span>0.1%</span></td>
    <td></td>
    <td><span>47%</span></td>
  </tr>
  <tr>
    <td><span>18</span></td>
    <td><span>coccocbot</span></td>
    <td><span>0.1%</span></td>
    <td><span>0.1%</span></td>
    <td></td>
    <td><span>-3%</span></td>
  </tr>
  <tr>
    <td><span>19</span></td>
    <td><span>Sogou</span></td>
    <td><span>0.1%</span></td>
    <td><span>0.1%</span></td>
    <td></td>
    <td><span>-22%</span></td>
  </tr>
  <tr>
    <td><span>20</span></td>
    <td><span>Yahoo! Slurp</span></td>
    <td><span>0.1%</span></td>
    <td><span>0.0%</span></td>
    <td><span>-0.1 pp</span></td>
    <td><span>-8%</span></td>
  </tr>
</tbody></table></div><p>Based on this data, two major shifts in web crawling occurred between May 2024 and May 2025:</p><p><b>1. Some AI crawlers rose sharply.
</b><code>GPTBot</code> (from OpenAI) increased its share from 2.2% to 7.7% (+5.5 pp), with a 305% rise in requests. This underscores the data demand for training large language models like ChatGPT. <code>GPTBot</code> jumped from #9 in May 2024 to #3 in May 2025.</p><p>Another OpenAI crawler, <code>ChatGPT-User</code>, saw requests surge by 2,825%, reaching a 1.3% share. This reflects a large rise in ChatGPT user activity or API-based interactions that involve accessing web content. <code>PerplexityBot</code> (from Perplexity.ai), despite a small 0.2% share, recorded the highest growth rate: a staggering 157,490% increase in raw requests.</p><p>Meanwhile, some AI crawlers saw steep declines. <code>ClaudeBot</code> (Anthropic) fell from 11.7% to 5.4% of total traffic and dropped 46% in requests. <code>Bytespider</code> plummeted 85% in request volume, falling from #2 to #8 in crawler share (now at just 2.9%).</p><p>Both <code>Amazonbot</code> and <code>Applebot</code>, also considered AI crawlers, saw decreases in share and in raw requests (–35% and –26%, respectively).</p><p><b>2. Google’s dominance expanded.
</b><code>Googlebot</code>’s share rose from 30% to 50%, supporting search indexing, but potentially also having AI-related purposes (such as new AI Overviews in Google Search). And <code>GoogleOther</code> (the<a href="https://searchengineland.com/google-launches-new-googlebot-named-googleother-395827"><u> crawler introduced in 2023</u></a>) also increased in crawling traffic, 14%. Other Google crawlers not in the top 20, like <code>Googlebot-News</code>, also grew significantly (+71% in requests). There’s a clear trend of growth in these Google-related web crawlers at a time when the company is investing heavily in combining AI with search.</p><p>Also in the search category, <code>Bingbot</code>’s share (from Microsoft) declined slightly from 10% to 8.7% (-1.3 pp), though its raw requests still grew modestly by 2%.</p><p>These trends show that web crawling is increasingly dominated by bots from Google and OpenAI, reflecting clear shifts over the course of a year. Google also appears to be adapting how it collects data to support both traditional search and AI-driven features.</p><p>Also worth noting is <code>FriendlyCrawler</code>, which no longer appears in the top 20 list as of May 2025 (now ranked #35). It was #14 in May 2024 with a 0.2% share, but saw a 100% drop in requests by May 2025. This bot is known to index and analyze website content, although its owner and <a href="https://imho.alex-kunz.com/2024/01/25/an-update-on-friendly-crawler/"><u>purpose</u></a> remain unclear. Typically, crawlers like this are used for improving search results, market research, or analytics.</p>
    <div>
      <h2>robots.txt &amp; AI bots: GPTBot leads twice</h2>
      <a href="#robots-txt-ai-bots-gptbot-leads-twice">
        
      </a>
    </div>
    <p>Recent data from June 6, 2025, from <a href="https://radar.cloudflare.com/ai-insights?dateStart=2025-05-30&amp;dateEnd=2025-06-06"><u>Cloudflare Radar</u></a> shows that out of 3,816 domains (from the <a href="https://radar.cloudflare.com/domains"><u>top 10,000</u></a>) where we were able to find a<i> robots.txt</i> file, 546 (about 14%) had “allow” or “disallow” (fully or partially) directives targeting AI bots in particular.</p><p>This leaves many site owners in a gray area because it’s not always clear how effective <i>robots.txt</i> is in managing AI crawlers. Some site owners may not think to use it specifically for AI bots, while others might be unsure whether these bots even respect <i>robots.txt </i>rules, especially newer or less transparent crawlers. In other cases, sites use partial rules to fine-tune access, trying to balance visibility and protection without fully opting in or out.</p><p>The “disallow” rules appear far more often than “allow” rules. The most frequently blocked bot was <code>GPTBot</code>, disallowed by 312 domains (250 fully, 62 partially), followed by <code>CCBot</code> and <code>Google-Extended</code>, as shown in the following graph.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6CgnH5GZNCIgUAZEeMWTVK/fe608135d5376e936f0ac503e3e9564c/image2.png" />
          </figure><p>Although <code>GPTBot</code> was the most blocked, it was also the most explicitly allowed, with 61 domains granting access (18 fully, 43 partially). Still, very few sites openly and explicitly allow AI bots, and when they do, it’s usually for limited sections. Note that bots not listed in a site’s robots.txt are effectively allowed by default.</p><p>As AI crawling increases, more websites are moving from passive signals like <i>robots.txt</i> to active protections like <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/"><u>Web Application Firewalls</u></a>. The ecosystem is shifting, with a growing focus on enforceable controls.</p><p><i>Note: When we analyze crawler traffic, we compare user-agent tokens found in robots.txt files (like those for AI crawlers) with the actual user-agent strings in HTTP requests. It's important to note that some robots.txt tokens, such as Google-Extended, aren't user-agent substrings. As described in </i><a href="https://www.rfc-editor.org/rfc/rfc9309.html#name-the-user-agent-line"><i><u>RFC 9309</u></i></a><i>, one goal of these token may be to signal the purpose of the crawler. For instance, Google uses Google-Extended in robots.txt to see if your content can be used for AI training, but the traffic itself still comes from standard Google user-agents like Googlebot. Because of this, not every robots.txt entry will have a direct match in HTTP request logs.</i></p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>As AI crawlers reshape the Internet, websites face both new challenges and new opportunities in managing their online presence.</p><p>This analysis highlights the growing impact of AI on web crawling, showing a clear shift from traditional search indexing to data collection for training AI models. The detailed statistics, such as Googlebot’s continued growth and the rapid rise of AI-specific crawlers, offer context for understanding how this space is evolving and what it means for the future of web content access.</p><p>The trend toward stronger, enforceable blocking methods, something <a href="https://blog.cloudflare.com/cloudflare-ai-audit-control-ai-content-crawlers/"><u>Cloudflare has also been invested</u></a>, signals a key shift in how websites may control their interactions with AI systems going forward.</p> ]]></content:encoded>
            <category><![CDATA[Pay Per Crawl]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[AI Bots]]></category>
            <category><![CDATA[Bots]]></category>
            <guid isPermaLink="false">7KJiiS1zdIyBiVgoT6SgKf</guid>
            <dc:creator>João Tomé</dc:creator>
            <dc:creator>Jorge Pacheco</dc:creator>
            <dc:creator>Carlos Azevedo</dc:creator>
        </item>
        <item>
            <title><![CDATA[AI Everywhere with the WAF Rule Builder Assistant, Cloudflare Radar AI Insights, and updated AI bot protection]]></title>
            <link>https://blog.cloudflare.com/bringing-ai-to-cloudflare/</link>
            <pubDate>Fri, 27 Sep 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[ This year for Cloudflare’s birthday, we’ve extended our AI Assistant capabilities to help you build new WAF rules, added new AI bot & crawler traffic insights to Radar, and given customers new AI bot  ]]></description>
            <content:encoded><![CDATA[ <p>The continued growth of AI has fundamentally changed the Internet over the past 24 months. AI is increasingly ubiquitous, and Cloudflare is leaning into the new opportunities and challenges it presents in a big way. This year for Cloudflare’s birthday, we’ve extended our AI Assistant capabilities to help you build new WAF rules, added AI bot traffic insights on Cloudflare Radar, and given customers new <a href="https://www.cloudflare.com/learning/ai/how-to-block-ai-crawlers/">AI bot blocking capabilities</a>.  </p>
    <div>
      <h2>AI Assistant for WAF Rule Builder</h2>
      <a href="#ai-assistant-for-waf-rule-builder">
        
      </a>
    </div>
    
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5RYC4wmCDbs0axY92FfkFk/a728906cb6a902dd1c78ec93a0f650c2/BLOG-2564_1.png" />
          </figure><p>At Cloudflare, we’re always listening to your feedback and striving to make our products as user-friendly and powerful as possible. One area where we've heard your feedback loud and clear is in the complexity of creating custom and rate-limiting rules for our Web Application Firewall (WAF). With this in mind, we’re excited to introduce a new feature that will make rule creation easier and more intuitive: the AI Assistant for WAF Rule Builder. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7avSjubqlfg7L8ymKEztgk/7c3c31e50879ec64bccc384bdfcd5524/BLOG-2564_2.png" />
          </figure><p>By simply entering a natural language prompt, you can generate a custom or rate-limiting rule tailored to your needs. For example, instead of manually configuring a complex rule matching criteria, you can now type something like, "Match requests with low bot score," and the assistant will generate the rule for you. It’s not about creating the perfect rule in one step, but giving you a strong foundation that you can build on. </p><p>The assistant will be available in the Custom and Rate Limit Rule Builder for all WAF users. We’re launching this feature in Beta for all customers, and we encourage you to give it a try. We’re looking forward to hearing your feedback (via the UI itself) as we continue to refine and enhance this tool to meet your needs.</p>
    <div>
      <h2>AI bot traffic insights on Cloudflare Radar</h2>
      <a href="#ai-bot-traffic-insights-on-cloudflare-radar">
        
      </a>
    </div>
    <p>AI platform providers use bots to crawl and scrape websites, vacuuming up data to use for model training. This is frequently done without the permission of, or a business relationship with, the content owners and providers. In July, Cloudflare urged content owners and providers to <a href="https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/"><u>“declare their AIndependence”</u></a>, providing them with a way to block AI bots, <a href="https://www.cloudflare.com/learning/ai/how-to-prevent-web-scraping/">scrapers</a>, and crawlers with a single click. In addition to this so-called “easy button” approach, sites can provide more specific guidance to these bots about what they are and are not allowed to access through directives in a <a href="https://www.cloudflare.com/en-gb/learning/bots/what-is-robots-txt/"><u>robots.txt</u></a> file. Regardless of whether a customer chooses to block or allow requests from AI-related bots, Cloudflare has insight into request activity from these bots, and associated traffic trends over time.</p><p>Tracking traffic trends for AI bots can help us better understand their activity over time — which are the most aggressive and have the highest volume of requests, which launch crawls on a regular basis, etc. The new <a href="https://radar.cloudflare.com/traffic#ai-bot-crawler-traffic"><b><u>AI bot &amp; crawler traffic </u></b><u>graph on Radar’s Traffic page</u></a> provides insight into these traffic trends gathered over the selected time period for the top known AI bots. The associated list of bots tracked here is based on the <a href="https://github.com/ai-robots-txt/ai.robots.txt"><u>ai.robots.txt list</u></a>, and will be updated with new bots as they are identified. <a href="https://developers.cloudflare.com/api/operations/radar-get-ai-bots-timeseries-group-by-user-agent"><u>Time series</u></a> and <a href="https://developers.cloudflare.com/api/operations/radar-get-ai-bots-summary-by-user-agent"><u>summary</u></a> data is available from the Radar API as well. (Traffic trends for the full set of AI bots &amp; crawlers <a href="https://radar.cloudflare.com/explorer?dataSet=ai.bots"><u>can be viewed in the new Data Explorer</u></a>.)</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5tYefQaBhTPYpqZPtE6KPu/f60694d0b24de2acba13fe0944589885/BLOG-2564_3.png" />
          </figure>
    <div>
      <h2>Blocking more AI bots</h2>
      <a href="#blocking-more-ai-bots">
        
      </a>
    </div>
    
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/UiFu8l6K4Pm3ulxTK3XU0/541d109e29a9ae94e4792fdf94f7e4aa/BLOG-2564_4.png" />
          </figure><p>For Cloudflare’s birthday, we’re following up on our previous blog post, <a href="https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/"><i><u>Declaring Your AIndependence</u></i></a>, with an update on the new detections we’ve added to stop AI bots. Customers who haven’t already done so can simply <a href="https://dash.cloudflare.com/?to=/:account/:zone/security/bots/configure"><u>click the button</u></a> to block AI bots to gain more protection for their website. </p>
    <div>
      <h3>Enabling dynamic updates for the AI bot rule</h3>
      <a href="#enabling-dynamic-updates-for-the-ai-bot-rule">
        
      </a>
    </div>
    <p>The old button allowed customers to block <i>verified</i> AI crawlers, those that respect robots.txt and crawl rate, and don’t try to hide their behavior. We’ve added new crawlers to that list, but we’ve also expanded the previous rule to include 27 signatures (and counting) of AI bots that <i>don’t </i>follow the rules. We want to take time to say “thank you” to everyone who took the time to use our “<a href="https://docs.google.com/forms/d/14bX0RJH_0w17_cAUiihff5b3WLKzfieDO4upRlo5wj8"><u>tip line</u></a>” to point us towards new AI bots. These tips have been extremely helpful in finding some bots that would not have been on our radar so quickly. </p><p>For each bot we’ve added, we’re also adding them to our “Definitely automated” definition as well. So, if you’re a self-service plan customer using <a href="https://blog.cloudflare.com/super-bot-fight-mode/"><u>Super Bot Fight Mode</u></a>, you’re already protected. Enterprise Bot Management customers will see more requests shift from the “Likely Bot” range to the “Definitely automated” range, which we’ll discuss more below.</p><p>Under the hood, we’ve converted this rule logic to a <a href="https://developers.cloudflare.com/waf/managed-rules/"><u>Cloudflare managed rule</u></a> (the same framework that powers our WAF). This enables our security analysts and engineers to safely push updates to the rule in real-time, similar to how new WAF rule changes are rapidly delivered to ensure our customers are protected against the latest CVEs. If you haven’t logged back into the Bots dashboard since the previous version of our AI bot protection was announced, click the button again to update to the latest protection. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2tI8Yqxt1S0UPapImb32J4/6cb9e9bf423c370383edb820e5722929/BLOG-2564_5.png" />
          </figure>
    <div>
      <h3>The impact of new fingerprints on the model </h3>
      <a href="#the-impact-of-new-fingerprints-on-the-model">
        
      </a>
    </div>
    <p>One hidden beneficiary of fingerprinting new AI bots is our ML model. <a href="https://blog.cloudflare.com/cloudflare-bot-management-machine-learning-and-more/"><u>As we’ve discussed before</u></a>, our global ML model uses supervised machine learning and greatly benefits from more sources of labeled bot data. Below, you can see how well our ML model recognized these requests as automated, before and after we updated the button, adding new rules. To keep things simple, we have shown only the top 5 bots by the volume of requests on the chart. With the introduction of our new managed rule, we have observed an improvement in our detection capabilities for the majority of these AI bots. Button v1 represents the old option that let customers block only verified AI crawlers, while Button v2 is the newly introduced feature that includes managed rule detections.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2CZVGyDCp9ZtMrZdIi49fE/aacd04d240e9348b5a9b65bad4b470e2/BLOG-2564_6.jpg" />
          </figure><p>So how did we make our detections more robust? As we have mentioned before, sometimes <a href="https://blog.cloudflare.com/cloudflare-bot-management-machine-learning-and-more/"><i><u>a single attribute can give a bot away</u></i></a>. We developed a sophisticated set of heuristics tailored to these AI bots, enabling us to effortlessly and accurately classify them as such. Although our ML model was already detecting the vast majority of these requests, the integration of additional heuristics has resulted in a noticeable increase in detection rates for each bot, and ensuring we score every request correctly 100% of the time. Transitioning from a purely machine learning approach to incorporating heuristics offers several advantages, including faster detection times and greater certainty in classification. While deploying a machine learning model is complex and time-consuming, new heuristics can be created in minutes. </p><p>The initial launch of the AI bots block button was well-received and is now used by over 133,000 websites, with significant adoption even among our Free tier customers. The newly updated button, launched on August 20, 2024, is rapidly gaining traction. Over 90,000 zones have already adopted the new rule, with approximately 240 new sites integrating it every hour. Overall, we are now helping to protect the intellectual property of more than 146,000 sites from AI bots, and we are currently blocking 66 million requests daily with this new rule. Additionally, we’re excited to announce that support for configuring AI bots protection via Terraform will be available by the end of this year, providing even more flexibility and control for managing your bot protection settings.</p>
    <div>
      <h3>Bot behavior</h3>
      <a href="#bot-behavior">
        
      </a>
    </div>
    <p>With the enhancements to our detection capabilities, it is essential to assess the impact of these changes to bot activity on the Internet. Since the launch of the updated AI bots block button, we have been closely monitoring for any shifts in bot activity and adaptation strategies. The most basic fingerprinting technique we use to identify AI bot looking for simple user-agent matches. User-agent matches are important to monitor because they indicate the bot is transparently announcing who they are when they’re crawling a website. </p><p>The graph below shows a volume of traffic we label as AI bot over the past two months. The blue line indicates the daily request count, while the red line represents the monthly average number of requests. In the past two months, we have seen an average reduction of nearly 30 million requests, with a decrease of 40 million in the most recent month.This decline coincides with the release of Button v1 and Button v2. Our hypothesis is that with the new AI bots blocking feature, Cloudflare is blocking a majority of these bots, which is discouraging them from crawling. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/23ULxmxBIRskEONlWVIvlA/1dbd3d03239047492c2d4f7307217d97/BLOG-2564_7.jpg" />
          </figure><p>This hypothesis is supported by the observed decline in requests from several top AI crawlers. Specifically, the Bytespider bot reduced its daily requests from approximately 100 million to just 50 million between the end of June and the end of August (see graph below). This reduction could be attributed to several factors, including our new AI bots block button and changes in the crawler's strategy.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5UwtyZSXULrVzIqLcICGKd/fdf02c15d17e1d7ed248ba5f8a97eb54/BLOG-2564_8.jpg" />
          </figure><p>We have also observed an increase in the accountability of some AI crawlers. The most basic fingerprinting technique we use to identify AI bot looking for simple user-agent matches. User-agent matches are important to monitor because they indicate the bot is transparently announcing who they are when they’re crawling a website. These crawlers are now more frequently using their agents, reflecting a shift towards more transparent and responsible behavior. Notably, there has been a dramatic surge in the number of requests from the Perplexity user agent. This increase might be linked to <a href="https://rknight.me/blog/perplexity-ai-is-lying-about-its-user-agent/">previous accusations<u> </u></a>that Perplexity did not properly present its user agent, which could have prompted a shift in their approach to ensure better identification and compliance. </p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7Hq2vUMqqdNCyaxNTCg3JD/610ad53d57203203c5176229245c8086/BLOG-2564_9.jpg" />
          </figure><p>These trends suggest that our updates are likely affecting how AI crawlers interact with content. We will continue to monitor AI bot activity to help users control who accesses their content and how. By keeping a close watch on emerging patterns, we aim to provide users with the tools and insights needed to make informed decisions about managing their traffic. </p>
    <div>
      <h2>Wrap up</h2>
      <a href="#wrap-up">
        
      </a>
    </div>
    <p>We’re excited to continue to explore the AI landscape, whether we’re finding more ways to make the Cloudflare dashboard usable or new threats to guard against. Our AI insights on Radar update in near real-time, so please join us in watching as new trends emerge and discussing them in the <a href="https://community.cloudflare.com/"><u>Cloudflare Community</u></a>. </p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Bot Management]]></category>
            <category><![CDATA[Bots]]></category>
            <category><![CDATA[AI Bots]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Machine Learning]]></category>
            <category><![CDATA[Generative AI]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Developers]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <category><![CDATA[Application Services]]></category>
            <category><![CDATA[Product News]]></category>
            <guid isPermaLink="false">6HqKUMoXg0wFIQg9howLMX</guid>
            <dc:creator>Adam Martinetti</dc:creator>
            <dc:creator>Harsh Saxena</dc:creator>
            <dc:creator>Gauri Baraskar</dc:creator>
            <dc:creator>Carlos Azevedo</dc:creator>
            <dc:creator>David Belson</dc:creator>
        </item>
        <item>
            <title><![CDATA[Declare your AIndependence: block AI bots, scrapers and crawlers with a single click]]></title>
            <link>https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/</link>
            <pubDate>Wed, 03 Jul 2024 13:00:26 GMT</pubDate>
            <description><![CDATA[ To help preserve a safe Internet for content creators, we’ve just launched a brand new “easy button” to block all AI bots. It’s available for all customers, including those on our free tier ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/D59Fq5QkC4J7Jjo5lM4Fm/fcc55b665562d321bd84f88f53f46b22/image7-1.png" />
            
            </figure><p>To help preserve a safe Internet for content creators, we’ve just launched a brand new “easy button” to <a href="https://www.cloudflare.com/learning/ai/how-to-block-ai-crawlers/">block all AI bots</a>. It’s available for all customers, including those on our free tier.</p><p>The popularity of <a href="https://www.cloudflare.com/learning/ai/what-is-generative-ai/">generative AI</a> has made the demand for content used to train models or run inference on skyrocket, and, although some AI companies clearly identify their web scraping bots, not all AI companies are being transparent. Google reportedly <a href="https://www.reuters.com/technology/reddit-ai-content-licensing-deal-with-google-sources-say-2024-02-22/">paid $60 million a year</a> to license Reddit’s user generated content, and most recently, Perplexity has been <a href="https://rknight.me/blog/perplexity-ai-is-lying-about-its-user-agent/">accused of impersonating legitimate visitors</a> in order to scrape content from websites. The value of original content in bulk has never been higher.</p><p>Last year, <a href="/ai-bots">Cloudflare announced the ability for customers to easily block AI bots</a> that behave well. These bots follow <a href="https://www.cloudflare.com/learning/bots/what-is-robots-txt/">robots.txt</a>, and don’t use unlicensed content to train their models or run inference for <a href="https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/">RAG</a> applications using website data. Even though these AI bots follow the rules, Cloudflare customers overwhelmingly opt to <a href="https://www.cloudflare.com/learning/ai/how-to-prevent-web-scraping/">block them</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5aAA77Hl9OM2vtI611QcUI/0992e096262e348b451efd8be296fa27/image9.png" />
            
            </figure><p>We hear clearly that customers don’t want AI bots visiting their websites, and especially those that do so dishonestly. To help, we’ve added a brand new one-click to block all AI bots. It’s available for all customers, including those on the free tier. To enable it, simply navigate to the <a href="https://dash.cloudflare.com/?to=/:account/:zone/security/bots/configure">Security &gt; Bots</a> section of the Cloudflare dashboard, and click the toggle labeled AI Scrapers and Crawlers.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/xD0lhy89vZb34dtIWukt1/3e0e1ed979a33d344e53d4da2a819e1e/image2.png" />
            
            </figure><p>This feature will automatically be updated over time as we see new fingerprints of offending bots we identify as widely scraping the web for model training. To ensure we have a comprehensive understanding of all AI crawler activity, we surveyed traffic across our network.</p>
    <div>
      <h3>AI bot activity today</h3>
      <a href="#ai-bot-activity-today">
        
      </a>
    </div>
    <p>The graph below illustrates the most popular AI bots seen on Cloudflare’s network in terms of their request volume. We looked at common AI crawler user agents and aggregated the number of requests on our platform from these AI user agents over the last year:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/13pNq4MJJB92Dcs1ghxC6k/b7e7acc7e65e9e0958eed5d4b4cb0594/image6.png" />
            
            </figure><p>When looking at the number of requests made to Cloudflare sites, we see that <i>Bytespider</i>, <i>Amazonbot</i>, <i>ClaudeBot</i>, and <i>GPTBot</i> are the top four AI crawlers. Operated by ByteDance, the Chinese company that owns TikTok, <i>Bytespider</i> is reportedly used to gather training data for its large language models (LLMs), including those that support its ChatGPT rival, Doubao. <i>Amazonbot</i> and <i>ClaudeBot</i> follow <i>Bytespider</i> in request volume. <i>Amazonbot</i>, reportedly used to index content for Alexa’s question-answering, sent the second-most number of requests and <i>ClaudeBot</i>, used to train the Claude chat bot, has recently increased in request volume.</p><p>Among the top AI bots that we see, <i>Bytespider</i> not only leads in terms of number of requests but also in both the extent of its Internet property crawling and the frequency with which it is blocked. Following closely is <i>GPTBot</i>, which ranks second in both crawling and being blocked. <i>GPTBot</i>, managed by OpenAI, collects training data for its LLMs, which underpin AI-driven products such as ChatGPT. In the table below, “Share of websites accessed” refers to the proportion of websites protected by Cloudflare that were accessed by the named AI bot.</p>
<table><thead>
  <tr>
    <th><span>AI Bot</span></th>
    <th><span>Share of Websites Accessed</span></th>
  </tr></thead>
<tbody>
  <tr>
    <td><span>Bytespider</span></td>
    <td><span>40.40%</span></td>
  </tr>
  <tr>
    <td><span>GPTBot</span></td>
    <td><span>35.46%</span></td>
  </tr>
  <tr>
    <td><span>ClaudeBot</span></td>
    <td><span>11.17%</span></td>
  </tr>
  <tr>
    <td><span>ImagesiftBot</span></td>
    <td><span>8.75%</span></td>
  </tr>
  <tr>
    <td><span>CCBot</span></td>
    <td><span>2.14%</span></td>
  </tr>
  <tr>
    <td><span>ChatGPT-User</span></td>
    <td><span>1.84%</span></td>
  </tr>
  <tr>
    <td><span>omgili</span></td>
    <td><span>0.10%</span></td>
  </tr>
  <tr>
    <td><span>Diffbot</span></td>
    <td><span>0.08%</span></td>
  </tr>
  <tr>
    <td><span>Claude-Web</span></td>
    <td><span>0.04%</span></td>
  </tr>
  <tr>
    <td><span>PerplexityBot</span></td>
    <td><span>0.01%</span></td>
  </tr>
</tbody></table><p>While our analysis identified the most popular crawlers in terms of request volume and number of Internet properties accessed, many customers are likely not aware of the more popular AI crawlers actively crawling their sites. Our Radar team performed an analysis of the top robots.txt entries across the <a href="https://radar.cloudflare.com/domains">top 10,000 Internet domains</a> to identify the most commonly actioned AI bots, then looked at how frequently we saw these bots on sites protected by Cloudflare.</p><p>In the graph below, which looks at disallowed crawlers for these sites, we see that customers most often reference <i>GPTBot, CCBot</i>, and <i>Google</i> in robots.txt, but do not specifically disallow popular AI crawlers like <i>Bytespider</i> and <i>ClaudeBot</i>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6m4jV8g9sQ0BLR7OIonsoB/a4c3100a34160c96aea07c4ed4bc6a8d/image3.png" />
            
            </figure><p>With the Internet now flooded with these AI bots, we were curious to see how website operators have already responded. In June, AI bots accessed around 39% of the top one million Internet properties using Cloudflare, but only 2.98% of these properties took measures to block or challenge those requests. Moreover, the higher-ranked (more popular) an Internet property is, the more likely it is to be targeted by AI bots, and correspondingly, the more likely it is to block such requests.</p>
<table><thead>
  <tr>
    <th><span>Top N Internet properties by number of visitors seen by Cloudflare</span></th>
    <th><span>% accessed by AI bots</span></th>
    <th><span>% blocking AI bots</span></th>
  </tr></thead>
<tbody>
  <tr>
    <td><span>10</span></td>
    <td><span>80.0%</span></td>
    <td><span>40.0%</span></td>
  </tr>
  <tr>
    <td><span>100</span></td>
    <td><span>63.0%</span></td>
    <td><span>16.0%</span></td>
  </tr>
  <tr>
    <td><span>1,000</span></td>
    <td><span>53.2%</span></td>
    <td><span>8.8%</span></td>
  </tr>
  <tr>
    <td><span>10,000</span></td>
    <td><span>47.99%</span></td>
    <td><span>8.92%</span></td>
  </tr>
  <tr>
    <td><span>100,000</span></td>
    <td><span>44.53%</span></td>
    <td><span>6.36%</span></td>
  </tr>
  <tr>
    <td><span>1,000,000</span></td>
    <td><span>38.73%</span></td>
    <td><span>2.98%</span></td>
  </tr>
</tbody></table>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6gCWVJMv9GajRT3H8BQ5EM/effb5e2b52c0bdecb99f5f4e339c8d1d/image4.png" />
            
            </figure><p>We see website operators completely block access to these AI crawlers using robots.txt. However, these blocks are reliant on the bot operator respecting robots.txt and adhering to <a href="https://www.rfc-editor.org/rfc/rfc9309.html#name-the-user-agent-line">RFC9309</a> (ensuring variations on user against all match the product token) to honestly identify who they are when they visit an Internet property, but user agents are trivial for bot operators to change.</p>
    <div>
      <h3>How we find AI bots pretending to be real web browsers</h3>
      <a href="#how-we-find-ai-bots-pretending-to-be-real-web-browsers">
        
      </a>
    </div>
    <p>Sadly, we’ve observed bot operators attempt to appear as though they are a real browser by using a spoofed user agent. We’ve monitored this activity over time, and we’re proud to say that our global machine learning model has always recognized this activity as a bot, even when operators lie about their user agent.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4JpBRAGuQ1DOCTSFu9yHbH/9c11b569a30f68ddb1b4c197054ed1c8/image1.png" />
            
            </figure><p>Take one example of a specific bot that <a href="https://rknight.me/blog/perplexity-ai-is-lying-about-its-user-agent/">others</a> observed to be <a href="https://www.wired.com/story/perplexity-is-a-bullshit-machine/">hiding their activity</a>. We ran an analysis to see how our machine learning models scored traffic from this bot. In the diagram below, you can see that all <a href="https://developers.cloudflare.com/bots/concepts/bot-score/">bot scores</a> are firmly below 30, indicating that our scoring thinks this activity is likely to be coming from a bot.</p><p>The diagram reflects scoring of the requests using <a href="/residential-proxy-bot-detection-using-machine-learning">our newest model</a>, where “hotter” colors indicate more requests falling in that band, and “cooler” colors meaning fewer requests did. We can see the vast majority of requests fell into the bottom two bands, showing that Cloudflare’s model gave the offending bot a score of 9 or less. The user agent changes have no effect on the score, because this is the very first thing we expect bot operators to do.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1y0G6D2b512V1UAgR6sooD/4cc9b659f091e84facbec66a30baafad/image5.png" />
            
            </figure><p>Any customer with an existing WAF rule set to challenge visitors with a bot score below 30 (our recommendation) automatically blocked all of this AI bot traffic with no new action on their part. The same will be true for future AI bots that use similar techniques to hide their activity.</p><p>We leverage Cloudflare global signals to calculate our Bot Score, which for AI bots like the one above, reflects that we correctly identify and score them as a “likely bot.”</p><p>When bad actors attempt to crawl websites at scale, they generally use tools and frameworks that we are able to fingerprint. For every fingerprint we see, we use Cloudflare’s network, which sees over 57 million requests per second on average, to understand how much we should trust this fingerprint. To power our models, we compute global aggregates across many signals. Based on these signals, our models were able to appropriately flag traffic from evasive AI bots, like the example mentioned above, as bots.</p><p>The upshot of this globally aggregated data is that we can immediately detect new scraping tools and their behavior without needing to manually fingerprint the bot, ensuring that customers stay protected from the newest waves of bot activity.</p><p>If you have a tip on an AI bot that’s not behaving, we’d love to investigate. There are two options you can use to report misbehaving AI crawlers:</p><p>1. Enterprise Bot Management customers can submit a False Negative <a href="https://developers.cloudflare.com/bots/concepts/feedback-loop/">Feedback Loop</a> report via Bot Analytics by simply selecting the segment of traffic where they noticed misbehavior:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/iwX6mvdnqg3KGRN0dMHou/a7c0a39275680db58f49c9292ca180c7/image8.png" />
            
            </figure><p>2. We’ve also set up a <a href="https://docs.google.com/forms/d/14bX0RJH_0w17_cAUiihff5b3WLKzfieDO4upRlo5wj8/edit">reporting tool</a> where any Cloudflare customer can submit reports of an AI bot scraping your website without permission.</p><p>We fear that some AI companies intent on circumventing rules to access content will persistently adapt to evade bot detection. We will continue to keep watch and add more bot blocks to our AI Scrapers and Crawlers rule and evolve our machine learning models to help keep the Internet a place where content creators can thrive and keep full control over which models their content is used to train or run inference on.</p> ]]></content:encoded>
            <category><![CDATA[Bots]]></category>
            <category><![CDATA[Bot Management]]></category>
            <category><![CDATA[AI Bots]]></category>
            <category><![CDATA[AI]]></category>
            <category><![CDATA[Machine Learning]]></category>
            <category><![CDATA[Generative AI]]></category>
            <guid isPermaLink="false">4iUvyS3jKebfV9pHwg7pol</guid>
            <dc:creator>Alex Bocharov</dc:creator>
            <dc:creator>Santiago Vargas</dc:creator>
            <dc:creator>Adam Martinetti</dc:creator>
            <dc:creator>Reid Tatoris</dc:creator>
            <dc:creator>Carlos Azevedo</dc:creator>
        </item>
        <item>
            <title><![CDATA[Gone offline: how Cloudflare Radar detects Internet outages]]></title>
            <link>https://blog.cloudflare.com/detecting-internet-outages/</link>
            <pubDate>Tue, 26 Sep 2023 13:00:02 GMT</pubDate>
            <description><![CDATA[ Cloudflare Radar will be publishing anomalous traffic events for countries and Autonomous Systems (ASes). These events are the same ones referenced above that have been triggering our internal workflow to validate and confirm disruptions ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6852m159V2aRnaTVvL3rMx/c56e7a487b7eead7a419188df8e22aa9/image13-4.png" />
            
            </figure><p>Currently, Cloudflare Radar curates a list of observed Internet disruptions (which may include partial or complete outages) in the <a href="https://radar.cloudflare.com/outage-center">Outage Center</a>. These disruptions are recorded whenever we have sufficient context to correlate with an observed drop in traffic, found by checking status updates and related communications from ISPs, or finding news reports related to cable cuts, government orders, power outages, or natural disasters.</p><p>However, we observe more disruptions than we currently report in the outage center because there are cases where we can’t find any source of information that provides a likely cause for what we are observing, although we are still able to validate with external data sources such as Georgia Tech’s <a href="https://ioda.live/">IODA</a>. This curation process involves manual work, and is supported by internal tooling that allows us to analyze traffic volumes and detect anomalies automatically, triggering the workflow to find an associated root cause. While the Cloudflare Radar Outage Center is a valuable resource, one of key shortcomings include that we are not reporting all disruptions, and that the current curation process is not as timely as we’d like, because we still need to find the context.</p><p>As we announced today in a <a href="/traffic-anomalies-notifications-radar/">related blog post</a>, Cloudflare Radar will be publishing anomalous traffic events for countries and Autonomous Systems (ASes). These events are the same ones referenced above that have been triggering our internal workflow to validate and confirm disruptions. (Note that at this time “anomalous traffic events” are associated with drops in traffic, not unexpected traffic spikes.) In addition to adding traffic anomaly information to the Outage Center, we are also launching the ability for users to subscribe to notifications at a location (country) or network (autonomous system) level whenever a new anomaly event is detected, or a new entry is added to the outage table. Please refer to the related blog post for more details on how to subscribe.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/MRBVUw03ZVfB8Slb3d4Ve/bfe91f69ed64899fe246f00d6d384a67/pasted-image-0-5.png" />
            
            </figure><p>The current status of each detected anomaly will be shown in the new “Traffic anomalies” table on the Outage Center page:</p><ul><li><p>When the anomaly is automatically detected its status will initially be <code>Unverified</code></p></li><li><p>After attempting to validate ‘Unverified’ entries:</p><ul><li><p>We will change the status to ‘Verified’ if we can confirm that the anomaly appears across multiple internal data sources, and possibly external ones as well. If we find associated context for it, we will also create an outage entry.</p></li><li><p>We will change status to ‘False Positive’ if we cannot confirm it across multiple data sources. This will remove it from the “Traffic anomalies” table. (If a notification has been sent, but the anomaly isn’t shown in Radar anymore, it means we flagged it as ‘False Positive’.)</p></li></ul></li><li><p>We might also manually add an entry with a “Verified” status. This might occur if we observe, and validate, a drop in traffic that is noticeable, but was not large enough for the algorithm to catch it.</p></li></ul>
    <div>
      <h2>A glimpse at what Internet traffic volume looks like</h2>
      <a href="#a-glimpse-at-what-internet-traffic-volume-looks-like">
        
      </a>
    </div>
    <p>At Cloudflare, we have several internal data sources that can give us insights into what the traffic for a specific entity looks like. We identify the entity based on IP address geolocation in the case of locations, and IP address allocation in the case of ASes, and can analyze traffic from different sources, such as DNS, HTTP, NetFlows, and Network Error Logs (NEL). All the signals used in the figures below come from one of these data sources and in this blog post we will treat this as a univariate time-series problem — in the current algorithm, we use more than one signal just to add redundancy and identify anomalies with a higher level of confidence. In the discussion below, we intentionally select various examples to encompass a broad spectrum of potential Internet traffic volume scenarios.</p><p>1. Ideally, the signals would resemble the pattern depicted below for <a href="https://radar.cloudflare.com/au">Australia (AU)</a>: a stable weekly pattern with a slightly positive trend meaning that the trend average is moving up over time (we see more traffic over time from users in Australia).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4tS7fgzOPYaIWKJwC8RKt/15014b7ddd128849d4fda688cd24b307/pasted-image-0--1--5.png" />
            
            </figure><p>These statements can be clearly seen when we perform time-series decomposition which allows us to break down a time-series into its constituent parts to better understand and analyze its underlying patterns. Decomposing the traffic volume for Australia above assuming a weekly pattern with <a href="https://otexts.com/fpp2/stl.html">Seasonal-Trend decomposition using LOESS (STL)</a> we get the following:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2D6P6yAl7YdUQzSITQEmKZ/c8736d5719b7fdbb95f39827e6960700/pasted-image-0--2--3.png" />
            
            </figure><p>The weekly pattern we are referring to is represented by the seasonal part of the signal that is expected to be observed due to the fact that we are interested in eyeball / human internet traffic. As observed in the image above, the trend component is expected to move slowly when compared with the signal level and the residual part ideally would resemble white noise meaning that all existing patterns in the signal are represented by the seasonal and trend components.</p><p>2. Below we have the traffic volume for <a href="https://radar.cloudflare.com/as15964">AS15964 (CAMNET-AS)</a> that appears to have more of a daily pattern, as opposed to weekly.</p><p>We also observe that there’s a value offset of the signal right after the first four days (blue dashed-line) and the red background shows us an outage for which we didn’t find any reporting besides seeing it in our data and other Internet data providers — our intention here is to develop an algorithm that will trigger an event when it comes across this or similar patterns.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2U7KiZm6vDAstocOBx5Ndc/0a22e6668981b4d00494df8f46e6642f/pasted-image-0--3--5.png" />
            
            </figure><p>3. Here we have a similar example for <a href="https://radar.cloudflare.com/gf">French Guiana (GF)</a>. We observe some data offsets (August 9 and 23), a change in the amplitude (between August 15 and 23) and another <a href="https://twitter.com/CloudflareRadar/status/1696143174337466685">outage for which we do have context</a> that is observable in <a href="https://radar.cloudflare.com/gf?dateStart=2023-08-25&amp;dateEnd=2023-08-29">Cloudflare Radar</a>.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5RsqxnHhEYE0JJKNaaYft/4dbdb08b33c44335be38fefec59ff35d/pasted-image-0--4--1.png" />
            
            </figure><p>4. Another scenario is several scheduled outages for <a href="https://radar.cloudflare.com/as203214">AS203214 (HulumTele)</a>, <a href="https://radar.cloudflare.com/as203214?dateStart=2023-08-18&amp;dateEnd=2023-08-29">for which we also have context</a>. These anomalies are the easiest to detect since the traffic goes to values that are unique to outages (cannot be mistaken as regular traffic), but it poses another challenge: if our plan was to just check the weekly patterns, since these government-directed outages happen with the same frequency, at some point the algorithm would see this as expected traffic.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5bY7v57eNClUuq4wMEiiM8/6339478f0fecb4c559c5efdc835883f3/pasted-image-0--5--1.png" />
            
            </figure><p>5. This <a href="https://radar.cloudflare.com/ke?dateStart=2023-08-23&amp;dateEnd=2023-08-28">outage in Kenya</a> could be seen as similar to the above: the traffic volume went down to unseen values although not as significantly. We also observe some upward spikes in the data that are not following any specific pattern — possibly outliers — that we should clean depending on the approach we use to model the time-series.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/45WjgUJzE6wmKTtj9wOC06/11d3e5c292d0a30ba795c30e68a1fc38/pasted-image-0--6-.png" />
            
            </figure><p>6. Lastly, here's the data that will be used throughout this post as an example of how we are approaching this problem. For <a href="https://radar.cloudflare.com/mg">Madagascar (MG)</a>, we observe a clear pattern with pronounced weekends (blue background). There’s also a holiday (Assumption of Mary), highlighted with a green background, and an outage, with a red background. In this example, weekends, holidays, and outages all seem to have roughly the same traffic volume. Fortunately, the outage gives itself away by showing that it intended to go up as in a normal working day, but then there was a sudden drop — we will see it more closely later in this post.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/48RxRX1UN0bG5bocUZd3pK/8095a4de931d7d38638530887e19a700/pasted-image-0--7-.png" />
            
            </figure><p>In summary, here we looked over six examples out of ~700 (the number of entities we are automatically detecting anomalies for currently) and we see a wide range of variability. This means that in order to effectively model the time-series we would have to run a lot of preprocessing steps before the modeling itself. These steps include removing outliers, detecting short and long-term data offsets and readjusting, and detecting changes in variance, mean, or magnitude. Time is also a factor in preprocessing, as we would also need to know in advance when to expect events / holidays that will push the traffic down, apply daylight saving time adjustments that will cause a time shift in the data, and be able to apply local time zones for each entity, including dealing with locations that have multiple time zones and AS traffic that is shared across different time zones.</p><p>To add to the challenge, some of these steps cannot even be performed in a close-to-real-time fashion (example: we can only say there’s a change in seasonality after some time of observing the new pattern). Considering the challenges mentioned earlier, we have chosen an algorithm that combines basic preprocessing and statistics. This approach aligns with our expectations for the data's characteristics, offers ease of interpretation, allows us to control the false positive rate, and ensures fast execution while reducing the need for many of the preprocessing steps discussed previously.</p><p>Above, we noted that we are detecting anomalies for around 700 entities (locations and autonomous systems) at launch. This obviously does not represent the entire universe of countries and networks, and for good reason. As we discuss in this post, we need to see enough traffic from a given entity (have a strong enough signal) to be able to build relevant models and subsequently detect anomalies. For some smaller or sparsely populated countries, the traffic signal simply isn’t strong enough, and for many autonomous systems, we see little-to-no traffic from them, again resulting in a signal too weak to be useful. We are initially focusing on locations where we have a sufficiently strong traffic signal and/or are likely to experience traffic anomalies, as well as major or notable autonomous systems — those that represent a meaningful percentage of a location’s population and/or those that are known to have been impacted by traffic anomalies in the past.</p>
    <div>
      <h2>Detecting anomalies</h2>
      <a href="#detecting-anomalies">
        
      </a>
    </div>
    <p>The approach we took to solve this problem involves creating a forecast that is a set of data points that correspond to our expectation according to what we’ve seen in historical data. This will be explained in the section Creating a forecast. We take this forecast and compare it to what we are actually observing — if what we are observing is significantly different from what we expect, then we call it an anomaly. Here, since we are interested in traffic drops, an anomaly will always correspond to lower traffic than the forecast / expected traffic. This comparison is elaborated in the section Comparing forecast with actual traffic.</p><p>In order to compute the forecast we need to fulfill the following business requirements:</p><ul><li><p>We are mainly interested in traffic related to human activity.</p></li><li><p>The more timely we detect the anomaly, the more useful it is. This needs to take into account constraints such as data ingestion and data processing times, but once the data is available, we should be able to use the latest data point and detect if it is an anomaly.</p></li><li><p>A low False Positive (FP) rate is more important than a high True Positive (TP) rate. As an internal tool, this is not necessarily true, but as a publicly visible notification service, we want to limit spurious entries at the cost of not reporting some anomalies.</p></li></ul>
    <div>
      <h3>Selecting which entities to observe</h3>
      <a href="#selecting-which-entities-to-observe">
        
      </a>
    </div>
    <p>Aside from the examples given above, the quality of the data highly depends on the volume of the data, and this means that we have different levels of data quality depending on which entity (location / AS) we are considering. As an extreme example, we don’t have enough data from <a href="https://radar.cloudflare.com/aq">Antarctica</a> to reliably detect outages. Follows the process we used to select which entities are eligible to be observed.</p><p>For ASes, since we are mainly interested in Internet traffic that represents human activity, we use the number of <a href="https://stats.labs.apnic.net/aspop/">users estimation provided by APNIC</a>. We then compute the total number of users per location by summing up the number of users of each AS in that location, and then we calculate what percentage of users an AS has for that location (this number is also provided by the APNIC table in column ‘% of country’). We filter out ASes that have less than 1% of the users in that location. Here’s what the list looks like for Portugal — <a href="https://radar.cloudflare.com/as15525">AS15525 (MEO-EMPRESAS)</a> is excluded because it has less than 1% of users of the total number of Internet users in Portugal (estimated).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6nVGnDDcngh1bK7pBhzH80/02c6108065e827a82029b38fd65c9bfb/pasted-image-0--8-.png" />
            
            </figure><p>At this point we have a subset of ASes and a set of locations (we don’t exclude any location <i>a priori</i> because we want to cover as much as possible) but we will have to narrow it down based on the quality of the data to be able to reliably detect anomalies automatically. After testing several metrics and visually analyzing the results, we came to the conclusion that the best predictor of a stable signal is related to the volume of data, so we removed the entities that don’t satisfy the criteria of a minimum number of unique IPs daily in a two weeks period — the threshold is based on visual inspection.</p>
    <div>
      <h3>Creating a forecast</h3>
      <a href="#creating-a-forecast">
        
      </a>
    </div>
    <p>In order to detect the anomalies in a timely manner, we decided to go with traffic aggregated every fifteen minutes, and we are forecasting one hour of data (four data points / blocks of fifteen minutes) that are compared with the actual data.</p><p>After selecting the entities for which we will detect anomalies, the approach is quite simple:</p><p>1. We look at the last 24 hours immediately before the forecast window and use that interval as the reference. The assumption is that the last 24 hours will contain information about the shape of what follows. In the figure below, the last 24 hours (in blue) corresponds to data transitioning from Friday to Saturday. By using the <a href="https://en.wikipedia.org/wiki/Euclidean_distance">Euclidean distance</a>, we get the six most similar matches to that reference (orange) — four of those six matches correspond to other transitions from Friday to Saturday. It also captures the holiday on Monday (August 14, 2023) to Tuesday, and we also see a match that is the most dissimilar to the reference, a regular working day from Wednesday to Thursday. Capturing one that doesn't represent the reference properly should not be a problem because the forecast is the median of the most similar 24 hours to the reference, and thus the data of that day ends up being discarded.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5tepzu3DgEKfAhn4S1SrUi/742c3be56013b688a1ddd4e215426adf/Screenshot-2023-09-26-at-11.03.51.png" />
            
            </figure><ol><li><p>There are two important parameters that we are using for this approach to work:</p><ul><li><p>We take into consideration the last 28 days (plus the reference day equals 29). This way we ensure that the weekly seasonality can be seen at least 4 times, we control the risk associated with the trend changing over time, and we set an upper bound to the amount of data we need to process. Looking at the example above, the first day was one with the highest similarity to the reference because it corresponds to the transition from Friday to Saturday.</p></li><li><p>The other parameter is the number of most similar days. We are using six days as a result of empirical knowledge: given the weekly seasonality, when using six days, we expect at most to match four days for the same weekday and then two more that might be completely different. Since we use the median to create the forecast, the majority is still four and thus those extra days end up not being used as reference. Another scenario is in the case of holidays such as the example below:</p></li></ul></li></ol>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4ySUzWSCIELUZp0LCDctpI/486cc9a8d379cdb7dcab3587a16ed139/pasted-image-0--10-.png" />
            
            </figure><p>A holiday in the middle of the week in this case looks like a transition from Friday to Saturday. Since we are using the last 28 days and the holiday starts on a Tuesday we only see three such transitions that are matching (orange) and then another three regular working days because that pattern is not found anywhere else in the time-series and those are the closest matches. This is why we use the lower quartile when computing the median for an even number of values (meaning we round the data down to the lower values) and use the result as the forecast. This also allows us to be more conservative and plays a role in the true positive/false positive tradeoff.</p><p>Lastly let's look at the outage example:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2whYpeGdMZWElfxrz2auIJ/b7d79fa75ad1a8255431773b9d855ff4/pasted-image-0--9-.png" />
            
            </figure><p>In this case, the matches are always connected to low traffic because the last 24h (reference) corresponds to a transition from Sunday to Monday and due to the low traffic the lowest Euclidean distance (most similar 24h) are either Saturdays (two times) or Sundays (four times). So the forecast is what we would expect to see on a regular Monday and that’s why the forecast (red) has an upward trend but since we had an outage, the actual volume of traffic (black) is considerably lower than the forecast.</p><p>This approach works for regular seasonal patterns, as would several other modeling approaches, and it has also been shown to work in case of holidays and other moving events (such as festivities that don’t happen at the same day every year) without having to actively add that information in. Nevertheless, there are still use cases where it will fail specifically when there’s an offset in the data. This is one of the reasons why we use multiple data sources to reduce the chances of the algorithm being affected by data artifacts.</p><p>Below we have an example of how the algorithm behaves over time.</p><div>
  
</div>
<p></p>
    <div>
      <h3>Comparing forecast with actual traffic</h3>
      <a href="#comparing-forecast-with-actual-traffic">
        
      </a>
    </div>
    <p>Once we have the forecast and the actual traffic volume, we do the following steps.</p><p>We calculate relative change, which measures how much one value has changed relative to another. Since we are detecting anomalies based on traffic drops, the <i>actual</i> traffic will always be lower than the <i>forecast.</i></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6HsIJci2IutIP4HTpNYnRY/1cc0103696ebb25de6b80ba53e02dc29/Screenshot-2023-09-26-at-11.08.57.png" />
            
            </figure><p>After calculating this metric, we apply the following rules:</p><ul><li><p>The difference between the actual and the forecast must be at least 10% of the magnitude of the signal. This magnitude is computed using the difference between 95th and 5th percentiles of the selected data. The idea is to avoid scenarios where the traffic is low, particularly during the off-peaks of the day and scenarios where small changes in actual traffic correspond to big changes in relative change because the forecast is also low. As an example:</p><ul><li><p>a forecast of 100 Gbps compared with an actual value of 80 Gbps gives us a relative change of -0.20 (-20%).</p></li><li><p>a forecast of 20 Mbps compared with an actual value of 10 Mbps gives us a much smaller decrease in total volume than the previous example but a relative change of -0.50 (50%).</p></li></ul></li><li><p>Then we have two rules for detecting considerably low traffic:</p><ul><li><p>Sustained anomaly: The relative change is below a given threshold α throughout the forecast window (for all four data points). This allows us to detect weaker anomalies (with smaller relative changes) that are extended over time.</p></li></ul></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/479UGvwcoqEgSmKjDQLcEg/254b87964b683c817b3e13697d145329/pasted-image-0--11-.png" />
            
            </figure><ul><li><p>Point anomaly: The relative change of the last data point of the forecast window is below a given threshold β (where β &lt; α — these thresholds are negative; as an example, β and α might be -0.6 and -0.4, respectively). In this case we need β &lt; α to avoid triggering anomalies due to the stochastic nature of the data but still be able to detect sudden and short-lived traffic drops.</p></li></ul>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/73rrAaAMX3yh2DOWZVL7j3/07306bcafa28f49f9a9f051e95ff8026/pasted-image-0--12-.png" />
            
            </figure><ul><li><p>The values of α and β were chosen empirically to maximize detection rate, while keeping the false positive rate at an acceptable level.</p></li></ul>
    <div>
      <h2>Closing an anomaly event</h2>
      <a href="#closing-an-anomaly-event">
        
      </a>
    </div>
    <p>Although the most important message that we want to convey is when an anomaly starts, it is also crucial to detect when the Internet traffic volume goes back to normal for two main reasons:</p><ul><li><p>We need to have the notion of <i>active anomaly,</i> which means that we detected an anomaly and that same anomaly is still ongoing. This allows us to stop considering new data for the reference while the anomaly is still active. Considering that data would impact the reference and the selection of most similar sets of 24 hours.</p></li><li><p>Once the traffic goes back to normal, knowing the duration of the anomaly allows us to flag those data points as outliers and replace them, so we don’t end up using it as reference or as best matches to the reference. Although we are using the median to compute the forecast, and in most cases that would be enough to overcome the presence of anomalous data, there are scenarios such as the one for AS203214 (HulumTele), used as example four, where the outages are frequently occurring at the same time of the day that would make the anomalous data become the expectation after few days.</p></li></ul><p>Whenever we detect an anomaly we keep the same reference until the data comes back to normal, otherwise our reference would start including anomalous data. To determine when the traffic is back to normal, we use lower thresholds than α and we give it a time period (currently four hours) where there should be no anomalies in order for it to close. This is to avoid situations where we observe drops in traffic that bounce back to normal and drop again. In such cases we want to detect a single anomaly and aggregate it to avoid sending multiple notifications, and in terms of semantics there’s a high chance that it’s related to the same anomaly.</p>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Internet traffic data is generally predictable, which in theory would allow us to build a very straightforward anomaly detection algorithm to detect Internet disruptions. However, due to the heterogeneity of the time series depending on the entity we are observing (Location or AS) and the presence of artifacts in the data, it also needs a lot of context that poses some challenges if we want to track it in real-time. Here we’ve shown particular examples of what makes this problem challenging, and we have explained how we approached this problem in order to overcome most of the hurdles. This approach has been shown to be very effective at detecting traffic anomalies while keeping a low false positive rate, which is one of our priorities. Since it is a static threshold approach, one of the downsides is that we are not detecting anomalies that are not as steep as the ones we’ve shown.</p><p>We will keep working on adding more entities and refining the algorithm to be able to cover a broader range of anomalies.</p><p>Visit <a href="https://radar.cloudflare.com/">Cloudflare Radar</a> for additional insights around (Internet disruptions, routing issues, Internet traffic trends, attacks, Internet quality, etc.). Follow us on social media at <a href="https://twitter.com/CloudflareRadar">@CloudflareRadar</a> (Twitter), <a href="https://noc.social/@cloudflareradar">https://noc.social/@cloudflareradar</a> (Mastodon), and <a href="https://bsky.app/profile/radar.cloudflare.com">radar.cloudflare.com</a> (Bluesky), or contact us via <a>e-mail</a>.</p> ]]></content:encoded>
            <category><![CDATA[Birthday Week]]></category>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[Outage]]></category>
            <category><![CDATA[Internet Traffic]]></category>
            <category><![CDATA[Internet Performance]]></category>
            <guid isPermaLink="false">6Rf6QyjGnxwy34AeL0pyYH</guid>
            <dc:creator>Carlos Azevedo</dc:creator>
        </item>
        <item>
            <title><![CDATA[Sudan was cut off from the Internet for 25 days]]></title>
            <link>https://blog.cloudflare.com/sudan-internet-back-25-days/</link>
            <pubDate>Mon, 22 Nov 2021 14:44:30 GMT</pubDate>
            <description><![CDATA[ The Internet started to come back to Sudan (with limitations) this past Thursday, November 18. This happens after 25 days (three weeks and four days) of an almost complete shutdown that affected the whole country.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Internet traffic started to come back in Sudan (with limitations) on Thursday, November 18, 2021. This happened after 25 days of an almost complete shutdown that affected the whole country. It’s a simple line going up on a chart for us, but for a country that also meant that Internet access was (at least in part) back on with all of what comes with it for businesses, communities, families and society as a whole.</p><p>You can see that trend on <a href="https://radar.cloudflare.com/sd?date_filter=last_7_days">Cloudflare Radar</a>, in particular after 13:00 UTC (15:00 local time). After that Internet traffic went up like we haven’t seen at all in the previous three weeks.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7IbVMIcZrjIwUoJC67Xxa0/10ba546a242f3816c127187413fa7876/image3-33.png" />
            
            </figure>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1lc7RoTkqhjCD2obpnX1cC/65fbef32e8fa28ac51c94bd9797d969a/image5-11.png" />
            
            </figure><p>Internet access was mostly cut off on <a href="/sudan-woke-up-without-internet/">October 25, 2021</a>, after a political turmoil in the country. A <a href="https://allafrica.com/stories/202111120650.html">Sudanese court previously</a> ordered the restoration of Internet access on November 9, but until last Thursday, November 18, there were no signs of services returning to normal. The biggest Internet access shutdown in recent history in the country was back in 2019 — for a full 36 days.</p><p>Looking back at the last 30 days <a href="https://radar.cloudflare.com/sd">Cloudflare Radar</a> shows very distinctively a big difference from what was previously normal in the country.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2jjMhaTOu4tZ6RpK4mdmn6/6177c35206187c597a787fd229685fb9/image1-61.png" />
            
            </figure><p>On Wednesday, November 17, (around 11:00 UTC) we saw a further drop in traffic getting Internet traffic in the country close to zero.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5C7Y8LKp5lbIAtijL3v5jQ/3b1fefa1bba5361adf58eb0a999e6c4c/image8-10.png" />
            
            </figure><p>Now our data shows that the Internet in Sudan picked up firstly thanks to two ISPs, Mobitel and MTN. One of the largest in the country, Sudatel (purple line) for a few hours was also still mostly down, but it came back later in the evening (~18:00 UTC).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7hO4rCZNhJn4gNt1ExaPl6/02cf697f35262f4011fe5af86432eeae/image6-12.png" />
            
            </figure><p>In terms of social media, our data also shows that especially Facebook traffic went up at the same time Internet access was beginning to pick up but went down a few hours later. <a href="https://twitter.com/HassanAhmedBerk/status/1461607528199069698">According to local reports</a>, there could be restrictions to social media on mobile networks in the country.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3hPJccD2QJPoWA67oSnBRT/d6205edc02b00a470895398e8f99b866/image4-17.png" />
            
            </figure><p>Mobile traffic saw a big increase, especially after 14:00 UTC. That is normal behaviour in a country where mobile traffic is king (back in <a href="/where-mobile-traffic-more-and-less-popular/">October we showed in our blog post about mobile traffic</a> how Sudan was one of the countries in the world with a large percentage of mobile traffic — 83%).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4C7GemlBTXml5BNd1ku0TH/d3236616fa9673af2878ff9c2ab9eac2/image2-25.png" />
            
            </figure>
    <div>
      <h3>Internet shutdowns are not that rare</h3>
      <a href="#internet-shutdowns-are-not-that-rare">
        
      </a>
    </div>
    <p>We’ve said it before here in our blog, but it is always good to emphasize: Internet disruptions, including shutdowns and social media restrictions, are common occurrences in some countries and Sudan is one where this happens more frequently than most countries <a href="https://www.hrw.org/world-report/2020/country-chapters/global-5#">according to Human Rights Watch</a>.</p><p>In our <a href="/sudans-exam-related-internet-shutdowns/">June 22, 2021, blog</a>, we talked about Sudan when the country decided to shut down the Internet to prevent cheating in exams, but there were situations in the past more similar to this days-long shutdown — something that usually happens when there’s political unrest.</p><p>The country's longest recorded network disruption was back in 2018, when Sudanese authorities cut off access to social media (and messaging apps like WhatsApp) for <a href="https://allafrica.com/stories/202110250675.html">68 consecutive days</a> from December 21, 2018, to February 26, 2019. After that, there was a full mobile Internet shutdown <a href="https://technext.ng/2021/10/28/history-repeats-itself-in-sudan-as-military-junta-shut-down-internet-after-coup/">reported</a> from June 3 to July 9, 2019, that lasted 36 days.</p><p>This time, in 2021, it was 25 days when the Internet access was reduced to just a trickle of traffic getting through.</p><p>You can keep an eye on <a href="https://radar.cloudflare.com/">Cloudflare Radar</a> to monitor how we see the Internet traffic globally and in every country.</p> ]]></content:encoded>
            <category><![CDATA[Radar]]></category>
            <category><![CDATA[Internet Shutdown]]></category>
            <guid isPermaLink="false">561WlNF7TGFVr9Hn5bq7qF</guid>
            <dc:creator>João Tomé</dc:creator>
            <dc:creator>Carlos Azevedo</dc:creator>
        </item>
    </channel>
</rss>