Kullanıcı Aracısı

Kullanıcı aracısının ne olduğu — tarayıcıların ve tarayıcıların kimliklerini belirtmek için kullandığı HTTP başlığı, robots.txt belirteci ile tam dize arasındaki fark ve bir botun gerçek olup olmadığını doğrulama yöntemi.

İlk yayın tarihi: 24 Haz 2026 · Son güncelleme: 8 Ağu 2026 · Advanced
Diller
Bu sayfada 2 kanıt sinyali

Kullanıcı aracısı, her istemcinin — tarayıcı, tarayıcı veya bot — kimliğini belirtmek için gönderdiği HTTP başlığıdır. İki şey karıştırılır: istek başlığındaki tam kullanıcı aracısı *dizesi* ve robots.txt'de hedeflediğiniz kısa kullanıcı aracısı *belirteci* (Googlebot, bingbot, Google-Extended). Belirteç, dizenin bir alt dizesidir (RFC 9309); Google-Extended gibi bazı belirteçlerin hiçbir istek dizesi yoktur. Dize kolayca taklit edilebilir — Google kendi dizesinin 'sık sık taklit edildiğini' söyler — bu yüzden erişim kontrolü için asla güvenmeyin. Googlebot/Bingbot'u ters DNS ve ileri arama veya yayınlanmış IP aralıklarıyla doğrulayın. Ve tuzaklara dikkat edin: AdsBot ve Google-Safety `User-agent: *` kuralını yok sayar, belirteç satırındaki sürüm numaraları ve joker karakterler yok sayılır, eşleştirme büyük/küçük harfe duyarsızdır ve bot UA'sına kullanıcılardan farklı içerik sunmak gizleme (cloaking) olarak kabul edilir.

TL;DR — Bir kullanıcı aracısı, herhangi bir istemcinin kendini tanımlamak için gönderdiği HTTP istek başlığıdır; isteğe bağlı, istemci tarafından doldurulan meta veridir, doğrulanmış kimlik değildir. Değeri, kullanıcı aracısı dizesidir. Bundan ayrı olarak, robots.txt içinde kullanılan kullanıcı aracısı belirteci (ürün belirteci) vardır — RFC 9309, bunun dizenin bir alt dizesi OLMASI GEREKTİĞİNİ söyler; bu, belgelenmiş istisnaları olan güçlü bir kuraldır (Google-Extended’ın hiç istek dizesi yoktur). Eşleştirme büyük/küçük harfe duyarsızdır, belirteç satırındaki sürüm numaraları/joker karakterler yok sayılır, en spesifik grup kazanır ve aynı belirteçli gruplar birleşir ancak * ile asla birleşmez. Dize önemsiz şekilde taklit edilebilir — Google kendi dizelerini bile “sıklıkla taklit edilen” olarak adlandırır — bu nedenle Google için googlebot.com/google.com/googleusercontent.com veya Bing için search.msn.com adreslerine karşı ters + ileri DNS (herhangi bir proxy/CDN arkasında, gerçek istemci IP’sini kullanın) ile doğrulayın veya yayınlanmış IP aralıklarıyla eşleştirin — ve doğrulanmış bir istek bile yalnızca bir isteğin geldiğini kanıtlar, sayfanın dizine eklendiğini, alındığını veya yapay zeka eğitimi için kullanıldığını değil. AdsBot ve Google-Safety, User-agent: * kuralını yok sayar. Chrome ayrıca tarayıcı UA dizelerinden ayrıntıları donduruyor (User-Agent azaltımı); Client Hints yapılandırılmış ancak isteğe bağlı alternatiftir ve hiçbiri tarayıcı doğrulamasının yerini tutmaz. Kullanıcı aracısı uyarlaması meşru olabilir, ancak tarayıcılara önemli ölçüde farklı içerik göstererek aldatmak gizleme (cloaking) olabilir.

