Geçen gün gayet sıradan bir iş yapıyordum. Bir müşterimizin sitesini açıp PageSpeed Insights'e attım. Bunu günde kaç kez yaptığımı sayamam; bizim işimizde hız raporu okumak, sabah kahvesi içmek kadar rutin bir şey. Raporu yukarıdan aşağı tarıyordum ki bir satır gözüme takıldı: agentic browsing.
Önce yazım hatası sandım, sonra "yeni bir metrik mi çıktı yine" diye homurdandım. Ama merak ettim ve üzerine tıkladım. O tek tıklama beni Chrome'un geliştirici dokümantasyonundaki WebMCP sayfasına götürdü. Ve orada okuduklarım, açıkçası, son birkaç yılda gördüğüm en sessiz ama en büyük kırılmalardan biriydi.
Detartech olarak işimiz sitelerin arama motorlarında ve artık yapay zekâ motorlarında görünür olmasını sağlamak - yani SEO ve GEO. Bu yüzden "makineler siteyi nasıl okuyor" sorusu benim için akademik bir merak değil, doğrudan ekmek parası. WebMCP'yi okuyunca anladım ki soru artık sadece "makineler siteni nasıl okuyacak" değil. Asıl soru şu hâle geliyor: makineler siteni nasıl kullanacak?
Gel, baştan anlatayım. Çünkü bu konuyu bir kez kafanda oturtursan, web'e bakışın değişiyor.

