SEO.BANGKOK
// CORE WEB VITALS · 2026-03-22 · อ่าน 12 นาที

เพิ่มประสิทธิภาพ INP บน Hostinger LiteSpeed: คู่มือฉบับปฏิบัติ

INP กลายเป็นตัวแทนของ FID ตั้งแต่เดือนมีนาคม 2024 ลูกค้า SMB ส่วนใหญ่ในกรุงเทพของเราใช้ Hostinger shared LiteSpeed — ราคาย่อมเยา ส่ง HTML ได้เร็ว แต่มีข้อจำกัดที่ไม่ตรงกับคำแนะนำทั่วไปแบบ "ใช้ CDN ก็จบ" นี่คือรายการเทคนิคที่ผ่านการทดสอบภาคสนาม จัดอันดับตามสิ่งที่ส่งผลจริง 21 เทคนิค ถ่วงน้ำหนักตามผลกระทบ

โดย Yunmin Shin · เผยแพร่ 2026-03-22 · อัปเดต 2026-04-15

INP วัดอะไรกันแน่ (และทำไม "การแก้ไข" ส่วนใหญ่ถึงไม่ได้ผล)

Interaction to Next Paint วัดความล่าช้าที่นานที่สุดระหว่าง user input (คลิก, แตะ, กดปุ่ม) กับเฟรมถัดไปที่เบราว์เซอร์ paint ตลอดช่วงอายุของหน้าเว็บทั้งหมด เกณฑ์คือ 200ms สำหรับ "ดี" และ 500ms สำหรับ "ควรปรับปรุง" มันเป็น metric แบบ 75th-percentile ดังนั้น interaction ที่แย่เพียงครั้งเดียวก็ทำให้คะแนนของ URL group ทั้งกลุ่มตกได้

คำแนะนำเรื่อง INP ส่วนใหญ่บนอินเทอร์เน็ตปฏิบัติกับมันเหมือน LCP — CDN ใหญ่ขึ้น, cache มากขึ้น, รูปภาพเล็กลง ไม่มีข้อไหนช่วย INP โดยตรงเลย INP คือ metric ของ main thread ฝั่ง JavaScript ทางแก้คือ: JS น้อยลง, JS ที่ฉลาดขึ้น และการโยนงานที่ไม่จำเป็นต้อง block การ paint ออกไป การ cache HTML (ซึ่ง LiteSpeed ทำอย่างจริงจัง) ไม่ได้เปลี่ยนงานบน main thread เลย ถ้าจะมีผลก็คือทำให้ interaction ที่หนัก JS แสดงผลเร็วขึ้นเท่านั้น

เราดึงข้อมูลวัด INP 3,400 รายการจาก RUM data ที่สอดคล้องกับ CrUX ข้าม 22 เว็บไซต์ลูกค้าที่ host บน Hostinger ใน Q1 2026 ค่ามัธยฐาน INP ก่อนที่เราจะ optimize: 340ms หลังจาก optimize: 148ms 21 เทคนิคด้านล่างเรียงตามผลกระทบทั่วไปที่พบใน dataset นี้

21 เทคนิค เรียงตามลำดับ

1. เลื่อนเวลาหรือลบ third-party script ออก (ผลกระทบ: สูง · ความยาก: ต่ำ)

ชัยชนะที่ใหญ่ที่สุดสำหรับ INP บนเว็บไซต์ Hostinger คือการกำจัด tag soup ของ third-party ทั้งหมด Google Tag Manager, Hotjar, Intercom, Facebook Pixel, chat widget หลายตัว — แต่ละตัวส่ง JS ที่รันตอน user interaction เราตัด INP ได้ 120-180ms เป็นประจำแค่จากการตรวจสอบ tag stack ใช้ async + defer อย่างเข้มข้น และโหลดเครื่องมือที่ต้อง consent เฉพาะหลังจาก interaction เท่านั้น

<!-- Bad -->
<script src="https://www.googletagmanager.com/gtm.js?id=GTM-XXXX"></script>

