POST-MIGRATION & SYSTEM LAUNCH TRAFFIC RECOVERY

การวินิจฉัยปัญหา: กู้ทราฟฟิกหลังจากเปลี่ยนแปลงระบบ / ไมเกรชัน (Post-Migration Traffic Recovery)

กรอบฟื้นฟูและป้องกันความเสียหายระดับองค์กรเมื่อ Re-platforming หรือ Redesign เว็บไซต์ ผสานหลักการวิเคราะห์เชิงลึก (Decision Logic) คู่กับเช็กลิสต์ปฏิบัติการ 24 จุด

ความคืบหน้าการตรวจสอบ:
0/24
การควบคุมส่วนพับย่อ (Accordions):

สรุปผู้บริหาร: 5 หายนะระดับโครงสร้างที่พบบ่อยที่สุดเมื่อย้ายระบบ (Top 5 Macro Migration Disasters)

จุดเสี่ยงสูงสุดที่ทำลายทราฟฟิกและรายได้องค์กร 50% - 80% ในชั่วข้ามคืน หากไม่มีการตรวจสอบก่อน-หลัง Launch

DISASTER 01 Catastrophic Loss

301 Redirect Mapping ล้มเหลว (Link Equity สลาย)

เมื่อย้าย CMS หรือปรับ URL Structure เก่าที่มี Backlink และประวัติอันดับมาหลายปีกลับหลุดเป็น 404 หรือทำ Redirect Loop ส่งผลให้คะแนนความน่าเชื่อถือที่สะสมมาทั้งหมดสูญสิ้นทันที

วิธีคิดเชิงโครงสร้าง:
ทำ URL Mapping 1-to-1 ล่วงหน้าก่อนวัน Launch และทดสอบแบบ Single Hop (ห้ามมี Chain) ส่งสถานะ 301 สู่ปลายทางที่ตรงเจตนาค้นหาเดิมที่สุด
DISASTER 02 De-indexation Trap

Environment Leaks & Noindex ค้างจาก Staging

ทีม Dev ลืมปลดคำสั่ง noindex หรือลืมปลดบล็อกใน robots.txt เมื่อขึ้น Production ทำให้ Google ทยอยลบเว็บออกจากดัชนีทั้งโดเมน หรือปล่อยให้โดเมน Dev หลุดเข้า Index แย่งคะแนนเว็บจริง

วิธีคิดเชิงโครงสร้าง:
ตรวจเช็ค Header HTTP X-Robots-Tag และ HTML Robots ทันทีในวินาทีแรกที่ย้าย DNS พร้อมใส่รหัสผ่านล็อก Staging ห้ามบอทเข้าเด็ดขาด
DISASTER 03 Rendering Failure

Client-Side Rendering ล้มเหลว (หน้าว่างเปล่าในสายตาบอท)

การเปลี่ยนผ่านสู่ Headless CMS / Frontend สมัยใหม่ (Next.js, Nuxt, React) หากตั้งค่า SSR หรือ SSG ผิดพลาด บอทจะมองเห็นเฉพาะโครง HTML เปล่าที่ไม่มีเนื้อหา ไม่มีข้อความ และไม่มี Internal Links

วิธีคิดเชิงโครงสร้าง:
ตรวจสอบผ่าน Google Search Console "URL Inspection -> View Tested Page -> HTML" เพื่อยืนยันว่าบอทเห็นข้อความครบถ้วนโดยไม่ต้องพึ่ง Client JavaScript Execution
DISASTER 04 Data Blindness

ระบบวัดผลและการเก็บข้อมูลขาดหาย (Attribution Blackout)

โค้ด GTM, GA4 หรือ DataLayer หลุดหาย หรือปุ่มคอนเวอร์ชัน (CTA, Form, LINE, Phone) ผูก Event ผิดพลาด ทำให้ธุรกิจสูญเสียข้อมูลสำคัญในการประเมินประสิทธิภาพหลังขึ้นระบบใหม่

วิธีคิดเชิงโครงสร้าง:
ทดสอบ Realtime Stream ของ GA4 และยิง Test Submission บนสภาพแวดล้อม Production จริงทุกจุดก่อนประกาศความสำเร็จของโปรเจกต์
DISASTER 05 Dual-Builder Asset Bloat

การย้าย Page Builder แบบ Hybrid (เช่น SiteOrigin สู่ Elementor) แล้วเกิด Asset Bloat

เมื่อเปิดใช้ 2 Page Builder คู่กันในเว็บเดียวกัน หน้าเว็บจะโหลดไฟล์ CSS/JS ของทั้งสองระบบพร้อมกัน ทำให้ Core Web Vitals (LCP, INP) ตกอย่างรุนแรง นอกจากนี้การแปลงหน้าอาจทำให้โครงสร้าง <h1>, <h2> หลุดหาย จนกระทบต่ออันดับบน Google

วิธีคิดเชิงโครงสร้าง:
จัดลำดับความสำคัญ (Priority Matrix): เริ่มย้ายจากหน้ารองก่อนเสมอ ห้ามแตะหน้าทำเงิน (Money Page) ในเว็บจริง ให้ทำแบบ Clone/Draft จนเสร็จสมบูรณ์ และเมื่อย้ายครบทุกหน้าแล้ว ต้องลบปลั๊กอิน Builder เก่าออกทั้งหมดทันที
CATEGORY 1

การป้องกันการหลุดดัชนี & Meta Tags (CHK-01 ถึง CHK-06)

CHK-01 Critical Risk

Robots Meta Tag & X-Robots-Tag (ห้ามมี noindex หลุดค้างจาก Staging)

ตรวจสอบทั้งในระดับ HTML Document และ HTTP Response Header ว่าไม่มีคำสั่งห้ามบอทเข้าเก็บ

หลักการวิเคราะห์ (Why & Decision Logic)

ระหว่างการพัฒนาบน Staging ทีม Dev มักตั้งค่า noindex, nofollow เพื่อป้องกัน Google เข้าเก็บข้อมูลก่อนเปิดตัว หากขั้นตอน Deploy ขึ้น Production ลืมปลดออก Googlebot จะเริ่มลบ URL ออกจาก Index ภายใน 24-72 ชั่วโมง และหากเป็น HTTP Header X-Robots-Tag จะมองไม่เห็นผ่าน View Source ปกติ

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบ HTML tag: <meta name="robots" content="index, follow">
  • ตรวจสอบ HTTP Response Header: ไม่มี X-Robots-Tag: noindex แฝงมากับ Nginx/Cloudflare
  • ตรวจทั้งหน้าแรก, หน้ารวมบทความ/สินค้า และหน้า Landing Page สำคัญ
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบบางโปรเจกต์ทีม Dev แก้ไขแท็กใน HTML เรียบร้อยแล้ว แต่ที่ Cloudflare Worker หรือ WAF มีการเซ็ต Header Rule ทับไว้ ทำให้ทุก Request ที่ยิงเข้าเว็บยังคงพ่น X-Robots-Tag: noindex ออกมาโดยไม่รู้ตัว ส่งผลให้อันดับหลุดหมดทั้งเว็บภายใน 3 วันหลัง Launch

