워드프레스 RSS Feed 오류들과 해결법 (네이버 썸네일 반영)

설치형 워드프레스를 사용하면, 네이버 블로그라던지 티스토리 같은 가입형 블로그와는 다른 점 때문에 울고 웃는 해프닝이 벌어진다. 사실 정확하게 말하면 비용 말고는 설치형 쪽이 무조건 뛰어나지만, 그 뛰어난 자유도 덕분에 전문적인 웹 지식이 없는 유저들은 오류가 나타났을 때 이래저래 곤란한 상황에 처할 수 있기 때문이다.

전문적인 지식이 없는 워드프레스 운영자들이 가장 많이 겪는 난관은, 그 광활한 자유도로 인해, 신문물을 발견한 원시인 마냥 이 플러그인 저 플러그인 싹 다 끌어다 쓰거나, 정확한 원리를 모르는 상태에서 functions.php 라던지 테마를 직접 수정해서 에러가 나는 경우다. 개꿀몬(GKKmon)도 양반은 못되는지, 이번에 RSS Feed 관련해서 이유는 간단하지만 파장은 엄청났던 오류를 겪게 되었고, 이를 공유하려고 한다.

워드프레스 RSS Feed 오류가 발생하는 이유들, 왜 수정해야 하나?

보통 워드프레스 Feed(RSS) 오류라고 하면, RSS Feed 가 오류로 인해 아예 연결되지 않거나, 연결은 되지만 내용이 뭔가 이상하거나, 연결도 내용도 정상이지만 검색엔진에 썸네일(Thumbnail)이 반영되지 않거나(사실 이건 오류가 아니다) 하는 경우다.

RSS Feed 가 아예 연결이 되지 않는 건 흔히 볼 수 없는 경우긴 하지만, 스킨에 오류가 있거나, FTP 등으로 수정하면서 파일을 날려 먹었거나 한 경우에 이럴 수 있다. 근데 보통 이 정도로 기초단계에서 문제가 있는 경우, RSS Feed가 문제가 아니라 사이트 자체가 먹통이 돼 있을 확률이 높다. 이 정도로 사이트가 망가졌는데도 문제점을 모른다면, 문제를 찾아내어 수정을 하는 게 불가능한 수준이므로, 백업해놓은 자료로 원래 상태로 복원하던가, 아예 새로 설치하는 것을 추천한다.

멀쩡한데 썸네일만 반영되지 않는 경우는, RSS Feed가 썸네일(미리보기 이미지)을 포함하지 않기 때문이다. 이런 경우 ‘Featured Images in RSS’ 같은 플러그인을 해결해, RSS Feed 내에 썸네일을 포함시키거나, 직접 테마나 functions.php 을 수정해 썸네일을 포함시키면 된다.

마지막으로 현실적으로 가장 많이 겪게 되는 워드프레스 RSS Feed 오류인데, feed 페이지로 연결은 되지만 내용이 이상한 경우(지나치게 짧다던지 피드의 순서가 이상하거나 하는 등)다. 워드프레스의 경우 본인의 도메인 주소 끝에 /feed/ 를 입력하면 접속할 수 있다. 개꿀몬(GKKmon)의 경우 https://gkkmon.com/feed/ 이런 식으로 말이다. 검색 엔진들의 웹 마스터 도구에서 등록하는 RSS 페이지가 바로 이 주소고, 이게 구글의 구글봇(Googlebot), 네이버의 예티(Yeti), 빙의 빙봇(Bingbot), 야후의 슬러프(Slurp) 등의 Robot 들이 확인하게 되는 RSS Feed 페이지다. 때문에 피드에 문제가 있을 경우, 이미지 라던지 대부분의 요소를 블로그의 RSS Feed 에서 읽어 들이는 네이버 같은 경우 오류가 발생하게 되고, SEO 지수가 떨어지며, 심각한 경우 품질 하락의 원인이 된다.

에러 세부사항과 해결법

이런 경우 원래는 멀쩡했으나, 사용자가 이것저것 사이트를 수정하는 도중에 예기치 못한 충돌이 생긴 경우다. 그 충돌의 경우는 보통

  • 설치한 RSS Feed 관련 플러그인끼리의 충돌
  • 워드프레스 설정에 주소를 잘못 입력했거나, SSL 보안인증서를 적용시키는 과정에서 잘못된 리다이렉션을 사용함
  • 워드프레스의 ‘wp-includes’ 폴더의 Feed 관련 파일의 마지막 줄에 공백이 포함되어 오류 발생

등의 이유가 있고, 기존에 피드 설정을 해 놨는데 다른 곳에서 한 번 더 같은 설정을 해서 순환오류가 나는

  • 특정 테마의 ‘사용자 정의하기’ 메뉴에서 RSS Feed URL 입력
  • functions.php 에서 피드 끝에 출처를 적는다는지 하는 RSS 관련 기능을 추가함
  • ‘Yoast SEO’ – ‘Search Appearance’ – RSS 에서 RSS feed 설정을 추가했다던지, 흡사한 플러그인에서 피드 관련 내용을 입력함

등에서 같은 RSS feed 설정을 다른 곳에서 또 입력했을 경우 오류가 발생하기도 한다.

개꿀몬(GKKmon) 같은 경우도 Yoast SEO 에서 기본적으로 켜져 있는 RSS 설정 중, 콘텐츠 마지막에 원본링크를 첨부시키는 기능과, 직접 functions.php 파일에 원문링크를 추가하는 기능을 함께 사용해서 충돌이 일어났다.
function feed_copyright_disclaimer($content) 라는 구문으로 시작하는, functions.php에 삽입해 RSS 피드에 원문링크를 추가하는 코드인데, 그 코드는 아래와 같다.

function feed_copyright_disclaimer($content) {
	if(is_feed()) {
	$output = '<p>이 글은 <a href="' . home_url() . '">' . get_the_author() . '</a> 의 콘텐츠입니다, 이곳에서 읽어주세요 <a href="' . get_permalink() . '">'. get_title() .'</a>.</p><p>This post was written by <a href="' . home_url() . '">' . get_the_author() . '</a>, Please read here <a href="' . get_permalink() . '">'. get_permalink() .'</a>.</p>';
	$content = $content.$output;
	}
	return $content;
}
add_filter('the_content','feed_copyright_disclaimer');

혹시 RSS feed가 짧다거나 오류가 생기는 경우, 개꿀몬(GKKmon)처럼 같은 설정을 반복해서 순환오류가 나지 않았는지, 저런 코드가 functions.php에 삽입되어 있는지 확인해보길 바란다.

그리고 워드프레스가 버전 업데이트가 될 때 간헐적으로 Feed 파일의 마지막 줄에 공백이 추가되는데, 이 현상도 오류의 원인이 될 수 있다고 하니 공백을 지우도록 하자.

FTP 같은 프로그램으로 워드프레스 루트 폴더(비트나미 기준 /opt/bitnami/apps/wordpress/htdocs/wp-includes)에서 ‘wp-includes’ 안에 있는 다음 php 문서들을 열어 가장 마지막 줄의 공백을 지우고 저장하면 된다.

feed-atom-comments.php
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php
feed.php