SEO для малого бизнеса

Подтверждение прав в Яндекс Вебмастере: все способы и типовые ошибки

HTML-файл, метатег, DNS-запись и WHOIS. Какой способ выбрать под вашу CMS, почему проверка не проходит и как не потерять права потом.

13 минут чтения 3 Дмитрий Акиндинов
Содержание
  1. Что вообще открывается после подтверждения
  2. Четыре способа и какой выбрать
  3. HTML-файл: куда класть и почему его съедает CMS
  4. Метатег: где вставлять, чтобы не слетел
  5. DNS-запись: когда это единственный рабочий вариант
  6. WHOIS: способ, который почти не работает
  7. Почему проверка не проходит: чек-лист
  8. Права после смены подрядчика
  9. Что делать сразу после подтверждения
  10. Итого
  11. Частые вопросы

Способов подтверждения четыре: файл в корне, мета-тег, запись в DNS и данные регистратора. Файл и тег работают за пару минут, но слетают при обновлении темы. Запись в DNS расходится дольше, зато не зависит ни от CMS, ни от подрядчика.

Подтвердить права на сайт в Яндекс Вебмастере можно за две минуты: скачал файл, положил в корень, нажал «Проверить». Ровно до того момента, когда сайт живёт на Тильде, домен оформлен на бывшего подрядчика, а хостинг заворачивает все запросы на www с потерей пути. Тогда двухминутная задача растягивается на два дня и три звонка регистратору. Ниже разберу все четыре способа проверки, какой из них удобнее под конкретную CMS, почему Яндекс упрямо пишет «Не удалось подтвердить права», и как забрать доступ у предыдущего исполнителя, не потеряв историю сайта.

Подтверждение прав на сайт в Яндекс Вебмастере: файл, метатег и DNS-запись

Я подключаю Вебмастер каждому новому клиенту в первую неделю обслуживания, так что этот квест прошёл десятки раз на всех популярных движках. Сразу оговорюсь: сложного тут ничего нет, вся боль возникает на стыке хостинга, редиректов и кэша.

Что вообще открывается после подтверждения

Пока права не подтверждены, вы видите про свой сайт примерно ничего: только то, что можно нагуглить снаружи. После подтверждения появляется доступ к панели, ради которой всё и затевается.

  • Индексирование: список страниц в поиске, статусы обхода, коды ответа, которые получил робот. Это единственный честный источник данных о том, что Яндекс реально видит на сайте.
  • Переобход страниц: ручная отправка URL в очередь. Квота зависит от размера сайта, для визитки это обычно 10-30 адресов в сутки. Быстрее, чем ждать планового обхода, который может занять недели.
  • Диагностика: фатальные и критичные ошибки. Сюда прилетает «Сайт закрыт от индексирования в robots.txt», «Ошибка SSL-сертификата», «Не удалось подключиться к серверу».
  • Безопасность и нарушения: заражённые страницы, редиректы на чужие ресурсы, накрутка поведенческих. Обычно об этом узнают именно отсюда, а не от посетителей.
  • Поисковые запросы: показы, клики, CTR и позиции. Данные за три месяца, в отчёте отдаётся ограниченный список запросов, но для малого бизнеса этого хватает с запасом.
  • Настройка региона, товаров и цен, разметки, RSS для быстрых страниц. Плюс проверка ключа IndexNow.

Отдельно про уведомления. Вебмастер шлёт письма, когда сайт перестал отвечать, когда упал сертификат, когда робот нашёл вирус. Для сайта без мониторинга это фактически бесплатная сигнализация с задержкой в несколько часов. Не замена нормальному мониторингу, но лучше, чем узнавать о падении от клиента.

Что делать в панели после подключения и на какие отчёты смотреть в первую очередь, я разбирал в статье про Вебмастер для новичков. Здесь только про вход в панель.

Четыре способа и какой выбрать

Яндекс предлагает четыре метода. Все они равнозначны: подтвердили любым, получили полные права. Отличаются трудозатратами и тем, насколько легко их случайно сломать.

СпособЧто нужноКогда проходит проверкаРиск слететь
Метатег в headДоступ к шаблону или к полю SEO-плагинаСразу, 1-2 минутыВысокий: обновление темы, смена плагина
HTML-файл в корнеFTP, SSH или файловый менеджер хостингаСразу, 1-2 минутыНизкий: если файл никто не удалит
DNS-запись TXTДоступ к панели регистратора или DNS-хостингаОт 15 минут до сутокОчень низкий
WHOISОткрытый админ-контакт домена и та же почтаСразуСредний: смена контактов домена

