4.802 işletmeye nasıl baktık: yöntem ve sınır

Nüfus sayımı değil. İlçe merkezi etrafında 8 kilometrelik daire, harita etiketleri, aramada Instagram site sayılmıyor. Market’te yüksek görünen oranın sebebi çoğu zaman zincirdir. Ham işletme adı yayınlanmıyor.

Bölge sayfalarında ve blogda geçen sayılar havadan değil. 2026 yazında altı ilçede işletmelere baktık, isimleri silerek topladık, kaçında web adresi var diye baktık. Özet dosyada 4.802 kayıt var; ortalama yüzde 12’sinde web adresi duruyor. Bandırma tek başına büyük pay: 4.308 kayıt, 198’inde site. Restoran ve kafede 733 kayıt, 14’ünde site. Elektrik ve tesisatta 158 kayıt var; açık harita verisinde site alanı dolu olan sıfır.

Bu bir nüfus sayımı değil. TÜİK değil, ticaret odası sicili de değil. Açık harita verisi, yer yer Google işletme araması ve sonra isimle site arama. Yanlış okunan sayı zarar verir; o yüzden yöntemi ve sınırını yazıyorum. Ham isim, telefon ve kayıt kimliği sitede geçmez. Üçüncü taraf işletme adı yayınlanmaz.

Daire: merkez artı 8 kilometre

Her ilçe için bir merkez nokta ve 8 kilometre yarıçap kullandık. Açık harita sorgusu kabaca şöyle: adı olan, dükkân / tesis / zanaat / turizm / ofis / sağlık taşıyan noktalar. Bekleme 180 saniye, istekler arası 5 saniye, üç deneme. Anahtar yok; veri açık lisanslı.

[out:json][timeout:180];
(
  node(around:8000,40.3522,27.9767)[name][shop];
  node(around:8000,40.3522,27.9767)[name][amenity];
  node(around:8000,40.3522,27.9767)[name][craft];
  node(around:8000,40.3522,27.9767)[name][tourism];
  node(around:8000,40.3522,27.9767)[name][office];
  node(around:8000,40.3522,27.9767)[name][healthcare];
  way(around:8000,40.3522,27.9767)[name][shop];
  way(around:8000,40.3522,27.9767)[name][amenity];
  way(around:8000,40.3522,27.9767)[name][craft];
  way(around:8000,40.3522,27.9767)[name][tourism];
  way(around:8000,40.3522,27.9767)[name][office];
  way(around:8000,40.3522,27.9767)[name][healthcare];
);
out center tags;

Örnek Bandırma merkezi. Aynı yarıçap Erdek’e yaklaşır; kayıtlar ilçe dosyasında ayrı durur, coğrafi tekilleştirme yok. Bir benzin istasyonu iki daireye de düşebilir. Kayıt kimliği ile ilçe dosyası içinde tekilleştiriyoruz; iller arası değil.

Açık harita her dükkânı bilmez. Kırsal eksik kalabilir, yeni açılan henüz yoktur, kapanan duruyor olabilir. Adı olmayan nokta düşer. Bu yüzden “Bandırma’da 4.308 işletme var” demiyoruz. “Bu sorgunun döndürdüğü, adı olan kayıt 4.308” diyoruz.

Haritada site yok diye site yoktur denmez

Açık haritada website alanı çoğu esnafta boştur çünkü haritacı numarayı ve siteyi doldurmamışsadır. Bunu “websitesiz” diye yayınlarsak yalan olur. İkinci adım Google işletme araması: tip başına en fazla 20 sonuç, yine 8 kilometre. O da tam sayım değil. Üçüncü adım adı + ilçe + il ile arama. Instagram, Facebook, dizin ve yemek platformu “site” sayılmıyor. Kara liste bilinçli: aksi halde her restoranın “sitesi var” çıkar, o da çoğu zaman Yemeksepeti’dir.

