Python for SEO: เริ่มต้นใช้ Python ช่วยงาน SEO อัตโนมัติ (สำหรับมือใหม่)

เริ่มใช้ Python ทำ SEO ได้โดยติดตั้งสภาพแวดล้อมเสถียร (venv+pip), ลงไลบรารีหลักอย่าง requests, BeautifulSoup, pandas, ดึง URL จาก sitemap.xml แล้วสแกนสถานะ 200/404, ดึง Title/Canonical/H1/Alt, นับลิงก์ภายใน และสรุปเป็น CSV เพื่อนำไปปรับปรุงเชิงระบบ
Getting Started with Python for SEO (ลงมือจริงใน 30 นาที)
สำหรับ SEO/Content/Technical Marketers เป้าหมายคือทำงานซ้ำ ๆ ให้เป็นสคริปต์ที่ เชื่อถือได้ และ ทำซ้ำได้—ลดเวลามนุษย์ไปกับการตรวจหน้าเว็บทีละหน้า แล้วเหลือเวลาให้คิดกลยุทธ์/คอนเทนต์คุณภาพ
จะใช้ Python เพื่อ SEO ทำอะไรได้บ้าง?
งาน | แนวทางด้วย Python | ไลบรารีหลัก | ผลลัพธ์/ตัวชี้วัด |
---|---|---|---|
ตรวจสถานะเพจ (200/3xx/4xx/5xx) | ดึง URL จาก sitemap แล้วยิง HEAD/GET แบบ batch | requests, concurrent.futures | Rate ของ 200, รายการ 404/Redirect loop |
On-page audit เร็ว ๆ | ดึง Title, Canonical, H1, รูปที่ไม่มี alt | BeautifulSoup (bs4), lxml | สัดส่วนเพจที่ครบองค์ประกอบ |
Internal links เบื้องต้น | นับลิงก์ในเนื้อหา/Anchor text สำคัญ | BeautifulSoup, urllib.parse | Average internal links/หน้า, orphan pages |
สรุปรายงานสำหรับทีม | รวมผลเป็นตาราง/CSV ส่งต่อแก้ไข | pandas | ไฟล์ CSV พร้อมคอลัมน์ actionable |
ตั้งค่าสภาพแวดล้อม
# สร้าง virtual environment และติดตั้งไลบรารีหลัก
python -m venv .venv
# macOS/Linux
source .venv/bin/activate
# Windows
# .venv\Scripts\activate
pip install requests beautifulsoup4 pandas lxml
สคริปต์ตัวอย่าง: ดึง URL จาก sitemap > ตรวจสถานะ > Audit เบื้องต้น
import requests, csv, time, re
from urllib.parse import urljoin, urlparse
from bs4 import BeautifulSoup
import pandas as pd
SITEMAP_URL = "https://www.example.com/sitemap.xml" # แทนที่โดเมนของคุณ
def get_urls_from_sitemap(sitemap_url):
r = requests.get(sitemap_url, timeout=30)
r.raise_for_status()
soup = BeautifulSoup(r.text, "xml")
urls = [loc.text.strip() for loc in soup.find_all("loc")]
return urls
def fetch_page(url):
try:
r = requests.get(url, timeout=30, headers={"User-Agent":"Mozilla/5.0"})
status = r.status_code
html = r.text if r.ok else ""
return status, html
except requests.RequestException:
return None, ""
def audit_html(html, base):
if not html:
return {"title":"", "canonical":"", "h1_count":0, "img_missing_alt":0, "internal_links":0}
soup = BeautifulSoup(html, "lxml")
title = (soup.title.string.strip() if soup.title and soup.title.string else "")
canonical_tag = soup.find("link", rel=lambda v: v and "canonical" in v.lower())
canonical = canonical_tag["href"].strip() if canonical_tag and canonical_tag.has_attr("href") else ""
h1_count = len(soup.find_all("h1"))
img_missing_alt = sum(1 for img in soup.find_all("img") if not img.get("alt"))
internal_links = 0
for a in soup.find_all("a", href=True):
href = urljoin(base, a["href"])
if urlparse(href).netloc == urlparse(base).netloc:
internal_links += 1
return {
"title": title, "canonical": canonical, "h1_count": h1_count,
"img_missing_alt": img_missing_alt, "internal_links": internal_links
}
def run_audit():
rows = []
urls = get_urls_from_sitemap(SITEMAP_URL)
for i, url in enumerate(urls, start=1):
status, html = fetch_page(url)
audit = audit_html(html, url)
rows.append({
"url": url,
"status": status if status is not None else "ERROR",
**audit
})
if i % 50 == 0:
time.sleep(1) # ผ่อนโหลด
df = pd.DataFrame(rows)
df.to_csv("seo_audit.csv", index=False, encoding="utf-8-sig")
return df
if __name__ == "__main__":
df = run_audit()
print("Saved: seo_audit.csv, rows:", len(df))
แผน 30 วัน: ทำให้ “ทีมใช้จริง” ได้
สัปดาห์ | เป้าหมาย | งาน | ตัวชี้วัด |
---|---|---|---|
1 | POC | ตั้ง venv + ติดตั้งไลบรารี + รันสคริปต์ audit กับ 50–100 URLs | ได้ไฟล์ CSV ที่อ่านรู้เรื่อง |
2 | ขยายผล | เพิ่มฟิลด์ตรวจ (meta description length, noindex, robots) | พบ issues ที่ actionable 3–5 ประเภท |
3 | ออโต้ | ตั้ง cron/Task Scheduler ให้รันรายสัปดาห์ + ใส่ timestamp | รายงานอัปเดตอัตโนมัติ |
4 | ผูกการตัดสินใจ | แมป issue → เจ้าของงาน/ขั้นตอนแก้ไข และติดตาม SLA | เวลาปิด issue เฉลี่ยลดลง |
อ้างอิงภายนอก (สำหรับผู้เริ่มต้น)
- Python venv & pip: docs.python.org, pip.pypa.io
- Requests (HTTP): requests.readthedocs.io
- Beautiful Soup: bs4 doc
- pandas: pandas.pydata.org
- Sitemaps Protocol: sitemaps.org
- Google — Search Console API: developers.google.com
- Google — Analytics Data API (GA4): developers.google.com
- Core Web Vitals: web.dev
บริการที่เกี่ยวข้อง (Internal Links)
อ่านต่อ (บทความที่เกี่ยวข้อง)
- API สำหรับ non-dev คืออะไร
- Information Architecture คืออะไร
- ตัวอย่าง CTA ที่คลิกดี
- UX/UI บน Webflow ที่คอนเวิร์ต
FAQ (People Also Ask)
เริ่มใช้ Python สำหรับ SEO ต้องเขียนโค้ดเก่งไหม?
ไม่จำเป็น เริ่มจากสคริปต์ตัวอย่าง/แก้ไขเล็กน้อยแล้วค่อย ๆ เพิ่มฟิลด์ตรวจเฉพาะงานของคุณ
สคริปต์นี้ใช้กับเว็บใหญ่ได้ไหม?
ได้ แต่ควรแบ่งรอบการรัน ใส่เวลาเว้นคำขอ และเก็บแคชผลลัพธ์เพื่อลดโหลดเซิร์ฟเวอร์
จะต่อ Search Console/GA4 ตรง ๆ ได้อย่างไร?
เริ่มจากอ่านเอกสาร API และใช้ไลบรารีอย่าง google-api-python-client หรือส่งออก CSV มาก่อนแล้วค่อยแปลงด้วย pandas
อัปเดตล่าสุด: 24 Aug 2025
เกี่ยวกับผู้เขียน
Vision X Brain Team — ทีม Website/SEO/CRO & Automation เราช่วยวางเพลย์บุ๊ก SEO เชิงเทคนิค + สคริปต์อัตโนมัติสำหรับองค์กรที่ต้องการสเกลผลลัพธ์อย่างมีวินัย
ก่อนปรับ UX คนเข้าเว็บแล้วออกเลยค่ะ แต่พอรีดีไซน์ใหม่ กลายเป็นจุดที่ปิดการขายได้ดีที่สุดแทน!

