MIX-Basic
8.000 IP · 500–900 iş parçacığı
aylık 50 $'dan
Tek proje: yüz bine kadar URL taraması, anahtar kelime toplama, haftada bir bağlantı kontrolü.
Bir tarayıcı siteyi yüzlerce iş parçacığıyla dolaşır ve her sunucu eninde sonunda ona 429 döner. 25.000 IP'ye kadar bir MIX havuzu bu iş parçacıklarını farklı adreslere dağıtır, böylece Screaming Frog, Netpeak Spider, A-Parser ve Key Collector aralıklı tek iş parçacığı yerine tam hızda çalışır. Bir saatlik test 1 $.

Paketi seçin, süreyi ve iş parçacığı sayısını kaydırın. Buradaki iş parçacıkları tarayıcı ayarlarında girdiğiniz threads ile aynıdır: 1.200 iş parçacığı, aracın aynı anda çektiği 1.200 URL demektir. Kaydırıcı bu değerde duruyor.
MIX-Basic tek bir projenin denetimini karşılar: Screaming Frog ya da Netpeak Spider'da 50–100 bin URL'lik tarama, Key Collector'da anahtar kelime toplama, bir kerelik kırık bağlantı kontrolü. 8.000 adres sunucu limitlerini kaldırır, 500 iş parçacığı da tarayıcıya genelde girilen değerle örtüşür.
MIX-Business bir SEO ekibi ve ajans için tasarlandı: haftada birkaç proje, yan yana Sitebulb ve SEO PowerSuite, öneri ve sonuç toplamak için A-Parser, toplu kontroller için ScrapeBox. 16.000 adres ve varsayılan 1.200 iş parçacığı: tarama bir gecede değil bir akşamda bitsin diye girilen değer budur.
MIX-Elite kendi servisiniz ya da büyük bir şirket içi ekip için yapıldı: tarama başına milyonlarca URL, aynı anda loglar ve tarama, kendi dizine girme ve sayfalama denetçileriniz. 25.000 adreslik havuz ve 9.900'e kadar iş parçacığı — bu sayılara başka paket çıkmıyor.
İş parçacığı, eşzamanlı bir bağlantıdır. Daha fazla iş parçacığı — aynı sürede daha fazla iş.
$50 1 ay içiniş parçacığı için ek ücret yok
günlüğe göre $250 tasarrufİş parçacığı, eşzamanlı bir bağlantıdır. Daha fazla iş parçacığı — aynı sürede daha fazla iş.
$100 1 ay için+ $20 iş parçacığı için
günlüğe göre $420 tasarrufİş parçacığı, eşzamanlı bir bağlantıdır. Daha fazla iş parçacığı — aynı sürede daha fazla iş.
$150 1 ay içiniş parçacığı için ek ücret yok
günlüğe göre $450 tasarrufErişim bilgisayarın ya da sunucunun kendisine bağlanır, bu yüzden Screaming Frog ve Netpeak'in proxy ayarlarında kullanıcı adı ve şifre alanları boş kalır. Böyle en fazla on makine kaydedilebilir.
Bağlantı adres ve port biçiminde bir metin dosyası döndürür, her satırda bir proxy. Screaming Frog ve Netpeak aynı listeyi dosya olarak bekler: yanıtı .txt olarak kaydedin ve ayarlarda onu gösterin.
A-Parser ve ScrapeBox bağlantıyı kendisi yeniden okur ve içindeki tüm adresleri alır. Key Collector, Sitebulb ve SEO PowerSuite liste dosyasını okur, o yüzden dosyayı 10 dakikada bir betikle yenileyin, örnek aşağıda.
Basic'te 500, Business'ta 1.000, Elite'te ek almadan 1.500. Her port ayrı bir proxy'dir ve tarayıcının bir iş parçacığı bir portu tutar: Screaming Frog'a paketteki porttan fazla iş parçacığı girmenin faydası yok.
SOCKS5'i Screaming Frog, A-Parser, ZennoPoster ve ScrapeBox alır. Netpeak Spider, Key Collector ve SEO PowerSuite HTTP(S) üzerinden gider. İki protokol de aynı portta durur, değişiklik yalnızca araçta yapılır.
Havuz kendi denetiminize böyle bağlanır. Betik adresleri urls.txt'den okur, her sayfayı rastgele bir proxy ile çeker ve audit.csv'ye yanıt kodunu, yönlendirmeyi, title, h1, açıklama, canonical ve robots değerlerini yazar — tarayıcının gösterdiğinin aynısı, yalnızca sizin kurallarınızla. PROXY_LIST_URL_FROM_DASHBOARD yerine panelinizdeki bağlantıyı koyun.
# pip install requests[socks]
import csv, random, re, time, requests
from concurrent.futures import ThreadPoolExecutor
PROXY_LIST_URL = "PROXY_LIST_URL_FROM_DASHBOARD"
REFRESH_SEC = 600
THREADS = 1200
HEADERS = {"User-Agent": "Mozilla/5.0 (compatible; SeoAudit/1.0)", "Accept-Language": "en-US,en;q=0.9"}
_pool, _loaded = [], 0
def pool():
global _pool, _loaded
if time.time() - _loaded > REFRESH_SEC:
text = requests.get(PROXY_LIST_URL, timeout=15).text
_pool = [line.strip() for line in text.splitlines() if ":" in line]
_loaded = time.time()
return _pool
def first(pattern, html):
match = re.search(pattern, html, re.S | re.I)
return re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", match.group(1))).strip() if match else ""
def audit(url, tries=3):
for _ in range(tries):
proxy = random.choice(pool())
try:
r = requests.get(url, headers=HEADERS, timeout=20, allow_redirects=False,
proxies={"http": f"socks5h://{proxy}", "https": f"socks5h://{proxy}"})
except requests.RequestException:
continue
html = r.text if "html" in r.headers.get("Content-Type", "") else ""
return {
"url": url,
"status": r.status_code,
"redirect": r.headers.get("Location", ""),
"title": first(r"<title[^>]*>(.*?)</title>", html),
"h1": first(r"<h1[^>]*>(.*?)</h1>", html),
"description": first(r'<meta[^>]+name="description"[^>]+content="([^"]*)"', html),
"canonical": first(r'<link[^>]+rel="canonical"[^>]+href="([^"]*)"', html),
"robots": first(r'<meta[^>]+name="robots"[^>]+content="([^"]*)"', html),
}
return {"url": url, "status": 0, "redirect": "", "title": "", "h1": "",
"description": "", "canonical": "", "robots": ""}
urls = [line.strip() for line in open("urls.txt") if line.strip()]
fields = ["url", "status", "redirect", "title", "h1", "description", "canonical", "robots"]
with open("audit.csv", "w", newline="", encoding="utf-8") as out:
writer = csv.DictWriter(out, fieldnames=fields, delimiter=";")
writer.writeheader()
with ThreadPoolExecutor(THREADS) as executor:
for row in executor.map(audit, urls):
writer.writerow(row)
print(row["status"], row["url"], row["title"][:60])
8.000 IP · 500–900 iş parçacığı
aylık 50 $'dan
Tek proje: yüz bine kadar URL taraması, anahtar kelime toplama, haftada bir bağlantı kontrolü.
16.000 IP · 1.000–1.400 iş parçacığı
aylık 100 $'dan
Ajans ve SEO ekibi: aynı anda birkaç tarayıcı, öneri toplama ve toplu kontroller tek havuzda.
25.000 IP · 1.500–9.900 iş parçacığı
aylık 150 $'dan
Kendi servisiniz ve büyük şirket içi ekip: tarama başına milyonlarca URL, 9.900'e kadar iş parçacığı, gün boyu.
import csv, io, requests
CSV_URL = "PROXY_LIST_URL_FROM_DASHBOARD.csv"
TAKE = 1200
OUT_FILE = "proxies_fast.txt"
text = requests.get(CSV_URL, timeout=15).text
rows = list(csv.DictReader(io.StringIO(text), delimiter=";"))
rows.sort(key=lambda r: int(r["speed"]), reverse=True)
picked = [f"{r['ip']}:{r['port']}" for r in rows[:TAKE]]
with open(OUT_FILE, "w") as f:
f.write("\n".join(picked) + "\n")
print(f"{len(picked)} proxies saved to {OUT_FILE}")
Hizmetle ilgili geri kalan her şey genel SSS sayfasında, fiyatlarıyla tüm paketler ana sayfa üzerinde.
Tarayıcınızı havuzda bir saat çalıştırın, tarama hızına bakın, sonra süreyi seçin. 3 günden uzun paketlerde kalan bakiyenize döner.
1 $'a proxy dene