Мой стандартный выбор по движкам:

  • WordPress: HTML-файл, если есть SSH или FTP. Если доступ только в админку, то метатег через mu-plugin, а не через настройки темы.
  • Битрикс: HTML-файл через файловый менеджер в админке (Рабочий стол, Контент, Структура сайта). Не забыть, что в многосайтовой конфигурации корень нужного сайта может лежать не в /, а в отдельной папке.
  • Тильда: метатег через настройки сайта, вкладка SEO, поле для вставки кода в head. Файл на Тильду положить сложнее, чем кажется.
  • OpenCart, MODX, Joomla: HTML-файл, тут никаких особенностей.
  • Сайт на конструкторе, к которому нет доступа вообще: DNS-запись. Она не зависит ни от CMS, ни от хостинга.

Если сайт ведёт подрядчик и вы хотите оставить контроль за собой, берите DNS. Файл в корне удаляется одним неловким движением при переносе, а DNS-запись переживает и переезд хостинга, и смену движка.

HTML-файл: куда класть и почему его съедает CMS

Яндекс даёт файл вида yandex_90c821c896c9880b.html, внутри одна строка с тем же идентификатором. Файл кладётся в корень сайта, туда же, где лежат index.php и robots.txt. Проверять надо не глазами в файловом менеджере, а запросом.

# файл должен отдавать 200 и text/html, без единого редиректа
curl -sI https://site.ru/yandex_90c821c896c9880b.html

# смотрим всю цепочку переходов, если 200 не приходит
curl -sIL -o /dev/null -w '%{http_code} %{url_effective}n' 
  https://site.ru/yandex_90c821c896c9880b.html

# и содержимое: там должен быть идентификатор, а не HTML вашей 404-й
curl -s https://site.ru/yandex_90c821c896c9880b.html

Четыре причины, по которым файл лежит на месте, но проверка падает.

Первая: правило редиректа склеивает адреса неправильно. Классика на shared-хостинге, когда в .htaccess написано перенаправление на www или на https без $1, и любой внутренний URL превращается в главную. Файл при этом честно лежит в корне, а робот получает 301 на / и содержимое главной страницы.

Вторая: CMS перехватывает запрос раньше веб-сервера. У WordPress правило перезаписи проверяет наличие файла, поэтому статика отдаётся напрямую. А вот у самописных движков и у некоторых сборок MODX весь трафик уходит во фронт-контроллер, и на несуществующий для роутера адрес приходит 404-я страница с кодом 200. Робот видит HTML вместо идентификатора и отказывает.

Третья: файл лежит не в том корне. Частая история, когда ядро CMS вынесено в подпапку, а сайт отдаётся из другой. Проверяется тем же curl: если по адресу файла 404, значит корень другой.

Четвёртая: права на файл. После заливки по FTP файл иногда получает права 600, и Apache его не читает. Ставим 644, каталогам 755, иначе веб-сервер отдаст 403 вместо содержимого.

Если сервер режет доступ к файлу из-за правил безопасности, в .htaccess можно явно разрешить конкретный адрес до всех остальных правил:

# исключаем файл подтверждения из редиректов и rewrite
RewriteEngine On
RewriteRule ^yandex_[0-9a-f]+.html$ - [L]

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Порядок важен: правило с [L] должно стоять выше редиректа, иначе оно не сработает.

Метатег: где вставлять, чтобы не слетел

Метатег выглядит так и должен находиться внутри <head>, желательно повыше:

<meta name="yandex-verification" content="90c821c896c9880b" />

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

Для WordPress не надо править header.php темы. Это работает ровно до первого обновления темы, после чего права слетают, а вы об этом узнаёте через месяц из письма Яндекса. Правильно класть метатег в mu-plugin, который переживает любые обновления:

<?php
// wp-content/mu-plugins/sf-verification.php
add_action('wp_head', function () {
    echo '<meta name="yandex-verification" content="90c821c896c9880b" />' . "n";
}, 1);

Файл в mu-plugins подключается автоматически, его не видно в списке плагинов и его нельзя случайно отключить из админки. Если mu-plugins нет, каталог создаётся вручную.

Альтернатива для тех, кто не хочет трогать код: почти все SEO-плагины имеют готовое поле. У Rank Math это Общие настройки, вкладка с инструментами вебмастера, у Yoast раздел с интеграциями поисковых систем. Минус в том, что при смене SEO-плагина метатег исчезает вместе с ним, и это ещё одна мина замедленного действия.

Битрикс: не лезть в шаблон руками, а добавить строку из init.php или из компонента шапки.

// local/php_interface/init.php
AddEventHandler('main', 'OnEpilog', function () {
    global $APPLICATION;
    $APPLICATION->AddHeadString('<meta name="yandex-verification" content="90c821c896c9880b" />', true);
});

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

После вставки проверяем не в браузере, а запросом без cookie и без кэша браузера:

curl -s https://site.ru/ | grep -i yandex-verification

