База знаний
Правила из версии краулера
Каждая статья описывает то же правило, которое пишет находку в аудите. Сейчас в каталоге 147 проверок.
Доступность
- FETCH_ERROR · ВысокийСтраница недоступна для проверкиКраулер не смог получить ответ сервера: сеть, DNS, таймаут или блокировка user-agent.
- HTTP_ERROR · ВысокийОшибочный HTTP-статусАдрес отдаёт 4xx или 5xx, хотя на него ведут внутренние ссылки или sitemap.
- HTML_LANG_MISSING · НизкийНе указан язык документаУ html нет lang — вспомогательные технологии и поиск хуже определяют язык.
- IMAGE_ALT_MISSING · СреднийИзображения без alt-атрибутаУ части img нет alt — и доступность, и понимание картинок роботом страдают.
- CHARSET_MISSING · НизкийНе указана кодировка документаВ HTML нет явного указания кодировки — браузер и робот могут неверно прочитать кириллицу.
- COMPRESSION_MISSING · НизкийHTML без сжатияHTML больше 2 КБ пришёл без Content-Encoding.
- DOCTYPE_MISSING · НизкийНет doctypeДокумент не начинается с HTML5 doctype — браузер может уйти в quirks mode.
- CACHE_CONTROL_MISSING · НизкийНет Cache-ControlHTML больше 1 КБ пришёл без Cache-Control — кэш посредников непредсказуем.
Ссылки
- REDIRECTED_URL · НизкийURL перенаправляет на другой адресИсходный URL отвечает редиректом, хотя в обходе он фигурирует как самостоятельная страница.
- REDIRECT_TEMPORARY · НизкийВ цепочке есть временный редиректВ цепочке есть 302, 303 или 307. Это наблюдение, не автоматическая SEO-ошибка.
- META_REFRESH · СреднийРедирект через meta refreshСтраница перенаправляет или обновляется через meta http-equiv=refresh. Это хуже HTTP-редиректа для роботов и доступности. Не автоматическая SEO-ошибка того же класса, что 302.
- JAVASCRIPT_HREF · СреднийСсылки javascript:Робот не перейдёт по javascript: — внутренние цели выпадают из обхода.
- URL_UNDERSCORE · НизкийПодчёркивание в пути URLВ pathname есть символ _. Поиск хуже разделяет слова в таком URL.
- URL_LONG · НизкийДлинный путь URLПуть и строка запроса вместе длиннее 115 символов. Это наблюдение читаемости, не требование Google и не повод к массовому редиректному переезду.
- URL_ENCODED · НизкийPercent-encoding в пути URLВ pathname есть %HH. Это хуже читается в ЧПУ. Кодирование query не эта находка. Не штраф Google.
- EMPTY_HREF · СреднийСсылка без адресаВ HTML есть <a href> с пустым значением или только с решёткой.
- EXTERNAL_LINK_NEW_TAB · НизкийВнешняя ссылка без новой вкладкиНа странице есть внешние http(s) ссылки без target=_blank при включённой UX-политике проекта.
- URL_UPPERCASE · НизкийЗаглавные буквы в пути URLВ pathname есть A–Z. Это плодит дубли на регистрозависимых серверах.
- URL_DOUBLE_SLASH · СреднийДвойной слэш в путиВ pathname встречается // — часто дубль и ломаный каноникал.
- LINK_BROKEN · ВысокийВнутренняя ссылка ведёт на ошибочный URLСо страниц выборки есть переход на URL, который ответил 4xx/5xx или ошибкой загрузки — в том числе если цель не вошла в лимит HTML-страниц.
- LINK_REDIRECT · СреднийВнутренняя ссылка ведёт на редиректСсылка указывает на адрес, который заканчивается другим URL (редирект) — по обходу HTML или по пробе цели.
- LINK_EXTERNAL_BROKEN · СреднийВнешняя ссылка ведёт на ошибочный URLСо страниц выборки есть исходящая ссылка на другой хост, и безопасная GET-проба этой цели ответила 4xx/5xx или ошибкой загрузки.
Безопасность
- HTTPS_NOT_USED · ВысокийСтраница доступна без HTTPSИндексируемая страница отдаётся по HTTP без перехода на защищённый протокол.
- MIXED_CONTENT · ВысокийСмешанный контент HTTP на HTTPSВ HTML HTTPS-страницы найдены ссылки на HTTP-ресурсы; фактическая загрузка браузером не проверена.
- HSTS_MISSING · НизкийНет HSTSСтартовая HTTPS-страница аудита отвечает без заголовка HSTS.
- TARGET_BLANK_UNSAFE · Низкийtarget=_blank без noopenerСсылка открывает новое окно без защиты от window.opener.
- NOSNIFF_MISSING · НизкийНет X-Content-Type-OptionsБраузер может угадать MIME-тип и исполнить неожиданный контент.
- FRAME_GUARD_MISSING · НизкийНет защиты от встраиванияБез запрета iframe чужой сайт может наложить свою кнопку на вашу страницу и перехватить клик. К продвижению в поиске это не относится.
- HTTPS_DOWNGRADE · ВысокийРедирект с HTTPS на HTTPВ цепочке редиректов после HTTPS встречается HTTP. Это утечка и риск смешанного контента, даже если финал снова HTTPS.
- URL_HTTP_VARIANT · ВысокийHTTP-версия стартового URL отдаёт 200Стартовая страница открыта по HTTPS, но тот же адрес по HTTP остаётся 200.
Метатеги
- TITLE_MISSING · ВысокийОтсутствует TitleВ HTML нет элемента title — поисковой системе не из чего собрать заголовок сниппета.
- TITLE_EMPTY · ВысокийПустой TitleЭлемент title есть, но после нормализации пробелов текста нет.
- TITLE_DUPLICATE · ВысокийДублирующийся TitleНесколько индексируемых страниц используют одинаковый заголовок документа.
- TITLE_SHORT · НизкийTitle слишком короткийКороткий Title: проверьте, достаточно ли он описывает страницу. Длина сама по себе не доказывает ошибку.
- TITLE_LONG · НизкийTitle слишком длинныйДлинный Title: проверьте повторы и положение главной темы.
- DESCRIPTION_MISSING · СреднийОтсутствует Meta DescriptionНет meta description: поиск соберёт сниппет из случайного фрагмента текста.
- DESCRIPTION_EMPTY · СреднийПустой Meta DescriptionТег meta description есть, но после нормализации пробелов текста нет.
- DESCRIPTION_DUPLICATE · ВысокийДублирующийся Meta DescriptionОдинаковый description на разных URL не помогает отличить страницы в выдаче.
- DESCRIPTION_SHORT · НизкийMeta Description слишком короткийОписание слишком короткое, чтобы стать полезным сниппетом.
- DESCRIPTION_LONG · НизкийMeta Description слишком длинныйДлинный description обрежется; конец текста в выдаче не увидят.
- FAVICON_MISSING · НизкийНе найдена иконка сайтаВ документе нет link rel=icon на favicon.
- FAVICON_UNREACHABLE · СреднийФайл иконки из HTML недоступенВ HTML есть ссылка на иконку, но GET вернул 404 или 410.
- FAVICON_INVALID · СреднийПо адресу иконки пришёл HTML или не изображениеСсылка на иконку есть, HTTP 200, но тело — HTML, не image/* или SVG-лист из нескольких символов.
- APPLE_TOUCH_ICON · НизкийФайл apple-touch-icon недоступенНа главной есть rel=apple-touch-icon, а GET этого адреса вернул 404, 410 или не изображение.
- OG_TITLE_MISSING · НизкийНет Open Graph titleНет property=og:title — мессенджеры и соцсети соберут заголовок превью наугад.
- OG_IMAGE_MISSING · НизкийНет Open Graph imageНет property=og:image — превью ссылки в мессенджерах будет пустым или случайным.
- JSON_LD_MISSING · НизкийНет микроразметкиУ страницы товара, новости или вопрос-ответа нет микроразметки ни в JSON-LD, ни в HTML.
- JSON_LD_INVALID · СреднийJSON-LD не разбираетсяБлок JSON-LD есть, но JSON.parse его не читает — робот разметку отбросит.
- OG_DESCRIPTION_MISSING · НизкийНет Open Graph descriptionНет property=og:description — в мессенджерах описание ссылки соберётся случайно.
- VIEWPORT_INVALID · НизкийНекорректный viewportviewport есть, но без width=device-width — мобильный сниппет и отрисовка могут сломаться.
- CHARSET_NOT_UTF8 · НизкийКодировка не UTF-8charset задан, но это не UTF-8.
- TITLE_MULTIPLE · СреднийНесколько TitleВ HTML больше одного title — робот может взять не тот заголовок.
- DESCRIPTION_EQUALS_TITLE · НизкийDescription совпадает с Titlemeta description посимвольно совпадает с Title после нормализации регистра.
- HTML_LANG_INVALID · НизкийНекорректный язык документаАтрибут html lang есть, но код языка не разбирается.
- H1_EMPTY · СреднийПустой H1Тег H1 есть, но после нормализации пробелов текста нет.
- TITLE_EQUALS_H1 · НизкийTitle совпадает с H1Title и первый H1 совпадают без учёта регистра.
- META_KEYWORDS · НизкийУказан meta keywordsВ документе есть непустой meta name=keywords. Для Google это не сигнал ранжирования.
- OG_URL_MISSING · НизкийНет og:urlЕсть og:title, но нет og:url — превью в соцсетях может склеить дубли.
- TWITTER_CARD_MISSING · НизкийНет twitter:cardOpen Graph есть, карточка X/Twitter не объявлена.
- SCHEMA_FIELD_MISSING · НизкийВ микроразметке пустое полеНа странице есть Product, Offer, Organization, Article или BreadcrumbList, но нужное поле пустое.
- SCHEMA_FIELD_MISMATCH · НизкийПоле микроразметки не совпадает с текстомТекст name, headline или пункта хлебных крошек не найден в видимом тексте.
- TRUST_ORGANIZATION_MISSING · НизкийНет разметки организацииНа стартовой странице нет типа Organization или LocalBusiness.
Заголовки
- H1_MISSING · СреднийОтсутствует H1На странице нет H1 — тема для пользователя и для документа не названа явно.
- H1_MULTIPLE · НизкийНесколько H1Найдено несколько H1. Это повод проверить структуру, а не автоматическое доказательство SEO-ошибки.
- H1_DUPLICATE · СреднийДублирующийся H1Несколько страниц используют одинаковый H1, хотя должны различаться по теме.
- HEADING_ORDER · НизкийПропущен уровень заголовковВ разметке заголовок перескакивает уровень, например с H1 сразу на H3.
- H1_LONG · НизкийH1 слишком длинныйТекст H1 длиннее 70 символов.
Индексация
- CANONICAL_MISSING · НизкийНе указан canonicalНет rel=canonical: при параметрах и копиях поиск сам выбирает предпочтительный URL.
- CANONICAL_EXTERNAL · НизкийCanonical ведёт на другой доменcanonical указывает на чужой хост — сигнал «канон не здесь».
- ROBOTS_NOINDEX · НизкийСтраница закрыта через meta robotsДля Googlebot обнаружено ограничение noindex или none в meta robots/googlebot.
- ROBOTS_NOFOLLOW · НизкийСтраница с nofollow в meta robotsmeta robots содержит nofollow: ссылки со страницы слабее передают обход.
- CANONICAL_NOT_SELF · НизкийCanonical указывает на другой URL хостаrel=canonical на том же хосте ведёт не на текущий конечный URL.
- X_ROBOTS_NOINDEX · НизкийСтраница закрыта через X-Robots-TagHTTP-заголовок X-Robots-Tag содержит применимый к Googlebot noindex или none.
- HREFLANG_INVALID · СреднийНекорректный hreflangТег hreflang есть, но язык пустой, не по BCP 47, или href нельзя разобрать как URL.
- CANONICAL_MULTIPLE · СреднийНесколько canonicalНесколько canonical запутывают канонический URL.
- CANONICAL_LINK_CONFLICT · СреднийКонфликт HTML canonical и HTTP LinkHTML link rel=canonical и HTTP Link rel=canonical задают разные адреса. Поиск может выбрать любой сигнал или проигнорировать оба.
- CANONICAL_HTTP · СреднийCanonical на HTTP при HTTPS-страницеСтраница открыта по HTTPS, а canonical ведёт на http://.
- HREFLANG_NO_XDEFAULT · НизкийНет x-default в hreflangОбъявлено минимум два hreflang, но нет x-default.
- HREFLANG_NO_SELF · СреднийВ hreflang нет ссылки на текущую страницуНа странице есть hreflang, но ни один href не совпадает с конечным URL или HTML canonical. Поиск не связывает версию с собой.
- HREFLANG_NONCANONICAL · Среднийhreflang стоит на странице с чужим canonicalНа странице есть hreflang, но HTML или HTTP Link canonical указывает на другой URL. Поиск должен читать языковые аннотации на канонической версии.
- HREFLANG_DUPLICATE_LANG · СреднийОдин код языка в hreflang указывает на разные URLНа странице один код языка в HTML, HTTP Link или sitemap xhtml ведёт на разные адреса. Поиск не знает, какую версию связать с этим языком.
- HREFLANG_TARGET_ERROR · Среднийhreflang ведёт на ошибочный HTTP-ответОбъявленный hreflang указывает на URL, который отвечает ошибкой. Поиск не сможет связать языковые версии.
- HREFLANG_TARGET_NOINDEX · Среднийhreflang ведёт на страницу с noindexОбъявленный hreflang указывает на 2xx-URL, закрытый meta robots или X-Robots-Tag. Поиск не свяжет эту языковую версию.
- HREFLANG_TARGET_CANONICAL · Среднийhreflang ведёт на URL с чужим canonicalОбъявленный hreflang указывает на 2xx-URL, у которого HTML или HTTP Link canonical — другой адрес. Поиск должен получать канонические языковые URL.
- HREFLANG_NOT_RECIPROCAL · СреднийЦель hreflang не ссылается обратноСтраница объявляет hreflang на другой URL, но цель не возвращает ссылку. Поиск не подтвердит пару языковых версий.
- HREFLANG_CLUSTER_MISMATCH · СреднийНаборы hreflang на связанных URL не совпадаютЦель вернула ссылку на эту страницу, но список hreflang href отличается. Поиск видит разные кластеры локалей.
- HREFLANG_RETURN_LANG · СреднийОбратная ссылка hreflang с чужим кодом языкаЦель ссылается обратно, но hreflang на этот URL не совпадает с self-кодом источника. Поиск не свяжет пару версий.
- HREFLANG_LANG_MAP · СреднийСловарь hreflang язык→URL не совпадаетЦель ссылается обратно и перечисляет те же URL, но языковые коды привязаны к другим адресам. Поиск видит разные кластеры локалей.
- HREFLANG_LINK_CONFLICT · СреднийHTTP Link hreflang не совпадает с HTMLСтраница объявляет hreflang и в HTML, и в HTTP Link, но пары язык→URL различаются. Поиск видит разные кластеры.
- HREFLANG_SITEMAP_XHTML · Среднийxhtml:link в sitemap не совпадает с HTML hreflangВ карте сайта у этого loc есть xhtml:link, но набор пар не совпадает с HTML. Поиск видит разные кластеры.
- INDEXABLE_QUERY · НизкийИндексируемый URL с параметрамиСтраница без noindex доступна с query-параметрами, которые не относятся к отслеживанию, пагинации, ловушкам и фильтрам каталога.
- QUERY_TRACKING · НизкийTracking-параметры на индексируемом URLКонечный URL без noindex содержит utm_*, gclid, fbclid, yclid, ysclid, mc_eid/mc_cid, _ga или _gl. Это инвентаризация меток, не запрет рекламы и не требование закрыть все query.
- QUERY_PAGINATION · НизкийПараметры пагинации на индексируемом URLКонечный URL без noindex содержит page, paged, pagenum, pageno, pg, start или offset. Это инвентаризация пагинации, не ошибка и не требование склеить все страницы на первую.
- PAGINATION_NO_PREVIOUS · СреднийНет ссылки на предыдущую страницуИндексируемый URL с page, paged, pagenum, pageno или pg от 2, либо со start или offset больше нуля, не содержит ссылку <a> на предыдущий шаг. Для номера страницы 2 и для start/offset подходит тот же адрес без этого параметра.
- PAGINATION_NO_INCOMING · СреднийПредыдущая страница не ссылается сюдаВ этом запуске скачана предыдущая страница, и в её HTML нет обычной ссылки на текущий номер или на текущий start/offset.
- PAGINATION_VIEW_ALL · СреднийСтраница «показать все» повторяет одну страницуИндексируемый URL page=all, paged=all, pagenum=all, pageno=all или pg=all имеет тот же видимый текст, что и скачанная страница с номером той же последовательности.
- QUERY_TRAP · НизкийПараметры ловушки на индексируемом URLКонечный URL без noindex содержит sid, PHPSESSID, sessionid, cfid/cftoken, from/ref/referrer, date/day/month/year/calendar, start_date/end_date или timestamp. Это инвентаризация ловушек обхода, не запрет новостных дат без разбора.
- QUERY_FILTER · НизкийФильтры или SKU в query на индексируемом URLКонечный URL без noindex содержит сортировку, фасет, SKU или похожий ключ каталога в query. Это инвентаризация, не требование удалить фильтры и не запрет посадочных.
- NOINDEX_IN_SITEMAP · Среднийnoindex в sitemapАдрес есть в sitemap и одновременно закрыт meta robots или X-Robots-Tag.
- ROBOTS_DISALLOW_ALL · Высокийrobots.txt запрещает обход стартового URLПолитика robots запрещает обход стартового URL для краулера.
- ROBOTS_SITEMAP_MISSING · НизкийВ robots.txt нет Sitemaprobots.txt не указывает sitemap, хотя это основной способ заявить карту роботам.
- ROBOTS_FILE_MISSING · СреднийФайл robots.txt отсутствуетЗапрос /robots.txt вернул 404 или 410. Это не запрет индексации и не Disallow.
- ROBOTS_FILE_INVALID · Среднийrobots.txt отдаёт HTMLПо адресу robots.txt пришёл HTML (по Content-Type или по началу тела). Такой ответ не разбирается как политика.
- ROBOTS_INDEXING_DISALLOW · Высокийrobots.txt запрещает обход стартового URL поисковому роботуПолитика robots запрещает обход стартового URL для Googlebot или YandexBot.
- ROBOTS_PAGE_DISALLOW · Среднийrobots.txt закрывает URL страницы для поискового роботаСтраница попала в обход, но robots.txt запрещает её Googlebot или YandexBot. Поиск может не сканировать этот URL.
- ROBOTS_UNSUPPORTED_DIRECTIVE · НизкийВ robots.txt есть директивы, которые Google не используетВ читаемом robots.txt найдены Crawl-delay, Host, Clean-param, Noindex или Nofollow. Google их не применяет.
- CANONICAL_TARGET_ERROR · ВысокийCanonical ведёт на ошибочный HTTP-ответrel=canonical указывает на URL, который отвечает ошибкой. Поиск не получит рабочую каноническую версию.
- CANONICAL_TARGET_NOINDEX · ВысокийCanonical ведёт на страницу с noindexЦель rel=canonical отвечает 2xx, но закрыта meta robots или X-Robots-Tag.
- CANONICAL_LOOP · СреднийCanonical образует петлюСтраница A указывает canonical на B, а B указывает обратно на A — или hop 3/4/5/6 замыкает цикл на A. Поиск не получает однозначной канонической версии.
- CANONICAL_CHAIN · СреднийЦепочка canonicalrel=canonical ведёт на страницу, у которой свой canonical на третий URL. Поиск может не пройти цепочку до конца.
- CANONICAL_BASE_CONFLICT · СреднийCanonical зависит от base hrefОтносительный rel=canonical разрешается относительно `<base href>` иначе, чем от URL документа. Поиск и браузер могут выбрать разные каноны.
- URL_SLASH_VARIANT · СреднийСлеш и без слеша оба отдают 200Вариант URL со завершающим слешем и без него оба остаются 200, не сходясь в один адрес.
- URL_INDEX_VARIANT · Среднийindex.php или index.html отдаёт 200Вариант с index.php или index.html отвечает 200 и не сходится с основным путём seed.
- URL_WWW_VARIANT · Среднийwww и без www оба отдают 200Версия хоста с www и без www обе отвечают 200 и не сходятся в один адрес.
- URL_MIRROR_CONFLICT · Среднийwww и без www объявлены как разные зеркалаСтартовый хост, canonical или Host в robots.txt расходятся по паре www / apex.
- URL_MULTI_SLASH_VARIANT · СреднийВариант пути с лишним слешем отдаёт 200Стартовый URL и тот же путь с лишним слешем оба отвечают 200 и не сходятся в один адрес.
- URL_CASE_VARIANT · СреднийВариант URL с другим регистром отдаёт 200Стартовый URL и тот же путь с другим регистром оба отвечают 200 и не сходятся в один адрес.
- URL_UNKNOWN_INDEXABLE · СреднийНесуществующий путь отвечает 200Случайный заведомо отсутствующий путь вернул 200 — признак catch-all или soft-404.
- URL_UNKNOWN_REDIRECT_HOME · СреднийНесуществующий путь редиректит на главнуюСинтетический заведомо отсутствующий URL заканчивается на стартовой главной с 200.
- URL_SOFT_404 · НизкийНесуществующий путь отвечает 200 как страница 404Заведомо отсутствующий URL вернул HTTP 200, но title или H1 выглядят как страница ошибки. Это подозрение, не подтверждённый статус 404.
- SITEMAP_FILE_MISSING · СреднийФайл sitemap не найденНи один кандидат карты (Sitemap из robots.txt и /sitemap.xml) не открылся: 404 или 410.
- SITEMAP_FILE_INVALID · СреднийПо адресу sitemap пришёл HTML или не карта сайтаКандидат карты ответил 200, но тело — HTML или не urlset/sitemapindex. Такой ответ не разбирается как loc.
- SITEMAP_URL_ERROR · ВысокийURL из sitemap отвечает ошибкойАдрес есть в карте сайта, а HTTP-ответ этой записи — 4xx или 5xx.
- SITEMAP_URL_REDIRECT · СреднийURL из sitemap перенаправляетАдрес из sitemap заканчивается другим URL после редиректа.
- SITEMAP_URL_DUPLICATE · СреднийURL повторяется в sitemapОдин и тот же адрес указан в карте сайта больше одного раза — в одном документе или в нескольких.
- SITEMAP_URL_BLOCKED · СреднийURL из sitemap закрыт robots.txtАдрес есть в карте сайта, но robots.txt запрещает его нашему боту.
- SITEMAP_URL_NONCANONICAL · СреднийURL из sitemap не каноническийАдрес есть в карте сайта, а canonical страницы указывает на другой URL.
- SITEMAP_LASTMOD_INVALID · СреднийНекорректный lastmod в sitemapУ loc в карте сайта указан lastmod, который нельзя разобрать как календарную дату.
- SITEMAP_LASTMOD_FUTURE · Среднийlastmod в sitemap в будущемlastmod у loc позже даты аудита: для даты без времени — позже UTC-дня, для даты-времени — позже момента скана.
- SITEMAP_LASTMOD_MISMATCH · Среднийlastmod не совпадает с Last-ModifiedУ loc в карте есть валидный lastmod, а UTC-день не совпадает с заголовком Last-Modified ответа страницы.
- SITEMAP_URL_MISSING · СреднийСтраница не указана в sitemapКраулер нашёл индексируемую страницу по ссылкам или со старта, а в sitemap её нет.
Мобильная вёрстка
Производительность
Контент
- CONTENT_THIN · НизкийСлишком мало видимого текстаПосле удаления script/style в body меньше 200 символов видимого текста.
- CONTENT_DUPLICATE · СреднийОдинаковый видимый текст на разных URLНесколько страниц с разным каноническим URL отдают один и тот же видимый текст body. Совпадение Title или Description само по себе не эта находка.
- IMAGE_EMPTY_SRC · СреднийИзображение без адресаЕсть img без src, с пустым src, # или javascript:.
- CONTENT_ORPHAN · НизкийНет входящей внутренней ссылкиИндексируемая страница обойдена, но ни одна другая страница выборки на неё не ссылается.
- CONTENT_STALE · НизкийУстаревший lastmodВ sitemap у страницы lastmod старше 18 месяцев.
- TRUST_AUTHOR_MISSING · НизкийНе найден автор материалаНа странице раздела новостей или статей не найден сигнал автора.
- TRUST_DATE_MISSING · НизкийНе найдена дата материалаНа странице статьи не найдена дата публикации или изменения.
- TRUST_CONTACT_MISSING · НизкийНа главной не найдены контактыНа стартовой странице нет телефона и почты.
Скорость
Мобильная версия
- MOBILE_OVERFLOW · НизкийСтраница шире мобильного экранаВ лабораторном мобильном окне документ шире видимой области.
- MOBILE_SMALL_TEXT · НизкийСлишком мелкий текстНа мобильной ширине есть видимый текст мельче 12 пикселей.
- MOBILE_TAP_TARGET · НизкийМелкая зона нажатияНа мобильной ширине есть ссылка или кнопка меньше 24×24 пикселей.