Google 검색은 자동화된 검색엔진으로 정기적으로 웹을 탐색하며 웹에 대한 정보를 수집(크롤링)하고 Google index(색인)에 추가할 페이지들을 찾습니다. 신기하게도 구글은 페이지에 대한 정보를 수집할 때 사용자가 웹페이지에서 상호작용 경험을 어떻게 인식하는지를 측정하기 위해 사용자가 페이지에 접근하는 방식과 유사하게 Chrome을 사용해서 페이지를 렌더링합니다. 우리는 웹 마스터 도구를 사용해서 구글에 직접 도메인을 등록하고 색인 생성을 요청해 페이지에 대한 정보를 제공할 수 있으나 구글 검색 결과에서 반환되는 정보(페이지)들은 대부분 웹 크롤러라는 소프트웨어가 탐색하여 자동으로 추가된 결과들입니다. 이 검색 결과들은 페이지의 콘텐츠 품질, 모바일 친화성, 사용자 중심의 웹 퍼포먼스를 평가해 검색 랭킹을 결정하는 메트릭인 Core Web Vitals 등 다양한 메트릭들로 평가되어 검색 순위와 검색 노출 여부가 결정됩니다.
1.1, 구글 검색 엔진, https://www.aa.com.tr/en/science-technology/google-abuses-search-engine-dominance-in-france-eana/1597993
구글 검색은 크게 3단계를 거치며 우리에게 어떤 검색 결과들을 보여줄지 준비합니다 : 크롤링, 색인 생성, 검색 결과 게재
구글은 페이지를 방문할 때마다 매번 위 단계들을 수행하지는 않습니다.
크롤링
첫 단계인 크롤링에서는 구글의 크롤러라는 자동화된 소프트웨어를 통해서 웹에 어떤 페이지가 존재하는지 파악하고 각종 콘텐츠들을 저장합니다. 넓은 웹에 모든 페이지들이 구글의 파악된 페이지 목록에 등록이 돼있는 것은 아니기 때문에 구글은 크롤링을 하기 전 URL 검색이라는 과정을 통해서 새 페이지와 업데이트된 페이지들을 검색하며 목록에 추가합니다. 이미 방문한 적이 있는 페이지에 접근할 때는 하위 도메인의 모든 URL을 파악하고자 페이지 내에 새로운 페이지로 연결되는 링크를 찾고 그 링크를 통해서 기존 페이지 목록에 없는 새로운 페이지를 찾습니다. 개발자나 사이트의 소유주는 구글에 직접 sitemap을 등록해서 페이지 목록을 알릴 수 있습니다.
URL 검색 과정을 통해 페이지의 URL을 발견하면 해당 페이지의 내용을 확인하기 위해서 크롤러인 Googlebot은 크롤링을 시작합니다. Googlebot은 알고리즘을 통해서 크롤링 할 사이트와 크롤링 빈도, 각 사이트에서 가져올 페이지 수를 결정하고 텍스트, 이미지, 동영상 정보 등을 다운로드합니다. 하지만 크롤링은 URL이 즉시 발견되는 대로 시작하지는 않습니다. 크롤러에 의해서 사이트가 과부하 상태가 될 수 있기 때문에 구글은 크롤링 일정을 변경하거나 개발자가 설정한 robots.txt 파일에 따라 크롤링이 허용되는지 먼저 확인합니다. URL이 허용돼 있지 않으면 해당 URL에 관한 HTTP 요청과 URL 자체를 건너뜁니다.
Googlebot은 페이지에 접근을 할 때 사이트의 렌더를 처리하는 서버의 문제, 현재 네트워크의 문제, robots.txt로 접근을 제한하는 설정 등에 따라 크롤링 여부를 결정합니다.
구글은 인식 가능한 URL에 유효한 a 태그만 읽을 수 있습니다. 자바스크립트를 사용해서 동적으로 DOM에 삽입하더라도 구글은 링크를 크롤링 할 수 있습니다. 더 자세한 내용은 구글의 크롤링 가능한 링크 관련 가이드라인을 참고 해주세요.
색인 생성
사이트가 크롤링이 되면 구글은 해당 페이지가 웹에 있는 기타 페이지와 중복되는지와 표준 페이지 여부를 판단하여 페이지의 내용을 파악하고 분석하는 색인 생성 단계를 거칩니다. 색인 생성 단계에서는 Googlebot이 수집한 텍스트, 이미지, 동영상 정보 등 텍스트 콘텐츠 및 핵심 콘텐츠 태그와 속성을 처리하고 분석합니다. 천재적이게도 구글은 컴퓨터 중심과 사용자 중심의 페이지 디자인부터 콘텐츠 품질까지 세밀하게 평가를 합니다. 페이지가 렌더가 되면 해당 콘텐츠가 유용하고 신뢰할 수 있는 콘텐츠인지, 사용자가 검색된 키워드로 접근했을 때 관련 콘텐츠로 구성이 돼있거나 사용할 만한 단어가 사용이 돼있는지, 이러한 단어들이 페이지에서 눈에 잘 띄는 위치에 배치돼 있는지 등 콘텐츠와 메타데이터들을 전부 파악합니다. 더 나아가 구글은 검색 엔진 노출만을 목적으로 특화되거나 검색 엔진을 통해서만 접근이 가능한 사이트들에 대한 종합적인 평가도 한다니 개인적으로 평가 알고리즘에 감탄했습니다. 표준 페이지를 정하기 위해서 구글은 웹에서 찾은 비슷한 콘텐츠의 페이지들을 그룹으로 묶어(클러스터링) 그 그룹을 대표하는 페이지를 선택합니다. 클러스터링 된 페이지들은 사용자가 특정 키워드로 검색을 했을 때 대표 페이지와 그와 연관된(하위 도메인으로 URL 검사된) 페이지들(사이트 링크)을 검색 결과에 같이 노출시킵니다.
구글은 페이지의 색인을 차단하는 로봇 메타태그를 만날 경우 색인 생성을 하지 않습니다.
1.2, 구글 검색 클러스터링
검색 결과 게재
구글은 사용자가 입력한 검색어와 색인에서 일치하는 페이지를 검색한 후 페이지의 정보를 분석한 결과를 바탕으로 사이트 품질이 가장 높고 관련성이 큰 검색 결과들을 노출합니다. 이때 사용자가 위치해 있는 국가, 사용 언어, 사용자 디바이스(PC 혹은 모바일) 등 과 같은 항목들도 검색 결과 평가 요소로 작용합니다. 사이트가 색인 생성이 되었더라도 페이지의 낮은 콘텐츠 품질, 로봇 메타 지시어로 페이지 게재 차단 또는 페이지 콘텐츠와 검색어의 관련성 등의 이유로 검색 결과로 나타나지 않을 수 있습니다.
구글은 URL 구조, 페이지 구조, 사용자 중심의 페이지 경험(퍼포먼스), 유요한 HTML로 작성된 페이지의 메타데이터, 모바일 친화성, 페이지 접근 권한 등 다양한 메트릭들을 평가해서 크롤링 여부, 색생 생성 여부 및 검색 노출의 우선순위를 결정합니다.
구글이 평가하는 메트릭들에 대한 더 자세한 내용과 개선할 수 있는 방법은 여기서 확인 할 수 있습니다.
1.3, 구글이 앱을 처리하는 방식, https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics?hl=ko
정리하자면 구글은 URL 검색을 통해서 페이지를 찾고 크롤링 대기열과 렌더링 대기열에 추가합니다. Googlebot은 크롤링하기 전 크롤링 대기열에서 URL을 가져올 때 먼저 robots.txt 파일을 읽고 해당 URL의 크롤링 대상 여부를 파악합니다. 크롤링이 허용된 URL의 경우 사이트에 HTTP 요청을 보내 HTML 내에 href 속성이 포함된 a 태그들을 추적하고 크롤링 대기열에 파악된 링크들을 추가합니다. 구글은 렌더링 대기열에 있는 페이지를 가져와 사이트를 렌더링하고 자바스크립트 파일을 실행합니다. HTML을 파싱하며 렌더된 페이지의 콘텐츠들은 분석 작업을 거친 뒤 색인 생성 단계를 거칩니다. HTML 파싱 과정에서 발견된 URL은 Googlebot이 다시 크롤링 대기열에 추가하고 사이클을 반복합니다.