Evidence for this claim HTTP User-Agent is a request field containing product information supplied by the client; it is descriptive text and not proof of identity. Scope: HTTP semantics for User-Agent. Confidence: high · Verified: IETF RFC 9110: User-Agent Evidence for this claim robots.txt User-agent matching is defined by the Robots Exclusion Protocol and controls crawler access, not authentication or general HTTP content negotiation. Scope: RFC 9309 robots matching behavior. Confidence: high · Verified: IETF RFC 9309: Robots Exclusion Protocol

Başlık, dize ve belirteç

Üç şey ve bunları birbirinden ayırmak bu konunun çoğunu oluşturur.

  • Başlık. User-Agent bir HTTP istek başlığıdır. Her istemci gönderir: tarayıcınız, curl, bir tarayıcı, bir bot. RFC 9110’a (temel HTTP anlambilim standardı) göre, istemcinin doldurduğu isteğe bağlı bir alandır — sunucunun doğruladığı kimliği doğrulanmış bir kimlik değil, istemci tarafından sağlanan tanımlayıcı meta veridir.
  • Dize. Başlığın değeri — yazılımı, sürümü, işleme motorunu ve bazen işletim sistemini tanımlayan serbest biçimli bir satır.
  • Belirteç. robots.txt User-agent: satırlarında bir tarayıcıyı hedeflemek için kullanılan kısa tanımlayıcı — Googlebot, bingbot, Google-Extended.

İlişki, insanların kafasını karıştıran kısımdır. RFC 9309 (resmi Robots Exclusion Protocol standardı), belirtecin “tarayıcının gönderdiği tanımlama dizesinin bir alt dizesi OLMASI GEREKTİĞİNİ… HTTP durumunda, ürün belirtecinin User-Agent başlığında bir alt dize OLMASI GEREKTİĞİNİ” söyler. Bu bir SHOULD’dur, bir MUST değil — standardın önerdiği güçlü bir kural, her tarayıcının mekanik olarak bağlı olduğu katı bir gereklilik değil. Google-Extended (aşağıda), bunun belgelenmiş bir istisnasının en net örneğidir. Alt dize kuralını, Google kendi belirteçlerinin çoğu için uyguladığı için evrensel olarak okumayın. Bir sağlayıcı bir belirteç sağladığında, belirteç dizenin bir parçasıdır; robots.txt içinde belirteci hedeflersiniz ve günlüklerinizde dizeyi okursunuz.

Evidence for this claim A robots.txt user-agent line selects a crawler product token, not an arbitrary full HTTP User-Agent string; RFC 9309 says the token should be a substring of the identification string, but this SHOULD-level convention has documented product-specific exceptions and is not authentication. Scope: robots.txt parsing and matching Confidence: high · Verified: Robots Exclusion Protocol

Google’ın botlarının kendilerini nasıl tanımladığına dair kendi çerçevesi burada faydalıdır: “Google’ın tarayıcıları kendilerini üç şeyle tanımlar: HTTP user-agent istek başlığı, isteğin kaynak IP adresi ve kaynak IP’nin ters DNS ana bilgisayar adı.” Kullanıcı aracısının üçten yalnızca biri olduğuna dikkat edin — diğer ikisi, onu gerçekten nasıl doğruladığınızdır.

Google-Extended: dizesi olmayan bir belirteç

Belirteç ≠ dize ayrımının en net örneği Google-Extended’dır. Google’ın içeriğinizi Gemini eğitimi ve temellendirme için kullanıp kullanamayacağını kontrol eder — ve hiçbir özel HTTP istek kullanıcı aracısı dizesine sahip değildir. Tarama işleminin kendisi mevcut Googlebot dizeleriyle yapılır; Google-Extended yalnızca bir robots.txt kontrol belirteci olarak vardır. Günlüklerinizde bir istek başlığında “Google-Extended” asla görmezsiniz.

