홈 페이지 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와 코드 불일치 위험 | 항상 일관성 유지 |
이런 배선 작업에서 배운 점
이 수준의 작업은 사실 "버그 픽스"보다는 설계 의도와 구현의 간격을 메우는 것이다. 처음부터 완벽한 아키텍처를 짜는 팀이 있지만, 현실은 대부분 이렇다:
- 초기 속도 > 완벽함 — 초기 개발 때는 "일단 홈 페이지 띄우자"고 타이틀을 하드코딩한다.
- 나중에 필요성 발견 — 몇 주/달이 지나 "콘텐츠 팀이 이 값을 바꿔야 한다"는 요청이 온다.
- 배선 작업 — 이미 있는 DB 스키마를 연결하기만 하면 되는 간단한 작업이다.
팀 관점에서 보면, 이런 작업이 자주 필요하면 다음 단계 아키텍처를 고려해야 한다는 신호다:
- CMS 연동이 일회성이 아니라 반복되는가?
- 메타 정보 관리가 코드 밖으로 빠져나와야 하는 요구가 증가하고 있는가?
- 팀이 이런 변경을 자주 요청하는가?
이런 패턴이 보이면 "다음 분기에 CMS 통합 레이어를 체계화하자"는 계획으로 이어진다.
체크리스트
이런 배선 작업 후 자주 놓치는 부분들:
- 🔍 캐싱 정책 확인 — CMS 데이터가 자주 변하면 불필요한 캐시 무효화가 발생하지 않는가?
- 🔍 폴백 처리 — CMS 값이 비어 있거나 없으면 어떻게 할 것인가? (기본값 필요)
- 🔍 홈 페이지 감지 로직 — URL이나 라우트로 홈을 판별하는데, 다국어/서브도메인 변수가 있으면 누락 없는가?
- 🔍 다른 메타 태그도 함께 — title만 연동하면 description도 연동해야 하는 건 아닌가?
다음.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.