Сайт переехал на новую CMS, и страницы начали выпадать из поиска. Или в выдаче у главной страницы вдруг появился заголовок «Главная». В обоих случаях первым делом стоит проверить метатеги: служебные строки в коде страницы, которые читают поисковики, браузеры и мессенджеры. Посетитель их на странице не видит, поэтому ошибки в них могут долго оставаться незамеченными.
Быстрее всего начать с проверки метатегов: вставьте адрес конкретной страницы, и инструмент покажет все основные теги и замечания к ним.
Какие метатеги стоит проверить
Все эти теги стоят в начале кода страницы, в блоке <head>: title записывается как <title>...</title>, canonical - как <link rel="canonical" href="...">, остальные - как <meta name="..." content="..."> или, у Open Graph, <meta property="og:..." content="...">. Что в каждом из них смотреть:
| Тег | За что отвечает | Что проверить |
|---|---|---|
title | Название страницы: вкладка браузера и частый источник заголовка в выдаче | Есть, один на странице, описывает именно эту страницу |
description | Краткое описание, из которого поисковик может взять текст сниппета - описания под заголовком в выдаче | Есть, уникально, отличается от title |
robots | Правила для роботов, например запрет индексации noindex | Нет noindex на страницах, которые должны быть в поиске |
canonical | Основной адрес страницы, если у неё есть копии | Ведёт на правильную версию страницы, адрес полный |
viewport | Отображение на экране телефона | Есть на всех страницах |
og:* | Превью ссылки в мессенджерах и соцсетях: og:title, og:image и другие | Заполнены, картинка открывается |
keywords | Список ключевых слов | Можно не заполнять, подробности в разделе про keywords |
Заголовок H1 - видимый заголовок на самой странице, к метатегам он не относится. Его обычно проверяют заодно, и инструменты показывают его рядом с title.
Как проверить метатеги онлайн
В проверке метатегов на этом сайте результат состоит из самих значений тегов и списка замечаний. Критичными считаются отсутствие title или слишком короткий title (меньше 10 символов), отсутствие description, H1 или viewport, noindex в meta robots и картинка из og:image, которая не открывается по ссылке. Предупреждения появляются, если title длиннее 70 символов, description короче 50 или длиннее 200, на странице несколько H1, нет canonical, favicon или теги Open Graph заполнены не полностью.
Пороги по длине задал сам инструмент. У Google и Яндекса фиксированного лимита нет, подробности в разделе про title. Предупреждение о нескольких H1 тоже повод посмотреть на структуру страницы, ошибкой само по себе оно не считается.
Что онлайн-проверка не покажет:
- метатеги, которые появляются только после выполнения JavaScript;
- запрет индексации из HTTP-заголовка
X-Robots-Tag: это служебная строка, которую сервер передаёт вместе с ответом, в коде страницы её нет; - правильно ли выбран адрес в canonical: инструмент видит, что тег есть, но не знает, какая версия страницы основная;
- одинаковые title на разных страницах сайта: для этого нужна проверка всего сайта.
Как посмотреть метатеги в коде страницы
<title, name="description", name="robots", rel="canonical", og:. Как правило, это тот же код, который получает поисковый робот при первом обращении. Второй способ - панель разработчика, она показывает страницу уже после работы скриптов.
Код страницы, который открывается по Ctrl + U, - это исходный HTML в том виде, в каком его отдал сервер. Для большинства сайтов на WordPress, Битриксе или Тильде этого достаточно: метатеги там формируются на сервере.
Порядок проверки в браузере:
- Откройте страницу и нажмите Ctrl + U (на Mac ⌘ + Option + U), чтобы увидеть исходный код.
- Нажмите Ctrl + F (на Mac ⌘ + F) и по очереди найдите
<title,name="description",name="robots",rel="canonical"иog:. - Если какого-то тега нет, откройте панель разработчика: клавиша F12 или Ctrl + Shift + I (на Mac ⌘ + Option + I), вкладка Elements.
- Если тег есть в Elements, но его нет в исходном коде, значит, его добавил скрипт уже в браузере.
На вкладке Elements виден DOM - текущее состояние страницы после работы скриптов. В документации Chrome разница объясняется так: «HTML represents initial page content and the DOM represents active, current page content». Иначе говоря, HTML описывает страницу в момент загрузки, а DOM показывает, какой она стала сейчас.
Если привычнее командная строка, исходный код можно получить командой curl и сразу отфильтровать нужные строки. Вместо example.com подставьте адрес своей страницы:
curl -sL https://example.com/ | grep -Eio '<title[^>]*>[^<]*</title>|<meta[^>]+(description|robots|og:)[^>]*>|<link[^>]+canonical[^>]*>'
Команда выведет title, description, meta robots, canonical и теги Open Graph, а заодно похожие теги вроде twitter:description. Если атрибуты тега разбиты на несколько строк, grep может его пропустить, тогда откройте код страницы целиком.
Метатеги главной страницы входят и в полный анализ домена: кроме них он проверяет SSL, DNS, индексацию и признаки того, что сайт собирается JavaScript-ом.
Почему проверка не видит метатеги, которые есть на сайте
Google такой способ допускает, но советует осторожность: «We recommend that you avoid using JavaScript to inject or change meta tags whenever possible, and if you must use it, test your implementations thoroughly». Проще говоря, по возможности не вставлять и не менять метатеги скриптом. Если без этого не обойтись, результат нужно тщательно проверить. Для этого Google предлагает инструмент проверки URL в Search Console (кабинете Google для владельцев сайтов), а у Яндекса есть раздел «Индексирование → Проверка страницы» в Вебмастере, где можно посмотреть версию страницы в базе поиска.
Если в исходном коде стоит noindex, а скрипт его потом убирает, Google может скрипт вообще не выполнить: «When Google encounters the noindex tag, it may skip rendering and JavaScript execution» - встретив noindex, он может пропустить отрисовку и выполнение JavaScript. Поэтому на странице, которая должна быть в поиске, noindex не должно быть уже в исходном коде.
Telegram и ВКонтакте официально не описывают, выполняют ли они JavaScript при сборе превью. Надёжнее, чтобы title, description и теги Open Graph были в исходном HTML, тогда их увидят все.
Что проверить в title
По стандарту HTML на странице может быть только один элемент title. Google просит, чтобы title был на каждой странице, и советует избегать повторяющихся шаблонных заголовков. Справка Яндекса называет похожие правила:
- заголовок информативный: не «Главная» для главной страницы и не «Контакты» для страницы контактов;
- не перегружен ключевыми словами, иначе поиск может посчитать заголовок спамом;
- шаблонных заголовков как можно меньше: страницы каталога с одинаковым title «Каталог» ничем не отличаются для посетителя;
- бренд лучше ставить в начале или в конце, отделяя двоеточием, дефисом или вертикальной чертой.
С длиной путаница из-за того, что поисковики её не ограничивают. У Google сказано, что лимита длины у title нет, а заголовок в выдаче обрезается по ширине экрана устройства. У Яндекса формулировка похожая: длина ограничена шириной экрана пользователя. Цифры 50-60 символов пришли из англоязычных справочников и SEO-инструментов и относятся к выдаче Google: справочник MDN для разработчиков называет около 55-60 символов, SEO-сервис Moz - 50-60. Для русского текста и для Яндекса таких данных нет, так что считайте эти цифры ориентиром.
Отдельный случай - страницы пагинации, то есть страницы 2, 3 и дальше одного списка: /catalog/?page=2, /catalog/?page=3. У Google одинаковые title для них разрешены. Справка Яндекса о дублях советует разнообразить автоматические заголовки, например добавлять в них номер страницы. Для сайта, который продвигается в Яндексе, проще дописать «страница 2». Ставить canonical всех страниц пагинации на первую Google не советует: у каждой страницы должен быть свой.
Что проверить в description
По стандарту HTML тег description на странице тоже должен быть один. Если его вывели и тема оформления, и SEO-плагин, в коде окажутся два описания, и такую ошибку видно при проверке кода по Ctrl + U.
Справка Яндекса советует добавлять description на все страницы и предупреждает, что шаблонные или похожие описания «вероятнее всего, не будут показываться в результатах поиска». Там же перечислены типичные ошибки:
- служебная или временная информация вместо описания;
- устаревший текст, например про закончившуюся акцию;
- важная информация в конце текста;
- описание из нескольких слов.
Яндекс отдельно просит, чтобы description отличался от title. Если CMS подставляет в описание тот же заголовок, это стоит исправить.
Google тоже просит уникальные описания и добавляет, что описания из перечня ключевых слов реже попадают в сниппет. Фиксированной длины у description тоже нет. SEO-инструменты обычно предупреждают на отметке около 155-160 символов: например, краулер Screaming Frog отмечает описания длиннее 155 символов. Это снова ориентир по выдаче Google.
Почему в выдаче другой заголовок или описание
Google перечисляет, откуда берёт заголовок результата: содержимое title, главный видимый заголовок и другие заголовки на странице, тег og:title, крупный текст, тексты ссылок на страницу и другие данные. Описание Google, по его же словам, строит в первую очередь («primarily») из текста страницы, а description использует, когда он точнее описывает страницу. Яндекс тоже указывает, что заголовок сниппета может формироваться из контента страницы и поэтому зависит от запроса.
Что делать, если в выдаче не тот текст:
- Откройте код страницы и убедитесь, что title и description там именно те, что вы ожидаете. Настройки CMS и итоговый HTML иногда расходятся.
- Убедитесь, что title соответствует содержанию и заголовку H1, без набора ключевых слов и без шаблона вроде «Главная».
- Если метатеги недавно поменялись, подождите переобхода - повторного визита робота. Google предупреждает, что заметить изменения он может через срок от нескольких дней до нескольких недель.
- Отправьте важные страницы на переобход в Яндекс Вебмастере или Search Console.
Если после переобхода заголовок в выдаче всё равно другой, значит, поисковик счёл другой текст более подходящим для этого запроса. Тогда перепишите title и description ближе к содержанию страницы и посмотрите на выдачу после следующего обхода.
Как найти случайный noindex
name="robots" и посмотрите, нет ли в значении noindex. Такая страница не участвует в поиске. Частая причина - запрет, оставленный после разработки. Запрет может прийти и из HTTP-заголовка X-Robots-Tag, а если страница закрыта в robots.txt, поисковик не увидит метатег вообще.
В значении meta robots noindex значит «не показывать в поиске», nofollow - «не переходить по ссылкам». Если тега на странице нет совсем, это нормально: по документации Google, без него действуют правила по умолчанию, то есть ограничений нет.
Обычно запрет остаётся с этапа разработки: пока сайт делали, его закрыли от поисковиков, а после запуска забыли открыть. В WordPress для этого есть галочка «Попросить поисковые системы не индексировать сайт» в разделе «Настройки → Чтение». Начиная с версии 5.3 она добавляет в код всех страниц noindex,nofollow. Если новый сайт не появляется в поиске, эту настройку стоит проверить первой.
Если страница закрыта в robots.txt - файле с правилами обхода для роботов, - робот её не загружает и не видит ни noindex, ни других правил. В справке Яндекса: «Если страница запрещена в файле robots.txt, то директива метатега или заголовка не действует». Google пишет то же самое.
Поэтому страницу, которую убирают из поиска через noindex, нельзя одновременно закрывать в robots.txt. Как устроен сам robots.txt, разобрано в статье robots.txt для WordPress.
Запрет индексации в HTTP-заголовке X-Robots-Tag в коде страницы не виден. Посмотреть его можно командой, которая выводит только заголовки ответа:
curl -sI https://example.com/ | grep -i x-robots-tag
Пустой вывод значит, что такого заголовка нет.
Нужен ли метатег keywords
Google пишет, что тег keywords «is not used by Google Search, and it has no effect on indexing and ranking at all» - не используется и никак не влияет ни на индексацию, ни на ранжирование. В справке Яндекса keywords указан в списке учитываемых метатегов с пометкой «Может влиять на соответствие страницы поисковым запросам».
Набивать keywords десятками слов бессмысленно для обоих поисковиков. Стандарт HTML отдельно отмечает, что многие поисковики не учитывают этот тег именно потому, что его годами использовали для спама.
Как проверить превью ссылки в мессенджерах
og:title, og:type, og:image и og:url. Проверьте, что они есть в коде и картинка открывается. Если превью в Telegram осталось старым, его можно обновить через бота @WebpageBot.
Open Graph - открытый протокол, по которому страница сообщает внешним сервисам название, тип, картинку и адрес. Если указан og:image, стандарт советует добавить и og:image:alt с описанием картинки.
Примерный вид ссылки на главную страницу в Telegram и ВКонтакте покажет проверка превью в соцсетях: она собирает карточку из тегов Open Graph. Для остальных страниц подойдёт проверка метатегов: она показывает теги Open Graph любой страницы и проверяет, открывается ли картинка из og:image.
Мессенджеры запоминают превью, поэтому после исправления тегов старая карточка может показываться ещё долго. Для Telegram способ обновления описан на официальном баг-трекере: нужно отправить ссылку боту @WebpageBot, и он вернёт обновлённое превью. Какие именно теги читает Telegram, официально не описано, поэтому надёжнее заполнить полный набор Open Graph.
Как проверить метатеги на всех страницах сайта
В Вебмастере отчёт разбит на две вкладки: на вкладке title собраны группы страниц с одинаковыми заголовками, на вкладке description - с одинаковыми описаниями. Если дублей много, предупреждение появится и в разделе «Оптимизация сайта → Диагностика сайта». После исправлений, как пишет Яндекс, информация обновится в течение недели после очередного визита робота.
Чтобы не ждать поисковика, можно обойти сайт SEO-аудитом: краулер, то есть программа-обходчик, пройдёт по ссылкам, соберёт страницы и покажет, где нет title, description или H1 и какие title повторяются.
Чаще всего одинаковые title появляются из-за шаблонов CMS, адресов с параметрами (сортировка, фильтры, рекламные метки после знака ?) и копий одной страницы по разным адресам. Для адресов с параметрами Яндекс советует директиву Clean-param в robots.txt, которая говорит роботу, какие параметры не меняют содержимое. Если одна страница открывается по нескольким адресам, основной указывают через canonical или ведут на него постоянным редиректом 301 - о нём подробнее в статье редиректы 301 и 302. Как canonical помогает не путать робота ссылками на копии страниц, разобрано в статье циклические ссылки на сайте.
Источники
- Google Search Central, «Influencing title links in Google Search», https://developers.google.com/search/docs/appearance/title-link
- Google Search Central, «How to Write Meta Descriptions», https://developers.google.com/search/docs/appearance/snippet
- Google Search Central, «Robots Meta Tags Specifications», https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag
- Google Search Central, «Meta tags and attributes that Google supports», https://developers.google.com/search/docs/crawling-indexing/special-tags
- Google Search Central, «Understand JavaScript SEO Basics», https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google Search Central, «Pagination Best Practices for Google», https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading
- Google Search Central, «SEO Starter Guide», https://developers.google.com/search/docs/fundamentals/seo-starter-guide
- Google Search Central, «How to Specify a Canonical with rel="canonical" and Other Methods», https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Яндекс Вебмастер, «Как правильно написать title», https://yandex.ru/support/webmaster/ru/search-results/title
- Яндекс Вебмастер, «Как правильно составить description», https://yandex.ru/support/webmaster/ru/indexing-options/description
- Яндекс Вебмастер, «Одинаковые заголовки и описания (дубли)», https://yandex.ru/support/webmaster/ru/indexing-options/title-description-doubles
- Яндекс Вебмастер, «Метатеги», https://yandex.ru/support/webmaster/ru/controlling-robot/metatags
- Яндекс Вебмастер, «Как поиск и посетители видят страницы сайта и как можно на это влиять», https://yandex.ru/support/webmaster/ru/robot-workings/vision
- WHATWG, «HTML Living Standard: Document metadata», https://html.spec.whatwg.org/multipage/semantics.html
- Яндекс Вебмастер, «Канонический адрес страницы», https://yandex.ru/support/webmaster/ru/robot-workings/canonical
- MDN Web Docs, «HTML document title element», https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/title
- Moz, «What Are Title Tags?», https://moz.com/learn/seo/title-tag
- Screaming Frog, «Meta Description: Over 155 Characters», https://www.screamingfrog.co.uk/seo-spider/issues/meta-description/over-155-characters/
- Chrome for Developers, «Get started with viewing and changing the DOM», https://developer.chrome.com/docs/devtools/dom
- The Open Graph protocol, https://ogp.me/
- WordPress Documentation, «Settings Reading screen», https://wordpress.org/documentation/article/settings-reading-screen/
- Telegram Bugs and Suggestions, «Link preview update», https://bugs.telegram.org/c/57
Проверьте метатеги и техническую сторону своего сайта за один запуск - без регистрации и ничего не устанавливая.
WHOIS и возраст домена, CMS, SSL, метатеги, DNS, хостинг, чёрные списки и проверка по 152-ФЗ - на одной странице, без регистрации.
Запустить проверку →