ほとんどの検索エンジンは、インラインスタイルを使用して画像を非表示にしない限り、非表示の画像にインデックスを付けます。大部分のブラウザは非表示の画像をロードしません。
この主張を検証できるテストページがあります。一部の古いモバイルブラウザは例外ですが、携帯電話での遅延読み込みは優れたブラウジングエクスペリエンスに逆効果になる可能性があると主張します。
http://www.w3.org/2009/03/image-display-none/test.php
CSSファイルに次の変更を追加します。
.lazy-img { display: none; }
これで、このような遅延イメージを含むページをロードでき、インデックスが作成されます。
<body>
<img class="lazy-img" src="img1.jpeg" title="image title"/>
<img class="lazy-img" src="img2.jpeg" title="image title"/>
<img class="lazy-img" src="img3.jpeg" title="image title"/>
<img class="lazy-img" src="img4.jpeg" title="image title"/>
</body>
title
画像の属性を含めることが重要です。またはあなたが囲む<img
>タグをリンク<a
>タグとリンクテキストでます。それ以外の場合、検索エンジンは単語の距離によってキーワードを画像に関連付けます。あなたはSEOのためにこの問題をすべて解決するつもりです。
上記をそのまま使用する場合。画像が非表示になっているため、何も表示されません。ドキュメントの下部にあるこのクラスを削除します。ここで重要なのは、インラインの純粋なJavascriptを使用することです。このJavascriptは、上記の要素のレイアウトが終了した直後に実行されます。すべての外部JSファイルを下部にロードする場合(必要に応じて)。これらのファイルの上にこのJavascriptブロックを配置する必要があります。そのため、DOMの変更に遅れはありません。
<body>
<!--[if lte IE 8]
<style type="text/css">.lazy-img { display: block !important; }</style>
[endif]-->
<noscript><style type="text/css">.lazy-img { display: block !important; }</style></noscript>
<img class="lazy-img" src="img1.jpeg" title="image title"/>
<img class="lazy-img" src="img2.jpeg" title="image title"/>
<img class="lazy-img" src="img3.jpeg" title="image title"/>
<img class="lazy-img" src="img4.jpeg" title="image title"/>
<![if gte IE 9]>
<script type="text/javascript">
var images = document.getElementsByClassName('lazy-img');
Array.prototype.forEach.call(images, function(image){
image.setAttribute("data-src",image.getAttribute("src"));
image.setAttribute("src","loading.gif");
});
while(images.length > 0) { images[0].className = ""; }
</script>
<![endif]>
</body>
IE9がサポートしていないため、IE9の条件を追加しました getElementsByClassName
8れ、。何が起こるべきか(テストされていない)は、これらのブラウザは画像をそのままロードするだけです。
このアプローチの利点は、Webクローラーの観点からHTMLをきれいに保つことです。