사람이 볼때 어떤 효과를 주기 위해 만들어진 기능이 과연 검색로봇이 문서를 가지고 갈때 어떠한 영향일 끼칠지 해당 수집로봇의 성능이나 특성을 잘 모르기 때문에 걱정이 생기는 경우가 있습니다. 물론 개인적인 걱정일 수도 있습니다.
그래서 왠만한 효과를 주는 코드 또는 애드온에는 크롤러에게는 제외하는 것을 적용합니다.
애드온에서는
if(isCrawler())
{
return;
}
이렇게 해서 해당 애드온의 효과가 크롤러에게는 적용되지 않도록 하고 있습니다.
@karma 님의 lazyload 애드온을 예를 들어보겠습니다.
<img class="lazyload" src="/addons/lazyload/gray.png" rawsrc="//dmain.com/files/attach/images/230/244/089/002/4499266a3537b82ead05903c386179ad.jpg" />
이미지 로딩 소스가 저렇게 변경되어서 실제이미지가 아닌 이미지가 로딩되는 소스로 바뀝니다. 이걸 검색봇이 가져가서 실제 이미지가 뒤에 rawsrc 의 이미지라는 것을 제대로 해석할지 걱정이 드는거죠.
그래서 저는 이럴때는 그냥 속편하게 크롤러에게는 해당 기능을 제공하지 않습니다. 다행히도 네이버와 구글의 경우는 크롤러를 식별하는 코드는 잘 인식하고 가져가서 검색노출에는 원본 소스 그대로를 가지고 갈 수 있습니다.
위 lazyload 애드온은 하나의 예시일 뿐이며 저는 팝업애드온 등 비슷한 성격의 애드온은 모두 크롤러는 리턴시키고 있습니다.
뭐 그냥 둬도 알아서 잘 해석 할건데 제가 유난일 수도 있습니다.
웹표준도 아니고 애드온 제작자분이나 lazyload 라이브러리가 막 만들어 넣은 rawsrc 속성을 크롤러가 인식할 것 같지는 않네요. 특히 꽉 막힌 네이버 로봇이라면 얄짤없겠죠 ㅋㅋㅋ
원래 이런 부가정보를 저장하기 위해 속성을 아무렇게나 지어넣으면 안되고, data-XXX 속성을 사용하는 것이 정석입니다. 그러나 XE 서드파티 자료들은 물론이고 유명한 JS 프레임워크들마저 이 권장사항은 안중에도 없는 것 같더군요. 없는 속성을 추가해도 대부분의 브라우저는 그냥 무시할 뿐이니... 그러나 네이버 로봇은 이런 속성이 있으면 체할지도 모릅니다. 걔는 만성 소화불량이거든요.