Pratik sonuç: Google-Extended’i engellemek, içeriğinizin yalnızca AI eğitim kullanımını etkiler — Googlebot’un sizi Arama için taramasını ve dizine eklemesini durdurmaz. Bunlar, ayrı belirteçlerle kontrol edilen ayrı kararlardır. (Sitenizi okuyan botların daha geniş resmi için AI tarayıcıları ve tarayıcı bölümüne bakın.)

Googlebot’un kullanıcı aracısı dizeleri

Googlebot “daima güncel”dir — yakın tarihli bir Chrome sürümünde çalışır ve dizesindeki Chrome sürümü periyodik olarak güncellenir (Aralık 2019’dan beri böyledir). Bu nedenle sürüm bir W.X.Y.Z yer tutucusu olarak görünür:

Googlebot Akıllı Telefon (mobil):

Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Googlebot Masaüstü:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36

İçselleştirmeniz gereken iki şey var. İlk olarak, sürümü sabit kodlamayınW.X.Y.Z değişir ve onunla eşleşme bozulur. Bunun yerine kararlı Googlebot belirtecini eşleştirin. İkinci olarak, robots.txt’de mobil ile masaüstünü ayıramazsınız. Her iki varyant da tek Googlebot belirtecini paylaşır, bu nedenle bir robots.txt kuralı her ikisi için de geçerlidir.

Google’ın tarayıcı belirteçleri

Google, her biri kendi belirtecine sahip bir dizi tarayıcı ve getirici ailesi çalıştırır. En çok karşılaşacaklarınız:

Tarayıcırobots.txt belirteciNotlar
GooglebotGooglebotArama, Görseller, Video, Haberler, Discover — mobil + masaüstü bu belirteci paylaşır
Googlebot ImageGooglebot-ImageGoogle Görseller
Googlebot VideoGooglebot-VideoVideo Arama
Googlebot NewsGooglebot-NewsÇeşitli Googlebot dizelerini kullanır
Google StoreBotStorebot-GoogleAlışveriş
Google-InspectionToolGoogle-InspectionToolArama test araçlarını destekler
GoogleOtherGoogleOtherDahili araştırma/getirme
Google-ExtendedGoogle-Extendedyalnızca robots.txt — Gemini eğitimi, istek dizesi yok

Ve normal kuralları çiğneyenler — User-agent: * öğesini yok sayan özel durum tarayıcıları:

  • AdsBot (AdsBot-Google) ve AdsBot Mobile (AdsBot-Google-Mobile) — joker karaktere uymazlar. Onları engellemek için açıkça adlandırmanız gerekir.
  • AdSense (Mediapartners-Google) — aynı; genel * öğesini yok sayar.
  • Google-Safety — kötü amaçlı yazılım/kötüye kullanım tespiti için kullanılır; robots.txt’yi tamamen yok sayar.

İnsanların gözden kaçırdığı sonuç şudur: User-agent: *, AdsBot veya Google-Safety’yi engellemez. Bir joker karakterle “tüm botları engellerseniz” ve AdsBot’un gittiğini varsayarsanız, gitmemiştir. (Bu, bir sayfanın robots.txt tarafından engellenmiş ancak dizine eklenmiş bölgesine düşmesine neden olan türden bir sürprizdir — tam kontrol hikayesi için robots.txt bölümüne bakın.)

Bingbot’un kullanıcı aracısı dizeleri

Bing, Bingbot’un dizesini 2022’de Microsoft Edge ile işlediğini yansıtacak şekilde yeniden oluşturdu. Güncel dizeler:

Bingbot Masaüstü:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36

Bingbot Mobil:

Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

robots.txt belirteci yalnızca bingbot’tur. Dikkat edilmesi gereken: 2022 sonrası Bingbot’un dizesi neredeyse gerçek bir Chrome/Edge tarayıcısına benziyor — tek ayırt edici özellik içindeki bingbot/2.0 parçasıdır. UA’ya göre botları filtreleyen veya algılayan herhangi bir mantığınız varsa, bu değişiklik önemlidir.

robots.txt bir belirteci gerçekte nasıl eşleştirir

