RSS나 사이트맵을 제출했는데 ‘형식이 올바르지 않습니다’라는 메시지가 나오면 파일을 다시 만들기 전에 오류 위치부터 나눠 봐야 한다. 같은 XML이라도 RSS는 최신 글의 제목·주소·본문·발행일을 전달하는 피드이고, 사이트맵은 검색로봇이 방문해야 할 URL 목록이다. 이 글은 2026년 9월 4일 네이버·Google 공식 문서를 확인해, 작은 사업자 홈페이지에서 자주 생기는 오류를 30분 안에 좁히는 순서로 정리했다.
핵심 요약: 제출창보다 원본 주소를 먼저 검사한다
① RSS와 사이트맵의 역할을 구분한다 ② 소유확인 도메인과 피드 안의 주소를 맞춘다 ③ 필수 XML 요소를 확인한다 ④ 브라우저 화면이 아니라 원본 응답을 본다 ⑤ 공개 가능한 URL만 남긴다 ⑥ 수정일과 표준 URL을 일치시킨다 ⑦ 재제출 뒤에는 기다리며 수집 결과를 기록한다. 제출을 반복하기보다 첫 번째 실패 지점을 찾는 것이 빠르다.
1. RSS와 사이트맵을 서로 바꿔 제출하지 않는다
RSS 2.0은 rss·channel 아래에 하나 이상의 item이 있어야 하고, 각 item에는 제목·링크·설명·발행일·고유주소 같은 글 정보가 들어간다. 사이트맵은 urlset과 url, 필수 loc를 중심으로 구성한다. RSS 주소에 urlset만 보이거나 사이트맵 주소에 rss가 나오면 파일 내용과 제출 메뉴가 뒤바뀐 것이다. 확장자가 .xml이라는 이유만으로 같은 형식으로 보지 않는다.
2. 소유확인 주소와 피드 속 호스트를 한 글자씩 맞춘다
네이버는 피드 안의 모든 URL이 소유확인한 사이트와 같은 도메인이어야 한다고 안내한다. https와 http, www 유무, 별도 서브도메인을 섞으면 브라우저에서는 리디렉션되어도 제출 검증에서 막힐 수 있다. 예를 들어 https://example.com을 등록했다면 피드의 link·guid·loc도 최종 공개 주소인 https://example.com으로 통일한다. 상대경로 /posts/1 대신 완전한 절대주소를 사용한다.
3. RSS는 빈 item과 잘린 본문부터 확인한다
네이버 제출 기준상 RSS에는 item이 최소 1개 있어야 하며, 각 글의 본문은 가능한 한 전체가 포함되어야 한다. 게시물은 공개됐지만 RSS 생성 조건이 ‘승인됨’ 또는 ‘published=1’을 놓치면 빈 피드가 될 수 있다. 최신 글 한 건의 title·link·description·pubDate·guid가 실제 값으로 출력되는지 보고, 본문의 특수문자 때문에 XML이 중간에서 끊기지 않도록 이스케이프나 CDATA 처리를 확인한다.
4. 사이트맵은 namespace와 공개 URL만 남긴다
기본 사이트맵의 루트는 urlset이고 sitemaps.org 표준 namespace를 사용하며, 각 url에는 loc가 필요하다. 관리자·로그인·미리보기·중복 파라미터 주소는 목록에서 빼고 검색에 노출할 대표 URL만 넣는다. Google도 사이트맵에는 사이트에서 실제로 검색결과에 표시하려는 표준 URL을 포함하도록 안내한다. URL이 적은 소상공인 사이트라면 복잡한 사이트맵 인덱스보다 하나의 단순한 파일이 점검하기 쉽다.
5. 화면이 열리는 것과 XML 응답이 정상인 것은 다르다
브라우저에 글자가 보이더라도 서버가 404나 500을 반환하거나, HTML 오류 페이지를 200으로 포장하면 검색로봇은 올바른 피드로 처리하지 못한다. 개발자도구나 헤더 확인 도구에서 응답코드 200, Content-Type이 XML 계열인지, 로그인·쿠키 없이 열리는지, 응답이 지나치게 느리지 않은지 확인한다. 네이버는 RSS와 사이트맵이 10MB를 넘거나 수집 응답이 느리면 제출이 제한될 수 있다고 밝히고 있다.
6. lastmod는 실제 중요한 수정일만 기록한다
사이트맵의 lastmod는 선택 항목이지만 쓴다면 본문의 중요한 내용이 바뀐 날짜와 맞춰야 한다. 단순 배포나 광고 코드 변경 때 모든 글의 날짜를 오늘로 바꾸면 검색로봇이 변경 신호를 신뢰하기 어렵다. 게시물의 canonical, RSS link·guid, 사이트맵 loc가 같은 최종 주소를 가리키는지도 함께 대조한다. 날짜 형식은 한 가지 표준으로 생성하고 서버 시간대 변환으로 미래 시간이 되지 않게 한다.
7. robots와 noindex를 확인한 뒤 한 번만 재제출한다
피드에 URL이 있어도 robots.txt가 검색로봇을 막거나 페이지에 noindex가 있으면 수집과 색인이 이어지지 않는다. 공개 글과 RSS·사이트맵 경로가 로그인 없이 열리는지, robots 규칙과 페이지 메타가 모순되지 않는지 확인한다. 수정 후 웹마스터도구에 한 번 재제출하고 같은 URL을 매일 수집요청하지 않는다. 네이버는 수집 요청이 실시간 반영이나 검색 노출을 보장하지 않으며 최소 1일에서 수주가 걸릴 수 있다고 안내한다.
30분 오류 진단표와 중단 기준
첫 5분은 RSS·사이트맵 주소의 응답코드와 원본 XML을 확인한다. 다음 5분은 루트 요소와 필수 항목, 5분은 도메인·절대주소·canonical을 대조한다. 이어 5분은 비공개·중복 URL과 lastmod를 정리하고, 5분은 robots·noindex·로그인 차단을 확인한다. 마지막 5분은 제출 시각과 오류 메시지를 기록한다. 원본 XML이 정상인데도 계속 거부되면 무작정 구조를 바꾸지 말고 서버 응답 로그와 플랫폼 처리 시간을 먼저 확인한다.
