
Проверка alt у картинок обычно всплывает последней в списке доработок — где-то после метатегов, скорости и ссылок. А потом выясняется, что на сайте четыре тысячи изображений, из них три с половиной тысячи для поиска не существуют: робот видит на их месте безымянный файл, про который ему нечего сказать. Ниже — порядок действий: как за один проход собрать все картинки сайта, отделить настоящие ошибки от безобидных и что писать в подписях.
Что робот делает с атрибутом alt и чего он не делает
Атрибут alt у тега <img> задумывался как текстовая замена изображения: если картинка не загрузилась или человек работает со скринридером, браузер зачитывает эту строку. Поисковые системы используют её иначе. Робот не «смотрит» картинку глазами — он опирается на косвенные признаки, и alt среди них самый прямой. Дальше идут имя файла, подпись под изображением, ближайший текст и текст ссылки, если картинка сама является ссылкой.
Отсюда вывод: alt влияет на две разные вещи. Первая — попадание картинки в поиск по изображениям и её позиция там. Вторая — понимание роботом самой страницы, но этот эффект слабее, и раздувать его не стоит: страница не выйдет в топ за счёт двадцати подписей с ключевыми словами. Без alt картинка в выдачу по изображениям почти не попадает — кроме случаев, когда её опознали по имени файла и окружающему тексту.
Чего alt не делает: он не заменяет содержательный текст, не лечит переспам и не участвует в сниппете обычной выдачи. Атрибут title — всплывающая подсказка, к alt отношения не имеет. И отдельно: то, что в админке WordPress называется «Подпись» или «Описание», попадает не в alt, а в <figcaption> или вообще никуда. Поэтому владельцы сайтов часто уверены, что подписи заполнены, а краулер показывает обратное.
Как найти все картинки без alt пачкой, а не вручную
Просматривать страницы по одной бессмысленно уже при сотне материалов. Нужен обход сайта с выгрузкой в таблицу. Рабочих вариантов три.
Десктопный краулер. Screaming Frog SEO Spider складывает изображения во вкладку Images с фильтрами Missing Alt Text, Missing Alt Attribute, Alt Text Over 100 Characters. Бесплатная версия ограничена 500 адресами: для блога хватает, для каталога нет. Так же устроены Netpeak Spider и Sitebulb.
Консоль браузера для быстрой прикидки. На странице достаточно выполнить document.querySelectorAll('img:not([alt])').length — вернётся число картинок вообще без атрибута. Отдельно проверяется img[alt=""], это не одно и то же. Способ показывает итоговый DOM после работы скриптов, а не исходный HTML.
Выгрузка через API или из базы. Для WordPress быстрее пройтись по REST API (/wp-json/wp/v2/posts?per_page=100&page=N), вытащить content.rendered и разобрать регулярным выражением все теги <img>. Тот же скрипт заодно посчитает повторы подписей — этого не умеет ни один краулер из коробки. У медиафайлов alt лежит в мета-поле _wp_attachment_image_alt.
Результат должен лечь в одну таблицу с колонками: адрес страницы, адрес картинки, значение alt, длина, код ответа.
| Что ищем | Чем найти | Что считать ошибкой | Приоритет |
|---|---|---|---|
| Атрибут alt отсутствует | Отчёт краулера по изображениям, фильтр Missing Alt Text | Любая содержательная картинка без атрибута | Высокий |
| alt пустой (alt=»») | Тот же отчёт с фильтром по пустому значению | Пустой alt у товарного фото, схемы, инфографики | Высокий |
| Одна подпись на многих страницах | Выгрузка всех alt в таблицу, сводная по повторам | Больше 5–10 повторов одной строки | Средний |
| Картинка отдаёт 404, 403 или редирект | Отчёт по кодам ответа для типа Images | Любой код, кроме 200 | Высокий |
| Адрес картинки только в data-атрибуте | Сравнение исходного HTML и отрендеренного DOM | Пустой или заглушечный src в исходном коде | Высокий |
| Каталог загрузок закрыт в robots.txt | Ручная проверка правил Disallow | Запрет на /uploads/, /images/, /files/ | Критичный |
Последний пункт проверяйте до всего остального. Если каталог с изображениями закрыт от обхода, работа над подписями бессмысленна: робот до них не дойдёт. Такая строчка часто достаётся сайту по наследству от старых шаблонов.
Одинаковые подписи на весь каталог — отдельная беда
Массовая простановка alt плагином выглядит соблазнительно: одна галочка, и красных строк в отчёте нет. Так рождается худший вариант — четыре тысячи изображений с подписью «купить пластиковые окна недорого в Москве». Это хуже пустого атрибута, и вот почему.
Поиск по картинкам показывает разные изображения. Когда сотни файлов описаны одной строкой, система выбирает из них одно, а остальные отбрасывает как дубли по смыслу. Вместо сотен точек входа остаётся одна, причём выбранная не вами.
Дальше: повторяющаяся коммерческая фраза в сотнях мест — признак переоптимизации. Когда связка «купить + товар + город» встречается на странице восемь раз в подписях, страница получает не бонус, а риск. И третье: шаблонная подпись бесполезна для человека.
Проверяется всё одной сводной таблицей: значение alt, группировка, счётчик. Что встречается больше десяти раз — требует внимания. Исключения законны: логотип в шапке, иконка корзины, аватар автора. Но их и должно быть три-четыре штуки, а не три тысячи.
Разновидность той же болезни — подпись из названия товара, но название однотипное: «Диван Ланкастер, фото 1», «Диван Ланкастер, фото 2». Спасает не отказ от автоподстановки, а её усложнение: в шаблон добавляют ракурс, цвет, комплектацию, материал.
Как писать alt и почему имя файла правят до загрузки
Рабочая формула подписи: что изображено + уточняющий признак + при необходимости бренд или модель. Без «картинка» и «фото» в начале. Длина 5–12 слов, ориентир по символам — до 125: дальше скринридеры обрезают строку, а краулеры помечают её как избыточную.
Плохо: alt="фото", alt="img_2451", alt="кухни кухни на заказ кухни недорого". Нормально: alt="Угловая кухня с фасадами из массива дуба, цвет венге". Ключевая фраза попадает в подпись естественно, потому что она и описывает изображение, а не вставлена туда отдельным движением.
Имя файла — второй по силе сигнал, и править его после загрузки дороже, чем до. Как только файл вставлен в двадцать статей, переименование означает либо массовую правку контента, либо цепочку редиректов. Поэтому имена приводят в порядок на этапе подготовки: IMG_20240517_141233.jpg становится uglovaya-kuhnya-massiv-duba-venge.jpg.
Правила простые. Латиница в транслите: кириллица в адресе превращается в последовательность вида %D0%BA%D1%83%D1%85 — работать будет, но читаемость теряется. Разделитель — дефис, не подчёркивание. Регистр нижний. Длина в пределах пяти-семи слов.
Связка «имя файла + alt + подпись + текст рядом» должна описывать одно и то же разными словами. Если файл называется uglovaya-kuhnya-venge.jpg, alt дублирует его слово в слово, а под картинкой та же фраза третий раз — это повтор, а не усиление сигнала. Логику подписей я разбирал в статье Alt у картинки нужен не слепым, а роботу: как подписи приводят клиентов.
Когда alt должен быть пустым
Пустой alt — не ошибка, а осознанное решение. alt="" означает: изображение декоративное, скринридеру его нужно пропустить. Если такую картинку подписать, пользователь голосового доступа услышит мусор между абзацами.
Пустым alt делают у разделителей, линий и фоновых узоров; у иконок рядом с текстом, который говорит то же самое (на кнопке написано «Позвонить», слева трубка — трубку подписывать не нужно); у повторного изображения того, что описано соседним текстом; у спейсеров размером в пиксель.
Ключевое отличие: alt="" — подпись, которую вы намеренно оставили пустой; отсутствие атрибута — подписи нет вообще. Для скринридера разница принципиальна: в первом случае он молча пропускает картинку, во втором пытается зачитать имя файла. В отчётах краулера это разные фильтры.
Особый случай — картинка внутри ссылки без текста: иконка соцсети, логотип-ссылка на главную, стрелка «следующий товар». Здесь alt описывает не изображение, а назначение ссылки: не alt="синий кружок", а alt="Страница компании во ВКонтакте". Оставите пустым — ссылка станет безымянной для скринридера и безанкорной для робота.
Вес, формат и размеры: подпись не спасёт тяжёлый файл
Идеально подписанная картинка весом четыре мегабайта проиграет средне подписанной весом сто килобайт. Скорость влияет и на поведение людей, и на обход: робот тратит на сайт ограниченное время, и если половина уходит на выкачивание тяжёлых фотографий, до новых страниц он доходит позже.
| Формат | Для чего подходит | Ориентир по весу | Ограничения |
|---|---|---|---|
| JPEG | Фотографии, карточки товара | 60–150 КБ при ширине 1200 px и качестве 78–82 | Нет прозрачности, артефакты на мелком тексте |
| PNG | Скриншоты, схемы, графика с прозрачностью | На фото вес растёт в разы против JPEG | Только там, где нужна прозрачность или чёткие линии |
| WebP | Универсальная замена JPEG и PNG | На 25–35% легче JPEG при сопоставимом качестве | Поддержка во всех актуальных браузерах, Safari с версии 14 |
| AVIF | Фотографии, где вес критичен | Ещё легче WebP при том же качестве | Safari поддерживает с версии 16.4, кодирование медленнее |
| SVG | Логотипы, иконки, простые схемы | Единицы килобайт | В поиске по картинкам практически не участвует |
| GIF | Короткие анимации | Тяжелее видео той же длительности | Заменяется на mp4 или webm с автовоспроизведением |
Помимо формата важны три вещи. Размеры файла должны совпадать с размерами отображения: фотография 4000 на 3000 пикселей в блоке шириной 600 — выброшенные мегабайты. Атрибуты width и height обязательны: без них браузер не резервирует место, и страница дёргается при подгрузке. И srcset с sizes, чтобы телефон не тянул десктопную версию.
Про отложенную загрузку. Атрибут loading="lazy" безопасен, его понимают и браузеры, и роботы. Опасны самописные решения, где в src лежит прозрачная заглушка, а настоящий адрес спрятан в data-src: такая картинка может не попасть в индекс. Вторая ошибка — ленивая загрузка на первом экране: отсрочка портит показатель отрисовки главного элемента. Механика описана в материале Ленивая загрузка картинок съедает ваш трафик из поиска по изображениям, а сборка форматов под WordPress — в статье Картинки съедают скорость WordPress: WebP, размеры и отложенная загрузка.
Картинки в карте сайта и переобход после правок
Здесь два поисковика ведут себя по-разному, и это стоит понимать до того, как тратить время на генерацию файлов.
Google поддерживает расширение карты сайта для изображений: внутри <url> добавляются блоки <image:image>, а в шапку подключается пространство имён http://www.google.com/schemas/sitemap-image/1.1. Смысл — указать картинки, которые иначе трудно обнаружить. Если весь контент виден в обычном HTML, выигрыш небольшой, но и вреда нет.
Яндекс отдельную карту для картинок не обрабатывает: он находит изображения при обходе страниц. Для него решают другие вещи — доступность файлов по прямым адресам с кодом 200, отсутствие запретов в robots.txt, разумный вес и осмысленная разметка. Общие правила составления карты разобраны в статье Карта сайта Sitemap.
После массовой простановки подписей встаёт вопрос, как быстро это подхватится. Не быстро: переобход идёт своим чередом, а пересчёт картинок отстаёт ещё сильнее. Ускорить можно по стандартной схеме — отправить изменённые страницы на переобход в Вебмастере, убедиться, что даты lastmod в карте реально изменились. Если правки заливались напрямую в базу, даты часто остаются старыми, и робот не считает страницы обновлёнными. Первых сдвигов раньше трёх-четырёх недель ждать не стоит, на крупном каталоге — раньше двух-трёх месяцев.
Сколько трафика даёт поиск по картинкам и когда им можно не заниматься
Мифов здесь хватает в обе стороны: одни обещают «половину трафика из картинок», другие считают канал мёртвым. Проверяется всё за десять минут по собственным данным — до того, как вкладывать неделю в переписывание подписей.
В Яндекс.Метрике откройте отчёт по источникам с детализацией по поисковым системам — переходы из Яндекс.Картинок отображаются отдельной строкой, а не сливаются с обычным поиском. В Google Search Console в отчёте по эффективности переключите тип поиска на «Изображение»: увидите показы, клики и запросы именно оттуда. Сравните с общей органикой — получите свою долю, а не среднюю по интернету.
Закономерность такая. У текстовых сайтов — блогов, услуг, B2B — доля картинок в органике измеряется единицами процентов. У «визуальных» тематик иначе: мебель, отделка и ремонт, ландшафт, одежда, флористика, автозапчасти. Там ищут глазами, кликают по картинке и попадают на страницу товара.
Ключевое условие — уникальность изображений. Если на карточках те же стоковые фотографии, что у полусотни конкурентов, alt не поможет: система выберет один источник, и это будет крупный магазин с историей. Собственная съёмка, схемы, фотографии с объектов — вот что попадает в выдачу. Приёмы под этот канал собраны в материале Поиск по картинкам Яндекса — забытый источник трафика, который качает продажи.
Теперь о ситуациях, где работа с подписями стоит внизу списка приоритетов. Не решены базовые проблемы обхода: пока страницы не попадают в поиск, картинки тем более не попадут. Визитка на пять-семь страниц — всё правится руками за час. Все изображения стоковые — вложения не окупятся. Интерфейсные проекты и личные кабинеты: там картинки служебные, им положен пустой alt. И страницы, у которых главная проблема в другом — тонкий текст, отсутствие цен, нерабочая форма заявки. Если непонятно, что чинить первым, помогает общий разбор по списку — последовательность проверок описана в материале Технический SEO-аудит своими руками: пошаговый чек-лист из 40 пунктов, а первичный разбор можно запросить на странице бесплатный аудит сайта.
Частые вопросы
Сколько картинок без alt считается критичным? Смотреть надо не на абсолютное число, а на долю содержательных изображений. Если из тысячи файлов девятьсот — иконки и декор, картина нормальная. Если без подписей стоят товарные фотографии, критично уже при десятках.
Можно ли проставить alt плагином массово? Плагин, подставляющий одну и ту же строку, вредит. Плагин, собирающий подпись из названия товара, характеристик и ракурса, — приемлемое решение для каталога. Для статей блога лучше вручную: там картинок мало, а смысла в них много.
Влияет ли alt на позиции обычной выдачи? Косвенно и слабо. Текст подписи учитывается как часть содержимого страницы, но заменить нормальный текст он не может. Основной эффект — в поиске по изображениям.
Нужно ли писать alt транслитом? Нет. Alt — текст для человека, он пишется на языке сайта обычными словами. Транслит нужен для имени файла, потому что это часть адреса.
Что делать со старыми картинками, у которых плохие имена файлов? Не трогать, если их много и они проиндексированы: переименование обнуляет вес адреса и требует правки всех вхождений. Правильные имена начинают с новых загрузок, старым дописывают подписи.
Учитывается ли alt у картинок, закрытых от индексации? Нет. Если файл недоступен роботу или страница закрыта, подпись не читается. Поэтому проверка правил обхода идёт первым пунктом, а не последним.
Коротко
- Перед работой с подписями проверьте, открыт ли каталог загрузок для обхода и отдают ли картинки код 200 — иначе всё остальное впустую.
- Собирайте изображения в одну таблицу краулером или выгрузкой через API: адрес страницы, адрес файла, значение alt, длина, код ответа.
- Одинаковая подпись на сотнях картинок хуже пустого атрибута: в поиске остаётся один файл вместо сотен, а страница получает признак переспама.
- Пустой
alt=""— рабочий инструмент для декора и дублирующих иконок; отсутствие атрибута — всегда ошибка, это разные вещи. - Имена файлов приводят в порядок до загрузки: транслит, дефисы, нижний регистр; старые массово не переименовывают.
- Долю трафика из картинок измеряют по своим данным — отчётом по поисковым системам в Метрике и типом поиска «Изображение» в Search Console.
Если по итогам выгрузки непонятно, за что браться первым — за подписи, за вес файлов или за другие разделы сайта, — вопрос быстрее закрыть разбором вживую: приходите на консультацию по SEO, посмотрим вашу выгрузку и определим порядок работ. Условия и подход к задачам такого рода описаны на странице продвижение сайта с картинками в поиске.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Викентий Шелестов
Прогнал каталог краулером: 6800 картинок, alt отсутствует у 5100. Руками это не переписать никогда. Плагин, который берёт название товара, ставить или нет?
Анатолий Кузнецов автор
Ставить, но не в самой простой конфигурации. Если плагин подставит одно только название товара, у карточки с шестью фотографиями получится шесть одинаковых подписей, и вы поменяете одну проблему на другую. Соберите шаблон из нескольких полей: название, ключевая характеристика (цвет, материал, размер) и порядковый признак ракурса, если он у вас хранится. Дальше выгрузите результат в таблицу и посмотрите сводную по повторам — всё, что встречается больше десяти раз, дорабатывайте отдельно. И обязательно отсортируйте картинки по посещаемости страниц: верхние двести карточек стоит подписать вручную, они дадут основной эффект.
Милана Пожарская
У нас все картинки в WordPress загружены с телефона, имена вида IMG_20230412_105533. Переименовать все разом или уже поздно?
Анатолий Кузнецов автор
Поздно в том смысле, что затраты перевесят выгоду. Переименование файла меняет его адрес: старый начнёт отдавать 404, накопленные сигналы обнулятся, а во всех статьях останутся битые ссылки, которые придётся править массово по базе. Делайте иначе: имена оставьте как есть, а подписи допишите — по alt робот вас поймёт и без красивого имени файла. Порядок наведите на входе: договоритесь, что перед загрузкой файл переименовывается по схеме «что изображено на транслите через дефис». Через год-полтора новых нормальных картинок станет больше, чем старых, и вопрос закроется сам.
Ростислав Кадочников
Валидатор ругается на пустые alt у иконок, а вы пишете, что так и надо. Кому верить?
Эмилия Ветлугина
Проверила через консоль на главной: img:not([alt]) даёт ноль, а в отчёте краулера двадцать три картинки без alt. Откуда расхождение?
Анатолий Кузнецов автор
Расхождение почти всегда означает, что подписи дорисовывает скрипт уже после загрузки страницы. Консоль показывает итоговое состояние DOM, а краулер по умолчанию читает исходный HTML, который пришёл с сервера, — там атрибутов ещё нет. Проверьте так: откройте страницу и посмотрите исходный код через «Просмотр кода страницы», а не через инспектор, это разные вещи. Если в исходнике alt отсутствует, лучше поправить шаблон и отдавать подписи сразу с сервера: полагаться на то, что робот выполнит ваш скрипт и дождётся результата, не стоит. Заодно включите в краулере режим рендеринга JavaScript и сравните два прогона — увидите точный список расхождений.
Гордей Полуянов
Метрика показывает, что из Яндекс.Картинок приходит около полутора процентов визитов. Стоит ли вообще этим заниматься при таких цифрах?
Таисия Мамонтова
А если alt заполнен, но написан на английском? Сайт русский, картинки грузил разработчик.
Иннокентий Броневой
Сделал карту сайта для изображений, отправил в Вебмастер — он её принял, но ничего не изменилось. Это нормально?
Анатолий Кузнецов автор
Нормально, потому что Яндекс расширение карты сайта для изображений не обрабатывает — он принимает файл как обычную карту и берёт из неё только адреса страниц. Блоки с картинками просто игнорируются. Пользу такой файл приносит на стороне Google, и то в основном там, где изображения подгружаются скриптами и иначе их трудно обнаружить. Для Яндекса работают другие вещи: файлы доступны по прямым адресам с кодом 200, каталог загрузок не закрыт в robots.txt, картинки видны в исходном HTML страницы. Проверьте эти три пункта — они дают больше, чем любая карта.
Есения Кулагина
Копирайтеры сдают статьи с картинками из стоков. Есть смысл подписывать их или это заведомо бесполезно?
Радислав Оточин
Сколько ждать после того, как проставил alt на всём сайте? Прошло три недели, в Картинках тишина.
Анатолий Кузнецов автор
Три недели — это только начало отсчёта. Сначала робот должен переобойти страницы, потом пересчитать картинки, и вторая часть отстаёт от первой ощутимо. Проверьте главное: изменилась ли у страниц дата последнего изменения. Если правки заливались напрямую в базу и дата осталась прежней, робот не считает страницы обновлёнными и придёт к ним в обычном порядке, то есть нескоро. Отправьте самые важные разделы на переобход вручную, убедитесь, что в карте сайта проставлены свежие lastmod, и дальше смотрите динамику по показам, а не по позициям. На каталоге в несколько тысяч карточек первые заметные сдвиги обычно видны на втором-третьем месяце.
Стефания Курбатова
Правильно ли я понимаю, что подпись под фотографией на странице и alt — это разные поля, и заполнять надо оба?
Аркадий Тюленев
Перевёл все картинки в WebP, вес упал втрое. Alt при конвертации не потерялся, но старые jpg остались на сервере. Удалять?
Пантелей Вьюгин
У нас интернет-магазин, но фотографии товаров дал поставщик — они же есть у всех дилеров. Подписи это как-то компенсируют?