#!/usr/bin/env python3
"""
Publish 3 Artikel StudioSoft — Split: Fintech/E-commerce | SEO Tools | AI Agent
Listikel format, SEO Playbook, Yoast hijau + WA Button
"""
import json, os, base64, urllib.request, time, re, io, sys, urllib.error

DOMAIN = "https://studiosoft.id"
WP_USER = "bambangbot"
WP_APP_PASS = "q26r RePo BVy6 pwU2 F3z7 ouyl"
AUTH = base64.b64encode(f"{WP_USER}:{WP_APP_PASS}".encode()).decode()
HEADERS = {"Authorization": f"Basic {AUTH}", "Content-Type": "application/json", "User-Agent": "AtunBot/1.0"}

WA_LINK = "https://wa.me/6281935000624?text=Halo%20StudioSoft!%20Saya%20ingin%20konsultasi%20tentang%20strategi%20SEO%20digital."
CTA_TEXT = "💰 Gratis Konsultasi — Hubungi Kami via WhatsApp"

CAT_SEO = 330
CAT_DIGITAL_MARKETING = 329
ASSET_DIR = "/home/mantapman/.hermes/profiles/atun/workspace/artikel_seo_split_images"
os.makedirs(ASSET_DIR, exist_ok=True)

def wp_request(endpoint, method="GET", data=None):
    url = f"{DOMAIN}/wp-json/wp/v2/{endpoint}"
    body = json.dumps(data).encode() if data else None
    h = dict(HEADERS)
    req = urllib.request.Request(url, data=body, headers=h, method=method)
    try:
        with urllib.request.urlopen(req, timeout=30) as r:
            return json.loads(r.read())
    except urllib.error.HTTPError as e:
        print(f"  ⚠️ HTTP {e.code}: {e.read().decode()[:200]}")
        return None
    except Exception as e:
        print(f"  ⚠️ Error: {e}")
        return None

def ensure_tag(name):
    existing = json.loads(urllib.request.urlopen(f"{DOMAIN}/wp-json/wp/v2/tags?per_page=100&orderby=name").read())
    tag_map = {t["name"].lower(): t for t in existing}
    key = name.lower()
    if key in tag_map:
        print(f"   ✓ Tag '{name}' exists (ID: {tag_map[key]['id']})")
        return tag_map[key]["id"]
    data = {"name": name}
    result = wp_request("tags", method="POST", data=data)
    if result and "id" in result:
        print(f"   ✅ Tag '{name}' created (ID: {result['id']})")
        return result["id"]
    print(f"   ⚠️ Gagal membuat tag '{name}'")
    return None

PEKEL_IMAGE = "https://images.pexels.com/photos/8386437/pexels-photo-8386437.jpeg"

def upload_image(url, filename):
    print(f"   Downloading: {url}")
    try:
        req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
        with urllib.request.urlopen(req, timeout=30) as r:
            img_bytes = r.read()
        # Crop/Resize ke 1000x567
        from PIL import Image
        import io
        img = Image.open(io.BytesIO(img_bytes))
        target_w, target_h = 1000, 567
        img_w, img_h = img.size
        ratio = target_w / target_h
        if img_w / img_h > ratio:
            new_h = img_h
            new_w = int(new_h * ratio)
        else:
            new_w = img_w
            new_h = int(new_w / ratio)
        img_resized = img.resize((new_w, new_h), Image.LANCZOS)
        left = (new_w - target_w) // 2
        top = (new_h - target_h) // 2
        img_cropped = img_resized.crop((left, top, left + target_w, top + target_h))
        buf = io.BytesIO()
        img_cropped.save(buf, "JPEG", quality=90)
        img_bytes = buf.getvalue()
        local_path = os.path.join(ASSET_DIR, filename)
        with open(local_path, "wb") as f:
            f.write(img_bytes)
        print(f"   Image prepared: {target_w}x{target_h} ({len(img_bytes)/1024:.0f} KB)")
        upload_url = f"{DOMAIN}/wp-json/wp/v2/media"
        h = {"Authorization": f"Basic {AUTH}", "Content-Disposition": f'attachment; filename="{filename}"', "Content-Type": "image/jpeg"}
        req2 = urllib.request.Request(upload_url, data=img_bytes, headers=h, method="POST")
        with urllib.request.urlopen(req2, timeout=60) as r2:
            result = json.loads(r2.read())
            print(f"   ✅ Uploaded (ID: {result['id']})")
            return result["id"], result["source_url"]
    except Exception as e:
        print(f"   ⚠️ Image error: {e}")
        return None, None

