

## hc58 Healthcare StudioSoft (2026-10-07 02:03 WIB)
- Threads carousel (RE-AIR `rs-klinik-digital-marketing-2026`): 08 Oct 2026 09:00 WIB | album `6ac54626ee921ef5c1c7e0e1` + 2 replies (`6ac54626ee921ef5c1c7e0ec`, `6ac54626ee921ef5c1c7e0fa`)
- LinkedIn TEXT `6ac54626ee921ef5c1c7e107` (12 Oct 2026 17:00 WIB) memakai artikel `https://studiosoft.id/branding-agency-surabaya-proses-hasil-kerja/`
- FB TEXT `6ac54627ee921ef5c1c7e111` (10 Oct 2026 19:30 WIB) memakai artikel `https://studiosoft.id/7-strategi-digital-marketing-rumah-sakit-untuk-menambah-pasien-setiap-bulan/`
- Artikel Threads: https://studiosoft.id/rs-klinik-digital-marketing-2026/

## 02:30 WIB — Carousel feed IG StudioSoft (cron `ss-ig-carousel-feed`) — SKIP (slot sudah terisi)

Slot 07 Okt 2026 08:30 WIB ternyata SUDAH ada jadwal album sebelum job ini jalan — berasal dari
penguncian antrean `kunci_car10_okt.py` (3 Okt 2026, semua slot 6–31 Okt terkunci). Aturan maksimal
1 carousel/hari/akun → tidak ada deck baru dibuat, tidak ada yang diubah.

- Jadwal: album `6ac102291733078385cc7f62`, "Carousel IG SS — tools-ai-untuk-bisnis-pilih-sesuai-kebutuhan",
  10 media `ss_car10_toolsai_01..10.jpg`; story mirror 08:40 WIB (`6ac1022e1733078385cc80ec`,
  `ss_story_canvas_ss_car10_toolsai_01.jpg`, 1080x1920).
- Verifikasi baca balik: status `pending` · scheduleAt `2026-10-07T01:30:00.000Z` (08:30 WIB) ·
  akun "Kreasi Studiosoft" · `type=album` · 10 media · `replies=0`.
- Caption 519 char: link `https://studiosoft.id/tools-ai-untuk-bisnis-pilih-sesuai-kebutuhan/` ada,
  CTA komentar ada, hashtag huruf kecil (`#toolsai #ai #digitalmarketing #seo #studiosoft`),
  0 mention internal, 0 CJK.
- Sampel media 01/05/10 + kanvas story dicek 200 di KEDUA ingress funnel (103.84.155.153 & 103.84.155.217)
  → semua 200.
- Ritme warna: 6 Okt 19:00 reel PUTIH (success) → **7 Okt 08:30 carousel BIRU ✅** (deck = navy #122B63,
  cocok `warna_ke`); cek `--jam 11` → reel 11:00 PUTIH sudah terpasang ✅ selang-seling nyambung.
  Probe pixel slide: 01/03/05/07/09 navy, 02/04/06/08/10 putih.
- QC visual (contact sheet + vision_analyze): tidak ada teks terpotong/overflow, kontras aman.
  Catatan kecil: slide 08 "KESIMPULAN" lalu slide 09 "ALAT UNTUK MEMBUAT GAMBAR DAN MATERI VISUAL"
  (satu kelompok kebutuhan lagi) baru 10 "LANGKAH BERIKUTNYA" — urutan agak ganjil, disampaikan ke Bos.
- Antrean 7–31 Okt: 25 album + 25 story mirror, semua `pending`, tiap caption ada link studiosoft.id
  (audit `_audit_antrean_car_ss.py` → `/tmp/antrean_car_ss.json`).
- Link artikel: terverifikasi PUBLISH dari daftar WP REST LIVE (r.jina.ai; daftar terbaru memuat post
  6 Okt, artikel id 7532 slug+link cocok). ⚠️ check-host.net sempat balas 404 cepat dari 1 node (ir7),
  lalu semua node timeout 25 s dan proxy lain (allorigins/codetabs) balas 520/522 → situs klien sedang
  lambat, BUKAN bukti link mati (host ini memang tidak bisa akses langsung situs klien).
