Web más lenta con cloudflare +450 MS
Desde que reabrí el blog, he escrito algunos artículos sobre unas garantías de carga que hasta ahora no he cumplido, más que nada por falta de tiempo. Hoy me he puesto a mirar un poco el Webmaster Tools y el Core Web Vitals de Google, por curiosidad más que nada y para aprender un poco más.
Y bueno, también para ver por qué Google no estaba indexando luego de un parón de tres años; resulta que había quitado la etiqueta de verificación y el blog seguía en Google con "www"... pero bueno, eso es otro tema.
Volvamos a Core Web Vitals. De momento el blog rinde bien con 1 core y 512 MB de RAM.

Números muy buenos, pero... ¿Speed Index de 2 segundos? Ahí ya me ha chirriado un poco el tema, así que vamos a ver qué más nos dice Google al respecto:

Mucho hemos hablado de montar webs y ya, dejarlas a su suerte y solo quejarte de que van lento; pero tener una web implica saber qué hace la web y todo lo que carga. Y esto me sonaba muy raro, el enlace: /cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js.
!function(){"use strict";function e(e){try{if("undefined"==typeof console)return;"error"in console?console.error(e):console.log(e)}catch(e){}}function t(e){return d.innerHTML='<a href="'+e.replace(/"/g,""")+'"></a>',d.childNodes[0].getAttribute("href")||""}function r(e,t){var r=e.substr(t,2);return parseInt(r,16)}function n(n,c){for(var o="",a=r(n,c),i=c+2;i<n.length;i+=2){var l=r(n,i)^a;o+=String.fromCharCode(l)}try{o=decodeURIComponent(escape(o))}catch(u){e(u)}return t(o)}function c(t){for(var r=t.querySelectorAll("a"),c=0;c<r.length;c++)try{var o=r[c],a=o.href.indexOf(l);a>-1&&(o.href="mailto:"+n(o.href,a+l.length))}catch(i){e(i)}}function o(t){for(var r=t.querySelectorAll(u),c=0;c<r.length;c++)try{var o=r[c],a=o.parentNode,i=o.getAttribute(f);if(i){var l=n(i,0),d=document.createTextNode(l);a.replaceChild(d,o)}}catch(h){e(h)}}function a(t){for(var r=t.querySelectorAll("template"),n=0;n<r.length;n++)try{i(r[n].content)}catch(c){e(c)}}function i(t){try{c(t),o(t),a(t)}catch(r){e(r)}}var l="/cdn-cgi/l/email-protection#",u=".__cf_email__",f="data-cfemail",d=document.createElement("div");i(document),function(){var e=document.currentScript||document.scripts[document.scripts.length-1];e.parentNode.removeChild(e)}()}();
450 ms por una opción que yo no pedí, pero en la que evidentemente tampoco reparé al activar Cloudflare.
¿Qué hace esto? Podemos leerlo aquí: https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/
Básicamente protege las direcciones de correo; tú pones hola@gmail.com y Cloudflare lo convierte en una imagen o pone hola [at] gmail.com para que los bots no la pillen para enviar spam. A mí me da igual, solo tengo una dirección de correo en el blog y confiaré en el antispam del servidor de correo.
Me costó encontrar dónde se desactiva, pero dejo una captura de pantalla:

También he desactivado el Rocket Loader. Esto no debería afectar mucho, pero en mi caso tengo gestión total del JavaScript y cargo solo lo necesario, así que el Rocket Loader puede que no me haga mal, pero el Core Web Vitals me dice que tengo que subirle el tiempo de caché. Cloudflare parece que no permite el control de ese tiempo, o yo no he visto dónde gestionarlo, así que va fuera. Aunque luego nos añada un blocking time de 30 ms, ese bloqueo no me importa mucho; al final el funcionamiento va a ser el mismo y, mientras no suba la latencia por otro lado, todo está bien.
Una vez desactivado y hecha la limpieza de la caché de Cloudflare, hacemos el test de nuevo

Bien, hemos quitado 450 ms en Core Web Vitals de una opción que no necesitamos; no está mal. Ahora tenemos una puntuación de 100, 100, 100, 92, 100. Un 92 en recomendaciones no está nada mal.
Nos tocará pulir el tema del árbol de dependencias de red. Tengo solo un CSS y un JS y tengo todo ahí metido. Básicamente, Google dice que estoy haciendo una petición de más y que tengo que esperar a esa petición para seguir cargando la web.
Como el CSS pesa 9,5 KB lo dejaremos para otro día; de momento, me quedo contento quitando 450 ms de carga innecesaria, que solo protegía una dirección de correo en la que no me importa mucho recibir algo de spam, en caso claro, de que falle el filtro.