def build_html(konten, cta_title, cta_desc):
    parts = []
    for section in konten:
        if section["type"] == "paragraf":
            parts.append(f'<p>{section["teks"]}</p>')
        elif section["type"] == "subjudul":
            parts.append(f'<h2 class="wp-block-heading">{section["teks"]}</h2>')
        elif section["type"] == "list_poin":
            items = "".join(f'<li>{p}</li>' for p in section["poin"])
            parts.append(f'<ul>{items}</ul>')
    cta = f'''
<!-- wp:separator --><hr class="wp-block-separator has-alpha-channel-opacity"/><!-- /wp:separator -->
<!-- wp:heading {{"textAlign":"center"}} --><h2 class="wp-block-heading has-text-align-center">{cta_title}</h2><!-- /wp:heading -->
<!-- wp:paragraph {{"align":"center"}} --><p class="has-text-align-center">{cta_desc}</p><!-- /wp:paragraph -->
<!-- wp:buttons {{"layout":{{"type":"flex","justifyContent":"center"}}}} -->
<div class="wp-block-buttons">
<!-- wp:button {{"backgroundColor":"#1E40AF","textColor":"white","className":"is-style-fill"}} -->
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-white-color has-text-color has-background has-link-decoration wp-element-button" href="{WA_LINK}" style="background-color:#1E40AF;" target="_blank" rel="noreferrer noopener"><strong>💬 {CTA_TEXT}</strong></a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
<!-- wp:paragraph {{"align":"center"}} --><p class="has-text-align-center">Atau kunjungi <strong><a href="https://studiosoft.id">studiosoft.id</a></strong> untuk info lebih lanjut</p><!-- /wp:paragraph -->
'''
    parts.append(cta)
    return "\n".join(parts)

def publish(artikel, cat_ids, tag_ids, img_url, img_file):
    print(f"\n{'='*60}")
    print(f"📝 {artikel['judul']}")
    print(f"{'='*60}")
    img_id, _ = upload_image(img_url, img_file)
    content = build_html(artikel["konten"], artikel["cta_title"], artikel["cta_desc"])
    wc = len(re.sub(r'<[^>]+>', '', content).split())
    print(f"   📊 ~{wc} kata")
    post_data = {
        "title": artikel["judul"], "slug": artikel["slug"],
        "content": content, "status": "publish",
        "categories": cat_ids, "tags": tag_ids,
        "meta": {
            "_yoast_wpseo_title": f"{artikel['judul']} | StudioSoft Surabaya",
            "_yoast_wpseo_metadesc": artikel["meta_desc"],
            "_yoast_wpseo_focuskw": artikel["focus_keyword"],
            "_yoast_wpseo_meta-robots-noindex": "0",
            "_yoast_wpseo_meta-robots-nofollow": "0",
            "_yoast_wpseo_opengraph-title": artikel["judul"],
            "_yoast_wpseo_opengraph-description": artikel["meta_desc"],
        }
    }
    if img_id: post_data["featured_media"] = img_id
    result = wp_request("posts", method="POST", data=post_data)
    if result and "id" in result:
        print(f"\n   ✅ ✅ ✅ BERHASIL!")
        print(f"   ID: {result['id']}")
        print(f"   Link: {result['link']}")
        return result
    print("   ❌ GAGAL")
    return None

