기술

웹크롤러, 검색엔진 크롤러, 검색봇과 robots.txt

lelien 2020. 11. 16. 16:07
반응형

웹크롤러, 검색엔진 크롤러, 검색 로봇, robots.txt


웹디자이너로 일하면서 필요한 전문 용어들이 나올 때마다 그 용어의 뜻과 기능과 활용도를 찾아보게 됩니다.

SEO(Search engine optimization)가 왜 필요한지에 대한 질물을 던졌했을 때 그 원인을 제공하는 기본 지식이 웹크롤러와 관련되어 있기 때문에 웹 크롤러라 불리는 검색 엔진 프로그램에 대해 알아보려고 합니다.

 

 

웹 크롤러 (검색 봇) Web crawler

웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 '월드 와이드 웹(www)'을 탐색하는 컴퓨터 프로그램입니다. 주로 검색 엔진에서 웹사이트를 색인화하는데 사용됩니다. 또한 웹 크롤러는 데이터 수집에도 사용됩니다.

웹 크롤러가 하는 작업을 '웹 크롤링'(web crawling) 혹은 '스파이더링'(spidering)이라 부릅니다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹 크롤링을 합니다. 웹 크롤러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는데 사용되며, 검색 엔진은 이렇게 생성된 페이지를 보다 빠른 검색을 위해 색인화(Indexing) 합니다. 또한 크롤러는 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해 사용되기도 하며, 자동 이메일 수집과 같은 웹페이지의 특정 형태의 정보를 수집하는 데도 사용됩니다.

 

최초의 웹 크롤러는 World Wide Web Wanderer라고 불리며 1993년에 인터넷 성장을 측정하는데 사용되었습니다. 1년 후, 최초의 인터넷 검색 엔진Webcrawler라는 이름으로 출시되어 이러한 유형의 프로그램에 이름이 붙었습니다. 오늘날 이러한 봇은 검색 엔진 최적화 (SEO)가 인터넷 기반 마케팅의 최전선에 있는 주된 이유가 되었습니다. 따라서 성공적인 SEO를 위해서는 이러한 프로그램이 어떻게 작동하는지 알아야 합니다.

 

 

웹크롤러의 기능

크롤러는 하이퍼 링크를 통해 인터넷을 서핑하는 동안 사용자처럼 새로운 웹페이지를 찾습니다. 페이지를 검색할 때 포함 된 모든 URL을 저장합니다. 그런 다음 크롤러는 저장된 각 URL을 하나씩 열어 프로세스를 반복합니다. 추가 URL을 분석하고 저장합니다. 이러한 방식으로 검색 엔진은 봇을 사용하여 웹에서 연결된 페이지를 찾습니다. 그러나 대부분의 경우 모든 URL이 크롤러에 의해 처리되는 것은 아니지만 선택에 의해 제한됩니다. 어느 시점에서 프로세스가 중지되고 다시 시작됩니다. 수집된 정보는 일반적으로 색인화(Indexing)를 통해 평가 및 저장되므로 신속하게 찾을 수 있습니다.

 

 

SEO를 위한 웹사이트의 크롤링 가능성 최적화

최대 크롤링 가능성과 최상의 SEO 결과를 얻으려면 웹사이트에 내부링크가 잘 연결되어 있어야 합니다. 봇은 링크를 따라 새로운 웹 페이지와 콘텐츠를 분석합니다. SEO 친화적인 링크는 검색봇이 모든 중요한 하위 페이지를 찾을 수 있도록합니다. 이러한 페이지 중 하나에서 고품질 콘텐츠가 발견되면 높은 순위가 될 가능성이 높습니다. XML 또는 HTML 사이트 맵은 크롤러 작업을 더 쉽게 만드는 일반적인 솔루션이기도 합니다. 여기에는 검색 엔진이 모든 하위 페이지를 쉽게 찾고 색인을 생성할 수 있도록 웹사이트의 전체 링크 구조가 포함되어 있습니다. 또한 SEO에 대한 HTML 태그의 올바른 사용을 과소 평가해서는 안됩니다. 이러한 구조를 일관되게 사용하면 봇이 페이지의 콘텐츠를 올바르게 해석하도록 도울 수 있습니다. 예를 들어 여기에는 표제 (h1, h2, h3 등), 링크 제목 및 이미지 설명 (alt)의 표준 사용이 포함됩니다.

 

또한 Java 또는 Flash 콘텐츠를 사용해서는 안됩니다. Google은 이제 자바 스크립트 페이지를 크롤링 할 수 있지만 여전히 많은 크롤링 예산이 필요합니다. 대신 PHP 또는 ASP와 같은 서버 측 언어를 사용하여 웹사이트의 탐색 요소 및 기타 구성 요소를 HTML로 생성해야 합니다. 클라이언트(웹 브라우저 또는 봇)는 HTML 결과를 이해하고 색인을 생성하기 위해 플러그인이 필요하지 않습니다.

 

