ทำ SEO Rank Tracker แบบ custom ใช้เอง

Son contentmastery.io
Updated: July 29, 2025
สารบัญ
กำลังโหลดสารบัญ...
เคยไหมครับที่ต้องเข้าไปเช็คอันดับคีย์เวิร์ดทีละตัวใน Google... พิมพ์คีย์เวิร์ด แล้วนับว่าเว็บเราอยู่อันดับที่เท่าไหร่ ถ้ามี 50-100 คีย์เวิร์ด นี่เมื่อยมือแน่ ๆ และอาจจะมีความผิดพลาดได้อย่างแน่นอน

ซึ่งการจะใช้เครื่องมือสำเร็จรูป เครื่องมือชั้นนำไม่ว่าจะเป็น Semrush, Ahrefs หรือตัวอื่น ๆ ก็แพงมาก บางตัวเดือนละ 3,000-5,000 บาท สำหรับ Freelancer หรือธุรกิจเล็ก ๆ ถือว่าเป็นต้นทุนที่สูงเลยครับ 

ตัวอย่างเช่นเครื่องมือ track อันดับของ Semrush ด้านล่าง เราต้องจ่ายหลายพันบาทต่อเดือนนะครับ จะได้ใช้เครื่องมือพวกนี้ ซึ่งปกติคนที่เป็น SEO Consult ก็ต้องจ่ายค่าเครื่องมือพวกนี้เป็นเรื่องปกติอยู่แล้วแหละ


Position Tracking ของ Semrush 


แต่ถ้าเป็นเจ้าของเว็บเล็ก ๆ หรือต้องการ track คีย์เวิร์ดไม่เยอะล่ะ มันจะเป็นไปได้ไหม จะมีเครื่องมืออะไรที่เหมาะกับ requirement ประมาณนี้

