개발 slecs

홈 페이지 SEO 타이틀이 CMS 설정을 따르도록 수정

목차

홈 페이지의 <title> 태그를 하드코딩된 값에서 데이터베이스 값(cms_site.meta.seo.title)으로 연동하는 작업을 했다. 작은 변경처럼 보이지만 콘텐츠 팀이 SEO 설정을 독립적으로 관리할 수 있게 만든 중요한 배선이다.

왜 이 문제가 있었나

많은 팀이 SEO 최적화를 할 때 title, description 같은 메타 정보를 코드에 박아둔다. "왜 안 바꾸나?"라고 물어도 "개발자 호출해야 배포되네요"라는 답변이 나온다. 이건 단순히 불편한 게 아니라 시장 변화에 대응하는 속도를 떨어뜨린다. SEO 시장 동향이 바뀌거나 캠페인에 따라 타이틀을 A/B 테스트하고 싶어도 매번 코드 변경과 배포를 기다려야 했다.

우리의 경우 이미 CMS에서 cms_site.meta.seo.title이라는 필드로 홈 페이지 SEO 타이틀을 관리하려는 의도가 있었는데, 실제 렌더링될 때는 그 값이 사용되지 않고 있던 상태였다. 즉, 배선이 빠져 있던 것이다.

변경 내용과 영향

src/layouts/Base.astro에서 홈 페이지의 title 설정 로직을 수정했다. 이제 페이지가 렌더링될 때 다음 순서로 title을 결정한다:

홈 페이지인가?
  → YES: cms_site.meta.seo.title 사용
  → NO: 해당 페이지의 로컬 title 사용

이렇게 하면 콘텐츠 팀이 직접 CMS에 접속해 홈 페이지 SEO 타이틀을 변경하면 배포 없이 즉시 반영된다. 물론 정적 사이트 생성(SSG)이라면 이야기가 다르지만, 동적 데이터를 다루는 구조에서는 이 정도의 배선이 표준이다.

변경 전 변경 후
코드에 title 하드코딩 CMS 데이터로부터 동적 로딩
변경 시 배포 필수 배포 불필요
콘텐츠팀 직접 수정 불가 콘텐츠팀 직접 수정 가능
메인 도메인 SEO와 코드 불일치 위험 항상 일관성 유지

이런 배선 작업에서 배운 점

이 수준의 작업은 사실 "버그 픽스"보다는 설계 의도와 구현의 간격을 메우는 것이다. 처음부터 완벽한 아키텍처를 짜는 팀이 있지만, 현실은 대부분 이렇다:

  1. 초기 속도 > 완벽함 — 초기 개발 때는 "일단 홈 페이지 띄우자"고 타이틀을 하드코딩한다.
  2. 나중에 필요성 발견 — 몇 주/달이 지나 "콘텐츠 팀이 이 값을 바꿔야 한다"는 요청이 온다.
  3. 배선 작업 — 이미 있는 DB 스키마를 연결하기만 하면 되는 간단한 작업이다.

팀 관점에서 보면, 이런 작업이 자주 필요하면 다음 단계 아키텍처를 고려해야 한다는 신호다:
- CMS 연동이 일회성이 아니라 반복되는가?
- 메타 정보 관리가 코드 밖으로 빠져나와야 하는 요구가 증가하고 있는가?
- 팀이 이런 변경을 자주 요청하는가?

이런 패턴이 보이면 "다음 분기에 CMS 통합 레이어를 체계화하자"는 계획으로 이어진다.

체크리스트

이런 배선 작업 후 자주 놓치는 부분들:

  • 🔍 캐싱 정책 확인 — CMS 데이터가 자주 변하면 불필요한 캐시 무효화가 발생하지 않는가?
  • 🔍 폴백 처리 — CMS 값이 비어 있거나 없으면 어떻게 할 것인가? (기본값 필요)
  • 🔍 홈 페이지 감지 로직 — URL이나 라우트로 홈을 판별하는데, 다국어/서브도메인 변수가 있으면 누락 없는가?
  • 🔍 다른 메타 태그도 함께 — title만 연동하면 description도 연동해야 하는 건 아닌가?

다음.


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

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

댓글 0

첫 댓글 달아줘.