Перейти к основному содержимому
megapromotingДавайте обсудим

Экспертиза · SEO

Оптимизация для классических поисковых систем: мы проходим каждый адрес, помещаем результат в таблицу и исправляем то, что можно проверить.

Техническое и структурное SEO — индексируемость, канонические адреса, карта сайта, сгенерированная из данных, перенаправления, заголовки и описания, тонкий контент, скорость, измеренная в байтах. Без обещаний позиций.

Уже построеноДве собственные реализации, обе открыты на диске. Первая: аудит этого сайта — 249 пройденных адресов с прямыми запросами, 23 столбца на адрес, результат в версионированном табличном файле рядом с кодом, плюс исправления, которые из него вышли (канонический адрес, решённый раз и навсегда для всех маршрутов, адрес для шаринга, карта сайта, сгенерированная из данных). Вторая: `mega-seo-analyzer`, собственный анализатор с 16 модулями анализа и взвешенным баллом, явно записанным в коде. Чего мы не можем утверждать и не будем писать: полученные позиции или проценты роста. У нас нет публикуемых измерений для такого.

Классическое SEO — это работа по инвентарю, а не по идеям. Поисковая система должна иметь возможность добраться до каждой страницы, понять, какая у неё официальная версия, получить заголовок и описание, которые не повторяются, и найти достаточно контента, чтобы заслужить место в списке. Почти всё, что здесь ломается, можно посчитать, а то, что можно посчитать, можно исправить.

Поэтому мы начинаем с полного обхода, а не с выборки. На этом сайте получилось 249 адресов, каждый с 23 столбцами: код ответа, канонический адрес, заголовок, описание, hreflang, число блоков структурированных данных, объём видимого текста и остальное. Результат — табличный файл, версионируемый рядом с кодом, так что каждое утверждение ниже можно воспроизвести командами из приложения к отчёту.

Что вышло: 244 адреса отвечают 200, и пять перенаправляют. 131 страница не имела канонического адреса. 219 из 244 объявляли главную страницу адресом для шаринга, так что любой распространённый линк вёл на неверную страницу. 100 заголовков превышали 60 символов, самый длинный — 106. 65 страниц делили одно описание, сгенерированное из шаблона. 96 страниц имели менее 2.000 символов видимого текста. Первые две проблемы были исправлены по одной строке в базовой настройке, которая применяется к каждому маршруту; остальные в рабочем списке, с указанным приоритетом.

Эта страница — одна из трёх. SEO занимается системами, которые возвращают список ссылок. Видимость в ответах, генерируемых моделями, — это другое и у неё своя страница, потому что она контролируется иначе и — важно — её нельзя обещать. Прямые ответы и структурированные данные — это третье. Общее у всех трёх: страница должна быть доступна, рендериться на сервере и иметь один официальный адрес. Эта часть делается один раз и работает для всех.

Что входит

Работа, по составляющим

Мы проходим каждый адрес, а не выборку

Прямые запросы к каждому известному адресу, без следования перенаправлениям, максимум шесть одновременных запросов, чтобы не беспокоить сервер, и 23 столбца на адрес: код, канонический адрес, заголовок, описание, hreflang, число блоков структурированных данных, объём видимого текста. Результат — табличный файл, который мы передаём. На этом сайте: 249 адресов, из которых 244 отвечают 200 и 5 перенаправляют.

Официальный адрес страницы, решённый один раз для всего сайта

131 страница не объявляла никакого канонического адреса, а 219 из 244 объявляли главную страницу адресом для шаринга — значит, любая публикация в сетях показывала другую страницу. Обе проблемы были исправлены одной относительной декларацией в базовой настройке, которая разрешается для каждого маршрута отдельно. Это одна строка кода вместо соглашения, которое каждая новая страница должна была бы сама помнить.

Карта сайта, сгенерированная из данных, проверенная после публикации

Карта строится из источников контента и проходит финальное удаление дублей — на этом сайте 147 адресов, та же цифра в коде и в файле, который отдаётся в production. Скрипт, запущенный после публикации, падает, если карта теряет страницу или если появляются варианты адреса, которые не открываются. Что сегодня отсутствует, как отсутствие: записи не содержат дату последнего изменения, а 93 индексируемых адреса ещё не включены.

Старые адреса получают каждое своё решение

При реструктуризации каждый существующий адрес получает вердикт: остаётся, перенаправляется постоянно или исчезает. На этом сайте получилось 43 перенаправления в конфигурации. Отдельно проверены и вещи, которые никто не тестирует: переход с домена без `www` на домен с `www` один; адрес с завершающим слэшем перенаправляется правильно; адрес, написанный заглавными буквами, возвращает 404, значит дубликата записи нет.

