Анализ логов сервера в SEO
Сервер записывает каждый запрос к сайту в специальный файл - лог. Там видно, кто пришел, куда и что получил в ответ. Для SEO логи - это единственный способ увидеть, как поисковый робот обходит сайт.
Сначала разберемся, где взять логи.
Обычно они лежат на сервере в
директории /var/log/nginx/ или
/var/log/apache2/:
ls /var/log/nginx/
access.log
error.log
Нам нужен access.log - журнал
доступа. Каждая строка - один запрос.
Скачаем его на локальную машину:
scp user@example.com:/var/log/nginx/access.log ./access.log
Посмотрим первые строки:
head -n 3 access.log
66.249.66.1 - - [12/Sep/2026:10:00:01 +0300] "GET /catalog/ HTTP/1.1" 200 5120 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
93.180.10.5 - - [12/Sep/2026:10:00:02 +0300] "GET /about/ HTTP/1.1" 200 3210 "https://example.com/" "Mozilla/5.0 (Windows NT 10.0)"
66.249.66.1 - - [12/Sep/2026:10:00:03 +0300] "GET /old-page/ HTTP/1.1" 404 180 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Формат строки такой: IP, дата, метод, URL, статус, размер, реферер, user-agent. Из этого уже можно делать выводы.
Как отличить робота от пользователя
Робот - это тоже HTTP-клиент, и представляется он в поле user-agent. Смотрим последнюю часть строки. Вот робот Google:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
А вот робот Яндекса:
Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
Важно: user-agent легко подделать.
Настоящий робот приходит с
определенных IP-адресов. У Google
это диапазоны "66.249.*.*",
у Яндекса - "5.255.*.*" и другие.
Проверить IP можно обратным DNS:
host 66.249.66.1
1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
Если в имени есть "googlebot.com"
или "yandex.ru" - это
настоящий робот. Если нет - обычный
пользователь или парсер.
Проблемы с обходом
Теперь отфильтруем только робота Google и посмотрим, что он делает:
grep "Googlebot" access.log > googlebot.log
wc -l googlebot.log
1240 googlebot.log
1240 запросов за сутки. Если
раньше было 5000 - обход
упал. Найдем все ответы 5xx -
это ошибки сервера, из-за них
робот уходит:
grep "Googlebot" access.log | grep " 5"
66.249.66.1 - - [12/Sep/2026:10:01:10 +0300] "GET /catalog/ HTTP/1.1" 500 0 "-" "Googlebot/2.1"
Статус 500 - сервер сломался.
Робот повторит запрос, но если
ошибка постоянная, страница
выпадет из индекса.
Еще одна проблема - медленные
страницы. В логах Nginx время
запроса пишется в конце строки,
если включен параметр $request_time.
Ищем запросы дольше 2 секунд:
awk '$NF > 2' access.log
Если робот ждет ответа слишком долго, он снижает частоту обхода. Сайт начинает реже индексироваться.
Битые ссылки
Робот ходит по ссылкам и находит
404. Посмотрим, какие URL
отдают этот статус:
grep "Googlebot" access.log | grep " 404" | awk '{print $7}' | sort | uniq -c | sort -rn
5 /old-page/
3 /catalog/removed-item/
Страница /old-page/ отдает
404, но робот ходит туда
5 раз. Значит, где-то на сайте
осталась ссылка на нее. Найдем
источник - смотрим реферер:
grep "/old-page/" access.log | grep "Googlebot"
66.249.66.1 - - [12/Sep/2026:10:00:03 +0300] "GET /old-page/ HTTP/1.1" 404 180 "https://example.com/catalog/" "Googlebot/2.1"
Реферер - /catalog/. Идем туда,
находим битую ссылку и чиним.
Либо ставим редирект 301, если
страница переехала.
Практические задачи
Расскажите, зачем SEO-специалисту анализировать логи сервера.
Дан фрагмент лога:
66.249.66.1 - - [12/Sep/2026:10:00:01 +0300] "GET /catalog/ HTTP/1.1" 200 5120 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
93.180.10.5 - - [12/Sep/2026:10:00:02 +0300] "GET /about/ HTTP/1.1" 200 3210 "https://example.com/" "Mozilla/5.0 (Windows NT 10.0)"
5.255.253.10 - - [12/Sep/2026:10:00:03 +0300] "GET / HTTP/1.1" 200 4200 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
Определите, какие строки принадлежат поисковым роботам, а какие - пользователям. Объясните, как вы это поняли.
Дан фрагмент лога:
66.249.66.1 - - [12/Sep/2026:10:05:01 +0300] "GET /page/ HTTP/1.1" 500 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.66.1 - - [12/Sep/2026:10:06:01 +0300] "GET /page/ HTTP/1.1" 500 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.66.1 - - [12/Sep/2026:10:07:01 +0300] "GET /page/ HTTP/1.1" 500 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Что происходит с этой страницей и чем это грозит сайту?
Дан фрагмент лога:
66.249.66.1 - - [12/Sep/2026:10:10:01 +0300] "GET /removed/ HTTP/1.1" 404 180 "https://example.com/blog/" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Какой статус получил робот, откуда он пришел на эту страницу и что нужно сделать разработчику?
Придумайте команду терминала,
которая найдет все запросы
робота Google с ответом 404
в файле access.log.