Bir tarayıcının hangi kural grubuna uyacağını belirleyen birkaç kural vardır (Google’ın robots.txt spesifikasyonuna ve RFC 9309’a göre):

  • En spesifik eşleşme kazanır. Google, “tarayıcının kullanıcı aracısıyla eşleşen en spesifik kullanıcı aracısına sahip grubu bularak… doğru kural grubunu belirler.” Bir Googlebot grubu, Googlebot için * grubunu yener.
  • Aynı belirteç grupları birleşir — ancak asla * ile değil. Aynı aracıyı adlandıran birden çok grup birleştirilir. Belirli bir aracı grubu ile * grubu birleştirilmez; * yalnızca belirli bir şey eşleşmediğinde yedek olarak kullanılır.
  • Büyük/küçük harfe duyarsız. Alan adı ve değer — Googlebot, googlebot, GOOGLEBOT eşdeğerdir.
  • Belirteç satırındaki sürüm numaraları ve joker karakterler yok sayılır. Google’a göre, “hem googlebot/1.2 hem de googlebot*, googlebot ile eşdeğerdir.” Bir aileyi eşleştirmek için User-agent: Googlebot* yazamazsınız — oradaki * hiçbir şey yapmaz.

Yani bir User-agent: satırı bir belirteç alır ve bunu tarayıcının kimliğinin düz (büyük/küçük harfe duyarlı olmayan) bir alt dizesi olarak eşleştirir — sürüm sabitleme yok, içinde joker karakter yok.

Dizeye neden güvenemezsiniz — ve nasıl doğrulanır

Kullanıcı aracısı dizesi serbest biçimli metindir. Her şey onu ayarlayabilir. Tek bir curl satırı Googlebot olduğunu iddia eder ve birçok araç ve kötü niyetli bot, engelleri aşmak için tam olarak bunu yapar. Google, kendi Googlebot belgelerinde şöyle der: “Googlebot tarafından kullanılan HTTP kullanıcı aracısı istek başlığı genellikle diğer tarayıcılar tarafından taklit edilir.” Googlebot rehberimde belirttiğim gibi, “Birçok SEO aracı ve bazı kötü niyetli botlar Googlebot gibi davranacaktır. Bu, onları engellemeye çalışan web sitelerine erişmelerine izin verebilir.”

Bu yüzden yalnızca dizeye dayanarak asla bir erişim veya içerik kararı vermeyin. Bunun yerine doğrulayın.

Her iki yöntemden önce bir ön koşul: gerçek kaynak IP’yi alın. Siteniz bir ters proxy, yük dengeleyici veya CDN arkasındaysa, varsayılan erişim günlüğünüzdeki adres proxy’nin IP’si olabilir, tarayıcının değil — orijinal istemci IP’sine ihtiyacınız var (genellikle X-Forwarded-For gibi bir başlıkta iletilir, proxy’nizde doğru yapılandırılmıştır) veya aşağıdaki doğrulama yöntemlerinin hiçbiri bir anlam ifade etmez.

Yöntem 1 — ters + ileri DNS (nokta kontrolleri için en iyisi). Google’ın iki adımı:

  1. “Günlüklerinizden erişen IP adresinde host komutunu kullanarak bir ters DNS araması yapın. Alan adının googlebot.com, google.com veya googleusercontent.com olduğunu doğrulayın.”
  2. “1. adımda alınan alan adında bir ileri DNS araması yapın… Günlüklerinizdeki orijinal erişen IP adresiyle aynı olduğunu doğrulayın.”

Bingbot için aynı iki adımlı dans, ancak ana bilgisayar adı search.msn.com ile bitmelidir (Bing markalı bir alan adı değil — yaygın bir sürpriz). Komutlar Komut Dosyaları sekmesindedir.

