Post

내 블로그 구글에 띄우기

부제: 엄마 나 구글 나왔어

대학교때는 티스토리를 만들어서 내가 관심있던 것이나 코테 연습 케이스 글을 올렸었다. 이제 취업을 했으니 관련된 기술 문서를 번역하거나, 업무를 하며/혹은 업무와 상관없이 재미있어 보이는것을 올리기 위해 조금 힘이 들어간 기술 블로그를 만들어 보고 싶었다. 다양한 기술 블로그를 지나다니며 봤을 때, 도메인이 github.io로 찍히는 블로그들이 꽤 많았다. 도메인부터 눈에 끌려 알아보니, Github 자체적으로 {유저네임}.github.io 로 Repo를 만들면 정적 호스팅을 해준다고 한다. 멋져 보였다!

그래서 결과물은 현재 보고 있는 이 블로그. 개인 Github 계정이 제공해주는 github.io 도메인을 사용하고, Jekyll 을 써서 구성하였다. 대학교때부터 노션을 사용한 나로서는 마크다운으로 글을 쓰는게 친숙했기에, 마크다운으로 글을 올려주면 자동으로 페이지를 만들어 주는게 좋았다.

글을 올리겠다는 당찬 마음을 가지고 만든 블로그는, 글 두개를 올리고 최근까지 바쁜 업무(핑계다)와 갑작스런 복싱 시작(역시 핑계다), 새로운 인간관계 개인사(이것도 핑계)로 정체되어 있었다.

하지만 이제 글또 9기를 시작하게 되어 2주에 한번씩 글을 올리고, 이 습관을 계속해서 이어가는게 목표다. 그래서 먼지만 날리던 이 블로그에 갑자기 폰트도 좀 가독성 높으면서 이뻐보이는 것으로로 바꾸고, 카운터도 넣을 예정이다. 근데 문제는 내 블로그가 구글에서 검색이 되지 않는다는 것.

이 문제를 해결하기 위해, 관련 주제로 많은 검색을 해 봤고 크게 두가지 방식을 확인할 수 있었다. 하나는 어떤 검색엔진 봇이 어떻게 내 사이트를 접근할 수 있는지(robots.txt) 정해주는 것, 나머지 하나는 구글에 더 직접적으로 내 사이트를 인덱스 할 수 있도록 정보를 제공하는 것(구글 검색 대시보드에 등록)이었다. 이번 글에서는 두 가지를 어떻게 진행했는지 정리해보았다.


내 블로그가 구글에서 검색되려면, 구글의 크롤러가 내 블로그를 인지해야 한다. 구글이나 네이버 같은 검색 서비스들은, 인터넷의 수많은 페이지들을 돌아다니면서 인덱싱을 수행한다. 이 때 검색 봇이 무분별하게 인터넷의 글을 긁어 각 서버의 과도한 부하 발생을 방지하기 위해, 검색 봇이 긁어 갈 수 있는 경로나 범위를 지정할 수 있다.

지금은 페이지의 상위에 robots.txt 를 만들고, 일단은 전체 봇 접근을 허용하도록 했다.

1
2
3
#robots.txt
User-agent: *
Allow: /

다만, 이 robots.txt에서 봇의 접근을 거부한다고 해도 각 검색 엔진에서 페이지가 뜨지 않는것은 아니다. 이것은 어디까지나 “이렇게 해줘!” 라는 표시이고, 회사들이 봇을 어떻게 개발하느냐에 따라 동작이 다를 수 있다. [ref]


검색 봇을 허용하는 것 외에, 구글에 더 확실하게 내 페이지를 알려줄 수 있는 방법이 있다. 아예 구글 검색 대시보드에 내 사이트를 등록해 더 효율적으로 검색이 되게 직접 설정할 수 있다.

그러기 위해서는, 내 페이지에 사이트맵이 있어야 한다. 보통 “사이트맵”이라고 하면, 그 사이트의 전체 페이지를 보여주는 한 메뉴라고 생각할 수 있다. 하지만 사람이 접하는 메뉴 뿐만 아니라, xml 파일로 만들어 봇이 긁어가도록 하거나 자동화 툴에서 쓸 수 있게도 하더라.

상세한 표준은 sitemaps.org 에서 확인 가능하고, 우리는 지킬을 쓰니 편하게 자동으로 만들어지는 사이트맵을 쓰면 된다.

Gemfilejekyll-sitemap을 추가하고,