# ========================================================
# ARTIKEL 1: E-COMMERCE & FINTECH SEO
# ========================================================
ARTIKEL_1 = {
    "judul": "Strategi SEO untuk E-commerce dan Fintech di 2026",
    "slug": "strategi-seo-ecommerce-fintech-2026",
    "meta_desc": "Panduan lengkap strategi SEO khusus untuk industri e-commerce dan fintech di 2026. Optimasi EEAT, product page, trust signals, dan technical SEO untuk hasil maksimal.",
    "focus_keyword": "strategi SEO e-commerce fintech 2026",
    "cta_title": "Siap Optimasi SEO E-commerce atau Fintech Anda?",
    "cta_desc": "StudioSoft — Partner Pertumbuhan Bisnis Berbasis Data siap membantu bisnis e-commerce dan fintech Anda membangun strategi SEO yang terukur. Dapatkan konsultasi gratis tanpa biaya.",
    "konten": [
        {"type": "paragraf", "teks": "E-commerce dan fintech adalah dua sektor dengan pertumbuhan digital paling pesat di Indonesia. Tapi di balik peluang besar itu, ada tantangan SEO yang tidak bisa dianggap remeh. Persaingan kata kunci sangat ketat, ekspektasi pengguna tinggi, dan Google semakin pintar dalam menilai kualitas konten."},
        {"type": "paragraf", "teks": "Artikel ini akan membahas <strong>strategi SEO khusus</strong> yang sudah terbukti efektif untuk e-commerce dan fintech di tahun 2026 — dari optimasi teknis hingga pendekatan konten yang humanis."},
        {"type": "subjudul", "teks": "1. E-EAT: Kunci SEO untuk Fintech"},
        {"type": "paragraf", "teks": "Google sangat ketat dalam menilai <strong>Experience, Expertise, Authoritativeness, Trustworthiness (E-EAT)</strong> untuk website di industri keuangan. Fintech wajib memiliki: halaman 'Tentang Kami' dengan profil tim dan izin OJK, halaman kebijakan privasi yang komprehensif, konten edukasi keuangan yang ditulis oleh atau direview ahli bersertifikat, serta trust signals seperti testimoni dan sertifikasi keamanan."},
        {"type": "paragraf", "teks": "Kesalahan paling fatal: konten fintech yang ditulis asal tanpa mencantumkan sumber kredibel. Google bisa langsung menurunkan peringkat jika mencurigai konten tidak akurat. Pastikan setiap artikel fintech menyertakan referensi, data statistik, atau opini dari praktisi industri yang terverifikasi."},
        {"type": "subjudul", "teks": "2. Riset Keyword untuk Fintech dan E-commerce"},
        {"type": "paragraf", "teks": "Riset keyword untuk fintech dan e-commerce berbeda dengan industri lain. Untuk fintech, fokus pada <strong>long-tail keyword</strong> yang menunjukkan intent spesifik — misalnya 'cara daftar pinjaman online OJK' atau 'rekomendasi aplikasi investasi reksadana terbaik'. Keyword seperti ini memiliki volume lebih rendah tapi konversi lebih tinggi karena pengguna sudah memiliki niat jelas."},
        {"type": "paragraf", "teks": "Untuk e-commerce, riset keyword harus mencakup: <strong>product keywords</strong> (nama produk spesifik), <strong>category keywords</strong> (kategori produk), <strong>brand keywords</strong> (merek tertentu), dan <strong>comparison keywords</strong> (perbandingan produk). Tools seperti Semrush Keyword Magic Tool dan Ahrefs Keyword Explorer sangat membantu untuk menemukan keyword dengan volume dan kesulitan seimbang."},
        {"type": "subjudul", "teks": "3. Optimasi Product Page untuk E-commerce"},
        {"type": "paragraf", "teks": "Product page adalah halaman paling penting di toko online. Tantangannya: bagaimana mengoptimasi ribuan produk tanpa terkena duplicate content. Solusinya: <strong>deskripsi original</strong> untuk setiap produk, user-generated content (review dan rating), FAQ produk yang informatif, serta structured data (Product schema, Review schema, dan BreadcrumbList)."},
        {"type": "paragraf", "teks": "Gunakan tools seperti Ahrefs atau Screaming Frog untuk audit massal — identifikasi halaman produk mana yang memiliki konten tipis dan mana yang perlu dioptimasi. Perhatikan juga masalah canonical URL, parameter sorting, dan pagination yang sering menjebak e-commerce berskala besar."},
        {"type": "subjudul", "teks": "4. Kategori Pages yang Optimal"},
        {"type": "paragraf", "teks": "Halaman kategori sering diabaikan, padahal ini adalah pintu masuk utama pengunjung. Pastikan setiap halaman kategori memiliki: <strong>konten pengantar yang unik</strong> (minimal 300 kata), subkategori yang terorganisir, internal linking strategis ke produk unggulan, dan breadcrumb navigation untuk memudahkan crawling Google."},
        {"type": "paragraf", "teks": "Hindari kategori generik seperti 'Produk Terbaru' — buat kategori yang spesifik dengan kata kunci ekor panjang yang relevan dengan pencarian pengguna. Contoh: 'Sepatu Lari Pria Untuk Jalan Kaki Harian' lebih baik daripada sekadar 'Sepatu Pria'. Kategori spesifik seperti ini lebih mungkin muncul di hasil pencarian Google."},
        {"type": "subjudul", "teks": "5. Technical SEO untuk E-commerce"},
        {"type": "paragraf", "teks": "E-commerce punya masalah teknis yang unik: parameter URL, pagination, filter produk, hingga infinite scroll. Beberapa hal wajib: <strong>canonical tags</strong> untuk mencegah duplicate content, <strong>pagination dengan rel next/prev</strong>, <strong>XML sitemap</strong> yang terstruktur per kategori, dan <strong>Core Web Vitals</strong> yang hijau terutama Largest Contentful Paint (LCP)."},
        {"type": "paragraf", "teks": "Kecepatan loading sangat kritis — setiap detik keterlambatan bisa menurunkan konversi hingga 7%. Optimasi gambar, gunakan lazy loading, dan pertimbangkan CDN untuk mempercepat akses pengguna dari berbagai wilayah Indonesia."},
        {"type": "subjudul", "teks": "6. Trust Signals untuk Fintech"},
        {"type": "paragraf", "teks": "Kepercayaan adalah segalanya di industri keuangan. Optimasi trust signals meliputi: izin resmi OJK yang ditampilkan jelas di header/footer, sertifikat SSL dan keamanan data, halaman Syarat & Ketentuan yang lengkap, customer support yang responsif, serta kemudahan menghubungi tim — alamat kantor, telepon, WhatsApp."},
        {"type": "paragraf", "teks": "Google juga memperhatikan review dan rating di platform eksternal seperti Google Maps dan Trustpilot. Fintech dengan rating bagus dan review positif cenderung mendapat peringkat lebih baik karena dianggap lebih terpercaya oleh algoritma Google."},
        {"type": "subjudul", "teks": "7. Content Marketing untuk Fintech dan E-commerce"},
        {"type": "paragraf", "teks": "Konten marketing adalah salah satu cara paling efektif untuk membangun otoritas di kedua industri ini. Untuk fintech, buat konten edukasi keuangan seperti panduan investasi, cara memilih produk keuangan, dan tips mengelola keuangan pribadi. Konten seperti ini tidak hanya menarik trafik organik tapi juga membangun kepercayaan calon pengguna."},
        {"type": "paragraf", "teks": "Untuk e-commerce, konten yang efektif meliputi: panduan memilih produk, perbandingan produk, tutorial penggunaan, dan inspirasi gaya hidup. Konten-konten ini bisa dioptimasi untuk masuk ke AI Overview Google dengan format FAQ, listikel, dan panduan langkah demi langkah."},
        {"type": "subjudul", "teks": "8. Schema Markup untuk Fintech dan E-commerce"},
        {"type": "paragraf", "teks": "Schema markup adalah kode yang membantu Google memahami konten website Anda dengan lebih baik. Untuk fintech, gunakan schema: Organization (dengan logo dan alamat), FAQPage untuk halaman pertanyaan umum, dan Article atau NewsArticle untuk konten edukasi. Untuk e-commerce, schema yang wajib ada: Product (dengan harga, ketersediaan, dan ulasan), Review, dan BreadcrumbList."},
        {"type": "paragraf", "teks": "Schema markup yang tepat bisa membuat website Anda tampil lebih menarik di hasil pencarian dengan rich snippet — meningkatkan click-through rate secara signifikan."},
        {"type": "subjudul", "teks": "9. Mobile-First Optimization"},
        {"type": "paragraf", "teks": "Lebih dari 80% pengguna e-commerce Indonesia mengakses melalui smartphone. Pastikan website Anda mobile-friendly dengan: <strong>desain responsif</strong>, tombol CTA yang mudah disentuh, formulir yang sederhana dengan minimal input, dan navigasi yang intuitif. Google menggunakan mobile-first indexing — artinya versi mobile website Anda yang menjadi patokan utama peringkat."},
        {"type": "paragraf", "teks": "Untuk fintech, mobile optimization lebih kritis lagi karena banyak pengguna mengakses layanan keuangan langsung dari smartphone. Pastikan proses pendaftaran, verifikasi, dan transaksi berjalan mulus di layar kecil tanpa hambatan."},
    ]
}

