날짜 기반 메타 회전으로 SEO 다양성 확보
목차
today 페이지의 메타 정보(제목, 설명)를 날짜와 단일 키워드 조합으로 동적으로 생성하는 회전식 시스템을 구현했다. 매일 접속할 때마다 다른 소제목과 메타데이터가 노출되도록 함으로써, SEO 다양성을 확보하면서도 사용자 경험에는 일관성을 유지하는 방식이다.
왜 회전식이 필요했나
정적 사이트의 특정 페이지(예: /today)에 매일 고정된 제목과 메타데이터를 두는 건 생각보다 제약이 많다.
검색 엔진 크롤러 입장에서 보면, 같은 URL을 여러 번 방문해도 메타정보가 바뀌지 않으면 인덱싱이 다양해지지 않는다. 특히 콘텐츠가 "오늘의 추천" 같은 동적 성격이라면, 사용자가 보는 경험이 매일 다른데 메타정보만 고정되어 있으면 위화감이 생긴다. 반대로 매번 완전히 다른 메타를 생성하면, 날짜별로 캐시되지 못해 성능 저하나 예측 불가능한 SEO 변동성을 낳는다.
그래서 "날짜 기반 결정적 회전"이라는 아이디어가 나온 것 같다. 같은 날짜면 항상 같은 키워드/제목을 보여주고, 다음 날이 되면 자동으로 다른 키워드로 회전한다. 이렇게 하면:
- 캐시 친화적: 하루 단위로 안정적인 메타정보 → CDN 캐시, 브라우저 캐시 모두 효율적
- SEO 다양성: 시간이 지나면서 같은 URL이 여러 키워드 변형으로 인덱싱됨
- 예측 가능: 사용자나 모니터링 시스템이 "오늘은 X 키워드, 내일은 Y 키워드" 예상 가능
단일 타깃 키워드로 회전하기
"단일 타깃 키워드"라는 표현이 핵심이다. 여러 키워드를 섞어서 생성하는 게 아니라, 미리 정해진 키워드 목록에서 오늘은 첫 번째, 내일은 두 번째, 모레는 세 번째를 선택하는 식이다.
| 방식 | 장점 | 단점 |
|---|---|---|
| 날짜 해싱 → 키워드 배열 인덱싱 | 단순, 확정적 | 키워드 추가 시 회전 순서 변경됨 |
| 날짜 숫자 mod 키워드개수 | 안정적, 스케일링 용이 | 키워드 개수 변경 영향 있음 |
| 사전 정의된 일정표 | 세밀한 제어 가능 | 유지보수 부담 |
첫 번째 또는 두 번째 방식이 일반적이다. 예를 들어:
const keywords = ["기술", "팀문화", "성장", "협업", "효율성"];
const today = new Date();
const dayOfYear = Math.floor((today - new Date(today.getFullYear(), 0, 0)) / 86400000);
const todayKeyword = keywords[dayOfYear % keywords.length];
이렇게 하면 매년 같은 날짜에 같은 키워드가 나타나고, 키워드 목록이 추가되면 자동으로 회전 폭이 커진다.
Astro에서 구현하기
src/pages/today.astro에서 이를 구현한다는 건, Astro의 정적 생성 시점에 현재 날짜를 기준으로 메타를 계산한다는 뜻이다.
// Astro 빌드 타임에 실행
const today = new Date();
const selectedKeyword = getKeywordForDate(today);
// 페이지 메타 동적 설정
<meta property="og:title" content={`${today.toLocaleDateString()} - ${selectedKeyword}`} />
<meta property="og:description" content={generateDescription(selectedKeyword)} />
빌드할 때마다 오늘 날짜 기준으로 메타가 갱신되므로, 매일 배포하거나 일일 재빌드 파이프라인이 있다면 자동으로 메타가 회전한다. 또는 엣지 함수(Edge Runtime)에서 실시간 계산하면 배포 없이도 동작 가능하다.
비슷한 패턴과 고려사항
이런 회전식 콘텐츠 전략은 마케팅, SEO, UX 측면에서 여러 방식으로 활용된다:
- A/B 테스트: 다른 사용자 그룹에 다른 제목을 노출 (사용자ID mod)
- 타임존별 콘텐츠: 사용자의 지역별로 다른 키워드 강조
- 계절성: 월 단위 또는 분기 단위로 테마 변경
- 신선도 신호: 크롤러에게 "이 페이지는 자주 업데이트됨"을 신호
주의할 점은, 너무 자주 회전하면(예: 시간 단위) 캐시 효율이 떨어지고, 너무 드물게 회전하면(예: 연 단위) SEO 효과가 미미하다는 것이다. 일일 회전은 그 사이의 합리적인 지점이다.
또 하나는, 제목과 메타의 불일치 문제다. 실제 페이지 콘텐츠는 고정되어 있는데 메타만 계속 바뀐다면, 사용자나 검색 엔진이 혼란스러울 수 있다. 따라서 메타의 키워드/톤이 페이지 내용과 대별로 맞아야 한다.
회고
brainstorm #4라는 꼬리표를 보니, 앞서 여러 접근 방식을 놓고 고민했을 거다. 아마 처음엔 "매번 완전히 다른 콘텐츠 생성"이나 "사용자마다 맞춤형 메타"를 생각했다가, 단순성과 효율성 사이의 균형점으로 "날짜 기반 단일 회전"을 선택한 것 같다.
이건 단순한 기술 결정이 아니라, 팀 내에서 "얼마나 정교한 시스템이 필요한가"를 묻는 과정이었을 거다. 과하게 복잡하면 유지보수 비용이 높아지고, 너무 단순하면 효과가 제한적이다. 날짜 기반 회전이라는 선택은 "가장 적은 복잡도로 가장 많은 효과를 낸다"는 철학이 담긴 것 같다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.