본문 바로가기

이모저모

SEO 최적화를 위한 브레드크럼 & 사이트맵 자동 생성 시스템 구축기

최근 프로젝트에서 SEO 도입을 본격적으로 시작했습니다

단순히 메타태그 몇 줄 추가하는 수준이 아니라,
사이트 구조 자체를 SEO에 최적화된 형태로 재설계하는 작업을 진행했습니다.

이번 개선의 핵심은 다음과 같았습니다.

  • 의미 있는 URL 구조로 변경
  • query string 기반 URL을 301 리다이렉트
  • 브레드크럼 및 Canonical 태그 자동 생성
  • sitemap.xml 자동화 API 도입

기존 문제: query string 기반 URL 구조

기존 페이지 URL은 다음과 같은 형태였습니다:

/products?page=2&category=outer&sort=popular

 

검색·필터·페이지네이션 등을 모두 query string으로 처리해 개발자 입장에선 편했지만,
검색엔진과 사용자 입장에서는 다음과 같은 문제가 있었습니다.

❌ SEO 측면에서의 문제점

  • URL 구조에 의미가 없어 콘텐츠 구분이 어려움
  • 파라미터가 다르다는 이유로 중복 콘텐츠로 오인될 가능성
  • URL 기반 구조가 없어 브레드크럼 및 Canonical 태그 자동 설정이 어려움

개선 방향: 의미 있는 URL + 301 리다이렉트

1. 경로 기반의 URL 구조로 전환

다음과 같이 URL을 의미 중심으로 재설계했습니다:

/products → 전체 상품  
/products/Caret-Special → 1차 카테고리  
/products/Caret-Special/수량한정 → 2차 카테고리

이제 URL만 봐도 어떤 콘텐츠인지 명확하고,
검색엔진도 콘텐츠의 구조와 의미를 더 쉽게 인식할 수 있게 되었습니다.

2. 기존 URL → 새로운 URL로 301 리다이렉트

기존 URL로 접속 시 자동으로 새 구조로 영구 이동되도록 설정했습니다:

if (req.url.includes('/products') && req.query.category) {
  const { category, page } = req.query;
  const newUrl = `/products/${category}/`;
  res.writeHead(301, { Location: newUrl });
  res.end();
}

📌 왜 301인가요?

  • 영구 이동(Permanent Redirect): 검색엔진이 새 URL로 랭킹을 이전
  • SEO 점수 계승: 기존 URL의 신뢰도를 새 URL로 전달 가능
  • 사용자 북마크 등에서도 문제 없이 이동 가능

구조 개선과 함께 적용한 SEO 최적화 요소들

1. 브레드크럼 자동 생성 시스템 도입

  • generateBreadcrumbItems() 함수로 페이지 유형에 따른 breadcrumb 구조 생성
  • JSON-LD 형식의 Schema.org 데이터를 <script type="application/ld+json">으로 삽입
  • 예시
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "position": 1, "name": "홈", "item": "https://..." },
    { "position": 2, "name": "Caret-Special", "item": "https://..." },
    ...
  ]
}
  • 구글 검색 결과에 ‘경로 형태’로 표시되는 구조화 데이터 가능

2. Canonical 태그 동적 삽입

  • 페이징 등으로 중복 콘텐츠로 오해받지 않도록 Canonical URL을 자동 설정
  • ID 패턴/파라미터 유무에 따라 자동 필터링

sitemap 자동 생성 API 구축

  • /api/sitemap-generate 엔드포인트로 URL 리스트 전송 시, sitemap XML 자동 생성
  • 최대 200개 단위로 분할 저장 + sitemap-index.xml 자동 구성
  • 병렬 처리로 속도 개선, 비동기 저장
  • TXT/JSON 포맷 모두 지원 → 마케팅팀도 쉽게 관리 가능

정리: URL은 SEO와 UX의 시작점

이번 프로젝트를 통해 깨달은 점이 하나 있습니다.

“URL은 단순한 경로가 아니라, 사용자 경험과 검색엔진 최적화의 핵심”이라는 사실입니다.

  • 사용자 입장: 더 보기 쉽고 공유하기 쉬운 구조
  • 검색엔진 입장: 구조화된 콘텐츠로 인식
  • 개발자 입장: 명확한 라우팅과 메타 자동화 가능

실제로 SEO 작업을 적용한 지 일주일 만에 특정 키워드에서 검색 순위가 상위권으로 오르는 성과도 확인할 수 있었습니다.
이런 피드백은 앞으로도 구조 개선을 계속해 나가야겠다는 확신을 주었습니다