Yöntem 2 — yayınlanan IP aralıkları (ölçekte en iyisi). Google, sabit kodlama için statik bir beyaz liste yayınlamaz (“bu IP adresi aralıkları değişebilir”), ancak eşleştirebileceğiniz makine tarafından okunabilir CIDR JSON dosyaları yayınlar (common-crawlers.json ve daha geniş tarayıcı dosyaları). Bing artık aralıklarını da yayınlıyor. Tam olarak bunun için bir Googlebot IP doğrulama aracı oluşturdum — IP’leri yapıştırın ve bunları sınıflandırır. Bing Webmaster Tools’ta ayrıca yerleşik bir “Bingbot’u Doğrula” aracı vardır.

DNS, tek seferlik bir günlük kontrolü için daha iyidir; IP aralığı eşleştirme, hacimli doğrulama için daha iyidir. Hangisi uyuyorsa onu kullanın — ama birini kullanın. Ve hem beklenen ana bilgisayar adlarını hem de aralık dosyalarını bugün itibarıyla geçerli, kalıcı değil olarak ele alın — Google ve Bing bu yolları daha önce değiştirdi (IP aralığı JSON dosyaları bu makale ilk yazıldığından beri taşındı ve yeniden adlandırıldı), bu yüzden eskiden çalışan bir arama artık eşleşmiyorsa canlı doğrulama belgesini yeniden kontrol edin.

Bir UA eşleşmesi, aşağı akış sonuçlarının kanıtı değildir

Tamamen doğrulanmış bir istek bile — gerçek Googlebot IP’si, ileri doğrulanmış ters DNS, her şey yolunda — yalnızca tek bir şeyi kanıtlar: bu istek sunucunuza ulaştı. Bunu çok daha büyük bir iddiaya yuvarlamak cazip geliyor, ancak bunların her biri ayrı kanıt gerektiren ayrı bir gerçektir:

  • İstek alındı — bu kullanıcı aracısına sahip bir istek sunucunuza ulaştı. (Günlük doğrulamasının gerçekte kanıtladığı şey budur.)
  • Kimlik doğrulandı — istek gerçekten iddia ettiği tarayıcıdan geldi. (Ters DNS / IP aralığı eşleştirmesinin buna eklediği şey budur.)
  • İçerik getirildi ve işlendi — tarayıcı sayfayı başarıyla işledi (hata yok, engellenen kaynak yok). Yalnızca bir isteğin ulaşması bunu garanti etmez.
  • Dizine eklendi — URL arama dizinine girdi. Başarılı bir getirme, dizine eklemeyi garanti etmez.
  • Alma, alıntılama veya eğitim için kullanıldı — özellikle yapay zeka tarayıcıları için (Google-Extended, GPTBot ve diğerleri), bir tarama, içeriğinizin belirli bir yanıt için alındığının, alıntılandığının veya model eğitiminde kullanıldığının kanıtı değildir. Bunlar, taramanın aşağı akışında yer alan ayrı ve çoğunlukla gözlemlenemeyen adımlardır.

Günlüklerinizde doğrulanmış bir Googlebot isteği gerçek bir sinyaldir — yalnızca gerçekte gösterdiğinden daha fazlasını ima etmeyin.

Web Bot Auth: doğrulamanın yöneldiği yer

2026’da Google, Web Bot Auth ile denemeler yapmaya başladı — “botlar tarafından gönderilen istekleri doğrulamak için kullanılan deneysel bir kriptografik protokol.” Amaç, “kolayca taklit edilebilen başlıkların ötesine geçerek doğrulanmış bir kimliğe ulaşmak ve aracı kimliğini IP adreslerinden ayırmak.” Botlar isteklerini kriptografik olarak imzalar; siteler imzayı Google’ın yayınladığı genel anahtarlara karşı doğrular ve imzalı istekler bir Signature-Agent başlığı taşır. Google’ın kendi uyarısı önemlidir: “Belirli bir aracının her isteğini imzalamıyoruz. Yerleşik bot doğrulama yöntemlerine geri döndüğünüzden emin olun.” Yani bu ek bir özelliktir, bir değiştirme değil — ters DNS ve IP aralıkları bugün için temel yönteminiz olmaya devam ediyor.