ผมก็เลยรีเสิร์ช จนได้พัฒนาเจ้าเครื่องมือตัวที่เห็นในภาพนี้มาครับ (เดี๋ยวผมจะมีอธิบายด้านล่างว่า ผมใช้ tech stack อะไรบ้าง และการติดตั้งใช้งานต่าง ๆ ทำได้อย่างไรบ้าง


หน้าตาของ Rank Tracker ตัวนี้


ที่มาของการพัฒนา SEO Rank Tracker

จากประสบการณ์ให้คำปรึกษา SEO มาหลายปี ผมเจอปัญหาเดิม ๆ คือ

  • ลูกค้าอยากรู้ว่าคีย์เวิร์ดขึ้นหรือลง ต้องมานั่งเช็คทีละตัว
  • เครื่องมือที่มีอยู่แพงเกินไป โดยเฉพาะถ้าต้องการติดตามหลายเว็บ
  • ไม่มีรายงานที่เข้าใจง่าย ต้องมา export แล้วทำใหม่เอง
  • ข้อมูลอยู่ในระบบของเขา เราดึงออกมาวิเคราะห์ต่อยาก

พอดีผมมีพื้นฐานการเขียนโปรแกรม เลยตัดสินใจทำเครื่องมือขึ้นมาใช้เอง แล้วคิดว่าน่าจะมีคนต้องการแบบนี้เหมือนกัน ก็เลยทำเป็น Open Source แจกฟรีเลยครับ (และเพื่อน ๆ สามารถเข้ามาร่วมพัฒนาได้เช่นกันครับได้ใน repository นี้ที่ชื่อว่า "cm-seo-rank-tracker")


ซอร์สโค้ด


SEO Rank Tracker ทำอะไรได้บ้าง?

1. ตรวจสอบอันดับอัตโนมัติทุกสัปดาห์

ระบบจะตรวจสอบอันดับคีย์เวิร์ดที่เราตั้งไว้ทุกวันจันทร์เช้า ไม่ต้องมานั่งเช็คเอง ใช้ SerpAPI ในการดึงข้อมูล (เหมือนกับที่ Ahrefs หรือ SEMrush ใช้) ได้ผลลัพธ์ที่แม่นยำ


2. ส่งรายงานทางอีเมลอัตโนมัติ

ทุกวันจันทร์ 9 โมงเช้า ระบบจะส่งรายงานสรุปมาให้ ในรายงานจะมี

  • คีย์เวิร์ดไหนขึ้น (สีเขียว + ลูกศรขึ้น)
  • คีย์เวิร์ดไหนลง (สีแดง + ลูกศรลง)
  • คีย์เวิร์ดที่เพิ่งติดอันดับใหม่
  • สรุปภาพรวมว่าเว็บเราแข็งแรงขึ้นหรือไม่

รายงานออกแบบมาสวยงาม ส่งให้ลูกค้าได้เลยไม่ต้องแก้อะไร


3. ดูข้อมูลผ่านหน้าเว็บ Dashboard

นอกจากรายงานอีเมล ยังมีหน้าเว็บให้เข้าไปดูข้อมูลแบบ real-time ได้ด้วย มี

  • กราฟแสดงการเปลี่ยนแปลงของแต่ละคีย์เวิร์ด
  • ประวัติอันดับย้อนหลังได้ 1 ปี
  • ฟิลเตอร์ดูเฉพาะคีย์เวิร์ดที่สนใจ


วิธีติดตั้งแบบง่าย ๆ (ไม่ต้องเป็น Programmer ก็ทำได้)

ผมทำให้ติดตั้งง่ายที่สุดแล้วครับ ใช้ Docker ช่วย ไม่ต้องลงโปรแกรมเยอะ

ขั้นตอนที่ 1: เตรียมของ

  • คอมพิวเตอร์ที่ลง Docker ได้ (Windows, Mac, Linux ได้หมด)
  • SerpAPI Key (สมัครฟรีได้ มี credit ให้ทดลอง)
  • Gmail สำหรับส่งรายงาน

เพื่อน ๆ สามารถทำความเข้าใจเกี่ยวกับ Docker เพิ่มเติมได้ใน Docker Tutorial


และสมัครใช้งานอีกพระเอกของเรา นั่นก็คือ Serpapi ไปที่ serpapi.com 


Serpapi


หลังจากลงทะเบียนเสร็จเลือก SerpApi Free Plan ได้เลยครับ 


เลือก Free Plan ก่อนละกันเนอะ


ยืนยันอีเมลและหมายเลขโทรศัพท์ตามที่ Serpapi ขอมา ก็เป็นอันเสร็จสิ้น จะเข้าสู่หน้าแดชบอร์ด พร้อมได้ API Key


สมัครรับ API Key


ขั้นตอนที่ 2: ดาวน์โหลดโค้ดมาเก็บในเครื่องของเรา

ส่วนนี้จะเป็นการโคลน พูดง่าย ๆ ก็คือ copy หรือดาวน์โหลดโค้ดมาเก็บไว้ในเครื่องเราเพื่อให้รันได้นั่นเองครับ ถ้าเพื่อน ๆ ที่ยังไม่รู้ว่า Git คืออะไร สามารถศึกษาเพิ่มเติมได้จากวิดีโอนี้กับ Git 101

git clone https://github.com/son-content-mastery/cm-seo-rank-tracker
cd seo-rank-tracker



ขั้นตอนที่ 3: ตั้งค่า

ส่วนนี้จะเป็นการใช้คำสั่ง cp นั่นก็คือ copy ไฟล์ .env.example  .env.example  มาและสร้าง .env  ขึ้นมาครับ (หรือไม่จำเป็นต้องใช้คำสั่งนี้ครับ กดบนหน้าโปรแกรม Visual Studio Code 2 เลือกสร้างไฟล์ใหม่ขึ้นมาก็ได้เช่นกันครับ

cp .env.example .env


หรือจะสร้าง New File ขึ้นมาใหม่ ก็ตามสะดวกเลยครับ ต่างกันแค่การคลิก UI กับใช้บน Terminal แค่นั้นแหละเนอะ



แก้ไขไฟล์ .env ใส่ตัวแปรที่จำเป็นดังต่อไปนี้

  •  SERPAPI_KEY = คีย์ที่ได้จาก SerpAPI
  •  GMAIL_USER = อีเมลที่จะใช้ส่งรายงาน
  •  GMAIL_APP_PASSWORD  = รหัสผ่านแอพ (ไม่ใช่รหัสปกติ)
  •  TARGET_DOMAIN  = เว็บที่ต้องการติดตาม เช่น example.com
  •  RECIPIENT_EMAIL  = อีเมลที่จะรับรายงาน (ใช้เมลส่วนตัวของเรานั่นแหละ)

ไฟล์ .env ตัวอย่าง

# Database Configuration
DATABASE_URL=postgresql://seo_user:seo_password@localhost:5432/seo_tracker

# API Keys
SERPAPI_KEY=your_serpapi_key_here

# Email Configuration (Gmail)
GMAIL_USER=[email protected]
GMAIL_APP_PASSWORD=wqyzgvbnjmpxfhtd
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587

# Application Configuration
FLASK_ENV=production
SECRET_KEY=your_secret_key_here_change_in_production
REDIS_URL=redis://localhost:6379/0

# SEO Configuration
TARGET_DOMAIN=contentmastery.io
RECIPIENT_EMAIL=[email protected]


สำหรับการสร้าง API Key ของ GMAIL_APP_PASSWORD  (จะได้ API Key จำนวน 16 ตัวอักษร) ดูได้จากวิดีโอนี้ครับ How to Create Gmail App Password


ขั้นตอนที่ 4: รันระบบ

รัน docker ได้เลยครับ

docker-compose up


หรือจะรันทิ้งไว้แบบ background ก็เพิ่ม flag -d เข้าไป

docker-compose up -d


พอรันจะได้ประมาณนี้ครับ 

sonny@MacBook-Pro-khxng-sonny seo-rank-tracker % docker compose up
WARN[0000] The "GMAIL_APP_PASSWORD" variable is not set. Defaulting to a blank string. 
WARN[0000] The "GMAIL_APP_PASSWORD" variable is not set. Defaulting to a blank string. 
WARN[0000] The "GMAIL_APP_PASSWORD" variable is not set. Defaulting to a blank string. 
[+] Running 6/6
 ⠿ Network seo-rank-tracker_default        Created                         0.2s
 ⠿ Container seo-rank-tracker_redis_1      Created                         0.1s
 ⠿ Container seo-rank-tracker_db_1         Created                         0.1s
 ⠿ Container seo-rank-tracker_scheduler_1  Created                         0.1s
 ⠿ Container seo-rank-tracker_web_1        Created                         0.1s
 ⠿ Container seo-rank-tracker_worker_1     Created                         0.1s
Attaching to db_1, redis_1, scheduler_1, web_1, worker_1


Gmail ยังไม่ได้ set ค่านะครับ เดี๋ยวผมจะมาอัปเดตให้ภายหลังส่วนนี้ แต่เดี๋ยวให้เพื่อน ๆ track พวกคีย์เวิร์ดให้ได้ก่อนครับ

เสร็จแล้ว! เปิดเว็บเบราว์เซอร์ไปที่ http://localhost:5000 ได้เลย


โครงสร้างระบบ (สำหรับคนที่สนใจด้าน Technical)

Stack ที่ผมใช้มีดังต่อไปนี้ครับ

  • Flask (Python) - ทำหน้าเว็บและ API
  • PostgreSQL - ฐานข้อมูลสำหรับเก็บข้อมูลอันดับและประวัติ
  • Redis - ทำ Queue และ Cache
  • Celery - จัดการงานเบื้องหลัง (Background Task)
  • Docker - ทำให้ติดตั้งง่าย (ไม่ต้องติดตั้งทีละเครื่องมือแบบ manual)

ทุกอย่างแยก Container เป็นแต่ละ service ชัดเจน อัพเดทหรือแก้ไขง่าย

อันนี้แหละครับ Flask อีกเว็บเฟรมเวิร์คของภาษา Python ยอดนิยมอีกตัว ที่เบา และเขียนได้ค่อนข้างยืดหยุ่นและสนุกครับ เหมาะกับทำโปรเจคท์ประมาณนี้เลย (แต่ถ้าเขียนพวกทำเว็บไซต์ ผมจะใช้อีกตัวคือ Django)


Flask เฟรมเวิร์ค



ค่าใช้จ่ายจริง ๆ เท่าไหร่?

ตัวโปรแกรมฟรี 100% (Open Source) แต่จะมีค่าใช้จ่ายจาก SerpAPI ครับ

  • แพ็คเกจ Hobby: $50/เดือน ได้ 5,000 searches
  • ถ้าติดตาม 100 คีย์เวิร์ด x 4 สัปดาห์ = 400 searches/เดือน
  • คิดเป็นค่าใช้จ่ายประมาณ $4/เดือน หรือ 140 บาท

เทียบกับเครื่องมือในตลาดที่เดือนละ 3,000-5,000 ถือว่าประหยัดมากครับ

ในบทความนี้เราใช้ Free Plan ของ Serpapi ครับ ซึ่งใช้ได้ฟรี 100 searches/requests ต่อเดือนครับ เอาง่าย ๆ ก็คือถ้าเราต้องการ track 25 คีย์เวิร์ด/สัปดาห์ได้สบาย ๆ 


ข้อดีเทียบกับเครื่องมือในตลาด

  1. ประหยัดค่าใช้จ่าย - จ่ายแค่ค่า API ไม่มีค่า subscription แพง ๆ
  2. Custom ได้ตามใจ - อยากเพิ่มฟีเจอร์อะไรก็ทำได้
  3. มี API ให้ใช้ - เอาข้อมูลไปต่อยอดได้


ข้อจำกัดที่ควรรู้

  1. ต้องมีเซิร์ฟเวอร์หรือคอมที่เปิดทิ้งไว้ได้ - หรือจะใช้ VPS ราคา 200-300 บาท/เดือนก็ได้ ซึ่งมีอีกตัวที่แนะนำคือ DigitalOcean สำหรับทำเซิร์ฟเวอร์ที่เราจะเปิดรันไว้ตลอด
  2. ต้องมีความรู้พื้นฐานบ้าง - การติดตั้งไม่ยาก แต่ถ้าเจอปัญหาต้องแก้เองได้
  3. ไม่มีฟีเจอร์ครบเท่าเครื่องมือใหญ่ ๆ - โฟกัสแค่ rank tracking อย่างเดียวเด้อ


ใครเหมาะกับเครื่องมือนี้

  • SEO Freelancer ที่ดูแลหลายเว็บ ต้องการประหยัดต้นทุน
  • เอเจนซี่ขนาดเล็ก ที่อยากมีระบบเป็นของตัวเอง
  • เจ้าของเว็บ ที่มีพื้นฐาน technical และอยากประหยัด
  • Developer ที่ทำ SEO ด้วย อยาก custom เครื่องมือได้เอง


Tips การใช้งานให้คุ้มค่า

  1. เลือกคีย์เวิร์ดที่สำคัญจริง ๆ - ไม่ต้องติดตามทุกคีย์ เลือกแค่ที่ทำเงินให้
  2. ตั้ง Alert สำหรับคีย์เวิร์ดสำคัญ - ถ้าตกอันดับให้แจ้งเตือนทันที
  3. ดูแนวโน้มมากกว่าตัวเลข - อันดับขึ้นลง 1-2 ไม่ต้องตื่นเต้น ดู trend ดีกว่า
  4. Export ข้อมูลทำรายงาน - ดึงข้อมูลไปทำกราฟสวยๆ ใน Excel หรือ Data Studio


สรุป

SEO Rank Tracker เป็นเครื่องมือที่ผมสร้างขึ้นเพื่อแก้ปัญหาที่เจอในการทำงานจริง อาจจะไม่มีฟีเจอร์เยอะเท่าเครื่องมือราคาแพง แต่ทำงานหลักได้ดี ประหยัดค่าใช้จ่าย และที่สำคัญคือเป็นของเราเอง

ถ้าใครกำลังมองหาเครื่องมือติดตามอันดับที่ประหยัด ลองเอาไปใช้ดูนะครับ ฟรี 100% ถ้าชอบก็แชร์ต่อให้เพื่อน ๆ ได้ใช้กัน

สำหรับใครที่ไม่อยากติดตั้งเอง อยากให้ผมช่วย setup หรือ customize ก็ติดต่อมาได้นะครับ ยินดีให้คำปรึกษา

ปล. ถ้าใครใช้แล้วเจอบัคหรืออยากให้เพิ่มฟีเจอร์อะไร บอกมาได้เลยครับ หรือจะ contribute code มาช่วยกันพัฒนาก็ยินดีมากครับ นี่คือพลังของ Open Source

GitHub: CM Rank Tracker GitHub Repository

Son contentmastery.io

Son contentmastery.io

Author

ที่ปรึกษาด้าน Web & SEO สำหรับองค์กรและเจ้าของธุรกิจ ชอบออกแบบแนวทางและวิธีการสอนให้มีประสิทธิภาพมากที่สุด เชื่อว่าความรู้คือหนึ่งในสิ่งที่มีคุณค่ามากที่สุดและจะติดตัวเราไปในทุกที่ หลงไหลในธรรมชาติ การเดินทาง เป็นพ่อของแงว ๆ อยู่หลายตัว เสพติดกาแฟ (อเมริกาโน่) และชอบการจิบเบียร์...ในบางครั้ง