운영하기검색노출

작년 연말 즈음 부터 발생한 문제로 XE타운도 그렇고 저희 사이트도 그렇고 글 내용이 아닌 부분들이 글 요약을 색인되는 문제가 있어 제가 몇번 게시글을 작성했으나 특별한 답을 찾지 못했습니다.

 

네이버는 원래 그래 멍청해 그러니 신경쓸 문제가 아니야 라고 생각하신다면 뒤로가기를 눌러주세요.

 

저는 문제가 있다면 원인이 있고 해결할 수 있다면 꼭 해결을 해 보려는 생각을 가지고 문제를 다루곤 합니다.

 

pomelove1.png

네이버 검색창에 site:도메인 으로 검색했을때 해당 도메인이 가지고 있는 웹문서가 어느정도인지 보여주는 결과입니다. 이 검색에서 바로 문제가 발생되고 있다는 점 입니다. 그런데 모르셔서 그렇지 굉장히 많은 대다수의 사이트가 정도의 차이만 있을뿐 동일한 문제를 가지고 있습니다.

 

저희는 좀 심한게 보시면 회원의 정보와 게시글복사해가는 주소가 표시되고 글 내용은 아예 없습니다.

 

 

 

 

pomelove2.png

 

 

바로 동그라미친 부분을 글 요약으로 넣고 그리고 글 내용은 건너 띄고 또 글 아래 내용을 요약을로 색인 했습니다.

 

저희는 글 내용은 1도 없습니다. 만약 저대로 검색자에게 노출이 된다면 낭패가 되겠지요.

그러나 너무 큰 걱정은 안하셔도 됩니다. 제가 확인해 보니 키워드로 매칭되는 검색결과에서는 정확하게 글 내용이 색인된 것으로 노출이 됩니다. 동일한 문서여도 site:도메인 방식으로 검색할 때 문제가 생기는 상황입니다.

 

 

 

 

xe타운의 글 하나를 볼까요 ??

 

town.png

 

 

동그라미 친 부분이 글과 관련없는 부분이 색인이 되었습니다. 저건 뭘까요? 놀라지 마세요. 레이아웃 메뉴에 있는 묻고답하기가 속해있는 메뉴들입니다. 그부분이 글 요약을 수집이 된 것입니다.

 

그래도 XE타운은 저희보다 조금 나은게 글 내용이 1보다 많은 양이 있습니다. ㅋㅋ 

 

 

 

 

 

저는 처음에 rss내용 또는 소스의 meta를 왜 못가져가고 저렇게 엉뚱한 것을 가져가지 라는 접근만 했습니다. 그러다 보니 문제의 원인에 접근하지 못하고 있었습니다.

 

 

그런데 어느 순간 이게 파싱을 해서 그 안의 명확한 meta 소스만을 참조하는게 아니구나 라는 것을 눈치챘습니다. 왜 이리 오래걸렸을까요.. 그걸 의심하는데..

 

분명 보드스킨,레이아웃 등 엉뚱한 부분이 글 내용으로 수집되는 것을 고민하고 있어 놓구서 말입니다.

 

이 문제 해결을 위해 @기진곰 님과 함께 또는 필요하다면 의뢰를 통해 해결해 보기 위해 대화를 나누었습니다. 저는 파싱해서 문서를 가져가 그 가져간 내용 중에 글 요약을 찾아내는 방식 이라는 것 까지 생각을 했고 서버의 세팅 문제가 있을 것이라는 추측으로 대화를 했는데 기진곰님의 의견은 시멘틱한 구조의 문제일 것이라는 의견을 내셨습니다.

 

저도 서버세팅의 의심은 접고 그럼 네이버의 검색봇이 파싱을 하면서 오류를 일으킬 수 있다는 것에 촛점을 맞추고 테스트해 나가기로 했습니다.

