Оптимизация SEO для изображений (Image Sitemap, lazy loading SEO)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Оптимизация SEO для изображений (Image Sitemap, lazy loading SEO)
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Оптимизация SEO для изображений (Image Sitemap, lazy loading SEO)

Изображения — второй по величине источник органического трафика после текстовых результатов для многих сайтов. Интернет-магазины, портфолио, новостные сайты с фотографиями получают значительный трафик через Google Images. Без правильной оптимизации этот канал закрыт: отсутствие alt-текстов, неправильная реализация lazy loading и пропущенный image sitemap лишают поисковик возможности корректно обработать контент.

Alt-тексты: минимум и максимум

Alt — основной сигнал для Google Images. Правила:

  • Описывает содержимое изображения, не ключевые слова
  • Для декоративных изображений: alt="" (пустой, не отсутствующий)
  • Для изображений-ссылок: описывает назначение ссылки, не само изображение
  • Длина: до 125 символов практически, нет технического лимита
<!-- Неправильно: keyword stuffing -->
<img src="laptop.jpg" alt="ноутбук купить дешево ноутбук apple macbook pro">

<!-- Неправильно: пустое описание там где нужно -->
<img src="laptop-product-photo.jpg" alt="">

<!-- Правильно -->
<img src="macbook-pro-m3-space-gray.jpg" alt="MacBook Pro M3 14 дюймов, цвет Space Gray, вид спереди">

<!-- Декоративное (фоновые, разделители) -->
<img src="divider.svg" alt="" role="presentation">

Image Sitemap

Image Sitemap позволяет Google обнаружить изображения, которые он мог пропустить при краулинге — особенно если они загружаются через JavaScript.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">

  <url>
    <loc>https://example.com/products/macbook-pro-m3/</loc>
    <image:image>
      <image:loc>https://cdn.example.com/products/macbook-pro-m3-front.webp</image:loc>
      <image:title>MacBook Pro M3 — вид спереди</image:title>
      <image:caption>MacBook Pro с чипом M3, 14 дюймов, Space Gray</image:caption>
    </image:image>
    <image:image>
      <image:loc>https://cdn.example.com/products/macbook-pro-m3-side.webp</image:loc>
      <image:title>MacBook Pro M3 — вид сбоку</image:title>
    </image:image>
  </url>

</urlset>

До 1000 изображений в одном <url>. При большом каталоге — Sitemap Index:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-images-1.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-images-2.xml</loc>
  </sitemap>
</sitemapindex>

Генерация в PHP/Laravel: запрос к базе с chunk по 50000 изображений, запись через XMLWriter или шаблон Blade.

Lazy Loading: правильная реализация

loading="lazy" — нативный атрибут, который браузер и Googlebot понимают с 2019 года. Проблема: исторически многие сайты реализовывали lazy loading через data-src и JavaScript — такие изображения Google может не обнаружить.

Нативный lazy loading (рекомендуется):

<!-- Изображения выше fold: без lazy, с fetchpriority -->
<img
  src="/hero.webp"
  width="1200"
  height="800"
  fetchpriority="high"
  alt="..."
/>

<!-- Изображения ниже fold: lazy loading -->
<img
  src="/product-1.webp"
  width="400"
  height="300"
  loading="lazy"
  alt="..."
/>

JavaScript lazy loading через Intersection Observer (если нужна поддержка старых браузеров):

const imageObserver = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            const img = entry.target;
            img.src = img.dataset.src;
            if (img.dataset.srcset) {
                img.srcset = img.dataset.srcset;
            }
            img.classList.remove('lazy');
            observer.unobserve(img);
        }
    });
}, {
    rootMargin: '200px 0px' // Начинать загрузку за 200px до появления
});

document.querySelectorAll('img.lazy').forEach(img => {
    imageObserver.observe(img);
});
<!-- Разметка для JS lazy loading -->
<img
  class="lazy"
  data-src="/product-1.webp"
  data-srcset="/product-1-400w.webp 400w, /product-1-800w.webp 800w"
  src="/placeholder.svg"
  width="400"
  height="300"
  alt="..."
/>

Проблема для SEO: при JS-реализации Googlebot видит src="/placeholder.svg" и data-src="/product-1.webp". Google умеет обрабатывать data-src атрибут и понимает паттерн lazy loading, но нативный loading="lazy" надёжнее.

Проверка: Google Search Console → URL Inspection → View Crawled Page → Screenshots. Если изображения пустые — Googlebot не видит контент.

Форматы и размеры

WebP с JPEG/PNG fallback:

<picture>
  <source
    srcset="/product.webp 1x, /[email protected] 2x"
    type="image/webp"
  />
  <img
    src="/product.jpg"
    srcset="/product.jpg 1x, /[email protected] 2x"
    width="600"
    height="400"
    loading="lazy"
    alt="..."
  />
</picture>

AVIF для современных браузеров:

<picture>
  <source srcset="/product.avif" type="image/avif" />
  <source srcset="/product.webp" type="image/webp" />
  <img src="/product.jpg" loading="lazy" alt="..." />
</picture>

AVIF даёт 50–60% меньший размер по сравнению с JPEG при том же качестве. Поддерживается Chrome 85+, Firefox 93+, Safari 16+.

Responsive images:

<img
  srcset="
    /product-320w.webp  320w,
    /product-640w.webp  640w,
    /product-1280w.webp 1280w
  "
  sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw"
  src="/product-640w.webp"
  loading="lazy"
  alt="..."
/>

Без width и height браузер не может зарезервировать место до загрузки изображения — CLS растёт, Core Web Vitals ухудшаются.

Имена файлов и CDN

Имя файла — слабый, но учитываемый сигнал для Image Search:

# Плохо
IMG_20241015_143022.jpg
photo_2024_10_15.webp

# Хорошо
macbook-pro-m3-14-space-gray.webp
samsung-galaxy-s24-ultra-titanium-black.webp

Если изображения хранятся на CDN с хэшированными именами — это не критично, но alt и caption компенсируют.

Cache-Control для изображений:

location ~* \.(webp|avif|jpg|jpeg|png|gif|svg)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
    add_header Vary "Accept-Encoding";
}

immutable говорит браузеру не перепроверять файл при обновлении страницы — снижает количество запросов.

Аудит текущего состояния

# Найти изображения без alt через Screaming Frog
# Reports → Images → Missing Alt Text

# Через puppeteer (для JS-рендеренных сайтов)
node -e "
const puppeteer = require('puppeteer');
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://example.com');
    const missingAlts = await page.evaluate(() =>
        [...document.images].filter(img => !img.alt).map(img => img.src)
    );
    console.log('Missing alt:', missingAlts);
    await browser.close();
})();
"

GSC Enhancement → Images: Google сообщает о страницах, где изображения не могут быть проиндексированы.

Сроки

Аудит изображений (alt, форматы, lazy loading) на сайте до 100 страниц — 1–2 рабочих дня. Внедрение Image Sitemap + автогенерация при публикации — 2–3 дня. Конвертация существующих изображений в WebP/AVIF — зависит от объёма; скрипт пакетной конвертации через sharp или ffmpeg + обновление шаблонов — 2–4 дня.