Заголовки, описания и тонкий контент, посчитанные

100 заголовков из 244 превышают 60 символов, самый длинный — 106, риск в том, что они будут обрезаны в результатах. 33 описания превышают 160 символов, но ноль отсутствуют. Более серьёзно: 65 страниц делят одно описание, сгенерированное из шаблона, а 30 из них отличаются между собой в общей сложности на 240 байт. Медиана видимого текста: 2.328 символа, при этом 96 страниц ниже 2.000. Это цифры, а не впечатления, и за каждой стоит список адресов.

Собственный анализатор, с модулями и весами, записанными в коде

Наш анализатор имеет 16 модулей — по странице, производительность, карта сайта, безопасность, доступность, инфраструктура имён, сведения о регистрации домена, внешние ссылки, социальные сети, технический стек, позиции, исследование ключевых слов, общий аудит — плюс модули сравнения: поиск конкурентов, разница ключевых слов, разница контента, ориентиры. Общий балл явно взвешен в коде: производительность 0,20, SEO 0,20, по странице 0,15, безопасность 0,15, прямые ответы 0,10, доступность 0,10, социальные сети 0,10. Модули, которые дают сбой, не тянут оценку вниз — они выходят из взвешивания, чтобы упавший внешний сервис не создавал ложный отчёт.

Редиректы, которые не стоят целой страницы

Редирект, сделанный изнутри приложения, сначала строит страницу и только потом отправляет ответ с редиректом. На этом сайте есть 11 таких случаев, и каждый производит более 200 KB HTML, прежде чем сказать «перейдите в другое место». Это работает, но это расточительно; перенос их в конфигурацию — небольшая работа с прямым эффектом на бюджет обхода. Это в списке исправлений, записано как отсутствие.

Что видит crawler, проверено crawler-ом, а не предположено

Мы запросили пять адресов с 18 разными идентификаторами агентов и сравнили код, размер и отпечаток нормализованного содержимого. Все получают 200 и точно такое же содержимое, как браузер; `robots.txt` идентичен, 129 байт, для всех; нет блокировки, проверки или ограничения для краулеров. Единственное воспроизводимое различие — на 237 байт меньше на динамической странице, для трех агентов — исходит из самого фреймворка, который отправляет им полный нестриминговый HTML, то есть больше готового отрендеренного содержимого, а не меньше.

Что мы не обещаем, написано до контракта

Мы не обещаем позиции, проценты роста или число визитов. У нас нет публикуемых измерений для такого, и мы не выдумываем. Что мы поставляем, проверяется иначе: список адресов с состоянием каждого, выполненные исправления, проверка, запущенная после публикации, и измеримая разница между состоянием до и после — в байтах, кодах и числах страниц, а не в обещаниях.

Как это выглядит

Путь, шаг за шагом.

01

Полный обход и таблица состояния

Первая поставка — это табличный файл с каждым адресом и его состоянием по 23 колонкам, плюс команды, которые его воспроизводят. Отсюда и дальше любой разговор имеет строку за спиной. Это и момент, когда находятся адреса, о существовании которых никто не знал.

02

Структурные исправления, в порядке влияния

Сначала то, что решается в одном месте и применяется везде: канонический адрес, адрес для шаринга, поведение страницы ошибки, правила для роботов. Потом то, что требует работы на странице: заголовки, описания, тонкий контент. Порядок не обсуждается — наоборот, вы вручную исправите сотню страниц ради того, что решалось одной строкой.

03

Карта сайта и редиректы

Карта привязана к источникам данных, чтобы новая страница попадала туда сама. Старые адреса получают постоянные редиректы в конфигурации, а не внутри приложения. Мы поставляем полный список решений, адрес за адресом.

04

Проверка, которая остаётся после нас

Мы поставляем скрипт, запускаемый после каждой публикации, который падает, если канонический адрес исчез, если карта сайта потеряла страницу или если `robots.txt` начал блокировать ресурсы рендеринга. Без него исправления размываются за несколько месяцев, и никто не замечает этого до следующего аудита.

05

Измерение, с вашими инструментами

Если у вас есть Search Console и инструмент аналитики, мы строим отчётность поверх них и определяем, что отслеживаем. Если их нет, первый шаг — чтобы они были, и мы говорим это заранее, а не потом. Чего мы не делаем: не отчётируем позиции из стороннего инструмента так, будто это данные из источника.

