구글 블로그(Blogger) 사이트맵, RSS피드 생성하기

구글 블로그(Google Blogger)를 사용하면서 검색 포털에 등록해야 할 경우가 생긴다. 특히 커스텀 도메인(2차 도메인)을 사용하는 구글 블로그(Blogger)의 경우 더 절실하게 느껴질 수 있다. 구글 블로그는 두 가지 방식으로 사이트맵 또는 피드를 제공하는데 하나는 RSS피드방식이고 또 하나는 ATOM방식이다. 기본적으로 두 가지의 사이트맵 피드를 제공하고 있는 것만으로도 '구글신'다운 대범함을 엿볼 수 있지만 그 세부 옵션으로 들어가면 '아~ 구글신'으로 찬양할만 한 것들이 나온다. 구간을 정해서 최근순 몇개의 게시글, 또는 최초부터 몇개의 게시글을 RSS피드를 생성할 수도 있고, 최대 500개까지 RSS피드를 하나의 url로 생성할 수 있다. 네이버나 다음의 RSS등록은 단 하나의 url만을 요구하며 한 개의 url에서 수집하는 RSS피드의 텍스트의 양도 상당히 제한적이다. 수백개 이상의 게시글을 가진 블로그나 사이트를 예를 들어 네이버에 처음으로 검색등록을 하고 네이버 검색결과에 노출시키기 위해서는 약간 번거로운 과정이 필요할 수 있다. 네이버의 크롤러가 활발하게 긁고 다니는 편이라면 단순히 robots.txt에 sitemap 몇 줄(RSS피드 url)만 추가하면 굳이 RSS등록까지 하지 않고 검색등록만 해도 검색반영이 잘 되야 할테지만, 이상하게 구글 블로그는 네이버의 크롤러가 잘 수집하지 않는 듯 하다.


RSS 피드 방식의 사이트맵 생성

한 개의 url로도 다양하고 큰 RSS피드를 지원

우선 구글 개발자 가이드에 관련 자료가 있으니 자세한 것은 요기(새창)를 클릭해서 필요한 부분을 복사해서 사용해보는 것을 권장한다. 장황하게 부연설명할 것은 없고 일단 아래의 예시를 보자. 구글 블로그에서 지원하는 RSS 피드의 기본적인 url 형식이다.

http://yourblog.blogspot.kr/feeds/posts/default?alt=rss&orderby=updated&start-index=1&max-results=50

여기서 사용할 수 있는 매개변수들이 몇 개 있는데 알고나면 아주 유용하다. 

alt : 반환할 피드값의 타입 (atom:기본값 또는 rss 중 선택) 
orderby : 정렬기준이며 lastmodified(기본값), starttime, updated 중에 선택.
published-min, published-max : 발행한 시간의 구간을 설정할 수 있다. 이 때 published-min의 시각이 published-max보다 더 이전이어야 한다. 두 매개변수를 함께 써야 하는 것은 아니다. published-max만 사용하면 그 시각보다 이전에 발행된 게시글들에 대한 피드를 생성할 수 있다.
예 : published-min=2008-03-16T00:00:00&published-max=2008-03-24T23:59:59
updated-min, updated-max : 업데이트된 시간의 구간을 설정할 수 있다. 이 때 updated-min의 시각이 updated-max보다 더 이전이어야 한다. 역시 두 매개변수를 함께 써야만 하는 것은 아니다. updated-max만 사용하면 그 시각보다 이전에 업데이트된 게시글들에 대한 피드를 생성할 수 있다.
start-index : 페이징의 순서대로 피드에 생성될 게시글의 시작순번. 중요한 매개변수다.

이제 위에 예시된 피드 url을 다시한번 보면, RSS타입으로 생성하고(alt=rss) 업데이트 순으로(orderby=updated) 제일 첫번째(최근의) 게시글부터(start-index=1) 최대 50개를(max-results=50) 피드로 생성한다는 뜻이다. 저 URL 자체가 RSS피드 URL이 된다.

주의해야 할 것은 max-results값이 500을 넘을 수 없다는 거다. (에러가 나진 않지만 구글에서는 최대 500까지만 지원한다. 이것도 엄청난 거다!) 그런데 문제는 블로그를 검색등록을 할 때 구글 웹마스터 도구에서는 사이트맵 입력시 max-results=500이 그대로 먹히는데 국내 포털에서 500개의 게시글 정도가 되는 xml을 읽어들이다가는 오류를 뱉어낸다는 점이다. 네이버 웹마스터 도구에서 RSS등록시에는 max-results값을 50정도로 하는 것이 오류가 없을 것이다. (물론 텍스트 크기와 관계있겠지만, 내 경우에는 직접 테스트 결과 start-index=1의 파라미터가 붙을 경우에 한해서 max-results=100까지 RSS등록이 가능했지만, 그렇지 않을 경우에는 50정도가 적정했다.) Daum 검색등록은 블로그 검색 등록할 때 RSS등록을 같이 할 수 있는데 (자체 웹마스터 도구가 없으므로) 이 경우에도 마찬가지 피드 생성을 너무 크게 해버리면 (max-results=100 이상) 아무 경고도 받지 못한 채 Daum검색결과에 노출이 되지 않는 아름다운 결과를 맛볼 수 있으니 이래나 저래나 50개 정도가 적당한 것은 맞는 것 같다.