<!-- Better: load on first user interaction -->
<script>
addEventListener('click', () => {
  if (!window.__gtmLoaded) {
    window.__gtmLoaded = true;
    const s = document.createElement('script');
    s.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-XXXX';
    document.head.appendChild(s);
  }
}, { once: true, passive: true });
</script>

2. เปิดใช้ "Combine CSS/JS" ของ LiteSpeed Cache อย่างระมัดระวัง (สูง · ต่ำ)

ปลั๊กอิน LiteSpeed ของ Hostinger รวมและ minify JS ได้ แต่โหมด Combine ที่ทำงานหนักมักทำให้ WordPress theme พังได้ ใช้ Minify + Defer แทน และข้าม Combine ไปเลยถ้ายังไม่ได้ QA ผลลัพธ์บนทุก template

3. เปลี่ยน page builder ของ WordPress ที่หนักเกินไป (สูง · สูง)

Elementor และ Divi ส่ง JS อย่างน้อย >200KB ก่อนจะนับ widget ใด ๆ ด้วยซ้ำ เรา migrate เว็บไซต์ลูกค้า 6 แห่งจาก Elementor ไปเป็น theme ที่เขียนโค้ดเอง INP ลดลงเฉลี่ย 180ms ขายไอเดียนี้ให้ลูกค้าที่รัก builder ของตัวเองยากมาก แต่ข้อมูลชัดเจนไม่มีข้อโต้แย้ง

4. ใช้ requestIdleCallback สำหรับงานที่ไม่สำคัญเร่งด่วน (สูง · กลาง)

อะไรก็ตามที่ไม่จำเป็นต้องเกิดขึ้นระหว่าง interaction frame — analytics, hover prefetch, lazy-load trigger — ควรรันในช่วงเวลาว่าง (idle time):

requestIdleCallback(() => {
  // analytics, prefetch, late hydration
}, { timeout: 2000 });

5. แบ่ง task ที่ยาวด้วย scheduler.yield() (สูง · กลาง)

Chromium รุ่นใหม่รองรับ scheduler.yield() ซึ่งคืน main thread ได้อย่างสะอาดระหว่าง task สำหรับ handler ใดก็ตามที่ใช้เวลา >50ms ให้แทรก yield เข้าไป:

async function processItems(items) {
  for (let i = 0; i < items.length; i++) {
    process(items[i]);
    if (i % 50 === 0 && 'scheduler' in window && 'yield' in scheduler) {
      await scheduler.yield();
    }
  }
}

6. ตรวจสอบ click handler ที่ทำให้ DOM thrash แบบ synchronous (สูง · กลาง)

เว็บไซต์ยุค jQuery ยังมี handler ที่อ่าน layout, เขียน style, อ่าน layout ซ้ำ — บังคับให้เกิด reflow loop ใช้ Chrome DevTools Performance panel ตรวจสอบ handler ใดก็ตามที่มีคำเตือน "Forced reflow" ขอบสีแดง คือพิษต่อ INP

7. แทนที่ alert()/confirm() ใน handler (กลาง · ต่ำ)

Dialog แบบ native block main thread แบบ synchronous แทนที่ด้วย modal ที่สร้างเองด้วย element <dialog>

8. ใช้ CSS content-visibility: auto บนหน้าเว็บที่ยาว (กลาง · ต่ำ)

สำหรับหน้าที่มีหลาย section อยู่นอกจอ วิธีนี้ข้ามงาน layout จนกว่า section นั้นจะใกล้ viewport เราเคยเห็น INP ดีขึ้น 40-60ms บนบทความบล็อกยาว ๆ และหน้ารายการสินค้า

9. Lazy-hydrate island ของ React/Vue (กลาง · สูง)

ถ้าคุณใช้ Astro หรือ islands framework ที่คล้ายกัน ใช้ client:visible หรือ client:idle แทน client:load สำหรับ widget ที่อยู่ใต้ fold ส่วนใหญ่แล้ว section ที่ "interactive" ไม่จำเป็นต้อง hydrate ก่อนที่ผู้ใช้จะ scroll ไปถึง

10. ย้าย event listener ไปใช้ delegation (กลาง · ต่ำ)

