워드프레스 RSS 발행 시간 설정

워드프레스

구글, 빙(Bing), 네이버등의 검색 엔진에서는 사이트 등록과는 별개로 사용자가 능동적으로 블로그나 사이트를 등록할수 있게 웹마스터 도구를 제공하고 있습니다.

이 웹마스터 도구는 사이트맵과 RSS를 해당 검색 엔진에 등록해서 검색 엔진의 크롤링 봇(bot)이 주기적으로 크롤링 될수 있게 하고 RSS 핑으로 신디케이션을 사용해 글을 발행시 검색 엔진에 잘 노출될수 있도록 하는 기능을 하고 있습니다.

이중 국내 검색 엔진 점유율 80% 이상을 차지하고 있는 네이버도 웹마스터 도구를 지원하고 RSS 신디케이션 또한 지원하고 있는데 워드프레스에서 사용하려면 한가지 문제가 생깁니다.

wp_rss_utc_time_optimize_01
UTC 시간에 관련된 코어를 수정하면 UTC+9(서울) 시간을 반영한다.

바로 ‘발행 시간’ 이죠. 워드프레스의 설정 – 일반에서 UTC 시간대를 서울로 설정해서 UTC+9를 설정할수 있지만 이 설정은 블로그에서 포스팅되는 발행 시간을 나타내는 옵션이고 실제 RSS 신디케이션을 검색 엔진에 전송시 UTC 표준시로 전송되게 됩니다.

구글 같은 경우는 이런 워드프레스의 구조를 잘 반영하여 워드프레스에 설정된 언어 설정을 읽어 UTC+9의 시간으로 검색엔진에 반영하지만 네이버 같은 경우는 UTC표준시를 그대로 반영하기 때문에 만일 10:00에 글을 발행했다면 네이버에서는 9시간 전인 1:00에 발행한 것으로 등록이 됩니다.

이러한 워드프레스의 동작 구조는 워드프레스의 문서에서도 찾아볼수 있습니다.

익스트림 매뉴얼 같은 테크&팁 위주의 사이트라면 시간에 큰 문제가 되지 않지만 뉴스사이트나 이슈등을 주로 포스팅하는 블로그 같은 경우 이 발행 시간은 치명적인 단점이 됩니다.

이런 RSS UTC 표준시간 문제를 해결하기 위해서 가장 간단한 방법은 워드프레스의 코어 소스 코드를 수정해 주는 것입니다. 수정할 파일은 다음과 같습니다.

  • wp-include/feed-rss2.php
  • wp-include/feed-rss2-comments.php
<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0900', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0900', get_post_time('Y-m-d H:i:s', false), false); ?></pubDate>

우선 feed-rss2.php를 열어보면 현재 워드프레스 최신 버전인 4.4.1을 기준으로 45번,89번 라인의 +0000 으로 되어있는 UTC시간을 +0900으로 수정합니다. 그리고 89번 라인에서는 get_post_time 뒤에 true 부분을 false로 변경합니다.

feed-rss2-comments.php 역시 위와 같이 변경합니다.

수정한 다음 글을 발행하고 네이버를 확인하면 한국시간인 UTC+9에 맞춰 시간이 잘 적용되는 것을 확인할수 있습니다.

만일 RSS2 방식이 아닌 atom이나 rdf, RSS1 방식 또한 wp-include 폴더에 있으니 같이 수정해서 사용할수 있습니다.

1 댓글. Leave new

  • 다음같은 경우에는 제 사이트가 블로그로 인식되어있어서 이걸로 잘 해결됐는데, 네이버는 웹문서로 인식해서 해결이 안되네요ㅜㅜ 네이버 사이트맵지우고 rss만 넣어두면 해결될까요?

    응답

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

Wordpress Gutenberg Title
워드프레스 구텐베르크 CSS 삭제하는 방법
워드프레스 5.0에서 기본 에디터로 추가된 구텐베르크(Gutenberg)는 블록 스타일의 위지윅 에디터로 단순한 디자인의 활용도가 높은 CSS를 제공하고 있습니다. 하지만 기존의 클래식…