Library Python Wajib untuk SEO: requests, BeautifulSoup, pandas, lxml

Diki AtmodjoDiki Atmodjo
4 min read
Cover Image for Library Python Wajib untuk SEO: requests, BeautifulSoup, pandas, lxml

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 parameter timeout atau try-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:

  1. requests → ambil data dari web
  2. BeautifulSoup / lxml → parsing HTML/XML
  3. pandas → analisis dan filter data
  4. Export → simpan hasil analisis ke CSV atau Excel
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?

Artikel terkait
Library Python Wajib untuk SEO: requests, BeautifulSoup, pandas, lxml | Diki Atmodjo