또한 최신 웹사이트는 더이상 프레임을 기반으로 하지 않아야 하며 CSS로 모든 디자인 측면을 해결해야 합니다. 오늘날에도 여전히 프레임을 사용하는 페이지는 검색 엔진에 의해 부분적으로 색인화되고 잘못 해석됩니다.

 

SEO의 크롤링 가능성 최적화와 관련된 또 다른 중요한 측면은 색인을 생성해야 하는 페이지가 robots.txt의 크롤링에서 제외되거나 robots 메타 태그에 'noindex' 명령어를 포함해서는 안된다는 것 입니다. 이것이 사실인지 확인하기 위해 검색 엔진 공급자의 다양한 도구를 사용할 수 있습니다. 예를 들어 Google 은 이러한 목적으로 Search Console을 제공합니다 .

 

사이버 범죄자들이 점점 더 봇 공격을 시작하기 때문에 웹사이트 운영자는 소위 봇 보호를 사용합니다. 이 보안 시스템은 사이트 트래픽을 모니터링하고 봇을 감지하고 필요한 경우 차단합니다. 그러나 잘못 구성된 봇 보호는 Google, Bing 및 기타 검색 엔진의 봇도 차단할 수 있으며, 이는 더 이상 웹 페이지의 색인을 생성할 수 없음을 의미합니다. 따라서 봇 보호가 호스트를 차단하기 전에 호스트의 IP 주소를 확인하는지 확인해야 합니다. 이렇게 하면 봇이 Google, Bing 또는 기타 검색 엔진에 속하는지 여부가 감지됩니다.

 

마지막으로 크롤링 가능성은 웹사이트 성능의 영향도 받습니다. 웹사이트가 느린 서버에 있거나 기술적인 문제로 인해 속도가 느려지면 일반적으로 좋은 검색엔진 순위를 받지 못합니다. 페이지가 너무 오래 로드되면 봇이 뛰어 내리기 때문에 일부 하위 페이지는 색인화 되지 않을 수 있습니다. 따라서 빠른 인프라는 효과적인 SEO의 기초입니다.

 

다음에서는 지금까지 설명한 요점을 간단한 체크리스트 형식으로 요약했습니다.

  • 좋은 내부 연결
  • XML 또는 HTML 사이트 맵
  • SEO를 위한 HTML 태그의 올바른 사용
  • Java 또는 Flash 콘텐츠 없음
  • 프레임 없음
  • robots.txt 및 "noindex"에 의해 제외 된 페이지 확인
  • 봇 보호의 올바른 구성
  • 효과적인 SEO를 위한 빠른 성능

 

 

robots.txt 란 무엇입니까?

Robots.txt는 검색 엔진 크롤러를 위한 안내가 포함된 텍스트 파일입니다. 웹사이트 크롤러에서 검색할 수 있는 영역을 정의합니다. 그러나 robots.txt 파일에 의해 명시적으로 이름이 지정되지는 않습니다. 오히려 특정 지역은 검색할 수 없습니다. 이 간단한 텍스트 파일을 사용하면 검색 엔진 크롤링에서 전체 도메인, 전체 디렉터리, 하나 이상의 하위 디렉터리 또는 개별 파일을 쉽게 제외 할 수 있습니다. 그러나 이 파일은 무단 액세스로부터 보호하지는 않습니다.

 

Robots.txt는 도메인의 루트 디렉토리에 저장됩니다. 따라서 사이트를 방문 할 때 크롤러가 여는 첫 번째 문서입니다. 그러나 파일은 크롤링을 제어할 뿐만아니라 사이트 맵에 대한 링크를 통합하여 검색엔진 크롤러에게 도메인의 모든 기존 URL에 대한 개요를 제공 할 수도 있습니다.

 

 

robots.txt의 작동 원리

1994년에 REP(Robots Exclusion Standard Protocol)라는 프로토콜이 발표되었습니다. 이 프로토콜은 모든 검색 엔진 크롤러 (사용자 에이전트)가 먼저 사이트의 루트 디렉토리에서 robots.txt 파일을 검색하고 포함된 지침을 읽어야 한다고 규정합니다. 그래야만 로봇이 웹페이지 색인 생성을 시작할 수 있습니다. 로봇은 robots.txt 파일을 읽고 지침은 대소 문자를 구분하므로 파일은 도메인의 루트 디렉토리에 직접 있어야 하며 소문자로 작성해야 합니다 . 불행히도 모든 검색엔진 로봇이 이러한 규칙을 따르는 것은 아닙니다. 적어도 파일은 Bing, Yahoo 및 Google과 같은 가장 중요한 검색 엔진에서 작동합니다. 검색 로봇은 REP 및 robots.txt 지침을 엄격하게 따릅니다.

