{"id":40027,"date":"2026-08-02T22:05:56","date_gmt":"2026-08-02T15:05:56","guid":{"rendered":"https:\/\/dps.media\/toi-uu-toc-do-wordpress-cloudflare\/"},"modified":"2026-08-02T22:05:56","modified_gmt":"2026-08-02T15:05:56","slug":"%e4%bc%98%e5%8c%96-%e9%80%9f%e5%ba%a6-wordpress-cloudflare-2","status":"publish","type":"post","link":"https:\/\/dps.media\/zh\/%e4%bc%98%e5%8c%96-%e9%80%9f%e5%ba%a6-wordpress-cloudflare-2\/","title":{"rendered":"WordPress Cloudflare \u4e0e Server-Side Tracking \u901f\u5ea6\u4f18\u5316\uff1a2026 \u5e74 9 \u4e2a\u5b9e\u6218\u6b65\u9aa4"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p>\u8d2d\u4e70 <a href=\"https:\/\/dps.media\/zh\/%e4%bc%98%e5%8c%96-%e9%80%9f%e5%ba%a6-wordpress-cloudflare-2\/\">t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress cloudflare<\/a> v\u00e0 k\u1ebft h\u1ee3p h\u1ea1 t\u1ea7ng web server OpenLiteSpeed l\u00e0 b\u00e0i to\u00e1n s\u1ed1ng c\u00f2n cho c\u00e1c website doanh nghi\u1ec7p n\u0103m 2026. B\u00e0i vi\u1ebft n\u00e0y \u0111\u00fac k\u1ebft l\u1ea1i m\u1ed9t case study th\u1ef1c t\u1ebf: t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 t\u1ea3i trang cho m\u1ed9t website WordPress ch\u1ea1y tr\u00ean OpenLiteSpeed (CyberPanel) + Cloudflare, v\u00e0 song song \u0111\u00f3 l\u00e0 d\u1ecdn d\u1eb9p, ki\u1ec3m tra l\u1ea1i h\u1ec7 th\u1ed1ng tracking (GA4, Facebook Pixel, Microsoft Ads) khi chuy\u1ec3n sang ch\u1ea1y server-side qua Cloudflare Zaraz.<\/p><p>N\u1ebfu b\u1ea1n l\u00e0 marketer c\u1ea7n hi\u1ec3u v\u00ec sao trang load ch\u1eadm ho\u1eb7c v\u00ec sao c\u00f4ng c\u1ee5 ki\u1ec3m tra tag b\u00e1o l\u1ed7i, ho\u1eb7c l\u00e0 dev c\u1ea7n m\u1ed9t checklist tuning c\u1ee5 th\u1ec3 \u2014 b\u00e0i vi\u1ebft n\u00e0y d\u00e0nh cho b\u1ea1n.<\/p><h2>1. V\u1ea5n \u0111\u1ec1 ban \u0111\u1ea7u: m\u1ed9t file font \u201cnh\u1eb9 t\u00eanh\u201d nh\u01b0ng m\u1ea5t 2 gi\u00e2y \u0111\u1ec3 t\u1ea3i<\/h2><p>M\u1ecdi chuy\u1ec7n b\u1eaft \u0111\u1ea7u t\u1eeb m\u1ed9t quan s\u00e1t r\u1ea5t c\u1ee5 th\u1ec3 tr\u00ean tab <strong>\u7f51\u7edc<\/strong> c\u1ee7a Chrome DevTools: file font <code data-no-translation=\"\">Gilroy-Regular.woff2<\/code> ch\u1ec9 n\u1eb7ng 26KB nh\u01b0ng m\u1ea5t t\u1edbi <strong>2\u79d2<\/strong> \u0111\u1ec3 hi\u1ec3n th\u1ecb, trong khi VPS ch\u1ea1y 8 core \/ 16GB RAM g\u1ea7n nh\u01b0 kh\u00f4ng t\u1ea3i g\u00ec c\u1ea3.<\/p><p>\u0110\u00e2y l\u00e0 b\u00e0i h\u1ecdc \u0111\u1ea7u ti\u00ean cho c\u1ea3 marketer l\u1eabn dev: <strong>\u201ct\u00e0i nguy\u00ean server c\u00f2n d\u01b0\u201d kh\u00f4ng \u0111\u1ed3ng ngh\u0129a v\u1edbi \u201cweb nhanh\u201d<\/strong>. T\u1ed1c \u0111\u1ed9 t\u1ea3i m\u1ed9t t\u00e0i nguy\u00ean ph\u1ee5 thu\u1ed9c v\u00e0o c\u00e1ch tr\u00ecnh duy\u1ec7t x\u1ebfp h\u00e0ng, ph\u00e1t hi\u1ec7n v\u00e0 \u01b0u ti\u00ean t\u00e0i nguy\u00ean \u0111\u00f3 \u2014 ch\u1ee9 kh\u00f4ng ch\u1ec9 ph\u1ee5 thu\u1ed9c v\u00e0o CPU\/RAM c\u00f2n tr\u1ed1ng.<\/p><h3>\u0110\u1ecdc b\u1ea3ng Timing \u0111\u1ec3 bi\u1ebft th\u1eddi gian \u201cbi\u1ebfn m\u1ea5t\u201d \u1edf \u0111\u00e2u<\/h3><p>Khi click v\u00e0o m\u1ed9t request trong tab Network, tab <strong>\u65f6\u673a<\/strong> cho bi\u1ebft th\u1eddi gian b\u1ecb ti\u00eau t\u1ed1n \u1edf giai \u0111o\u1ea1n n\u00e0o:<\/p><ul>\n<li><strong>Stalled<\/strong>: Tr\u00ecnh duy\u1ec7t \u0111\u00e3 s\u1eb5n s\u00e0ng g\u1eedi request nh\u01b0ng ph\u1ea3i x\u1ebfp h\u00e0ng ch\u1edd (do gi\u1edbi h\u1ea1n s\u1ed1 k\u1ebft n\u1ed1i\/lu\u1ed3ng \u0111\u1ed3ng th\u1eddi).<\/li>\n<li><strong>Waiting for server response (TTFB)<\/strong>: Th\u1eddi gian ch\u1edd server ph\u1ea3n h\u1ed3i byte \u0111\u1ea7u ti\u00ean.<\/li>\n<li><strong>Content Download<\/strong>: Th\u1eddi gian t\u1ea3i n\u1ed9i dung th\u1ef1c t\u1ebf.<\/li>\n<\/ul><p>Trong case study n\u00e0y, file font ch\u1ec9 m\u1ea5t 0.3ms \u0111\u1ec3 t\u1ea3i n\u1ed9i dung \u2014 to\u00e0n b\u1ed9 2 gi\u00e2y n\u1eb1m \u1edf <strong>Stalled<\/strong> v\u00e0 <strong>TTFB<\/strong>, t\u1ee9c l\u00e0 v\u1ea5n \u0111\u1ec1 n\u1eb1m \u1edf vi\u1ec7c <em>x\u1ebfp h\u00e0ng<\/em> v\u00e0 <em>ph\u00e1t hi\u1ec7n mu\u1ed9n<\/em>, kh\u00f4ng ph\u1ea3i \u1edf dung l\u01b0\u1ee3ng file hay b\u0103ng th\u00f4ng server.<\/p><h3>Hai nguy\u00ean nh\u00e2n g\u1ed1c r\u1ec5<\/h3><p><strong>Th\u1ee9 nh\u1ea5t<\/strong>, trang g\u1ecdi qu\u00e1 nhi\u1ec1u request c\u00f9ng l\u00fac (234 request cho m\u1ed9t trang ch\u1ee7, thay v\u00ec m\u1ee9c khuy\u1ebfn ngh\u1ecb 30\u201360). K\u1ebft n\u1ed1i HTTP\/2 c\u00f3 gi\u1edbi h\u1ea1n s\u1ed1 lu\u1ed3ng \u0111\u1ed3ng th\u1eddi (concurrent streams), n\u00ean khi c\u00f3 h\u00e0ng tr\u0103m file \u1ea3nh\/JS\/CSS \u0111\u1ed5 v\u1ec1 c\u00f9ng l\u00fac, c\u00e1c file \u0111\u1ebfn sau \u2014 nh\u01b0 file font \u2014 b\u1ecb \u0111\u1ea9y v\u00e0o h\u00e0ng \u0111\u1ee3i.<\/p><p><strong>Th\u1ee9 hai<\/strong>, font kh\u00f4ng \u0111\u01b0\u1ee3c khai b\u00e1o s\u1edbm. Tr\u00ecnh duy\u1ec7t ch\u1ec9 bi\u1ebft \u0111\u1ebfn file font sau khi: t\u1ea3i xong HTML \u2192 t\u1ea3i xong CSS c\u1ee7a plugin qu\u1ea3n l\u00fd font \u2192 parse CSS \u2192 th\u1ea5y <code data-no-translation=\"\">@font-face<\/code> \u2192 m\u1edbi g\u1eedi request l\u1ea5y font. V\u00ec \u201cbi\u1ebft mu\u1ed9n\u201d, request n\u00e0y lu\u00f4n b\u1ecb x\u1ebfp cu\u1ed1i h\u00e0ng \u0111\u1ee3i.<\/p><p><strong>B\u00e0i h\u1ecdc cho marketer:<\/strong> khi brief cho designer\/dev v\u1ec1 \u201cweb load ch\u1eadm\u201d, \u0111\u1eebng ch\u1ec9 n\u00f3i \u201cch\u1eadm qu\u00e1\u201d \u2014 h\u00e3y \u0111\u00ednh k\u00e8m \u1ea3nh ch\u1ee5p tab Network v\u00e0 c\u1ed9t Timing, \u0111\u00f3 l\u00e0 ng\u00f4n ng\u1eef chung gi\u00fap dev ch\u1ea9n \u0111o\u00e1n \u0111\u00fang thay v\u00ec \u0111o\u00e1n m\u00f2.<\/p><h2>2. S\u1eeda nhanh: Preload font v\u00e0 font-display: swap<\/h2><p>C\u00e1ch x\u1eed l\u00fd tr\u1ef1c ti\u1ebfp nh\u1ea5t \u0111\u1ec3 <a href=\"https:\/\/dps.media\/zh\/%e4%bc%98%e5%8c%96-%e9%80%9f%e5%ba%a6-wordpress-cloudflare-2\/\">t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress cloudflare<\/a> \u1edf kh\u00e2u hi\u1ec3n th\u1ecb font l\u00e0 \u201cn\u00f3i tr\u01b0\u1edbc\u201d cho tr\u00ecnh duy\u1ec7t bi\u1ebft v\u1ec1 file font ngay t\u1eeb khi nh\u1eadn HTML, thay v\u00ec \u0111\u1ec3 n\u00f3 t\u1ef1 ph\u00e1t hi\u1ec7n qua CSS.<\/p><pre data-no-translation=\"\"><code data-no-translation=\"\"><link rel=\"preload\" href=\"https:\/\/dps.media\/wp-content\/uploads\/useanyfont\/font.woff2\" as=\"font\" type=\"font\/woff2\" crossorigin><\/code><\/pre><p>Th\u1ebb n\u00e0y ch\u00e8n v\u00e0o <code data-no-translation=\"\"><head><\/code>, b\u00e1o cho tr\u00ecnh duy\u1ec7t t\u1ea3i font song song v\u1edbi HTML thay v\u00ec ch\u1edd CSS.<\/p><p>K\u1ebft h\u1ee3p th\u00eam <code data-no-translation=\"\">font-display: swap<\/code> trong khai b\u00e1o <code data-no-translation=\"\">@font-face<\/code>:<\/p><pre data-no-translation=\"\"><code data-no-translation=\"\">@font-face {\n  font-family: 'Gilroy-Regular';\n  src: url('font.woff2') format('woff2');\n  font-display: swap;\n}<\/code><\/pre><p><code data-no-translation=\"\">swap<\/code> gi\u00fap ch\u1eef hi\u1ec3n th\u1ecb ngay b\u1eb1ng font h\u1ec7 th\u1ed1ng trong l\u00fac ch\u1edd font custom t\u1ea3i xong, tr\u00e1nh hi\u1ec7n t\u01b0\u1ee3ng ch\u1eef \u201cbi\u1ebfn m\u1ea5t\u201d (FOIT \u2014 Flash of Invisible Text).<\/p><p>Tr\u00ean WordPress d\u00f9ng LiteSpeed Cache, c\u00f3 th\u1ec3 l\u00e0m vi\u1ec7c n\u00e0y kh\u00f4ng c\u1ea7n \u0111\u1ee5ng code: v\u00e0o <strong>LiteSpeed Cache \u2192 Page Optimization \u2192 Preload<\/strong>, d\u00e1n URL file font v\u00e0o \u00f4 Preload Fonts.<\/p><p><strong>L\u01b0u \u00fd th\u1ef1c t\u1ebf:<\/strong> b\u01b0\u1edbc n\u00e0y gi\u00fap gi\u1ea3m th\u1eddi gian t\u1ea3i ri\u00eang file font, nh\u01b0ng n\u1ebfu t\u1ed5ng s\u1ed1 request c\u1ee7a trang v\u1eabn \u1edf m\u1ee9c h\u00e0ng tr\u0103m, c\u1ea3m nh\u1eadn t\u1ed1c \u0111\u1ed9 t\u1ed5ng th\u1ec3 s\u1ebd ch\u01b0a c\u1ea3i thi\u1ec7n r\u00f5. \u0110\u00e2y ch\u1ec9 l\u00e0 b\u01b0\u1edbc 1 trong m\u1ed9t chu\u1ed7i t\u1ed1i \u01b0u.<\/p><p><img decoding=\"async\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/08\/toi_uu_toc_do_wordpress_cloudflare_serve_img1.png\" alt=\"t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress cloudflare\" style=\"display:block;margin:20px auto;max-width:100%;height:auto\" title=\"\"><\/p><h2>3. Gi\u1ea3m t\u1ed5ng s\u1ed1 request: nguy\u00ean nh\u00e2n g\u1ed1c c\u1ee7a ngh\u1ebdn h\u00e0ng \u0111\u1ee3i<\/h2><p>Chu\u1ea9n t\u1ed1i \u01b0u chung c\u1ee7a Google cho m\u1ed9t trang l\u00e0 kho\u1ea3ng 30\u201360 request. M\u1ed9t trang c\u00f3 234 request g\u1ea7n nh\u01b0 ch\u1eafc ch\u1eafn s\u1ebd g\u1eb7p hi\u1ec7n t\u01b0\u1ee3ng ngh\u1ebdn h\u00e0ng \u0111\u1ee3i b\u1ea5t k\u1ec3 server m\u1ea1nh c\u1ee1 n\u00e0o.<\/p><p>Vi\u1ec7c c\u1ea7n l\u00e0m trong <strong>LiteSpeed Cache \u2192 Page Optimization<\/strong>:<\/p><table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse;width: 100%\">\n<thead>\n<tr>\n<th>\u8bbe\u7f6e<\/th>\n<th>\u4f5c\u7528<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>CSS Combine<\/strong><\/td>\n<td>G\u1ed9p h\u00e0ng ch\u1ee5c file CSS nh\u1ecf th\u00e0nh 1\u20132 file<\/td>\n<\/tr>\n<tr>\n<td><strong>JS Combine<\/strong><\/td>\n<td>G\u1ed9p c\u00e1c file JS l\u1ebb (slider, animation, plugin\u2026) th\u00e0nh 1 file<\/td>\n<\/tr>\n<tr>\n<td><strong>JS Deferred<\/strong><\/td>\n<td>Tr\u00ec ho\u00e3n JS kh\u00f4ng thi\u1ebft y\u1ebfu \u0111\u1ebfn sau khi trang \u0111\u00e3 hi\u1ec3n th\u1ecb<\/td>\n<\/tr>\n<tr>\n<td><strong>Lazy Load Images<\/strong><\/td>\n<td>Ch\u1ec9 t\u1ea3i \u1ea3nh khi cu\u1ed9n t\u1edbi, \u0111\u1eb7c bi\u1ec7t v\u1edbi \u1ea3nh below-the-fold<\/td>\n<\/tr>\n<tr>\n<td><strong>Font Display Optimization<\/strong><\/td>\n<td>\u9009\u62e9 <code data-no-translation=\"\">Swap<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><\/p><p>Ngo\u00e0i ra, c\u00e1c icon nh\u1ecf d\u1ea1ng <code data-no-translation=\"\">.png<\/code> n\u00ean chuy\u1ec3n sang <strong>SVG inline<\/strong> ho\u1eb7c <strong>SVG sprite<\/strong> thay v\u00ec g\u1ecdi h\u00e0ng tr\u0103m file \u1ea3nh ri\u00eang l\u1ebb \u2014 m\u1ed7i file \u1ea3nh l\u00e0 m\u1ed9t request, v\u00e0 request n\u00e0o c\u0169ng c\u00f3 chi ph\u00ed (DNS, TCP\/TLS handshake, h\u00e0ng \u0111\u1ee3i).<\/p><h2>4. Tuning t\u1ea7ng Cloudflare: nh\u1eefng g\u00ec n\u00ean b\u1eadt<\/h2><p>Tr\u00ean Cloudflare Dashboard (k\u1ec3 c\u1ea3 g\u00f3i Free) c\u00f3 m\u1ed9t s\u1ed1 thi\u1ebft l\u1eadp \u1ea3nh h\u01b0\u1edfng tr\u1ef1c ti\u1ebfp \u0111\u1ebfn t\u1ed1c \u0111\u1ed9:<\/p><p><strong>Network:<\/strong><\/p><ul>\n<li><strong>HTTP\/3 (with QUIC)<\/strong> \u2014 lo\u1ea1i b\u1ecf hi\u1ec7n t\u01b0\u1ee3ng Head-of-Line Blocking v\u1ed1n c\u00f3 \u1edf TCP\/HTTP2.<\/li>\n<li><strong>0-RTT Connection Resumption<\/strong> \u2014 gi\u1ea3m \u0111\u1ed9 tr\u1ec5 b\u1eaft tay (handshake) khi ng\u01b0\u1eddi d\u00f9ng quay l\u1ea1i trang.<\/li>\n<\/ul><p><strong>Speed \u2192 Optimization:<\/strong><\/p><ul>\n<li><strong>Early Hints (103)<\/strong> \u2014 Cloudflare g\u1eedi g\u1ee3i \u00fd preload cho tr\u00ecnh duy\u1ec7t ngay khi request v\u1eeba t\u1edbi, tr\u01b0\u1edbc c\u1ea3 khi server WordPress x\u1eed l\u00fd xong HTML.<\/li>\n<li><strong>\u63d0\u9ad8\u9875\u9762\u6e32\u67d3\u901f\u5ea6<\/strong> (JS, CSS, HTML) \u2014 n\u1ebfu ch\u01b0a b\u1eadt \u1edf LiteSpeed Cache.<\/li>\n<li><strong>HTTP\/2 Prioritization<\/strong>.<\/li>\n<\/ul><p><strong>Caching \u2192 Configuration:<\/strong><\/p><ul>\n<li><strong>Browser Cache TTL<\/strong>: ch\u1ecdn \u201cRespect Existing Headers\u201d ho\u1eb7c \u0111\u1eb7t 1 th\u00e1ng\/1 n\u0103m cho t\u00e0i nguy\u00ean t\u0129nh.<\/li>\n<li><strong>\u5f00\u53d1\u6a21\u5f0f (Development Mode)<\/strong>: \u0111\u1ea3m b\u1ea3o \u0111ang OFF (b\u1eadt nh\u1ea7m s\u1ebd v\u00f4 hi\u1ec7u ho\u00e1 to\u00e0n b\u1ed9 cache).<\/li>\n<\/ul><p>\u0110\u00e2y \u0111\u1ec1u l\u00e0 c\u00e1c thi\u1ebft l\u1eadp m\u1ed9t l\u1ea7n, kh\u00f4ng c\u1ea7n theo d\u00f5i li\u00ean t\u1ee5c \u2014 ph\u00f9 h\u1ee3p \u0111\u1ec3 marketer\/qu\u1ea3n tr\u1ecb vi\u00ean t\u1ef1 l\u00e0m m\u00e0 kh\u00f4ng c\u1ea7n dev can thi\u1ec7p.<\/p><h2>5. C\u1ea1m b\u1eaby d\u1ec5 g\u1eb7p: Rocket Loader xung \u0111\u1ed9t v\u1edbi plugin cache<\/h2><p>\u0110\u00e2y l\u00e0 ph\u1ea7n \u0111\u00e1ng ch\u00fa \u00fd nh\u1ea5t cho nh\u1eefng site \u0111\u00e3 d\u00f9ng plugin cache m\u1ea1nh nh\u01b0 <strong>LiteSpeed Cache<\/strong> ho\u1eb7c <strong>Super Page Cache for Cloudflare<\/strong>.<\/p><p><strong>Rocket Loader<\/strong> l\u00e0 t\u00ednh n\u0103ng c\u1ee7a Cloudflare gi\u00fap ho\u00e3n t\u1ea3i JavaScript \u0111\u1ec3 t\u0103ng t\u1ed1c render ban \u0111\u1ea7u. Nghe h\u1ee3p l\u00fd, nh\u01b0ng khi website \u0111\u00e3 c\u00f3 plugin cache t\u1ef1 lo vi\u1ec7c g\u1ed9p\/ho\u00e3n JS, Rocket Loader l\u1ea1i <strong>ch\u00e8n th\u00eam m\u1ed9t l\u1edbp trung gian<\/strong> (<code data-no-translation=\"\">rocket-loader.min.js<\/code>) \u0111\u1ec3 ch\u1eb7n v\u00e0 \u0111i\u1ec1u ph\u1ed1i l\u1ea1i to\u00e0n b\u1ed9 script \u2014 g\u00e2y ra hi\u1ec7n t\u01b0\u1ee3ng:<\/p><ul>\n<li>To\u00e0n b\u1ed9 file JS b\u1ecb d\u1ed3n l\u1ea1i ch\u1edd ~800ms tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u t\u1ea3i (xu\u1ea5t hi\u1ec7n d\u01b0\u1edbi d\u1ea1ng \u201cPending\u201d \u0111\u1ed3ng lo\u1ea1t trong Network tab).<\/li>\n<li>Xung \u0111\u1ed9t th\u1ee9 t\u1ef1 th\u1ef1c thi script v\u1edbi plugin cache, c\u00f3 th\u1ec3 g\u00e2y l\u1ed7i giao di\u1ec7n: slider kh\u00f4ng ch\u1ea1y, menu b\u1ecb \u0111\u01a1, icon l\u1ec7ch v\u1ecb tr\u00ed.<\/li>\n<\/ul><p><strong>Nguy\u00ean t\u1eafc chung:<\/strong> n\u1ebfu website \u0111\u00e3 d\u00f9ng m\u1ed9t plugin cache to\u00e0n di\u1ec7n (LiteSpeed Cache, Super Page Cache, WP Rocket\u2026), <strong>n\u00ean t\u1eaft Rocket Loader<\/strong> tr\u00ean Cloudflare (Speed \u2192 Optimization \u2192 Rocket Loader \u2192 OFF) v\u00e0 \u0111\u1ec3 plugin cache t\u1ef1 \u0111\u1ea3m nhi\u1ec7m vi\u1ec7c g\u1ed9p\/defer JS. Hai c\u00f4ng c\u1ee5 c\u00f9ng \u201cs\u1eeda\u201d m\u1ed9t vi\u1ec7c th\u01b0\u1eddng t\u1ea1o ra xung \u0111\u1ed9t ch\u1ee9 kh\u00f4ng c\u1ed9ng d\u1ed3n hi\u1ec7u qu\u1ea3.<\/p><h2>6. Tuning s\u00e2u t\u1ea7ng server: OpenLiteSpeed (d\u00e0nh cho dev)<\/h2><p>N\u1ebfu \u0111\u00e3 t\u1ed1i \u01b0u \u1edf t\u1ea7ng WordPress v\u00e0 Cloudflare m\u00e0 v\u1eabn c\u00f2n \u0111\u1ed9 tr\u1ec5, b\u01b0\u1edbc ti\u1ebfp theo l\u00e0 tinh ch\u1ec9nh ch\u00ednh OpenLiteSpeed (qua WebAdmin Panel, th\u01b0\u1eddng \u1edf c\u1ed5ng <code data-no-translation=\"\">:7080<\/code> tr\u00ean CyberPanel).<\/p><p><strong>Server Configuration \u2192 Tuning \u2192 Connection:<\/strong><\/p><ul>\n<li><code data-no-translation=\"\">Max Connections<\/code> \/ <code data-no-translation=\"\">Max SSL Connections<\/code>: n\u00e2ng l\u00ean m\u1ee9c \u0111\u1ee7 l\u1edbn (v\u00ed d\u1ee5 10.000\u201330.000) \u0111\u1ec3 kh\u00f4ng ngh\u1ebdn \u1edf t\u1ea7ng k\u1ebft n\u1ed1i.<\/li>\n<li><code data-no-translation=\"\">Max Keep-Alive Requests<\/code>: n\u00e2ng t\u1eeb m\u1eb7c \u0111\u1ecbnh (th\u01b0\u1eddng 100\u20131000) l\u00ean <strong>10.000<\/strong> \u2014 gi\u00fap tr\u00ecnh duy\u1ec7t gi\u1eef nguy\u00ean m\u1ed9t k\u1ebft n\u1ed1i \u0111\u1ec3 t\u1ea3i to\u00e0n b\u1ed9 t\u00e0i nguy\u00ean c\u1ee7a trang m\u00e0 kh\u00f4ng ph\u1ea3i m\u1edf\/\u0111\u00f3ng SSL li\u00ean t\u1ee5c.<\/li>\n<li><code data-no-translation=\"\">Keep-Alive Timeout<\/code>: 5\u201310 gi\u00e2y l\u00e0 h\u1ee3p l\u00fd.<\/li>\n<\/ul><p><strong>HTTP3\/QUIC:<\/strong><\/p><ul>\n<li><code data-no-translation=\"\">Max Concurrent Streams Per Connection<\/code>: \u0111\u00e2y l\u00e0 thi\u1ebft l\u1eadp then ch\u1ed1t \u2014 m\u1eb7c \u0111\u1ecbnh th\u01b0\u1eddng gi\u1edbi h\u1ea1n \u1edf 100 lu\u1ed3ng, c\u00f3 th\u1ec3 n\u00e2ng l\u00ean 300\u2013500 \u0111\u1ec3 tr\u00ecnh duy\u1ec7t t\u1ea3i nhi\u1ec1u t\u00e0i nguy\u00ean song song h\u01a1n m\u00e0 kh\u00f4ng b\u1ecb \u201cStalled\u201d.<\/li>\n<\/ul><p><strong>Static File Delivery Optimization<\/strong> \u2014 ph\u1ea7n hay b\u1ecb b\u1ecf s\u00f3t nh\u1ea5t:<\/p><ul>\n<li><code data-no-translation=\"\">Max Cached Small File Size<\/code>: m\u1eb7c \u0111\u1ecbnh 16KB. N\u1ebfu file font\/CSS\/JS c\u1ee7a b\u1ea1n l\u1edbn h\u01a1n ng\u01b0\u1ee1ng n\u00e0y, OLS s\u1ebd <strong>kh\u00f4ng cache v\u00e0o RAM<\/strong> m\u00e0 ph\u1ea3i \u0111\u1ecdc t\u1eeb \u0111\u0129a m\u1ed7i l\u1ea7n \u2014 d\u00f9 RAM c\u00f2n d\u01b0 h\u00e0ng ch\u1ee5c GB. N\u00ean n\u00e2ng l\u00ean 128KB.<\/li>\n<li><code data-no-translation=\"\">Total Small File Cache Size<\/code>: n\u00e2ng t\u1eeb 128M l\u00ean 512M\u20131G.<\/li>\n<li><code data-no-translation=\"\">Max MMAP File Size<\/code> \/ <code data-no-translation=\"\">Total MMAP Cache Size<\/code>: n\u00e2ng t\u01b0\u01a1ng \u1ee9ng \u0111\u1ec3 ch\u1ee9a \u0111\u01b0\u1ee3c nhi\u1ec1u file t\u0129nh h\u01a1n trong b\u1ed9 b\u1ed9 nh\u1edb.<\/li>\n<\/ul><p><strong>External App (lsphp):<\/strong><\/p><ul>\n<li><code data-no-translation=\"\">PHP_LSAPI_CHILDREN<\/code>: s\u1ed1 ti\u1ebfn tr\u00ecnh PHP con x\u1eed l\u00fd song song, c\u00f3 th\u1ec3 \u0111\u1eb7t 150 n\u1ebfu RAM c\u00f2n d\u01b0 nhi\u1ec1u.<\/li>\n<li><code data-no-translation=\"\">PHP_LSAPI_MAX_REQUESTS<\/code>: 10.000.<\/li>\n<\/ul><p>Sau khi ch\u1ec9nh xong, lu\u00f4n nh\u1edb <strong>Graceful Restart<\/strong> \u0111\u1ec3 OLS n\u1ea1p l\u1ea1i c\u1ea5u h\u00ecnh m\u00e0 kh\u00f4ng l\u00e0m gi\u00e1n \u0111o\u1ea1n k\u1ebft n\u1ed1i \u0111ang c\u00f3.<\/p><p><em>\u91cd\u8981\u63d0\u793a\uff1a<\/em> c\u00e1c thi\u1ebft l\u1eadp n\u00e0y ch\u1ec9 ph\u00e1t huy t\u00e1c d\u1ee5ng \u0111\u1ea7y \u0111\u1ee7 <em>sau khi<\/em> \u0111\u00e3 gi\u1ea3m s\u1ed1 l\u01b0\u1ee3ng request v\u00e0 t\u1eaft c\u00e1c ngu\u1ed3n g\u00e2y xung \u0111\u1ed9t (nh\u01b0 Rocket Loader) \u1edf b\u01b0\u1edbc tr\u01b0\u1edbc. Tuning server kh\u00f4ng thay th\u1ebf \u0111\u01b0\u1ee3c vi\u1ec7c t\u1ed1i \u01b0u \u1edf t\u1ea7ng \u1ee9ng d\u1ee5ng.<\/p><h2>7. Chuy\u1ec3n tracking sang server-side v\u1edbi Cloudflare Zaraz: v\u00ec sao v\u00e0 c\u1ea7n l\u01b0u \u00fd g\u00ec<\/h2><p>Song song v\u1edbi t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9, m\u1ed9t h\u01b0\u1edbng \u0111i ph\u1ed5 bi\u1ebfn hi\u1ec7n nay l\u00e0 chuy\u1ec3n c\u00e1c tag tracking (Google Analytics 4, Facebook Pixel, Microsoft Ads UET\u2026) t\u1eeb ch\u1ea1y client-side (nh\u00fang script <code data-no-translation=\"\">gtag.js<\/code>, <code data-no-translation=\"\">fbevents.js<\/code>, <code data-no-translation=\"\">bat.js<\/code> tr\u1ef1c ti\u1ebfp v\u00e0o tr\u00ecnh duy\u1ec7t ng\u01b0\u1eddi d\u00f9ng) sang ch\u1ea1y <strong>server-side<\/strong> qua <strong>Cloudflare Zaraz<\/strong>. B\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o <a href=\"https:\/\/developers.cloudflare.com\/zaraz\/get-started\/\" target=\"_blank\" rel=\"noopener nofollow\">t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn Cloudflare Zaraz ch\u00ednh th\u1ee9c<\/a> \u0111\u1ec3 n\u1eafm r\u00f5 ki\u1ebfn tr\u00fac v\u1eadn h\u00e0nh.<\/p><p><strong>L\u1ee3i \u00edch cho marketer:<\/strong> d\u1eef li\u1ec7u v\u1eabn \u0111\u01b0\u1ee3c ghi nh\u1eadn \u0111\u1ea7y \u0111\u1ee7 v\u1ec1 c\u00e1c n\u1ec1n t\u1ea3ng qu\u1ea3ng c\u00e1o, nh\u01b0ng tr\u00ecnh duy\u1ec7t ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng ph\u1ea3i t\u1ea3i th\u00eam h\u00e0ng lo\u1ea1t script b\u00ean th\u1ee9 ba \u2014 trang nh\u1eb9 h\u01a1n, nhanh h\u01a1n, \u00edt b\u1ecb ch\u1eb7n b\u1edfi ad-blocker h\u01a1n.<\/p><p><strong>\u0110i\u1ec1u dev\/marketer c\u1ea7n bi\u1ebft khi v\u1eadn h\u00e0nh:<\/strong><\/p><ul>\n<li>Sau khi chuy\u1ec3n sang Zaraz, c\u00e1c script client-side truy\u1ec1n th\u1ed1ng (nh\u01b0 <code data-no-translation=\"\">bat.js<\/code> c\u1ee7a Microsoft Ads) s\u1ebd <strong>kh\u00f4ng c\u00f2n xu\u1ea5t hi\u1ec7n<\/strong> trong m\u00e3 ngu\u1ed3n trang, v\u00ec d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c Cloudflare Edge g\u1eedi th\u1eb3ng server-to-server t\u1edbi n\u1ec1n t\u1ea3ng qu\u1ea3ng c\u00e1o.<\/li>\n<li>V\u00ec v\u1eady, c\u00e1c c\u00f4ng c\u1ee5 ki\u1ec3m tra tag ki\u1ec3u c\u0169 \u2014 v\u00ed d\u1ee5 c\u00f4ng c\u1ee5 \u201cTest your UET tag\u201d c\u1ee7a Microsoft Ads \u2014 v\u1ed1n \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 t\u00ecm m\u00e3 JavaScript trong tr\u00ecnh duy\u1ec7t, s\u1ebd b\u00e1o l\u1ed7i d\u1ea1ng <strong>\u201cTag not found\u201d<\/strong> d\u00f9 tracking v\u1eabn ho\u1ea1t \u0111\u1ed9ng b\u00ecnh th\u01b0\u1eddng. \u0110\u00e2y kh\u00f4ng ph\u1ea3i l\u1ed7i, m\u00e0 l\u00e0 h\u1ec7 qu\u1ea3 t\u1ea5t y\u1ebfu c\u1ee7a m\u00f4 h\u00ecnh server-side.<\/li>\n<li>C\u00e1ch x\u00e1c nh\u1eadn tracking v\u1eabn ch\u1ea1y \u0111\u00fang: ki\u1ec3m tra tr\u1ea1ng th\u00e1i tr\u1ef1c ti\u1ebfp tr\u00ean dashboard c\u1ee7a t\u1eebng n\u1ec1n t\u1ea3ng (v\u00ed d\u1ee5 Microsoft Advertising hi\u1ec3n th\u1ecb \u201cTracking Status: Active\u201d), \u0111\u1ed1i chi\u1ebfu v\u1edbi bi\u1ec3u \u0111\u1ed3 ho\u1ea1t \u0111\u1ed9ng (pageview, event) tr\u00ean ch\u00ednh Zaraz Dashboard \u2014 thay v\u00ec d\u1ef1a v\u00e0o c\u00f4ng c\u1ee5 ki\u1ec3m tra client-side \u0111\u00e3 l\u1ed7i th\u1eddi v\u1edbi m\u00f4 h\u00ecnh n\u00e0y.<\/li>\n<\/ul><p><strong>G\u1ee3i \u00fd cho marketer:<\/strong> khi b\u00e1o c\u00e1o hi\u1ec7u qu\u1ea3 tracking cho team ho\u1eb7c agency, n\u00ean n\u00f3i r\u00f5 h\u1ec7 th\u1ed1ng \u0111ang ch\u1ea1y server-side qua Zaraz, \u0111\u1ec3 tr\u00e1nh vi\u1ec7c b\u1ecb nghi ng\u1edd \u201cm\u1ea5t tag\u201d ch\u1ec9 v\u00ec m\u1ed9t c\u00f4ng c\u1ee5 ki\u1ec3m tra kh\u00f4ng t\u01b0\u01a1ng th\u00edch v\u1edbi ki\u1ebfn tr\u00fac m\u1edbi.<\/p><h2>8. Truy t\u00ecm ngu\u1ed3n g\u1ed1c script l\u1ea1 trong tab Network<\/h2><p>M\u1ed9t t\u00ecnh hu\u1ed1ng th\u01b0\u1eddng g\u1eb7p: m\u1edf tab Network v\u00e0 th\u1ea5y c\u00e1c request t\u1edbi domain l\u1ea1, v\u00ed d\u1ee5 d\u1ea1ng <code data-no-translation=\"\">api.example-tracking.ai\/beacon<\/code> ho\u1eb7c <code data-no-translation=\"\">cdn.example-tracking.ai\/core.min.js<\/code>, m\u00e0 kh\u00f4ng r\u00f5 ai ch\u00e8n v\u00e0o.<\/p><p>Quy tr\u00ecnh x\u00e1c minh nhanh, marketer v\u00e0 dev \u0111\u1ec1u c\u00f3 th\u1ec3 t\u1ef1 l\u00e0m:<\/p><ol>\n<li><strong>Ki\u1ec3m tra c\u1ed9t Initiator<\/strong> trong DevTools Network \u2014 c\u1ed9t n\u00e0y cho bi\u1ebft ch\u00ednh x\u00e1c request \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o b\u1edfi file\/ngu\u1ed3n n\u00e0o (m\u1ed9t script tr\u00ean trang, ho\u1eb7c m\u1ed9t extension c\u1ee7a tr\u00ecnh duy\u1ec7t).<\/li>\n<li><strong>M\u1edf trang b\u1eb1ng c\u1eeda s\u1ed5 \u1ea9n danh (Incognito) v\u00e0 t\u1eaft h\u1ebft extension.<\/strong> N\u1ebfu script l\u1ea1 bi\u1ebfn m\u1ea5t, nguy\u00ean nh\u00e2n \u0111\u1ebfn t\u1eeb <strong>extension tr\u00ecnh duy\u1ec7t<\/strong> (th\u01b0\u1eddng l\u00e0 c\u00e1c ti\u1ec7n \u00edch SEO, ki\u1ec3m tra rank, AI tool) ch\u1ee9 kh\u00f4ng ph\u1ea3i t\u1eeb ch\u00ednh website.<\/li>\n<li>N\u1ebfu script v\u1eabn c\u00f2n trong ch\u1ebf \u0111\u1ed9 \u1ea9n danh, ki\u1ec3m tra ti\u1ebfp trong <strong>m\u00e3 ngu\u1ed3n server<\/strong> (view-source) v\u00e0 danh s\u00e1ch <strong>plugin WordPress \u0111ang active<\/strong> \u2014 nhi\u1ec1u plugin t\u1ef1 ch\u00e8n script theo d\u00f5i ri\u00eang c\u1ee7a nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 (nh\u01b0 plugin qu\u1ea3n l\u00fd <code data-no-translation=\"\">LLMs.txt<\/code> t\u00edch h\u1ee3p theo d\u00f5i l\u01b0\u1ee3t gi\u1edbi thi\u1ec7u t\u1eeb AI).<\/li>\n<li>N\u1ebfu x\u00e1c \u0111\u1ecbnh \u0111\u01b0\u1ee3c plugin l\u00e0 ngu\u1ed3n g\u1ed1c, th\u01b0\u1eddng plugin \u0111\u00f3 s\u1ebd c\u00f3 tu\u1ef3 ch\u1ecdn \u201cDisconnect\u201d ho\u1eb7c \u201cRemove tracking script\u201d ngay trong ph\u1ea7n c\u00e0i \u0111\u1eb7t \u2014 d\u00f9ng tu\u1ef3 ch\u1ecdn n\u00e0y thay v\u00ec xo\u00e1 plugin th\u1ee7 c\u00f4ng, \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o g\u1ee1 s\u1ea1ch c\u1ea3 script ph\u00eda server l\u1eabn ph\u00eda tr\u00ecnh duy\u1ec7t. Sau \u0111\u00f3 nh\u1edb <strong>Purge Cache<\/strong> \u0111\u1ec3 thay \u0111\u1ed5i c\u00f3 hi\u1ec7u l\u1ef1c ngay.<\/li>\n<\/ol><p><strong>Ri\u00eang v\u1edbi script c\u1ee7a ch\u00ednh Cloudflare<\/strong> (v\u00ed d\u1ee5 <code data-no-translation=\"\">static.cloudflareinsights.com\/beacon.min.js<\/code>), \u0111\u00e2y l\u00e0 <strong>Cloudflare Web Analytics<\/strong> \u2014 c\u00f4ng c\u1ee5 \u0111o l\u01b0\u1ee3t truy c\u1eadp mi\u1ec5n ph\u00ed, t\u1ef1 \u0111\u1ed9ng ch\u00e8n \u1edf t\u1ea7ng CDN. C\u00f3 th\u1ec3 t\u1eaft t\u1ea1i Cloudflare Dashboard \u2192 Analytics \u2192 Web Analytics \u2192 Settings \u2192 JS Snippet n\u1ebfu kh\u00f4ng c\u1ea7n d\u00f9ng.<\/p><h2>9. V\u1ec1 header Report-To \/ NEL \u2014 kh\u00f4ng ph\u1ea3i \u0111i\u1ec1u \u0111\u00e1ng lo<\/h2><p>N\u1ebfu b\u1ea1n th\u1ea5y m\u1ed9t header d\u1ea1ng:<\/p><pre data-no-translation=\"\"><code data-no-translation=\"\">{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https:\/\/a.nel.cloudflare.com\/report\/v4?s=...\"}]}<\/code><\/pre><p>\u8fd9\u662f <strong>NEL (Network Error Logging)<\/strong> \u2014 m\u1ed9t chu\u1ea9n HTTP header do Cloudflare t\u1ef1 \u0111\u1ed9ng th\u00eam v\u00e0o cho m\u1ecdi website d\u00f9ng Cloudflare proxy. T\u00e1c d\u1ee5ng: n\u1ebfu tr\u00ecnh duy\u1ec7t g\u1eb7p s\u1ef1 c\u1ed1 k\u1ebft n\u1ed1i (r\u1edbt m\u1ea1ng, l\u1ed7i DNS\u2026), n\u00f3 s\u1ebd \u00e2m th\u1ea7m g\u1eedi b\u00e1o c\u00e1o l\u1ed7i v\u1ec1 Cloudflare \u0111\u1ec3 ch\u1ea9n \u0111o\u00e1n h\u1ea1 t\u1ea7ng.<\/p><p>Header n\u00e0y <strong>kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn t\u1ed1c \u0111\u1ed9 t\u1ea3i trang<\/strong> \u2014 ch\u1ec9 l\u00e0 m\u1ed9t d\u00f2ng th\u00f4ng tin trong HTTP header, v\u00e0 tr\u00ecnh duy\u1ec7t ch\u1ec9 g\u1eedi b\u00e1o c\u00e1o khi c\u00f3 s\u1ef1 c\u1ed1. C\u00f3 th\u1ec3 t\u1eaft t\u1ea1i Cloudflare \u2192 Network \u2192 Network Error Logging n\u1ebfu mu\u1ed1n d\u1ecdn g\u1ecdn header, nh\u01b0ng kh\u00f4ng b\u1eaft bu\u1ed9c.<\/p><p><em>L\u01b0u \u00fd ph\u00e2n bi\u1ec7t:<\/em> NEL l\u00e0 d\u1ecbch v\u1ee5 ch\u00ednh ch\u1ee7 Cloudflare, kh\u00e1c ho\u00e0n to\u00e0n v\u1edbi c\u00e1c script tracking b\u00ean th\u1ee9 ba \u2014 Cloudflare kh\u00f4ng bao gi\u1edd t\u1ef1 \u00fd ch\u00e8n script c\u1ee7a nh\u00e0 cung c\u1ea5p kh\u00e1c v\u00e0o website c\u1ee7a b\u1ea1n.<\/p><h2>Checklist t\u1ed5ng k\u1ebft quy tr\u00ecnh t\u1ed1i \u01b0u<\/h2><table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse;width: 100%\">\n<thead>\n<tr>\n<th>\u9700\u8981\u505a\u7684\u4e8b\u60c5<\/th>\n<th>V\u1ecb tr\u00ed thao t\u00e1c<\/th>\n<th>Ph\u00e2n quy\u1ec1n x\u1eed l\u00fd<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Preload font, <code data-no-translation=\"\">font-display: swap<\/code><\/td>\n<td><code data-no-translation=\"\"><head><\/code> trang \/ LiteSpeed Cache \u2192 Preload<\/td>\n<td>Dev, ho\u1eb7c marketer c\u00f3 quy\u1ec1n admin<\/td>\n<\/tr>\n<tr>\n<td>G\u1ed9p CSS\/JS, Lazy load, JS Deferred<\/td>\n<td>LiteSpeed Cache \u2192 Page Optimization<\/td>\n<td>Dev, ho\u1eb7c marketer c\u00f3 quy\u1ec1n admin<\/td>\n<\/tr>\n<tr>\n<td>B\u1eadt HTTP\/3, 0-RTT, Early Hints, Auto Minify<\/td>\n<td>Cloudflare \u2192 Network \/ Speed<\/td>\n<td>Marketer \/ Qu\u1ea3n tr\u1ecb vi\u00ean<\/td>\n<\/tr>\n<tr>\n<td>T\u1eaft Rocket Loader n\u1ebfu \u0111\u00e3 c\u00f3 plugin cache<\/td>\n<td>Cloudflare \u2192 Speed \u2192 Optimization<\/td>\n<td>Marketer \/ Qu\u1ea3n tr\u1ecb vi\u00ean<\/td>\n<\/tr>\n<tr>\n<td>Tuning Max Keep-Alive, Concurrent Streams, Static File Cache<\/td>\n<td>OpenLiteSpeed WebAdmin<\/td>\n<td>Dev \/ Server Admin<\/td>\n<\/tr>\n<tr>\n<td>X\u00e1c minh tracking server-side qua dashboard n\u1ec1n t\u1ea3ng<\/td>\n<td>Zaraz Dashboard + dashboard t\u1eebng n\u1ec1n t\u1ea3ng qu\u1ea3ng c\u00e1o<\/td>\n<td>\u8425\u9500\u4eba\u5458<\/td>\n<\/tr>\n<tr>\n<td>X\u00e1c \u0111\u1ecbnh ngu\u1ed3n g\u1ed1c script l\u1ea1 qua Initiator + Incognito<\/td>\n<td>Chrome DevTools<\/td>\n<td>Marketer, Dev<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p><\/p><p>T\u1ed1i \u01b0u m\u1ed9t website kh\u00f4ng ph\u1ea3i l\u00e0 b\u1eadt m\u1ed9t c\u00f4ng t\u1eafc duy nh\u1ea5t, m\u00e0 l\u00e0 x\u1eed l\u00fd \u0111\u00fang t\u1eebng t\u1ea7ng: <strong>\u1ee9ng d\u1ee5ng (WordPress\/plugin) \u2192 CDN (Cloudflare) \u2192 server (OpenLiteSpeed)<\/strong>. B\u1ecf qua m\u1ed9t t\u1ea7ng, ho\u1eb7c b\u1eadt ch\u1ed3ng ch\u00e9o c\u00e1c t\u00ednh n\u0103ng l\u00e0m c\u00f9ng m\u1ed9t vi\u1ec7c (nh\u01b0 Rocket Loader v\u00e0 JS Combine), th\u01b0\u1eddng g\u00e2y ra hi\u1ec7u \u1ee9ng ng\u01b0\u1ee3c thay v\u00ec c\u1ed9ng h\u01b0\u1edfng.<\/p><p>T\u01b0\u01a1ng t\u1ef1, khi h\u1ec7 th\u1ed1ng tracking chuy\u1ec3n sang m\u00f4 h\u00ecnh server-side, c\u00e1ch ki\u1ec3m tra v\u00e0 b\u00e1o c\u00e1o hi\u1ec7u qu\u1ea3 tracking c\u0169ng c\u1ea7n thay \u0111\u1ed5i theo \u2014 d\u1ef1a v\u00e0o d\u1eef li\u1ec7u th\u1ef1c t\u1ebf tr\u00ean dashboard n\u1ec1n t\u1ea3ng thay v\u00ec c\u00e1c c\u00f4ng c\u1ee5 ki\u1ec3m tra \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho m\u00f4 h\u00ecnh client-side c\u0169.<\/p><p>\u0110\u1ec3 t\u00ecm hi\u1ec3u th\u00eam c\u00e1c gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u t\u1ed5ng th\u1ec3 v\u00e0 d\u1ecbch v\u1ee5 k\u1ef9 thu\u1eadt s\u1ed1 to\u00e0n di\u1ec7n, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o d\u1ecbch v\u1ee5 <a href=\"https:\/\/dps.media\/zh\/\">Digital Marketing to\u00e0n di\u1ec7n<\/a> \u6211\u4eec\u7684 <strong>DPS\u5a92\u4f53<\/strong> \u0111\u1ec3 \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 h\u1ea1 t\u1ea7ng web x\u00e9 gi\u00f3 v\u00e0 chuy\u1ec3n \u0111\u1ed5i cao nh\u1ea5t.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u5168\u9762\u4f18\u5316 WordPress Cloudflare \u4e0e OpenLiteSpeed \u901f\u5ea6\uff0c\u7ed3\u5408\u5c06 GA4\u3001Facebook Pixel \u548c Microsoft Ads \u8ddf\u8e2a\u7cfb\u7edf\u4e8e 2026 \u5e74\u901a\u8fc7 Cloudflare Zaraz \u8f6c\u6362\u4e3a\u670d\u52a1\u5668\u7aef\u3002.<\/p>","protected":false},"author":0,"featured_media":40026,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1635,1656,1204],"tags":[2272],"class_list":["post-40027","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-marketing","category-toi-uu-website","category-wordpress-marketing","tag-openlitespeed"],"acf":[],"rankmath_keywords":{"primary":"t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress cloudflare, t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress openlitespeed, t\u1ed1i \u01b0u wordpress cloudflare zaraz","secondary":["t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress openlitespeed","t\u1ed1i \u01b0u wordpress cloudflare zaraz"]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress cloudflare, t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress openlitespeed, t\u1ed1i \u01b0u wordpress cloudflare zaraz","seo_keywords":{"primary":"t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress cloudflare, t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress openlitespeed, t\u1ed1i \u01b0u wordpress cloudflare zaraz","secondary":["t\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 wordpress openlitespeed","t\u1ed1i \u01b0u wordpress cloudflare zaraz"]},"_links":{"self":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/40027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/comments?post=40027"}],"version-history":[{"count":0,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/40027\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media\/40026"}],"wp:attachment":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media?parent=40027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/categories?post=40027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/tags?post=40027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}