Проксі для SEO-софту

Краулер обходить сайт у сотні потоків, і будь-який сервер рано чи пізно відповідає йому 429. Пул МІКС до 25 000 IP розводить ці потоки по різних адресах, тому Screaming Frog, Netpeak Spider, A-Parser і Key Collector працюють на повній швидкості, а не в один потік із паузами. Година тесту коштує $1.

  • Трафік не тарифікується
  • SOCKS5 і HTTP на одному порту
  • Повернення на пакетах від 3 діб
До цін
Інструменти SEO-аудиту сходяться до одного проксі-вузла, від якого йдуть зв'язки до сторінок сайтів

Ціна за ваш обсяг

Оберіть пакет, посуньте строк і кількість потоків. Потоки тут це ті самі threads, які ви ставите в налаштуваннях краулера: 1 200 потоків це 1 200 URL, які софт тягне одночасно. Повзунок стоїть на цьому значенні.

MIX-Business розрахований на SEO-відділ і агентство: кілька проєктів на тиждень, Sitebulb і SEO PowerSuite паралельно, A-Parser на збір підсказок і видачі, ScrapeBox на масові перевірки. 16 000 адрес і 1 200 потоків за замовчуванням: стільки ставлять у краулері, коли обхід потрібен за вечір, а не за ніч.

1 місяць
1 200+20%

Потік — одне одночасне з'єднання. Більше потоків — більше зроблено за той самий час.

$120
≈ $4 / деньза 30 днів

$100 за місяць+ $20 за потоки

економія $420 до подобової
ТАКповернення залишку
  • 1 година — $1
  • 1 день — $15
  • 3 дні — $35
  • 1 тиждень — $50
  • 2 тижні — $75
  • 1 місяць — $100
  • 3 місяці — $255
  • 6 місяців — $475
Купити проксі — MIX-Business

Як підключити проксі до SEO-софту

  1. 1
    Купіть годину за $1 і вкажіть IP машини, з якої працює софт.

    Доступ прив'язується до самого комп'ютера або сервера, тому в налаштуваннях проксі у Screaming Frog і Netpeak поля логіна і пароля залишаються порожніми. Таких машин може бути до десяти.

  2. 2
    Візьміть у кабінеті посилання на список проксі.

    За ним віддається текстовий файл у форматі адреса і порт, рядок на проксі. Screaming Frog і Netpeak чекають такий самий список, лише файлом: збережіть відповідь у .txt і вкажіть його в налаштуваннях.

  3. 3
    Розкладіть пул по інструментах.

    A-Parser і ScrapeBox перечитують посилання самі й беруть із нього всі адреси. Key Collector, Sitebulb і SEO PowerSuite читають файл зі списком, тому оновлюйте його скриптом раз на 10 хвилин, приклад нижче.

  4. 4
    Виставте потоки софту не вище за кількість портів у пакеті.

    500 у Basic, 1 000 у Business, 1 500 у Elite без докупівлі. Кожен порт це окремий проксі, і один потік краулера займає один порт: ставити у Screaming Frog більше потоків, ніж портів у пакеті, немає сенсу.

  5. 5
    Оберіть протокол під інструмент.

    SOCKS5 беруть Screaming Frog, A-Parser, ZennoPoster і ScrapeBox. Netpeak Spider, Key Collector і SEO PowerSuite ходять через HTTP(S). Обидва протоколи висять на тому самому порту, перемикання лише в налаштуваннях софту.

Так пул підключається до власного аудиту. Скрипт читає адреси з urls.txt, тягне кожну сторінку через випадковий проксі і складає в audit.csv код відповіді, редирект, title, h1, опис, canonical і robots — те саме, що показує краулер, лише під ваші правила. Підставте посилання з кабінету замість PROXY_LIST_URL_FROM_DASHBOARD.

# 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])

Який пакет узяти під SEO-софт

MIX-Basic

8 000 IP · 500–900 потоків

від $50 на місяць

Один проєкт: обхід до сотні тисяч URL, збір семантики, перевірка посилань раз на тиждень.

MIX-Business

16 000 IP · 1 000–1 400 потоків

від $100 на місяць

Агентство і SEO-відділ: кілька краулерів разом, збір підсказок і масові перевірки на одному пулі.

MIX-Elite

25 000 IP · 1 500–9 900 потоків

від $150 на місяць

Власний сервіс і великий інхаус: мільйони URL за обхід, потоки до 9 900, робота круглу добу.

П'ять налаштувань, що бережуть пул

  • Обмежте краулер за URL на секунду на домен, а не лише за потоками. Сервер рахує частоту, і 1 200 потоків в один домен без ліміту це гарантований 429.
  • Ставте в краулері таймаут 20 секунд і два повтори через інший проксі: на великому обході зависли запити з'їдають більше часу, ніж пропущені сторінки.
  • Не тягніть картинки, шрифти і CSS, якщо перевіряєте метатеги. У Screaming Frog це знімається галочками в Configuration, і обхід прискорюється в рази.
  • Robots.txt читайте один раз і кешуйте: краулер, який смикає його перед кожною сторінкою, витрачає половину пулу марно.
  • Перед великим обходом відберіть найшвидші адреси з CSV, скрипт нижче сортує список за колонкою speed.

Питання про проксі для SEO-софту

01З яким софтом це працює?
З будь-яким, що приймає список проксі: Screaming Frog SEO Spider, Netpeak Spider і Checker, Sitebulb, SEO PowerSuite, A-Parser, Key Collector, KeyAssort, ScrapeBox, GSA Search Engine Ranker, ZennoPoster, Xenu's Link Sleuth. Сервіси на кшталт Ahrefs і Semrush ходять своєю інфраструктурою, їм пул не потрібен.
02Скільки потоків ставити у Screaming Frog?
Не більше за кількість портів у пакеті: 500 на Basic, 1 000 на Business, 1 500 на Elite. І тримайте ліміт за URL на секунду на домен, інакше впертеся не в пул, а в захист сайту, який обходите.
03Як краулер авторизується на проксі?
Ніяк: авторизація йде за IP машини, який ви вписали при замовленні. У налаштуваннях проксі Screaming Frog або Netpeak поля логіна і пароля залишаються порожніми, змінювати список машин можна в кабінеті.
04Чи вистачить пулу на обхід у мільйон URL?
Так, трафік не тарифікується, і обсяг сторінок на ціну не впливає. Упор іде не в пул, а в частоту запитів до одного домену: мільйон URL одного сайту розумніше обходити з лімітом і за кілька проходів.
05Чи можна збирати видачу і підсказки по регіонах?
Так, для цього у списку є країна в кожної адреси. Візьміть список у форматі CSV: колонки ip, port, country, speed, uptime, real_ip через крапку з комою. Скрипт нижче сортує пул за колонкою speed і залишає найшвидші адреси, а фільтр за country додається одним рядком.
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}")
06Що якщо краулер не поїде на цьому пулі?
Візьміть годину за $1 і запустіть на ній звичайний обхід: за годину видно і швидкість, і частку відповідей 429. Пакети від 3 діб скасовуються в кабінеті, використаний час перерахують за звичайним тарифом, залишок повернеться на баланс.

Решта про сервіс зібрана в загальному FAQ, усі пакети з цінами на головній.

Почніть з години за $1

Запустіть свій краулер на пулі за годину, подивіться швидкість обходу, потім беріть строк. На пакетах від 3 діб залишок повернеться на баланс.

Проксі на тест за $1
ВХІД/РЕЄСТРАЦІЯ