Перейти до основного вмісту
megapromoting
Поговорімо

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

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

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

Вже збудованоDouă implementări proprii, ambele deschise pe disc. Prima: auditul acestui site — 249 de adrese parcurse cu cereri directe, 23 de coloane per adresă, rezultatul într-un fișier tabelar versionat lângă cod, plus reparațiile care au ieșit din el (adresa canonică rezolvată o dată pentru toate rutele, adresa de partajare, harta de site generată din date). A doua: `mega-seo-analyzer`, un analizor propriu cu 16 module de analiză și un scor ponderat scris explicit în cod. Ce nu putem susține și nu vom scrie: poziții obținute sau procente de creștere. Nu avem măsurători publicabile pentru așa ceva.

Класичне 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 адрес, та сама цифра в коді й у файлі, який роздає продакшн. Скрипт, запущений після публікації, падає, якщо карта втрачає сторінку або якщо з’являються варіанти адреси, які не відкриваються. Чого бракує сьогодні, сказано як відсутність: записи не мають дати останньої модифікації, а 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 байтів, для всіх; немає блокування, challenge або обмеження для краулерів. Єдина відтворювана різниця — на 237 байтів менше на динамічній сторінці, для трьох агентів — походить від самого фреймворку, який надсилає їм повний HTML без потокової передачі, тобто більше вже відрендереного контенту, а не менше.

Що ми не обіцяємо, написано до контракту

Ми не обіцяємо позиції, відсотки зростання чи кількість візитів. У нас немає придатних до публікації вимірювань для такого, і ми не вигадуємо. Те, що ми постачаємо, можна перевірити інакше: список адрес зі станом кожної, виконані виправлення, перевірка, запущена після публікації, і вимірювана різниця між станом до та після — у байтах, кодах і кількості сторінок, а не в обіцянках.

Як це виглядає

Шлях, крок за кроком.

01

Повний обхід і таблиця стану

Перша поставка — це табличний файл із кожною адресою та її станом у 23 колонках, плюс команди, які його відтворюють. Відтоді будь-яка розмова має рядок за спиною. Це також момент, коли виявляються адреси, про які ніхто не знав, що вони існують.

02

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

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

03

Карта сайту та перенаправлення

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

04

Перевірка, яка залишається після нас

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

05

Вимірювання, вашими інструментами

Якщо у вас є консоль пошуку та інструмент аналітики, ми накладаємо звітність на них і визначаємо, що відстежуємо. Якщо у вас їх немає, перший крок — це їх мати, і ми кажемо це наперед, а не потім. Чого ми не робимо: не звітуємо позиції з третього інструмента так, ніби це дані з джерела.

Site-ul ca teritoriu, verificările ca straturi peste el1cod de răspuns2adresă canonică3titlu și descriere4date structurate5volum de text249 de adrese, 23 de coloane, un singur fișier tabelar.
Site-ul ca teritoriu, verificările ca straturi peste el

Дані

Чого торкаємося, де воно лежить і скільки лишається

Запитання, які ставить кожен, у кого є відповідальний за захист даних, — поставлені тут раніше, ніж їх поставить він.

Що ми читаємо з вашого сайту
Лише те, що є публічним: 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 з них — це код і файли з наших репозиторіїв. Ми не публікуємо їхні назви чи номери рядків: разом, на одній сторінці, це надто точно описало б, як побудовані системи, які належать не лише нам. Ми проходимо їх разом із вами, у репозиторії, за запитом — перевірка залишається можливою, просто вона відбувається в розмові.

Що вам хотілося б налагодити?

Розкажіть про свій процес. Разом визначимо, що варто збудувати, що можна підключити і як перевіримо результат.

Поговорімо