개발 slecs

사이트맵 포스트 URL을 ID 기반 경로로 정규화해 SEO 신호 명확화

목차

사이트맵의 포스트 URL을 기존 /{slug}/ 형식에서 새로운 /p/{id}/ 형식으로 정규화했다. 작은 변경처럼 보이지만, SEO 관점에서는 사이트의 URL 신호를 명확히 하는 중요한 작업이었다.

URL 체계 정리가 필요했던 이유

일반적으로 웹 애플리케이션은 성장하면서 URL 구조가 진화한다. 초기에는 /{slug}/ 같은 사람이 읽기 좋은 경로가 필요했을 수 있지만, 시스템이 복잡해지면서 ID 기반의 더 명시적인 경로로의 전환이 필요해진다. 특히 여러 개의 포스트가 같은 슬러그를 가질 수 있는 엣지 케이스나, URL 정규화(canonicalization)를 명확히 해야 할 때가 그렇다.

커밋 메시지에서 "instead of legacy"라고 표현한 것은, 단순히 URL 변경이 아니라 시스템 아키텍처 진화의 일부였음을 시사한다. 팀 관점에서 본다면, 이전 기간 동안 축적된 기술 부채를 정리하고, 새로운 표준 경로로 통일하려는 의지가 담겨 있다.

변경된 파일들이 하는 일

파일 역할 이번 변경의 의미
src/lib/db.ts 데이터베이스 쿼리/ORM 레이어 포스트를 조회할 때 반환되는 URL 필드를 /{slug}/에서 /p/{id}/로 변환하는 로직 추가 또는 수정
src/pages/sitemap-index.xml.ts 동적 사이트맵 생성 엔진 사이트맵 XML에 포함되는 포스트 URL들을 새 경로로 갱신

사이트맵은 단순한 문서가 아니다. 검색 엔진이 사이트 구조를 이해하고, 어떤 페이지가 정식 URL인지 판단하는 신뢰성 높은 신호다. db.ts에서 URL 생성 로직이 변경된 것은, 애플리케이션 전반에서 이 새로운 경로가 canonical 경로가 되었음을 의미한다.

사이트맵과 SEO의 깊은 관계

많은 팀들이 사이트맵을 단순한 XML 파일로 취급한다. 하지만 검색 엔진 최적화 관점에서는 다르다:

  • Canonical URL 신호: 같은 콘텐츠에 여러 URL이 접근 가능하면 검색 엔진은 어느 것이 "정식"인지 혼동한다. 사이트맵에 명시된 URL은 그 선택을 도와준다.
  • 크롤링 효율성: 검색 엔진 봇이 유효한 URL만 사이트맵에서 발견하면, 불필요한 재크롤을 줄일 수 있다.
  • 색인화 신뢰도: 사이트맵에 일관되게 포함된 URL은 더 신뢰도 높게 색인된다.

이번 커밋이 "fix"로 표시된 이유도 여기에 있다. 레거시 URL이 사이트맵에 남아 있으면, 검색 엔진은 여전히 그 경로를 크롤링하고 색인하려 시도한다. 그 결과 중복 컨텐츠(duplicate content) 경고가 발생하거나, 검색 결과의 신뢰도가 떨어질 수 있다.

실제 마이그레이션 시나리오

사이트맵만 변경해서 끝나지 않는다. 실제 구현 관점에서 고려해야 할 사항들:

Before:
  - 포스트 데이터베이스에서 조회 시 반환 URL: /{slug}/
  - 사이트맵 생성 시 사용되는 URL: /{slug}/
  - HTTP 라우터가 인식하는 경로: /{slug}/

After:
  - 포스트 데이터베이스에서 조회 시 반환 URL: /p/{id}/
  - 사이트맵 생성 시 사용되는 URL: /p/{id}/
  - HTTP 라우터가 인식하는 경로: /p/{id}/

db.ts의 변경이 중요한 이유가 여기다. 데이터베이스 레이어에서 URL을 생성하는 로직이 바뀌면, 애플리케이션 전체에서 일관되게 새로운 경로를 사용하게 된다. 그 결과 사이트맵도 자동으로 올바른 URL을 포함하게 된다.

팀 소통 관점에서의 배운 점

이런 URL 정규화 작업을 할 때, 팀 내 의사결정 과정이 중요하다:

  • 프론트엔드 팀: 링크 생성이 새로운 경로를 사용하는지 확인
  • 마케팅/SEO 팀: 기존 슬러그 URL들에 대한 리다이렉트 필요 여부 검토
  • QA 팀: 사이트맵 검증 (실제로 /p/{id}/ 경로가 모두 접근 가능한지)

코드리뷰 관점에서 내가 했을 질문들:
- 레거시 URL /​{slug}/로 유입되는 트래픽은? (리다이렉트 필요)
- 기존에 링크된 외부 사이트들은? (301 Redirect 정책)
- 캐시된 사이트맵이 있나? (즉시 갱신 필요)
- 데이터베이스에 slug와 id 필드가 모두 있는지 확인 (조회 안정성)

마무리

결국 이 커밋은 "URL 경로를 바꿈" 이상의 의미를 담고 있다. 시스템이 성장하면서 URL 구조를 정리하고, SEO 신호를 명확히 하고, 향후 확장성을 높이는 작업이었다. 이런 seemingly small fixes가 쌓이면 서비스 품질과 검색 가시성이 눈에 띄게 개선된다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.