# ========================================================
# ARTIKEL 2: SEO TOOLS (Ahrefs, Semrush, Open SEO)
# ========================================================
ARTIKEL_2 = {
    "judul": "Rekomendasi SEO Tools Terbaik 2026: Ahrefs, Semrush, hingga Open SEO",
    "slug": "rekomendasi-seo-tools-terbaik-2026-ahrefs-semrush-open-seo",
    "meta_desc": "Perbandingan lengkap SEO tools terbaik 2026: Ahrefs, Semrush, Open SEO, Google Search Console, hingga tools SEO lainnya. Cari tools yang paling cocok untuk bisnis Anda.",
    "focus_keyword": "rekomendasi SEO tools 2026 Ahrefs Semrush",
    "cta_title": "Butuh Bantuan Memilih Tools SEO yang Tepat?",
    "cta_desc": "StudioSoft siap membantu Anda memilih dan mengoptimasi penggunaan SEO tools yang paling sesuai dengan kebutuhan bisnis. Konsultasi gratis tanpa biaya.",
    "konten": [
        {"type": "paragraf", "teks": "Memilih tools SEO yang tepat di tahun 2026 bukan perkara mudah. Ada puluhan tools di pasaran dengan harga, fitur, dan kelebihan masing-masing. Tapi dari sekian banyak pilihan, ada beberapa yang benar-benar layak dipertimbangkan — terutama untuk bisnis di Indonesia yang ingin serius di dunia SEO."},
        {"type": "paragraf", "teks": "Artikel ini mengulas <strong>7 SEO tools terbaik</strong> yang bisa Anda andalkan untuk memenangkan persaingan di halaman Google. Mulai dari yang premium seperti Ahrefs dan Semrush, yang open source seperti Open SEO, hingga yang gratis dari Google sendiri. Masing-masing punya kelebihan dan cocok untuk kebutuhan yang berbeda."},
        {"type": "subjudul", "teks": "1. Ahrefs — Raja Analisis Backlink dan Riset Konten"},
        {"type": "paragraf", "teks": "Ahrefs tetap menjadi tools nomor satu untuk <strong>analisis backlink dan riset kompetitor</strong> di 2026. Fitur Site Explorer memungkinkan Anda melihat profil backlink kompetitor secara detail: jumlah backlink, domain referring, anchor text distribution, hingga link yang baru hilang. Fitur Content Gap sangat berguna untuk menemukan keyword yang di-rank kompetitor tapi belum Anda bidik."},
        {"type": "paragraf", "teks": "Kelebihan Ahrefs: database backlink terbesar di industri dengan lebih dari 12 triliun link, data keyword yang akurat untuk 170 negara termasuk Indonesia, dan Rank Tracker yang real-time. Ahrefs juga punya Web Audit untuk memindai masalah teknis website. Kekurangan: harga mulai dari $99/bulan dan fitur tertentu hanya tersedia di paket mahal."},
        {"type": "subjudul", "teks": "2. Semrush — Platform SEO All-in-One dengan AI"},
        {"type": "paragraf", "teks": "Semrush bukan sekadar tools SEO — ia adalah <strong>platform marketing digital yang komprehensif</strong>. Di 2026, Semrush semakin canggih dengan integrasi AI yang mempercepat analisis dan memberikan rekomendasi lebih personal. Fitur unggulan: Position Tracking dengan update harian, Keyword Magic Tool dengan 25 miliar keyword, dan Site Audit dengan 140+ indikator teknis."},
        {"type": "paragraf", "teks": "Untuk agensi digital marketing seperti StudioSoft, Semrush adalah pilihan utama karena mencakup SEO, content marketing, social media, dan PPC dalam satu platform. Fitur SEO Content Template-nya bisa langsung memberi rekomendasi kata kunci, panjang artikel, dan sumber referensi berdasarkan halaman pesaing yang paling sukses."},
        {"type": "subjudul", "teks": "3. Open SEO — Alternatif Open Source yang Fleksibel"},
        {"type": "paragraf", "teks": "Open SEO adalah <strong>platform SEO open source</strong> yang makin populer di kalangan praktisi SEO Indonesia. Keunggulan utamanya: bisa diinstal di server sendiri (self-hosted), data tetap privat, dan biaya lebih terjangkau. Fitur batch analysis memungkinkan audit ribuan URL dalam satu waktu tanpa batasan kuota seperti yang sering ditemui di tools berbayar."},
        {"type": "paragraf", "teks": "Open SEO sangat cocok untuk perusahaan yang memiliki regulasi data ketat (seperti fintech) atau yang ingin kustomisasi penuh tanpa tergantung vendor. API yang terbuka juga memudahkan integrasi dengan sistem internal perusahaan."},
        {"type": "subjudul", "teks": "4. Google Search Console — Tools Gratis yang Wajib Dioptimasi"},
        {"type": "paragraf", "teks": "Jangan pernah melewatkan <strong>Google Search Console (GSC)</strong>. Tools gratis dari Google ini memberikan data langsung tentang performa website Anda di hasil pencarian Google. Fitur Performance Report menunjukkan keyword mana yang mengirim trafik, posisi rata-rata, dan click-through rate (CTR). Fitur Index Coverage mengidentifikasi halaman yang tidak terindeks."},
        {"type": "paragraf", "teks": "GSC juga memberikan notifikasi jika ada masalah teknis, manual actions, atau isu Core Web Vitals yang perlu segera diperbaiki. Untuk pemula, GSC adalah titik awal yang sempurna sebelum beralih ke tools berbayar yang lebih kompleks."},
        {"type": "subjudul", "teks": "5. Google Analytics 4 — Data Perilaku Pengguna"},
        {"type": "paragraf", "teks": "Google Analytics 4 (GA4) adalah tools analisis yang memberikan wawasan tentang <strong>bagaimana pengguna berinteraksi dengan website Anda</strong>. Data dari GA4 sangat penting untuk SEO karena menunjukkan halaman mana yang paling banyak dikunjungi, dari mana trafik berasal, dan bagaimana perilaku pengguna setelah masuk ke website."},
        {"type": "paragraf", "teks": "Integrasi GA4 dengan Google Search Console memberikan gambaran lengkap: keyword apa yang mendatangkan pengunjung, dan apa yang mereka lakukan setelah sampai di halaman Anda. Data bounce rate dan session duration bisa menjadi indikator kualitas konten yang mempengaruhi ranking."},
        {"type": "subjudul", "teks": "6. Screaming Frog — Spider SEO untuk Audit Mendalam"},
        {"type": "paragraf", "teks": "Screaming Frog adalah <strong>SEO spider tool</strong> yang crawls website Anda seperti Googlebot. Sangat berguna untuk audit teknis mendalam: menemukan broken links, redirect chains, duplicate content, missing meta tags, hingga masalah struktur URL. Versi gratis bisa crawl hingga 500 URL — cukup untuk website kecil hingga menengah."},
        {"type": "paragraf", "teks": "Untuk website e-commerce dengan ribuan produk, versi berbayar Screaming Frog sangat worth it. Fitur integrasinya dengan Google Analytics dan Search Console memungkinkan analisis data yang lebih kaya. Tools ini juga bisa mengekspor data ke spreadsheet untuk analisis lebih lanjut oleh tim SEO Anda."},
        {"type": "subjudul", "teks": "7. Google PageSpeed Insights & Core Web Vitals"},
        {"type": "paragraf", "teks": "Kecepatan website adalah faktor ranking yang tidak bisa ditawar. <strong>Google PageSpeed Insights</strong> memberikan skor performa website Anda di mobile dan desktop, lengkap dengan rekomendasi perbaikan yang spesifik. Perhatikan tiga metrik Core Web Vitals: LCP (Largest Contentful Paint) di bawah 2,5 detik, FID (First Input Delay) di bawah 100 ms, dan CLS (Cumulative Layout Shift) di bawah 0,1."},
        {"type": "paragraf", "teks": "Website yang lambat tidak hanya kalah di ranking pencarian — pengunjung juga akan segera meninggalkan halaman sebelum konten dimuat. Statistik menunjukkan 53% pengguna mobile akan meninggalkan halaman jika loading lebih dari 3 detik. Optimasi gambar, gunakan caching, dan pertimbangkan CDN untuk mempercepat akses."},
        {"type": "subjudul", "teks": "Tips Memilih Tools SEO yang Tepat"},
        {"type": "paragraf", "teks": "Tidak semua tools SEO cocok untuk semua bisnis. Beberapa pertimbangan sebelum memilih: <strong>anggaran</strong> — tools premium bisa mahal untuk UMKM, <strong>skala website</strong> — website besar butuh tools dengan batch processing, dan <strong>kompleksitas kebutuhan</strong> — apakah Anda butuh analisis backlink mendalam atau cukup monitoring keyword dasar."},
        {"type": "paragraf", "teks": "Rekomendasi kami: mulai dengan Google Search Console dan Google Analytics (gratis), kemudian tambahkan Ahrefs atau Semrush seiring pertumbuhan bisnis. Untuk audit mendalam, Screaming Frog adalah investasi yang sangat terjangkau dibandingkan manfaat yang diberikan."},
    ]
}