Если grep молчит, а в браузере тег виден, значит вы смотрите закэшированную версию страницы, либо плагин кэширования отдаёт роботу старую копию. Сбросьте кэш на сайте и на CDN, потом повторяйте.

DNS-запись: когда это единственный рабочий вариант

DNS-подтверждение нужно, когда доступа к файлам нет в принципе. Сайт на закрытом конструкторе, сайт держит подрядчик и не даёт FTP, сайт в процессе переезда и физически лежит на двух серверах сразу. Ещё это самый устойчивый метод: запись живёт в зоне домена и не зависит от того, что происходит с сайтом.

Добавляется TXT-запись для корня домена (в панелях это @ или пустое поле имени):

Тип:      TXT
Имя:      @
Значение: yandex-verification: 90c821c896c9880b
TTL:      600

Двоеточие и пробел после yandex-verification обязательны, это часть строки. Некоторые панели автоматически оборачивают значение в кавычки при сохранении, это нормально и на проверку не влияет.

Проверяем распространение записи:

dig +short TXT site.ru
# в Windows без dig:
nslookup -type=TXT site.ru 8.8.8.8

Пока в выводе нет вашей строки, жать «Проверить» в Вебмастере бесполезно. На Timeweb, Reg.ru и Beget запись обычно расходится за 10-30 минут. Если у домена прописаны сторонние NS (например, вы переносили DNS на Яндекс 360 или на Cloudflare), редактировать надо ту зону, которая реально обслуживает домен, а не ту, что осталась в панели регистратора. Половина случаев «запись добавил, а её нет» именно про это: правки вносятся в неактивную зону.

Важный нюанс: TXT-записей у домена может быть много (SPF, DMARC, подтверждения других сервисов). Не заменяйте существующую запись, а добавляйте новую строкой. Затёртый SPF выключит вам почту, и разбираться с этим вы будете уже совсем в другом настроении.

WHOIS: способ, который почти не работает

Формально четвёртый метод такой: если административный контакт домена совпадает с почтой вашего Яндекс ID, права подтверждаются автоматически. На практике для доменов в зоне .ru персональные данные владельца скрыты по умолчанию, и в публичном WHOIS вместо почты стоит заглушка регистратора. Метод остаётся рабочим для юрлиц с открытыми данными и для части зон .com.

Проверить свои шансы просто: посмотрите WHOIS домена на сайте регистратора. Если поля с email нет, идите другим путём и не тратьте время.

Почему проверка не проходит: чек-лист

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

  1. Лишний пробел или перенос строки в скопированном значении. Скопируйте заново, вставьте в текстовый редактор без форматирования, проверьте длину строки.
  2. Подтверждаете не тот хост. site.ru, www.site.ru, http://site.ru и https://site.ru для Вебмастера это разные ресурсы. Добавляйте тот адрес, который реально открывается в браузере после всех редиректов, и подтверждайте его.
  3. Кэш. Плагин кэширования, кэш хостинга, CDN. Робот получил старую версию страницы, где метатега ещё нет. Сброс кэша, потом повторная проверка.
  4. Редирект на файле подтверждения. Проверяется через curl -sIL, лечится правилом с [L] выше остальных.
  5. Метатег оказался в <body>, а не в <head>. Часто это следствие невалидной вёрстки: браузер закрывает head раньше, чем предполагал автор шаблона.
  6. Сайт закрыт от индексирования. Сама проверка прав может пройти, но следом в диагностике вылезет «Сайт запрещён к индексированию в файле robots.txt». Обычно это остатки правил со staging-копии. Что должно быть в файле, разбирал в статье про robots.txt.
  7. Базовая авторизация или защита от ботов. Сайт под HTTP-паролем или антибот-сервис отдаёт роботу капчу. Проверьте ответ с юзерагентом Яндекса: curl -s -A "Mozilla/5.0 (compatible; YandexBot/3.0)" https://site.ru/.
  8. Проблема с сертификатом. Просроченный SSL, неполная цепочка, отсутствие промежуточного сертификата. В браузере часто выглядит нормально, а робот отказывается устанавливать соединение.
  9. Хостинг блокирует по IP или по частоте запросов. Редко, но бывает у агрессивных фаерволов и модулей вроде mod_security.
  10. Домен просто не делегирован или NS-серверы отвечают неправильно. Самый обидный случай, потому что сайт при этом может открываться из кэша браузера.

После исправления не жмите «Проверить» по десять раз подряд. Между попытками есть пауза, а частые запросы ничего не ускоряют. Один раз убедились через curl, что всё отдаётся правильно, и только потом нажимайте.

Права после смены подрядчика

