[FEAT] robots.txt·sitemap.xml SEO 라우트 설정#251
Conversation
- 배포 도메인을 SITE_URL 공유 상수로 분리했습니다 - 인증이 필요한 비공개 라우트를 크롤링에서 제외하는 robots.txt를 추가했습니다 - 공개 라우트와 로케일별 hreflang alternates를 포함한 sitemap.xml을 추가했습니다
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Walkthrough공유 ChangesSEO 라우트 설정
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant NextMetadata as Next.js Metadata
participant RobotsRoute as robots()
participant SitemapRoute as sitemap()
participant SiteConstants as SITE_URL
NextMetadata->>RobotsRoute: robots.txt 생성 요청
RobotsRoute->>SiteConstants: SITE_URL 조회
SiteConstants-->>RobotsRoute: 사이트 기준 URL 반환
NextMetadata->>SitemapRoute: sitemap.xml 생성 요청
SitemapRoute->>SiteConstants: SITE_URL 조회
SiteConstants-->>SitemapRoute: 사이트 기준 URL 반환
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Timo Performance ReportBundle Size — timo-web
Lighthouse — timo-web
Image Optimization — timo-web
측정 커밋: |
jjangminii
left a comment
There was a problem hiding this comment.
이런것도 있네요~ 고생하셨습니다 👍 👍
ISSUE 🔗
close #250
What is this PR? 🔍
timo.kr 배포 도메인 기준으로 검색 엔진이 참조할 robots.txt·sitemap.xml 라우트를 추가하고, 관련 메타데이터가 참조하는 배포 도메인을 공유 상수로 정리했습니다.
배경
metadataBase에 쓰이는 배포 도메인(https://timo.kr)이layout.tsx안에 로컬 상수로만 존재했고, robots.txt·sitemap.xml 라우트 자체가 없었습니다.constants/site.ts로 분리해 공유하고, Next.js App Router의robots.ts/sitemap.ts컨벤션을 이용해 공개·비공개 라우트를 명시적으로 구분했습니다.SEO 라우트
app/robots.ts,app/sitemap.ts를 추가하고SITE_URL을constants/site.ts로 분리했습니다.robots.ts는routing.locales(en/ko) 각각에 대해 비공개 라우트(ROUTES.ONBOARDING/HOME/TODAY/FOCUS/STATISTICS/SETTINGS,/oauth)를disallow목록으로 생성하고,sitemap: ${SITE_URL}/sitemap.xml을 함께 반환합니다.sitemap.ts는 공개 라우트("",/login,/policy)만 각 로케일의 절대 URL로 나열하고,alternates.languages에 로케일별 URL을 채워 hreflang을 함께 제공합니다.layout.tsx의metadataBase도 동일한SITE_URL상수를 참조하도록 정리했습니다.robots.ts/sitemap.ts는 Next.js가 자동으로/robots.txt,/sitemap.xml로 서빙하는 규약 파일이라 다른 코드에서 import되지 않습니다.To Reviewers
ROUTES상수 기준으로 비공개 라우트 목록을 하드코딩했는데, 이후 새 비공개 페이지가 추가되면robots.ts의PRIVATE_ROUTES목록도 함께 갱신해야 합니다. sitemap에 넣을 공개 페이지 범위("",/login,/policy)가 맞는지 확인 부탁드립니다.Screenshot 📷
Test Checklist ✔
pnpm check-types통과pnpm lint통과/robots.txt,/sitemap.xml실제 배포 환경 렌더링 확인 — 후속 확인 필요 (로컬 dev 서버 중단으로 미실행)