사실 엇그제 @BNU 님과 함께 템플릿에서 문법이 먹히지 않는 문제를 해결하는 과정에서 사소한 문법적인 오류로 파싱하는 것에 오류를 유발할 수 있다는 것을 확인했습니다.

 

 

그러던 중 기진곰님께서 저희 글 내용이 나오는 곳과 가까운 윗쪽의 사소한 오류를 발견해 주셨습니다.  

 

 

해당 오류를 제거하면서 저희 문서의 요약으로 잘못 가져가는 부분인 회원의정보,글복사 부분을 크롤러는 제한하는 조건을 걸어 검색엔진이 해당부분이 없는 것 처럼 만들어 주었습니다.

 

 

이렇게 처리한 이유는 기진곰님과 대화를 하면서 어느정도 내린 결론이 네이버에서는 h1태그(글제목)을 찾고 그 아래에서 내용을 찾는 것이라는 추측성 결론을 내리게 되었습니다.

 

 

 

 

pomelove3.png

 

깔끔해졌죠??

 

 

 

네, 물론   site:도메인 으로 검색했을때만 문제가 됩니다.  궁금한 것을 단어로 검색했을때는 제대로 된 것으로 제공하고 있습니다. 그러니 만약 내 사이트도 도메인명으로 검색했을때 엉망이라도 그냥 두셔도 됩니다.

 

그런데 사실 이 검색결과가 웹마스터도구의 색인을 의미합니다. 네이버 내부적으로는 이 자료를 이용할 가능성이 매우 높습니다. 사이트를 평가한다던지 문서를 평가한다던지...  

 

문서는 다른데 같은 내용이 반복이 된다거나 한다면 나쁜 평가를 받겠죠. 그리고 찜찜하니까 저는 고치고 싶었습니다.

 

 

 

네이버도 파싱을하면서 meta 소스에 있는 글 요약으로 색인을 합니다. 

그리고 지금 언급한 방식으로도 글 요약을 색인을 합니다.

 

사이트 문서를 읽어가서 봇이 글 내용을 찾아내는 방식에 대응을 하고 싶다면 지금 제가 제안하는 것을 하셔야 합니다.

 

1.글읽는 스킨에 저 처럼 불필요한 것을 넣었다면 특히 글 제목 또는 내용 부근에 넣으셨다면 제거하시는게 좋습니다. 제거하기 싫다면 봇이 접근하지 못하도록 조건을 걸어주셔야 합니다.

 

2.게시판 목록에서 게시판의 안내나 공지를 위해 넣으신 부분도 가급적 글 읽는 곳에서는 나오지 않도록 하시는게 좋습니다.

 

1,2번의 이유는 언급한 부분들 중 사소한 문법오류가 있거나 혹은 봇이 해석하기에 혼돈을 주는 것들이 있다면 봇이 파싱을 하면서 글 내용부분을 엉뚱한 곳으로 찾게 됩니다.

 

xetwon.png

 

XE타운은 h1 태그에 인접한 카테고리를 출력하는 부분 그리고 로그인유도하는 부분의 코드가 어느정도 방해를 하고 있는 듯 합니다. 그래서 엉뚱한 레이아웃의 메뉴 부분을 가져오고 있습니다.

 

 

 

길게 적었지만 결론을 한줄로 적으면

 

제목 부근에 문법오류 또는 복잡한 코드를 넣지 마시고 만약 꼭 유지해야 한다면 !isCrawler() 로 봇에게는 가려주세요.

그럼 내용을 못찾던 봇이 잘 찾게 되는 결과를 보실 수도 있습니다. 저희 처럼요....

 

 