Тема, из-за которой я и пишу этот раздел отдельно. Права в Вебмастере привязаны к аккаунту Яндекса, а не к сайту. Если Вебмастер подключал предыдущий исполнитель со своей личной почты, то после расставания панель со всей историей остаётся у него, а вы начинаете с нуля.

Что важно понимать:

  • Подтверждение прав со своего аккаунта не отнимает права у других. Вы просто добавляетесь ещё одним владельцем и видите тот же сайт. История и накопленные данные при этом никуда не деваются, они привязаны к сайту, а не к аккаунту.
  • Чтобы старый подрядчик потерял доступ, надо убрать его подтверждение: удалить его метатег из шаблона, стереть его HTML-файл, снести его TXT-запись. Яндекс периодически перепроверяет подтверждения, и при отсутствии маркера права снимаются.
  • Правильный способ дать доступ исполнителю не подтверждение прав, а делегирование. В разделе с правами доступа выдаётся полный или ограниченный доступ на конкретный Яндекс ID, и отзывается он одной кнопкой, без правки файлов и DNS.

Практический порядок, когда вы забираете сайт:

  1. Подтвердите права со своего аккаунта любым способом. Лучше сразу DNS-записью, её подрядчик не удалит.
  2. Найдите и уберите чужие маркеры: поиск по шаблону на yandex-verification, список файлов yandex_*.html в корне, TXT-записи в DNS.
  3. Проверьте раздел делегирования и отзовите лишние доступы.
  4. Отдельно смените пароль от Метрики и от хостинга, потому что Вебмастер это только одна из точек доступа.

Полный список того, что надо забрать при передаче сайта, есть в разборе про передачу сайта от старого подрядчика. Вебмастер там один пункт из полутора десятков.

И обратная сторона: не удаляйте свой маркер после успешного подтверждения. Файл в корне выглядит мусором, метатег в head мешает перфекционисту, TXT-запись хочется почистить при переносе DNS. Убрали, через некоторое время получили письмо «Права на управление сайтом отозваны», и всё заново. Впишите способ подтверждения в паспорт сайта рядом с доступами к хостингу, чтобы через год не гадать, откуда взялся странный файл.

Что делать сразу после подтверждения

Подключение это не цель, а вход в панель. Минимальный набор действий на первый час:

  • Добавить sitemap.xml в разделе с файлами Sitemap и убедиться, что робот его прочитал без ошибок.
  • Проверить robots.txt встроенным анализатором, скормив ему пару реальных URL.
  • Указать регион сайта, если бизнес локальный. Для Санкт-Петербурга или Кронштадта это заметно влияет на видимость по геозависимым запросам.
  • Заглянуть в диагностику. Свежеподключённый сайт часто сразу показывает 2-3 накопленные проблемы, о которых владелец не знал.
  • Настроить уведомления на рабочую почту, а не на ту, куда никто не заходит.
  • Подключить IndexNow, чтобы новые страницы уходили в обход сразу после публикации. Как это делается, писал в отдельной статье.

На всё это уходит от получаса до полутора часов, если сайт нормальный. Если сайт со стажем и без присмотра, диагностика вываливает список на пару дней работы.

Итого

Способ выбирайте по доступам, а не по советам из интернета: есть FTP или SSH, кладите файл; доступ только в админку, ставьте метатег через mu-plugin; ничего нет, идите в DNS. Проверяйте результат запросом curl, а не глазами в браузере, потому что браузер показывает вам кэш, а робот видит другое. И держите подтверждение вечно, не убирая маркер после успешной проверки.

Если сайт не подтверждается третий день, а причина не находится, приходите с адресом сайта через форму на главной. Диагностика такого случая занимает у меня минут двадцать: цепочка редиректов, ответы сервера, содержимое head, DNS-зона. Подключение Вебмастера и Метрики с настройкой отчётов входит в абонентское обслуживание и отдельно не тарифицируется. Разовой задачей это тоже решается, но чаще у людей за подтверждением прав тянется целый хвост: закрытый robots, битый sitemap, старый подрядчик с полным доступом к панели.

Частые вопросы

Какой способ подтверждения выбрать

Если есть доступ к файлам, кладите файл в корень: быстро и надёжно. Если сайт на конструкторе, используйте мета-тег. Если ни того, ни другого, остаётся запись в DNS у регистратора.

Почему проверка не проходит

Файл съела CMS и отдаёт вместо него страницу 404, тег вырезал оптимизатор, запрос заворачивается редиректом с потерей пути, или проверяется не тот вариант адреса. Проверять надо ровно тот адрес, который добавили.

Сколько ждать проверку DNS-записи

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

Что делать после подтверждения

Добавить карту сайта, указать главное зеркало, проверить регион и посмотреть раздел диагностики. Именно там появляются предупреждения о заражении и о проблемах с индексацией.

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "SEO для малого бизнеса"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?