Почему 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 / BlogPosting | headline, author, datePublished, image |
| Товар | Product | name, price, availability, review |
| FAQ | FAQPage | пары question, answer |
| Хлебные крошки | BreadcrumbList | цепочка itemListElement |
| Организация | Organization | name, logo, contactPoint |
Инструменты Валидации
- Google Rich Results Test (
search.google.com/test/rich-results) - Schema.org Validator (
validator.schema.org) - Просмотр исходного кода и поиск
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: Валидация Структурированных Данных
- Скопируйте URL страницы
- Откройте Google Rich Results Test
- Вставьте URL и запустите тест
- Задокументируйте: Какие типы 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” — ПРЕДУПРЕЖДЕНИЕ
Приоритетные исправления:
- Исправить 2 битые внутренние ссылки (высокое влияние)
- Добавить dateModified в структурированные данные (среднее влияние)
- Расширить 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
- Noindex со staging утёк в продакшен — Самый опасный баг. Всегда проверяйте meta robots после деплоя.
- Canonical указывает на неправильный URL — Особенно после миграции URL или редизайна.
- Отсутствующие взаимные hreflang-ссылки — Язык A ссылается на B, но B не ссылается обратно на A.
- Дублирующиеся теги title — Дефолтные значения шаблона не переопределены на отдельных страницах.
- Sitemap содержит URL с 301/404 — Sitemap не перегенерирован после изменения URL.
Ключевые Выводы
- QA-инженеры должны тестировать SEO-элементы как часть рутинного веб-тестирования
- Наиболее критичные проверки: теги title, canonical URL, директивы noindex и robots.txt
- Валидация структурированных данных обеспечивает корректное отображение расширенных сниппетов
- Всегда проверяйте, что конфигурации staging/dev не утекают в продакшен
- Автоматизируйте SEO-проверки для раннего обнаружения регрессий
- Используйте Google Rich Results Test и PageSpeed Insights как инструменты валидации