Автоматизація SEO-рутини: Парсинг даних та перевірка посилань за допомогою Puppeteer
У сучасному SEO швидкість отримання даних визначає успіх. Ручна перевірка сотень посилань чи моніторинг видачі — це втрата часу. Puppeteer, бібліотека Node.js для керування Headless Chrome, дозволяє повністю автоматизувати ці процеси.

Навіщо використовувати Puppeteer?

На відміну від простих HTTP-запитів, Puppeteer рендерить JavaScript, що критично для сучасних SPA-сайтів.
- Моніторинг видачі (SERP): Емуляція реального користувача для збору позицій.
- Перевірка індексації: Автоматизація запитів site:domain.com для контролю сторінок у Google.
- Скрапінг контактів: Масовий збір email та телефонів з сайтів конкурентів.
Технічний стек та швидкий старт
Для роботи вам знадобляться Node.js та встановлений пакет Puppeteer.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
// Приклад: Перевірка наявності посилання на сторінці
await page.goto('https://example-site.com');
const hasLink = await page.evaluate(() => {
return !!document.querySelector('a[href*="your-site.com"]');
});
console.log(hasLink ? "Посилання знайдено" : "Посилання відсутнє");
await browser.close();
})();Практичні кейси автоматизації
Якщо ви ведете список донорів і сторінок розміщення (і хочете швидко знаходити майданчики під конкретні тематики), зручно тримати це в seocatalog.com.ua. А Puppeteer далі використати для нічної перевірки: чи сторінка жива (200/301/404) і чи посилання не зникло.
Headless-аудит: Автоматичне виявлення 404 помилок на сторінках донорів.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const response = await page.goto('https://donor-site.com/backlink-page');
if (response.status() === 404) {
console.log('Помилка 404: Сторінку не знайдено, посилання втрачено.');
} else {
console.log(`Статус: ${response.status()}`);
}
await browser.close();
})();Обхід блокувань: Використання puppeteer-extra-plugin-stealth та проксі для уникнення капчі.
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
(async () => {
const browser = await puppeteer.launch({
args: ['--proxy-server=http://IP:PORT'], // Вкажіть ваш проксі
headless: true
});
const page = await browser.newPage();
// Авторизація проксі, якщо потрібно
// await page.authenticate({ username: 'user', password: 'password' });
await page.goto('https://google.com/search?q=seo+tools');
await page.screenshot({ path: 'search_result.png' });
await browser.close();
})();Збір даних для LeadGen: Автоматизація переходу по сторінках «Контакти» та витягування даних у Google Sheets через API.
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://competitor.com/contacts');
const contacts = await page.evaluate(() => {
const text = document.body.innerText;
const emails = text.match(/[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+/g);
return [...new Set(emails)]; // Тільки унікальні
});
console.log('Знайдені контакти:', contacts);
// Тут викликається функція для Google Sheets API
await browser.close();
})();Етика та Google-френдлі підхід
Щоб ваші скрипти були «екологічними», завжди дотримуйтесь лімітів запитів та поважайте правила robots.txt. Автоматизація має на меті оптимізацію ресурсів, а не створення надмірного навантаження на сервери.

Останні статті

CRM автоматизація: як прибирати дублікати лідів і ставити пріоритет менеджеру
CRM автоматизація часто починається не з купівлі великої CRM, а з менш романтичної задачі: прибрати дублікати лідів і зрозуміти, які заявки справді потребують швидкої ре…

AI помічник для продажів: summary клієнта перед дзвінком
Менеджер рідко провалює перший дзвінок через те, що не вміє говорити з клієнтом. Частіше проблема простіша: перед очима є тільки ім'я, телефон і короткий коментар із…

Автоматизація обробки замовлень: форма, Google Sheets, Telegram і статуси
Коли замовлення приходять із сайту, Google Forms, Telegram і дзвінків, хаос починається не в коді. Він починається в момент, коли незрозуміло, хто взяв заявку, чи підтве…

Автоматизація рахунків: як перетворити PDF і фото в дані Google Sheets
Рахунки, акти й квитанції рідко приходять у зручному форматі. Один постачальник надсилає PDF на пошту, другий кидає фото в Telegram, третій прикріплює скан до заявки. А…

Коли скрипт «втомився»: Налаштування моніторингу та сповіщень про помилки в Telegram
Найнеприємніший збій в автоматизації — не той, який “красиво впав”. А той, який стався тихо, без сигналу, і кілька днів жив собі окремим життям, поки ви були впевнені, щ…

Аналітик на стероїдах: Як змусити ШІ робити висновки з твоїх таблиць за 1 клік
У вас є таблиця на 500 рядків. Дата, товар, сума, клієнт, канал, ще якісь цифри. Формально дані є. Практично — це просто масив чисел, який не відповідає на головне питан…