Первое: забудь про людей. Не буквально, конечно – просто их вкус тут не поможет. Всё, что кажется «вкусным» для нас – красивая верстка, вдохновляющий текст, фоточки котиков в хедере – машине по барабану. Она не «видит», она считывает. И если твой сайт не укладывается в её математические ожидания – ну, считай, ты уже на задворках.
Проверь, что внутри, а не снаружи
Ты ведь знаешь этих ребят, которые на вид – бизнесмены, костюм, айфон, кофе за 500, а заходишь в их сайт – а там дивы без классов, меню без логики и редиректы через костыль на JS. Робот не в восторге. Он ждёт структуру. Четкую, предсказуемую, как метро в Токио. Всё должно быть по местам – от title до последней aria-label. Пропусти хотя бы одну мелочь – и всё, он уже не уверен, что ты достоин дружбы.
Не думай, что один файл ничего не решает
robots.txt. Маленький, серый, скучный. Но с характером. У меня был кейс: клиент жалуется – мол, трафик сдох, как хомяк без воды. Смотрим: Disallow: / прямо в лицо. Кто поставил? Никто. Когда? Непонятно. Почему? Вот и я спрашиваю. Робот заходит – а ему сказали «уходи». Ну он и ушёл. И больше не вернулся.
Проваливайся в код, а не в дизайн
Когда я говорю «проваливайся», я не имею в виду, что надо ковыряться в каждой строчке. Но, чёрт возьми, микроразметка должна быть. Без неё ты как ресторан без меню. Ты вроде есть, а что внутри – непонятно. У тебя есть отзывы? Покажи это! У тебя есть карточки товаров? Опиши их языком схем.org. Машина любит, когда ты ей напрямую говоришь, что ты за фрукт.
Скорость – не абстракция, а фактор выживания
У тебя может быть сайт мечты, а если он грузится, как старый Windows XP с флешки – всё, прощай. Бот ждёт недолго. Особенно мобильный. А ты думал, Google будет по 12 секунд ждать, пока твой шрифт из Тайваня загрузится? Он просто уйдёт. И будет прав. Совет: прогоняй через PageSpeed, и не ради оценок, а чтобы понять, где ты косячишь.
Да, и ещё: не строй лабиринты
Когда навигация превращается в квест – ты проиграл. У меня был сайт, где нужно было пройти через три «О компании», чтобы дойти до «Контактов». Представь себе машину, которой надо это обойти. Она не человек, ей лень. Она просто уходит. И всё – ты стал ещё одним невидимым сайтом среди тысяч.
Если коротко…
…тебя оценивают по тому, что ты оставил под капотом. Не по обложке. Не по рекламе. А по тому, как ты общаешься с механизмом – честно ли говоришь, понятно ли выкладываешь, удобно ли перемещаться. Так что думай не о том, как «понравиться», а о том, как не бесить.
Ну что, поехали разбирать дальше?
Проверка доступности и отклика страниц для поискового робота
Сразу: проверь, что страницы не глухие к запросам
Серьёзно, нет смысла обсуждать мета-теги и структуру, если страница просто не отвечает. Это как звать человека в соседней комнате, а он в наушниках и под одеялом – вроде рядом, а связи ноль. Бери любой тул, типа httpstatus.io или Redirect Checker, и просто пробеги по URL’ам. 200? Окей. 301? Приемлемо. 403 или 500? Ну ты понял.
Нет времени – curl и go
Да, браузер – это красиво. Но у бота нет глаз, ему текст не нужен, ему главное – отклик. Открывай терминал и кидай:
curl -I https://твойдомен.ру/страница
Если в ответ что-то типа HTTP/1.1 200 OK
– живём. Если 403 Forbidden
или 503 Service Unavailable
– зови админа. Или, если ты сам себе админ – открой лог и не паникуй.
Скорость: не только для людей
Пауза больше 2-3 секунд? Бот может психануть и уйти, особенно если он с утра не пил кофе. Проверь Time to First Byte (TTFB). Можешь прямо в KeyCDN глянуть. Или через curl:
curl -o /dev/null -s -w "%{time_starttransfer}\n" https://твойдомен.ру/
Если цифра больше 1 секунды – это не просто “замедление”, это тревожный звоночек. Пример: один знакомый держал блог на VPS с автогенерируемыми PNG прямо в рендере – и каждый бот-обход занимал по 5 секунд. Почему сайт не индексировался? Ну ты понял.
Робот встречает по robots.txt
Вот где всё начинается. Проверка доступности – это не только HTTP-статусы. Бывает, страница открывается нормально, а в /robots.txt
чёрным по белому:
User-agent: *
Disallow: /
Бум. И всё. Можно с ума сойти от того, как просто забыли удалить временный запрет. Был случай: разработчики запускали обновление каталога, закрыли доступ… и забыли. Трафик – в минус на 80%. Неделя истерики.
Случайная проверка спасает больше, чем автоматизация
Серьёзно. У тебя может быть миллион скриптов и мониторингов, но ничего не заменит то, что ты сам, в пятницу вечером, проверишь пару URL вручную. Просто ткнись curl’ом или открой в приватке, без куки. Иногда именно в этот момент ты заметишь, что страница отваливается по какой-то безумной причине. Например, Cloudflare решил, что бот – зло. Или что-то с CDN. Или ты сам поставил geo-блокировку и забыл.
Хардкор? Проверь HEAD-ответ
Иногда GET – это много. А вот HEAD
показывает суть. Минимум тела, максимум инфы. Бот ведь не всегда хочет читать, иногда ему просто нужно узнать, жив ли ты.
curl -I -X HEAD https://твойдомен.ру/страница
Нет тела – нет лишних слов. Это как спросить “Ты здесь?” – и услышать “Ага” сквозь стену.
И да, кеш тоже влияет
Вот сюрприз: слишком агрессивный кеш может отдавать не то. Или не тем. Или вообще не отдавать. Проверь заголовки:
cache-control: no-store
или
expires: Wed, 21 Oct 2015 07:28:00 GMT
Что? Почему 2015? Кто писал это правило? Зачем?
Был сайт, у которого всё было нормально: и коды 200, и robots.txt открытый, и sitemap.xml в порядке. Но Googlebot не заходил. Вообще. Оказалось – на уровне хостера стоял WAF, который резал любые user-agent’ы со словом “bot”. Потому что “безопасность”. Ну ты понял.
Проверь всегда сам. Всегда. Ни мониторинг, ни скрипт, ни младший разработчик – никто не даст тебе такого спокойствия, как ручной запрос и честный 200.
Анализ структуры внутренних ссылок с точки зрения краулинга
Сначала – разберись, что видит бот
Забей на красивости. Сколько у тебя там перелинковок на глаз – неважно. Смотри глазами краулера. Это тупая машина, у неё нет вкуса. Она идёт по ссылкам, как по плитке в метро: есть переход – идёт, нет – сворачивает.
Так вот. Если какая-то важная страница у тебя лежит где-то на десятом клике от главной – можешь смело считать, что она в подвале сайта. Не потому что она плохая. А потому что туда не доходит никто. Ни человек, ни бот.
Глубина – враг индексации
Вот ты сделал отличный лонгрид про «секретные фишки WordPress», спрятал его в третий уровень вложенности – и удивляешься, почему он не в выдаче. Да потому что он там, где мрак и забвение. Страница живёт – но в темноте.
Хочешь, чтобы краулер туда добрался? Укороти путь. Влепи ссылку с главной. Или с тех страниц, которые всегда в индексе. Чем меньше кликов от корня – тем выше шанс, что её не проигнорят.
Заметил это на своём проекте
У клиента – сервис по иммиграции. Крутой контент, но половина не индексируется. Оказалось, что весь раздел с инструкциями был закопан в фильтры и псевдоссылки на JS. Добавили обычные текстовые линки – и вот, всё пошло. Кстати, кто хочет реально разобраться, посмотри вот эту штуку – коротко, по делу, без воды. Мы с неё начали всё чинить.
Табличка – пригодится
Элемент | Хорошо | Плохо |
---|---|---|
Глубина ссылки | 1–3 клика от главной | 5+ кликов, скрытые цепочки |
Тип ссылки | Обычный <a href> | JS-генерируемая, onclick |
Контекст | Логичен, осмысленный анкор | «нажми сюда», без контекста |
Тыкаешь пальцем – и оно работает
Слушай, я реально делал такую штуку: открывал карту сайта Screaming Frog’ом, рисовал на бумажке уровни и стрелки – и руками показывал, как краулер скачет. Тупо, но работает. Это почти как играть в «Героев 3», только вместо замков – урлы, а вместо юнитов – ссылки. Весело? Ну, не совсем. Зато видно, где затыки.
И последнее – не лепи ссылки просто так
Да, можно засунуть кучу линков в футер. Или сделать блок «популярное» на всех страницах. Но если это не помогает понять структуру – пользы ноль. Смысла в перелинковке нет, если она – просто ковер.
Лучше – пусть их меньше, но точнее. Каждый переход – это сигнал. Хаотичность убивает смысл. Бот – не Шерлок, он не разгадывает, он просто идёт по маршруту.
Ну, вот как-то так. Без фантиков, но по-честному. Хочешь, чтобы страницы жили – не прячь их. Протяни им руку. Или хотя бы ссылку.
Оценка кода и технички: не обманывай бота
Сразу к делу: начни с <head>
Вот ты открыл исходник страницы, а там – винегрет. Один `