최근 프로젝트에서 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 작업을 적용한 지 일주일 만에 특정 키워드에서 검색 순위가 상위권으로 오르는 성과도 확인할 수 있었습니다.
이런 피드백은 앞으로도 구조 개선을 계속해 나가야겠다는 확신을 주었습니다
'이모저모' 카테고리의 다른 글
[Tailwind] tailwind에서 cn을 사용하는 이유 (2) | 2024.12.07 |
---|---|
SW 교육 페스티벌 2023 회고 (0) | 2024.11.04 |
[Snappi] 요즘 뜨는 번역 사이트 스내피 이용후기 2 (12) | 2024.03.26 |
Book_요즘 우아한 개발 (0) | 2024.02.12 |