# Jasa SEO Kontraktor: Biaya, Cakupan &amp; Cara Memilih

> Jasa SEO kontraktor untuk bisnis renovasi dan konstruksi di Jakarta: cakupan kerja, biaya, hasil yang realistis, dan cara memilih penyedia.

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

Lewati ke konten

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

**EN**

**ID**

**中文**

[Konsultasi](https://medikabyte.com/#contact)

[Beranda](https://medikabyte.com/)
[Keahlian](https://medikabyte.com/#capabilities)
[Spesialisasi](https://medikabyte.com/#expertise)
[Pendekatan](https://medikabyte.com/#approach)
[Bukti](https://medikabyte.com/#proof)
[Tentang](https://medikabyte.com/#about)
[Essentials](https://medikabyte.com/essentials/)
[Konsultasi](https://medikabyte.com/#contact)

# Jasa SEO Kontraktor: Panduan Biaya, Cakupan Kerja & Cara Memilih Penyedia

Jasa SEO kontraktor adalah layanan mengoptimasi website dan profil bisnis perusahaan kontraktor, renovasi, dan interior agar muncul di hasil pencarian Google ketika calon klien mencari jasa seperti “kontraktor renovasi rumah Jakarta Selatan”. Panduan ini menjelaskan apa saja yang dikerjakan, kisaran biayanya, hasil yang realistis, dan cara memilih penyedia yang tepat sebelum Anda menandatangani kontrak.

Panduan untuk pemilik kontraktor · Diperbarui Oktober 2026 · Dibaca sekitar 7 menit

![Pengawas proyek kontraktor berhelm dan rompi safety oranye memegang clipboard, ilustrasi panduan jasa SEO kontraktor](https://medikabyte.com/wp-content/uploads/2026/10/Jasa-SEO-Kontraktor-Panduan-Biaya-Cakupan-Kerja-Cara-Memilih-Penyedia.jpg)

## Ringkasan jasa SEO kontraktor

- SEO kontraktor berfokus pada pencarian lokal: halaman per layanan dan per wilayah, Google Business Profile, dan portofolio proyek.
- Biaya sangat bergantung pada cakupan kerja. Minta rincian pekerjaan tertulis, bukan hanya angka bulanan.
- Hasil yang terukur umumnya mulai terlihat dalam 3 sampai 6 bulan, dan tidak ada penyedia yang bisa menjamin peringkat tertentu.
- Nilai penyedia dari contoh pekerjaan, laporan, dan kejelasan kepemilikan akun, bukan dari janji.

## Jasa SEO kontraktor: apa itu dan kenapa dibutuhkan

Sebagian besar calon klien renovasi dan pembangunan memulai dengan mencari di Google, lalu membandingkan beberapa kontraktor lewat website, ulasan, dan portofolio. Kontraktor yang tidak muncul di tahap ini sering tidak masuk daftar pertimbangan sama sekali, sebagus apa pun kualitas kerjanya.

Nilai satu klien bagi kontraktor bisa besar. Satu proyek renovasi atau pembangunan bisa bernilai puluhan hingga ratusan juta rupiah, sehingga menambah beberapa klien per tahun dari pencarian organik sudah terasa dampaknya.

## Kenapa SEO kontraktor berbeda dari SEO bisnis lain

- **Pencarian sangat lokal.** Klien mencari berdasarkan wilayah, seperti Jakarta Selatan, BSD, atau Bekasi. Halaman yang tidak menyebut wilayah layanan sulit bersaing.
- **Keputusan panjang.** Klien membandingkan penawaran selama berminggu-minggu, sehingga konten yang menjawab keraguan soal biaya, durasi, dan garansi sangat membantu.
- **Bukti kerja menentukan.** Foto proyek, studi kasus, dan ulasan lebih meyakinkan daripada klaim.
- **Layanan beragam.** Renovasi, bangun rumah, interior, dan pekerjaan atap punya kata kunci dan niat cari yang berbeda, jadi butuh halaman terpisah.

## Apa saja yang dikerjakan dalam jasa SEO kontraktor

### Riset kata kunci per layanan dan wilayah

Mengidentifikasi kata kunci yang dipakai calon klien, lalu memetakannya ke halaman yang tepat, misalnya “jasa renovasi rumah Jakarta Barat” atau “kontraktor bangun rumah Tangerang”.

### Struktur dan halaman layanan

Setiap layanan utama punya halaman sendiri yang menjelaskan proses kerja, jenis proyek, dan area layanan.

### Google Business Profile

Profil yang lengkap, mencakup kategori bisnis, alamat, jam kerja, foto proyek, dan ulasan, berpengaruh besar pada tampilan di peta dan pencarian lokal.

### Portofolio dan studi kasus

Dokumentasi proyek dengan keterangan lokasi, jenis pekerjaan, dan durasi. Ini sekaligus menjadi konten yang unik dan dipercaya.

### Konten edukasi

Artikel seperti panduan biaya, cara memilih kontraktor, atau tahapan renovasi menarik pembaca yang masih di tahap riset.

### Technical SEO

Kecepatan halaman, tampilan di ponsel, struktur URL, sitemap, dan schema markup agar website mudah dipahami mesin pencari.

### Backlink dan sitasi lokal

Tautan dari sumber yang relevan, serta konsistensi data nama, alamat, dan telepon (NAP) di direktori bisnis.

## Biaya jasa SEO kontraktor

Tidak ada tarif tunggal. Biaya bergantung pada jumlah halaman, persaingan kata kunci, kondisi website saat ini, dan banyaknya konten yang dibuat. Di pasar Indonesia, paket bulanan umumnya berkisar dari beberapa juta hingga belasan juta rupiah per bulan. Angka ini hanya gambaran umum, bukan penawaran.

| Model | Cocok untuk | Perlu diperhatikan |
| --- | --- | --- |
| **Paket bulanan** | Kontraktor yang ingin SEO berjalan terus-menerus. | Pastikan ada laporan bulanan dan daftar pekerjaan. |
| **Per proyek (sekali bayar)** | Website baru atau perbaikan awal. | Setelah selesai, perawatan konten tetap diperlukan. |
| **Per halaman atau artikel** | Menambah halaman layanan atau wilayah. | Periksa kualitas dan keunikan isi. |

Faktor yang memengaruhi biaya: jumlah wilayah yang dibidik, jumlah layanan, kompetitor di hasil pencarian, dan apakah website perlu dibangun ulang.

## Berapa lama hasil jasa SEO kontraktor terlihat

Untuk website baru, perubahan yang terukur biasanya mulai terlihat dalam 3 sampai 6 bulan. Kata kunci yang persaingannya ketat, seperti “kontraktor Jakarta”, bisa butuh lebih lama. Kata kunci yang lebih spesifik, yaitu layanan plus wilayah, umumnya lebih cepat.

Ukuran kemajuan yang masuk akal: jumlah halaman terindeks, kenaikan impresi dan klik di Google Search Console, jumlah panggilan dan klik WhatsApp, serta permintaan penawaran.

## Tanda bahaya saat memilih jasa SEO

- Menjanjikan peringkat 1 Google atau hasil dalam hitungan hari.
- Menawarkan backlink murah dalam jumlah besar, yang bisa merugikan website.
- Tidak mau menjelaskan pekerjaan yang dilakukan setiap bulan.
- Website dan akun dibuat atas nama penyedia, bukan atas nama Anda.
- Menyalin konten kontraktor lain, karena isi duplikat sulit naik dan tidak membangun kepercayaan.
- Tidak ada pelacakan panggilan dan WhatsApp, sehingga sulit menilai SEO bekerja atau tidak.

## 6 pertanyaan sebelum memilih penyedia jasa SEO kontraktor

Ajukan pertanyaan ini ke setiap penyedia, lalu catat jawabannya. Jawaban tertulis jauh lebih berguna daripada janji lisan.

1. **Apakah ada contoh website yang mereka kerjakan?** Periksa sendiri peringkat dan kondisi website tersebut.
2. **Apa rincian pekerjaan per bulan, dan seperti apa laporannya?** Laporan yang baik memuat pekerjaan yang dilakukan, bukan hanya grafik.
3. **Apakah mereka paham pasar lokal dan istilah konstruksi?** Penyedia yang paham akan membedakan renovasi, bangun baru, dan interior.
4. **Apakah mereka menjelaskan risiko dan batas hasil?** Penyedia yang jujur tidak menjanjikan peringkat tertentu.
5. **Siapa pemilik website dan akun setelah kerja sama berakhir?** Idealnya Anda, termasuk Google Business Profile dan Search Console.
6. **Bagaimana konten dibuat?** Minta konfirmasi bahwa isi orisinal dan sesuai kondisi bisnis Anda.

## Pertanyaan umum soal jasa SEO kontraktor

**Berapa biaya jasa SEO kontraktor?**

Bergantung pada cakupan kerja, persaingan kata kunci, dan jumlah halaman. Paket bulanan di pasar Indonesia umumnya dari beberapa juta hingga belasan juta rupiah. Minta rincian pekerjaan tertulis, bukan hanya angka.

**Berapa lama SEO kontraktor memberi hasil?**

Untuk website baru, biasanya 3 sampai 6 bulan untuk perubahan yang terukur. Kata kunci yang ketat bisa lebih lama.

**Apakah ada jasa SEO yang menjamin peringkat 1 Google?**

Tidak ada. Algoritma Google tidak dikendalikan pihak luar, jadi janji peringkat 1 adalah tanda untuk waspada.

**Apakah kontraktor kecil perlu SEO?**

Perlu, terutama untuk pencarian lokal. Mulailah dari Google Business Profile, halaman layanan per wilayah, dan portofolio proyek yang terdokumentasi.

**Mana yang lebih dulu, SEO atau iklan Google Ads?**

Iklan lebih cepat tetapi berhenti saat anggaran habis. SEO butuh waktu tetapi hasilnya bertahan. Banyak kontraktor memakai keduanya dengan porsi berbeda.

## Langkah berikutnya

Ringkasan untuk memilih jasa SEO kontraktor dengan lebih tenang:

1. Tentukan layanan dan wilayah yang ingin Anda kejar lebih dulu.
2. Cek kondisi Google Business Profile dan halaman layanan yang sudah ada.
3. Minta penawaran tertulis dari dua sampai tiga penyedia dengan cakupan yang sama.
4. Bandingkan rincian pekerjaan, laporan, dan kepemilikan akun, bukan hanya harga.
5. Mulai dari kontrak yang jelas, lalu evaluasi hasil setiap bulan.

A

**Ditulis oleh Adtyaa, DJURAGAN IKLAN ID.** Agensi web dan digital marketing di Jakarta Pusat.

Kami bukan kontraktor, dan kami menjual jasa SEO, jadi artikel ini punya kepentingan. Karena itu, gunakan daftar pertanyaan di atas untuk menilai penyedia mana pun, termasuk kami. Biaya dan durasi adalah gambaran umum dan berbeda untuk tiap proyek.

Diperbarui: Oktober 2026 · [hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)

# Contractor SEO Services in Jakarta: Costs, Scope of Work & How to Choose a Provider

Contractor SEO services optimize the website and business profile of a construction, renovation, or interior company so it appears on Google when prospective clients search for services such as “home renovation contractor South Jakarta”. This guide covers what the work includes, typical cost ranges, realistic results, and how to choose the right provider before you sign a contract.

Guide for contractor owners · Updated October 2026 · About 7 min read

![Contractor site supervisor in an orange hard hat and safety vest holding a clipboard, illustrating a guide to SEO services for contractors](https://medikabyte.com/wp-content/uploads/2026/10/Jasa-SEO-Kontraktor-Panduan-Biaya-Cakupan-Kerja-Cara-Memilih-Penyedia.jpg)

## Contractor SEO services at a glance

- Contractor SEO focuses on local search: pages per service and per area, Google Business Profile, and a project portfolio.
- Cost depends heavily on scope. Ask for a written breakdown of work, not just a monthly figure.
- Measurable results usually begin within 3 to 6 months, and no provider can guarantee a specific ranking.
- Judge providers by sample work, reporting, and who owns the accounts, not by promises.

## Contractor SEO services: what they are and why they matter

Most renovation and building clients start on Google, then compare several contractors through websites, reviews, and portfolios. A contractor who does not appear at this stage often never makes the shortlist, however good the work is.

One client can be worth a lot to a contractor. A single renovation or building project can run from tens to hundreds of millions of rupiah, so even a few extra organic clients per year make a visible difference.

## How contractor SEO differs from other SEO

- **Very local searches.** Clients search by area, such as South Jakarta, BSD, or Bekasi. Pages that do not name service areas struggle to compete.
- **Long decisions.** Clients compare quotes for weeks, so content that answers doubts about cost, timeline, and warranty helps.
- **Proof of work decides.** Project photos, case studies, and reviews persuade more than claims.
- **Many service types.** Renovation, new builds, interiors, and roofing each have different keywords and search intent, so each needs its own page.

## What contractor SEO services include

### Keyword research by service and area

Identifying the terms prospective clients use and mapping them to the right pages, for example “house renovation West Jakarta” or “home builder Tangerang”.

### Site structure and service pages

Each main service gets its own page explaining the process, project types, and service areas.

### Google Business Profile

A complete profile, covering categories, address, hours, project photos, and reviews, strongly affects visibility on maps and in local search.

### Portfolio and case studies

Project documentation with location, scope, and duration. It doubles as unique, trustworthy content.

### Educational content

Articles such as cost guides, how to choose a contractor, or renovation stages attract readers who are still researching.

### Technical SEO

Page speed, mobile layout, URL structure, sitemap, and schema markup so search engines can understand the site.

### Backlinks and local citations

Links from relevant sources, plus consistent name, address, and phone data (NAP) across business directories.

## Cost of contractor SEO services

There is no single rate. Cost depends on the number of pages, keyword competition, the current state of the website, and how much content is produced. In Indonesia, monthly packages commonly range from a few million to over ten million rupiah. This is a general guide, not a quote.

| Model | Best for | Watch out for |
| --- | --- | --- |
| **Monthly package** | Contractors who want SEO running continuously. | Make sure there is a monthly report and task list. |
| **One-off project** | A new website or initial fixes. | Content upkeep is still needed afterwards. |
| **Per page or article** | Adding service or area pages. | Check quality and originality. |

Factors that affect cost: the number of areas targeted, the number of services, competitors in the results, and whether the website needs rebuilding.

## How long contractor SEO results take

For a new website, measurable change usually appears within 3 to 6 months. Competitive terms such as “Jakarta contractor” can take longer, while specific terms (service plus area) are generally faster.

Sensible progress indicators: indexed pages, impressions and clicks in Google Search Console, phone and WhatsApp contacts, and quote requests.

## Red flags when choosing an SEO provider

- Promising a #1 Google ranking or results within days.
- Offering cheap backlinks in bulk, which can harm the website.
- Refusing to explain what is done each month.
- Setting up the website and accounts in the provider’s name rather than yours.
- Copying other contractors’ content, since duplicate text rarely ranks and builds no trust.
- No tracking of calls and WhatsApp, which makes it hard to tell whether SEO works.

## 6 questions before choosing a contractor SEO provider

Ask every provider these questions and write down the answers. Written answers are far more useful than verbal promises.

1. **Can they show websites they have worked on?** Check the rankings and condition of those sites yourself.
2. **What is the monthly scope of work, and what does the report look like?** A good report lists work done, not just charts.
3. **Do they understand the local market and construction vocabulary?** A knowledgeable provider separates renovation, new builds, and interiors.
4. **Do they explain risks and limits of results?** An honest provider does not promise a specific ranking.
5. **Who owns the website and accounts after the engagement ends?** Ideally you, including Business Profile and Search Console.
6. **How is the content produced?** Ask for confirmation that it is original and fits your business.

## Contractor SEO FAQ

**How much do contractor SEO services cost?**

It depends on scope, keyword competition, and page count. Monthly packages in Indonesia commonly run from a few million to over ten million rupiah. Ask for a written breakdown, not just a number.

**How long until SEO works for a contractor?**

For a new website, usually 3 to 6 months for measurable change. Competitive keywords can take longer.

**Can anyone guarantee a #1 Google ranking?**

No. Google’s algorithm is not controlled by outsiders, so treat such a promise as a warning sign.

**Do small contractors need SEO?**

Yes, especially for local search. Start with Google Business Profile, area service pages, and a documented project portfolio.

**Which comes first, SEO or Google Ads?**

Ads are faster but stop when the budget ends. SEO takes time but lasts. Many contractors use both in different proportions.

## Next steps

A short sequence for choosing contractor SEO services with less stress:

1. Decide which services and areas to pursue first.
2. Check your current Google Business Profile and service pages.
3. Get written quotes from two or three providers with the same scope.
4. Compare scope of work, reporting, and account ownership, not just price.
5. Start with a clear contract, then review results every month.

A

**Written by Adtyaa, DJURAGAN IKLAN ID.** A web and digital marketing agency in Central Jakarta.

We are not a contractor, and we sell SEO services, so this article carries an interest. Use the questions above to assess any provider, including us. Costs and timelines are general guides and differ for each project.

Updated: October 2026 · [hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)

# 雅加达承包商SEO服务：费用、工作范围与如何选择服务商

承包商SEO服务是指优化建筑、装修和室内设计公司的网站与商业资料，使其在潜在客户搜索“南雅加达住宅装修承包商”等关键词时出现在谷歌结果中。本指南说明工作内容、常见费用范围、现实的效果预期，以及在签约前如何选择合适的服务商。

承包商负责人指南 · 更新于 2026年10月 · 阅读时间约 7 分钟

![戴橙色安全帽、穿反光背心并手持记事板的承包商现场主管，承包商SEO服务指南配图](https://medikabyte.com/wp-content/uploads/2026/10/Jasa-SEO-Kontraktor-Panduan-Biaya-Cakupan-Kerja-Cara-Memilih-Penyedia.jpg)

## 承包商SEO服务要点

- 承包商SEO的重点是本地搜索：按服务和区域建立页面、完善Google商家资料，并展示项目作品集。
- 费用很大程度上取决于工作范围。请要求书面的工作明细，而不仅是月费数字。
- 可衡量的效果通常在3至6个月内开始出现，没有任何服务商能保证特定排名。
- 评估服务商应看其案例、报告和账号归属，而不是承诺。

## 承包商SEO服务：是什么，为什么需要

大多数装修和建房客户先在谷歌搜索，再通过网站、评价和作品集比较几家承包商。如果在这一步没有出现，无论施工质量多好，往往连候选名单都进不了。

对承包商来说，一位客户的价值可能很高。一个装修或建房项目可达数千万到数亿印尼盾，因此每年多几位自然搜索客户就会带来明显变化。

## 承包商SEO与其他SEO的不同

- **搜索高度本地化。** 客户按区域搜索，如南雅加达、BSD、勿加泗。没有写明服务区域的页面很难竞争。
- **决策周期长。** 客户会花数周比较报价，解答费用、工期和保修疑问的内容很有帮助。
- **实际案例最有说服力。** 项目照片、案例和评价比口头宣传更可信。
- **服务类型多。** 装修、新建、室内设计和屋顶工程的关键词与搜索意图各不相同，需要各自独立的页面。

## 承包商SEO服务包括哪些工作

### 按服务和区域做关键词研究

找出潜在客户使用的搜索词，并对应到合适的页面，例如“西雅加达住宅装修”或“唐格朗建房承包商”。

### 网站结构与服务页面

每项主要服务都有独立页面，说明流程、项目类型和服务区域。

### Google商家资料

完整的资料，包括业务类别、地址、营业时间、项目照片和评价，会明显影响在地图和本地搜索中的表现。

### 作品集与案例

记录项目的地点、工程内容和工期。这同时是独特且可信的内容。

### 教育型内容

如费用指南、如何选择承包商、装修流程等文章，能吸引仍在调研阶段的读者。

### 技术SEO

页面速度、手机适配、网址结构、站点地图和结构化数据，让搜索引擎更容易理解网站。

### 外链与本地商家信息

来自相关来源的链接，以及在各商家名录中保持名称、地址、电话（NAP）一致。

## 承包商SEO服务的费用

没有统一价格。费用取决于页面数量、关键词竞争程度、网站现状和内容量。在印尼，月度套餐通常从数百万到上千万印尼盾不等。此处仅为一般参考，并非报价。

| 方式 | 适合 | 注意事项 |
| --- | --- | --- |
| **月度套餐** | 希望SEO持续进行的承包商。 | 确保有月报和工作清单。 |
| **一次性项目** | 新网站或初期修复。 | 完成后仍需持续维护内容。 |
| **按页面或文章** | 增加服务页或区域页。 | 检查质量与原创性。 |

影响费用的因素：目标区域数量、服务数量、搜索结果中的竞争对手，以及网站是否需要重建。

## 承包商SEO多久见效

新网站通常在3至6个月内出现可衡量的变化。“雅加达承包商”这类竞争激烈的词可能更久，而更具体的词（服务加区域）通常更快。

合理的衡量指标包括：已收录页面数、Google Search Console中的展示和点击、电话与WhatsApp联系量，以及报价咨询数。

## 选择SEO服务商时的警示信号

- 承诺谷歌排名第一，或几天内见效。
- 大量提供廉价外链，可能损害网站。
- 不愿说明每月具体做了什么。
- 网站和账号注册在服务商名下，而不是您的名下。
- 抄袭其他承包商的内容，重复内容很难排名，也无法建立信任。
- 没有电话和WhatsApp追踪，难以判断SEO是否有效。

## 选择承包商SEO服务商前的6个问题

向每家服务商提出这些问题并记录答复。书面答复比口头承诺有用得多。

1. **能否提供其服务过的网站？** 自行查看这些网站的排名和现状。
2. **每月工作范围是什么，报告是什么样的？** 好的报告列出已完成的工作，而不仅是图表。
3. **是否了解本地市场和建筑行业术语？** 懂行的服务商会区分装修、新建和室内设计。
4. **是否说明风险和效果的边界？** 诚实的服务商不会承诺特定排名。
5. **合作结束后，网站和账号归谁所有？** 最好是您，包括商家资料和Search Console。
6. **内容如何产出？** 请对方确认内容原创并符合您的业务。

## 承包商SEO常见问题

**承包商SEO服务费用是多少？**

取决于工作范围、关键词竞争和页面数量。印尼的月度套餐通常从数百万到上千万印尼盾。请要求书面明细，而不仅是一个数字。

**承包商SEO多久见效？**

新网站通常需要3至6个月才有可衡量的变化，竞争激烈的关键词会更久。

**有人能保证谷歌排名第一吗？**

不能。谷歌算法不受外部控制，这类承诺应视为警示信号。

**小型承包商需要SEO吗？**

需要，尤其是本地搜索。可从Google商家资料、区域服务页和有记录的项目作品集开始。

**先做SEO还是先投Google广告？**

广告见效快，但预算用完就停止。SEO需要时间，但效果持久。许多承包商会按不同比例两者并用。

## 下一步

更从容地选择承包商SEO服务的简要步骤：

1. 确定优先主攻的服务和区域。
2. 检查现有的Google商家资料和服务页面。
3. 向两到三家服务商索取范围相同的书面报价。
4. 比较工作范围、报告和账号归属，而不仅是价格。
5. 从明确的合同开始，并每月评估效果。

A

**作者：Adtyaa，DJURAGAN IKLAN ID。** 位于雅加达中区的网站与数字营销机构。

我们不是承包商，并且我们销售SEO服务，因此本文存在利益关系。请用上面的问题评估任何服务商，包括我们。费用与时间仅为一般参考，具体因项目而异。

更新于：2026年10月 · [hallo@adtyaa.cloud](mailto:hallo@adtyaa.cloud)

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}); } }());