คำสั่งตรวจเช็คสดผ่าน Terminal (CLI Smoke Test)
cURL Header Check
curl -sI https://example.com/ | grep -E -i "(HTTP/|x-robots-tag|robots)"
เกณฑ์ผ่านการประเมิน (QC Pass Criteria): ทุกหน้าสาธารณะตอบกลับสถานะ HTTP 200 OK และส่งเฉพาะคำสั่ง index, follow เท่านั้น
100% Indexable
CHK-02 Critical Risk

Canonical URL ถูกต้อง 100% (ห้ามหลุด Staging/Localhost)

Canonical Tag ต้องเป็น Absolute URL บนโดเมน Production ป้องกันการโอนพลังกลับไปยังเซิร์ฟเวอร์พัฒนา

หลักการวิเคราะห์ (Why & Decision Logic)

Canonical Tag เป็นตัวกำหนด Master URL ให้ Google ทราบว่าควร index หน้าใด หากในกระบวนการ Build หรือ Environment Variable มีการดึงค่า Host ผิดพลาด เช่น อ้างอิง http://localhost:3000 หรือ staging.domain.com Googlebot จะเพิกเฉยต่อหน้าจริงและไม่แสดงในผลการค้นหา

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ต้องเป็น Absolute URL เสมอ เช่น https://example.com/category/product
  • ต้องตรงกับ Protocol ปัจจุบัน (ห้ามมี http ผสมปนเปในเว็บ https)
  • หน้าเดี่ยวต้องทำ Self-referencing Canonical ไปยังตัวเองเสมอ
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เว็บไซต์ Headless E-Commerce ย้ายจาก Magento ไป Shopify/Next.js เกิดข้อผิดพลาดใน process.env.NEXT_PUBLIC_SITE_URL ค่าว่างเปล่า ทำให้แท็กออกมาเป็น <link rel="canonical" href="undefined/slug"> ส่งผลให้ Google มองว่าโครงสร้างลิงก์พังทั้ง 10,000 URLs

คำสั่งตรวจเช็คสดผ่าน Terminal
cURL Canonical Grep
curl -s https://example.com/services/seo | grep -i "rel=\"canonical\""
เกณฑ์ผ่านการประเมิน: ไม่มีโดเมน Staging, ไม่มี localhost, ไม่มี protocol mismatch ใน Canonical
100% Production URL
CHK-03 High Priority

Unique Title & Meta Description สอดคล้อง Search Intent

ตรวจสอบความถูกต้องของ Title Tag ไม่ให้เกิดบั๊กซ้ำซ้อน หรือข้อความ Template ค้าง

หลักการวิเคราะห์ (Why & Decision Logic)

Title และ Description เป็นประตูบานแรกที่ตัดสินใจอัตราการคลิก (CTR) หากระบบใหม่มีบั๊กต่อชื่อแบรนด์เบิ้ล (เช่น "หน้าแรก - ชื่อแบรนด์ - ชื่อแบรนด์") หรือดึงค่าว่างเปล่า (Empty Meta) จะทำให้ Google นำข้อความจากเนื้อหามั่วๆ มาแสดงแทน ส่งผลให้ CTR ดิ่งลงทันที

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ความยาว Title อยู่ระหว่าง 50-65 ตัวอักษร (ไม่เกิน 580px บนหน้าจอ SERP)
  • Meta Description มี Call to Action ความยาว 140-160 ตัวอักษร
  • ไม่มีข้อความดีฟอลต์ของระบบ เช่น "Just another WordPress site" หรือ "Page Title"
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

ในการย้ายระบบ WordPress มักเกิดปัญหาปลั๊กอิน SEO สองตัวทำงานซ้อนกัน (เช่น Yoast + Rank Math หรือ ธีมมีระบบ SEO ในตัว) ส่งผลให้แท็ก <title> ถูกพ่นออกมา 2 ครั้งในโค้ดเดียวกัน ทำให้บอทสับสน

คำสั่งตรวจเช็คสดผ่าน Terminal
cURL Title Extraction
curl -s https://example.com/ | grep -o -E "<title>([^<]+)</title>"
เกณฑ์ผ่านการประเมิน: ทุกหน้าหลักมี Title/Description ที่มีเอกลักษณ์ ไม่ซ้ำ และไม่มีการพ่นแท็กซ้ำซ้อน
Zero Duplicate Tags
CHK-04 High Priority

Open Graph & Social Cards (Dynamic og:image ตรงสินค้า/บริการ)

ตรวจสอบภาพและข้อมูลเมื่อแชร์ลง Social Media (LINE, Facebook) ต้องตรงกับเนื้อหาหน้านั้นๆ

หลักการวิเคราะห์ (Why & Decision Logic)

Social Referral Traffic มีบทบาทสูงในการกระตุ้น Brand Signals หากภาพพรีวิวเป็นรูปสีเทา รูปไม่ขึ้น หรือเป็นรูปโลโก้ภาพเดียวทั้งเว็บ ผู้ใช้งานที่ได้รับแชร์ผ่านแชทหรือโซเชียลมีเดียจะมองข้ามและไม่กดเข้ามาดูเนื้อหา

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบ og:image ขนาดมาตรฐาน 1200 x 630 px
  • URL ของภาพต้องเป็น Absolute URL และสามารถเข้าถึงได้ผ่าน HTTPS โดยไม่มีรหัสผ่าน
  • ใส่ twitter:card แบบ summary_large_image
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เว็บที่ย้ายไปใช้ Next.js Image Optimization มักเผลอใช้ Relative Path เช่น /images/og.jpg บราวเซอร์แสดงผลได้ แต่ Facebook Crawler และ LINE Scraper จะปฏิเสธทันทีเพราะต้องการ URL เต็มที่มี Domain

คำสั่งตรวจเช็คสดผ่าน Terminal
cURL OpenGraph Filter
curl -s https://example.com/ | grep -E -i "property=\"og:|name=\"twitter:"
เกณฑ์ผ่านการประเมิน: ทดสอบผ่าน Facebook Sharing Debugger ได้ภาพพรีวิวสมบูรณ์โดยไม่มี Error
Social Preview Valid
CHK-05 Critical Risk