Сайт как территория, проверки как слои поверх неё1cod de răspuns2adresă canonică3titlu și descriere4date structurate5volum de text249 de adrese, 23 de coloane, un singur fișier tabelar.
Сайт как территория, проверки как слои поверх неё

Данные

К чему прикасаемся, где оно лежит и сколько остаётся

Вопросы, которые задаёт всякий, у кого есть ответственный за защиту данных, — заданы здесь раньше, чем их задаст он.

Что мы читаем с вашего сайта
Только публичное: HTML страниц, заголовки ответов, `robots.txt`, карта сайта. Прямые запросы, с ограниченным ритмом — максимум шесть одновременно, чтобы обход не выглядел как атака. Нам не нужен доступ к администрированию для части аудита.
Что нам нужно от вас, если вы хотите и часть измерения
Доступ на чтение к консоли поиска и инструменту анализа трафика. Без них мы можем сказать, что технически не так, но не что происходит в результатах. Аудит этого сайта был сделан намеренно без такого доступа, и ограничение явно указано в документе — чтобы никто не путал техническое измерение с измерением трафика.
Где хранятся результаты
Табличный файл с обходом и письменный отчет хранятся в репозитории проекта, версионируются рядом с кодом. Не в презентации и не в инструменте с подпиской, из которого их уже не вытащить. Когда цифра меняется, в истории файла видно, кто и когда ее изменил.
Срок хранения отчетов
Они живут, пока живет репозиторий проекта. Обходные данные по определению публичны — это ваши страницы, как их видит любой. Если аудит затрагивает зоны, которые требуют аутентификации, отдельно определяется, что сохраняется и на какой срок.

Случай

249 адресов, 23 столбца и две строки кода, которые исправили 350 страниц

Ситуация

Недавно перестроенный сайт, примерно с 250 публичными адресами. Все отвечали 200, и ничего не казалось неправильным. Стартовый вопрос был не «как увеличить трафик», а «что каждая страница заявляет о себе».

Что мы построили

Мы обошли каждый адрес прямыми запросами, без следования перенаправлениям, максимум с шестью одновременными запросами, и для каждого записали 23 столбца в табличный файл, версионированный рядом с кодом. Поверх него мы запустили отдельные проверки: кто объявляет какой канонический адрес, кто объявляет какой адрес для шаринга, какова длина заголовков и описаний, сколько страниц делят одно и то же шаблонное описание, сколько видимого текста есть у каждой, что сервер отвечает на 18 разных идентификаторов агента, что он дает по сжатию и протоколу. Каждая цифра была прочитана из реального ответа, а не выведена из конфигурации.

Что получилось

244 адреса отвечают 200, пять перенаправляют. 131 страница не объявляла канонический адрес; 219 из 244 объявляли главную страницу как адрес для шаринга. Оба случая были исправлены одной относительной декларацией в базовой разметке — двумя строками, которые применяются к каждому маршруту, вместо исправления на каждой странице. Остальные выводы вошли в план из одиннадцати шагов, в порядке влияния: 100 заголовков длиной более 60 символов, 65 страниц с шаблонным описанием, 96 страниц с менее чем 2.000 символов текста, 93 отсутствующих индексируемых адреса в карте сайта, 11 перенаправлений, сделанных внутри приложения.

Чего этот случай не говорит

Аудит был выполнен без доступа к консоли поиска и без данных о трафике, намеренно, и ограничение записано в отчете: мы можем сказать, что технически не так, а не что происходит в результатах. Из одиннадцати шагов плана два применены сегодня; остальные — открытые работы, а не отмеченные. Отчет, который объявляет все шаги завершенными в день, когда они были написаны, — это не отчет.

Вопросы

О чём нас спрашивают перед тем, как позвонить

В чем кратко разница между SEO, GEO и AEO?

Аудитория разная. SEO обращается к поисковым системам, которые возвращают список ссылок — ваша страница появляется, человек кликает. GEO обращается к генеративным моделям, которые составляют ответ и могут цитировать источник; там нет позиции и нет гарантии, поэтому работают над тем, что можно контролировать, а не над результатом. AEO обращается к прямым ответам — извлеченному фрагменту, информационной панели, голосовому ответу — и опирается на корректные структурированные данные. Основа общая: доступная страница, отрендеренная на сервере, с одним официальным адресом. Эта часть делается один раз.

Что вы фактически поставляете в SEO-аудите?