사실 네이버의 수집 방식에 관해 좀더 자세한 설명이 필요하지만 일부 생략을 한 부분이 있습니다. 핵심만 설명해 드리려다보니 다소 이해가 안가는 부분도 있을 겁니다.

 

 

  • profile
    GG 2018.03.09 22:32:32
    춧현!!!!!!!!!
  • ?
    DoubleCheck 2018.03.09 22:44:03
    좋은 내용 감사드립니다^^ 좋아요!!
  • ?
    Jack 2018.03.10 22:43:32
    네이버 로봇은 h1 태그 밑의 글자를 다 가져간다는 말씀이신가요?? 해결하려면 "h1 태그밑에 바로 내용이 출력되면 된다."는 말씀이신것 같은데 제가 맞게 이해를한건가요
  • profile
    웹지기 2018.03.11 14:55:49
    네. 단어로 검색했을때가 아닌 site:도메인명 으로 검색했을때 보여주는 것으로 봇이 html을 그대로 파싱해서 h1태그 아래에서 글내용으로 판단하는 것을 가져가는데 본문 내용처럼 불필요한 것이있거나 혹은 문법 오류등이 그 근방에 있으면 본문을 찾지 못하거나 혹은 다른 것이 먼저 들어가는 현상이 일어납니다.

    보통 사람들이 궁금한 단어를 넣어 검색하는 결과에서는 그렇지 않습니다.
  • ?
    Jack 2018.03.11 22:02:35
    그렇군요 저도 웹지기님 처럼 저렇게 나오는게 매우 찜찜한 사람으로써 참고가 많이되었습니다 ^^
  • profile
    웹지기 2018.03.12 13:49:50
    엉뚱한 부분이 글 요약으로 수집되어 색인에서 제외되었던 문서들이 다시 제대로된 요약으로 수집되어 색인이 되고 있네요.

    1300여개만 남았었습니다. 현재 3800개의 문서가 색인되었습니다.
  • profile
    웹지기 2018.03.12 15:13:02
    4000개 넘었네요~
  • profile
    웹지기 2018.03.12 18:31:51

    그동안 웹문서가 사라졌을때 막연하게 네이버에서 무언가 컨트롤한다고 또는 입맛에 따라 노출여부를 결정한다고 네이버 욕을 많이 했는데 이제 대충 네이버에서 어떻게 수집을 했고 어떤 경우 웹문서의 내용을 파악하지 못해 색인에서 지웠는지 알아낸 것 같네요.

    meta태그안의 정보는 공유등에서도 필수적으로 필요해서 잘 관리해야 하지만 최종 출력되는 html의 관리도 필요하다는 것에 대해 필요성을 알게 되었습니다. 물론 네이버가 문서 안에서 글 내용부분이 어디인지 정확하게 찾아낼 수 있다면 필요 없겠지만 현재까지 알아낸 바로는 네이버에서 문서의 내용이라고 판단하는 알고리즘이 경우에 따라 여러가지에 의해 방해를 받고 오류를 일으키니 좀 더 간결한 구조를 만들어야 할 것 같습니다.

    그리고 문서를 출력하면서 개입되는 애드온등도 영향을 준다면 그부분도 사용에 대해 다시 검토를 해 봐야 할 것 같네요.

  • ?
    yoon 2018.03.13 08:30:39

    유용한 정보 감사합니다. 웹지기님 혹시 이런식으로 사용을 하는 게 맞는건가요?

    <block cond="!isCrawler() ">
    // 검색봇 수집을 원치 않는 부분의 코드
    ......
    </block>
     

  • profile
    웹지기 2018.03.13 08:41:14
    네. 맞아요~ 따옴표 사이에 공백은 없애주시구요.
  • ?
    yoon 2018.03.13 08:44:54
    매번 유용한 정보 감사합니다.
  • profile
    웹지기 2018.03.13 09:00:33
    수정하신 부분이 있다면 문법오류도 있다면 제거하셔야해요.
    예를들면 class="asdf"style="cdf"
    이런경우 스킨이 동작하는 데는 문제가 전혀 없는데 글내용 근처에서 저런부분이 있으면 네이버 봇이 글 내용 부분을 건너띠는 현상이 생길 수 있습니디.

    혹은 style="asdf""

    이런식으로 오타를 낸게 영향을 줍니다.

    php7에서 템플릿에서 특정 문법이 안먹힐때 이런 오타가 있을 경우 발생하는걸 이번에 발견했구요.
    최근 코어에서 이부분 영향을 받지 않도록 조치가 되었습니다. 네이버봇은 문제가 계속 될테니 오타도 다 점검하시는게 좋습니다.
  • ?
    yoon 2018.03.13 10:27:14
    네 잘 알겠습니다.
    제대로 적용을 했는지 수정결과를 확인해봐야겠습니다. 웹지기님의 경우 네이버 반영이 어느정도 걸렸는지 궁금합니다.
  • profile
    웹지기 2018.03.13 11:43:50
    다음 파싱할때 적용되는데요. 보통 짧은면 한두시간 길면 10시간 이상 텀이 필요합니다. 네이버 주기와 맞아야 하거든요.
  • profile
    웹지기 2018.03.13 12:36:18
    네이버 봇이 열일하고 있네요.
    5500여개 넘게 색인이 되고 있습니다.
  • profile
    웹지기 2018.03.14 18:01:31
    네이버 봇 힘내!
    7200개 색인 했네요~~ 아직도 하루 종일 저희문서 수집하고 있습니다.
  • profile
    똑띠 2018.03.15 09:41:08
    대단하시네요.. 저도 한번 체크해 봐야겠네요..
  • profile
    웹지기 2018.03.15 09:48:16
    저희 문서가 2만개 인데 문서가치가 없는 것들이 많이 섞여있어서 몇개까지 색인이 될련지는 조금더 기다려 봐야겠네요. 네이버에서 직접 문서를 파싱해가면서 색인 하는 것이라..
    지금 7500개 가량 색인이 되었네요.
  • profile
    약사이다 2018.03.20 13:08:16
    수정후에 일일이 문서마다 요청을 다시 해주어야 하나요 ? 아님 자동으로 ? 네이버에서 재색인을 해가나요 ?
  • profile
    웹지기 2018.03.20 13:12:56
    이 문제가 있었고 해결이 되었다면 늦어도 3-4일 이내에 최근 글 부터 정상적으로 색인이 되기 시작하고 기존 글도 교체가 됩니다. 그리고 엉망이라 색인에서 제외된 문서들이 다시 색인되구요.
  • profile
    약사이다 2018.03.20 13:10:39
    저희 사이트도 조회를 해보면 제가 원하는 본문내용만 딱 가져간게 있고, 이상하게 가져간게 있고, 뒤죽박죽 엉망이어서요.. 글을 읽어봐도 솔직히 잘 이해가 안가네요
  • profile
    웹지기 2018.03.20 13:12:05
    원하는 부분만 딱 가져간건 최초 rss의 정보를 가져간 상태입니다. 이 후 다시 파싱해서 가져갈때 이상해 지는건데요.
    글 제목에 게시판명까지 나오게 해 놓으셨다면 게시판명이 없는 제목은 rss 정보로 1차적으로 수집해 간 상황입니다.
  • profile
    웹지기 2018.03.20 13:13:46
    쉽게 말하면 수집을 2번 한다고 보시면 됩니다.

    1차 rss에서 알려주 문서내용 그대로

    이후 2차로 파싱해서 네이버 봇이 해석한대로의 내용으로 교체합니다.
  • profile
    약사이다 2018.03.20 13:16:41
    감사합니다 ^^ 이해가 한번에 갔습니다. 그럼 두번쨰 가져간 부분들을 iscrawler 로 막아주면 본문만 딱 가져가게 될까요 ? 본문에 h1태그가 있어야만 본문을 가져가는 건가요 ??
  • profile
    웹지기 2018.03.20 13:18:27
    두분째 가져가는 것은 파싱의 방법이니까 네이버에서 보이는대로 해석합니다. 그런데 이게 좀 어설퍼서 뭔가 방해요소가 있으면 본문의 위치를 파악하지 못합니다.

    제목에 h1 태그를 안썼다면 네이버에서 본문 위치를 못찾을 가능성이 매우 높습니다.
  • profile
    웹지기 2018.03.20 13:24:56

    본문에 h1 태그를 쓰면 안됩니다.

    스킨에 보시면 문서제목은 <h1> 태그로 감싸져 있습니다.
    절대 본문에 또 넣지 마세요.....

     

    저희는 h1 태그로 감싸져 있는 문서제목을 찾고 그 이후 본문을 찾다가 저희가 넣어 놓은 코드가 본문으로 수집되어서 그 부분을 크롤러가 가져가지 못하도록 조치한 것입니다.

  • profile
    약사이다 2018.03.20 13:18:00
    그나저나 이런 엄청난 팁을 공유해주시다니.. 이건 정말 쉽게 공유하기 어려운 팁같은데, 너무 감사합니다 커피라도 한잔 사드리고 싶네요 ^^
  • profile
    웹지기 2018.03.20 13:21:00
    작년 가을 이후 네이버가 개편되면서 뭔가 수집알고리즘이 바뀌면서 발생 되는 문제라 보기 싫게 색인되는게 너무 싫어서 여러번 여기에 대화를 나누고자 글을 썼는데 그냥 저 혼자 떠들게 되었어요.

    그러다 @기진곰 님과 함께 해결 또는 의뢰를 통해(저희 서버 문제일 가능성때문에..) 해결해 보려고 이야기를 나누는 과정에서 왠지 SEO모듈에서 만든 정보가 아닌 긁어가는 과정에서 오류가 발생한다는 것에 착안을 해서 시도를 해 보니 해결이 되더라구요.

    뭐 저희 말고 다른 곳에서도 좋은 결과가 있으면 좋은거죠.
  • profile
    약사이다 2018.03.20 14:34:46
    제가 생각해보니 웹마스터도구에서 제목이 같은 글이 많다고 한것들이나 제목이 비었다는 것들도 이거와 연관이 있지 않앗을까 싶네요. 맞게 수정했습니다. 감사합니다
  • profile
    웹지기 2018.03.20 18:14:46
    오늘 검토를 해보니 제목 없는 것은 다운로드 주소가 색인된게 영향을 줄 것 같습니다. 저희도 예전에 이러한 주소가 색인된게 굉장히 많은 것 같네요. 이와 비슷한 색인이 뭐가 있나 시간 날때마다 찾아봐야 겠습니다.

    일단 저희는 robots.txt 파일 안에
    Disallow: /?module=file&act=procFileDownload*

    를 추가해 줬습니다. 추가하고 구글 웹마스터도구에서 테스트 해보니 차단이 되네요.
  • profile
    약사이다 2018.03.20 18:29:18
    오 이런방법이.. 혹시 게시판 리스트를 맘대로 변경해서 크롤링 해가는거나 읽기 화면 보는 방식을 변경해서 크롤링 해가는 거는 어떻게 막으시나요 ? 이것도 영향이 많이 갈거같더라구요
  • profile
    웹지기 2018.03.20 18:30:12
    막는 방법은 제가 위에 댓글로 써 놓은대로 단어를 일치하는 그리고 와일드카드 *를 이용해야 합니다.
  • profile
    약사이다 2018.03.20 19:45:43
    그렇군요 감사합니다. 테스트해보겠습니다 정말 많은 걸 배웁니다
  • ?
    루딩 2018.05.27 20:49:28
    웹지기님 팁이 상당히 도움되었습니다.

    실제 크롤러가 어떻게 퍼가는지 확인을 하기 위해서는

    소스코드 분석하는 방법도 있겠지만:)

    구글 웹마스터도구의 fetch as google 기능을 사용하시면 육안으로 손쉽게 block처리하실 수 있습니다!~

서버에 요청 중입니다. 잠시만 기다려 주십시오...