ไฟล์ robots.txt ปลดบล็อกและประกาศ Sitemap Index

ตรวจเช็คคำสั่ง Disallow และชี้เป้า Sitemap Index ให้ Search Engine ทราบอย่างเป็นทางการ

หลักการวิเคราะห์ (Why & Decision Logic)

robots.txt คือเอกสารฉบับแรกที่บอทจะร้องขอเมื่อเข้าสู่เว็บไซต์ หากมีคำสั่ง Disallow: / บอทจะไม่พยายามเดินเก็บหน้าใดๆ เลย ทำให้กระบวนการ Index หยุดชะงัก 100%

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบว่า User-agent: * อนุญาตให้เข้าถึงหน้าสาธารณะได้
  • บล็อกเฉพาะโฟลเดอร์ระบบ เช่น /wp-admin/ หรือ /api/
  • มีบรรทัด Sitemap: https://domain.com/sitemap_index.xml ต่อท้าย
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยมีเคสทีม Dev ตั้งใจบล็อกโฟลเดอร์สคริปต์ แต่เขียนคำสั่งผิดเป็น Disallow: /js/ หรือ Disallow: /_next/ ส่งผลให้ Googlebot เรนเดอร์หน้าเว็บไม่ได้ (CSS/JS ถูกบล็อก) หน้าเว็บจึงกลายเป็นหน้าขาวในสายตาบอท

คำสั่งตรวจเช็คสดผ่าน Terminal
cURL Robots View
curl -s https://example.com/robots.txt
เกณฑ์ผ่านการประเมิน: ไม่มีคำสั่งบล็อกทั้งเว็บ และมีลิงก์ Sitemap Index ที่คลิกเปิดได้จริง
Robots Clean
CHK-06 High Priority

XML Sitemap มี URL สมบูรณ์ (ไม่มีไฟล์กลวง 0 <loc>)

ตรวจสอบไฟล์ไซท์แมปทุกประเภทรวมถึง sitemap index ต้องมีรายการ URL จริง และตอบสถานะ 200 OK

หลักการวิเคราะห์ (Why & Decision Logic)

ระบบย้ายเว็บหลายตัวสร้าง Sitemap Index ขึ้นมาได้สวยงาม แต่พอกดเข้าไปใน sub-sitemap กลับพบว่าเป็นไฟล์ว่างเปล่า (Empty XML) หรือมีขนาดน้อยกว่า 200 bytes ทำให้ Google เข้าใจว่าเว็บไซต์ไม่มีเนื้อหาอัปเดต และไม่ส่งบอทมาเก็บข้อมูล

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบจำนวนแท็ก <loc> ในแต่ละไฟล์ต้องตรงกับจำนวนหน้าจริง
  • ทุก URL ใน Sitemap ต้องตอบรหัสสถานะ 200 OK (ห้ามมี 404 หรือ 301)
  • ยื่น Sitemap Index เข้า Google Search Console ได้สถานะ "สำเร็จ" (Success)
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบเคสเว็บไซต์ 50,000 หน้า ปลั๊กอินสร้าง Sitemap พยายาม Query ข้อมูลทั้งหมดในรอบเดียว ทำให้เกิด PHP Memory Timeout ส่งผลให้ไฟล์ sitemap กลายเป็นข้อความ Error 500 ทางแก้คือแบ่งพาร์ติชันไฟล์ละไม่เกิน 1,000 URLs

คำสั่งตรวจเช็คสดผ่าน Terminal
Sitemap URL Counter
# นับจำนวน URL ในไฟล์ sitemap:
curl -s https://example.com/sitemap.xml | grep -o "<loc>" | wc -l
เกณฑ์ผ่านการประเมิน: Sitemap มี URL ครบถ้วน ไม่มีไฟล์กลวง และทุก URL ตอบกลับสถานะ 200 OK
Sitemap Validated
CATEGORY 2

Structured Data & Schema Markup (CHK-07 ถึง CHK-11)

CHK-07 Critical Risk

ทดสอบ JSON-LD ไวยากรณ์ (Syntax Valid, Zero Red Errors)

ตรวจสอบโค้ด Schema Markup ผ่าน Schema.org Validator และ Google Rich Results Test ห้ามมี Error แดง

หลักการวิเคราะห์ (Why & Decision Logic)

Google อาศัย Schema แบบ JSON-LD ในการทำความเข้าใจโครงสร้างความหมาย หากโค้ดมีเครื่องหมายตกหล่นเพียงตัวเดียว (เช่น ลืมปิดปีกกา หรือมีลูกน้ำเกิน) Parser ของ Google จะหยุดการอ่านทันที ทำให้สูญเสียสิทธิ์การแสดงผล Rich Snippets ทั้งหมด

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบทุก Template (Home, Product, Category, Article) ผ่าน Rich Results Test
  • ต้องไม่มีเครื่องหมาย Error สีแดง (Zero Red Errors)
  • ตรวจสอบฟิลด์ที่บังคับ (Required Properties) ให้ครบถ้วนตามสเปกของ Google
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