const BLOCKED_HOSTS = new Set([
  "instagram.com",
  "facebook.com",
  "yemeksepeti.com",
  "tripadvisor.com.tr",
  "sahibinden.com",
]);

function scoreSearchResult(businessName, regionName, result) {
  const host = hostname(result.url);
  if (isBlockedHost(host)) return -100;
  if (looksLikeDirectoryListing(result.url)) return -100;
}

Eşik altında kalan adres yazılmıyor. Yazılanlar isteğe bağlı olarak açılıp bakılıyor: 404 ve park domain elenir. Bu adım yavaş. Gecikme 1,5–2,5 saniye, aksi halde arama tarafı keser. “Otomatik tam tarama, bir gecede bitti, her site bulundu” diye anlatmıyoruz. Bir kısmı bulunur, bir kısmı boş kalır.

Zincir şubesi mahalle bakkalı gibi durmasın

Bandırma’da market ve gıda kategorisinde site oranı yüzde 24 görünür, restoranda yüzde 2. Fark “marketçiler dijital, restoranlar değil” kadar temiz değil. BİM, A101, ŞOK ve Migros şubesine kurumsal site yazıyoruz çünkü o markanın sitesi var; mahalle bakkalının sitesi hâlâ yok. Zinciri tek kayda indirmeden sektör yüzdesi şişer. Ulusal marka şubelerini ilçe başına tek satırda topluyoruz. Kendi kuyruğumuzda zincire yerel teklif çıkarmıyoruz.

Elektrik ve tesisatta açık harita site alanı sıfır. Zincir yok, etiket yok, arama da çoğu zaman dizin döndürüyor. O yüzde 0 “hiçbir elektrikçinin sitesi yok” demek değil; bizim taramanın o kategoride web adresi üretemediği. Gider Elektrik gibi işlerimiz duruyor, tarama onları kaçırabilir. Kaçırırsa yöntem kördür, gerçek yok olmaz.

Sektör etiketi nereden geliyor

Harita ve işletme tiplerini bizim etiketlerimize çeviriyoruz: restoran-kafe, oto-servis, lojistik-nakliye. Eşleşmezse “Diğer.” Yanlış tip yanlış yüzde üretir. “Genel perakende” Bandırma’da 1.318 kayıt; geniş kova, içinde her şey var. Bu kovayı “Bandırma’da 1.318 bakkal” diye satmayız.

Toplama, ham listeden isimleri siler, sayar, özet dosya yazar. Commit edilen bu. Ham liste yerelde kalır. Veritabanına alınan kopya içeride kuyruğa gider; public sayfa anonim yüzde ve “en boş sektör” listesi basar. İçeride sıcak / ılık / soğuk / atla diye bakıyoruz. Bunu “şu işletme 87 puan” diye yayınlamıyoruz.

if (isChain(name, brand, operator)) {
  return { lead_tier: "skip", lead_signals: ["chain_skip"] };
}
if (PUBLIC_TYPES.has(primaryType)) {
  return { lead_tier: "skip", lead_signals: ["public_skip"] };
}

Bu sayılarla ne yapılmaz

Yatırım sunumu, “Bandırma’da siteler yüzde 5” manşeti ve rakip ifşası bu tablodan çıkmaz. Yapılır olan şey şu: hangi sektörde vitrin seyrek, hangi ilçede tarama yoğun, kendi sitemizde hangi sayfanın sayıyla tutarlı olduğu. 4.802 yarın 5.100 olur; harita dolar, biz tekrar çekeriz. Özet tarihi 12 Temmuz 2026. Yeni çekimde yüzde değişir. Değişmezse şüphelenin.

Yöntemi kopyalamak serbest; açık harita herkese açık. İşletme listesini yayınlamak değil. Konuşacaksak bölge sayfaları duruyor. Satış vaadi yok bu yazıda. Nasıl saydığımız var. Bölgeler, iletişim.