나의 경우에는 200개가 넘는 게시글이 있는 상태에서 네이버, 다음 검색등록을 해야 할 경우가 생겼는데 이 때에는 상당히 귀찮은 상황이 발생한다. RSS피드를 몇 번에 걸쳐 나누어서 변경을 해줘야 하고 그 기간동안 새 게시글은 쓰지 않는 것이 유리한 경우가 생긴다. 예를 들어 검색등록할 블로그이 게시물이 200개라고 가정하면 처음에 검색등록할 때에는 RSS 등록을 아래와 같이 해야 할 것이다.

http://yourblog.blogspot.kr/feeds/posts/default?alt=rss&orderby=updated&start-index=151&max-results=50

그리고 웹수집이 이루어지고 끝에서 50개의 글들이 검색결과에 노출되는 것을 확인한 후에 다시 아래와 같이 RSS등록을 수정해야 한다. 이런 과정속에 새 게시글을 작성한다면 중간에 몇몇 게시글은 검색결과에 노출되지 않을 수 있다.

http://yourblog.blogspot.kr/feeds/posts/default?alt=rss&orderby=updated&start-index=101&max-results=50

그리고 최근 순 101번째 게시글부터 150번째 게시글까지 검색결과에 노출되는 것을 확인한 후에 또 아래와 같이 RSS등록을 수정한다.

http://yourblog.blogspot.kr/feeds/posts/default?alt=rss&orderby=updated&start-index=1&max-results=100

직접 테스트했을 때 start-index=1일 경우에 한해서 네이버 RSS등록시 max-results=100까지 오류없이 등록되었기 때문에 위와 같이 예를 들었지만, 안전하게 하려면 나누어서 아래의 두번을 시도하는 것이 좋을 듯 하다.

http://yourblog.blogspot.kr/feeds/posts/default?alt=rss&orderby=updated&start-index=51&max-results=50
http://yourblog.blogspot.kr/feeds/posts/default?alt=rss&orderby=updated&start-index=1&max-results=50


ATOM방식의 사이트맵 생성

atom방식의 사이트맵 생성은 RSS피드의 경우와 별로 다르지 않고 url만 조금 다를 뿐이다. 보통의 경우 아래와 같이 사용한다. 매개변수는 RSS피드때와 같지만 atom.xml이라는 생성기능을 이용하기 때문에 alt변수는 사용하지 않는다.

http://yourblog.blogspot.kr/atom.xml?redirect=false&start-index=1&max-results=500

위에서 언급한 RSS피드 방식과 마찬가지로 같은 매개변수로 다양한 옵션을 걸 수 있다.


네이버 웹마스터도구 URL수집요청

네이버 웹마스터도구에서는 (구글 웹마스터도구도 마찬가지지만) 각각의 URL을 수집요청할 수 있다. 그런데 하루에 50개까지 요청할 수 있어서 위에서 설명한 RSS피드를 나누어서 적용시키는 경우보다 더 시간을 절약할 수도 있다. 하지만... 개별 URL을 수집요청을 하고 나서 그걸로 안심하기에는 이르다. 네이버 웹마스터 도구의 개별URL수집요청 기능은 상당히 까탈스럽고 호환성이 떨어져서 "요청실패"로 뜨는 경우가 많다. 그런데 요청을 실패했는데도 그 실패한 갯수가 '하루에 50개'안에 포함되어 버린다. 예를 들어 하루에 50개의 각각의 URL을 수집요청했는데 그 중 20개가 (아무 설명도 없이 그냥)요청실패로 뜨면 결국 하루에 30개 밖에 네이버측에 전달되지 않는다. 미리 따로 어떤 URL을 요청했는지 사용자가 기록해두지 않으면 언제 제출했던 URL이 요청실패가 뜰 줄 모르니 난감한 상황이 벌어질 수도 있다. (그러면서도 절대 문의상담을 완벽하게 차단한 네이버.. 도대체 네이버에 무슨 일이 벌어지고 있는 걸까)

사람의 생각을 대신해 주는 서비스는 언제 나올까?

    이미지 맵

    배우자! IT/Web, App 다른 글

    이전 글

    다음 글