Почему QA-Инженерам Нужно Тестировать SEO

SEO (Search Engine Optimization) напрямую влияет на то, сколько пользователей находят сайт через поисковые системы. Один неправильно настроенный мета-тег, сломанный canonical URL или случайная директива noindex может привести к исчезновению страниц из поисковой выдачи, потенциально стоя тысячи посетителей.

QA-инженеры находятся в уникальной позиции для обнаружения SEO-проблем, поскольку уже тестируют HTML-вывод, проверяют поведение страниц и исследуют edge cases, которые разработчики могут упустить.

Основные SEO-Элементы для Тестирования

Теги Title

Тег <title> отображается в результатах поиска и вкладках браузера. Проверяйте:

  • Каждая страница имеет уникальный тег title
  • Длина заголовка 50-60 символов (поисковые системы обрезают длинные)
  • Заголовок содержит основное ключевое слово естественно
  • Заголовок не дублирует другие страницы
  • Динамические страницы генерируют корректные заголовки

Мета-Описание

Отображается как сниппет под заголовком в поисковой выдаче:

  • Присутствует на каждой странице (150-160 символов)
  • Уникально для каждой страницы (без дубликатов)
  • Содержит призыв к действию или ценностное предложение
  • Включает целевое ключевое слово естественно

Теги Canonical

Предотвращают проблемы дублирования контента:

<link rel="canonical" href="https://example.com/blog/seo-testing" />

Проверяйте:

  • Каждая страница имеет тег canonical
  • Canonical URL указывает на правильную страницу (без цепочек редиректов)
  • Пагинированные страницы имеют корректные canonical
  • HTTP-страницы канонизируют на HTTPS-версии
  • Консистентность trailing slash

Теги Hreflang (Мультиязычные Сайты)

Для сайтов с несколькими языковыми версиями:

<link rel="alternate" hreflang="en" href="https://example.com/page" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />

Проверяйте:

  • Каждая языковая версия ссылается на все остальные
  • x-default указывает на основной язык
  • URL абсолютные, не относительные
  • Коды языков — валидные ISO 639-1

Open Graph и Twitter Meta Tags

Контролируют отображение страниц при шеринге в соцсетях:

<meta property="og:title" content="Заголовок страницы" />
<meta property="og:description" content="Описание" />
<meta property="og:image" content="https://example.com/image.jpg" />

Проверяйте, что OG-изображения существуют, имеют правильные размеры (рекомендуется 1200x630px) и URL абсолютные.

Тестирование Индексируемости

robots.txt

Расположен в /robots.txt, указывает поисковым системам, что индексировать:

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Sitemap: https://example.com/sitemap.xml

Критические проверки:

  • Продакшен robots.txt НЕ содержит Disallow: / (блокирует весь сайт)
  • Staging/dev robots.txt БЛОКИРУЕТ индексацию (предотвращает индексирование тестовых сред)
  • Важные страницы не заблокированы случайно
  • URL sitemap корректен и доступен

XML Sitemap

Расположен в /sitemap.xml:

  • Все важные страницы включены
  • Нет URL с 404 или редиректами
  • Даты lastmod актуальны
  • Sitemap — валидный XML
  • Sitemap указан в robots.txt

Noindex/Nofollow

<meta name="robots" content="noindex, nofollow" />

Проверяйте:

  • Продакшен-страницы НЕ имеют случайных тегов noindex
  • Страницы для исключения (admin, thank-you) ИМЕЮТ noindex
  • HTTP-заголовок X-Robots-Tag не установлен в noindex на публичных страницах

Тестирование Структурированных Данных

Что Проверять

Структурированные данные используют словарь Schema.org для описания контента:

Тип страницыТип SchemaКлючевые свойства
СтатьяArticle / BlogPostingheadline, author, datePublished, image
ТоварProductname, price, availability, review
FAQFAQPageпары question, answer
Хлебные крошкиBreadcrumbListцепочка itemListElement
ОрганизацияOrganizationname, logo, contactPoint

Инструменты Валидации

  1. Google Rich Results Test (search.google.com/test/rich-results)
  2. Schema.org Validator (validator.schema.org)
  3. Просмотр исходного кода и поиск application/ld+json или itemscope

Упражнение: SEO-Аудит Веб-Страницы

Проведите технический SEO-аудит страницы из вашего проекта или любого публичного сайта.