실제로 robots.txt는 다양한 유형의 파일에 사용할 수 있습니다. 이미지 파일에 사용하는 경우 이러한 파일이 Google 검색 결과에 표시되지 않습니다. 스크립트, 스타일, 이미지 파일과 같은 중요하지 않은 리소스 파일도 robots.txt로 쉽게 차단할 수 있습니다. 또한 적절한 명령을 사용하여 동적으로 생성된 웹페이지를 크롤링에서 제외할 수 있습니다. 예를 들어 내부 검색 기능의 결과 페이지, 세션 ID가 있는 페이지 또는 장바구니와 같은 사용자 작업을 차단할 수 있습니다. 텍스트 파일을 사용하여 이미지가 아닌 다른 파일 (웹 페이지)에 대한 크롤러 액세스를 제어할 수도 있습니다. 따라서 다음 시나리오를 피할 수 있습니다.

  • 검색 로봇은 유사하거나 중요하지 않은 웹페이지를 많이 크롤링 합니다.

  • 크롤링 예산이 불필요하게 낭비됩니다.

  • 서버가 크롤러에 의해 과부하 됨

그러나 이러한 맥락에서 robots.txt는 사이트 또는 개별 하위 페이지의 색인이 생성되지 않음을 보장하지 않습니다. 웹 사이트의 크롤링만 제어하고 색인 생성은 제어하지 않습니다. 검색 엔진에서 웹 페이지를 색인화하지 않으려면 웹 페이지의 헤더에 다음 메타 태그를 설정해야합니다.

<meta name = "robots" content ="noindex" />

그러나 검색 로봇과 관련성이 높은 파일을 차단해서는 안됩니다. CSS 및 JavaScript 파일은 특히 모바일 로봇의 크롤링에 사용되므로 차단을 해제해야 합니다.





Robots.txt 규칙

1. 전체 액세스 허용

사용자 에이전트: *

금지 :

크롤링하려는 웹 사이트의 robots.txt 파일에서 이 파일을 찾으면 운이 좋은 것입니다. 즉, 사이트의 모든 페이지가 봇에 의해 크롤링 될 수 있습니다.

 

2. 모든 액세스 차단

사용자 에이전트: *

금지 : /

robots.txt에 이 정보가 있는 사이트에서 벗어나야 합니다. 자동화된 크롤러를 사용하여 사이트의 어떤 부분도 방문해서는 안되며 이를 위반하면 법적 문제가 발생할 수 있다고 명시되어 있습니다.

 

3. 부분 액세스

사용자 에이전트: *

금지 : / folder /

사용자 에이전트: *

금지 : /file.html

일부 사이트는 사이트의 특정 섹션이나 파일만 크롤링하는 것을 허용하지 않습니다. 이러한 경우 차단된 영역을 그대로 두도록 봇에게 지시해야 합니다.

 

4. 크롤링 속도 제한

크롤링 지연 : 11

이는 크롤러가 사이트를 너무 자주 방문하지 못하도록 제한하는데 사용됩니다. 크롤러의 빈번한 히트는 서버에 원치 않는 스트레스를 가하고 방문자가 사이트를 느리게 만들 수 있으므로 많은 사이트에서 로봇 파일에 이 줄을 추가합니다. 이 경우 사이트는 11초의 지연으로 크롤링될 수 있습니다.

 

5. 방문 시간

방문 시간 : 0400-0845

이는 크롤링이 허용되는 시간에 대해 크롤러에게 알려줍니다. 이 예에서 사이트는 UTC 04:00에서 08:45 사이에 크롤링 될 수 있습니다. 사이트는 피크 시간 동안 봇의 부하를 방지하기 위해 이렇게 합니다.

 

6. 요청 속도

요청 속도 : 1/10

일부 웹사이트는 여러 페이지를 동시에 가져오려는 봇을 즐겁게 하지 않습니다. 요청 비율은 이 동작을 제한하는데 사용됩니다. 값이 1/10이면 사이트에서 크롤러가 10초마다 한 페이지를 요청할 수 있음을 의미합니다.

 

 

참고한 웹사이트:

https://miaow-miaow.tistory.com/90

Web Crawlers and User Agents - Top 10 Most Popular

https://www.keycdn.com/blog/web-crawlers

Search Engine Crawlers

https://www.seobility.net/en/wiki/Search_Engine_Crawlers

How Search organizes information

https://www.google.com/search/howsearchworks/crawling-indexing/

반응형