# ========================================================
# ARTIKEL 3: AI AGENT UNTUK SEO
# ========================================================
ARTIKEL_3 = {
    "judul": "AI Agent untuk SEO: Masa Depan Optimasi Mesin Pencari",
    "slug": "ai-agent-untuk-seo-masa-depan-optimasi-mesin-pencari",
    "meta_desc": "Pelajari bagaimana AI Agent mengubah dunia SEO di 2026. Dari riset keyword otomatis, content generation, hingga monitoring algoritma — semua jadi lebih cerdas dan efisien.",
    "focus_keyword": "AI Agent untuk SEO 2026",
    "cta_title": "Siap Mengadopsi AI Agent untuk Strategi SEO Anda?",
    "cta_desc": "StudioSoft siap membantu bisnis Anda mengintegrasikan AI Agent dalam strategi SEO untuk hasil yang lebih cepat, akurat, dan terukur. Konsultasi gratis tanpa biaya.",
    "konten": [
        {"type": "paragraf", "teks": "Tahun 2026 menjadi titik balik dalam dunia SEO. Kecerdasan buatan tidak lagi sekadar alat bantu — ia telah berevolusi menjadi <strong>AI Agent</strong> yang mampu merencanakan, mengeksekusi, dan mengevaluasi strategi SEO secara mandiri. Perubahan ini fundamental dan akan mengubah cara kita ber-SEO selamanya."},
        {"type": "paragraf", "teks": "Artikel ini akan membahas apa itu AI Agent untuk SEO, bagaimana cara kerjanya, apa saja yang bisa dilakukan, dan bagaimana bisnis Anda bisa memanfaatkannya untuk memenangkan persaingan di era pencarian berbasis AI."},
        {"type": "subjudul", "teks": "Apa Itu AI Agent untuk SEO?"},
        {"type": "paragraf", "teks": "AI Agent adalah <strong>sistem kecerdasan buatan otonom</strong> yang bisa merencanakan, mengambil keputusan, dan mengeksekusi tugas-tugas SEO tanpa campur tangan manusia secara terus-menerus. Berbeda dengan tools SEO tradisional yang hanya menyediakan data dan analisis untuk ditindaklanjuti manusia, AI Agent bisa bertindak berdasarkan data tersebut secara otomatis."},
        {"type": "paragraf", "teks": "Contoh sederhana: alih-alih Anda harus mengecek manual setiap hari keyword mana yang turun peringkat, AI Agent bisa mendeteksi perubahan itu dalam hitungan detik, menganalisis penyebabnya dengan membandingkan data historis, dan langsung menyesuaikan strategi konten — semuanya tanpa perlu Anda membuka dashboard tools SEO."},
        {"type": "subjudul", "teks": "1. Autonomous Keyword Research dengan Analisis Intent"},
        {"type": "paragraf", "teks": "AI Agent bisa melakukan riset keyword secara otomatis dengan analisis intent yang lebih dalam dari tools konvensional. Tidak sekadar melihat volume pencarian dan tingkat kesulitan, tapi juga memahami <strong>maksud di balik pencarian</strong> — apakah pengguna ingin membeli (transactional), belajar (informational), atau membandingkan (commercial investigation)."},
        {"type": "paragraf", "teks": "Agent ini bisa menjelajahi ribuan variasi keyword, menganalisis kompetitor untuk setiap keyword, dan menyusun prioritas berdasarkan potensi trafik, peluang konversi, dan relevansi dengan bisnis Anda. Hasil risetnya jauh lebih dalam daripada yang bisa dilakukan manual dalam waktu yang sama."},
        {"type": "subjudul", "teks": "2. Content Cluster Planning & Generation"},
        {"type": "paragraf", "teks": "Salah satu kekuatan utama AI Agent adalah kemampuannya merencanakan <strong>content cluster</strong> yang terstruktur untuk membangun top authority di niche tertentu. Agent ini menganalisis gap konten kompetitor, menentukan struktur artikel yang optimal (panjang, format, heading), menulis draf konten yang SEO-friendly, dan bahkan mengoptimasi meta title serta meta description."},
        {"type": "paragraf", "teks": "Hasilnya: produksi konten yang lebih cepat, lebih relevan dengan search intent, dan lebih terukur. Tapi ingat: AI Agent bukan pengganti kreativitas manusia sepenuhnya. Ia adalah <strong>asisten super</strong> yang mempercepat proses produksi, sementara strategi besar, brand voice, dan sentuhan manusia tetap diperlukan untuk hasil terbaik."},
        {"type": "subjudul", "teks": "3. Real-time Algorithm Change Detection"},
        {"type": "paragraf", "teks": "Salah satu kekuatan terbesar AI Agent adalah kemampuannya <strong>mendeteksi perubahan algoritma Google secara real-time</strong>. Ketika Google melakukan update — baik yang diumumkan maupun yang diam-diam — AI Agent bisa langsung menganalisis dampaknya pada website Anda. Ia membandingkan data sebelum dan sesudah update, mengidentifikasi halaman mana yang terpengaruh, dan merekomendasikan penyesuaian strategi."},
        {"type": "paragraf", "teks": "Yang lebih penting: AI Agent melakukan semua ini dalam hitungan jam, bukan minggu seperti cara tradisional yang mengandalkan analisis manual atau forum diskusi. Response time yang cepat ini bisa menjadi pembeda antara website yang turun peringkat dan yang justru naik setelah algoritma update."},
        {"type": "subjudul", "teks": "4. Automated Technical SEO Audit & Fix"},
        {"type": "paragraf", "teks": "Technical SEO adalah bidang yang paling cocok untuk AI Agent karena sifatnya yang repetitive dan berbasis aturan. Agent bisa secara rutin — misalnya setiap minggu — melakukan audit teknis menyeluruh: memeriksa broken links, menganalisis struktur URL, memvalidasi schema markup, mengecek Core Web Vitals, dan memperbaiki masalah secara otomatis."},
        {"type": "paragraf", "teks": "Untuk website e-commerce dengan ribuan halaman produk, kemampuan ini sangat berharga. Agent bisa mendeteksi halaman yang error 404, canonical tags yang salah, atau masalah pagination — dan dalam banyak kasus, memperbaikinya tanpa perlu campur tangan developer."},
        {"type": "subjudul", "teks": "5. Smart Internal Linking Optimization"},
        {"type": "paragraf", "teks": "Internal linking adalah aspek SEO yang paling membosankan tapi paling penting. Banyak website memiliki struktur internal link yang berantakan — halaman penting tidak ter-link dengan baik, sementara halaman tidak penting mendapat banyak link. AI Agent bisa menganalisis seluruh struktur website Anda dan secara cerdas menambahkan internal link yang relevan."},
        {"type": "paragraf", "teks": "Agent ini menghubungkan halaman berdasarkan konteks dan hubungan topik — bukan sekadar asal menautkan. Hasilnya: distribusi PageRank yang lebih merata, pengalaman pengguna yang lebih baik, dan pemahaman Google yang lebih baik tentang struktur website Anda."},
        {"type": "subjudul", "teks": "6. Personalized Link Building Outreach"},
        {"type": "paragraf", "teks": "Link building tetap menjadi salah satu faktor ranking terkuat di 2026. AI Agent bisa membantu proses ini dengan mengidentifikasi website potensial untuk guest post, menganalisis relevansi dan otoritas domain, hingga menulis email outreach yang dipersonalisasi untuk setiap target. Pendekatan ini jauh lebih efektif daripada blast email massal yang biasanya berakhir di folder spam."},
        {"type": "paragraf", "teks": "Agent juga bisa melacak respons, mengirim follow-up secara otomatis, dan melaporkan progress link building secara real-time. Ini mengubah link building dari tugas yang memakan waktu menjadi proses yang hampir sepenuhnya otomatis."},
        {"type": "subjudul", "teks": "7. Performance Monitoring & Reporting"},
        {"type": "paragraf", "teks": "AI Agent bisa menghasilkan laporan SEO secara otomatis — harian, mingguan, atau bulanan — yang mencakup semua metrik penting: pergerakan ranking, perubahan trafik organik, status teknis website, dan rekomendasi prioritas. Laporan ini bisa dikustomisasi untuk berbagai stakeholder: tim marketing, manajemen, atau klien."},
        {"type": "paragraf", "teks": "Dengan AI Agent, Anda tidak perlu lagi menghabiskan waktu berjam-jam mengumpulkan data dari berbagai tools dan menyusun laporan manual. Semua dilakukan otomatis, akurat, dan bisa diakses kapan saja."},
        {"type": "subjudul", "teks": "AI Agent vs Tools SEO Tradisional: Saling Melengkapi"},
        {"type": "paragraf", "teks": "Pertanyaan yang sering muncul: apakah AI Agent akan menggantikan tools seperti Ahrefs dan Semrush? Jawabannya: <strong>tidak menggantikan, tapi melengkapi</strong>. Ahrefs dan Semrush adalah sumber data dan analisis yang sangat akurat. AI Agent adalah eksekutor dan pengambil keputusan yang bekerja berdasarkan data dari tools tersebut."},
        {"type": "paragraf", "teks": "Kombinasi ideal di 2026: <strong>Ahrefs atau Semrush</strong> untuk riset data dan wawasan kompetitor, <strong>Google Search Console</strong> untuk monitoring performa langsung dari Google, dan <strong>AI Agent</strong> untuk eksekusi otomatis, adaptasi cepat, dan skala besar. Dengan pendekatan terintegrasi ini, strategi SEO Anda bisa berjalan 24/7 tanpa henti."},
        {"type": "subjudul", "teks": "Kesimpulan: AI Agent Adalah Masa Depan, Bukan Sekadar Tren"},
        {"type": "paragraf", "teks": "AI Agent untuk SEO bukanlah hype sesaat. Ini adalah evolusi alami dari bagaimana teknologi AI diterapkan dalam digital marketing. Bisnis yang mengadopsi AI Agent sejak awal akan memiliki keunggulan kompetitif yang signifikan dibandingkan yang masih mengandalkan cara manual dan tools tradisional saja."},
        {"type": "paragraf", "teks": "StudioSoft — Partner Pertumbuhan Bisnis Berbasis Data — siap membantu Anda mengintegrasikan AI Agent ke dalam strategi SEO. Dari konsultasi awal hingga implementasi penuh, tim kami berpengalaman dalam mengoptimasi SEO dengan pendekatan AI yang canggih dan terukur."},
    ]
}