- Skrip probe: `_cek_slot_car_07okt.py`, `_audit_antrean_car_ss.py`.
- Preview slide 1/5/10: `openclaw-img/ss_car10_toolsai_01.jpg`, `_05.jpg`, `_10.jpg`.

## 07:03 WIB — Artikel harian StudioSoft (cron `studiosoft-artikel-harian`) — jadwal 19 Okt

Pemeriksaan awal `ss_jadwal_cek.py`: 12 artikel menunggu tayang (7–18 Okt), ada hari kosong 19–21 Okt →
persediaan perlu ditambah.

- Topik dari bank `ss_topik_bank.json` entri #1 (pilar C retainer). Lolos pemeriksa kanibalisasi
  `ss_cek_topik.py` terhadap 352 artikel (terbit + terjadwal + draf): skor tertinggi 0,25 (#9292 "Tanda
  Digital Agency Anda Bekerja dengan Benar", terjadwal 18 Okt), 0,22 (#2913 daftar agensi) → aman, sudut
  berbeda (isi kontrak vs menilai kinerja).
- Artikel baru: **#9296** — "Kontrak Digital Agency: 7 Pasal yang Harus Ada Sebelum Tanda Tangan",
  slug `kontrak-digital-agency-pasal-wajib`, kategori Digital Marketing (26), fokus `kontrak digital agency`.
  1.055 kata, 8 H2 + 3 H3 (bagian tanya-jawab), tombol WA "Konsultasi Gratis", FAQPage JSON-LD,
  3 tautan internal yang dicek live HTTP 200 lebih dulu.
- Mutu: `cek_pola_ai.py` bersih (0 em dash, 0 kutip melengkung, 0 CJK, 0 tanda seru, tanpa frasa AI),
  sebaran kalimat 71 kalimat rata-rata 14,8 kata (23 pendek, 4 panjang).
- Jalur: draf dulu (`status=draft`) → baca balik judul/isi/meta OK → `status=future`,
  `date=2026-10-19T08:00:00` (zona situs; `date_gmt` 01:00 UTC, selisih 7 jam), slug tidak berubah.
- Meta Yoast: judul 42 char, deskripsi 151 char (berawalan fokus kata kunci), fokus tersimpan.
- Sisa setelah penambahan: 13 artikel, tayang tiap hari 7–19 Okt, **hari kosong masih 20–21 Okt** →
  diisi oleh jalannya job pada dua hari berikutnya.
- Berkas: `ss_artikel_kontrak_digital_agency.py`, hasil `ss_artikel_kontrak_hasil.json`,
  cek tautan `ss_cek_link_kontrak.py` + `ss_cek_link_kontrak2.py`.
- Catatan samping (belum ditindak): tautan lama di `ss_artikel_agensi_4.py` ada yang sudah 404
  (`/biaya-digital-agency-surabaya/`, `/digital-agency-surabaya-vs-freelancer/`,
  `/jasa-maintenance-wordpress-pekerjaan-bulanan/`) — perlu dicek statusnya di WP.

## Rencana DAS kembali ke peringkat 1 (permintaan Bos 7 Okt)

Bos: *"mbang tolong kamu cek bagaimana caranya agar DAS bengkel ini bisa kembali di SEO no 1"*.
Laporan lengkap: `drafts/rencana_das_kembali_no1_20261007.md`.

**Kondisi (GSC, 28 hari terakhir vs Juli):** klik 37 vs 302 (−88%), tayangan 1.249 vs 15.398 (−92%),
kueri yang memunculkan situs 106 vs 671 (−84%), halaman 71 vs 183. **Posisi rata-rata tetap 6,8**
(tidak turun) → ini kehilangan ruang tayang tingkat situs, bukan penurunan peringkat per halaman.
Jatuhnya pada pekan 18-24 Agu (33 klik), lalu 5-19 klik/pekan sampai sekarang.

**SERP hari ini (3 sampel, juga diulang dengan lokasi Surabaya):** 8 dari 9 kata kunci uang **di luar 20
besar** (bengkel mobil surabaya, servis mobil surabaya, transmisi matic, nissan, toyota, mercy, terdekat,
buka hari minggu). Yang masih kuat: «bengkel lexus surabaya» **#2**, merek #1.
Pesaing yang menguasai: ikame.co.id, instagram/facebook, otospector, montiro, bengkelmobilbop, auto2000.

**Penyebab (data):** pola terbit massal (19 hari berisi ≥3 artikel; 1 Jul 25 artikel, 2 Agu 15) +
41 artikel <500 kata dari 161 + 24 artikel nol tayangan. **Bukan index**: 8 halaman kunci semuanya
`Submitted and indexed` PASS (crawl 23 Sep-7 Okt), robots bersih, sitemap OK. Teknis: respons pertama
2,2-4,3 dtk dan `cf-cache-status: MISS` (Cloudflare belum cache HTML).

**Rencana 5 lapis**: (1) Bos cek Manual Actions & Security issues di GSC (ini gerbang utama, belum pernah
diverifikasi); (2) konsolidasi 41 artikel tipis + tangani 24 nol tayangan + stop terbit massal (2-3/pekan);
(3) bukti yang tak bisa ditiru di 7 halaman uang (foto kerja sendiri, nama teknisi, biaya aktual, studi
kasus, garansi) + sinyal lokal + GBP; (4) otoritas luar (direktori ikame/otospector/montiro, media, komunitas);
(5) cache HTML Cloudflare + preload WP Rocket, target <1 dtk.

**Target jujur**: merek #1 (sudah), ceruk #1-3 dalam 4-8 pekan, top 10 kata kunci umum 2-4 bulan,
#1 "bengkel mobil surabaya" 4-6 bulan bila lapis 3-4 jalan konsisten.
Skrip: `das_potret_seo.py`, `das_posisi_serper.py`, `das_posisi_lokasi.py`, `das_audit_konten.py`,
`das_cek_teknis.py`, `das_cek_direktori.py`.

## Lapis 2 dijalankan: konsolidasi konten DAS (Bos: "Ok sip gas", 7 Okt)

Rencana lengkap: `drafts/das_konsolidasi_rencana_20261007.md` · peta konten: `drafts/das_peta_konten.json`.

**SELESAI 2 klaster:**
- **Nissan** — kanonik #5657 `/bengkel-spesialis-nissan-surabaya` diperkuat **793 → 1.319 kata**
  (bagian baru: pekerjaan yang termasuk, jarak servis 5/20/40 ribu km, dealer vs spesialis, cara menilai
  bengkel, model yang ditangani, tautan internal). Kembar yang dipensiunkan jadi draf: **#8081**
  `/bengkel-mobil-nissan-di-surabaya-servis-perbaikan-dan-overhaul-mesin` (1.189 kata, 26 tayangan).
- **Lexus** — kanonik #5684 `/bengkel-spesialis-lexus-di-surabaya` diperkuat **966 → 1.355 kata**
  (servis AC Lexus, kenapa tidak sembarang bengkel, jadwal perawatan, bagian hybrid, persiapan sebelum
  servis, tautan internal). Kembar dipensiunkan: **#6705** (398 kata) dan **#5705** Bengkel AC Lexus.

Salinan isi semua halaman sebelum diubah ada di `das_konsolidasi_backup/`. Skrip:
`das_konsolidasi_nissan.py`, `das_konsolidasi_lexus.py` (pola sama untuk klaster berikutnya),
`das_lihat_artikel.py`, `das_peta_peta.py`, `das_rencana_konsolidasi.py`, `das_tulis_rencana.py`.

**MENUNGGU (9 klaster, id sudah terkunci)**: Alphard (#5569 + 3), Mercy & BMW (#6420 + 2),
Toyota (#5552 + 1), Honda (#6661 + 3), Land Cruiser (#6253 + 1), Transmisi matic (#5609 + 2),
Halaman merek umum (#6894 + 3), Overhaul (#7810 + 4), Multi merek Jepang (#8089, ditautkan saja).

**Butuh Bos**: (1) pasang **pengalihan 301** untuk 3 URL yang dipensiunkan (plugin Redirection);
(2) cek **Manual actions & Security issues** di GSC; (3) patokan terbit DAS maksimal **2-3 artikel/pekan**
— hari ini masih terbit 2 artikel (#8923, #8932) dan 1 terjadwal besok (#8927), semuanya bukan dari cron
(tidak ada job penulis artikel DAS), jadi ini soal kebiasaan sesi.

## Lanjutan lapis 2 + target berbasis GSC & GA4 (7 Okt, sore)

Bos: *"Ok sip lanjutkan dan pastikan ini target SEO berdasarkan data yang ada di GSC n GA4"*.

**Konsolidasi batch 2 selesai (total 5 klaster):**

| Klaster | Kanonik | Panjang | Dipensiunkan |
|---|---|---|---|
| Nissan | #5657 | 793 → 1.319 kata | #8081 |
| Lexus | #5684 | 966 → 1.355 kata | #6705, #5705 |
| Transmisi matic | #5609 | 736 → 1.052 kata | #6819, #8075 |
| Alphard | #5569 | 1.554 → 1.821 kata | #6304, #6566, #8051 |
| Mercy & BMW | #6420 | 617 → 888 kata | #6711, #8296 |

Verifikasi: kelima kanonik live HTTP 200 dengan judul benar. 10 URL dipensiunkan → daftar pengalihan
untuk Bos di `drafts/das_pengalihan_301.md`. Salinan lama semua halaman di `das_konsolidasi_backup/`.
Skrip batch: `das_konsolidasi_batch2.py`. Sisa 6 klaster: Toyota (#5552), Honda (#6661),
Land Cruiser (#6253), halaman merek umum (#6894), overhaul (#7810), multi merek Jepang (#8089).

**Data GA4 ditarik (properti 443064659, s/d 5 Okt):**
- Sesi 28 hari: Organik 94 (Juli 305), Direct 178 (Juli 70) → **Direct kini kanal terbesar**, artinya
  orang masih mencari nama DAS langsung, yang hilang ruang tayangnya di Google.
- Kejadian penting dari organik: 4 (Juli 16). Halaman dengan sesi terbanyak: beranda 179 dari 344 sesi;
  halaman uang kecil-kecil (Mercy 10, Lexus 7, Toyota 7, matic 6).
- **Catatan penting**: GA4 mencatat 0 sesi untuk 11 Agu-7 Sep (tren mingguan kosong) padahal GSC tetap
  merekam tayangan. Jadi ada **jeda pelacakan GA4** di rentang itu; tanggal jatuhnya dipastikan dari GSC
  (pekan 18-24 Agu), bukan dari GA4.

**Target berbasis dua sumber** (berkas `drafts/das_target_gsc_ga4.md`): situs 30 hari 150 kueri/60 klik/
130 sesi organik → 90 hari 300 kueri/150 klik/300 sesi organik (≈60% dari Juli). Per klaster, prioritas
menurut nilai bisnis: matic (#6,6 → 1-3), Lexus (#7,1 → 1-3), Alphard (#6,1 → 1-3), overhaul (#3,4 → 1-3),
Nissan (#8,4 → 3-5), Mercy (#7,1 → 3-5), Toyota & Honda (#8,4-9,5 → 5-10). Skrip: `das_ga4_target.py`,
`das_target_gabungan.py`, `das_tulis_target.py`.

## The Skin Code Clinic — cek SEO + 30 caption GBP (permintaan Bos 7 Okt)

Bos: *"cek GSC, GA4 dan semua yang kamu punya untuk SEO untuk klien The Skin Code, lalu infokan 30 caption
untuk Google Bisnis Profile"*. Berkas caption: `drafts/tsc_gbp_30_caption.md` (30 caption, semua <1.500 char,
0 CJK, 0 em dash, rata-rata 487 char). Skrip: `tsc_potret_seo.py`, `tsc_daftar_layanan.py`, `cek_caption_gbp.py`.

**GSC (situs www.theskincodeclinic.com):** 90 hari 96 klik / 6.090 tayangan / pos 6,9 · 28 hari 35 klik /
1.709 tayangan / **pos 6,0 (membaik dari 8,6)**; tren pekanan klik 10-8-12-10-14-8-8-5. Halaman teratas:
beranda (1.510 tayangan, 26 klik), `/rekomendasi-6-klinik-kecantikan-di-krian-sidoarjo/` (130/4),
`/dokter-kulit-kelamin-sidoarjo/` (97/2, pos 18,2).

**Temuan utama (ini yang menjawab kenapa GBP penting):** kueri lokal dengan tayangan besar tapi **nol klik**:
«dokter kulit sidoarjo» 136 tayangan 0 klik (pos 6,6) · «dokter kulit terdekat» 78/1 (4,1) ·
«dokter kulit krian» 71/0 (**pos 1,3**) · «dokter spesialis kulit terdekat» 41/0 (4,0) ·
«klinik kecantikan terdekat» 22/0 (2,4) · «klinik terdekat» 16/0 (5,0). Semuanya pertanyaan peta/profil
bisnis, bukan artikel → karena itu 30 caption GBP mengarah ke situ.

**GA4 (properti 490140645):** 28 hari Organik 43 sesi (sebelumnya 23), Referral 30, Organic Social 20,
Direct 17; kejadian: click 10, contact_link_click 5; beranda 77 dari 112 sesi.

**Catatan penting:** di situs ada **dua nomor WhatsApp berbeda** (6281335114324 dan 6285117444417) →
ketidakkonsistenan NAP yang bisa menekan kepercayaan lokal. Sebaiknya dipilih satu nomor utama dan
disamakan dengan yang ada di GBP.

### Koreksi & hasil lengkap lacak nomor WA (7 Okt, sesudah Bos tanya "cek semua nomor WA lain")

Bos: *"ok cek semua apakah ada no WA lain di web TSC"*. Seluruh **783 URL** dari sitemap dibuka (0 gagal),
semua tautan wa.me / api.whatsapp.com / tel diekstrak lalu dinormalkan. Hasil: **hanya ada 3 nomor.**

| Nomor | Jumlah halaman | Letak |
|---|---|---|
| 6285117444417 | **783 (semua)** | tema: tombol "Buat Janji" header + widget WhatsApp footer |
| 6285194936363 | **113 halaman** | tombol lama berlabel "Klinik DNI Krian" |
| 6281335114324 | **1 halaman (beranda)** | tombol lama "Saya ingin tahu layanan Klinik DNI Krian" |

**Koreksi:** pada pesan sebelumnya saya sebut 6285194936363 hanya ada di beranda. Itu keliru — angka
benar **113 halaman**. Yang benar-benar hanya di beranda adalah 6281335114324.
Daftar lengkap per nomor: `drafts/tsc_nomor_wa_per_halaman.md` + `.json`. Skrip: `tsc_semua_nomor_wa.py`,
`tsc_nomor_wa_detail.py`. Catatan tambahan: tombol header memakai `phone=%206285117444417` (ada spasi
ter-encode), dan `cfg_tsc.py` internal kami masih memuat 6281935000624 (nomor StudioSoft) meski tidak
terbit di situs.

### PENGERJAAN: ganti nomor lama + label (perintah Bos 7 Okt)

Bos: *"cek 6285194936363 ganti semua no itu dengan 6285117444417. Ganti label ke The Skin Code Clinic"*.

- **113 konten diperbarui** (`tsc_ganti_nomor.py --go`, dua tahap karena tahap pertama kena batas waktu
  tool): **317 nomor** 6285194936363 + 6281335114324 → **6285117444417**, dan **4 label**
  "Klinik DNI Krian" → "The Skin Code Clinic". Salinan sebelum perubahan: `tsc_backup_nomor/` (113 berkas).
- **Verifikasi**: seluruh **783 URL** dipindai ulang → **0 halaman** masih memuat kedua nomor lama.
  Tombol di beranda sekarang: `wa.me/6285117444417?text=Saya%20ingin%20tahu%20layanan%20The%20Skin%20Code%20Clinic`.
- **Perbaikan tambahan** (`tsc_perbaiki_spasi_wa.py`): 2 tautan di beranda yang rusak karena ada spasi
  setelah `phone=` pada konten sudah dibetulkan.
- **Sisa yang belum dikerjakan** (menunggu keputusan): (a) tombol "Buat Janji" di header memakai
  `phone=%206285117444417` — itu setting tema Astra, tidak bisa lewat REST; (b) merek/domain lama di isi
  artikel: 41 konten, 90 tautan ke `klinikdnisidoarjo.com`, 1 ke `klinikdnikrian.com`, 18 penyebutan
  "Klinik DNI", 1 nomor placeholder `0812-XXXX-XXXX` → daftar di `drafts/tsc_sisa_merek_lama.md`.
- Jawaban Bos soal "kok ga ada WA Buttonnya": tombol WA ada di semua halaman lewat tema (header "Buat Janji"
  ×4 + widget footer WhatsApp 085117444417); tombol DI DALAM isi artikel hanya ada di 113 halaman.
  Contoh tanpa tombol dalam isi: `/faq-dokter-kulit-krian/`, `/dokter-kulit-kelamin-sidoarjo/`.

### Tautan domain lama + daftar "Klinik DNI" (perintah Bos 7 Okt)

Bos: *"ubah tautan klinikdnisidoarjo.com ke https://www.theskincodeclinic.com"*, lalu *"dimana saja
penyebutan Klinik DNI"*.

- **40 konten diperbarui** (`tsc_ganti_domain.py --go`): 90 tautan + 1 teks tautan domain lama → situs baru.
  Salinan di `tsc_backup_domain/`. Verifikasi: `klinikdnisidoarjo.com`/`klinikdnikrian.com` nol di konten.
- **Temuan penting**: beranda (#409) masih memuat **gambar latar dari domain mati**
  (`klinikdnisidoarjo.com/wp-content/uploads/2022/08/procedures-section-bg.jpg`) dalam bentuk **escaped**
  (`https:\/\/…`) sehingga lolos dari penggantian pertama. Domainnya sudah **tidak bisa diakses (DNS mati)**
  → gambar latar itu rusak. Salinan gambarnya ada di situs baru (media #631, HTTP 200).
  Diperbaiki: `tsc_ganti_host_domain.py --go` (9 rujukan) + **rebuild CSS terpakai WP Rocket**
  (`POST /wp-json/wp-rocket/v1/cpcss/post/409` → `success: true`). Verifikasi live: **0 rujukan** domain lama.
- **Daftar "Klinik DNI"** (`drafts/tsc_daftar_klinik_dni.md`, 46 konten): slug 42 · teks terlihat 11
  (Tentang Kami 8, artikel AIDS 1 tagar #KlinikDNIKrian + akun @klinikdnikrian, 1 tautan internal) ·
  rujukan domain lama 9 (sudah dibereskan) · **judul artikel: 0**. Sisa lain: nomor placeholder
  `0812-XXXX-XXXX` di 1 artikel. Menunggu keputusan Bos untuk teks terlihat & slug.

### Akun Instagram lama diganti (perintah Bos 7 Okt)

`@klinikdnikrian` → **`@theskincode_clinic`**: 1 tempat (artikel `/6-tips-memilih-dokter-kelamin-wanita-…`),
diverifikasi tampil di halaman live via `tsc_verif_akun.py`. Skrip `tsc_ganti_akun.py` (dry run/`--go`),
salinan di `tsc_backup_akun/`. Sisa: tagar `#KlinikDNIKrian` (artikel Hari AIDS) dan 42 slug artikel yang
masih memuat `klinik-dni-krian` (itu sebabnya halaman itu masih menampilkan 5 kemunculan lain — semuanya
dari alamat artikel dan tautan internal).

### Pratinjau teks "Klinik DNI" (perintah Bos 7 Okt — "capture, jangan diganti")

Tangkapan layar halaman live memakai playwright (`/usr/bin/python3`, chromium bawaan) dengan penanda
kotak merah: skrip `tsc_capture_klinikdni.py` → 9 tangkapan di `tsc_preview_klinikdni/`, lalu disusun jadi
lembar kontak oleh `tsc_buat_lembar.py` (`lembar_*.png`). Berkas pratinjau teks:
`drafts/tsc_preview_klinik_dni.md`. **Tidak ada yang diubah di situs.**

- Halaman **Tentang Kami**: 7 kemunculan terpotret (paragraf pembuka, "Visi dan Misi Klinik DNI Krian"
  dua kali dari posisi berbeda, "Keunggulan Klinik DNI Krian", dan paragraf ajakan "Klinik DNI Krian
  percaya bahwa kulit sehat adalah investasi jangka panjang").
- Artikel **Hari AIDS Sedunia**: 1 (tagar `#KlinikDNIKrian`).
- Artikel **Top Klinik Dokter Kulit Krian**: 1 (daftar tautan internal).
### Slug lama & keamanan SEO (perintah Bos 7 Okt "kerjakan semua" + "pastikan aman untuk SEO")

- **42 artikel berganti slug** (nama lama → `the-skin-code-clinic`). Verifikasi: **42/42 URL lama balas
  HTTP 301** ke URL baru, satu lompatan, URL baru 200 dengan canonical ke dirinya sendiri. Pengalihan ini
  otomatis dari WordPress (metadata `_wp_old_slug`), bukan buatan sendiri.
- Tagar `#KlinikDNIKrian` → `#TheSkinCodeClinic` dan 1 teks tautan merek lama di #1908 diperbaiki.
  Verifikasi `tsc_teks_klinik_dni.py`: **0 teks terlihat** masih menyebut merek lama.
- Sitemap: 167 entri artikel sudah tanpa nama lama; halaman Tentang Kami (di-trash Bos) sudah keluar dari
  sitemap. **Sisa 7 entri sitemap berupa arsip TAG** (`/tag/klinik-dni/`, `/tag/klinik-dni-krian/`,
  `/tag/dni-krian/`, dll.) — belum dibereskan.
- **Perbarui tautan internal ke slug baru** (`tsc_perbarui_tautan_slug.py --go`): 119 tautan ditemukan;
  job dihentikan di tengah jalan → **6 penulisan gagal (HTTP 404)** pada #8855, #8852, #8831, #1939,
  #1936, #1924, #1647, #1644. Penyebab: situs membatasi permintaan yang terlalu rapat (bukan kerusakan);
  situs sudah normal lagi (beranda 200). Sisa tautan tetap berfungsi lewat 301.
- Job pengumpulan nama tag (`tsc_tag_lama3.py`) dihentikan sebelum mengubah apa pun.
- **Belum dikerjakan**: rename tag lama, update 6 tautan internal yang gagal, purge cache WP Rocket.
- Skrip: `tsc_ganti_slug.py`, `tsc_verif_seo_slug.py`, `tsc_perbarui_tautan_slug.py`, `tsc_tag_lama3.py`,
  `tsc_cek_sitemap.py`, `tsc_cek_blokir.py`. Salinan: `tsc_backup_link_slug/`, `tsc_backup_teks/`.

### Penuntasan (perintah Bos "kerjakan", 7 Okt malam)

Laporan lengkap: `drafts/laporan_tsc_bersih_merek_20261007.md`.

- **Tautan internal**: disapu ulang dengan jeda (`tsc_sapu_tautan.py --go`) → 4 konten sisa, 5 tautan,
  semua berhasil. Verifikasi akhir: **0 tautan ke slug lama** di seluruh konten. Total 124 tautan di
  84 artikel.
- **Nama tag**: 7 tag diganti nama (`tsc_tag_lama4.py --go`), 1 tag rusak (nama panjang berisi koma,
  13 artikel) dihapus. ID tag diambil lewat endpoint `?slug=` karena endpoint daftar tag diblokir.
  Contoh: «Klinik DNI Krian» (61 artikel) → «The Skin Code Clinic Krian».
- **Slug arsip tag DIKEMBALIKAN** (`tsc_tag_kembali.py --go`): WordPress **tidak** mengalihkan arsip tag
  saat slug berubah (diuji: URL lama langsung 404), jadi slug lama dipertahankan supaya tidak muncul
  16 halaman 404. Kalau Bos mau alamatnya bersih, perlu plugin Redirection dulu.
- **Verifikasi akhir** (`tsc_verif_akhir2.py`): 0 sisa nama lama di konten; 42/42 URL lama balas 301.
- **Temuan yang butuh aksi Bos**: (1) tautan sosial di tema + schema Yoast masih ke
  `instagram.com/klinikdnikrian` dan `facebook.com/klinikdnikrian` (pengaturan, bukan isi artikel);
  (2) cache WP Rocket belum dibersihkan sehingga halaman depan masih menyajikan CSS lama yang memuat
  gambar dari domain mati; (3) sisa nomor placeholder `0812-XXXX-XXXX` di 1 artikel.

### Nomor seragam 085117444417 + TEMUAN SPAM TERSEMBUNYI (perintah Bos 7 Okt)

Laporan: `drafts/laporan_tsc_nomor_dan_spam_20261007.md`.

- Nomor WhatsApp/Contact Person diseragamkan ke **6285117444417**: 113 halaman isi (317 penggantian
  sebelumnya) + 4 tautan di beranda + placeholder `0812-XXXX-XXXX` di artikel
  `/the-skin-code-clinic-dokter-kulit-kelamin-terpercaya-di-kawasan-krian/` → `0851-1744-4417`.
  Verifikasi live: beranda 7, artikel 6, FAQ 5 kemunculan nomor benar; **0 nomor lama**.
- **SPAM TERSEMBUNYI DI BERANDA**: 8 blok `<div>` dengan `position:absolute;left:-4184px` dan
  `overflow:hidden;height:1px` berisi tautan judi (bohocasino.de.com, moonwin-ca.org, jeet-city.net,
  winorioslots.nl) + tautan ke sasjen.nl, zonnepaneelconcurrent.nl, 1883magazine.com,
  engineeringimpact.co.uk → pola khas injeksi SEO. **Semua 8 blok dihapus** (`tsc_bersih_spam.py --go`,
  salinan di `tsc_backup_spam/`), verifikasi live: 0 tautan spam.
- Daftar pengguna situs: 3 akun (Bambang Assistant, penulis, Wati Assistant) — tidak ada akun asing.
  Bos disarankan memindai dengan Wordfence/Sucuri, memperbarui WP/tema/plugin, ganti sandi admin, dan
  memantau beberapa hari karena tautan lama sempat muncul kembali (dugaan isi ditimpa ulang).
- Skrip: `tsc_scan_nomor2.py`, `tsc_periksa_spam.py`, `tsc_bersih_spam.py`, `tsc_cek_spam_live.py`,
  `tsc_verif_nomor_live.py`.

