Пустые атрибуты alt и title у изображений — распространённая проблема каталогов на 1С-Битрикс. Ниже разбираем, где эти атрибуты хранятся, как задать шаблоны подстановки и как массово заполнить их для тысяч картинок.
Зачем нужны alt и title у изображений
Атрибут alt — это текстовое описание изображения, которое видят поисковые роботы и пользователи скринридеров, а также посетители, у которых картинка не загрузилась. Атрибут title — всплывающая подсказка при наведении курсора.
- SEO: корректные
altпомогают ранжироваться в поиске по картинкам и добавляют релевантный текст странице. - Доступность (a11y): без
altконтент недоступен для незрячих пользователей, что также учитывается поисковыми системами. - Внутренняя перелинковка: осмысленные подписи к изображениям в товарах усиливают тематическую релевантность страницы.
В каталоге на 1С-Битрикс изображения тянутся из свойств инфоблока, и по умолчанию их alt/title часто пусты либо равны имени файла вида IMG_2841.jpg — это худший вариант для SEO.
Где Битрикс хранит alt и title изображений
Разберём основные места, где физически хранятся данные для атрибутов картинок.
- Поля «Картинка для анонса» и «Детальная картинка» элемента инфоблока — у них есть поле подписи (описание), которое можно использовать как
alt. - Свойства типа «Файл» (например, «Дополнительные фото» / галерея
MORE_PHOTO) — каждое значение имеет описание. - Таблица файлов
b_file— здесь у каждого загруженного файла есть полеDESCRIPTION, которое ядро возвращает в массиве через ключDESCRIPTION.
При выводе через CFile::ResizeImageGet() и хелпер CFile::ShowImage() Битрикс подставляет alt/title из переданных параметров. То есть итоговое значение атрибута формируется в шаблоне компонента, а не хранится готовым в базе.
Проверить исходные данные можно в админке: Контент → Инфоблоки → Типы инфоблоков → [ваш каталог], открыть элемент и посмотреть поля картинок и свойства-файлы.
Шаблон подстановки alt/title в компоненте
Правильный подход — задать шаблон вывода атрибута в кастомизированном шаблоне компонента (catalog.element, catalog.section, news.detail и т. п.). Формируйте alt из названия товара и, при необходимости, названия раздела или бренда.
- Скопируйте шаблон компонента в
/local/templates/или в свой шаблон сайта, чтобы не править ядро. - Найдите вывод изображения — как правило, это конструкция с
CFile::ShowImage()или прямой тег<img>. - Подставьте в
altиtitleимя элемента: используйте$arResult['NAME'], при необходимости добавляя суффикс.
Пример логики подстановки в шаблоне (упрощённо):
$alt = $arResult['NAME'] . ' — фото ' . ($index + 1);
Далее это значение передаётся в вывод: <img src="..." alt="<?=htmlspecialcharsbx($alt)?>" title="<?=htmlspecialcharsbx($alt)?>">. Обязательно оборачивайте значение в htmlspecialcharsbx(), иначе кавычки в названии товара сломают вёрстку.
Массовое заполнение alt/title для существующих картинок
Если каталог уже наполнен, а описания файлов пусты, значения подставляются на лету через шаблон (см. выше) — тогда база не меняется. Но иногда нужно записать DESCRIPTION в саму базу, например для выгрузки или для сторонних скриптов.
Это делается программно через API ядра. Общий алгоритм скрипта:
- Перебрать элементы инфоблока через
CIBlockElement::GetList()с выборкой полей картинок и свойств-файлов. - Для каждого
FILE_IDсформировать описание из названия товара. - Обновить запись файла: у объекта файла Битрикса выставить новое
DESCRIPTIONи сохранить через методы работы с файлами (или обновить свойство методомSetPropertyValuesExс передачей описания).
Запускайте такой скрипт разово или по расписанию через Настройки → Настройки продукта → Агенты либо системный cron. Обязательно делайте резервную копию таблицы b_file перед массовым обновлением.
Для типовых интернет-магазинов удобнее не трогать базу, а генерировать alt/title в шаблоне: тогда при изменении названия товара атрибут обновляется автоматически.
Правила составления alt и title для SEO
Автогенерация не должна плодить одинаковый или переспамленный текст. Придерживайтесь правил.
| Что делать | Чего избегать |
|---|---|
| Осмысленное описание: «Кроссовки Nike Air Zoom, вид сбоку» | Имя файла: «IMG_2841.jpg» |
| Уникальность для разных ракурсов одного товара | Одинаковый alt на всех фото товара |
| 1 ключевое слово естественно в описании | Список ключей через запятую (переспам) |
| Длина примерно до 125 символов | «Изображение», «фото», «картинка» без конкретики |
- Для товаров базовый шаблон:
[Название товара] — [номер/ракурс фото]. - Для баннеров и декоративных картинок, не несущих смысла, допустимо оставлять пустой
alt=""— так их игнорируют скринридеры. titleможно дублировать изaltили делать чуть короче; он менее важен для SEO, чемalt.
Частые ошибки
Ошибки, из-за которых генерация alt/title не даёт эффекта или вредит.
- Правка шаблона в ядре /bitrix/. При обновлении платформы изменения затираются. Кастомизируйте шаблоны только в
/local/или в шаблоне сайта. - Отсутствие экранирования. Без
htmlspecialcharsbx()кавычки и спецсимволы в названии товара ломают тег<img>. - Одинаковый alt на всех фото. Для галереи
MORE_PHOTOдобавляйте порядковый номер или ракурс, иначе получается дублирование. - Alt из имени файла. Транслит имени файла — не описание; поисковикам он бесполезен.
- Забытый кеш компонента. После правки шаблона очистите кеш через Настройки → Настройки продукта → Автокеширование или кнопкой сброса, иначе новые alt не появятся.
- Массовое обновление b_file без бэкапа. Ошибка в скрипте может перезаписать описания всех файлов сайта, включая не относящиеся к каталогу.
Как проверить результат
После настройки убедитесь, что атрибуты действительно попадают в HTML.
- Откройте страницу товара, вызовите просмотр исходного кода и найдите теги
<img>— у них должны быть непустыеalt. - Прогоните несколько ключевых страниц через встроенный инструмент Маркетинг → Поисковая оптимизация (или бизнес-инструмент «Поисковая оптимизация») — он подсвечивает изображения без alt.
- Используйте внешний краулер (например, аудит по картинкам), чтобы получить список страниц с пустыми
altпо всему сайту. - Проверьте выборочно галерею товара: у каждого фото
altдолжен отличаться.
Для доступности дополнительно протестируйте страницу скринридером или расширением проверки a11y — оно покажет изображения без текстовой альтернативы.
Итог
В 1С-Битрикс нет одной кнопки «сгенерировать alt для всех картинок» — атрибуты формируются в шаблоне компонента из данных элемента инфоблока. Практичная схема:
- Задайте в кастомном шаблоне подстановку
alt/titleиз названия товара и ракурса, с обязательным экранированием. - Не дублируйте описания и не используйте имена файлов.
- Массовую запись в базу применяйте только при явной необходимости и с бэкапом.
- Проверяйте результат в исходном коде страниц и инструментом поисковой оптимизации.
Такой подход закрывает и SEO по картинкам, и доступность, при этом атрибуты обновляются автоматически при изменении данных товара.