def main():
    print("🚀 STUDIOSOFT — 3 ARTIKEL SEO (Fintech/E-commerce | Tools | AI Agent)")
    print("="*60)
    
    # Tags
    print("\n📌 Creating tags...")
    tags_1 = [
        ensure_tag("Fintech SEO"),
        ensure_tag("E-commerce SEO"),
        ensure_tag("SEO Tools"),
        ensure_tag("Digital Marketing 2026"),
    ]
    tags_1 = [t for t in tags_1 if t]
    
    tags_2 = [
        ensure_tag("SEO Tools"),
        ensure_tag("Ahrefs"),
        ensure_tag("Semrush"),
        ensure_tag("Open SEO"),
        ensure_tag("Teknik SEO"),
    ]
    tags_2 = [t for t in tags_2 if t]
    
    tags_3 = [
        ensure_tag("AI Agent SEO"),
        ensure_tag("Artificial Intelligence"),
        ensure_tag("SEO Masa Depan"),
        ensure_tag("Digital Marketing 2026"),
    ]
    tags_3 = [t for t in tags_3 if t]
    
    cats = [CAT_SEO, CAT_DIGITAL_MARKETING]
    
    # Image URLs (different Pexels images for variety)
    img1 = "https://images.pexels.com/photos/8386437/pexels-photo-8386437.jpeg"
    img2 = "https://images.pexels.com/photos/3861964/pexels-photo-3861964.jpeg"
    img3 = "https://images.pexels.com/photos/669615/pexels-photo-669615.jpeg"
    
    results = []
    
    print("\n" + "="*60)
    print("📌 ARTIKEL 1: Fintech & E-commerce SEO")
    r1 = publish(ARTIKEL_1, cats, tags_1, img1, "fintech-ecommerce-seo.jpg")
    if r1: results.append(r1)
    time.sleep(3)
    
    print("\n" + "="*60)
    print("📌 ARTIKEL 2: SEO Tools")
    r2 = publish(ARTIKEL_2, cats, tags_2, img2, "seo-tools-ahrefs-semrush.jpg")
    if r2: results.append(r2)
    time.sleep(3)
    
    print("\n" + "="*60)
    print("📌 ARTIKEL 3: AI Agent untuk SEO")
    r3 = publish(ARTIKEL_3, cats, tags_3, img3, "ai-agent-seo.jpg")
    if r3: results.append(r3)
    
    print(f"\n{'='*60}")
    print(f"📊 SUMMARY")
    print(f"{'='*60}")
    print(f"Total: {len(results)}/3 artikel berhasil")
    for r in results:
        title = r.get('title', {}).get('rendered', 'N/A')
        # Decode HTML entities
        title = title.replace('&#038;', '&').replace('&#8211;', '—').replace('&#8217;', "'")
        print(f"  ✅ {title}")
        print(f"     → {r['link']}")

if __name__ == "__main__":
    main()