1
2
3
4
5
6
7
source 'https://rubygems.org'

gem 'github-pages'
gem 'amp-jekyll'
gem 'jekyll-sitemap' # <- 추가

gem "webrick", "~> 1.7"

_config.yaml 파일에 방금 추가한 gem을 쓰겠다고 정의해준다.

1
2
3
gems:
  - jemoji
  - jekyll-sitemap

그 뒤, 커밋/푸시 후 Github Action이 정상적으로 돌아가면 우리는 {github page 주소}/sitemap.xml 에서 사이트의 사이트맵을 확인할 수 있다.

사이트맵까지 생성이 완료 되었다면, 이 사이트맵을 구글 검색엔진에 직접 제공해 최적화 할 수 있다.


일단 구글 검색 콘솔에 들어가, 새 속성을 추가한다. “속성”으로 표시가 되는데, 단순히 봤을때는 추가할 사이트를 의미한다. 사이트를 추가할 때 실제로 우리 관리 하에 있음을 인증해야 하는데, Github Pages의 도메인 레코드는 Github이 소유하고 있으니 우리가 직접 변경할 수는 없다. 따라서, URL 접두어를 선택한다.

선택을 하고 나면, 이 도메인이 연결된 사이트가 실제로 우리 제어 하에 놓이는지 인증을 하라며 몇가지 선택지를 준다. 해당 도메인 루트에 특정 HTML 파일을 가져다 둘 수도 있고, 홈페이지에 특정 html 태그를 넣는 등 다양한 방법으로 인증을 할 수 있다.

그 중, 나는 홈페이지에 html 태그를 넣는 방법을 선택했다. 파일 가져다 두면 나중에 잊어먹고 삭제할 것 같아서 그냥 태그에 렌더링하게 박아두는게 나을 것 같다.

테마마다 다를 수 있지만, 내 테마의 경우 _includes/head.html에서 모든 <head> 태그 내용들을 처리하고 있다. 단순히 구글이 제공하는 스니펫을 여기에 다른 <meta>태그들과 넣어주면 된다.

1
2
3
4
5
6
7
8
9
10
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 아래 구글이 제공하는 인증 스니펫 추가 -->
    <meta name="google-site-verification" content="2V~~~~~~~~~~~~rY" />

    
    ~~~
</head>

그것만 추가하고 푸시/렌더가 잘 된 뒤 확인 버튼을 누르면, 이제 구글이 이 도메인의 페이지 소유권을 확인했다고 하며 검색 관련 설정을 변경할 수 있게 된다.

그 뒤, 사이드바의 사이트맵 메뉴에서 우리가 만든 사이트맵 경로 주소를 넣어주고 제출을 하면 일단 검색을 띄울 준비는 마무리된다.

사이트맵을 추가하고 나면, 어느정도 시간이 지난 뒤 그 사이트맵에서 발견한 페이지들을 확인할 수 있다. 이 정보를 토대로 더 효율적으로 내 블로그를 구글에 노출시킬 수 있다.


아직 사이트맵을 추가한지 얼마 되지 않아 인덱싱이 제대로 되지는 않은 상태이다. 다만, 일련의 과정을 진행하면서 티스토리나 다른 서비스형 블로그가 아닌 직접 구성한 블로그/사이트를 어떻게 다른 검색 엔진이 찾아오는지 조금이나마 감이 잡히는 것 같다. 이 쪽으로 더 파보면 SEO(Search Engine Optimization) 분야가 있는 것 같은데, 나중에 더 찾아보면 재미있을 것 같다. 뭔가 최근 유튜버들이 어떻게 하면 알고리즘을 잘 타게 연구하는 것의 원조같이 보인다.

그리고, Google Search Console 도 알고 있으면 나중에 써먹을 곳이 많을 것 같다. Core Web Vital같은 경우는 회사에서 해당 메트릭을 얻기 위해 별도로 서비스를 쓴다거나 솔루션을 쓰기도 하는걸로 알고 있어서, 그런 서비스를 쓰지 못하는 엔터프라이즈 단위의 서비스가 아닌 서비스들은 여기서 나온 것들을 가지고 유용하게 사용할수도 있을 것 같다.

나중에 검색 인덱싱이 되면 후속 글이나 SEO 관련해서 어떤걸 더 하면 좋은지 글을 써보는것도 좋을 것 같다.

This post is licensed under CC BY 4.0 by the author.