인라인 스타일을 사용하여 이미지를 숨기지 않는 한 대부분의 검색 엔진은 숨겨진 이미지를 인덱싱합니다. 대부분의 브라우저는 숨겨진 이미지를로드 하지 않습니다 .
이 주장을 확인할 수있는 테스트 페이지가 있습니다. 일부 구형 모바일 브라우저는 예외이지만, 휴대 전화의 게으른 로딩은 좋은 브라우징 경험에 역효과를 줄 수 있다고 주장합니다.
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는 위 요소의 레이아웃이 완료된 직후에 실행됩니다. 맨 아래에 모든 외부 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 getElementsByClassName
는 8 이상에서 지원하지 않기 때문에 IE9에 대한 조건을 추가했습니다 . 테스트되지 않은 것은 브라우저가 이미지를 그대로로드한다는 것입니다.
이 접근 방식의 장점은 웹 크롤러의 관점에서 HTML을 깨끗하게 유지한다는 것입니다.