หลังรีแบรนด์กับ Vision X Brain ยอดขายพุ่ง x3 ภายใน 2 เดือน!

เปลี่ยนเว็บกับ Vision X Brain แค่ไม่กี่วัน ลูกค้าใหม่เริ่มเข้าใจธุรกิจเราทันที

หลังรีดีไซน์กับ Vision X Brain ลูกค้าระดับองค์กรเริ่มเข้ามาจองงานผ่านเว็บไซต์เอง — ไม่ต้องพึ่งคอนเนคชั่นเหมือนก่อน

หลังจากเปลี่ยนเว็บไซต์กับ Vision X Brain ผู้ใช้งานกล้ากดทดลองระบบตั้งแต่หน้าแรก — ไม่ต้องตาม โทร หรืออธิบายซ้ำอีก

Recent Blog

ค้นพบข้อดีของ responsive web design พร้อมเคล็ดลับเพิ่มยอดขายและสร้างประสบการณ์เว็บที่ดีกับลูกค้า เหมาะสำหรับธุรกิจออนไลน์ยุคใหม่ปี 2025

ค้นพบข้อดีของ responsive web design พร้อมเคล็ดลับเพิ่มยอดขายและสร้างประสบการณ์เว็บที่ดีกับลูกค้า เหมาะสำหรับธุรกิจออนไลน์ยุคใหม่ปี 2025
