웹 검색 허용 수집

박상수
5 min readDec 18, 2019

--

원치도 않은 내 홈페이지 정보를 크롤러가 가져가기도 하고
크롤러가 더 잘 가져가도록 설정을 해야되는 경우도 있다.
전자를 우리는 크롤링이라고 표현하고
후자를 검색엔진(Search Engine Optimization)최적화라고 한다.

하지만 두가지 개념은 정확하게 상반되는 개념은 아니다.
왜 상반되지 않는지 알아보도록 하자.

크롤러

  • 정의
    - 웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램
  • 종류
    - 빙봇, 구글봇, FAST Crawler, GM Crawl, PolyBot, RBSE 등 존재

크롤링

  • 검색엔진은 새로운 페이지및 업데이트 된 페이지를 찾기 위해 색인에 추가 하는 과정
  • 크롤러가 하는 작업을 크롤링이라고 하고 이때 대체로 방문한 사이트의 복사본을 생성하여 더 빨리 접근 할 수 있도록 제공한다.
  • 시드(seeds)라고 불리는 URL 리스트에서부터 시작
  • 페이지의 모든 하이퍼링크를 인식하여 URL 리스트를 갱신. 갱신된 URL 리스트는 재귀적으로 다시 방문

검색엔진

  • 월드 와이드 웹에 존재하는 웹사이트와 여러 정보를 검색
  • 정보를 긁어오는 도구를 크롤러라 부르고 이 행위를 크롤링이라 부른다.
    - 국내 서비스 중 엔진
    — 구글, Bing, Daum, zum, 네이버, 네이트 등
    - 해외
    — 구글, yahoo, AOL, Dogpile,바이두, 라이코스 등

검색엔진 최적화(Search Engine Optimization)

  • 정의
    검색엔진이 크롤링 하기 쉽도록 홈페이지 구조와 페이지를 개발하는 작업
  • 방법
    1. https 사용 : google은 2014년부터 https에 가산점을 부여하기로 결정, 전체 점수의 랭킹 1% 가산점 부여
    2. 문법에 맞게 HTML 작성
    - 강조는 <strong>, 제목은 <h1~6>, 테이블은 <table> 등 의미에 맞는 태그 사용
    - 이미지의 alt, title 추가 등 접근성 관련 태그도 작성
    3. 규격에 맞는 타이틀 : 타이틀 태그는 영문의 경우 공란 포함 65자, 한글은 32자
    4. 규격에 맞는 메타디스크립션 : 영문 기준 320자, 한글 160자 정도
    5. 콘텐츠와 연관된 URL설계 ex>”검색어 : 달리기” https://honggildong.co.kr/play/run (o)
    https://honggildong.co.kr/page/12daaddbdcde (x)
    - sitemap.xml 사용, 정해진 프로토콜에 의해 작성되면 되며, 위치는 상관없다.
    - 규칙은 이곳을 참고

*기타 많은 방법들이 존재

검색엔진 최적화를 안시키려면

일반 사용자에게 노출되어서는 안되는 페이지들이 의도와 다르게 웹 사이트에 크롤링 되는 경우가 있다. 크롤링 후 인덱싱 되면 내 홈페이지가 원하지 않는데도 검색사이트에서 쉽게 내 홈페이지를 찾을 수 있게된다.
이런 상황을 막기위해서는 robots.txt 파일로 내 홈페이지를 크롤링 하지 않도록 설정을 하며, 해당 페이지에서 인덱싱이 되지 않도록 제어 태그를 추가한다.

robots.txt

  • 웹사이트에 웹 크롤러같은 로봇들의 접근을 제어하기 위한 규약
  • 표준이 없다. 그러므로 꼭 지킬 의무는 아니다.
  • root 폴더 밑에 robots.txt 파일을 홈페이지 검색 허용하는 양식에 맞게 작성하면 된다.
//robots.txt
User-agent : 제어할 로봇 User-Agent
Allow : /경로/
Disallow : /허용하지 않는 경로/
// 모든 문서 접근
User-agent: *
Allow: /
// 모든 문서 차단
User-agent: *
Disallow: /

인덱싱

  • 크롤러가 잘 수집한 정보를 말 그대로 인덱싱, 잘 정렬하는 역할을 한다.

*나의 경우는 이미 인덱싱이 되었지만 robots.txt 파일을 이용하여 모든 에이전트가 disallow 하도록 적용 하였지만 이미 인덱싱이 되어 간간히 내 페이지에 봇이 접근하는 것을 본적이 있다. 때문에 로봇이 접근하지 않게 하려면 아래 meta tag들을 상황에 맞게 넣어주어야 한다.

META TAG

  • 메타태그는 기본적으로 <head> 섹션에 삽입을 해야합니다.
  • name에 bot의 이름을 넣을 수 있으며 모든 bot에 대해 적용하려면 robots를 넣어주면 된다.
<!DOCTYPE html>
<html><head>
<meta name="robots" content="noindex" />
<meta name="googlebot" content="noindex" />
</head>
<body>
</body>
</html>
  • nofollow
    - 내 사이트와 링크된 페이지를 연결하지 않기를 바라거나 링크된 페이지를 크롤링하지 않기를 바라는 경우
<meta name="robots" content="nofollow" />
  • noarchive
    - 검색결과에 저장된 페이지 링크를 표시하지 않습니다.
<meta name="robots" content="noarchive" />
  • nosnippet
    - 이 페이지에 대한 검색결과에 텍스트 스니펫 또는 동영상 미리보기를 표시하지 않는다.
<meta name="robots" content="nosnippet" />

*합쳐서 사용도 가능하다.

<meta name="robots" content="noindex,nofollow,noarchive,nosnippet" />

참고

--

--

No responses yet