🔥 แค่ 5 นาที เปลี่ยนมุมมองได้เลย

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 เฉลี่ยลดลง

อ้างอิงภายนอก (สำหรับผู้เริ่มต้น)

บริการที่เกี่ยวข้อง (Internal Links)

อ่านต่อ (บทความที่เกี่ยวข้อง)


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 เชิงเทคนิค + สคริปต์อัตโนมัติสำหรับองค์กรที่ต้องการสเกลผลลัพธ์อย่างมีวินัย

แชร์

Recent Blog

ข้อดีของ responsive web design ที่ธุรกิจยุคใหม่ต้องรู้ ปี 2025

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

ข้อดีของ responsive web design ที่ธุรกิจยุคใหม่ต้องรู้ ปี 2025

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

การวิเคราะห์ UX/UI เบื้องต้น สำหรับเจ้าของธุรกิจและผู้ทำเว็บไซต์ 2025