From 8a49b19d00e5162d71125387cc04f8a27910c794 Mon Sep 17 00:00:00 2001 From: FrankZamora Date: Wed, 26 Nov 2025 22:26:16 -0600 Subject: [PATCH] perf(fonts): Self-host Poppins fonts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add WOFF2 font files for Poppins (400, 500, 600, 700 weights) - Create @font-face declarations in css-global-fonts.css - Remove Google Fonts dependency from enqueue-scripts.php - Remove preconnect hints for fonts.googleapis.com from seo.php Benefits: - Eliminates 36.2 kB external transfer from Google Fonts - Improves GDPR compliance (no Google tracking) - Reduces render-blocking requests - Faster font loading from local server 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- assets/css/css-global-fonts.css | 38 ++++++------------- assets/fonts/poppins-v24-latin-500.woff2 | Bin 0 -> 7748 bytes assets/fonts/poppins-v24-latin-600.woff2 | Bin 0 -> 8000 bytes assets/fonts/poppins-v24-latin-700.woff2 | Bin 0 -> 7816 bytes assets/fonts/poppins-v24-latin-regular.woff2 | Bin 0 -> 7884 bytes inc/enqueue-scripts.php | 21 +++++----- inc/seo.php | 15 +++----- 7 files changed, 25 insertions(+), 49 deletions(-) create mode 100644 assets/fonts/poppins-v24-latin-500.woff2 create mode 100644 assets/fonts/poppins-v24-latin-600.woff2 create mode 100644 assets/fonts/poppins-v24-latin-700.woff2 create mode 100644 assets/fonts/poppins-v24-latin-regular.woff2 diff --git a/assets/css/css-global-fonts.css b/assets/css/css-global-fonts.css index c4242db9..a6f9c527 100644 --- a/assets/css/css-global-fonts.css +++ b/assets/css/css-global-fonts.css @@ -45,26 +45,22 @@ */ /* ============================================ - POPPINS (Opcional - Solo si se activa) + POPPINS (Self-hosted) ============================================ - Las siguientes declaraciones @font-face solo - se cargan cuando el usuario activa "Use Custom Fonts" - en Apariencia > Personalizar > Tipografía. + Fuentes Poppins alojadas localmente para: + - Eliminar dependencia de Google Fonts + - Mejorar rendimiento (sin requests externos) + - Cumplimiento GDPR (sin tracking de Google) - Para activar Poppins: - 1. Descargar archivos WOFF2 de Google Fonts - 2. Colocar en assets/fonts/poppins/ - 3. Descomentar las declaraciones @font-face - 4. Activar en Customizer + Pesos incluidos: 400, 500, 600, 700 + Formato: WOFF2 (mejor compresión) ============================================ */ -/* @font-face { font-family: 'Poppins'; - src: url('../fonts/poppins/Poppins-Regular.woff2') format('woff2'), - url('../fonts/poppins/Poppins-Regular.woff') format('woff'); + src: url('../fonts/poppins-v24-latin-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; @@ -72,8 +68,7 @@ @font-face { font-family: 'Poppins'; - src: url('../fonts/poppins/Poppins-Medium.woff2') format('woff2'), - url('../fonts/poppins/Poppins-Medium.woff') format('woff'); + src: url('../fonts/poppins-v24-latin-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; @@ -81,8 +76,7 @@ @font-face { font-family: 'Poppins'; - src: url('../fonts/poppins/Poppins-SemiBold.woff2') format('woff2'), - url('../fonts/poppins/Poppins-SemiBold.woff') format('woff'); + src: url('../fonts/poppins-v24-latin-600.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; @@ -90,21 +84,11 @@ @font-face { font-family: 'Poppins'; - src: url('../fonts/poppins/Poppins-Bold.woff2') format('woff2'), - url('../fonts/poppins/Poppins-Bold.woff') format('woff'); + src: url('../fonts/poppins-v24-latin-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } -*/ - -/* Cuando Poppins esté activo, se aplica con clase .use-custom-fonts */ -/* -.use-custom-fonts { - --font-primary: 'Poppins', var(--font-system); - --font-headings: 'Poppins', var(--font-system); -} -*/ /* ============================================ UTILIDADES DE FUENTES diff --git a/assets/fonts/poppins-v24-latin-500.woff2 b/assets/fonts/poppins-v24-latin-500.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c6603368bf147d85b919d0ce9766bff0a73959d0 GIT binary patch literal 7748 zcmV-K9=qXpPew8T0RR9103JjD3;+NC06%a503GoF0RR9100000000000000000000 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 CEPT=c literal 0 HcmV?d00001 diff --git a/assets/fonts/poppins-v24-latin-700.woff2 b/assets/fonts/poppins-v24-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bf022fc77e764ee16a6d45fae8ed5016110ca2fc GIT binary patch literal 7816 zcmV;39(Un)Pew8T0RR9103L_{3;+NC06tIv03I{|0RR9100000000000000000000 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 a#rF!vrZP-gD&O<}^};ukMx!zS00029z2{T_ literal 0 HcmV?d00001 diff --git a/assets/fonts/poppins-v24-latin-regular.woff2 b/assets/fonts/poppins-v24-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b69e0091c26c46151996a7feec95515567f95ac2 GIT binary patch literal 7884 zcmV;-9y8&0Pew8T0RR9103OT$3;+NC06(Ar03LV%0RR9100000000000000000000 z0000R9vm(PU;u$s3g=AHHVcC`00A}vBm;(M1Rw>2TnB^;8-6mgBG@% z=OfY6IE+E4^fR8XV|adUJw$0E2@BZBRj`b|?XQCU1xpw;YFJ1bU7!aSoX3o6yePdk z^Y&eP6WhE=L}*&A_NR&c-3L+|AF%(QTkjiKBKJam(WfX=bu!GX^PQg%@h{3r2SpR{ z%B)nYY$d)ClLja9POV{13o=|RH!3iUp6?X{RsvE{|Nm=#+L^#26fv?OOlJ#vWXZAq z>dk$Dd3kwrCPW`gpJ$WO^5m70DFC@Dq{%WSB_y|QZGl{ckY5&Mg>+RJ6G_2$J69ik zx5GB86IfMtuLTbw_{0j4yO%yd0anNxC+3>#U=v7S2h0gIq&L!77(eatKqDE9Is^|q zl~OKz(YQNH3<7<%Ho(nEK^{X61c}9-<(7JmZoEgP1;>B`o9!73+xQoSTfYy0*8qB` z2LSsF1PTmblURxb2eL$+s(U>Bz-rI_4=KhT>Y3i}5Bo+@mWouN25smjb6;y)C0a>L zR{1!RZ0T>7zo?o-jrctkg6hf{D8qaTf!1BkgQw#QBUFc)+W@gkhsSci;x=IED{FHWEH&z$*Ya z6~wiqhOxC!m+uA%n+_DU@Y3mintLoBcnpZee!?N}&DBF1x9JUH!;s$| z!xMUC8}ccnIx9{Msm_7wk1}&)mhE$nx=lrJpg&$)7;CHO$q}BFzZ!6l8E$$6_>WsH zfmlh^C8MJv%8!mF@ii;t}nymL?`M0~v<`$UoX!IV<`!FTxCDSf=e#aM?+Y_p)c5o5hkWXOGDDEcExDkr?6Su&sm=0wm#g+bG*p~xOTn1>^ zJ^(j(F9|*|5XMN~SkY%0jj{RY^kisn^;Pg-1^r!}Vdr}DmNeLZzW8rT+6CKRadnW! z+>540jBl&;8A~0mm3eA87e@>=?EAF>P4Z7R0vNjdA*$N%c}46d{=U&o&8Xz!CV=u= zL_#B<>#Q+A2d3hM&REpvYecNUl#8#gb4&Q%EVW*YLytbQ!UqUkh;dwm@o^%--cKhF zkJR%oFcJzR5Z?&%rvn2-G$MBXh_Mrm#r56TR0I*#V zzp8a+TU}{DR#!Av3Xx(`3?AqfqxWv-w*}QxBPlcc?sthSQzJT(q?uGZG)s7{mDtvD z9IRh!+gFM|KR+6pgyN2C;b`@XchyLO?LhvCUC1%?C1rCbJY#oEI()|0A56|?&$+t8 z;G3A*BKwCKi(-l<0upMEgpHB9+EYgW+S*TE7qdoU|w$@wLwsfs1G+~10!%fvf*Iu@oh1`uJ1t(n@BCoz2% z*<+2^$&xP|Xy&d=2i#@-iRLzLHiot|rlxXeY5JZ>D?7aZz?l_L=H@PV2r_s6l=JYO z_saj^D0XxO9?S3)i%~*3?I=)^U`;1;>&En85 z)Zy@HlzNtQl0C!cNQ*Z43&%J4&zAnpUjb~dnmF8`e-ZHXiWm0o0R|uOS>oDFb8%aF z`Q%Ye3&Os9p&Gm0NPJAB?H~FoRu#pvSbf-nVRtxTs}XQ=mEU##Tg&;5MJv0XN2e<_ z&_8rr@!s0(S$uUbzV;ASy5bo3;bP_|zYxY};;VTs>OXCb>6jLC0c@1ER?M6biYV9W zi|2CT{{t&ldG0!N;*yII`;HwLl`)jgHIdm=;81SC4fV``C)7yCYq{&Z*!iUEX;(qp zeOGFi_JV&aj_Vcl;fRaEaMZ%InUuAI<&fBUu(4rZT>BhqPN1N;1=IT9inh*9ASu`c zYO!JSHbwJyP{B$EMx*S&rN6fr*<18OFE``%xu(v~XEBTrUi_(}^M4q?iN2&4@VG_B z5lTjeo{s8fh)M_X%f}_1;U}N@@n8oUF6MkQPq)7CtQGVIq&DihUHN+5zUKM57dNWc z=M6Aq5y9eM3S#wiy*<9x57ZuJRqA`uFg=Q?66k9}&Ot`H(G*weidT6=j6E-f!wlIB zl`t}DdCi~Hdz2p!aD;eLZ}>k@P_Nes1bUrBni!<=xhtafeSXui)p&e3JG%ylZ_fVj zaD|}DN_6@LhH6JM9@jiLn%`EyZ%5GeWCc`B;kX3~L$z+=tE0JCtjw5KMAsJNDaRuT zpL6q5P!r zZL<#_Wdq!C;bRNtv&X)k@bUQzcG$DQGG?+&A(kN7z-k{eMVE+y@JG)Ma$1asZaP}Q zSKW)-y^Ewmo>C@Jng+;hvEh~}fzrvfexrB8^hS@y2LCDqqRB0#L5Y`0Hqv;q;st{Q zLsd?gNwJqw6y>w4;{&z|qe>=&AePD}45Y$o2yn7^Gznk8Q}F}EAa9G*^|0y(zt+Fi zzBTq@O4DGF)Zu;*F3zVKOC{J!E<~%X78*ir6@!b5&l&jwt=6T{XiXZLhCJ4?<{NNe zWqq-A4%px;XNgLuw$w_f73F-mv>w52ofHP%a41n{`g(;b8!w~4R+m9$uqZWJn;N{I zKYG3+y}ey?AIx3IHgf1ROF0>au~c*moyE17Za^-vkYCb3h2c6X?1W;u`}&Z(TA@se zx$_tXu}Ex?Fn&Jalt=}3_4>*zRtv<4Oa%_jfw(-QrY&YI>>+c+Wps8(RWYr-Zb8kr zz0KI|LvcPG` zlKSpD;W<7f>g+?^@^LQBfb9>$^NvsB~j7#$lHFP?OyuHx(z(6M>ZB9}bt zunk>Nu}x=N*NNCYY>#!ja)1XLo#$a9csP73&I9kFO#$%o$1``!}$gX!++ zZg92aSG1y#Ml%J8vVqa}avz?gCG$i&PYimkK+2}kxLLINLH1NTlcg1jH@)5p3Qr*0 zHX)w6&Z=C0)s;#ytf&_Yn@mO^`B$WXD@9kTa($hZb)HRjWNQ$t?%QRuZLFxUZP;a~ z>yP%&s#>_Ht$oqbSlhf zCWApVtwE#+c1%es9iyBii#H>SRvH|h&34DuV9>E`v)vQ!s>=0&KwlK$_&7)uA^XT+ zcV85Vg1vpQmQc`Y3zZ?r00M6uMxXpIQw&7GSZGdboEk!gpFQjP@i>4b*qNaMW zQV9gzWVDh0J*)r|RyNj6orOZ8zcx;-weM(_3%PA8W`S8?TF1P3IGU%kN&VK%Fs`RN zw2;+W!Sn434(%LQJsyevs;#8a5H@6}G7RrVwFYJ>6%dyPiB+?}gSbi}*OK57$V3vM zQb5W7N|@d(8E!zaU?G!fEh9+0O`dq2U#{SAnQ|5_x96|Lk`YEU8x~P$#i1eyyz5gQ z2_xa7O0csp>a-W@b!_L1B7IhAVVBk{j~71&#%>IG{x zChajupQX_rfWXM*yHxJ;Zn(Du9PAvq!e*y-kQMEP15dlE7qstj{gZ6|H`)E|deD?( z8f5|xmq>2aYC&PCxVcfPfI{3&eh1nS>?!BT6%o0(&3KhVLQF&o#Ym8L9-rheKFCH? zCl8!_T)~wpBT{j*$tZ4Xlq=-r+@1jP0LiVd_?{wA$X}Yt4la)sjU&n*qUOm`O`zQ~ z%HqAQV{$a^a<9)_q2XwYe)oPm zQ0KQpYz_UBceJL%>(xw^N?Xllam!SRPBTd?XjD06IHe|+C@rzZsqFxBuf8AYm#gG? z4woqebB56K>Ollsj=`!ERs4oVp|)~yAjN9`)yWa5TuyU+Pl!JXYQpOrUHpD5>v$c` zM`eUyv7K(vTjY?b*g`-aAVWG`I5zM!?OqdLY-j`xd`&O^>#|^9C=_BjO`V(j2)z~o zEq9(h|DWAAH=eh|3>z>4?Eal5djQA-@IES&`>pCMQn}G?!QZcC1dV9B?6@Lnh`T-% z;tRn++_cGcV?o)a(sVj-4DdLiNh)hKo1oU|5{-syfLhFEWowI6L)4maR751AAVw^S zY`~J94a7u5-wIAVDwl>y^s3ChQ;&p@d?Zj`2_R5a{^<*`(C^51gf>?2At(ZU!_jv( ziolh&c2^;SMvB4J1YaQ&&T=s%6bAJ$3jJI(>?)i|7tjhxQY4>^gppV+QusTKv^INe zw&cGa#RPQ>jwH9|v%$f8;{0KSVzmKQNp)hmN%cPv0V*p53+*($ z-Xd2Ri!C^iX6(G`xq~X-ZM=Y7hwehTI=(jl8+7eOIj3KoebG7N(zHvUqU~bSMfaCO zzZ_ZGc468Dch8V7M*%cy)b?CgMf?xr1A7m49t2C2gH;h#;-Um)trC>235>AhCL)O* zETmIOSlWU-L;m=9(~v|rmPVCT45*;WY1l;fka*Mhd_!J=mL<`tAZ(&15y`a#Mt~zB zWF`VW^Vl8o-734Ua=@EgKX%*J=10RbL|jSQ(nv<_@#ddKW*E3)&`nWEnxUR`6mN*yPRgo}hK}7{OCphR14@F+a36S}ys)!4_N-P$a8wQyQ_{fV* z`DT7bN38%k@l&pV?($Lu!Kz4Xu_;3&=d&QOEbIQ=6N2uJ47UshhdH0R<{o^+;_T~M z+w~)d_wnM|OZ(XDLzhgQ$^1EyBSl3$n8HO2#&ir=)jU_UFJ^n*Iq|uT$i~Ai@0-0b zqPaVm!7lgq`~*Rqcq}p%u_qzZ5D=9wCSZtiM*+{#V2M#9oZU=%7bg9bIP+y7%WIS| zWERng{6+N}@*VZo0hm1_4isc;nf212>8n+07LWQ+s~1Ye8WEAK=Sw6SAra839*r6E zc+BX>w85j%3w~68YT;-z20S~u(QesNTFOZDKoG>LMeE#yj=Z@V#X^@;v1qQ=>6oJ> z-RZLJ=4c#TgSUuTCX;DfFN341(v1|G#v70;W!CCY69@bLtZ9U-N)3ZdDMqit5(pyn zU@qi>I3N4DE4kGKico08ztTnL z=8MJ)SoVB7)@nlJazn9&0OIsj>MH$&xJCDtfVH zJ@!D%9E6q`QFBLhRRdu_7vYRPjN>_1ThIF1_X=QYpL~>ke3b!3)+bxm`Q}A?poYcE ze_IA_K;i1`Mj@*z{PDCc>v-o@*#|9i7&mx>0q+?>XMkH*Z9mCsvQqnJ)-7Dt-o9|@ ztmc1?nU4M241QU;X;lw4E$i2>+W_?-Cf~RTEYx-5nxGJJ=KPx6lRUAqB(xbnO&$>X zvXckT(dE^P#SBjX*b!4sgTkj??=S-<4D>MzmLUg_rL(R+a68)|36}>+RkPw|0rtYi zh6bq@M^<5p1ktixO~c0gEEo-?3Sl3c$85vA$c55 zLgp-9l8cal@L3Auq@1SF=3xa!`j6hxnij8HT*Ez8t_|I&;7L7++9l1Cq_DV*F)#oJ zWL5Lv1_{3ratiRUE}sOIA#s|PK5~ZEJSUj}wPN4thKy7 zUcZ~b`2JW(zNA^9*EY!{?PjC2d5RRC#6>2$Bybys?40HSEy_MSf~E1{)3r2G8lgIWwwXqQ_Rexpl=k)HLtS0>~LeI z0R^K+c*BWKM7@>y7^yIv`N}>NkwTB_0LT9I^<*#g1! z6h?2X-tACu!pV>0Q#Qz+Oq?oHX{LoswJ9e{hkTAmVNIi07*TG1V8&CNA`#hP!jVV@ zCXVT8aOm-*IuuT$$tTK7kb!zTSl>C%1kE$dH9+9O>T`HpKY`GX!=EE69;c>0PEUU_ zEzOg3kh)ZwKXML1l$`t6|mHzBb1 z1%?d;fLX_c1!oNYRvi7|w|EevF7)$B!P*-#8HM_`pJxDwHoMFy~K%V7bQHdCQuKY}?7!WHeaaJaUlfeBI>c#3)2&l{NzyZSn zOK)28mONHwot7^Q5ZVq@xI7)3-JhK3UhT4_DJjdve!1lfx$*7jvwO~bxi(eGa^V|o zc%4|ep0A}Wm-+K(Gk;>FNjVQW$rsd#2PwW&gkolhJC*$123|KTB z5+6xfE_TW-8%G;Em<@zO0gy6q2modg0dr8Xl>|>vcwuDybsaR^!DL`23B{LU^e`_k z0ndeTy2$_EeDjc!c?qxr<$PAc&i8gTTk5QJs;IJWi;z^ESuP9cD`RuwZgUsA%Nllq z8pwNNv%Ae$CLZ_}ehAN}P#5P0&R1f!jJD2AEu`X_jat1SQ{%cw*f2i$E4og;ys zWxa+swT>ZVXrH>zvAe`cVnUh#8QQ1p?$os*;9UaBc|idHyTJ1z%wu#iv~S#38}buq zzAa@88QQ1DyHXYwnxnm-*oB$7<5;7zd(JvuBigiN>*y8(EXtBApEZ9Qt>yfe5IcSZ z`0~x=0PxKg`roHVpH3ykFFLN73^gMJzgwy=f0P;Ut{QTs&$+Mj65?6;R__V6prHmN ztJOGtqp-iru^B37RH{cdD}Ug2FRL^2bMvs=fXxqRZNQ5_ZuuxxBQ+v_N-H`IubgaI zorKdy3b$dCAXN-gZwhoQS5wr-D^Rz|YJhqS)a^;?#<XD?|UTUwg#RvtphVx~N zIBjxN$cP*fLmVZP)KwK`$II?^s_rmmT$9==xI#w8Cd6mAnO&v>)vFtk(;tNrBl3-4 zIIFIkAPALhQAj<~)}f1e-p+@Og|vE69BAtsW&xT3iPX^~!&J&>E2tzXFMwS=vNZ90C9((9MIeE6`Wjx?m4kd@1Dou>evgM30whv8Xg zT)Ww#G$F85Zw&8D>Y7Y+3n9Y{cS?GCS?5n~tK4pf?rEsT8(@B%Z*60S6gfC!0{O&S=0Q1&%B#fj@L(GmH%QB)gPmsR$AX zbTDEwZf=BqF-Mwzb)5 z+SabfwXK8K9dX9obP^offu}WWo;B*R5ENUSEM@VUILM<7XPPo~! zMo4u#jzM4~kx#@^H;f98h=@9_%rAn1iHsIoCP1y3<3)He?s<$osUztROlfc;T?;8!m1GRB=}4iQO&Q;6mW)V zD=@(Ge$IE0P5m{HX0ZKb(tmQ?JiL7T0)j%qh8tm|QAQghRho1e#u{h52`0*vB^wG_ zj$C>26)1#(g@Z>xL_$VEMMGDFfr*8UgNuhxKuAPPLP|ysqM)P#Q`6AW(K9eIF|)9; zDQ1UoaB^`g;mJUsW|--)RsJ%|BJ*w3X-5Wmb60DX9>TH0?xVMs!J}r;%`AWU2|QJQco>)$1S&&`PUtwAuDL;;2JO@Zm`k q7u|L*3=a_B6(4yfL?m7j6PIN0HLaC=Egty)l;Nb6Odihx0002ms`8-# literal 0 HcmV?d00001 diff --git a/inc/enqueue-scripts.php b/inc/enqueue-scripts.php index 021f23ba..7e898ad8 100644 --- a/inc/enqueue-scripts.php +++ b/inc/enqueue-scripts.php @@ -13,23 +13,20 @@ if (!defined('ABSPATH')) { /** * Enqueue typography system + * + * SELF-HOSTED: Fuentes Poppins ahora se cargan desde Assets/fonts/ + * Eliminada dependencia de Google Fonts para: + * - Mejorar rendimiento (sin requests externos) + * - Cumplimiento GDPR (sin tracking de Google) + * - Evitar bloqueo de renderizado */ function roi_enqueue_fonts() { - // Google Fonts - Poppins (según documentación INTRODUCCION.md) - wp_enqueue_style( - 'google-fonts-poppins', - 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap', - array(), - null, - 'all' - ); - - // Fonts CSS local + // Fonts CSS local con @font-face para Poppins self-hosted wp_enqueue_style( 'roi-fonts', get_template_directory_uri() . '/Assets/css/css-global-fonts.css', - array('google-fonts-poppins'), - '1.0.0', + array(), + '1.1.0', // Bump version: self-hosted fonts 'all' ); } diff --git a/inc/seo.php b/inc/seo.php index 9d3e4f94..3bbc996a 100644 --- a/inc/seo.php +++ b/inc/seo.php @@ -113,19 +113,14 @@ function roi_seo_head_hooks() { } /** - * Add prefetch hints for external resources + * ELIMINADO: roi_prefetch_external() * - * Improves performance by preemptively connecting to external domains - * commonly used in the theme (fonts, CDNs, etc.) + * Motivo: Fuentes Poppins ahora son self-hosted (Assets/fonts/) + * Ya no se necesita preconnect a Google Fonts * - * @since 1.0.0 + * @since 1.0.0 - Creado + * @since 1.1.0 - Eliminado (self-hosted fonts) */ -function roi_prefetch_external() { - // Google Fonts prefetch - echo '' . "\n"; - echo '' . "\n"; -} -add_action('wp_head', 'roi_prefetch_external', 1); /** * Open Graph support for Rank Math compatibility