{"id":1406,"date":"2025-08-29T16:35:59","date_gmt":"2025-08-29T16:35:59","guid":{"rendered":"https:\/\/damosenelblanco.com\/its-not-cloudflare-its-laliga-why-your-website-goes-wrong-when-barca-plays\/"},"modified":"2026-08-13T12:32:15","modified_gmt":"2026-08-13T12:32:15","slug":"its-not-cloudflare-its-laliga-why-your-website-goes-wrong-when-barca-plays","status":"publish","type":"post","link":"https:\/\/damosenelblanco.com\/en\/its-not-cloudflare-its-laliga-why-your-website-goes-wrong-when-barca-plays\/","title":{"rendered":"It&#8217;s not Cloudflare: it&#8217;s LALIGA. Why your website goes wrong when Bar\u00e7a plays."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>What&#8217;s going on with LALIGA and why it affects you even if you don&#8217;t watch soccer online<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">At Damos en el Blanco we prefer to explain things without smoke and mirrors. In the last few weeks <strong>we have seen intermittent crashes and capricious accesses<\/strong> in <strong>some clients&#8217; websites<\/strong> with traffic from Spain. And, although there was a punctual Cloudflare incident on August 21, <strong>what has impacted us the most is not explained by that.<\/strong> What we see -and media and associations confirm- is a <strong>blocking of IP ranges associated with LALIGA<\/strong> that is affecting <strong>thousands of legitimate sites<\/strong> as collateral damage.     <\/p>\n\n<h2 class=\"wp-block-heading\">What we have experienced (in simple)<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Peaks of users who <strong>could not enter<\/strong> or entered at times.<br\/><\/li>\n\n\n\n<li><strong>Falsified<\/strong> campaign metrics (traffic that &#8220;disappears&#8221; due to blocking, not low demand).<br\/><\/li>\n\n\n\n<li>Support overflowed: &#8220;is my website broken?&#8221;.  <strong>No, they are blocking it through no fault of your own.<\/strong><\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">The worrying thing is that we are not talking about websites that broadcast soccer: <strong>we are seeing the effect on legal businesses, institutions and cultural sites<\/strong>. Internet users&#8217; associations have filed formal complaints about these <strong>massive and indiscriminate blockages<\/strong> with the Ombudsman, precisely because of the damage to pages that are totally unrelated to piracy.   <\/p>\n\n<h2 class=\"wp-block-heading\">&#8220;So it&#8217;s Cloudflare&#8217;s fault?&#8221; no. <\/h2>\n\n<p class=\"wp-block-paragraph\">Separating issues is key:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Yes<\/strong> there was an <strong>isolated<\/strong> Cloudflare incident on <strong>August 21<\/strong> for congestion with <strong>AWS us-east-1<\/strong>. It was global, had a clear beginning and end, and Cloudflare published its post-mortem. <strong>It does not explain the recurring crashes in Spain<\/strong> that we describe here.   <br\/><\/li>\n\n\n\n<li>The <strong>widespread in Spain<\/strong> coincides with the <strong>start of the 2025\/26 season<\/strong> and with blocking measures that <strong>take away websites that have nothing to do with pirate soccer<\/strong>. Several media have documented it; LALIGA publicly <strong>denies<\/strong> it, but the damage is there and affects innocent third parties.   <\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">Why it&#8217;s so unfair (and dangerous)<\/h2>\n\n<p class=\"wp-block-paragraph\">Because it <strong>cuts to the chase<\/strong>: if an IP range &#8220;smells&#8221; of something it doesn&#8217;t like, <strong>everything that travels that way is blocked<\/strong>, including stores, media and organizations. The result: <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Lost sales<\/strong> in e-commerce.<br\/><\/li>\n\n\n\n<li><strong>Reputation<\/strong> affected (&#8220;your website is going bad&#8221;).<br\/><\/li>\n\n\n\n<li><strong>Contaminated data<\/strong> for decision making.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">This <strong>cannot be normalized<\/strong>: fighting piracy is legitimate, <strong>breaking the Internet along the way is not<\/strong>. That is why there are <strong>formal complaints<\/strong> asking for intervention from the authorities and a proportionate framework.   <\/p>\n\n<h2 class=\"wp-block-heading\">What we are doing (our customer plan)<\/h2>\n\n<ol class=\"wp-block-list\">\n<li><strong>Mitigating the damage today<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Alternate routes<\/strong> and <strong>multi-CDN<\/strong> when applicable, to bypass blocked segments.<\/li>\n\n\n\n<li><strong>Degraded modes<\/strong> (essential content usable even with partial blocking).<\/li>\n\n\n\n<li><strong>Status pages and warnings<\/strong> to avoid the &#8220;it&#8217;s broken&#8221; feeling.<br\/><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Observe and test<\/strong>\n<ul class=\"wp-block-list\">\n<li>Monitoring by <strong>operator\/country<\/strong> to detect blocking patterns.<\/li>\n\n\n\n<li>Pre-peak <strong>load tests<\/strong> (sports, launches, campaigns).<br\/><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Defending your interests<\/strong>\n<ul class=\"wp-block-list\">\n<li>Record of <strong>evidence<\/strong> (dates, IPs, traceroutes, captures) to claim.<\/li>\n\n\n\n<li><strong>Coordination<\/strong> with other affected parties and associations that have already made representations to the Ombudsman.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\">If it is affecting you<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Write to us. We activate a <strong>contingency plan<\/strong> in your hosting\/CDN. <br\/><\/li>\n\n\n\n<li>We help you to <strong>document it<\/strong> for possible claims.<br\/><\/li>\n\n\n\n<li>We adjust your <strong>analytics<\/strong> to separate &#8220;blocking crashes&#8221; from actual user behavior.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>Contact:<\/strong> <a>hola@damosenelblanco.com<\/a> &#8211; 931 89 00 35<\/p>\n\n<h2 class=\"wp-block-heading\">For those who want to go deeper (readings)<\/h2>\n\n<ul class=\"wp-block-list\">\n<li><strong>Startup 2025\/26 and IP blocking<\/strong> with impact to legitimate websites. <a href=\"https:\/\/www.xataka.com\/empresas-y-economia\/vuelve-futbol-realidad-inquietante-bloqueos-ips-laliga-van-a-ser-pesadilla-constante?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Xataka<\/a><\/li>\n\n\n\n<li><strong>Complaint by AI, UAI and FED to the Ombudsman<\/strong> for indiscriminate blockades. <a href=\"https:\/\/cincodias.elpais.com\/legal\/2025-05-29\/asociaciones-de-internautas-denuncian-ante-el-defensor-del-pueblo-los-bloqueos-web-de-laliga.html?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Cinco D\u00edas<\/a><\/li>\n\n\n\n<li><strong>Coverage<\/strong> on collateral damage and public claims. <a href=\"https:\/\/www.elboletin.com\/bloqueos-de-laliga-miles-de-webs-legitimas-caen-cada-fin-de-semana\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">THE BULLETIN<\/a><a href=\"https:\/\/confilegal.com\/20250529-despues-del-constitucional-ahora-ante-el-defensor-del-pueblo-angel-gabilondo-asociaciones-de-internautas-denuncian-los-bloqueos-masivos-y-arbitrarios-de-laliga-foto-ep\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\"> Confilegal<\/a><\/li>\n\n\n\n<li><strong>Cloudflare post-mortem (08\/21\/2025)<\/strong> &#8211; separate incident from local blocking. <a href=\"https:\/\/blog.cloudflare.com\/cloudflare-incident-on-august-21-2025\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">The Cloudflare Blog<\/a><\/li>\n\n\n\n<li><strong>LALIGA&#8217;s position<\/strong> (denies massive blockades). <a href=\"https:\/\/www.20minutos.es\/tecnologia\/actualidad\/nueva-polemica-iptv-pirata-laliga-responde-criticas-niega-bloqueos-masivos-webs-legitimas_6239882_0.html?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">www.20minutos.es &#8211; Last News<\/a><\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<div class=\"deb-art__extra\"><h2>A year on: what we have learned absorbing spikes<\/h2><p>That episode was about someone else&#8217;s blocking \u2014 something that lands on you and you cannot control. But there is a second half to the story that you <i>do<\/i> control: <b>how your site is built when the hit arrives<\/b>. We see that one every time a client gets real traffic.<\/p><p>The most extreme case we have served is <a href=\"https:\/\/damosenelblanco.com\/en\/proyecto\/eclipsi-info\/\">eclipsi.info<\/a>, on 12 August 2026. Look at the shape of the curve: it climbs all afternoon and explodes at eclipse hour.<\/p><div class=\"deb-figwrap\">\t<figure class=\"deb-fig\" data-deb-chart>\n\t\t<figcaption class=\"deb-fig__head\">\n\t\t\t<span class=\"deb-fig__title\">Requests per hour \u00b7 12 August (local time)<\/span>\n\t\t<\/figcaption>\n\t\t<div class=\"deb-fig__scroll\">\n\t\t\t<svg viewBox=\"0 0 760 320\" role=\"img\" aria-label=\"Area chart: requests per hour on 12 August 2026, peaking at 570,865 between 19:00 and 20:00 and collapsing 95% over the next two hours.\">\n\t\t\t\t\t\t\t\t\t<line class=\"deb-fig__grid\" x1=\"52\" x2=\"746\" y1=\"274\" y2=\"274\"\/>\n\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"42\" y=\"278\" text-anchor=\"end\">0<\/text>\n\t\t\t\t\t\t\t\t\t<line class=\"deb-fig__grid\" x1=\"52\" x2=\"746\" y1=\"214\" y2=\"214\"\/>\n\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"42\" y=\"218\" text-anchor=\"end\">150k<\/text>\n\t\t\t\t\t\t\t\t\t<line class=\"deb-fig__grid\" x1=\"52\" x2=\"746\" y1=\"154\" y2=\"154\"\/>\n\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"42\" y=\"158\" text-anchor=\"end\">300k<\/text>\n\t\t\t\t\t\t\t\t\t<line class=\"deb-fig__grid\" x1=\"52\" x2=\"746\" y1=\"94\" y2=\"94\"\/>\n\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"42\" y=\"98\" text-anchor=\"end\">450k<\/text>\n\t\t\t\t\t\t\t\t\t<line class=\"deb-fig__grid\" x1=\"52\" x2=\"746\" y1=\"34\" y2=\"34\"\/>\n\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"42\" y=\"38\" text-anchor=\"end\">600k<\/text>\n\t\t\t\t\n\t\t\t\t<path class=\"deb-fig__area\" d=\"M52,270.1 L80.9,272.5 L109.8,272.4 L138.8,272.1 L167.7,269.2 L196.6,260.2 L225.5,243 L254.4,231.3 L283.3,225.2 L312.3,218.1 L341.2,216.4 L370.1,212.1 L399,202.8 L427.9,191.6 L456.8,176.9 L485.8,159.7 L514.7,105.7 L543.6,45.7 L572.5,205.3 L601.4,262.2 L630.3,264.4 L659.3,267.3 L688.2,269.9 L717.1,271.7 L746,271.5 L746,274 L52,274 Z\"\/>\n\t\t\t\t<path class=\"deb-fig__line\" d=\"M52,270.1 L80.9,272.5 L109.8,272.4 L138.8,272.1 L167.7,269.2 L196.6,260.2 L225.5,243 L254.4,231.3 L283.3,225.2 L312.3,218.1 L341.2,216.4 L370.1,212.1 L399,202.8 L427.9,191.6 L456.8,176.9 L485.8,159.7 L514.7,105.7 L543.6,45.7 L572.5,205.3 L601.4,262.2 L630.3,264.4 L659.3,267.3 L688.2,269.9 L717.1,271.7 L746,271.5\"\/>\n\n\t\t\t\t<line class=\"deb-fig__mark\" x1=\"543.6\" x2=\"543.6\" y1=\"53.7\" y2=\"274\"\/>\n\t\t\t\t<circle class=\"deb-fig__dot\" cx=\"543.6\" cy=\"45.7\" r=\"5\"\/>\n\t\t\t\t<text class=\"deb-fig__val\" x=\"533.6\" y=\"31.7\" text-anchor=\"end\">570,865 \u00b7 19:00<\/text>\n\t\t\t\t<text class=\"deb-fig__annot\" x=\"717.1\" y=\"158\" text-anchor=\"end\">95% drop in two hours<\/text>\n\t\t\t\t<path class=\"deb-fig__leader\" d=\"M667.9,164 C647.7,176 636.1,218 631.8,254.8\"\/>\n\n\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"37.5\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"02:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~9,784\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"52\" y=\"294\" text-anchor=\"middle\">02h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"66.5\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"03:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~3,776\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"95.4\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"04:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~3,970\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"124.3\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"05:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~4,635\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"138.8\" y=\"294\" text-anchor=\"middle\">05h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"153.2\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"06:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~11,918\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"182.1\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"07:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~34,540\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"211\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"08:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~77,449\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"225.5\" y=\"294\" text-anchor=\"middle\">08h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"240\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"09:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~106,766\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"268.9\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"10:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~121,906\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"297.8\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"11:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~139,783\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"312.3\" y=\"294\" text-anchor=\"middle\">11h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"326.7\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"12:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~144,016\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"355.6\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"13:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~154,697\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"384.5\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"14:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~178,118\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"399\" y=\"294\" text-anchor=\"middle\">14h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"413.5\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"15:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~205,904\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"442.4\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"16:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~242,815\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"471.3\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"17:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~285,719\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"485.8\" y=\"294\" text-anchor=\"middle\">17h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"500.2\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"18:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~420,745\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"529.1\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"19:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~570,865\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"558\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"20:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~171,640\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"572.5\" y=\"294\" text-anchor=\"middle\">20h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"587\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"21:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~29,424\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"615.9\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"22:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~23,994\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"644.8\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"23:00 \u00b7 12\/08|a~Cloudflare \u00b7 requests~16,713\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"659.3\" y=\"294\" text-anchor=\"middle\">23h<\/text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"673.7\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"00:00 \u00b7 13\/08|a~Cloudflare \u00b7 requests~10,273\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"702.6\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"01:00 \u00b7 13\/08|a~Cloudflare \u00b7 requests~5,692\"\/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect class=\"deb-fig__hit\" x=\"731.5\" y=\"34\" width=\"28.9\" height=\"240\" data-tip=\"02:00 \u00b7 13\/08|a~Cloudflare \u00b7 requests~6,261\"\/>\n\t\t\t\t\t\t\t\t\t\t<text class=\"deb-fig__axis\" x=\"746\" y=\"294\" text-anchor=\"middle\">02h<\/text>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t<text class=\"deb-fig__axis\" x=\"52\" y=\"312\">12 August 2026 \u00b7 local time (CEST)<\/text>\n\t\t\t<\/svg>\n\t\t<\/div>\n\n\t\t<details class=\"deb-fig__table\">\n\t\t\t<summary>See the data as a table<\/summary>\n\t\t\t<div class=\"deb-fig__tscroll\">\n\t\t\t\t<table>\n\t\t\t\t\t<thead><tr><th>Hour<\/th><th class=\"n\">Requests<\/th><\/tr><\/thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>02:00<\/td><td class=\"n\">9,784<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>03:00<\/td><td class=\"n\">3,776<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>04:00<\/td><td class=\"n\">3,970<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>05:00<\/td><td class=\"n\">4,635<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>06:00<\/td><td class=\"n\">11,918<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>07:00<\/td><td class=\"n\">34,540<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>08:00<\/td><td class=\"n\">77,449<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>09:00<\/td><td class=\"n\">106,766<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>10:00<\/td><td class=\"n\">121,906<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>11:00<\/td><td class=\"n\">139,783<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>12:00<\/td><td class=\"n\">144,016<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>13:00<\/td><td class=\"n\">154,697<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>14:00<\/td><td class=\"n\">178,118<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>15:00<\/td><td class=\"n\">205,904<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>16:00<\/td><td class=\"n\">242,815<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>17:00<\/td><td class=\"n\">285,719<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>18:00<\/td><td class=\"n\">420,745<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>19:00<\/td><td class=\"n\">570,865<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>20:00<\/td><td class=\"n\">171,640<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>21:00<\/td><td class=\"n\">29,424<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>22:00<\/td><td class=\"n\">23,994<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>23:00<\/td><td class=\"n\">16,713<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>00:00 <span class=\"deb-fig__muted\">\u00b7 13<\/span><\/td><td class=\"n\">10,273<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>01:00 <span class=\"deb-fig__muted\">\u00b7 13<\/span><\/td><td class=\"n\">5,692<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr><td>02:00 <span class=\"deb-fig__muted\">\u00b7 13<\/span><\/td><td class=\"n\">6,261<\/td><\/tr>\n\t\t\t\t\t\t\t\t\t\t\t<\/tbody>\n\t\t\t\t<\/table>\n\t\t\t<\/div>\n\t\t<\/details>\n\t<\/figure>\n\t<\/div><p><b>570,865 requests in one hour<\/b>, about 158 per second, inside a total of 8.3 million over ten days. The result: <b>666 server errors<\/b>, or 0.008%. 94.6% of the data came from cache and the origin barely noticed.<\/p><p>That is not an expensive server. It is three decisions taken beforehand: that the site never computes anything server-side, that everything is cacheable behind a CDN, and that cache-busting is tested <i>before<\/i> the big day. The same decisions that, when an IP block like LALIGA&#8217;s arrives, leave you room to move the affected piece instead of watching everything fall over.<\/p><h2>And in practice<\/h2><p>We build and run that part: servers, CDN, caching, backups, certificates and monitoring. It is <a href=\"https:\/\/damosenelblanco.com\/en\/managed-hosting\/\">managed hosting<\/a>, not a control panel where you fend for yourself. If you have a date circled in red \u2014 a launch, a campaign, a big day \u2014 that is exactly when to look at it, not the day after.<\/p><p><b>Where to go next:<\/b> <a href=\"https:\/\/damosenelblanco.com\/en\/eclipsi-info-10-dias-de-datos\/\">the full numbers from that day<\/a> \u00b7 <a href=\"https:\/\/damosenelblanco.com\/en\/proyecto\/eclipsi-info\/\">the eclipsi.info case<\/a> \u00b7 <a href=\"https:\/\/damosenelblanco.com\/en\/managed-hosting\/\">what our hosting covers<\/a><\/p><\/div><!--\/deb-art__extra-->","protected":false},"excerpt":{"rendered":"<p>IP-level blocking took down legitimate sites on match days. What happened, why Cloudflare is not to blame, and which architecture decisions leave you room when the hit arrives.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[],"class_list":["post-1406","post","type-post","status-publish","format-standard","hentry","category-technology-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/posts\/1406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/comments?post=1406"}],"version-history":[{"count":2,"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/posts\/1406\/revisions"}],"predecessor-version":[{"id":2102,"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/posts\/1406\/revisions\/2102"}],"wp:attachment":[{"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/media?parent=1406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/categories?post=1406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/damosenelblanco.com\/en\/wp-json\/wp\/v2\/tags?post=1406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}