Ваши позиции не существуют в вакууме — они двигаются, потому что двигаются конкуренты. Фиксация всей выдачи по вашим ключевым словам показывает, кто набирает обороты, кто новичок и какие элементы (сниппеты, паки) владеют страницей. Вот как это сделать с serp.cheap.
Захватите всю страницу результатов
import requests, datetime
def serp_snapshot(keyword, gl="us"):
data = requests.post(
"https://api.serp.cheap/v1/search",
headers={"X-API-Key": "YOUR_KEY"},
json={"q": keyword, "gl": gl},
timeout=30,
).json()
return {
"date": datetime.date.today().isoformat(),
"keyword": keyword,
"ranking": [(r["position"], domain_of(r["link"])) for r in data["organic"]],
}
def domain_of(url):
from urllib.parse import urlparse
return urlparse(url).netloc.replace("www.", "")
Обнаруживайте изменения
Сохраняйте снимки и сравнивайте последовательные дни:
def new_entrants(today, yesterday):
seen = {d for _, d in yesterday["ranking"]}
return [(pos, d) for pos, d in today["ranking"] if d not in seen]
Это выявляет конкурентов, которые только что прорвались в топ результатов по важному для вас ключевому слову — ранний сигнал, достойный оповещения.
Что отслеживать
- Долю в топ-10 по каждому конкуренту во времени.
- Новичков, прорывающихся на страницу.
- Волатильность позиций — ключевые слова, где выдача часто перетасовывается.
- Элементы выдачи — отслеживайте, не оттесняет ли featured snippet или пак органику вниз.
Сохраняйте низкую стоимость
Это один запрос на ключевое слово на рынок. Ежедневный мониторинг 200 ключевых слов ≈ $0.12/день при свежих запросах, меньше с попаданиями в кэш. Никаких SaaS-сборов за каждое ключевое слово, и исторические данные принадлежат вам.