Перейти к содержанию

v1.0.3 обновление от 30-Окт-2025


ab.support.serhii

Рекомендуемые сообщения

  • Администраторы
Post #15114 Опубликовано

Дорогие друзья, сегодня мы выпустили релиз обновления:

Lazy load изображений v1.0.3 от 30-Окт-2025

Изменения в существующей функциональности:
[*] Добавлена совместимость с CS-Cart 4.19.1.

Обновления доступны всем пользователям с активной подпиской, производятся через Центр обновлений CS-Cart.


Хотите, мы оповестим Вас о следующем обновлении? Подпишитесь на наши каналы для анонсов:
Telegram
WhatsApp
YouTube

  • 1 месяц спустя...
Post #15284 Опубликовано (изменено)

Добрый день!
Пользуюсь вашим модулем Lazyload и есть вопрос по реализации, который критичен для SEO.

Сейчас модуль использует подход с подстановкой пустышки в src и реального изображения в data-src:

<img src="пустышка.jpg" 
     data-src="реальное-изображение.jpg" 
     class="lazyload">


Это проблема для SEO — поисковик при сканировании HTML видит только пустышку в src.

Для индексации реального изображения роботу нужно:

  1. Выполнить JavaScript
  2. Дождаться срабатывания библиотеки
  3. Увидеть подмену src на data-src

На практике это приводит к тому, что большинство lazy-изображений не индексируются в Google Images.

 

Вопрос: Почему выбран именно такой подход, а не нативный loading="lazy" с реальными src?

 

Альтернатива, которую используют наши конкуренты:

<img src="реальное-превью.jpg" 
     loading="lazy" 
     data-full="полноразмерное.jpg">

 

Преимущества такого подхода:

  1. Googlebot сразу видит реальные изображения
  2. 100% индексация в Google Images
  3. Не нужен дополнительный JavaScript, хорошо для Core Web Vitals
  4. Работает даже при отключенном JS

Что предлагаю:

  1. Добавить в модуль опцию «SEO-режим» с реальными src + loading="lazy"
  2. Сделать гибридный режим: первые N фото — реальные src, остальные — через JS
  3. Полностью перейти на нативный lazy load

Если не трудно, разъясните, пожалуйста, ваш подход. Может я что-то упускаю.

Спасибо!

Изменено пользователем KirillLB
  • Fire 1
Post #15285 Опубликовано

Даже Image Sitemap XML не решает проблему. Если фото в sitemap - это не значит что Google проиндексирует его.


Google проверяет конгруэнтность. То есть делает так:

  1. Видит URL фото в sitemap
  2. Переходит на страницу, где должно быть это фото
  3. Ищет <img> с этим URL, но не находит , так как там пустышка.
  4. Если не находит, помечает как «несоответствие»
  5. Даже если находит в data-src - это низкий приоритет так как JS-контент

    В моем images1.xml несколько тысяч фото https://skr.sh/sZ0raktRxlX
    Посмотрел через Google Search Console, проиндексировано только 162 шт. https://skr.sh/sZ0bRr3f5FO 
Post #15287 Опубликовано

@KirillLB Добрый день.

  1. На момент создания модуля поддержка атрибубута loading="lazy" была на уровне 70% что не подходит для глобального использования.
  2. loading="lazy" можно использовать только с изображениями, но при этом нельзя использовать с бекграундом.
  3. При использовании атрибута нельзя управлять глубиной прокрутки для подгрузки, браузеры сами принимают решение сколько изображений загружать.
В 10.12.2025 в 22:01, KirillLB сказал:

Для индексации реального изображения роботу нужно:

  1. Выполнить JavaScript
  2. Дождаться срабатывания библиотеки
  3. Увидеть подмену src на data-src

На практике это приводит к тому, что большинство lazy-изображений не индексируются в Google Images.

 

Подскажите пожалуйста, есть ли исследование, которое это подтверждает или это ваше предположение?

Роботы давно анализируют в том числе и JS и индексируют то, что хоть как-то похоже на ссылку (в предыдущих версиях темы Unitheme2 индексировались части JSON, которые в себе содержали данные для Ajax загрузок, при этом они не были ссылками)

 

В 10.12.2025 в 22:13, KirillLB сказал:

В моем images1.xml несколько тысяч фото https://skr.sh/sZ0raktRxlX
Посмотрел через Google Search Console, проиндексировано только 162 шт. https://skr.sh/sZ0bRr3f5FO 

 

Тут вы немного не правильно интерпретировали то что на экране. Согласно https://skr.sh/sZ0bRr3f5FO в файле обнаружено 163 ссылки, 1 из которых не проиндексирована.

 

 

Post #15288 Опубликовано