การแนบ click listener 200 ตัวเข้ากับ list item 200 ชิ้น ช้ากว่าการใช้ delegated listener ตัวเดียวบน parent listener แบบ delegate ตัวเดียว: attach ใช้เวลา ~3ms ส่วน 200 listener: attach ใช้ ~80ms บวกกับ overhead ของ event-loop ต่อรายการ

11. หลีกเลี่ยง document.write() ให้หมด (กลาง · ต่ำ)

ใช่ ในปี 2026 เรายังเจอมันบนเว็บไซต์เก่าอยู่ มัน block parser และทำให้ INP พังตั้งแต่ interaction แรก

12. ใช้ passive: true บน touch และ wheel listener (กลาง · ต่ำ)

ถ้าไม่ใส่ เบราว์เซอร์จะเริ่ม scroll ไม่ได้จนกว่า handler ของคุณจะ return { passive: true } บอกเบราว์เซอร์ว่า handler จะไม่เรียก preventDefault ปลดปล่อย compositor ให้ทำงานได้เลย

addEventListener('touchstart', handler, { passive: true });
addEventListener('wheel', handler, { passive: true });

13. บีบอัดและ code-split JS bundle ที่สำคัญ (กลาง · กลาง)

ถ้าคุณควบคุม bundler ได้ ตั้งเพดาน chunk size ไว้ที่ 50KB แบบ minified-gzipped LiteSpeed serve brotli ได้ดี ควรใช้ประโยชน์จากจุดนี้

14. แทนที่ carousel ที่หนักเกินไป (กลาง · กลาง)

Slick, Owl Carousel และ Swiper-แบบโหลดทุกอย่าง แต่ละตัวมี overhead ของ interaction 30-80ms ใช้ Swiper เฉพาะ module ที่จำเป็น หรือใช้ CSS scroll-snap สำหรับกรณีง่าย ๆ

15. ตั้งค่า LiteSpeed object cache ให้ถูกต้อง (กลาง · ต่ำ)

บนแพ็กเกจ Hostinger Business และ Cloud เปิดใช้ Memcached หรือ Redis สำหรับ WordPress object cache ช่วยลดเวลา execution ของ PHP ซึ่งช่วย INP ทางอ้อม เพราะ back-end ที่ช้ามักทำให้ handler ต้องรอ AJAX

16. หลีกเลี่ยงการอ่าน localStorage แบบ synchronous ใน handler (ต่ำ · ต่ำ)

การเข้าถึง localStorage แต่ละครั้งเป็นแบบ synchronous และอาจใช้เวลา 1-5ms บน cold cache ใน handler ที่ยิงถึง 10 ครั้งระหว่างการพิมพ์ ตัวเลขนี้สะสมได้ ใช้ IndexedDB พร้อม memory cache สำหรับข้อมูลที่ใช้บ่อย

17. Self-host font พร้อม font-display: swap (ต่ำ · ต่ำ)

ส่วนใหญ่ช่วย LCP แต่การโหลด font ที่ถูก block อาจทำให้ main thread หยุดชะงักตอน first paint ซึ่งทำให้ interaction แรก ๆ รู้สึกกระตุก

18. Preconnect ไปยัง origin ของ third-party ที่รู้จัก (ต่ำ · ต่ำ)

<link rel="preconnect" href="https://www.googletagmanager.com">
<link rel="preconnect" href="https://fonts.googleapis.com">

19. ลดสงคราม specificity ของ CSS (ต่ำ · กลาง)

Selector ที่ซ้อนลึกทำให้ style recalc ช้าลงตอน interaction เราเคยเห็นผลดีขึ้น 15-30ms จากการปรับ CSS ของ WordPress theme ที่มี selector ระดับ body.page .container .main .post .entry-content p ให้แบนราบขึ้น

20. ปิด WP-Cron สำหรับเว็บไซต์ที่มี traffic สูง (ต่ำ · ต่ำ)

โดยค่าเริ่มต้น WP-Cron รันในทุก request หน้าบ้าน บนเว็บไซต์ที่มี traffic สูง นั่นหมายความว่า cron task จะยิงระหว่างที่ผู้ใช้กำลัง interact ปิดมันใน wp-config.php:

define('DISABLE_WP_CRON', true);

แล้วตั้ง cron จริงผ่าน cPanel ของ Hostinger: */5 * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron

21. ตรวจสอบ admin bar (ต่ำ · ต่ำ)

สำหรับผู้ใช้ที่ login อยู่ WordPress จะ inject admin bar ที่หนักเข้าไป เราเห็นเจ้าของเว็บไซต์พลาดตรงนี้บ่อย — พวกเขาทดสอบเว็บตัวเองตอน login เห็น INP แย่แล้วตกใจ admin bar เพิ่ม overhead ของ interaction 30-60ms ทดสอบในสถานะผู้เยี่ยมชมที่ไม่ได้ login แทน

ลำดับที่เรานำเทคนิคเหล่านี้ไปใช้จริงในงานโปรดักชัน

สำหรับงานลูกค้าทั่วไป เราจัดลำดับงานแบบนี้:

  1. สัปดาห์ที่ 1: เทคนิค 1, 2, 7, 11, 12, 18, 21 — ทั้งหมดเป็นแบบ "ผลกระทบสูง ความยากต่ำ" หรือการ cleanup ล้วน ๆ
  2. สัปดาห์ที่ 2: เทคนิค 4, 5, 6, 8, 10 — การผ่าตัด main thread
  3. สัปดาห์ที่ 3-4: เทคนิค 3, 9, 13, 14 — การ refactor ขนาดใหญ่กว่า ขึ้นอยู่กับความพร้อมของลูกค้า
  4. ต่อเนื่อง: เทคนิค 15-20 เป็นการ cleanup ตามหลัง

เมื่อจบสัปดาห์ที่ 2 เรามักเห็นค่ามัธยฐาน INP อยู่ที่ 180-220ms ทั่วทั้งเว็บไซต์ งานในสัปดาห์ที่ 3-4 จะดึง 75th percentile ให้ต่ำกว่า 200ms ได้อย่างสม่ำเสมอ — ซึ่งเป็นค่าที่ CrUX วัดและ Search Console รายงาน

การตั้งค่าเฉพาะของ Hostinger ที่เราเปลี่ยนทุกครั้ง

ค่าเริ่มต้นของ Hostinger LiteSpeed ใช้ได้แต่ค่อนข้าง conservative เราจะ override ค่าเหล่านี้เสมอ:

การตั้งค่าค่าเริ่มต้นค่าที่เราใช้เหตุผล
Cache TTL (public)1 วัน7 วันHTML ไม่ได้เปลี่ยนบ่อยขนาดนั้น
Combine CSSเปิดปิดทำให้ theme พังหลายตัวเกินไป
Combine JSเปิดปิดทำให้ event timing พัง
Lazy-load รูปภาพเปิดเปิด (native attribute)ใช้ loading="lazy" แทน JS shim
HTTP/3 QUICปิดเปิดได้ latency ที่ดีขึ้นบนมือถือฟรี ๆ
Brotli compressionเปิดเปิดถูกต้องอยู่แล้ว
Object cacheไม่มีMemcachedลดเวลา query DB บน PHP
"INP คือ metric ที่ shared hosting ยังใช้ได้ผลอยู่ คุณไม่จำเป็นต้องมี VPS ราคา $400/เดือน — คุณแค่ต้องส่ง JavaScript น้อยลงและรันมันอย่างฉลาดขึ้น"

การวัด INP อย่างถูกต้อง

field data สำคัญกว่า lab data เสมอ "Origin Summary" ของ PageSpeed Insights ดึงข้อมูลจาก CrUX (ผู้ใช้ Chrome จริง) และนี่คือสิ่งที่ Google ใช้จริง คะแนน "Performance" แบบ lab ทำให้เข้าใจผิดสำหรับ INP เพราะเครื่องมือ lab จำลอง interaction แค่ครั้งเดียว ในขณะที่ผู้ใช้จริงทำหลายสิบครั้ง เราติดตั้ง snippet web-vitals.js เล็ก ๆ บนทุกเว็บไซต์ลูกค้าเพื่อส่งค่า INP, LCP และ CLS ไปยัง Cloudflare Worker และเราตรวจสอบไขว้กับ CrUX ทุกสัปดาห์

