Proxy cho SEO SERP tracking 2026: multi-country

Mục lục

Proxy cho SEO SERP tracking rank checker - multi-country Google ranking 2026
Track ranking Google SERP từ multi-country với proxy IPv4 dedicated TND cho SEO agency và in-house

SEO professional cần track ranking từ multiple country - Google SERP localize theo IP gốc của user, ranking #3 từ US có thể là #15 từ VN. Tool SaaS (AccuRanker, SerpFox, Nightwatch) tiện nhưng đắt cho agency lớn ($100-500/mo). Self-host SERP tracker với TND IPv4 dedicated rẻ hơn 5-10x, kiểm soát data, ToS-compliant. Bài này hướng dẫn build SERP tracker Python + Node.js với TND IPv4, handle rate limit, store data, plus alternative SaaS có proxy custom.

1. Vì sao SEO cần proxy multi-country

  • Google SERP localize: Cùng keyword "best vps hosting" hiển thị result khác nhau giữa user US, UK, DE, JP, VN. Phải scrape từ IP đúng country.
  • Avoid IP rate limit: Google detect "human-like" pattern theo IP. 1 IP scrape nhiều > bị CAPTCHA hoặc temp ban. Rotate IP giảm risk.
  • Hide intent: Search history của 1 IP ảnh hưởng personalized result. Fresh IP cho clean SERP.
  • Multi-client isolation: Agency track 10 client, mỗi client 1 IP riêng → không mix history.

2. Option 1: SaaS SERP tracker với custom proxy

Nhiều tool SaaS cho phép gắn proxy custom thay vì dùng pool internal:

Tool Giá khởi điểm Custom proxy support Use case
AccuRanker $129/mo Enterprise only Agency premium
SerpFox $10/mo Có (Pro+) Small agency, freelancer
Nightwatch $32/mo Mid-size agency
Whitespark $25/mo Limited Local SEO
SerpApi (API service) $50/mo Built-in residential pool Dev integrate

Nếu chỉ track 5-20 keyword cho 1-2 client, SaaS tier $10-30 + TND IPv4 1-2 IP đủ.

3. Option 2: Self-host SERP scraper Python

Cho agency tracking 100+ keyword, self-host rẻ hơn nhiều.

Python với requests + BeautifulSoup

import requests
from bs4 import BeautifulSoup
import time, random

PROXIES_POOL = [
    {'http': 'http://us01_S21130_P60:•••@23.155.xxx.10:2021',
     'https': 'http://us01_S21130_P60:•••@23.155.xxx.10:2021'},
    {'http': 'http://us02_S21131_P60:•••@23.155.xxx.11:2021',
     'https': 'http://us02_S21131_P60:•••@23.155.xxx.11:2021'},
    # ... 8 more
]

HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    'Accept-Language': 'en-US,en;q=0.9',
}

def search_serp(keyword, country='us', proxy_idx=0):
    url = f'https://www.google.{country}/search'
    params = {'q': keyword, 'hl': 'en', 'gl': country, 'num': 20}
    proxy = PROXIES_POOL[proxy_idx % len(PROXIES_POOL)]
    r = requests.get(url, params=params, headers=HEADERS, proxies=proxy, timeout=15)
    if r.status_code != 200:
        return None
    soup = BeautifulSoup(r.text, 'html.parser')
    results = []
    for i, item in enumerate(soup.select('div.g')[:20]):
        title = item.select_one('h3')
        link = item.select_one('a[href^="http"]')
        if title and link:
            results.append({
                'position': i + 1,
                'title': title.text,
                'url': link['href']
            })
    return results

# Loop track keyword
keywords = ['mua proxy ipv4', 'mua vps tnd', 'antidetect browser']
for i, kw in enumerate(keywords):
    serp = search_serp(kw, 'vn', proxy_idx=i)
    print(f'\n{kw}:')
    for r in serp[:5]:
        print(f"  #{r['position']}: {r['title']}")
    time.sleep(random.uniform(8, 12))  # Polite delay

4. Option 2: Self-host SERP scraper Node.js

import axios from 'axios';
import * as cheerio from 'cheerio';
import { HttpsProxyAgent } from 'https-proxy-agent';

const PROXIES = [
  'http://us01_S21130_P60:•••@23.155.xxx.10:2021',
  'http://us02_S21131_P60:•••@23.155.xxx.11:2021',
];