Web'in üç çağı: İnsan tıklar, bot tarar, ajan iş yapar
Web'in tarihini kabaca üç döneme ayırabilirim.
Birinci çağ insanların çağıydı. Siteyi sen açtın, sen okudun, sen tıkladın, sepete sen ekledin. Tasarımın tek müşterisi insandı. Butonlar parmaklar için, yazılar gözler içindi.
İkinci çağ botların çağı oldu. Googlebot geldi, sayfanı taradı, indeksledi, sıraladı. İşte bizim SEO dediğimiz disiplinin tamamı bu çağın çocuğudur. "Robotlar sayfamı doğru okusun" diye robots.txt yazdık, sitemap ürettik, schema.org işaretlemeleri ekledik. Botlar okuyordu ama bir şey yapmıyordu. Sadece anlıyor ve listeliyordu.
Şimdi üçüncü çağ kapıyı çalıyor: ajanların çağı. Yapay zekâ ajanları artık sayfanı sadece okumakla yetinmiyor; senin yerine işlem yapıyor. Uçak bileti arıyor, formu dolduruyor, randevu alıyor, sepeti tamamlıyor. İnsanın yaptığı tıklama-yazma dansını taklit ediyor.
Chrome'un dokümantasyonunda bu işleme tam olarak bir isim verilmiş: actuation (eyleme geçirme). Ajanın, tıpkı bir insan gibi fareyi tıklamayı ve klavyeden yazmayı taklit ederek senin sitende iş yapması. Bir linke tıklamak gibi tek adımlık basit görevler de olabilir, bir satın almayı baştan sona tamamlamak gibi karmaşık zincirler de.
Kulağa harika geliyor, değil mi? Sorun şu ki bu yöntem son derece kırılgan. Ve asıl hikâye tam burada başlıyor.
Asıl problem: Ajan senin sitende kör gibi yürüyor
Bugün bir yapay zekâ ajanının sitende nasıl iş yaptığını düşün. Ortada senin makine için bıraktığın hiçbir yol işareti yok. Ajan ekranı görüyor, "şu buton 'Sepete Ekle' gibi duruyor" diye tahmin yürütüyor, tıklıyor, sonucu yorumluyor, sonra bir sonraki adımı yine tahmin ediyor.
Her adım bir yorum. Her yorum bir kumar.
Sen sitende küçük bir tasarım değişikliği yaparsın - butonun yerini değiştirir, "Sepete Ekle" yazısını "Hemen Al" yapar, bir adım fazladan onay ekrarsın - ve ajanın bütün senaryosu çöker. İnsan kullanıcı bu değişikliklere bir saniyede uyum sağlar; makine ise koca bir tahmin zincirinin ortasında yolunu kaybeder.
Bunu evinde misafir ağırlamaya benzetiyorum. Eski yöntem, eline hiç kroki vermediğin bir misafiri "mutfak herhâlde şu taraftadır" diye odanda dolaştırmak gibi. Çoğu zaman bulur, ama bazen banyoyu mutfak sanır.
İşte WebMCP tam da bu kör yürüyüşü bitirmek için ortaya çıkıyor.
WebMCP nedir?
WebMCP, web sitelerinin yapay zekâ ajanları için yapılandırılmış araçlar (tools) tanımlamasını sağlayan, önerilmiş bir web standardı. Mantık çok temiz: ajanın senin butonunun ne işe yaradığını tahmin etmesini beklemek yerine, sitenin kendisi "bu özellik şudur, şöyle çağrılır, şu girdileri alır" diye açıkça beyan ediyor.
Yani ajan artık ekrana bakıp "şu kutu arama kutusu olabilir mi" diye düşünmüyor. Site ona net bir şekilde diyor ki: "Bende arama diye bir araç var, ona şu metni verirsen aramayı yapar." Tahmin biter, sözleşme başlar.
Chrome'un anlatımına göre WebMCP üç şeyi mümkün kılıyor:
- Keşif (Discovery): Sayfanın, sahip olduğu araçları ajana standart bir biçimde tanıtması.
odeme_al,sonuclari_filtrele,randevu_olusturgibi. - JSON Şemaları: Her aracın hangi girdiyi alıp hangi çıktıyı verdiğinin net tanımı. Bu, modelin uydurma yapma (halüsinasyon) ihtimalini ciddi şekilde düşürüyor. Çünkü makine artık ne istendiğini harfiyen biliyor.
- Durum (State): Sayfanın o anki bağlamının ajanla paylaşılması; yani ajan, gerçek zamanlı olarak hangi kaynakların üzerinde işlem yapabileceğini biliyor.
Bizim SEO tarafından gelenler için şöyle bir köprü kurayım: schema.org ile yapısal veri eklediğimizde aslında sayfaya "bu bir ürün, bu fiyatı, bu da yorumu" diye etiketler koyuyoruz ki Google anlasın. WebMCP bunun bir üst sürümü gibi: sayfaya etiketler koyuyorsun ama bu sefer makinenin sadece anlaması için değil, iş yapması için. "Anla" yerine "yap". Aradaki fark devasa.
Bir şey daha hoşuma gitti: WebMCP araçları sayfanda görünür şekilde çalışıyor. Ajan bir aracı çağırdığında işlem senin arayüzünde, kullanıcının gözü önünde gerçekleşiyor. Yani markan, tasarımın, insan için tasarladığın deneyim ayakta kalıyor; ajan senin evinde, senin kurallarınla iş yapıyor. Bu detay bana çok değerli geldi, çünkü alternatifinde markanın bütünüyle bir ajanın arayüzünün içinde kaybolması var.
Şimdi koda bakalım: İki farklı yol
WebMCP'yi sitene eklemenin iki yöntemi var. İkisini de göstereyim, çünkü asıl kıvılcım kodu görünce çakıyor.
1. Imperative API - JavaScript ile araç tanımlamak
Bu yöntemde aracını düz JavaScript ile tanımlıyorsun. Bir ada, bir açıklamaya ve girdi şemasına ihtiyacın var. Kafamda hep kendi ürünüm sanalrandevu.com üzerinden örnek kurduğum için onu kullanayım - bir randevu oluşturma aracı şöyle görünebilir:
document.modelContext.registerTool({
name: 'randevu_olustur',
description: 'Seçilen hizmet, tarih ve müşteri için randevu oluşturur.',
inputSchema: {
type: 'object',
properties: {
hizmet: { type: 'string', enum: ['sac-kesimi', 'sakal', 'boya'] },
tarih: { type: 'string', description: 'YYYY-AA-GG biçiminde randevu tarihi' },
adSoyad: { type: 'string' }
},
required: ['hizmet', 'tarih', 'adSoyad']
},
execute: async ({ hizmet, tarih, adSoyad }) => {
const sonuc = await randevuKaydet({ hizmet, tarih, adSoyad });
return `Randevu oluşturuldu: ${adSoyad} - ${hizmet} - ${tarih}`;
}
});
Olan biten şu: registerTool ile araca bir kimlik veriyorsun. description ajanın bu aracın ne işe yaradığını anlamasını sağlıyor; inputSchema hangi alanların gerektiğini söylüyor (mesela hizmet alanının yalnızca belirli değerleri kabul ettiğini); execute ise araç çağrıldığında gerçekte ne olacağını belirliyor. Ajan "bu kişiye yarın için saç kesimi randevusu al" görevini aldığında, artık ekranda buton arayıp durmuyor - doğrudan bu sözleşmeyi çağırıyor.
Dikkat: önceki sürümlerde kullanılan navigator.modelContext artık Chrome 150 ile kullanımdan kaldırıldı; doğru kullanım document.modelContext üzerinden. Yeni başlayacaksan baştan doğru kapıdan gir.
2. Declarative API - Sıradan HTML formunu araca çevirmek
İşte bu yöntem benim SEO'cu kalbimi hoplattı. Burada tek satır JavaScript yazmadan, var olan bir HTML formuna birkaç öznitelik ekleyerek onu ajanın çağırabileceği bir araca dönüştürüyorsun:
<form toolname="iletisimGonder"
tooldescription="Ziyaretçinin iletişim formunu gönderir."
action="/iletisim">
<label for="ad">Ad Soyad</label>
<input type="text" name="ad">
<label for="eposta">E-posta</label>
<input type="email" name="eposta">
<label for="mesaj">Mesajınız</label>
<textarea name="mesaj"></textarea>
<button type="submit">Gönder</button>
</form>
toolname ve tooldescription özniteliklerini ekler eklemez tarayıcı bu formu yapılandırılmış bir araç olarak yorumluyor; formun alanları da aracın parametreleri oluyor. Ajan aracı çağırdığında tarayıcı formu odağa alıp alanları dolduruyor - ve form kullanıcıya görünür kalıyor. İstersen toolautosubmit ile gönderimi otomatikleştirebilir, istersen onayı kullanıcıya bırakabilirsin.
Buna bakınca aklıma ilk gelen şey şu oldu: bu, eylemler için schema.org. Yapısal veride sayfaya "bu bir etkinlik, tarihi şu" diye işaret koyuyorsun; burada "bu bir iletişim aracı, şu alanları alır" diye işaret koyuyorsun. Mantık birebir aynı; sadece amaç "anlaşılmak"tan "iş yaptırılmak"a evrilmiş. SEO yıllardır makineye sayfayı anlatmakla uğraşan biri için bu geçiş hiç de yabancı değil - aynı kasın yeni bir egzersizi.
"WebMCP, MCP'nin yerini mi alacak?" - Hayır, ve bu önemli bir yanlış anlama
Bu konuyu okurken en çok karıştırılan nokta buymuş, Chrome ekibi de doğrudan bu soruya cevap vermiş. MCP (Model Context Protocol) ile WebMCP rakip değil, ortak. İkisi farklı ihtiyaçlara hizmet ediyor ve en güçlü ajan deneyimleri ikisini birlikte kullanıyor.
En sevdiğim benzetme dokümantasyonun kendisinden: bunu bir şirketin çağrı merkezi ile mağazadaki uzman satış danışmanı arasındaki farka benzetebilirsin.
- MCP arka uçtur (backend). Her platformda, her an erişilebilir. Veriyi çeker, çekirdek işleri halleder. Sunucu tarafında yaşar, kalıcıdır. Tıpkı çağrı merkezi gibi: nerede olursan ol arayıp ulaşırsın.
- WebMCP ön yüzdür (frontend). Yalnızca senin sitende, sen siteyi açıkken yaşar. Tarayıcının canlı sekmesindeki gerçek oturum verisine, çerezlere, DOM elemanlarına erişir. Tıpkı mağazadaki uzman gibi: sadece o mağazada, sen içerideyken vardır.
Aralarındaki temel farkı bir tabloya dökeyim, çünkü kafada böyle daha net oturuyor:
| MCP | WebMCP | |
|---|---|---|
| Yaşadığı yer | Sunucu / arka uç | Tarayıcı sekmesi / ön yüz |
| Ömrü | Kalıcı (sunucu çalıştığı sürece) | Geçici (sekme açıkken) |
| Erişim | Her yerden (masaüstü, mobil, bulut) | Tarayıcı ajanına özel |
| Arayüzle ilişkisi | Başsız (headless), arayüzden bağımsız | DOM'a duyarlı, canlı arayüzle iç içe |
| İş türü | Arka planda API işlemleri | Canlı arayüzde gezinme ve eylem |
WebMCP araçlarının geçici (ephemeral) olması bence çok kritik bir tasarım kararı: araçlar yalnızca sayfan açıkken var oluyor. Kullanıcı sekmeyi kapattığı an ajan senin sitende hiçbir şey yapamıyor. Yani kontrol bütünüyle sende ve kullanıcıda. Bu da güvenlik açısından insanı rahatlatıyor.
Özetle kafandaki resim şu olmalı: MCP işin beynini ve veritabanını taşır, her yerde hazırdır; WebMCP ise kullanıcı tam senin sitendeyken ajanın o arayüzle hızlı ve güvenilir şekilde iş yapmasını sağlar. İkisi birlikte çalışınca ortaya gerçek bir ajan deneyimi çıkıyor.
Peki bu SEO ve GEO için ne anlama geliyor?
İşte beni asıl heyecanlandıran kısım bu. Çünkü ben bu işe rapor okurken girdim, ama çıktığımda kafamda bambaşka bir soru vardı.
Yıllarca SEO'nun tek bir hedefi vardı: sıralamak. Anahtar kelimede üst sıraya çık, tıklanmayı al. Sonra GEO çıktı - Generative Engine Optimization. Yani ChatGPT, Perplexity, Google'ın yapay zekâ özetleri gibi üretken motorlar bir cevap verirken seni kaynak göstersin diye içerik üretmek. SEO "beni sırala" diyordu; GEO "beni anla ve alıntıla" diyor.
WebMCP ise bir adım daha ötesi: "beni kullan."
Bu üçünü bir merdiven gibi düşün:
- SEO - Makine seni bulsun ve sıralasın.
- GEO - Makine seni anlasın ve cevabında kaynak göstersin.
- Ajan uyumu (WebMCP) - Makine senin üzerinden iş yapsın.
Ben şuna inanıyorum: önümüzdeki birkaç yılda insanlar gittikçe daha çok işi ajanlara devredecek. "Bana en yakın açık berberden yarına randevu al" diyecek ve arkasına yaslanacak. O an ajan hangi siteyi kullanacak? Tahmin etmesi kolay olanı. Formları net olanı. Araçlarını açıkça beyan edeni. Kör yürüyüşte tökezlemediğini.
Mobil uyumu hatırlıyor musun? Bir zamanlar "sitem masaüstünde güzel görünüyor ya, yeter" diyenler vardı. Sonra Google mobil uyumu sıralama sinyali yaptı ve o siteler bir gecede görünmez oldu. Ajan uyumu da bana çok benzer bir eşik gibi geliyor. Bugün deneysel, evet. Ama "deneysel" kelimesi teknolojide çoğu zaman "henüz erken, ama tren kalkmak üzere" demektir.
Detartech'te biz bu yüzden SEO ile GEO'yu ayrı ayrı değil, aynı geleceğin parçaları olarak ele alıyoruz. Çünkü makine senin sitenle nasıl ilişki kuruyorsa - okuyor mu, anlıyor mu, iş yapabiliyor mu - görünürlüğünün geleceği de oradan geçiyor.
Türkiye'den somut bir senaryo
Soyut konuşmayalım. Diyelim ki bir e-ticaret sitesi işletiyorsun ya da benim gibi randevu tabanlı bir platformun var.
Kullanıcı, telefonundaki asistana diyor ki: "Bu hafta sonu için iki kişilik, deniz manzaralı bir masa ayarla." Ajan harekete geçiyor. Eğer restoranın sitesinde masa_rezervasyonu diye iyi tanımlanmış bir araç varsa - tarih, kişi sayısı, masa tercihi alanlarıyla - ajan bu rezervasyonu birkaç saniyede, hatasız tamamlıyor. Eğer yoksa, ajan sitende kör gibi dolaşıp belki yapıyor, belki yanlış güne rezervasyon açıyor, belki de pes edip bir sonraki restorana geçiyor.
İkinci senaryoda kaybeden sensin. Hem de farkına bile varmadan, çünkü o müşteri sitene hiç "uğramadı" - ajanı uğradı ve geri döndü.
Randevu, rezervasyon, sipariş, destek talebi... Türkiye'deki KOBİ'lerin web sitelerinde en çok kullanılan işlemler tam da bunlar. Yani bu mesele Silikon Vadisi'nin uzak bir hayali değil; doğrudan senin iletişim formunu, sepetini, randevu takvimini ilgilendiriyor.
Dürüst olalım: Bu işin sınırları da var
Hype'a kapılan biri olmadığımı buraya kadar görmüşsündür. O yüzden madalyonun diğer yüzünü de söyleyeyim, çünkü bunu söylemeyen herkes bir şey satıyordur.
Bu daha çok yeni. WebMCP şu an bir "origin trial" aşamasında ve Chrome 149'dan itibaren deneye açık. Yani standart henüz oturmadı, ileride değişebilir. Yerelde denemek istersen chrome://flags/#enable-webmcp-testing bayrağını açıp denemeye başlayabilirsin, ama bunun üretimde garantili bir altyapı olmadığını unutma.
Açık bir sekme gerekiyor. Araç çağrıları JavaScript ile yürüdüğü için ortada görünür bir arayüz, yani açık bir tarayıcı sekmesi olmak zorunda. Başsız (headless) bir ajanın bu araçları çağırması mümkün değil. İşin arka planda, sessizce dönen kısmı için zaten MCP var.
Karmaşık arayüzler emek ister. Siten çok katmanlı ve karmaşıksa, durum yönetimini ajana doğru aktarmak için kod yazman, hatta yer yer yeniden düzenleme yapman gerekebilir.
Keşfedilebilirlik sınırı var. Şimdilik bir istemcinin ya da tarayıcının senin sitende çağrılabilir araçlar olduğunu bilmesi için siteyi doğrudan ziyaret etmesi gerekiyor.
Bunları neden anlatıyorum? Çünkü "yarın her şey değişecek, hemen koş" demek kolay ama dürüst değil. Gerçek şu: bugün bu bir tohum. Ama tohumu ne zaman ekeceğini bilmek, ağacın gölgesinde kimin oturacağını belirler.
Ben ne yapıyorum, sana ne öneririm?
Bu yazıyı bitirdikten sonra ben şunları yapacağım, sırayla:
Önce kendi ürünlerimdeki kritik formlara ve işlemlere bir ajan gözüyle bakacağım. İletişim formu, randevu akışı, ödeme adımı - bir makine bunları net görebiliyor mu, yoksa tahminle mi ilerlemek zorunda? Sonra "tool" zihniyetiyle düşünmeye başlayacağım: sitemdeki her önemli eylemi, ajanın çağırabileceği temiz bir araç olarak hayal edeceğim. Declarative API ile başlamak, JavaScript'e girmeden bu suya ayak sokmanın en kolay yolu gibi duruyor; muhtemelen oradan başlarım.
Sana önerim de farklı değil. Bugün koca bir altyapıyı baştan yazmana gerek yok. Ama şu üç şeyi yapabilirsin: HTML formlarını temiz ve anlamlı name, label yapılarıyla kur (bunlar zaten hem erişilebilirlik hem ajan uyumu için altın değerinde), sitendeki temel işlemleri "araç" olarak düşünmeye alış, ve bu standardı uzaktan da olsa takip et. Tren henüz istasyondan çıkmadı; ama biletini şimdiden almanın hiçbir zararı yok.
Bütün bu hikâye, küçücük bir hız raporundaki tek bir satırla başladı. Bazen geleceğe açılan kapı, en rutin işin ortasında, fark edilmeyi bekleyen bir detayda saklı oluyor. Bizim işimiz de zaten o detayı görmek - siten bugünün arama motorlarında görünür olsun, yarının yapay zekâ ajanlarında kullanışlı olsun diye.
Web değişiyor. Hem de yine. Ve bu sefer değişen, makinelerin sayfanı nasıl okuduğu değil; nasıl kullandığı.
Sıkça Sorulan Sorular (SSS)
WebMCP nedir?
WebMCP, web sitelerinin yapay zekâ ajanları için yapılandırılmış araçlar (tools) tanımlamasını sağlayan, önerilmiş bir web standardıdır. Ajanın sayfadaki butonların ne işe yaradığını tahmin etmesi yerine, sitenin kendisi her özelliğin amacını ve nasıl çağrılacağını açıkça beyan etmesini sağlar. Böylece ajanlar görevleri çok daha güvenilir ve hatasız tamamlar.
WebMCP ile MCP arasındaki fark nedir?
MCP (Model Context Protocol) arka uçta yaşar; sunucu tarafında çalışır, kalıcıdır ve her platformdan erişilebilir. WebMCP ise ön yüzde, tarayıcı sekmesi açıkken yaşar; canlı oturuma, çerezlere ve DOM'a erişir. İkisi rakip değil; en güçlü ajan deneyimleri MCP'yi çekirdek mantık ve veri için, WebMCP'yi de canlı arayüzdeki etkileşim için birlikte kullanır.
Agentic browsing (ajan tabanlı gezinme) ne demek?
Bir yapay zekâ ajanının, kullanıcı adına web sitelerinde gezinip işlem yapmasıdır. Form doldurmak, randevu almak, sipariş tamamlamak gibi eylemleri ajan, insanın tıklama ve yazma davranışını taklit ederek (actuation) ya da WebMCP gibi standartlarla doğrudan tanımlı araçları çağırarak gerçekleştirir.
WebMCP SEO ve GEO'yu nasıl etkiler?
SEO makinenin sayfanı bulup sıralamasını, GEO yapay zekâ motorlarının seni anlayıp kaynak göstermesini hedefler. WebMCP ise bir adım ötesine geçip ajanların senin sitenin üzerinden iş yapabilmesini sağlar. Önümüzdeki dönemde ajanlar, araçları net tanımlı ve formları temiz olan siteleri tercih edeceği için, ajan uyumu yeni bir görünürlük ve dönüşüm faktörü hâline gelmeye adaydır.
WebMCP'yi nasıl denerim?
WebMCP şu an Chrome 149'dan itibaren bir origin trial olarak kullanılabilir durumda. Yerel geliştirme için Chrome'da chrome://flags/#enable-webmcp-testing bayrağını etkinleştirip tarayıcıyı yeniden başlatarak denemeye başlayabilirsin. Araçlarını iki şekilde tanımlayabilirsin: JavaScript ile (Imperative API) ya da HTML formlarına öznitelik ekleyerek (Declarative API).
WebMCP, MCP'nin yerini alacak mı?
Hayır. Bu yaygın bir yanlış anlamadır. WebMCP, MCP'nin ne uzantısı ne de yerine geçecek bir teknolojidir; ikisi farklı katmanlarda farklı ihtiyaçlara hizmet eder ve birlikte çalışmak üzere tasarlanmışlardır.


