← 전체 글로 돌아가기

Next.js

Next.js 블로그에서 글 제목을 언제든 바꿀 수 있는 이유

블로그 글의 제목은 SEO를 위해 고정돼야 한다고 생각하기 쉽지만, 실제로는 유연하게 관리할 수 있다.

블로그를 운영하다 보면 처음 쓴 제목이 별로일 때가 있다. "나중에 바꿔도 되나?" 하고 고민하는 경우가 많은데, Next.js에서는 slug만 유지하면 제목을 자유롭게 바꿀 수 있다.

URL slug가 핵심이다

Google은 콘텐츠를 식별할 때 URL을 기준으로 한다. 제목은 부차적이다.

// 이 두 URL은 같은 콘텐츠
https://blog.example.com/posts/git-fetch-guide  # 이 부분이 중요

slug만 고정되면 제목, 본문, 메타데이터를 모두 바꿔도 Google은 같은 글로 인식한다. 이미 쌓인 백링크도 유지된다.

실제로 바꿔보기

Next.js 블로그라면 대부분 이런 구조를 가지고 있다.

// lib/posts.ts
type Post = {
  id: string;
  slug: string;  // "git-fetch-guide" <- 이건 고정
  title: string; // "Git fetch 가이드" <- 언제든 바꿀 수 있음
  excerpt: string;
  content: string;
};

slug는 파일명이나 데이터베이스 ID로 고정하고, 제목은 메타데이터로 저장한다.

SEO에 영향을 주는 것들

제목을 바꿀 때 주의할 점:

  • Canonical URL: slug는 그대로 두기
  • Open Graph tags: 새 제목으로 자동 업데이트되도록
  • RSS feed: 새 제목이 즉시 반영되도록
  • Sitemap: URL은 그대로, 지만 <lastmod> 업데이트
<!-- sitemap.xml -->
<url>
  <loc>https://blog.example.com/posts/git-fetch-guide</loc>
  <lastmod>2024-01-15</lastmod>
  <changefreq>weekly</changefreq>
</url>

제목 검색 트래픽에 미치는 영향

제목을 크게 바꾸면 검색 순위가 잠시 흔들릴 수 있다. 하지만 slug와 canonical URL이 같으면 Google이 인식하는 콘텐츠는 동일하므로 곧 회복된다.

# 날짜를 제목에서 제거할 때
# "Git fetch 가이드 (2024-01-01)" -> "Git fetch 가이드"
# URL은 유지: /posts/git-fetch-guide

언제 slug는 바꾸면 안 되는가

slug를 바꾸면 URL이 완전히 달라져서 기존 링크가 모두 깨진다. 이 경우 301 리다이렉트를 설정해야 하고, 검색 순위도 영향을 받는다.

// 피해야 할 것: slug 변경
"git-fetch-guide" -> "git-remote-fetch-guide"  // NO

// 괜찮은 것: 제목 변경
"Git fetch 가이드" -> "Git에서 원격 변경사항 fetch하기"  // OK

slug는 거의 변하지 않는 구조로 설계하고, 제목과 내용만 자유롭게 편집하는 게 가장 현명한 방법이다.