[Jekyll] 깃허브 지킬 블로그 구글 검색에 나타나게 하기 - 사이트맵 추가하기

1 minute read

Updated:

🗺 안녕하세요, 오늘은 사이트가 서치에 걸리게 하기 위해선 필수! 인 사이트맵 추가 방법을 다뤄보겠습니다. 추가로 구글 서치 콘솔에 사이트맵 등록하는 법과 몇가지 주의점을 추가해 봤어요.


Table of Contents

사이트맵이란?

구글 혹은 네이버 서치콘솔에 사이트를 등록하셨다면, 서치 로봇들이 사이트를 더 똑똑하게 크롤하게 도와주는 사이트맵 (sitemap)이 필요합니다.

이 파일은 페이지들에 대한 정보를 제공하고, 페이지들 사이의 관계를 정의합니다. 페이지에 대한 부가적인 정보들, 예를 들어, 페이지의:

  • 마지막 수정 시간
  • 수정 주기 (change frequency)
  • 다른 언어 버전

등등을 정의합니다. 말 그대로 사이트의 지도 역할을 하죠. 이 사이트의 사이트맵은 여기서 확인하실 수 있습니다. 🙂


지킬블로그에는 크게 세가지의 사이트맵 생성법이 있어요.

  1. 플러그인을 사용한 사이트맵 생성
  2. 수동 사이트맵 생성
  3. 사이트맵 제너레이터 사용 - 이 방법은 사용해보았지만, 새로운 포스트가 추가되면 수동으로 업데이트를 해야하고, 시간도 오래걸리기때문에 추천드리지 않습니다.

플러그인을 사용한 사이트맵 생성

  1. 프로젝트 루트폴더의 Gemfile 에서, 사진과 같이 사이트맵 플러그인을 추가합니다.

img

gem "jekyll-sitemap"
  1. 그 후, bundle install을 실행하여 플러그인을 설치해 줍니다.

  2. 프로젝트 루트의 _config.yml 파일에 플러그인 jekyll-sitemap 을 추가해줍니다. img

해당 사이트에 /sitemap.xml 을 추가하여 접속하시면 완성! 지킬 플러그인이 자동으로 사이트맵을 생성하였습니다.

img

수동 사이트맵 생성

루트 프로젝트 폴더에 sitemap.xml 파일을 생성합니다. 이 파일은 리퀴드 (liquid) 태그를 사용하여, 사이트의 모든 포스트를 방문하며 필요한 정보들을 추출해, 사이트맵을 생성해 나갑니다.

---
layout:null
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

    {% for post in site.posts %}
    <url>
        <loc>{{site.url}}{{ post.url | remove: 'index.html' }}</loc>
    </url>
    {% endfor %}

    {% for page in site.pages %}
    {% if page.layout != nil %}
    {% if page.layout != 'feed' %}
    <url>
        <loc>{{site.url}}{{ page.url | remove: 'index.html' }}</loc>
    </url>
    {% endif %}
    {% endif %}
    {% endfor %}

</urlset>

이 코드는 change frequency, last updated 등의 정보를 수집하지는 않아요.

구글 서치 콘솔에 사이트맵 등록하기

사이트맵을 생성했다면, 서치 사이트에 등록을 해야겠죠?! 구글 서치 콘솔 에 접속하셔서, 등록한 사이트의 Sitemaps 섹션에 /sitemap.xml을 추가하시기 바랍니다.

성공적으로 추가되었다면, 이런 페이지가 뜹니다!

잠깐!

💡 구글 서치 콘솔에 사이트맵 등록 전, 해당 사이트의 사이트맵에 접속하셔서, 생성된 링크가 valid 한지 확인 하시기 바랍니다! 잘못된 사이트맵 업로드 후, 서치 로봇이 새로운 사이트맵을 수집하기 까지 4일정도 걸렸습니다.

💡 _config.yml 에 등록하신 사이트 url 이 맞는지 꼭 확인하세요!

링크 뒤에 백슬래쉬(/)를 넣지 마세요. 전 github.io/ 이렇게 추가했다가 사이트맵의 모든 링크가

https://chaerim-kim.github.io//distributed-systems/

이런식으로 처리되어서 문제를 찾는데 좀 헤맸어요 🙃



감사합니다.

Leave a comment