<script type="module">
import {onINP} from 'https://unpkg.com/web-vitals@4?module';
onINP(({value, rating, attribution}) => {
  navigator.sendBeacon('/inp-log', JSON.stringify({
    value, rating, target: attribution.interactionTarget, type: attribution.interactionType
  }));
});
</script>

นี่คือชุด instrumentation เดียวกับที่เราป้อนเข้าscraper ที่รัน 10,000 คำค้นหาทุกคืนสำหรับ benchmark ลูกค้า field interactionTarget บอกคุณว่า element ไหนคือตัวการ — มีค่ามากเมื่อ INP เกิด regression และคุณต้องหาต้นตอให้เร็ว

สิ่งที่เราไม่แนะนำ

อ่านเพิ่มเติม

INP เป็นหนึ่งใน technical SEO surface ที่เราวัดในทุกการตรวจสอบ ส่วนอื่น ๆ — คุณภาพของ schema graph, pattern การ crawl จาก server log, สิทธิ์การถูกอ้างอิงจาก AI และการควบคุมคุณภาพ programmatic — เติมเต็มด้านวิศวกรรมให้ครบ สำหรับ SMB ในกรุงเทพที่ใช้ Hostinger โดยเฉพาะ บริการ technical SEO ของเรารวม CWV optimization เข้ากับงาน schema และ content ที่ผลักดันอันดับ ทีมในบริษัทของเราจัดการงาน refactor ทางวิศวกรรมที่ลึกกว่านั้นเมื่อลูกค้าต้องการเลิกใช้ page builder, งานด้าน editorial และการทดสอบ CRO เมื่องานด้านความเร็วเสร็จแล้ว — ทั้งหมดอยู่ภายใต้หลังคาเดียวกัน

แท็ก: cwv inp litespeed hostinger performance javascript
// คำถามที่พบบ่อย

คำถามที่พบบ่อย

คะแนน INP ที่ดีคือเท่าไหร่ และทำไม interaction แย่แค่ครั้งเดียวถึงทำร้ายทั้งหน้าได้?

+

Interaction to Next Paint วัดความล่าช้าที่นานที่สุดระหว่าง user input (คลิก, แตะ, กดปุ่ม) กับเฟรมถัดไปที่เบราว์เซอร์ paint ตลอดช่วงอายุของหน้าเว็บทั้งหมด เกณฑ์คือ 200ms สำหรับ "ดี" และ 500ms สำหรับ "ควรปรับปรุง" มันเป็น metric แบบ 75th-percentile ดังนั้น interaction ที่แย่เพียงครั้งเดียวก็ทำให้คะแนนของ URL group ทั้งกลุ่มตกได้

การเปลี่ยนแปลงจุดเดียวที่ช่วย INP มากที่สุดบนเว็บไซต์ Hostinger คืออะไร?

+

ชัยชนะที่ใหญ่ที่สุดสำหรับ INP บนเว็บไซต์ Hostinger คือการกำจัด tag soup ของ third-party ทั้งหมด Google Tag Manager, Hotjar, Intercom, Facebook Pixel, chat widget หลายตัว — แต่ละตัวส่ง JS ที่รันตอน user interaction เราตัด INP ได้ 120-180ms เป็นประจำแค่จากการตรวจสอบ tag stack ใช้ async + defer อย่างเข้มข้น และโหลดเครื่องมือที่ต้อง consent เฉพาะหลังจาก interaction เท่านั้น

ควรนำเทคนิค INP เหล่านี้ไปใช้ในโปรดักชันตามลำดับไหน?

+

สำหรับงานลูกค้าทั่วไป เราจัดลำดับงานตลอดประมาณสี่สัปดาห์: สัปดาห์ที่ 1 ครอบคลุมการ cleanup ที่ผลกระทบสูงความยากต่ำ (เลื่อนเวลา third-party script, LiteSpeed minify/defer, แทนที่ native dialog, ลบ document.write, passive listener, preconnect และตรวจ admin bar); สัปดาห์ที่ 2 คือการผ่าตัด main thread (requestIdleCallback, scheduler.yield, ตรวจ reflow, content-visibility, event delegation); สัปดาห์ที่ 3-4 คือการ refactor ที่ใหญ่กว่า ขึ้นอยู่กับความพร้อมของลูกค้า (เปลี่ยน page builder และ carousel ที่หนัก, lazy-hydrate island, code-splitting); ส่วนการ cleanup การตั้งค่าที่เหลือจะรันแบบต่อเนื่อง

