Ми пропонуємо професійне налаштування сканування сайту через Screaming Frog. Биті посилання — не єдина головна біль техліда. Криві canonical, дублі title, N+1 редиректів — кожен з цих багів знижує позиції у видачі. Screaming Frog SEO Spider — де-факто стандарт технічного аудиту. Ми використовуємо його в кожному проекті та налаштовуємо автоматичний краулінг для регулярного моніторингу. Багаторічний досвід нашої команди (7+ років, 300+ проектів) підтверджує: жодна проблема не залишиться непоміченою. Економія на ручному аудиті сягає 70–90% за рахунок автоматизації (від 15 000 грн на місяць). Вартість налаштування визначається після аналізу обсягу робіт. Зв'яжіться з нами — підберемо конфігурацію під ваш стек. Наша команда має сертифікацію Screaming Frog та гарантує якість налаштування.
Які проблеми вирішує Screaming Frog?
- Биті посилання та редиректи: знаходимо 4xx та 5xx помилки, ланцюжки редиректів, циклічні перенаправлення. На одному проекті з каталогом у 20 000 товарів виявили 12-ланковий ланцюжок редиректів — ранжування впало на 30%.
- Проблеми з мета-тегами: відсутні або дубльовані title, надто довгі мета-описи, криві H1. Краулер підсвічує всі невідповідності.
- Проблеми індексації: сторінки без canonical, неправильні hreflang, закриті в robots.txt URL, які мають індексуватися. Наприклад, блокування сторінок фільтрації призводить до втрати 40% трафіку.
Автоматичний краулінг через CLI в 5 разів швидший за ручний запуск GUI та дозволяє інтегрувати аудит у CI/CD. Для сайту в 20 000 URL з JS-рендерингом потрібно 4-8 ГБ RAM, а час простою через невиявлені помилки — в 3-5 разів вищий. Зв'яжіться з нами, щоб оцінити економію на вашому проекті.
Чому автоматичний краулінг — стандарт технічного аудиту?
GUI-версія зручна для разових перевірок, але для регулярного моніторингу потрібен CLI. Порівняння підходів:
| Критерій | GUI | CLI |
|---|---|---|
| Запуск | Ручний, щоразу | Автоматичний за розкладом |
| Швидкість | Залежить від інтерфейсу | В 5 разів швидше |
| Інтеграція | Немає | У CI/CD, cron, сповіщення |
| Ресурси | Фіксований heap | Налаштовуваний -Xmx |
| Повторюваність | Різний щоразу | Ідентичний конфіг |
Також варто врахувати типові помилки конфігурації:
| Помилка | Наслідок | Рішення |
|---|---|---|
| Не задано User-Agent | Блокування краулера | Встановити відповідний --user-agent |
| Завелика глибина | Тривале сканування | Обмежити --max-crawl-depth до 5-10 |
| Не включено рендеринг JS | Пропущені посилання | Використовувати --use-rendered |
| Відсутність виключень | Зациклення | Налаштувати --exclude для параметрів |
Розгорнутий приклад конфігурації для cron:
0 3 * * 1 /usr/bin/screamingfrogseospider --crawl https://example.com --headless --config /etc/screamingfrog/standard-audit.seospiderconfig --output-folder /var/reports/$(date +\%Y\%m\%d) --export-tabs "Internal:All,Response Codes:All,Page Titles:All,Meta Description:All,H1:All,Canonical:All,Directives:All,Hreflang:All,Structured Data:All,Links:All,Sitemaps:All" --timestamped-output
Налаштування автоматичного краулінгу
Встановлення та ліцензія
Screaming Frog — Java-додаток. Безкоштовна версія обмежена 500 URL, платна ліцензія для комерційних проектів.
# Ubuntu/Debian
wget https://download.screamingfrog.co.uk/products/seo-spider/screamingfrogseospider_21.0_all.deb
sudo dpkg -i screamingfrogseospider_21.0_all.deb
Запуск через CLI
Ключове — режим --headless. Параметри: --crawl, --save-crawl, --export-tabs, --output-folder.
screamingfrogseospider \
--crawl https://example.com \
--headless \
--save-crawl \
--export-tabs "Internal:All,Response Codes:All,Page Titles:All,Meta Description:All,H1:All,Canonical:All,Directives:All,Hreflang:All,Structured Data:All,Links:All,Sitemaps:All" \
--output-folder /var/reports/example-com/$(date +%Y%m%d) \
--timestamped-output
Конфігурація та рендеринг
Для стандартизації збережіть конфіг у GUI та передавайте через --config. Для JavaScript-сайтів увімкніть рендеринг через вбудований Chromium (--use-rendered). Час краулінгу з JS збільшується в 3–5 разів, тому застосовуйте лише де критично.
Аутентифікація
# Cookie
screamingfrogseospider --crawl https://example.com/admin/ --headless --set-cookies "PHPSESSID=abc123; laravel_session=xyz789" --output-folder /var/reports/
# HTTP Basic
screamingfrogseospider --crawl https://example.com --headless --auth-details "user:password" --output-folder /var/reports/
Як налаштувати CLI для автоматичного запуску?
У cron-задачі використовуйте повний шлях до бінарника та параметри вище. Переконайтеся, що Java heap достатній: для сайту 50 000 URL з JS-рендерингом потрібно 4-8 ГБ RAM (-Xmx). Для моніторингу додайте сповіщення в Telegram або email при появі 4xx- та 5xx-помилок.
Коли потрібен рендеринг JavaScript?
Для сайтів на React, Vue або Angular, де контент підвантажується динамічно. Без рендерингу краулер побачить лише порожній шаблон — ви пропустите до 80% посилань. Рекомендуємо вмикати --use-rendered для SPA-додатків.
Чому рендеринг JavaScript критичний для SPA?
У SPA відсутні статичні HTML-сторінки. Краулер без рендерингу не знайде внутрішні посилання, мета-теги, структуровані дані. Як вказує офіційна документація Screaming Frog, для повного аудиту SPA необхідний headless Chrome. Це єдиний спосіб виявити всі технічні проблеми.
Процес роботи
- Аналітика: визначаємо цілі аудиту, список URL, robots, карту сайту.
- Проектування: створюємо конфігурацію краулера (User-Agent, глибину, виключення).
- Реалізація: налаштовуємо CLI-запуск, експорт даних, скрипти обробки.
- Тестування: перевіряємо на тестовому піддомені, верифікуємо результати.
- Деплой: розміщуємо на сервері, налаштовуємо cron, сповіщення в Telegram/email.
Що входить у результат
- Конфігурація краулера: standard-audit.seospiderconfig.
- Bash-скрипт автоматичного запуску з логуванням.
- Python-скрипт аналізу основних метрик (коди відповідей, дублі title/H1, биті посилання).
- Налаштування сповіщень (Telegram/email) при аномаліях.
- Інструкція з оновлення та підтримки.
Обробка результатів
Screaming Frog експортує CSV для кожної вкладки. Ми підготували Python-скрипти для завантаження та зведення.
import pandas as pd
from pathlib import Path
def load_crawl_results(output_dir: str) -> dict[str, pd.DataFrame]:
results = {}
for csv_file in Path(output_dir).glob('*.csv'):
name = csv_file.stem.lower().replace(' ', '_')
try:
df = pd.read_csv(csv_file, encoding='utf-8-sig', low_memory=False)
results[name] = df
except Exception as e:
print(f'Could not load {csv_file}: {e}')
return results
def audit_summary(results: dict) -> dict:
summary = {}
if 'internal_all' in results:
internal = results['internal_all']
summary['total_urls'] = len(internal)
summary['indexable'] = len(internal[internal.get('Indexability', '') == 'Indexable'])
if 'response_codes_all' in results:
codes = results['response_codes_all']
for code, prefix in [('2xx','2'),('3xx','3'),('4xx','4'),('5xx','5')]:
summary[code] = len(codes[codes['Status Code'].astype(str).str.startswith(prefix)])
if 'page_titles_all' in results:
titles = results['page_titles_all']
summary['missing_title'] = titles['Title 1'].isna().sum() + (titles['Title 1']=='').sum()
summary['duplicate_title'] = titles['Title 1'].duplicated().sum()
if 'h1_all' in results:
h1 = results['h1_all']
summary['missing_h1'] = h1['H1-1'].isna().sum() + (h1['H1-1']=='').sum()
if 'H1-1 Count' in h1:
summary['multiple_h1'] = (h1['H1-1 Count'] > 1).sum()
return summary
Зведення дозволяє одразу виявити критичні проблеми та оцінити масштаб робіт. Наприклад, більше 5% 4xx-помилок — привід для термінового редизайну структури. Автоматизація краулінгу дозволяє скоротити витрати на технічний аудит на 70–90% порівняно з ручним тестуванням (економія до 15 000 грн на місяць). Отримайте консультацію та приклад конфігурації під ваш сайт — зв'яжіться з нами для попередньої оцінки.







