Published on

8단계: RSS 및 sitemap 자동 생성 구조 이해

RSS 및 sitemap 자동 생성 구조 이해

Pliny는 검색엔진 최적화와 콘텐츠 구독을 위해 RSS와 sitemap을 자동으로 생성하는 구조를 갖추고 있습니다.


8-1. RSS란?

  • XML 기반 구독용 피드 포맷
  • RSS 리더, 브라우저 확장, 포털 수집기 등에서 활용
  • 생성 위치: /public/feed.xml

8-2. sitemap이란?

  • 검색 엔진이 내 사이트 구조를 효율적으로 탐색하게 하는 XML 문서
  • 블로그, 정적 페이지, 태그 페이지까지 포함
  • 생성 위치: /public/sitemap.xml

8-3. 관련 파일 구조

파일 경로설명
scripts/generate-rss.tsRSS 피드 생성 스크립트
lib/generate-rss.tsRSS 포맷 정의 및 구조화
next-sitemap.config.jssitemap 생성 설정
package.jsonpostbuild에 RSS 생성 명령 포함

8-4. RSS 생성 흐름

  1. generate-rss.ts에서 allBlogs 가져옴
  2. generateRssFeed() 함수로 XML 작성
  3. /public/feed.xml로 저장
const rss = generateRssFeed(allBlogs);
fs.writeFileSync('./public/feed.xml', rss);
  • build 완료 후 postbuild 스크립트로 자동 실행됨

8-5. sitemap 생성 흐름

  • next-sitemap.config.js 설정 기준으로 sitemap 자동 생성
  • 사이트 주소, 제외 경로, robots.txt 설정 가능
module.exports = {
  siteUrl: 'https://www.poten.co.kr',
  generateRobotsTxt: true,
  exclude: ['/server-sitemap.xml'],
}

→ 빌드 시 /public/sitemap.xml, /public/robots.txt 자동 생성


요약

  • RSS: /public/feed.xml에 생성, 모든 글 포함
  • sitemap: /public/sitemap.xml/robots.txt 자동 생성
  • postbuild 스크립트에서 RSS 생성 자동 트리거
  • 검색엔진 등록, 카카오뷰, RSS 리더 연동 등에서 필수 활용

심화학습

Q1. RSS 피드에 대표 이미지를 추가하거나 커스터마이징하려면 어떤 부분을 수정해야 할까?

A: lib/generate-rss.ts에서 <item><media:content> 또는 <enclosure> 태그를 추가하고 이미지 URL을 명시하면 됩니다.


Q2. sitemap에서 특정 페이지를 제외하려면 어떤 설정을 활용해야 할까?

A: next-sitemap.config.jsexclude 필드에 경로를 추가하면 해당 URL이 sitemap에서 제외됩니다.


Q3. robots.txt에 커스텀 규칙을 넣으려면 어떤 식으로 작성하고 배포해야 할까?

A: robots.txt를 수동으로 작성하거나, next-sitemap.config.js에서 robotsTxtOptions.additionalSitemapspolicies를 설정하여 자동 반영되게 할 수 있습니다.