Logo

© 2026 Diki Atmodjo. All rights reserved.

Extract Internal Links dan Anchor Text dari Halaman Web

Diki AtmodjoDiki Atmodjo
4 min read
Cover Image for Extract Internal Links dan Anchor Text dari Halaman Web

Internal link adalah salah satu pilar utama dalam Technical SEO yang sering kali terlupakan. Padahal, struktur link yang solid bukan hanya membantu Googlebot melakukan crawling dengan lebih efisien, tapi juga mendistribusikan link equity (referensi) ke halaman-halaman penting di website kita.

Melakukan audit internal link secara manual tentu sangat melelahkan, apalagi jika jumlah halamannya mencapai ratusan bahkan ribuan. Maka dari itu, kita butuh cara yang lebih cerdas dan cepat.

Dalam artikel kali ini, saya akan berbagi script Python sederhana untuk membantumu mengekstrak semua link beserta anchor text-nya secara otomatis.

Persiapan Sebelum Memulai

Untuk menjalankan script ini, pastikan kamu sudah menginstal beberapa library Python berikut:

pip install requests beautifulsoup4 pandas
  • Requests: Untuk mengambil data HTML dari URL.

  • BeautifulSoup: Untuk melakukan parsing atau membedah elemen HTML.

  • Pandas: Untuk mengolah data dan menyimpannya ke format CSV.

Kamu bisa mengunduh script ini dari github repo-ku. Script ini akan membaca daftar URL dari file CSV, mengambil semua link yang ada di halaman tersebut, dan menyimpannya kembali ke file CSV baru.

Cara Kerja Script Ini

1. Import Library (Persiapan "Alat Perang")

import requests
from bs4 import BeautifulSoup
import pandas as pd
from urllib.parse import urljoin
  • requests: Library untuk melakukan HTTP request. Bayangkan ini seperti browser yang memanggil sebuah URL untuk mendapatkan kode HTML-nya.

  • BeautifulSoup: Ini adalah "pisau bedah" kita. Library ini akan mengubah tumpukan kode HTML yang berantakan menjadi struktur data yang bisa kita cari elemen-elemennya (seperti tag <a>, <h1>, dsb).

  • pandas: Library standar untuk olah data (Data Science). Di sini fungsinya untuk membaca file CSV dan menyimpannya kembali dengan rapi.

  • urljoin: Fungsi penting untuk menangani relative URL. Jika script menemukan link /kontak, urljoin akan otomatis mengubahnya menjadi https://domain.com/kontak.

2. Konfigurasi Path File

INPUT_FILE = "input.csv"
OUTPUT_FILE = "output_links.csv"

Di sini kita menentukan di mana file daftar URL berada (input.csv) dan di mana hasil scraping akan disimpan. Penggunaan huruf r sebelum tanda kutip (string) sangat penting di Windows agar karakter backslash (\) tidak dianggap sebagai error.

3. Loop dan Request (Proses Pengambilan Data)

for url in df["url"]:
    try:
        response = requests.get(url, timeout=10)
        response.raise_for_status()

        soup = BeautifulSoup(response.text, "html.parser")
  • for url in df["url"]: Script akan membaca kolom "url" di CSV kamu satu per satu.

  • requests.get(url, timeout=10): Mengambil data dari web. Kita beri timeout=10 detik agar script tidak "hang" jika websitenya lambat.

  • response.raise_for_status(): Jika URL tersebut error (misal 404 atau 500), baris ini akan menghentikan proses untuk URL tersebut dan lanjut ke blok except.

  • html.parser: Memberitahu BeautifulSoup bahwa data yang kita berikan adalah dokumen HTML.

links = soup.find_all("a")

for link in links:
    href = link.get("href")
    anchor_text = link.get_text(strip=True)
  • find_all("a"): Mencari semua elemen link di halaman tersebut.

  • link.get("href"): Mengambil isi dari atribut href (tujuan link).

  • link.get_text(strip=True): Mengambil teks yang diklik oleh user (anchor text). Fungsi strip=True digunakan untuk membersihkan spasi kosong atau baris baru yang tidak perlu.

5. Konversi dan Penyimpanan Data

if href:
    full_url = urljoin(url, href)

    results.append({
        "source_page": url,
        "link_url": full_url,
        "anchor_text": anchor_text
    })
  • if href:: Memastikan kita hanya memproses tag <a> yang memang punya link (menghindari link kosong).

  • results.append(...): Kita memasukkan data (URL asal, URL tujuan, dan teksnya) ke dalam sebuah "keranjang" besar bernama results dalam bentuk dictionary.

6. Export ke CSV

output_df = pd.DataFrame(results)
output_df.to_csv(OUTPUT_FILE, index=False)

Setelah semua URL selesai diperiksa, semua data di dalam "keranjang" results diubah menjadi tabel (DataFrame) oleh Pandas, lalu disimpan menjadi file CSV baru tanpa menyertakan kolom index angka di sebelah kiri (index=False).

Apa yang Harus Dilakukan Setelahnya?

Setelah mendapatkan file output_links.csv, kamu bisa melakukan beberapa hal:

  • Cek Anchor Text: Apakah ada banyak link dengan tulisan "klik di sini" atau "baca selengkapnya"? Jika iya, segera ganti dengan kata kunci yang lebih deskriptif.

  • Identifikasi Broken Links: Kamu bisa mengembangkan script ini lebih lanjut untuk mengecek status code (200, 404, atau 301) dari setiap link yang ditemukan.

  • Analisis Kedalaman Link: Pastikan halaman penting tidak terkubur terlalu dalam dari homepage.

Menggunakan Python untuk kebutuhan Technical SEO seperti ini akan sangat menghemat waktumu. Jika ada pertanyaan mengenai script di atas atau ada kendala saat mencoba, jangan ragu untuk berdiskusi dengan saya di LinkedIn ya!

Selamat mencoba!

Artikel terkait
Extract Internal Links dan Anchor Text dari Halaman Web | Diki Atmodjo