async function searchSERP(keyword, country = 'us', proxyIdx = 0) {
  const agent = new HttpsProxyAgent(PROXIES[proxyIdx % PROXIES.length]);
  const url = `https://www.google.${country}/search`;
  const { data } = await axios.get(url, {
    params: { q: keyword, hl: 'en', gl: country, num: 20 },
    httpsAgent: agent,
    headers: {
      'User-Agent': 'Mozilla/5.0 ...',
      'Accept-Language': 'en-US,en;q=0.9'
    },
    timeout: 15000
  });
  const $ = cheerio.load(data);
  const results = [];
  $('div.g').slice(0, 20).each((i, el) => {
    const title = $(el).find('h3').first().text();
    const url = $(el).find('a[href^="http"]').first().attr('href');
    if (title && url) {
      results.push({ position: i + 1, title, url });
    }
  });
  return results;
}

const keywords = ['mua proxy ipv4', 'mua vps tnd', 'antidetect browser'];
for (let i = 0; i < keywords.length; i++) {
  const serp = await searchSERP(keywords[i], 'vn', i);
  console.log(`\n${keywords[i]}:`);
  serp.slice(0, 5).forEach(r => console.log(`  #${r.position}: ${r.title}`));
  await new Promise(r => setTimeout(r, 8000 + Math.random() * 4000));
}

5. Best practice: rate limit, user-agent, retry

Practice Chi tiết
Delay 8-12s/request Tránh trigger CAPTCHA Google. Random hóa để look human.
Rotate User-Agent 5-10 UA phổ biến rotate, không stick 1 UA
Rotate IP Mỗi 50-100 request đổi IP TND khác
Handle 429/503 Backoff exponential (30s, 60s, 120s), không retry ngay
Skip CAPTCHA page Detect /sorry/index URL, đổi IP ngay
Don't bulk parallel Sequential request, không async 50 cùng lúc
Cache result Lưu DB, không re-scrape cùng kw trong 24h
Respect robots.txt Google không cho scrape /search nhưng cho phép qua Google Search API official
Alternative tránh hoàn toàn ToS issue: Dùng Google Search Console API official (free) cho ranking của site bạn own, hoặc Google Custom Search JSON API ($5/1000 query) cho data từ ngoài. Self-host scraper là gray area - chỉ làm cho client có hợp đồng + small scale.

6. Use case: agency 100 keyword 10 client

Setup:

  • 10 TND IPv4 dedicated US (1 IP per client): 950k/tháng
  • 1 VPS nhỏ chạy scraper cron daily: 199k/tháng (TND Cloud VPS 20)
  • Database PostgreSQL store history
  • Dashboard Grafana hoặc Metabase show ranking trend
  • Tổng infra: ~1.2M VND/tháng cho 10 client × 100 keyword = 1000 SERP/ngày

So với SaaS AccuRanker $129/mo × 10 client / tháng = $1290 = ~32M VND - tiết kiệm 26x.

7. ToS compliance Google SERP scraping

Google ToS không cho phép automated scraping /search endpoint. Tuy nhiên thực tế:

  • Scrape small-scale (100-1000 query/day) với delay polite: Google không bother
  • Bulk scrape (10k+ query/day) bị block + CAPTCHA persistent
  • Vẫn rủi ro nếu Google muốn enforce

Legal alternatives:

  1. Google Search Console API: Free, official, nhưng chỉ data của site bạn own
  2. Google Custom Search JSON API: Paid ($5/1000 query), official, data SERP đầy đủ
  3. SerpApi / DataForSEO: Paid API, họ scrape thay bạn, tuân thủ rate limit

Khuyến nghị: dùng SerpApi/DataForSEO ($50-100/mo) cho production agency, scraper self-host chỉ cho R&D + small client.

Tổng kết

Track SERP multi-country cần proxy IPv4 từ country target. SaaS (SerpFox, Nightwatch) tier $10-32 + 1-2 TND IPv4 đủ cho freelancer. Agency 100+ keyword/client nên self-host hoặc dùng SerpApi. Tuân thủ ToS Google bằng polite scraping (delay 8-12s, rotate UA, không bulk). TND IPv4 dedicated cố định lâu dài + clean reputation phù hợp cho SERP tracking.

Tham khảo thêm:

Mua Proxy IPv4 Dedicated US + VN tại TND

Flat 95.000 VNĐ/IP/tháng. Fresh IP dedicated cho SERP tracking: IP cố định, clean reputation (verify AbuseIPDB <5%), không bị Google flag bulk. Unlimited traffic. Setup 60 giây.

Mua proxy tại TND
Xem chi tiết

Tham gia nhóm Vibe Coder Việt Nam

Bạn đang code cùng Claude, Codex, Gemini, Cursor hay Windsurf? Vào nhóm Facebook để trao đổi tip, debug giúp nhau, chia sẻ workflow vibe coding, và update tool mới mỗi tuần. Cộng đồng dev tự host stack đang grow nhanh tại Việt Nam.

Join nhóm trên Facebook

Chia sẻ bài viết