การตั้งค่า Hostinger LiteSpeed ไหนที่คุณ override เสมอเพื่อ INP ที่ดีขึ้น?

+

ค่าเริ่มต้นของ Hostinger LiteSpeed ใช้ได้แต่ค่อนข้าง conservative เรา override หลายจุดเสมอ: เพิ่ม public cache TTL จาก 1 วันเป็น 7 วัน, ปิด Combine CSS และ Combine JS (เพราะทำให้ theme และ event timing พังหลายตัวเกินไป), ใช้ loading="lazy" แบบ native แทน JS lazy-load shim, เปิด HTTP/3 QUIC, เปิด Brotli ไว้ และเปลี่ยน object cache จาก none เป็น Memcached

คะแนน lab ของ PageSpeed พอสำหรับวัด INP ไหม หรือต้องใช้ field data?

+

field data สำคัญกว่า lab data เสมอ "Origin Summary" ของ PageSpeed Insights ดึงข้อมูลจาก CrUX (ผู้ใช้ Chrome จริง) และนี่คือสิ่งที่ Google ใช้จริง คะแนน "Performance" แบบ lab ทำให้เข้าใจผิดสำหรับ INP เพราะเครื่องมือ lab จำลอง interaction แค่ครั้งเดียว ในขณะที่ผู้ใช้จริงทำหลายสิบครั้ง เราติดตั้ง snippet web-vitals.js เล็ก ๆ บนทุกเว็บไซต์ลูกค้าเพื่อส่งค่า INP, LCP และ CLS ไปยัง Cloudflare Worker และตรวจสอบไขว้กับ CrUX ทุกสัปดาห์

// บทความที่เกี่ยวข้อง
// SCHEMA · 2026-04-10

Schema.org @graph สำหรับเครือข่าย Authority หลายโดเมน

ระบบ 3 กฎสำหรับเชื่อม entity Organization ข้ามเว็บไซต์พี่น้อง พร้อม JSON-LD ที่ก็อปวางใช้ได้ทันที

// วิเคราะห์ LOG · 2026-02-18

สืบสวน Log File: 7 Pattern ที่เราเจอในทุกการตรวจสอบ

snippet ตรวจจับด้วย awk และ Python สำหรับ crawl waste และ parameter loop

// AEO · 2026-01-25

อะไรทำให้ AI Assistant เลือกอ้างอิงแบรนด์คุณ แทนคู่แข่ง

4,200 prompt. AI engine หลัก 4 ตัว pattern ที่วัดผลได้ของสิทธิ์การถูกอ้างอิง

// PROGRAMMATIC · 2025-12-08

ขยาย Programmatic SEO ให้ครอบคลุมกว่า 47,000 หน้า

ระบบ quality-gate สำหรับ deploy ระบบ programmatic ขนาด 1,000-50,000 หน้าอย่างปลอดภัย

ตรวจสอบ INP ฟรี บนเว็บไซต์ที่ใช้งานจริงของคุณ

เราจะติดตั้ง instrumentation บน 5 หน้ายอดนิยมของคุณ ระบุ interaction ที่ช้าที่สุด และบอกว่าเทคนิคไหนใน 21 ข้อจะช่วยให้ INP ของคุณต่ำกว่า 200ms ไม่มีการ pitch ขาย

ติดต่อเรา →

© 2026 · ดำเนินการโดย Yunmin Co., Ltd. · จดทะเบียนบริษัทไทย (อยู่ระหว่างดำเนินการ) · 3rd Floor, 272 Than Thip 3 Alley, Phlabphla, Wang Thonglang, Bangkok 10310

ความเป็นส่วนตัว · ข้อกำหนด ·