# Medical SEO Agency Indonesia: YMYL &amp; E-E-A-T Playbook

> Partner with a leading medical SEO agency in Indonesia. We deliver YMYL compliance, medical schema architecture, high-converting healthcare

- URL: https://medikabyte.com/medical-seo-agency-indonesia/
- Diperbarui: 2026-10-16
- Penulis: MedikaByte
- Penerbit: MedikaByte (B2B digital agency)

Skip to content

[**ADTYAA** Technology & Digital Systems](https://medikabyte.com/)

**EN**

**ID**

**中文**

Consultation

[Capabilities](https://medikabyte.com/#capabilities)
[Expertise](https://medikabyte.com/#expertise)
[Approach](https://medikabyte.com/#approach)
[Proof](https://medikabyte.com/#proof)
[About](https://medikabyte.com/#about)
[Essentials](https://medikabyte.com/essentials/)
Consultation

# Medical SEO Agency Indonesia: *The YMYL and E-E-A-T Playbook for Hospitals and Healthtech*

By Adtyaa 10 October 2026 9 min read

Choosing a medical SEO agency Indonesia hospitals and healthtech brands can trust is a clinical decision as much as a marketing one. Google treats health content as Your Money or Your Life, so a page that ranks without verified authorship, cited evidence, and correct structured data is a liability, not an asset. This playbook sets out how I build search visibility for medical brands in Indonesia, from a doctor-reviewed page to a WhatsApp conversation with a patient.

**The short version**

A medical SEO agency Indonesia leaders can rely on does four things: it has a licensed doctor verify every claim, marks up every page with accurate medical schema, ships a fast and clean website, and measures success in booked consultations rather than traffic.

![Medical SEO agency Indonesia E-E-A-T framework](https://medikabyte.com/wp-content/uploads/2026/10/medical-SEO-agency-Indonesia.jpg)

Doctor-reviewed content, medical schema, and a fast site: the three layers behind every ranking page.

## Medical SEO agency Indonesia: the YMYL and E-E-A-T imperative

A medical SEO agency Indonesia brands hire has to start from one fact: Google applies its strictest quality standards to health pages. The [Google Search Quality Rater Guidelines](https://services.google.com/fh/files/misc/hsw-sqrg.pdf) treat topics that can affect health, safety, or financial stability as YMYL, and they ask raters to weigh experience, expertise, authoritativeness, and trustworthiness (E-E-A-T) first.

A defensible YMYL healthcare SEO strategy Indonesia teams can stand behind is built on that foundation. Generalist agencies fail for predictable reasons:

- They publish anonymous articles with no named doctor, no credentials, and no review date.
- They cite blogs and competitors instead of primary sources.
- They ignore medical schema, so Google cannot tell a hospital page from a general blog post.
- They chase high-traffic symptom keywords that never become a consultation.
- They ship English and Bahasa Indonesia pages as unchecked translations of each other.

In Indonesia the audience is split. Local patients search in Bahasa Indonesia, while medical travellers and international partners search in English, and both expect the same clinical accuracy. That is why I treat language, authorship, and evidence as one system, not three tasks.

## Medical content accuracy and E-E-A-T SEO: the verification framework

Medical content accuracy and E-E-A-T SEO are one discipline seen from two sides. Accuracy protects the patient, and E-E-A-T lets Google see that protection. This is the workflow I run for every page on a medical SEO agency Indonesia engagement:

1. Brief: a clinician defines the search intent, the audience, and the claims the page may and may not make.
2. Draft: a medical writer works only from primary sources and a sourced claim sheet.
3. Doctor review: a licensed specialist in the relevant field edits, approves, and signs off by name.
4. Citation audit: every statistic and treatment statement is matched to a linked, dated source.
5. Publish: the reviewer, credentials, and review date appear on the page and in the markup.
6. Re-review: pages are checked again every six months or when guidelines change.

| Tier | Examples | Used for |
| --- | --- | --- |
| Tier 1 | Clinical studies and systematic reviews, national guidelines | Clinical claims and statistics |
| Tier 2 | WHO and Ministry of Health Indonesia publications | Public health facts and local regulation |
| Tier 3 | Professional societies and hospital protocols | Procedure descriptions and patient pathways |
| Not accepted | Competitor blogs, forums, undated pages | Never cited |

My primary sources are [PubMed](https://pubmed.ncbi.nlm.nih.gov/) for clinical evidence, the [World Health Organization](https://www.who.int/) for public health facts, and the [Ministry of Health Indonesia](https://www.kemkes.go.id/) for local regulation and programmes.

## Advanced technical SEO for healthcare websites: schema and Core Web Vitals

Advanced technical SEO for healthcare websites begins with medical schema architecture and E-E-A-T working together. [Schema.org MedicalWebPage](https://schema.org/MedicalWebPage) describes a health page, with properties such as reviewedBy and lastReviewed, while Hospital and Physician describe the institution and the doctor behind it. Marked up correctly, a page tells Google who checked it and which organisation stands behind it.

| Type | Describes | Key properties |
| --- | --- | --- |
| MedicalWebPage | The health page itself | reviewedBy, lastReviewed, about |
| Physician | The reviewing doctor | name, medicalSpecialty, hasCredential |
| Hospital | The institution | name, address, telephone, sameAs |

A simplified example of the markup I deploy on a reviewed page:

`{ "@context": "https://schema.org", "@type": "MedicalWebPage", "name": "Cardiac Screening Guide", "lastReviewed": "2026-10-01", "reviewedBy": { "@type": "Physician", "name": "dr. Example Name, Sp.JP", "medicalSpecialty": "Cardiovascular" }, "publisher": { "@type": "Hospital", "name": "Example Hospital" } }`

Speed is a patient-access issue as much as a ranking factor, because a slow page on a mobile connection loses the person who needs help today. I build hospital pages to these Core Web Vitals targets:

- Largest Contentful Paint under 2.5 seconds on mobile.
- Interaction to Next Paint under 200 milliseconds.
- Cumulative Layout Shift under 0.1.
- Zero code bloat: lean custom code, no stacked plugins, no unused scripts.

## Cross-border patient acquisition funnel: from Google search to WhatsApp

A medical SEO agency Indonesia brands use for international growth designs the funnel from the search result to the conversation. Patients across the region prefer to confirm on WhatsApp, so every stage is built to end there.

| Stage | What happens | What I measure |
| --- | --- | --- |
| Google search | An intent-matched query in English or Bahasa Indonesia | Impressions, ranking, click-through rate |
| Medical landing page | A doctor-reviewed page with credentials, procedure information, and one clear next step | Engagement, scroll depth, load speed |
| WhatsApp conversation | A one-tap message with prefilled context, answered by a trained coordinator | Conversations started, response time |
| Booked consultation | The appointment is confirmed and recorded | Cost per consultation, show rate |

Cross-border visitors add two requirements: correct hreflang so each market sees the right language version, and a response process that respects time zones and patient privacy.

## Why executives choose this medical SEO agency Indonesia over bloated agencies

C-level buyers tell me the same thing: they are tired of account managers, junior hand-offs, and reports full of vanity metrics. I run ADTYAA as a boutique medical SEO agency Indonesia practice, and the difference is concrete.

#### Single-point accountability

You deal with me, the founder. Strategy, engineering, and reporting sit with one accountable person, not a chain of hand-offs.

#### Boutique precision

A small number of medical clients at a time, so every page, schema block, and review step gets senior attention.

#### Zero code bloat

Lean, custom-built pages that load fast and pass Core Web Vitals, without plugin stacks that slow a hospital site.

#### Search performance you can verify

Success is judged by rankings for clinical-intent queries and booked consultations, with the data open to you.

## Hospital SEO consultant Indonesia: the 90-day implementation roadmap

As a hospital SEO consultant Indonesia teams can hold to a schedule, I commit to a 90-day plan with an output you can inspect at every stage. The [approach](https://medikabyte.com/#approach) explains how an engagement runs, and the [capabilities](https://medikabyte.com/#capabilities) show the engineering behind it.

| Days | Focus | Deliverable |
| --- | --- | --- |
| Days 1 to 30 | Audit and foundation: technical crawl, YMYL risk review, intent map, reviewer board, tracking | Audit report, intent map, reviewer roster |
| Days 31 to 60 | Build: priority pages written and doctor-reviewed, schema deployed, Core Web Vitals fixed, WhatsApp funnel live | Live pages with schema, speed report |
| Days 61 to 90 | Scale and prove: expand topic clusters, tune conversion, report against consultations | Ranking and consultation report, next-quarter plan |

Packaged services, custom plugins, and care plans are listed in [ADTYAA Essentials](https://medikabyte.com/essentials/), and my [background](https://medikabyte.com/#about) explains why single-point accountability matters in healthcare.

## Request a confidential audit from a medical SEO agency Indonesia

If you lead a hospital network or a healthtech brand and want a medical SEO agency Indonesia partner who answers for the result, start with a confidential audit. I review your site, content risk, and schema, and reply with initial findings and a proposed scope within 24 hours.

### Ready for a confidential medical SEO audit?

Message me on WhatsApp or send a brief. Your details stay private, and you receive a written reply within 24 hours.

[Request a confidential audit](https://wa.me/6281411188809) Send a project brief

Project brief

## Share your requirement.

Describe what you are building, what is not performing, or what needs to improve. I will review the brief and respond within 24 hours.

WhatsApp / Phone [0814 111 888 09](tel:+6281411188809)

Email [hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)

Base **Jakarta, Indonesia**

Location

## Find us on Google Maps.

In-person meetings are by appointment. Please message first so a time can be confirmed.

### DJURAGAN IKLAN ID

Founded by ADTYAA

Jl. Green Pramuka City No.9 13, RT.13/RW.9, Rawasari, Kec. Cempaka Putih, Kota Jakarta Pusat, DKI Jakarta 10570

#### Opening hours

Mon, Wed to Sat 08:00 – 21:30

Tuesday 08:00 – 21:00

Sunday 09:00 – 21:30

[Get directions](https://www.google.com/maps/dir/?api=1&destination=-6.1883766,106.8732792&destination_place_id=ChIJKcjnOqb1aS4RfbYD_EKMv84)
[Chat on WhatsApp](https://wa.me/6281411188809)
[Call now](tel:+6281411188809)

Build what your business depends on.

## Let’s build something worth depending on.

One accountable technology partner across engineering, growth, security, and digital infrastructure.

Request a consultation [Explore capabilities](https://medikabyte.com/#capabilities)

[**ADTYAA**](https://medikabyte.com/)

Digital Systems & Technology Consultancy

Aditya

Founder & Technology Strategist

Djuragan Iklan

Navigate

- [Capabilities](https://medikabyte.com/#capabilities)
- [Expertise](https://medikabyte.com/#expertise)
- [Approach](https://medikabyte.com/#approach)
- [About](https://medikabyte.com/#about)
- Location
- Contact

Capabilities

- [Software Engineering](https://medikabyte.com/#capabilities)
- [Digital Engineering](https://medikabyte.com/#capabilities)
- [Growth Systems](https://medikabyte.com/#capabilities)
- [Security & Infrastructure](https://medikabyte.com/#capabilities)
- [Medical SEO](https://medikabyte.com/#medical)
- [Custom Plugins](https://medikabyte.com/essentials/)
- [Custom Themes](https://medikabyte.com/essentials/)
- [Add-ons & Care Plans](https://medikabyte.com/essentials/)

Contact

[WhatsApp](https://wa.me/6281411188809)
[hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)
Jakarta, Indonesia

ADTYAA

© 2026 ADTYAA. All rights reserved.

[Essentials](https://medikabyte.com/essentials/)

[Chat on WhatsApp](https://wa.me/6281411188809)

var D = {"skip":["Skip to content","Lewati ke konten","跳到主要内容"],"menu":["Menu","Menu","菜单"],"lang.group":["Language","Bahasa","语言"],"nav.cap":["Capabilities","Keahlian","核心能力"],"nav.work":["Expertise","Spesialisasi","行业专长"],"nav.app":["Approach","Pendekatan","合作流程"],"nav.proof":["Proof","Bukti","实绩"],"nav.about":["About","Tentang","关于"],"nav.ess":["Essentials","Essentials","Essentials"],"nav.cta":["Consultation","Konsultasi","预约咨询"],"nav.contact":["Contact","Kontak","联系我们"],"bag.aria":["ADTYAA Essentials: services, themes, plugins, and add-ons","ADTYAA Essentials: jasa, tema, plugin, dan add-on","ADTYAA Essentials：服务、主题、插件与附加服务"],"hero.cta1":["Request a consultation","Jadwalkan konsultasi","预约咨询"],"hero.cta2":["Explore capabilities","Jelajahi keahlian","了解核心能力"],"hero.role":["Founder & Technology Strategist","Founder & Technology Strategist","创始人 · 技术战略顾问"],"cap4.title":["Software Engineering","Software Engineering","软件工程"],"cap1.title":["Digital Engineering","Digital Engineering","数字工程"],"cap2.title":["Growth Systems","Growth Systems","增长体系"],"cap3.title":["Security & Infrastructure","Security & Infrastructure","安全与基础设施"],"opt.med":["Medical SEO","SEO Medis","医疗 SEO"],"opt.other":["Other / Not sure yet","Lainnya / Belum yakin","其他 / 尚未确定"],"contact.label":["Project brief","Brief proyek","项目简报"],"contact.title":["Share your requirement.","Sampaikan kebutuhan Anda.","请告诉我们您的需求。"],"contact.copy":["Describe what you are building, what is not performing, or what needs to improve. I will review the brief and respond within 24 hours.","Jelaskan apa yang sedang Anda bangun, apa yang belum berjalan optimal, atau apa yang perlu ditingkatkan. Saya akan mempelajari brief dan merespons dalam 24 jam.","请描述您正在构建的内容、表现不佳之处或需要改进的方面。我会审阅简报并在 24 小时内回复，咨询以英文进行。"],"contact.wa":["WhatsApp / Phone","WhatsApp / Telepon","WhatsApp / 电话"],"contact.loc":["Base","Lokasi","所在地"],"contact.city":["Jakarta, Indonesia","Jakarta, Indonesia","印度尼西亚 · 雅加达"],"form.name":["Name *","Nama *","姓名 *"],"form.email":["Email","Email","邮箱"],"form.wa":["WhatsApp","WhatsApp","WhatsApp"],"form.url":["Website","Website","网站"],"form.service":["Capability *","Keahlian *","所需能力 *"],"form.choose":["Choose a capability","Pilih keahlian","请选择能力方向"],"form.eng":["Engagement","Jenis kerja sama","合作类型"],"form.time":["Timeline","Target waktu","时间安排"],"form.choose2":["Choose one","Pilih salah satu","请选择"],"form.msg":["Project / problem","Proyek / masalah","项目 / 问题"],"form.sendwa":["Send via WhatsApp","Kirim lewat WhatsApp","通过 WhatsApp 发送"],"form.sendmail":["Send via email","Kirim lewat email","通过邮件发送"],"form.note":["Your brief opens in WhatsApp or your email application. Nothing is stored on this page.","Brief Anda terbuka di WhatsApp atau aplikasi email, siap dikirim. Tidak ada data yang disimpan di halaman ini.","您的简报将在 WhatsApp 或邮件应用中打开，供您发送。本页面不会保存任何数据。"],"eng.1":["One-time fix or setup","Perbaikan atau setup sekali jalan","一次性修复或设置"],"eng.2":["Full project","Proyek penuh","完整项目"],"eng.3":["Ongoing monthly support","Dukungan bulanan berkelanjutan","持续月度支持"],"eng.4":["Not sure yet","Belum yakin","尚未确定"],"time.1":["As soon as possible","Secepatnya","尽快"],"time.2":["Within 1 month","Dalam 1 bulan","1 个月内"],"time.3":["Within 3 months","Dalam 3 bulan","3 个月内"],"time.4":["Flexible","Fleksibel","灵活"],"f.err":["Please enter your name and choose a capability first.","Isi nama dan pilih keahlian terlebih dahulu.","请先填写姓名并选择能力方向。"],"f.okwa":["Opening WhatsApp...","Membuka WhatsApp...","正在打开 WhatsApp…"],"f.okmail":["Opening your email application...","Membuka aplikasi email Anda...","正在打开邮件应用…"],"m.name":["Name","Nama","Name"],"m.email":["Email","Email","Email"],"m.wa":["WhatsApp","WhatsApp","WhatsApp"],"m.url":["Website","Website","Website"],"m.service":["Capability","Keahlian","Capability"],"m.eng":["Engagement","Jenis kerja sama","Engagement"],"m.time":["Timeline","Target waktu","Timeline"],"m.msg":["Message","Pesan","Message"],"m.subject":["Project enquiry","Permintaan proyek","Project enquiry"],"loc.label":["Location","Lokasi","地点"],"loc.title":["Find us on Google Maps.","Temukan kami di Google Maps.","在 Google 地图上找到我们。"],"loc.lead":["In-person meetings are by appointment. Please message first so a time can be confirmed.","Pertemuan langsung dengan janji temu. Kirim pesan terlebih dahulu agar waktunya dapat dikonfirmasi.","现场会面需提前预约。请先发送消息以确认时间。"],"loc.founded":["Founded by ADTYAA","Founded by ADTYAA","由 ADTYAA 创立"],"loc.hours":["Opening hours","Jam operasional","营业时间"],"loc.d1":["Mon, Wed to Sat","Sen, Rab sampai Sab","周一、周三至周六"],"loc.d2":["Tuesday","Selasa","周二"],"loc.d3":["Sunday","Minggu","周日"],"loc.dir":["Get directions","Petunjuk arah","获取路线"],"loc.wa":["Chat on WhatsApp","Chat via WhatsApp","通过 WhatsApp 洽谈"],"loc.call":["Call now","Telepon sekarang","立即致电"],"loc.map":["DJURAGAN IKLAN ID on Google Maps","DJURAGAN IKLAN ID di Google Maps","DJURAGAN IKLAN ID 的 Google 地图位置"],"final.label":["Build what your business depends on.","Bangun sistem yang diandalkan bisnis Anda.","构建您的业务所依赖的系统。"],"final.title":["Let's build something worth depending on.","Mari bangun sesuatu yang layak diandalkan.","让我们共同构建值得依赖的系统。"],"final.copy":["One accountable technology partner across engineering, growth, security, and digital infrastructure.","Satu partner teknologi yang akuntabel untuk engineering, growth, keamanan, dan infrastruktur digital.","一个对结果负责的技术合作方，覆盖工程、增长、安全与数字基础设施。"],"foot.nav":["Navigate","Navigasi","导航"],"foot.cap":["Capabilities","Keahlian","核心能力"],"foot.con":["Contact","Kontak","联系"],"foot.plugins":["Custom Plugins","Plugin Kustom","定制插件"],"foot.themes":["Custom Themes","Tema Kustom","定制主题"],"foot.addons":["Add-ons & Care Plans","Add-on & Paket Perawatan","附加服务与维护计划"],"foot.rights":["All rights reserved.","Hak cipta dilindungi.","保留所有权利。"],"dock.group":["Quick contact","Kontak cepat","快速联系"],"dock.wa":["Chat on WhatsApp","Chat via WhatsApp","通过 WhatsApp 洽谈"],"dock.maps":["Open in Google Maps","Buka di Google Maps","在 Google 地图中打开"],"dock.call":["Call now","Telepon sekarang","立即致电"],"a.home":["Home","Beranda","首页"],"a.toc":["In this article","Dalam artikel ini","本文内容"],"n9":["Choosing a medical SEO agency Indonesia hospitals and healthtech brands can trust is a clinical decision as much as a marketing one. Google treats health content as Your Money or Your Life, so a page that ranks without verified authorship, cited evidence, and correct structured data is a liability, not an asset. This playbook sets out how I build search visibility for medical brands in Indonesia, from a doctor-reviewed page to a WhatsApp conversation with a patient.","Memilih medical SEO agency Indonesia yang dapat dipercaya rumah sakit dan brand healthtech adalah keputusan klinis sekaligus keputusan pemasaran. Google memperlakukan konten kesehatan sebagai Your Money or Your Life, sehingga halaman yang berperingkat tanpa penulis terverifikasi, bukti yang dikutip, dan data terstruktur yang benar adalah beban, bukan aset. Playbook ini menjelaskan cara saya membangun visibilitas pencarian untuk brand medis di Indonesia, dari halaman yang ditinjau dokter hingga percakapan WhatsApp dengan pasien.","选择医院和医疗科技品牌可以信赖的印尼医疗 SEO 机构（medical SEO agency Indonesia），既是营销决策，也是临床决策。Google 将健康内容视为 Your Money or Your Life 类别，因此缺少可验证作者、引用证据与正确结构化数据却仍获得排名的页面，是负债而非资产。本实战手册讲解我如何为印尼的医疗品牌建立搜索可见度，从经医生审核的页面，到与患者的 WhatsApp 对话。"],"n10":["The short version","Ringkasnya","要点概览"],"n11":["A medical SEO agency Indonesia leaders can rely on does four things: it has a licensed doctor verify every claim, marks up every page with accurate medical schema, ships a fast and clean website, and measures success in booked consultations rather than traffic.","Medical SEO agency Indonesia yang dapat diandalkan pimpinan melakukan empat hal: dokter berlisensi memverifikasi setiap klaim, setiap halaman diberi skema medis yang akurat, situs dibangun cepat dan bersih, dan keberhasilan diukur dari konsultasi yang terjadwal, bukan sekadar lalu lintas.","值得管理层信赖的印尼医疗 SEO 机构（medical SEO agency Indonesia）做好四件事：由持证医生核实每一项陈述，为每个页面添加准确的医疗结构化数据，交付快速而干净的网站，并以预约成功的问诊而非流量来衡量成效。"],"n12":["Medical SEO agency Indonesia: the YMYL and E-E-A-T imperative","Medical SEO agency Indonesia: keharusan YMYL dan E-E-A-T","印尼医疗 SEO 机构：YMYL 与 E-E-A-T 的硬性要求"],"n13":["A medical SEO agency Indonesia brands hire has to start from one fact: Google applies its strictest quality standards to health pages. The [Google Search Quality Rater Guidelines<\/a> treat topics that can affect health, safety, or financial stability as YMYL, and they ask raters to weigh experience, expertise, authoritativeness, and trustworthiness (E-E-A-T) first.","Medical SEO agency Indonesia yang Anda tunjuk harus berangkat dari satu fakta: Google menerapkan standar kualitas paling ketat pada halaman kesehatan.](https://services.google.com/fh/files/misc/hsw-sqrg.pdf) [Google Search Quality Rater Guidelines<\/a> memasukkan topik yang dapat memengaruhi kesehatan, keselamatan, atau stabilitas keuangan ke dalam YMYL, dan meminta penilai mempertimbangkan pengalaman, keahlian, otoritas, dan kepercayaan (E-E-A-T) terlebih dahulu.","印尼医疗 SEO 机构（medical SEO agency Indonesia）必须从一个事实出发：Google 对健康类页面适用最严格的质量标准。](https://services.google.com/fh/files/misc/hsw-sqrg.pdf) [Google 搜索质量评估指南<\/a>把可能影响健康、安全或财务稳定的主题归为 YMYL，并要求评估者首先衡量经验、专业性、权威性与可信度（E-E-A-T）。"],"n14":["A defensible YMYL healthcare SEO strategy Indonesia teams can stand behind is built on that foundation. Generalist agencies fail for predictable reasons:","YMYL healthcare SEO strategy Indonesia yang dapat dipertanggungjawabkan dibangun di atas fondasi itu. Agensi generalis gagal karena alasan yang mudah ditebak:","站得住脚的印尼 YMYL 医疗 SEO 策略（YMYL healthcare SEO strategy Indonesia）建立在这一基础之上。通才型代理机构的失败原因是可预见的："],"n15":["They publish anonymous articles with no named doctor, no credentials, and no review date.","Mereka menerbitkan artikel anonim tanpa nama dokter, kredensial, atau tanggal tinjauan.","发布匿名文章，没有署名医生、资质与审核日期。"],"n16":["They cite blogs and competitors instead of primary sources.","Mereka mengutip blog dan kompetitor, bukan sumber primer.","引用博客与竞争对手，而非一手来源。"],"n17":["They ignore medical schema, so Google cannot tell a hospital page from a general blog post.","Mereka mengabaikan skema medis, sehingga Google tidak bisa membedakan halaman rumah sakit dari blog umum.","忽视医疗结构化数据，Google 无法区分医院页面与普通博客文章。"],"n18":["They chase high-traffic symptom keywords that never become a consultation.","Mereka mengejar kata kunci gejala berlalu lintas tinggi yang tidak pernah menjadi konsultasi.","追逐流量很高、却永远不会转化为问诊的症状类关键词。"],"n19":["They ship English and Bahasa Indonesia pages as unchecked translations of each other.","Mereka merilis halaman Inggris dan Bahasa Indonesia sebagai terjemahan yang tidak diperiksa.","把英文页与印尼语页作为互相翻译、未经核对的版本上线。"],"n20":["In Indonesia the audience is split. Local patients search in Bahasa Indonesia, while medical travellers and international partners search in English, and both expect the same clinical accuracy. That is why I treat language, authorship, and evidence as one system, not three tasks.","Di Indonesia, audiensnya terbagi. Pasien lokal mencari dalam Bahasa Indonesia, sedangkan wisatawan medis dan mitra internasional mencari dalam bahasa Inggris, dan keduanya mengharapkan akurasi klinis yang sama. Karena itu saya memperlakukan bahasa, kepenulisan, dan bukti sebagai satu sistem, bukan tiga tugas terpisah.","在印尼，受众是分层的。本地患者用印尼语搜索，医疗旅行者与国际合作方用英语搜索，两者都期待同样的临床准确性。因此我把语言、作者署名与证据视为一个整体体系，而不是三项独立任务。"],"n21":["Medical content accuracy and E-E-A-T SEO: the verification framework","Akurasi konten medis dan E-E-A-T SEO: kerangka verifikasi","医疗内容准确性与 E-E-A-T SEO：核实框架"],"n22":["Medical content accuracy and E-E-A-T SEO are one discipline seen from two sides. Accuracy protects the patient, and E-E-A-T lets Google see that protection. This is the workflow I run for every page on a medical SEO agency Indonesia engagement:","Akurasi konten medis dan E-E-A-T SEO adalah satu disiplin yang dilihat dari dua sisi. Akurasi melindungi pasien, dan E-E-A-T membuat Google dapat melihat perlindungan itu. Inilah alur kerja yang saya jalankan untuk setiap halaman dalam proyek medical SEO agency Indonesia:","医疗内容准确性与 E-E-A-T SEO 是同一门学科的两个侧面：准确性保护患者，E-E-A-T 让 Google 看见这种保护。以下是我在印尼医疗 SEO 机构（medical SEO agency Indonesia）项目中对每个页面执行的流程："],"n23":["Brief: a clinician defines the search intent, the audience, and the claims the page may and may not make.","Brief: seorang klinisi menetapkan maksud pencarian, audiens, serta klaim yang boleh dan tidak boleh dibuat halaman.","简报：由临床医生界定搜索意图、受众，以及页面可以与不可以作出的陈述。"],"n24":["Draft: a medical writer works only from primary sources and a sourced claim sheet.","Draf: penulis medis hanya bekerja dari sumber primer dan lembar klaim bersumber.","起草：医学撰稿人只依据一手来源与带出处的陈述清单。"],"n25":["Doctor review: a licensed specialist in the relevant field edits, approves, and signs off by name.","Tinjauan dokter: spesialis berlisensi di bidang terkait menyunting, menyetujui, dan menandatangani dengan namanya.","医生审核：相关专科的持证医生编辑、批准并署名确认。"],"n26":["Citation audit: every statistic and treatment statement is matched to a linked, dated source.","Audit sitasi: setiap statistik dan pernyataan terapi dicocokkan dengan sumber bertanggal yang ditautkan.","引用审计：每个统计数据与治疗陈述都对应一个带链接和日期的来源。"],"n27":["Publish: the reviewer, credentials, and review date appear on the page and in the markup.","Terbit: peninjau, kredensial, dan tanggal tinjauan tampil di halaman dan di markup.","发布：审核人、资质与审核日期同时显示在页面和标记中。"],"n28":["Re-review: pages are checked again every six months or when guidelines change.","Tinjau ulang: halaman diperiksa kembali setiap enam bulan atau saat pedoman berubah.","复审：每六个月或指南更新时重新检查页面。"],"n29":["Citation standards for medical pages","Standar sitasi untuk halaman medis","医疗页面的引用标准"],"n30":["Tier","Tingkat","层级"],"n31":["Examples","Contoh","示例"],"n32":["Used for","Digunakan untuk","用途"],"n33":["Tier 1","Tingkat 1","第一层"],"n34":["Clinical studies and systematic reviews, national guidelines","Studi klinis dan tinjauan sistematis, pedoman nasional","临床研究、系统综述与国家指南"],"n35":["Clinical claims and statistics","Klaim klinis dan statistik","临床陈述与统计数据"],"n36":["Tier 2","Tingkat 2","第二层"],"n37":["WHO and Ministry of Health Indonesia publications","Publikasi WHO dan Kementerian Kesehatan RI","世卫组织与印尼卫生部发布的资料"],"n38":["Public health facts and local regulation","Fakta kesehatan masyarakat dan regulasi lokal","公共卫生事实与本地法规"],"n39":["Tier 3","Tingkat 3","第三层"],"n40":["Professional societies and hospital protocols","Organisasi profesi dan protokol rumah sakit","专业学会与医院诊疗规程"],"n41":["Procedure descriptions and patient pathways","Deskripsi prosedur dan alur pasien","操作流程说明与患者路径"],"n42":["Not accepted","Tidak diterima","不予采用"],"n43":["Competitor blogs, forums, undated pages","Blog kompetitor, forum, halaman tanpa tanggal","竞争对手博客、论坛、无日期页面"],"n44":["Never cited","Tidak pernah dikutip","绝不引用"],"n45":["My primary sources are](https://services.google.com/fh/files/misc/hsw-sqrg.pdf) [PubMed<\/a> for clinical evidence, the](https://pubmed.ncbi.nlm.nih.gov/) [World Health Organization<\/a> for public health facts, and the](https://www.who.int/) [Ministry of Health Indonesia<\/a> for local regulation and programmes.","Sumber primer saya adalah](https://www.kemkes.go.id/) [PubMed<\/a> untuk bukti klinis,](https://pubmed.ncbi.nlm.nih.gov/) [World Health Organization<\/a> untuk fakta kesehatan masyarakat, dan](https://www.who.int/) [Kementerian Kesehatan RI<\/a> untuk regulasi dan program lokal.","我的一手来源包括：提供临床证据的](https://www.kemkes.go.id/) [PubMed<\/a>、提供公共卫生事实的](https://pubmed.ncbi.nlm.nih.gov/) [世界卫生组织<\/a>，以及提供本地法规与项目信息的](https://www.who.int/) [印尼卫生部<\/a>。"],"n46":["Advanced technical SEO for healthcare websites: schema and Core Web Vitals","Advanced technical SEO untuk situs kesehatan: skema dan Core Web Vitals","医疗网站的高级技术 SEO：结构化数据与核心网页指标"],"n47":["Advanced technical SEO for healthcare websites begins with medical schema architecture and E-E-A-T working together.](https://www.kemkes.go.id/) [Schema.org MedicalWebPage<\/a> describes a health page, with properties such as reviewedBy and lastReviewed, while Hospital and Physician describe the institution and the doctor behind it. Marked up correctly, a page tells Google who checked it and which organisation stands behind it.","Advanced technical SEO untuk situs kesehatan dimulai dari medical schema architecture dan E-E-A-T yang bekerja bersama.](https://schema.org/MedicalWebPage) [Schema.org MedicalWebPage<\/a> menjelaskan halaman kesehatan, dengan properti seperti reviewedBy dan lastReviewed, sedangkan Hospital dan Physician menjelaskan institusi dan dokter di baliknya. Bila ditandai dengan benar, halaman memberi tahu Google siapa yang memeriksanya dan organisasi mana yang berdiri di belakangnya.","医疗网站的高级技术 SEO（advanced technical SEO for healthcare websites）始于医疗结构化数据架构与 E-E-A-T 的协同。](https://schema.org/MedicalWebPage) [Schema.org 的 MedicalWebPage<\/a> 用于描述健康类页面，带有 reviewedBy、lastReviewed 等属性，而 Hospital 与 Physician 分别描述机构及其背后的医生。标记正确时，页面会告诉 Google 谁审核了它、哪家机构为其背书。"],"n48":["Core medical schema types","Tipe skema medis inti","核心医疗结构化数据类型"],"n49":["Type","Tipe","类型"],"n50":["Describes","Menjelaskan","描述对象"],"n51":["Key properties","Properti utama","关键属性"],"n52":["The health page itself","Halaman kesehatan itu sendiri","健康页面本身"],"n53":["The reviewing doctor","Dokter peninjau","审核医生"],"n54":["The institution","Institusi","医疗机构"],"n55":["A simplified example of the markup I deploy on a reviewed page:","Contoh sederhana markup yang saya terapkan pada halaman yang telah ditinjau:","以下是我在已审核页面上部署的标记的简化示例："],"n56":["Speed is a patient-access issue as much as a ranking factor, because a slow page on a mobile connection loses the person who needs help today. I build hospital pages to these Core Web Vitals targets:","Kecepatan adalah soal akses pasien sekaligus faktor peringkat, karena halaman lambat di koneksi seluler akan kehilangan orang yang membutuhkan bantuan hari ini. Saya membangun halaman rumah sakit dengan target Core Web Vitals berikut:","速度既是排名因素，也关乎患者就医的可及性：移动网络下加载缓慢的页面，会流失今天就需要帮助的人。我按以下核心网页指标目标构建医院页面："],"n57":["Largest Contentful Paint under 2.5 seconds on mobile.","Largest Contentful Paint di bawah 2,5 detik pada seluler.","移动端最大内容绘制（LCP）低于 2.5 秒。"],"n58":["Interaction to Next Paint under 200 milliseconds.","Interaction to Next Paint di bawah 200 milidetik.","下一次绘制交互延迟（INP）低于 200 毫秒。"],"n59":["Cumulative Layout Shift under 0.1.","Cumulative Layout Shift di bawah 0,1.","累计布局偏移（CLS）低于 0.1。"],"n60":["Zero code bloat: lean custom code, no stacked plugins, no unused scripts.","Tanpa code bloat: kode kustom ramping, tanpa plugin bertumpuk, tanpa skrip tak terpakai.","零代码臃肿：精简的定制代码，没有堆叠插件，没有无用脚本。"],"n61":["Cross-border patient acquisition funnel: from Google search to WhatsApp","Funnel akuisisi pasien lintas negara: dari pencarian Google ke WhatsApp","跨境患者获取漏斗：从 Google 搜索到 WhatsApp"],"n62":["A medical SEO agency Indonesia brands use for international growth designs the funnel from the search result to the conversation. Patients across the region prefer to confirm on WhatsApp, so every stage is built to end there.","Medical SEO agency Indonesia yang dipakai brand untuk pertumbuhan internasional merancang funnel dari hasil pencarian hingga percakapan. Pasien di kawasan ini lebih suka mengonfirmasi lewat WhatsApp, sehingga setiap tahap dibangun untuk berakhir di sana.","为国际增长而聘用的印尼医疗 SEO 机构（medical SEO agency Indonesia）会设计从搜索结果到对话的完整漏斗。区域内的患者更习惯在 WhatsApp 上确认，因此每个环节都以此为终点。"],"n63":["The patient acquisition funnel","Funnel akuisisi pasien","患者获取漏斗"],"n64":["Stage","Tahap","阶段"],"n65":["What happens","Yang terjadi","发生什么"],"n66":["What I measure","Yang saya ukur","我衡量什么"],"n67":["Google search","Pencarian Google","Google 搜索"],"n68":["An intent-matched query in English or Bahasa Indonesia","Kueri sesuai maksud dalam bahasa Inggris atau Indonesia","以英语或印尼语发起、与意图匹配的搜索"],"n69":["Impressions, ranking, click-through rate","Impresi, peringkat, rasio klik","展示量、排名、点击率"],"n70":["Medical landing page","Halaman landing medis","医疗落地页"],"n71":["A doctor-reviewed page with credentials, procedure information, and one clear next step","Halaman yang ditinjau dokter dengan kredensial, informasi prosedur, dan satu langkah berikutnya yang jelas","经医生审核的页面，含资质、操作信息和一个明确的下一步"],"n72":["Engagement, scroll depth, load speed","Keterlibatan, kedalaman gulir, kecepatan muat","互动度、滚动深度、加载速度"],"n73":["WhatsApp conversation","Percakapan WhatsApp","WhatsApp 对话"],"n74":["A one-tap message with prefilled context, answered by a trained coordinator","Pesan satu ketukan dengan konteks terisi, dijawab koordinator terlatih","一键发送、预填背景的消息，由受训协调员回复"],"n75":["Conversations started, response time","Percakapan dimulai, waktu respons","发起的对话数、响应时间"],"n76":["Booked consultation","Konsultasi terjadwal","预约问诊"],"n77":["The appointment is confirmed and recorded","Janji temu dikonfirmasi dan dicatat","预约已确认并记录"],"n78":["Cost per consultation, show rate","Biaya per konsultasi, tingkat kehadiran","单次问诊成本、到诊率"],"n79":["Cross-border visitors add two requirements: correct hreflang so each market sees the right language version, and a response process that respects time zones and patient privacy.","Pengunjung lintas negara menambah dua syarat: hreflang yang benar agar setiap pasar melihat versi bahasa yang tepat, dan proses respons yang menghormati zona waktu serta privasi pasien.","跨境访客带来两项额外要求：正确的 hreflang，使各市场看到对应语言版本；以及尊重时区与患者隐私的响应流程。"],"n80":["Why executives choose this medical SEO agency Indonesia over bloated agencies","Mengapa para eksekutif memilih medical SEO agency Indonesia ini dibanding agensi yang membengkak","高管为何选择这家印尼医疗 SEO 机构，而非臃肿的大型代理"],"n81":["C-level buyers tell me the same thing: they are tired of account managers, junior hand-offs, and reports full of vanity metrics. I run ADTYAA as a boutique medical SEO agency Indonesia practice, and the difference is concrete.","Para pembeli level C menyampaikan hal yang sama: mereka lelah dengan account manager, serah terima ke staf junior, dan laporan penuh metrik semu. Saya menjalankan ADTYAA sebagai praktik medical SEO agency Indonesia berskala butik, dan perbedaannya konkret.","高管客户对我说的几乎都一样：他们厌倦了客户经理、初级人员层层交接，以及满是虚荣指标的报告。我把 ADTYAA 经营成精品型的印尼医疗 SEO 机构（medical SEO agency Indonesia），差别很具体。"],"n82":["Single-point accountability","Akuntabilitas satu pintu","单一责任人"],"n83":["You deal with me, the founder. Strategy, engineering, and reporting sit with one accountable person, not a chain of hand-offs.","Anda berurusan langsung dengan saya, sang founder. Strategi, engineering, dan pelaporan berada di satu orang yang bertanggung jawab, bukan rantai serah terima.","您直接与我这位创始人对接。策略、工程与报告由同一个负责人承担，而不是层层交接。"],"n84":["Boutique precision","Presisi butik","精品级精准"],"n85":["A small number of medical clients at a time, so every page, schema block, and review step gets senior attention.","Sedikit klien medis dalam satu waktu, sehingga setiap halaman, blok skema, dan langkah tinjauan mendapat perhatian senior.","同一时期只服务少数医疗客户，每个页面、每段结构化数据、每个审核环节都有资深人员亲自把关。"],"n86":["Zero code bloat","Tanpa code bloat","零代码臃肿"],"n87":["Lean, custom-built pages that load fast and pass Core Web Vitals, without plugin stacks that slow a hospital site.","Halaman kustom yang ramping, cepat dimuat, dan lolos Core Web Vitals, tanpa tumpukan plugin yang memperlambat situs rumah sakit.","精简的定制页面，加载快并通过核心网页指标，没有拖慢医院网站的插件堆叠。"],"n88":["Search performance you can verify","Kinerja pencarian yang dapat diverifikasi","可验证的搜索成效"],"n89":["Success is judged by rankings for clinical-intent queries and booked consultations, with the data open to you.","Keberhasilan dinilai dari peringkat untuk kueri berniat klinis dan konsultasi terjadwal, dengan data terbuka bagi Anda.","成效以临床意图关键词的排名与预约问诊来评判，数据向您开放。"],"n90":["Hospital SEO consultant Indonesia: the 90-day implementation roadmap","Hospital SEO consultant Indonesia: peta jalan implementasi 90 hari","印尼医院 SEO 顾问：90 天落地路线图"],"n91":["As a hospital SEO consultant Indonesia teams can hold to a schedule, I commit to a 90-day plan with an output you can inspect at every stage. The](https://schema.org/MedicalWebPage) [approach<\/a> explains how an engagement runs, and the](https://medikabyte.com/#approach) [capabilities<\/a> show the engineering behind it.","Sebagai hospital SEO consultant Indonesia yang dapat dipegang jadwalnya, saya berkomitmen pada rencana 90 hari dengan hasil yang dapat Anda periksa di setiap tahap.](https://medikabyte.com/#capabilities) [Pendekatan<\/a> kami menjelaskan bagaimana kerja sama dijalankan, dan](https://medikabyte.com/#approach) [keahlian<\/a> kami menunjukkan engineering di baliknya.","作为团队可以按期对账的印尼医院 SEO 顾问（hospital SEO consultant Indonesia），我承诺一份 90 天计划，每个阶段都有可检查的产出。](https://medikabyte.com/#capabilities) [合作流程<\/a>说明合作如何运行，](https://medikabyte.com/#approach) [核心能力<\/a>展示背后的工程实力。"],"n92":["The first 90 days","90 hari pertama","前 90 天"],"n93":["Days","Hari","天数"],"n94":["Focus","Fokus","重点"],"n95":["Deliverable","Hasil","交付成果"],"n96":["Days 1 to 30","Hari 1 sampai 30","第 1—30 天"],"n97":["Audit and foundation: technical crawl, YMYL risk review, intent map, reviewer board, tracking","Audit dan fondasi: crawl teknis, tinjauan risiko YMYL, peta maksud pencarian, dewan peninjau, pelacakan","审计与奠基：技术抓取、YMYL 风险审查、意图地图、审核医生组、追踪体系"],"n98":["Audit report, intent map, reviewer roster","Laporan audit, peta maksud, daftar peninjau","审计报告、意图地图、审核医生名单"],"n99":["Days 31 to 60","Hari 31 sampai 60","第 31—60 天"],"n100":["Build: priority pages written and doctor-reviewed, schema deployed, Core Web Vitals fixed, WhatsApp funnel live","Bangun: halaman prioritas ditulis dan ditinjau dokter, skema diterapkan, Core Web Vitals diperbaiki, funnel WhatsApp aktif","搭建：重点页面撰写并经医生审核，结构化数据上线，核心网页指标修复，WhatsApp 漏斗启用"],"n101":["Live pages with schema, speed report","Halaman tayang dengan skema, laporan kecepatan","带结构化数据的上线页面、速度报告"],"n102":["Days 61 to 90","Hari 61 sampai 90","第 61—90 天"],"n103":["Scale and prove: expand topic clusters, tune conversion, report against consultations","Perluas dan buktikan: kembangkan klaster topik, optimalkan konversi, laporkan terhadap konsultasi","扩展与验证：扩充主题集群，优化转化，按问诊数据汇报"],"n104":["Ranking and consultation report, next-quarter plan","Laporan peringkat dan konsultasi, rencana kuartal berikutnya","排名与问诊报告、下季度计划"],"n105":["Packaged services, custom plugins, and care plans are listed in](https://medikabyte.com/#capabilities) [ADTYAA Essentials<\/a>, and my](https://medikabyte.com/essentials/) [background<\/a> explains why single-point accountability matters in healthcare.","Layanan paket, plugin kustom, dan paket perawatan tercantum di](https://medikabyte.com/#about) [ADTYAA Essentials<\/a>, dan](https://medikabyte.com/essentials/) [latar belakang<\/a> saya menjelaskan mengapa akuntabilitas satu pintu penting di dunia kesehatan.","套餐服务、定制插件与维护计划列于](https://medikabyte.com/#about) [ADTYAA Essentials<\/a>，我的](https://medikabyte.com/essentials/) [背景介绍<\/a>则说明了单一责任人在医疗行业为何重要。"],"n106":["Request a confidential audit from a medical SEO agency Indonesia","Minta audit rahasia dari medical SEO agency Indonesia","向印尼医疗 SEO 机构申请保密审计"],"n107":["If you lead a hospital network or a healthtech brand and want a medical SEO agency Indonesia partner who answers for the result, start with a confidential audit. I review your site, content risk, and schema, and reply with initial findings and a proposed scope within 24 hours.","Jika Anda memimpin jaringan rumah sakit atau brand healthtech dan menginginkan mitra medical SEO agency Indonesia yang bertanggung jawab atas hasil, mulailah dengan audit rahasia. Saya meninjau situs, risiko konten, dan skema Anda, lalu membalas dengan temuan awal dan usulan lingkup dalam 24 jam.","如果您领导医院集团或医疗科技品牌，希望找到对结果负责的印尼医疗 SEO 机构（medical SEO agency Indonesia）合作伙伴，请从保密审计开始。我会审阅您的网站、内容风险与结构化数据，并在 24 小时内回复初步发现与建议范围。"],"n108":["Ready for a confidential medical SEO audit?","Siap untuk audit SEO medis yang rahasia?","准备好进行保密的医疗 SEO 审计了吗？"],"n109":["Message me on WhatsApp or send a brief. Your details stay private, and you receive a written reply within 24 hours.","Kirim pesan lewat WhatsApp atau kirim brief. Data Anda tetap privat, dan Anda menerima balasan tertulis dalam 24 jam.","请通过 WhatsApp 联系我或提交简报。您的信息将保密，并在 24 小时内收到书面回复。"],"a.crumb":["Medical SEO Agency Indonesia","Medical SEO Agency Indonesia","印尼医疗 SEO 机构（Medical SEO Agency Indonesia）"],"a.h1a":["Medical SEO Agency Indonesia:","Medical SEO Agency Indonesia:","印尼医疗 SEO 机构（Medical SEO Agency Indonesia）："],"a.h1b":["The YMYL and E-E-A-T Playbook for Hospitals and Healthtech","Panduan YMYL dan E-E-A-T untuk Rumah Sakit dan Healthtech","面向医院与医疗科技品牌的 YMYL 与 E-E-A-T 实战手册"],"a.m1":["By Adtyaa","Oleh Adtyaa","作者：Adtyaa"],"a.m2":["10 October 2026","10 Oktober 2026","2026 年 10 月 10 日"],"a.m3":["9 min read","Baca 9 menit","阅读约 9 分钟"],"a.img.alt":["Medical SEO agency Indonesia E-E-A-T framework","Kerangka kerja E-E-A-T medical SEO agency Indonesia","印尼医疗 SEO 机构 E-E-A-T 框架（Medical SEO agency Indonesia E-E-A-T framework）"],"a.img.cap":["Doctor-reviewed content, medical schema, and a fast site: the three layers behind every ranking page.","Konten yang ditinjau dokter, skema medis, dan situs cepat: tiga lapisan di balik setiap halaman yang berperingkat.","医生审核的内容、医疗结构化数据与高速网站：每个排名页面背后的三层支撑。"],"cta.b1":["Request a confidential audit","Minta audit rahasia","申请保密审计"],"cta.b2":["Send a project brief","Kirim brief proyek","提交项目简报"],"au.name":["Adtyaa, Founder of](https://medikabyte.com/#about) [DJURAGAN IKLAN ID<\/a>","Adtyaa, Founder of](https://maps.app.goo.gl/YRw1yaWB5xfHcjwq5) [DJURAGAN IKLAN ID<\/a>","Adtyaa，](https://maps.app.goo.gl/YRw1yaWB5xfHcjwq5) [DJURAGAN IKLAN ID<\/a> 创始人"],"au.bio":["Builds medical websites, healthcare SEO, schema architecture, and cross-border advertising for brands entering Indonesia.","Membangun website medis, SEO kesehatan, arsitektur skema, dan iklan lintas negara untuk brand yang masuk ke Indonesia.","为进入印尼市场的品牌构建医疗网站、医疗 SEO、结构化数据架构与跨境广告。"],"au.cta":["Request a confidential audit","Minta audit rahasia","申请保密审计"],"au.alt":["Adtyaa, author of the Medical SEO Agency Indonesia guide","Adtyaa, penulis panduan Medical SEO Agency Indonesia","Adtyaa，《印尼医疗 SEO 机构》指南作者"],"wa.general":["Hi Adtyaa, I found your guide on medical SEO agency Indonesia and I'd like to discuss SEO for our healthcare brand.","Hi Adtyaa, I found your guide on medical SEO agency Indonesia and I'd like to discuss SEO for our healthcare brand.","Hi Adtyaa, I found your guide on medical SEO agency Indonesia and I'd like to discuss SEO for our healthcare brand."],"wa.article":["Hi Adtyaa, I read your guide on medical SEO agency Indonesia and I'd like to request a confidential audit.","Hi Adtyaa, I read your guide on medical SEO agency Indonesia and I'd like to request a confidential audit.","Hi Adtyaa, I read your guide on medical SEO agency Indonesia and I'd like to request a confidential audit."]}; var LI = { en: 0, id: 1, zh: 2 }; var L = "en"; var PHONE = "6281411188809", MAIL = "hallo@adtyaa.cloud";](https://maps.app.goo.gl/YRw1yaWB5xfHcjwq5)

function $(sel, ctx) { return Array.prototype.slice.call((ctx || root).querySelectorAll(sel)); } function byId(id) { return document.getElementById(id); } function t(key, lang) { var e = D[key]; if (!e) { return key; } var v = e[LI[lang || L]]; return (v === undefined || v === "") ? e[0] : v; } function msgLang() { return "en"; } function waUrl(m) { return "https://wa.me/" + PHONE + "?text=" + encodeURIComponent(m); }

/* ---------- language (EN default, ID, 中文) ---------- */ var scLoaded = false; function loadSC() { if (scLoaded) { return; } scLoaded = true; var l = document.createElement("link"); l.rel = "stylesheet"; l.href = "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap"; document.head.appendChild(l); } function apply() { if (L === "zh") { loadSC(); } document.documentElement.setAttribute("lang", L === "zh" ? "zh-Hans" : L); root.setAttribute("data-l", L); $("[data-i18n]").forEach(function (el) { el.textContent = t(el.getAttribute("data-i18n")); }); $("[data-i18n-html]").forEach(function (el) { el.innerHTML = t(el.getAttribute("data-i18n-html")); }); $("[data-i18n-alt]").forEach(function (el) { el.setAttribute("alt", t(el.getAttribute("data-i18n-alt"))); }); $("[data-i18n-title]").forEach(function (el) { el.setAttribute("title", t(el.getAttribute("data-i18n-title"))); }); $("[data-i18n-aria]").forEach(function (el) { el.setAttribute("aria-label", t(el.getAttribute("data-i18n-aria"))); }); $("[data-wa]").forEach(function (el) { el.setAttribute("href", waUrl(t(el.getAttribute("data-wa"), msgLang()))); }); $("[data-lang]").forEach(function (b) { b.setAttribute("aria-pressed", b.getAttribute("data-lang") === L ? "true" : "false"); }); var st = byId("fs"); if (st) { st.textContent = ""; st.classList.remove("err"); } }

root.addEventListener("click", function (e) { var b = e.target.closest ? e.target.closest("[data-lang]") : null; if (!b) { return; } L = b.getAttribute("data-lang"); apply(); });

(function initLang() { var pick = null; try { var q = new URLSearchParams(window.location.search || "").get("lang"); if (q && LI[q] !== undefined) { pick = q; } } catch (x) {} if (pick) { L = pick; } })();

/* ---------- header + mobile menu ---------- */ var hd = byId("hd"), bg = byId("bg"), mn = byId("mn"); var bar = root.querySelector(".prog span"); var ticking = false; function onScroll() { ticking = false; if (hd) { hd.classList.toggle("sc", window.scrollY > 8); } if (bar) { var h = document.documentElement.scrollHeight - window.innerHeight; var p = h > 0 ? Math.min(1, Math.max(0, window.scrollY / h)) : 0; bar.style.transform = "scaleX(" + p.toFixed(4) + ")"; } } window.addEventListener("scroll", function () { if (!ticking) { ticking = true; window.requestAnimationFrame(onScroll); } }, { passive: true }); onScroll();

function closeMenu() { if (mn) { mn.classList.remove("on"); } if (bg) { bg.setAttribute("aria-expanded", "false"); } } if (bg && mn) { bg.addEventListener("click", function () { var on = mn.classList.toggle("on"); bg.setAttribute("aria-expanded", on ? "true" : "false"); }); mn.addEventListener("click", function (e) { if (e.target.closest && e.target.closest("a")) { closeMenu(); } }); } document.addEventListener("keydown", function (e) { if (e.key === "Escape") { closeMenu(); } }); window.addEventListener("resize", function () { if (window.innerWidth > 1000) { closeMenu(); } });

/* ---------- contact form (no server) ---------- */ var form = byId("cf"); if (form) { var fs = byId("fs"); var val = function (id) { var el = byId(id); return el ? el.value.trim() : ""; }; var optText = function (id) { var el = byId(id); if (!el || !el.value) { return ""; } var key = el.options[el.selectedIndex].getAttribute("data-i18n"); return key ? t(key, msgLang()) : el.options[el.selectedIndex].text; }; var setStatus = function (key, err) { fs.textContent = key ? t(key) : ""; fs.classList.toggle("err", !!err); }; var validate = function () { var ok = true; ["f-name", "f-service"].forEach(function (id) { var el = byId(id), bad = !el.value.trim(); el.setAttribute("aria-invalid", bad ? "true" : "false"); if (bad) { ok = false; } }); return ok; }; var compose = function () { var ml = msgLang(), lines = [t("wa.general", ml), ""]; var add = function (k, v) { if (v) { lines.push(t(k, ml) + ": " + v); } }; add("m.name", val("f-name")); add("m.email", val("f-email")); add("m.wa", val("f-wa")); add("m.url", val("f-url")); add("m.service", optText("f-service")); add("m.eng", optText("f-eng")); add("m.time", optText("f-time")); var m = val("f-msg"); if (m) { lines.push(""); lines.push(t("m.msg", ml) + ":"); lines.push(m); } return lines.join("\n"); }; byId("send-wa").addEventListener("click", function () { if (!validate()) { setStatus("f.err", true); return; } setStatus("f.okwa", false); window.open(waUrl(compose()), "_blank", "noopener"); }); byId("send-mail").addEventListener("click", function () { if (!validate()) { setStatus("f.err", true); return; } setStatus("f.okmail", false); var subject = t("m.subject", msgLang()) + " - " + val("f-name"); window.location.href = "mailto:" + MAIL + "?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(compose()); }); form.addEventListener("submit", function (e) { e.preventDefault(); byId("send-wa").click(); }); ["f-name", "f-service"].forEach(function (id) { var el = byId(id); var clear = function () { if (el.value.trim()) { el.setAttribute("aria-invalid", "false"); } }; el.addEventListener("input", clear); el.addEventListener("change", clear); }); }

apply();

/* ---------- motion (respects reduced motion) ---------- */ var reduce = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;

/* ---------- particle field (article header + final CTA) ---------- */ function initFx(host) { if (!host) { return; } var cv = document.createElement("canvas"); cv.className = "fx"; cv.setAttribute("aria-hidden", "true"); host.insertBefore(cv, host.firstChild); var ctx = cv.getContext("2d"); if (!ctx) { return; } var W = 1, H = 1, stars = [], dust = [], nodes = [], mx = -9999, my = -9999, onScreen = true; var sprite = document.createElement("canvas"); sprite.width = sprite.height = 48; var sg = sprite.getContext("2d"), grad = sg.createRadialGradient(24, 24, 0, 24, 24, 24); grad.addColorStop(0, "rgba(255,243,209,1)"); grad.addColorStop(.25, "rgba(230,200,140,.55)"); grad.addColorStop(1, "rgba(201,164,92,0)"); sg.fillStyle = grad; sg.fillRect(0, 0, 48, 48); function rnd(a, b) { return a + Math.random() * (b - a); } function seed() { var a = W * H, i; stars = []; dust = []; nodes = []; for (i = 0; i < Math.round(a / 9000); i++) { stars.push({ x: rnd(0, W), y: rnd(0, H), r: rnd(.3, 1.05), p: rnd(0, 6.28), s: rnd(.5, 1.6) }); } for (i = 0; i < Math.round(Math.min(46, 16 + a / 42000)); i++) { dust.push({ x: rnd(0, W), y: rnd(0, H), r: rnd(1.4, 3.6), vy: rnd(.1, .38), vx: rnd(-.07, .07), a: rnd(.25, .65), p: rnd(0, 6.28) }); } for (i = 0; i < Math.round(Math.min(64, Math.max(20, a / 24000))); i++) { nodes.push({ x: rnd(0, W), y: rnd(0, H), vx: rnd(-.12, .12), vy: rnd(-.1, .1) }); } } function size() { var r = host.getBoundingClientRect(), dpr = Math.min(window.devicePixelRatio || 1, 2); W = Math.max(1, r.width); H = Math.max(1, r.height); cv.width = Math.round(W * dpr); cv.height = Math.round(H * dpr); ctx.setTransform(dpr, 0, 0, dpr, 0, 0); seed(); draw(0, true); } function draw(t, still) { var i, j, n, m, dx, dy, d, al; ctx.clearRect(0, 0, W, H); for (i = 0; i < stars.length; i++) { n = stars[i]; al = .2 + .6 * (.5 + .5 * Math.sin(t * .001 * n.s + n.p)); ctx.fillStyle = "rgba(243,232,205," + (al * .75).toFixed(3) + ")"; ctx.beginPath(); ctx.arc(n.x, n.y, n.r, 0, 6.2832); ctx.fill(); } for (i = 0; i < nodes.length; i++) { n = nodes[i]; if (!still) { n.x += n.vx; n.y += n.vy; if (n.x < -10) { n.x = W + 10; } else if (n.x > W + 10) { n.x = -10; } if (n.y < -10) { n.y = H + 10; } else if (n.y > H + 10) { n.y = -10; } } for (j = i + 1; j < nodes.length; j++) { m = nodes[j]; dx = n.x - m.x; dy = n.y - m.y; if (dx > 150 || dx < -150 || dy > 150 || dy < -150) { continue; } d = Math.sqrt(dx * dx + dy * dy); if (d < 150) { ctx.strokeStyle = "rgba(217,188,130," + ((1 - d / 150) * .2).toFixed(3) + ")"; ctx.lineWidth = .7; ctx.beginPath(); ctx.moveTo(n.x, n.y); ctx.lineTo(m.x, m.y); ctx.stroke(); } } dx = n.x - mx; dy = n.y - my; d = Math.sqrt(dx * dx + dy * dy); if (d < 190) { ctx.strokeStyle = "rgba(246,231,189," + ((1 - d / 190) * .5).toFixed(3) + ")"; ctx.lineWidth = .9; ctx.beginPath(); ctx.moveTo(n.x, n.y); ctx.lineTo(mx, my); ctx.stroke(); } ctx.fillStyle = "rgba(230,205,150,.7)"; ctx.beginPath(); ctx.arc(n.x, n.y, 1.25, 0, 6.2832); ctx.fill(); } for (i = 0; i < dust.length; i++) { n = dust[i]; if (!still) { n.y -= n.vy; n.x += n.vx + Math.sin(t * .0006 + n.p) * .12; if (n.y < -12) { n.y = H + 12; n.x = rnd(0, W); } } ctx.globalAlpha = n.a * (.65 + .35 * Math.sin(t * .0012 + n.p)); ctx.drawImage(sprite, n.x - n.r * 3, n.y - n.r * 3, n.r * 6, n.r * 6); } ctx.globalAlpha = 1; } function loop(ts) { if (onScreen && !document.hidden) { draw(ts, false); } window.requestAnimationFrame(loop); } size(); if ("ResizeObserver" in window) { new ResizeObserver(function () { size(); }).observe(host); } else { window.addEventListener("resize", size); } if (reduce) { return; } if ("IntersectionObserver" in window) { new IntersectionObserver(function (es) { es.forEach(function (en) { onScreen = en.isIntersecting; }); }, { rootMargin: "100px" }).observe(host); } host.addEventListener("pointermove", function (e) { var r = host.getBoundingClientRect(); mx = e.clientX - r.left; my = e.clientY - r.top; }); host.addEventListener("pointerleave", function () { mx = -9999; my = -9999; }); window.requestAnimationFrame(loop); } initFx(root.querySelector(".ah")); initFx(root.querySelector(".final")); if (reduce || !("IntersectionObserver" in window)) { return; } if (!document.body.classList.contains("elementor-editor-active")) { root.classList.add("js"); var rv = new IntersectionObserver(function (es) { es.forEach(function (en) { if (!en.isIntersecting) { return; } en.target.classList.add("in"); rv.unobserve(en.target); }); }, { threshold: 0, rootMargin: "0px 0px -6% 0px" }); $(".rv").forEach(function (el) { rv.observe(el); }); } })();

tetap bisa diseleksi/disalin. */ (function(){ 'use strict'; if(window.__cgOn)return;window.__cgOn=1; if(document.body&&document.body.classList.contains('elementor-editor-active'))return;

var doc=document,root=doc.documentElement; var EDITABLE="input,textarea,select,[contenteditable='true']"; var COPYABLE='.cm,address'; var WM_MS=5000; /* lama watermark tampil setelah screenshot terdeteksi */ var wm=null,wmTimer=0;

root.classList.add('cg-on');

function inEditable(el){return !!(el&&el.closest&&el.closest(EDITABLE))} function block(e){e.preventDefault()}

/* ---------- Watermark screenshot ---------- */ function showWatermark(){ if(!wm){ if(!doc.body)return; wm=doc.createElement('div'); wm.className='cg-wm'; wm.setAttribute('aria-hidden','true'); doc.body.appendChild(wm); } root.classList.add('cg-shot'); clearTimeout(wmTimer); wmTimer=setTimeout(function(){root.classList.remove('cg-shot')},WM_MS); }

/* ---------- Print ---------- */ function printOn(){root.classList.add('cg-print')} function printOff(){root.classList.remove('cg-print')} window.addEventListener('beforeprint',printOn); window.addEventListener('afterprint',printOff); if(window.matchMedia){ var mq=window.matchMedia('print'); var onMq=function(e){e.matches?printOn():printOff()}; if(mq.addEventListener)mq.addEventListener('change',onMq); else if(mq.addListener)mq.addListener(onMq); }

/* ---------- Mouse / seleksi ---------- */ doc.addEventListener('contextmenu',function(e){ if(!inEditable(e.target))block(e); });

doc.addEventListener('dragstart',block);

doc.addEventListener('selectstart',function(e){ var t=e.target&&e.target.nodeType===1?e.target:(e.target&&e.target.parentElement); if(inEditable(t)||(t&&t.closest&&t.closest(COPYABLE)))return; block(e); });

/* ---------- Keyboard ---------- */ doc.addEventListener('keydown',function(e){ var k=e.code,mod=e.ctrlKey||e.metaKey,stop=false;

/* Screenshot: PrintScreen, Cmd+Shift+3/4/5/6 (Mac), Win+Shift+S */ if(k==='PrintScreen'||e.key==='PrintScreen'|| (e.metaKey&&e.shiftKey&&(k==='Digit3'||k==='Digit4'||k==='Digit5'||k==='Digit6'||k==='KeyS'))){ showWatermark(); }

if(k==='F12'){ stop=true; }else if(mod&&!e.altKey&&(k==='KeyP'||(!e.shiftKey&&(k==='KeyS'||k==='KeyU')))){ stop=true; /* Ctrl/Cmd + P (print), S, U */ }else if( (mod&&e.shiftKey&&(k==='KeyI'||k==='KeyJ'||k==='KeyC'))|| /* Ctrl/Cmd + Shift + I, J, C */ (e.metaKey&&e.altKey&&(k==='KeyI'||k==='KeyJ'||k==='KeyC'||k==='KeyU')) /* Cmd + Option + I, J, C, U (Mac) */ ){ stop=true; } if(stop){block(e);e.stopPropagation()} },true);

/* Di Windows, PrintScreen sering hanya mengirim keyup */ doc.addEventListener('keyup',function(e){ if(e.code==='PrintScreen'||e.key==='PrintScreen')showWatermark(); },true);

/* Desktop saja: bila panel dev tools terbuka (docked), bersihkan console saat jendela di-resize */ if(window.matchMedia&&window.matchMedia('(hover:hover) and (pointer:fine)').matches){ var raf=0; window.addEventListener('resize',function(){ if(raf)return; raf=requestAnimationFrame(function(){ raf=0; if((window.outerWidth-window.innerWidth>200||window.outerHeight-window.innerHeight>260)&&window.console&&console.clear){console.clear()} }); },{passive:true}); } }());
