Giriş ve Amaç
Web siteleri yönetimi ya da SEO çalışmaları yapanlar için, farklı alan adlarına ait robots.txt dosyalarının durumunu topluca kontrol etmek zaman zaman ihtiyaç haline gelir. Bu dosyalar, arama motorlarının sitenizde hangi sayfa veya dizinleri tarayacağını belirleyen kritik bir unsurdur. Ancak, özellikle çok sayıda siteyi yönetirken veya denetlerken, her siteyi tek tek kontrol etmek zaman kaybı ve hata riskini artırır. Bu noktada, Python gibi güçlü ve esnek bir dil kullanmak, otomasyon sağlamak açısından oldukça avantajlıdır.
Temel Yaklaşım ve İşleyiş
İlk olarak, kontrol edilmesi gereken tüm sitelerin listesini belirleriz. Ardından, bu sitelerin robots.txt dosyalarına HTTP GET isteği göndererek erişim sağlar, dosyanın var olup olmadığını ve içeriğini inceleriz. Basitçe;
- Sitelerin robots.txt dosyasını URL olarak oluştururuz: http(s)://siteadi.com/robots.txt
- Erişim sırasında, HTTP durum kodlarını (200, 404, 403 gibi) dikkate alırız.
- Dosya bulunduysa, içeriği analiz ederek, Disallow, Allow, Sitemap gibi direktifleri kontrol ederiz.
Örnek kullanımda, Python'un
requests kütüphanesi ile bu işlemi gerçekleştirebiliriz. Ayrıca, robots.txt içeriğini satır satır okuyup, belirli kurallara göre rapor çıkarma şansı da mevcuttur.
Detaylı Kod Örneği
Aşağıda, temel bir toplu robots.txt kontrolü yapan Python scripti yer almaktadır:
12345678910111213141516171819202122232425import requests
[b]Kontrol edilecek sitelerin listesi[/b]
sites = [
'https://example.com',
'https://anotherdomain.com',
'https://yetsite.org'
]
for site in sites:
robots_url = site.rstrip('/') + '/robots.txt'
try:
response = requests.get(robots_url, timeout=10)
if response.status_code == 200:
print(f"[b]{site}[/b] sitesinin robots.txt dosyası bulundu.")
content = response.text
# Direktifleri detaylı analiz etmek için
disallow_lines = [line for line in content.splitlines() if line.strip().lower().startswith('disallow')]
print(f"Disallow direktifleri:\n" + "\n".join(disallow_lines))
elif response.status_code == 404:
print(f"[b]{site}[/b] sitesinin robots.txt dosyası bulunamadı (404).")
else:
print(f"[b]{site}[/b] sitesine erişilirken beklenmedik durum kodu: {response.status_code}")
except requests.RequestException as e:
print(f"[b]{site}[/b] sitesine erişim sağlanamadı. Hata: {e}")
Sonuç ve Uygulama Alanları
Bu yöntem, büyük ölçekli SEO denetimleri, güvenlik analizleri veya site yönetiminde zaman kazandırır. Ayrıca, belirli kurallara göre raporlama ve düzenli kontrol otomasyonu, sitelerin arama motorlarına uyumunu sürekli izlemek adına büyük avantaj sağlar. Elbette, daha gelişmiş analizler yapmak veya hareketli kurallara göre otomasyonları artırmak için scriptler genişletilebilir.
İşte bu temel yapıdan yola çıkarak, kendi ihtiyaçlarınıza uygun detaylı ve otomatik robots.txt kontrol sistemleri geliştirebilirsiniz.