Pengenalan Library Python untuk SEO
Kalau kamu adalah praktisi SEO sudah mulai melirik Python untuk mendukung task SEO kamu, ada empat library yang menurut pengalamanku bakalan sering banget kamu pakai: requests, BeautifulSoup, pandas, dan lxml.
Kelimanya ini seperti sudah jadi amunisi wajib buat SEO profesional yang menggunakan Python untuk mengerjakan task atau project-nya.
Ada yang tugasnya ambil data dari web, ada yang fokus parsing HTML, ada yang jago analisis data, ada juga yang super cepat untuk urusan XML/HTML parsing.
Kenapa penting?
- requests → Ambil data dari website lewat HTTP request
- BeautifulSoup → Scraping dan parsing HTML
- pandas → Analisis dan manipulasi data SEO
- lxml → Parsing HTML/XML yang cepat dan powerful
Buat yang belum install Python, kamu bisa baca panduannya di cara install Python di Windows.
Kalau udah siap, kamu tinggal install semuanya via pip:
pip install requests beautifulsoup4 pandas lxml
Menggunakan Requests untuk Optimasi SEO
Nah setelah kamu install Python di PC-mu, sekarang saatnya kamu mulai mengumpulkan “amunisi” untuk “senjata” barumu ini. Kita mulai dengan library pertama, yaitu requests.
Bayangkan requests ini seperti punya asisten pribadi yang bisa kita suruh untuk cari tahu tentang informasi terbaru dari tetangga 😀. Dengan library ini, kamu bisa:
- Mengambil data dari URL (GET)
- Mengirimkan data (POST)
- Mengatur cookies dan header
- Mengecek status kode HTTP
- Memantau uptime website
Contoh simple: cek status halaman
import requests
url = "https://namadomain/blog-artikel"
response = requests.get(url)
print(response.status_code) # 200 kalau OK
Kalau kamu mau mengelola cookies atau header, requests juga gampang diatur. Contohnya untuk meniru browser:
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
Tips: Kalau sering kena error
ConnectionError
atau timeout, coba gunakan parametertimeout
atautry-except
supaya script tetap jalan.
BeautifulSoup: Ekstraksi Data untuk Analisis SEO
Kalau requests ibarat tukang ambil data, BeautifulSoup itu tukang sortirnya. Dia bisa nyari meta tag, H1, internal link, sampai anchor text.
Ambil title dan meta description
from bs4 import BeautifulSoup
import requests
url = "https://namadomain/blog-artikel"
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
title = soup.title.string
description = soup.find("meta", attrs={"name": "description"})["content"]
print("Title:", title)
print("Meta Description:", description)
Perbedaan parsing HTML dengan lxml?
BeautifulSoup lebih ramah untuk pemula dan error-tolerant. Sedangkan lxml lebih cepat tapi agak strict dengan struktur HTML.
Kegunaan untuk SEO:
- Mengecek broken links
- Mengambil semua internal & external links
- Mengumpulkan heading tags untuk analisis konten
pandas: Analisis Data SEO yang Efektif
Kalau sudah dapat data, library pandas, kombinasi dari “panel data”, akan mengubahnya jadi format tabel (DataFrame) seperti Google Sheets atau Excel sehingga mudah dianalisis.
Contoh kegunaan:
- Menggabungkan data hasil scraping dengan data dari Google Search Console.
- Menyaring halaman dengan CTR rendah.
- Mengelompokkan keyword berdasarkan kategori.
Contoh simple: filter URL dari CSV
import pandas as pd
df = pd.read_csv("gsc_data.csv")
filtered = df[df['clicks'] < 100] # Filter halaman dengan clicks < 100
print(filtered)
Kalau mau visualisasi, pandas bisa dipadukan dengan matplotlib:
df['clicks'].plot(kind='bar')
Memahami LXML untuk Parsing Data yang Lebih Cepat
Kalau kamu butuh kecepatan parsing HTML/XML, lxml adalah pilihan tepat. Library ini mendukung XPath, yang sangat powerful untuk mencari elemen tertentu.
Contoh parsing XML sitemap
from lxml import etree
import requests
url = "https://namadomain/sitemap.xml"
response = requests.get(url)
root = etree.fromstring(response.content)
for loc in root.xpath("//ns:loc", namespaces={'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'}):
print(loc.text)
Kelebihan lxml:
- Parsing lebih cepat dibanding parser default
- Mendukung XPath dan XSLT
- Cocok untuk mengolah file besar seperti XML Sitemap
Integrasi Library Python dalam Workflow SEO Harian
4 library ini bisa bekerja sama dalam satu alur:
- requests → ambil data dari web
- BeautifulSoup / lxml → parsing HTML/XML
- pandas → analisis dan filter data
- Export → simpan hasil analisis ke CSV atau Excel
Contoh Workflow: Cek Broken Links
import requests
from bs4 import BeautifulSoup
import pandas as pd
urls = ["https://example.com", "https://example.com/about"]
broken_links = []
for url in urls:
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
for link in soup.find_all("a", href=True):
try:
res = requests.get(link['href'])
if res.status_code == 404:
broken_links.append(link['href'])
except:
broken_links.append(link['href'])
df = pd.DataFrame(broken_links, columns=["Broken Link"])
df.to_csv("broken_links.csv", index=False)
Best practices:
- Gunakan User-Agent custom untuk menghindari blokir
- Tambahkan
sleep
antar request untuk mengurangi risiko kena rate limit - Simpan data mentah sebelum dianalisis
Penutup
Menguasai requests, BeautifulSoup, pandas, dan lxml akan membuat proses optimasi SEO kamu jauh lebih efisien.
Kalau website itu ibarat rumah digitalmu, Python itu seperti smart home system kamu yang bisa menghidupkan-mematikan lampu dengan schedule atau juga robot vacuum cleaner yang bisa membersihkan satu ruangan sampe ke sudut tersempitnya.
Sudah siap bikin tools SEO sendiri?