Табличный файл с каждым адресом сайта и его состоянием по 23 столбцам — код ответа, канонический адрес, заголовок, описание, hreflang, блоки структурированных данных, объем текста — плюс письменный отчет с выводами в порядке влияния, каждый с местом в коде, критерием и исправлением. И команды, которые воспроизводят каждую цифру. У этого сайта получилось 249 строк; он прямо в репозитории, рядом с кодом.

Вы гарантируете первое место?

Нет, и никакое конкретное место тоже. У нас нет публикуемых измерений для результатов такого типа, и мы их не выдумываем. Что мы можем показать — это проверяемая разница: сколько страниц не имели канонического адреса до этого и сколько имеют сейчас, сколько неверно указывали адрес для шаринга, сколько старых адресов остались без перенаправления. У этого сайта цифры были 131 и 219 из 244 соответственно. Это факты; обещанное место — нет.

Откуда вы знаете, что то, что вы исправляете, остается исправленным?

Из скрипта, который запускается после каждой публикации, проверяет канонические адреса, якоря контента, карту сайта и `robots.txt`, и падает, если что-то исчезло. SEO-исправления размываются точно так же, как и любая другая неписаная конвенция: кто-то добавляет новую страницу, забывает декларацию, и никто не замечает до следующего аудита. Скрипт замечает сразу.

У вас собственные инструменты или вы используете подписки?

И то и другое имеет смысл, но технический анализ мы делаем с помощью собственного анализатора: 16 модулей — по странице, производительности, карте сайта, безопасности, доступности, инфраструктуре имен, регистрации домена, внешним ссылкам, социальным сетям, техническому стеку, позициям, ключевым словам — плюс модули сравнения с конкурентами. Общий балл имеет веса, прописанные в коде, а не скрытые: производительность и SEO по 0,20, по странице и безопасность по 0,15, остальные по 0,10. Модуль, который не срабатывает, выходит из взвешивания вместо того, чтобы давать ложный балл.

Что вы делаете со ста почти одинаковыми страницами?

Мы отмечаем их как риск, а не как возможность. На этом сайте 100 из 147 адресов в карте — это комбинации услуга × домен, а 65 страниц делят одно шаблонное описание — 30 из них отличаются между собой в общей сложности на 240 байт. Поисковая система рассматривает это как контент, произведенный в масштабе, и риск здесь — санкция, а не плюс к видимости. Решение — реальный контент на каждой странице или меньше страниц. Мы не рекомендуем генерацию страниц как стратегию.

Важна ли скорость для SEO?

Важна, но не в том виде, в котором ее обычно продают. Мы не даем вам лабораторный балл, потому что его легко сдвинуть, и он не показывает, что переживает посетитель. Мы даем измеренные байты: сколько весит сжатый HTML, что передается при каждой навигации, что содержат пакеты JavaScript, предлагает ли сервер современное сжатие и новый протокол. На этом сайте: не предлагает ни Brotli, ни HTTP/2, каталог переводов стоит примерно 70 KB в сжатом виде при каждой навигации, а пакет в 443 KB содержит четыре языковых каталога, из которых используется только один. Все три находятся в списке на исправление.

Блокируете ли вы краулеры искусственного интеллекта?

Это решение владельца сайта, а не наше, и оно требует разделения трех категорий, которые сегодня на большинстве сайтов обрабатываются одинаково: поисковые краулеры, которые отправляют людей обратно, агенты, запускаемые человеком, который запросил страницу, и краулеры для обучения. Правила для них независимы. На этом сайте сейчас существует только одно общее правило, значит позиция по умолчанию — и мы так и говорим, вместо того чтобы делать вид, будто это стратегия. Подробности относятся к странице видимости в сгенерированных ответах.

Чего вы не делаете?

Мы не покупаем ссылки и не строим сетки сайтов. Мы не генерируем страницы в масштабе, чтобы покрывать сочетания слов. Мы не выдаем позиции, взятые из стороннего инструмента, за данные из источника. И мы не объявляем аудит завершенным без табличного файла и команд, которые его воспроизводят — отчет, который вы не можете проверить сами, не аудит, а мнение.

На чём основаны утверждения выше (14 источников)

14 из них — код и файлы из наших репозиториев. Мы не публикуем их название и строку: вместе, на одной странице, они слишком точно описали бы, как устроены системы, которые принадлежат не только нам. Мы разбираем их вместе с тобой, в репозитории, по запросу — проверка остаётся возможной, просто она проходит в разговоре.

Что вы хотели бы наладить?

Расскажите о своём процессе. Вместе определим, что стоит построить, что можно подключить и как проверим результат.

Давайте обсудим