ในภาษาไทยมักพบปัญหาข้อความมีเครื่องหมายอัญประกาศคู่ ("...") ในชื่อสินค้า แล้วระบบไม่ได้ทำการ Escape Character (\") ส่งผลให้โครงสร้าง JSON พังทั้งแถบ

คำสั่งตรวจเช็คสดผ่าน Terminal
cURL JSON-LD Extraction
curl -s https://example.com/ | grep -E -A 10 "<script type=\"application/ld\+json\""
เกณฑ์ผ่านการประเมิน: สแกนผ่าน Schema Markup Validator และ Google Rich Results Test ได้ 100% Valid
Zero Syntax Errors
CHK-08 Critical Risk

Product / Service & Offer Schema ครบถ้วน

หน้ารายละเอียดบริการหรือสินค้า ต้องมี offers, price, currency: THB และ availability ครบถ้วน

หลักการวิเคราะห์ (Why & Decision Logic)

Google Shopping และผลการค้นหาสินค้าต้องการข้อมูลราคาสินค้า สถานะในสต็อก และรูปภาพที่ชัดเจน การใส่ Schema Product / Service ที่สมบูรณ์จะทำให้ได้รับ Rich Snippet แสดงราคาและคะแนนรีวิว ซึ่งช่วยเพิ่ม Click-Through Rate ได้ถึง 30%

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • มีพร็อพเพอร์ตี้ offers, price และ priceCurrency: "THB"
  • ใส่สถานะสินค้า availability: "https://schema.org/InStock"
  • หากมีรีวิว ให้เชื่อมต่อ aggregateRating ที่ตรงกับความจริง
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

บางโปรเจกต์ตั้งราคาใน Schema เป็น 0 หรือใส่สกุลเงินเป็น USD ผิดพลาด ส่งผลให้ Google Merchant Center ระงับการแสดงผลผลิตภัณฑ์เนื่องจากราคาในโค้ดไม่ตรงกับราคาที่แสดงบนหน้าเว็บจริง

คำสั่งตรวจเช็คสดผ่าน Terminal
Product Offer Inspection
curl -s https://example.com/products/item-1 | grep -i -E "priceCurrency|price|InStock"
เกณฑ์ผ่านการประเมิน: Google Rich Results Test แสดงพรีวิว Merchant Listings ได้สมบูรณ์
Product Schema Valid
CHK-09 Standard Priority

BreadcrumbList Schema ตรงกับ Breadcrumbs บนหน้าเว็บ

ลำดับตำแหน่ง position: 1, 2, 3 ใน JSON-LD ต้องสะท้อนเส้นทาง Home > Category > Target Page

หลักการวิเคราะห์ (Why & Decision Logic)

Breadcrumb Schema ช่วยให้ Google แสดงผล Breadcrumb Path บน SERP แทนที่จะเป็น URL ยาวๆ ที่อ่านยาก ช่วยตอกย้ำโครงสร้างหมวดหมู่แบบ Silo Structure ทำให้บอทจัดกลุ่มความเชี่ยวชาญของเนื้อหาได้อย่างแม่นยำ

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบ itemListElement เริ่มจากตำแหน่ง 1 คือหน้าแรก
  • ชื่อ (name) และ URL (item) ต้องตรงกับ breadcrumbs ที่แสดงให้ผู้ใช้เห็น
  • ตำแหน่งสุดท้ายต้องเป็นหน้านั้นๆ เสมอ
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

พบบ่อยในเว็บที่เปลี่ยนธีมใหม่ ตัวเลข position ในโค้ดรันผิด เช่น มีเลข 1 ซ้ำกันสองครั้ง หรือข้ามจาก 1 ไป 3 ส่งผลให้ Google แจ้งเตือน Invalid Breadcrumbs ใน Search Console

คำสั่งตรวจเช็คสดผ่าน Terminal
Breadcrumb Schema Filter
curl -s https://example.com/blog/article-1 | grep -i "BreadcrumbList"
เกณฑ์ผ่านการประเมิน: BreadcrumbList รันลำดับ position 1, 2, 3 ถูกต้องตามลำดับขั้นความลึก
Breadcrumb Valid
CHK-10 Standard Priority

Organization & LocalBusiness Schema ยืนยันตัวตนแบรนด์

ระบุชื่อทางการ, โลโก้, เบอร์โทรติดต่อ, ที่อยู่ และลิงก์ sameAs ชี้ไปยัง Social Media เพื่อสร้าง Entity Authority

หลักการวิเคราะห์ (Why & Decision Logic)

แกนหลักของ E-E-A-T และ Knowledge Graph ของ Google คือการระบุว่า "ใครเป็นเจ้าของเว็บไซต์นี้" ผ่าน Schema Organization ที่เชื่อมโยง Social Profiles ด้วยฟิลด์ sameAs เพื่อให้ระบบ AI และ Knowledge Graph จดจำแบรนด์เป็น Entity ที่น่าเชื่อถือ

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบ name, url, logo ของบริษัท
  • ใส่ลิงก์ sameAs ชี้ไปยัง Facebook, YouTube, LinkedIn, X
  • หากเป็นธุรกิจท้องถิ่น ให้ใส่ address และ telephone ให้ตรงกับ Google Business Profile
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

ย้ายระบบแล้วลืมอัปเดต URL ของโลโก้ ทำให้ Schema ดึงลิงก์จากเซิร์ฟเวอร์เก่าที่กำลังจะปิดตัวลง ส่งผลให้รูปภาพใน Google Knowledge Panel หายไปในเวลาต่อมา

คำสั่งตรวจเช็คสดผ่าน Terminal
sameAs Verification
curl -s https://example.com/ | grep -i -A 6 "\"sameAs\""
เกณฑ์ผ่านการประเมิน: มี Organization Schema สมบูรณ์พร้อม sameAs เชื่อมโยงทุกช่องทางโซเชียลมีเดีย
Brand Entity Verified
CHK-11 Standard Priority

FAQPage Schema ตรงกับข้อความ Accordion 100%

คำถามและคำตอบใน Schema ต้องตรงกับเนื้อหาที่แสดงบนหน้าเว็บ ห้ามแอบใส่ข้อความสแปมคีย์เวิร์ด

หลักการวิเคราะห์ (Why & Decision Logic)

Google มีนโยบายต่อต้านการซ่อนเนื้อหา (Hidden Content Policy) ข้อความคำถาม-คำตอบใน Schema FAQPage จะต้องสามารถอ่านได้โดยตรงบนหน้าเว็บ หากพบว่าใน Schema มีคำตอบ แต่บนหน้าเว็บไม่มี หรือซ่อนไว้ อาจโดนบทลงโทษแบบ Manual Action ด้าน Structured Data Spam

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบว่าทุกคำถามใน FAQPage มี Accordion หรือข้อความบนหน้าเว็บจริง
  • ข้อความคำตอบต้องสอดคล้องกับเจตนาของผู้ใช้ ไม่ใช่การยัดเยียดคีย์เวิร์ด
  • ทดสอบผ่าน Google Rich Results Test ว่าดึงฟิลด์ Question/Answer ได้ครบ
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบเคสย้ายเว็บแล้วระบบ CMS นำคำถาม FAQ มาแสดงผล แต่ลืมแก้ ID ของ Accordion ทำให้ผู้ใช้คลิกเปิดอ่านคำตอบไม่ได้ ส่งผลกระทบต่อทั้ง User Experience และความถูกต้องของการตรวจสอบ Schema

คำสั่งตรวจเช็คสดผ่าน Terminal
FAQ Schema Inspection
curl -s https://example.com/services/seo | grep -i "FAQPage"
เกณฑ์ผ่านการประเมิน: ข้อความใน Schema FAQPage ตรงกับสิ่งที่ผู้ใช้มองเห็นบนหน้าเว็บ 100%
100% Content Match
CATEGORY 3

Routing, Links & 301 Redirects (CHK-12 ถึง CHK-16)

CHK-12 Critical Risk

ความสมบูรณ์ของกฎ 301 Permanent Redirect (Single Hop)

URL เก่าที่มีทราฟฟิกหรือ Backlink ต้องทำ 301 ตรงสู่ปลายทางใหม่ทันทีในทอดเดียว ห้ามมี Chain

หลักการวิเคราะห์ (Why & Decision Logic)

นี่คือจุดที่ทำให้ทราฟฟิกหลังย้ายระบบพังทลายมากที่สุด URL เก่าที่มีประวัติคะแนน Backlink และอันดับ หากเปลี่ยน URL ใหม่ ต้องทำ 301 Permanent Redirect ส่งตรงแบบ 1:1 ทันที หากปล่อยให้หลุดเป็น 404 คะแนน Link Equity จะหายไปทั้งหมด และหากทำเป็น Redirect Chain หลายทอด บอทจะหยุดเดินกลางคัน

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบ URL เก่า 100 อันดับแรกที่มีทราฟฟิกสูงสุดจาก Google Search Console
  • ต้องเป็น Single Hop: URL เก่า → ตอบ 301 → URL ใหม่ตอบ 200 OK ทันที
  • ต้องไม่มี 302 (Temporary Redirect) ปนเปในกรณีที่มีการย้าย URL ถาวร
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบเคสย้ายระบบแล้วทีมงานตั้งกฎ redirect ทับซ้อน: http://site.com/old → 301 ไป https://site.com/old → 301 ไป https://www.site.com/old → 301 ไป https://www.site.com/new/ (รวม 4 hops) ทำให้บอทตัดงบ Crawl Budget ทิ้ง และอันดับร่วงลง 40% ในสัปดาห์แรก

คำสั่งตรวจเช็คสดผ่าน Terminal (Redirect Tracer)
cURL Hop Trace
curl -sIL https://example.com/old-page-slug | grep -E "^(HTTP/|Location:)"
เกณฑ์ผ่านการประเมิน: URL สำคัญทุกตัวทำ 301 แบบ Single Hop ถึงปลายทาง 200 OK โดยไม่มี Redirect Chain
Single Hop 301
CHK-13 Critical Risk

Zero Internal 404 Broken Links ทั้งเว็บ

เมนู Header, Footer, Breadcrumbs และ In-content links ต้องไม่มีลิงก์ตายไปยังหน้า 404

หลักการวิเคราะห์ (Why & Decision Logic)

ลิงก์ภายใน (Internal Links) คือเส้นเลือดใหญ่ในการส่งผ่านคะแนน PageRank และช่วยให้บอทค้นพบหน้าต่างๆ การมี Broken Links ใน Header หรือ Footer จะทำให้บอทเดินไปติดทางตัน (Dead End) และสร้างประสบการณ์ที่เลวร้ายอย่างรุนแรงแก่ผู้ใช้

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • สแกนเว็บไซต์ทั้งโดเมนด้วย Screaming Frog หรือสคริปต์ตรวจสอบภายใน
  • ตรวจสอบลิงก์ในเมนูหลัก (Navigation Menu) และ Footer ทั้งหมด
  • แก้ลิงก์ภายในที่ชี้ไปยัง URL เก่า ให้ชี้ตรงไปยัง URL ปลายทางใหม่ทันที (ไม่ต้องรอ 301)
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

มักพบบ่อยตอนย้ายระบบ ทีม Dev แก้ไข URL สินค้าใหม่หมดแล้ว แต่ในเนื้อหาบล็อกเก่ายังคงฝังลิงก์โครงสร้างเดิม ทำให้ผู้ใช้ที่อ่านบทความแล้วคลิกลิงก์ไปซื้อของพบหน้า 404 สูญเสีย Conversion ไปอย่างน่าเสียดาย

คำสั่งตรวจเช็คสดผ่าน Terminal
Automated Audit Script
python scripts/run_post_deploy_audit.py --url https://example.com/ --check-links
เกณฑ์ผ่านการประเมิน: ไม่มี Internal 404 Broken Link แม้แต่รายการเดียวบนหน้าสำคัญของเว็บไซต์
Zero 404 Errors
CHK-14 High Priority

Trailing Slash Policy & URL Normalization

กำหนดมาตรฐานมีหรือไม่มี Slash ท้าย URL ให้ชัดเจน ป้องกันปัญหา Duplicate Content และ Redirect Loop

หลักการวิเคราะห์ (Why & Decision Logic)

Google มอง /service และ /service/ เป็นสองหน้าต่างหาก หากเซิร์ฟเวอร์เปิดให้เข้าถึงได้ทั้งสองรูปแบบพร้อมกัน จะเกิดปัญหา Duplicate Content และคะแนนอันดับจะถูกแบ่งครึ่งระหว่างสอง URL

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • กำหนดนโยบายว่าจะใช้ Trailing Slash (มี /) หรือ Non-trailing Slash (ไม่มี /)
  • ตั้งค่า Server กฎ 301 ให้ Normalize รูปแบบที่ไม่ต้องการมาสู่รูปแบบหลักเสมอ
  • ทดสอบทั้งสองรูปแบบว่าไม่เกิดการเด้งไปมาจนเป็น Redirect Loop
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เมื่อย้ายจาก WordPress (ที่มี slash ท้าย) ไปยังระบบใหม่ที่ไม่มี slash หากไม่ทำ 301 URL เก่าทั้งหมดที่มี backlink จะกลายเป็น 404 ทันที และถ้าเซิร์ฟเวอร์ตั้งค่า Nginx ชนกับ Framework อาจเกิดลูปเด้งไม่มีวันสิ้นสุด

คำสั่งตรวจเช็คสดผ่าน Terminal
cURL Slash Testing
curl -sI https://example.com/about | grep -E "^(HTTP/|Location:)"
curl -sI https://example.com/about/ | grep -E "^(HTTP/|Location:)"
เกณฑ์ผ่านการประเมิน: มีมาตรฐาน Trailing Slash เพียงหนึ่งเดียว และ Redirect 301 ถูกต้องสม่ำเสมอ
Consistent Slash Policy
CHK-15 High Priority

Custom 404 Error Page ส่งสถานะ HTTP 404 จริง

เมื่อเข้า URL ที่ไม่มีอยู่จริง เซิร์ฟเวอร์ต้องตอบ Header 404 Not Found ห้ามตอบ 200 OK (ป้องกัน Soft 404)

หลักการวิเคราะห์ (Why & Decision Logic)

หน้า 404 ที่ตอบสถานะ 200 OK จะทำให้ Google เข้าใจผิดคิดว่าเป็นหน้าที่มีเนื้อหาปกติ และพยายามจัดทำดัชนี (Index) เข้ามาเรื่อยๆ จนเกิดปัญหา Soft 404 ท่วม Search Console และผลาญงบประมาณ Crawl Budget ไปอย่างมหาศาล

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • สุ่มยิง URL ที่ไม่มีจริง เช่น /random-check-404-error
  • ตรวจสอบ HTTP Header ต้องตอบสถานะ 404 Not Found จริง
  • หน้าจอมีดีไซน์ที่สวยงาม พร้อมปุ่มนำทางกลับหน้าแรกหรือค้นหาสินค้า
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบบางเว็บไซต์ทำ Redirect 302 ส่ง URL ที่ไม่มีอยู่จริงทั้งหมดกลับไปหน้าแรก (Home Page) ทำให้ Google Index หน้าแรกด้วยคีย์เวิร์ดของ URL ขยะ ส่งผลให้อันดับคำค้นหาหลักของหน้าแรกตกฮวบ

คำสั่งตรวจเช็คสดผ่าน Terminal
404 Header Test
curl -sI https://example.com/page-does-not-exist-check | grep "HTTP/"
เกณฑ์ผ่านการประเมิน: เซิร์ฟเวอร์ตอบ Header 404 จริง และมีหน้า User Interface นำทางกลับสู่บริการหลัก
True 404 Response
CHK-16 Standard Priority

External Links มี rel="noopener noreferrer" & Sponsored Policy

ลิงก์ภายนอกต้องมีแท็กความปลอดภัยป้องกัน Tabnabbing และระบุ rel="sponsored" หากเป็นลิงก์พันธมิตร

หลักการวิเคราะห์ (Why & Decision Logic)

การเชื่อมโยงออกสู่ภายนอก (Outbound Links) มีผลต่อความปลอดภัยและการส่งต่อ PageRank หากลิงก์เปิดหน้าต่างใหม่ (target="_blank") โดยไม่มี noopener noreferrer หน้าเว็บปลายทางอาจเข้าควบคุมหน้าต่างบราวเซอร์เดิมได้ (Reverse Tabnabbing)

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบลิงก์ Social Media, ลิงก์พาร์ทเนอร์ และลิงก์อ้างอิงภายนอก
  • ใส่ rel="noopener noreferrer" ทุกจุดที่เปิดแท็บใหม่
  • หากเป็น Affiliate หรือ Paid Link ต้องใส่ rel="sponsored" หรือ nofollow
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบบางเว็บไซต์ทำลิงก์พันธมิตรหลายร้อยจุดแต่ไม่ได้ใส่แท็ก sponsored ทำให้ Google มองว่าเว็บไซต์มีพฤติกรรมขายแบ็กลิงก์ (Unnatural Outbound Links) และส่งข้อความแจ้งเตือน Manual Action

คำสั่งตรวจเช็คสดผ่าน Terminal
External Links Crawler
python scripts/diagnose_url.py --url https://example.com/ --audit-external
เกณฑ์ผ่านการประเมิน: ลิงก์ภายนอกมีแอตทริบิวต์ความปลอดภัยและนโยบายสปอนเซอร์โปร่งใสตาม Google Guidelines
Safe Outbound Links
CATEGORY 4

Analytics, Tracking & Conversion (CHK-17 ถึง CHK-20)

CHK-17 Critical Risk

Google Tag Manager (GTM) Container จริงของ Production

ตรวจรหัส GTM Container (GTM-XXXXXXX) ต้องเป็น Production Account ไม่ใช่ Container ทดสอบ

หลักการวิเคราะห์ (Why & Decision Logic)

บ่อยครั้งที่กระบวนการ Deploy ยกโค้ดมาจาก Staging แล้วลืมสลับ GTM Container ID ทำให้สถิติการเข้าชมและข้อมูลการซื้อขายบน Production จริงถูกส่งไปยังบัญชีทดสอบ ส่งผลให้ทีมการตลาดและผู้บริหารตาบอดมองไม่เห็นข้อมูลทราฟฟิกจริง

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบโค้ด GTM ใน <head> และ <noscript> ใน <body>
  • ยืนยันรหัส GTM ID ตรงกับ Production Account ที่เผยแพร่เวอร์ชันล่าสุดแล้ว
  • ทดสอบผ่าน GTM Preview Mode บนโดเมน Production
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยมีโปรเจกต์ Launch ระบบใหม่แล้วผู้บริหารตกใจว่าทำไมทราฟฟิกกลายเป็น 0 ในสัปดาห์แรก เมื่อตรวจสอบพบว่าทีมผู้พัฒนาใส่ Container ID ชั่วคราวของเอเจนซี่ภายนอกทิ้งไว้ในโค้ด

คำสั่งตรวจเช็คสดผ่าน Terminal
GTM ID Check
curl -s https://example.com/ | grep -o -E "GTM-[A-Z0-9]+" | head -n 2
เกณฑ์ผ่านการประเมิน: รหัส GTM Container เป็นของ Production และยิงแท็กผ่าน Tag Assistant ได้สมบูรณ์
GTM Production Active
CHK-18 High Priority

GA4 Realtime Firing & Core Events (page_view, conversion)

ตรวจสอบ Google Analytics 4 ในหน้า Realtime ต้องบันทึกจำนวนผู้ใช้งานและ Event ได้ทันที

หลักการวิเคราะห์ (Why & Decision Logic)

เมื่อเปิดใช้งานเว็บใหม่ ข้อมูลการเข้าชมของผู้ใช้งานจะต้องเริ่มบันทึกเข้าระบบทันที หากมีปัญหาเรื่อง Cookie Banner หรือ Content Security Policy (CSP) บล็อกการส่งข้อมูลไปยัง Google Analytics จะทำให้ขาดช่วงของข้อมูลประวัติ (Data Continuity)

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • เปิดหน้ารายงาน Realtime ใน GA4 และทดสอบเข้าเว็บจากมือถือ/คอมพิวเตอร์
  • ยืนยันว่า Event page_view ถูกส่งออกอย่างถูกต้อง
  • ตรวจสอบว่า Cookie Consent Mode ไม่บล็อกการเก็บข้อมูลเมื่อผู้ใช้กดยินยอม
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

บางโปรเจกต์ตั้งค่า Single Page Application (SPA) บน React แล้วส่ง page_view เฉพาะครั้งแรกที่โหลดเว็บ แต่พอเปลี่ยนหน้าผ่าน Router ด้านใน กลับไม่มีการส่ง Virtual Pageview ทำให้ Bounce Rate พุ่งเป็น 100%

คำสั่งตรวจเช็คสดผ่าน Terminal
GA4 Measurement ID
curl -s https://example.com/ | grep -o -E "G-[A-Z0-9]+" | head -n 1
เกณฑ์ผ่านการประเมิน: GA4 Realtime ตรวจพบผู้ใช้และบันทึก Event page_view ทันที
Realtime Firing OK
CHK-19 High Priority

Conversion CTA Links (LINE OA, เบอร์โทร, ฟอร์มติดต่อ)

ปุ่มรับเงินและช่องทางติดต่อต้องทำงานได้จริง 100% ป้องกันลูกค้ารั่วไหลหลังขึ้นระบบใหม่

หลักการวิเคราะห์ (Why & Decision Logic)

เป้าหมายสูงสุดของ SEO คือ Conversion ต่อให้อันดับยังอยู่ครบ แต่ถ้าปุ่มติดต่อพัง หรือฟอร์มกรอกแล้วไม่ส่งอีเมลเข้าบริษัท ธุรกิจจะสูญเสียรายได้ทันที (Leads Blackout) การทดสอบปุ่มทุกจุดบนมือถือจึงเป็นขั้นตอนที่สำคัญที่สุด

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • คลิกปุ่ม LINE OA ทุกจุด ต้องเปิดแอป LINE หรือขึ้น QR Code ไปยังบัญชีร้านจริง
  • ปุ่มโทรศัพท์ต้องผูกลิงก์ tel:08XXXXXXXX ที่ถูกต้อง
  • ยิงฟอร์มทดสอบจริง (Test Lead) ยืนยันว่าข้อมูลเข้า Database และส่งอีเมลแจ้งเตือน
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบบ่อยตอนย้ายเซิร์ฟเวอร์ SMTP Mail Server ไม่ได้ตั้งค่าการยืนยันตัวตน ทำให้ฟอร์มติดต่อหน้าเว็บขึ้นข้อความ "ส่งสำเร็จ" แต่ในความเป็นจริงอีเมลของลูกค้าตกหล่นและไม่เคยส่งถึงทีมขายตลอด 2 สัปดาห์แรก

คำสั่งตรวจเช็คสดผ่าน Terminal
CTA Link Protocol Scan
curl -s https://example.com/contact | grep -E -i "(tel:|mailto:|line.me)"
เกณฑ์ผ่านการประเมิน: ปุ่มโทรศัพท์, LINE OA และแบบฟอร์มรับลูกค้าทดสอบผ่าน 100%
100% Leads Ready
CHK-20 Standard Priority

Domain Verification Tags (Google & Facebook Ads)

แท็ก Meta Verification หรือ DNS TXT ยืนยันสิทธิ์ใน Search Console และ Meta Business ต้องยังอยู่ครบ

หลักการวิเคราะห์ (Why & Decision Logic)

การเปลี่ยน Theme หรือ Codebase ใหม่ มักทำให้ HTML Meta Tag ที่เคยแปะไว้ใน header หลุดหาย ส่งผลให้สิทธิ์การจัดการโดเมนใน Google Search Console หรือ Facebook Ads Manager ถูกระงับการยืนยัน ทำให้ไม่สามารถมอนิเตอร์ข้อมูลหรือยิงแอดคอนเวอร์ชันได้

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ตรวจสอบ <meta name="google-site-verification">
  • ตรวจสอบ <meta name="facebook-domain-verification">
  • แนะนำให้ใช้ DNS TXT Verification เป็นวิธีหลักเพื่อไม่ให้หลุดเมื่อเปลี่ยนโค้ด
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

พบบ่อยในบริษัทที่มีแคมเปญ Meta Ads วิ่งอยู่ พอ Meta Verification หลุดจาก Header แคมเปญโฆษณาที่ยิงไปยัง Conversion Event จะหยุดทำงานทันที ทำให้เสียโอกาสทางธุรกิจ

คำสั่งตรวจเช็คสดผ่าน Terminal
Verification Meta Check
curl -s https://example.com/ | grep -i "verification"
เกณฑ์ผ่านการประเมิน: สถานะการยืนยันโดเมนใน GSC และ Meta Business ยังคง Active 100%
Ownership Verified
CATEGORY 5

Performance, Rendering & Core Web Vitals (CHK-21 ถึง CHK-24)

CHK-21 High Priority

Static Assets (CSS, JS, WebP/AVIF ตอบกลับ 200 OK หรือ 304)

ตรวจไฟล์บันเดิลของเฟรมเวิร์ก (Next.js, WordPress) ทุกไฟล์ต้องโหลดติดครบถ้วน ไม่มีไฟล์แตก 404

หลักการวิเคราะห์ (Why & Decision Logic)

เว็บแอปพลิเคชันสมัยใหม่ทำงานแบบ Code Splitting หากไฟล์ JS Chunk หรือ CSS สไตล์ตอบสถานะ 404 บราวเซอร์จะไม่สามารถประกอบหน้าเว็บ (Hydration Failed) และ Googlebot จะมองเห็นหน้าเว็บพัง หรือไม่แสดงเนื้อหาหลัก

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • เปิด Network Tab บนบราวเซอร์ ตรวจสอบว่าไม่มี Request แดง (4xx/5xx)
  • ตรวจสอบไฟล์ภาพ WebP/AVIF ต้องโหลดติดสมบูรณ์
  • ตั้งค่า Cache-Control สำหรับ static assets ให้มีอายุยืนยาว (เช่น 1 ปี)
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

ใน Next.js หากตั้งค่า assetPrefix ไม่ตรงกับโดเมน CDN หรือลืมดีพลอยโฟลเดอร์ .next/static ผู้ใช้ที่เข้าเว็บหลังดีพลอยจะเจอหน้าขาวและติด Error ChunkLoadError

คำสั่งตรวจเช็คสดผ่าน Terminal
Asset Status Audit
python scripts/run_post_deploy_audit.py --url https://example.com/ --check-assets
เกณฑ์ผ่านการประเมิน: ทุกไฟล์ Asset ตอบกลับ 200 OK หรือ 304 Not Modified ไม่มี Error ใน Console
Zero Broken Assets
CHK-22 Standard Priority

การโหลดฟอนต์ไทยไม่กระตุก (No FOUT / FOIT, Preload WOFF2)

ใส่ preload ฟอนต์หลัก และกำหนด font-display: swap เพื่อควบคุมค่า Cumulative Layout Shift (CLS)

หลักการวิเคราะห์ (Why & Decision Logic)

ฟอนต์ภาษาไทยมีสัดส่วนขนาดกว้างและวรรณยุกต์สูง-ต่ำต่างจากฟอนต์ระบบ หากไม่มีการ Preload เมื่อฟอนต์ดาวน์โหลดเสร็จ ข้อความจะขยับกระโดดเปลี่ยนขนาดทันที (Layout Shift) ส่งผลให้คะแนน Core Web Vitals (CLS) ตก และผู้ใช้รู้สึกรำคาญ

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • ใส่แท็ก <link rel="preload" as="font" type="font/woff2" crossorigin>
  • ใช้ฟอร์แมต .woff2 เท่านั้น (ขนาดเล็กกว่า ttf ถึง 60%)
  • กำหนด font-display: swap ในกฎ @font-face
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

การโหลด Google Fonts ผ่านคำสั่ง @import url(...) ในไฟล์ CSS ย่อย จะทำให้เกิด Render-blocking Chained Requests หน่วงเวลาการแสดงผลข้อความแรกไป 1-2 วินาทีบนเครือข่ายมือถือ

คำสั่งตรวจเช็คสดผ่าน Terminal
Font Preload Check
curl -s https://example.com/ | grep -i "rel=\"preload\".*as=\"font\""
เกณฑ์ผ่านการประเมิน: ค่า CLS บน Google PageSpeed ต่ำกว่า 0.1 และไม่มีอาการกระตุกของตัวหนังสือ
CLS < 0.1 Pass
CHK-23 High Priority

Mobile Viewport & การแสดงผลไม่ล้นจอ (Zero Horizontal Overflow)

ทดสอบการแสดงผลบนอุปกรณ์พกพา ต้องไม่มีตารางหรือรูปภาพดันขอบจอจนเกิด Scrollbar แนวนอน

หลักการวิเคราะห์ (Why & Decision Logic)

Google ใช้ระบบ Mobile-First Indexing ในการจัดอันดับ 100% หากหน้าเว็บเกิดอาการปัดข้างได้ (Horizontal Scrollbar) บอทจะประเมินว่าหน้านี้ไม่เป็นมิตรกับผู้ใช้สมาร์ตโฟน (Mobile Usability Issues) ซึ่งส่งผลให้คะแนนประสบการณ์บนหน้าเว็บลดลงทันที

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • มีแท็ก <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • ตรวจสอบตารางและรูปภาพขนาดใหญ่ ต้องมีคลาส responsive เช่น max-w-full h-auto
  • ทดสอบเปิดบนอุปกรณ์หน้าจอ 360px - 390px ต้องไม่มีอาการเลื่อนแนวนอน
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

ตารางเปรียบเทียบราคาหรือสเปกสินค้าที่ก๊อปปี้มาจากเว็บเก่า มักระบุ width: 900px แบบตายตัว เมื่อดูบนมือถือ ตารางจะดันขอบจอทะลุออกไป ทำให้ข้อความส่วนอื่นโดนบีบจนอ่านไม่รู้เรื่อง

คำสั่งตรวจเช็คสดผ่าน Terminal
Viewport Meta Check
curl -s https://example.com/ | grep -i "name=\"viewport\""
เกณฑ์ผ่านการประเมิน: ทดสอบผ่าน Google Mobile-Friendly Criteria และไม่มี Horizontal Scrollbar
100% Mobile Ready
CHK-24 Standard Priority

Cloudflare / CDN Edge Cache Purge สมบูรณ์

ล้างแคชระดับ Edge Server ทั้งหมดหลังดีพลอย เพื่อให้ผู้ใช้และ Web Crawler ได้รับโค้ดล่าสุดทันที

หลักการวิเคราะห์ (Why & Decision Logic)

แม้บนเซิร์ฟเวอร์หลักจะอัปเดตโค้ดและแก้ไขกฎ 301 เรียบร้อยแล้ว แต่ถ้า CDN Edge (เช่น Cloudflare, Fastly, AWS CloudFront) ยังคงจดจำหน้าเว็บเวอร์ชันเก่าไว้ บอทที่วิ่งเข้ามาจะยังคงได้รับสถานะเก่าหรือหน้าเดิม ทำให้การทดสอบและการกู้ทราฟฟิกล่าช้าไปหลายวัน

จุดตรวจเช็ค & สิ่งที่ต้องยืนยัน (Checklist Action)
  • สั่งการ Purge Everything บนแดชบอร์ดของ CDN ทันทีหลัง Launch
  • ยิง cURL ตรวจ Header cf-cache-status ต้องขึ้น DYNAMIC หรือ MISS/EXPIRED
  • ทดสอบเข้าเว็บผ่าน Incognito Mode เพื่อยืนยันว่าได้รับหน้าเว็บเวอร์ชันล่าสุด
ข้อควรระวัง & เคสจริงจากหน้างาน (Battle-Tested Case)

เคยพบเคสทีมงานแก้ปัญหา Canonical Tag บน Production เรียบร้อยแล้ว แต่ลืมเคลียร์ Cloudflare แคช ทำให้ Google เข้ามาเก็บข้อมูลและยังคงเห็น Canonical ตัวผิดอยู่อีก 48 ชั่วโมงเต็ม

คำสั่งตรวจเช็คสดผ่าน Terminal
CDN Cache Header Status
curl -sI https://example.com/ | grep -i -E "(cf-cache-status|x-cache|age)"
เกณฑ์ผ่านการประเมิน: Edge Cache ถูกล้างเรียบร้อย และเสิร์ฟ HTML/Assets เวอร์ชันใหม่อย่างแม่นยำ
CDN Cache Purged
>_

ชุดคำสั่ง CLI ตรวจสอบสด 3 วินาที (Automated Terminal Smoke Tests)

คำสั่งด่วนสำหรับเช็ค Headers, Status Code และ Redirects บน Terminal ก่อนส่งมอบงาน

1. ตรวจสอบ HTTP Status, X-Robots-Tag และ Canonical Header
curl -sI https://example.com/products/item-1 | grep -E -i "HTTP|x-robots|canonical|cache-control"
2. ตรวจสอบ 301 Redirect Loop & Destination Hop
curl -sIL https://example.com/old-url | grep -E "^HTTP|^Location"
3. นับจำนวน URL ใน XML Sitemap ป้องกันเคสไฟล์กลวง 0 รายการ
curl -s https://example.com/sitemap.xml | grep -o "<loc>" | wc -l