Исследования и кейсы:
1. Кейс-стади от Google Search Central (2021).
В реальном примере на сайте с lazy loading через JS Googlebot увидел только placeholders в src, а не реальные изображения. В результате в Google Images индексировались не те файлы, и трафик из поиска по изображениям упал. Рекомендация: использовать нативный loading="lazy" или-fallback для ботов.
https://marketingsyrup.com/google-search-central-live-images-lazy-loading-case-study/ 

2. Тест от Tezify (2020–2021).
Создан специальный landing page с одним обычным изображением (src) и одним lazy (JS с data-src). Поиск по site:tezify.com lazy loading в Google Images показал только первое — второе не индексировалось. Это прямой эксперимент, подтверждающий, что бот не ждет подмены без скролла.

https://www.tezify.com/lazy_loading/ 

3. Анализ от Tezify Blog (SEO Impact of Lazy Loading, 2021).

Если lazy-изображения центральны для контента, неиндексация снижает релевантность страницы в поиске (включая Images), что влияет на ранжирование. Тестировали с IntersectionObserver vs. scroll-events: без симуляции событий — 0% индексации offscreen-изображений. Упоминается "rendering budget" Google — ограниченное время на JS, из-за чего сложные библиотеки не всегда отрабатывают.

https://www.tezify.com/post/seo_impact_of_lazy_loading/

 

4. Официальная документация Google (обновлено 2025)

В "Fix Lazy-Loaded Website Content" прямо указано: "Если lazy loading реализован неправильно, он может скрыть контент от Google". Бот не кликает/скроллит, поэтому data-src не подменяется. Для изображений рекомендуют браузерный loading="lazy" (видит src сразу) или noscript. В подкасте Search Off the Record (2025) Martin Splitt добавил: библиотеки с data-src часто не индексируют изображения, если URL не попадает в src в рендеренном HTML.

https://developers.google.com/search/docs/crawling-indexing/javascript/lazy-loading?hl=ru

https://ppc.land/google-clarifies-lazy-loading-seo-impact-in-search-off-the-record-episode/

Еще вопрос по моему images1.xml.
Как могло получится, что в файле обнаружено всего 163 ссылки, хотя там несколько тысяч URL в файле?

  • Fire 1
Post #15289 Опубликовано

@KirillLB Спасибо за такое подробное описание.

 

Как говорили в одном известном месте:

Спойлер

image.png.1aabe4a73bc7833c5121814ecc4361c9.png

 

1. Статья 2021 года (сегодня почти 2026) и про конкретный кейс, в котором реализовано с ошибками. Тем не менее у нас используется подход, который описан в рекомендациях статьи (Intersection Observer)

2.Изображение в индексе, не смотря на всё описанное в статье http://i.abt.team/lev/2025-12-11_14421301.jpg

3.  У нас использется упомянутая библиотека lazysizes

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

 

В 11.12.2025 в 13:50, KirillLB сказал:

Еще вопрос по моему images1.xml.
Как могло получится, что в файле обнаружено всего 163 ссылки, хотя там несколько тысяч URL в файле?


Тут к сожалению не смогу вам подсказать, это вопрос быстрее к тех. поддержка GSC

Post #15290 Опубликовано (изменено)

@ab.developer.lev давайте упрости описание ситуации.

Вот подход вашего модуля: 

<a data-src="image-large.webp">
  <img class="lazyload" src="placeholder.webp" data-src="image-preview.webp">
</a>

 

Изображение placeholder.webp проиндексируется. Это понятно, ведь оно указано в атрибуте src — прямой путь до картинки.
Проиндексируются ли изображения, которые указаны в data-src, то есть image-large.webp, image-preview.webp, точно не известyо, гарантии нет.

Да, Google заявляет, что он может читать JS , но будет ли он это делать? И тем более брать в индекс реальное изображение товара, а не заглушку. Зачем это, когда он уже взял изображение из обычного атрибута src?

То есть я про то, что когда человек взаимодействует со страницей, то да, адрес изображения берется из атрибута data-src и вставляется в src.
Но нет гарантии, что робот при сканировании страницы это делает.
 

Вот ссылка на фрагмент документации Google https://web.dev/articles/browser-level-image-lazy-loading?hl=ru#browsers-dont-support 
В ней они даже указывают специальный тестовый сайт с картинками которые подгружаются через data-src https://skr.sh/sZ1EYGOO8Xb 

Проиндексирована только одна из них https://skr.sh/sZ1venq2TwU 

P.S. Проверил сейчас одну из страниц сайта через Google Search Console в инструменте Проверка URL.
URL реальных изображений из data-src не переехали в src

 https://skr.sh/sZ1T8UF5zVX Отсюда сомнение, что изображения проиндексировались.

Изменено пользователем KirillLB

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...