Шаг 1: Аудит Мета-Тегов

Откройте страницу и изучите секцию <head> в DevTools. Задокументируйте:

ЭлементЕсть?ЗначениеПроблемы
TitleДлина? Уникальность?
Meta descriptionДлина?
CanonicalКорректный URL?
OG titleСовпадает со страницей?
OG imageВалидный URL? Размеры?
Hreflang (если мультиязычный)Все версии?

Шаг 2: Проверка Индексируемости

# Проверить robots.txt
curl https://example.com/robots.txt

# Проверить sitemap
curl https://example.com/sitemap.xml | head -50

# Проверить noindex
curl -s https://example.com/page | grep -i "noindex"

# Проверить canonical
curl -s https://example.com/page | grep -i "canonical"

Шаг 3: Валидация Структурированных Данных

  1. Скопируйте URL страницы
  2. Откройте Google Rich Results Test
  3. Вставьте URL и запустите тест
  4. Задокументируйте: Какие типы schema обнаружены? Есть ли ошибки или предупреждения?
Решение: Шаблон Чек-листа SEO-Аудита

Страница: https://example.com/blog/cypress-tutorial

Мета-теги:

  • Title: “Cypress Tutorial for Beginners” (32 символа) — ПРЕДУПРЕЖДЕНИЕ: Можно длиннее
  • Description: “Learn Cypress testing…” (145 символов) — OK
  • Canonical: https://example.com/blog/cypress-tutorial — OK
  • OG image: Есть, 1200x630 — OK
  • Hreflang: EN, ES, RU — OK, x-default на EN

Индексируемость:

  • robots.txt: Не блокирует /blog/ — OK
  • Sitemap: Страница включена с корректным lastmod — OK
  • Нет тега noindex — OK

Структурированные данные:

  • Schema BlogPosting обнаружена — OK
  • Отсутствует dateModified — ПРЕДУПРЕЖДЕНИЕ
  • Schema автора присутствует — OK

Ссылки:

  • Найдено 2 битые внутренние ссылки — БАГ
  • 1 внешняя ссылка без rel=“noopener” — ПРЕДУПРЕЖДЕНИЕ

Приоритетные исправления:

  1. Исправить 2 битые внутренние ссылки (высокое влияние)
  2. Добавить dateModified в структурированные данные (среднее влияние)
  3. Расширить title до 50-60 символов (низкое влияние)

Автоматизация SEO-Проверок

Интегрируйте SEO-валидацию в тестовый набор:

// Пример: SEO-проверки с Playwright
test('страница имеет валидные SEO мета-теги', async ({ page }) => {
  await page.goto('/blog/my-article');

  const title = await page.title();
  expect(title.length).toBeGreaterThan(30);
  expect(title.length).toBeLessThan(65);

  const description = await page.$eval(
    'meta[name="description"]',
    el => el.content
  );
  expect(description.length).toBeGreaterThan(100);

  const canonical = await page.$eval(
    'link[rel="canonical"]',
    el => el.href
  );
  expect(canonical).toContain('/blog/my-article');

  const robots = await page.$('meta[name="robots"][content*="noindex"]');
  expect(robots).toBeNull();
});

Типичные SEO-Баги, Найденные QA

  1. Noindex со staging утёк в продакшен — Самый опасный баг. Всегда проверяйте meta robots после деплоя.
  2. Canonical указывает на неправильный URL — Особенно после миграции URL или редизайна.
  3. Отсутствующие взаимные hreflang-ссылки — Язык A ссылается на B, но B не ссылается обратно на A.
  4. Дублирующиеся теги title — Дефолтные значения шаблона не переопределены на отдельных страницах.
  5. Sitemap содержит URL с 301/404 — Sitemap не перегенерирован после изменения URL.

Ключевые Выводы

  • QA-инженеры должны тестировать SEO-элементы как часть рутинного веб-тестирования
  • Наиболее критичные проверки: теги title, canonical URL, директивы noindex и robots.txt
  • Валидация структурированных данных обеспечивает корректное отображение расширенных сниппетов
  • Всегда проверяйте, что конфигурации staging/dev не утекают в продакшен
  • Автоматизируйте SEO-проверки для раннего обнаружения регрессий
  • Используйте Google Rich Results Test и PageSpeed Insights как инструменты валидации