Tarayıcılar da UA dizesinden ayrıştırılmakta zorlaşıyor

Yukarıdaki her şey tarayıcılarla ilgili, ancak aynı “dizeye aşırı güvenmeyin” dersi tarayıcılar için de geçerli ve giderek güçleniyor. Chrome, User-Agent reduction özelliğini kullanıma sunuyor: UA dizesinin bazı bölümlerini (tam tarayıcı sürümü, işletim sistemi sürümü, cihaz modeli) tam olarak bildirmek yerine donduruyor veya kabalaştırıyor; böylece dize belirli bir kullanıcıyı parmak izi olarak tanımlamak için kullanılamaz. Google’ın kendi ifadesi: “Ayrıntının inceliği ve bolluğu, kullanıcı tanımlamasına yol açabilir. Bu bilgilerin varsayılan olarak kullanılabilir olması, gizli izlemeye yol açabilir.” Pratikte bu, tam tarayıcı/işletim sistemi/cihaz sürümü için UA dizesi ayrıştırmanın — analitik, cihaz algılama, hata triyajı — giderek daha güvenilmez hale geldiği ve daha da güvenilmez olacağı anlamına gelir.

Chrome’un önerdiği değiştirme User-Agent Client Hints (UA-CH) özelliğidir: tarayıcının yalnızca sunucu açıkça istediğinde gönderdiği yapılandırılmış veri. Düşük entropili ipuçları (tarayıcı markası, ana sürüm, mobil bayrağı) varsayılan olarak gönderilir; yüksek entropili ipuçları (tam sürüm, platform sürümü, cihaz modeli) sunucunun önce bir Accept-CH yanıt başlığı aracılığıyla katılımını gerektirir — bir yayın değil, açık bir anlaşmadır. Buna güvenmeden önce iki uyarı: bu bir Chrome/Chromium ailesi mekanizmasıdır, her tarayıcının gönderdiği bir şey değildir ve desteklendiği yerlerde bile “değer boş olabilir, döndürülmeyebilir veya değişen bir değerle doldurulabilir.” Client Hints, tarayıcı dizesi sorununu çözer; bunlar bir tarayıcı doğrulama mekanizması değildir — Google ve Bing kendi tarayıcılarını hâlâ DNS ve IP aralıkları aracılığıyla doğrular, Client Hints ile değil.

Kullanıcı aracısı hedefleme ve gizleme

Cazip hamle — “Googlebot’u UA’sından tespit edip ona özel bir şey sunmak” — hem teknik olarak kırılgan hem de bir politika ihlalidir.

Kırılgan, çünkü Google tek bir UA ile taramaz. Dönen IP’lerden Googlebot’u (mobil ve masaüstü), Google-InspectionTool’u, AdsBot’u, GoogleOther’ı ve daha fazlasını doğru şekilde işlemeniz gerekir — temiz bir şekilde beyaz listeye almak pratik olarak imkânsızdır.

Bir politika ihlali, çünkü bir tarayıcıya kullanıcılara sunduğundan farklı içerik sunmak gizleme (cloaking) olarak kabul edilir: “kullanıcılara ve arama motorlarına, arama sıralamalarını manipüle etme ve kullanıcıları yanıltma niyetiyle farklı içerik sunmak.” Cezası algoritmik düşürmeden tamamen dizinden çıkarmaya kadar değişir. Şu satıra dikkat edin: meşru uyarlama (duyarlı düzenler, içerik anlaşması) sorun değildir — botlar ve kullanıcılar arasında içeriğin kendisini değiştirmek gizlemeye girer.

Kullanıcı aracısının daha büyük işlem hattındaki yerini görmek için tarama (merkez) ve tarayıcı bölümlerine bakın. Bu botların getirmesine izin verilenleri kontrol etmek için robots.txt’ye bakın.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.