Skip to content

URL 스타일 커스터마이즈 ​

출처: URL 스타일 커스터마이즈 발행일: 2024-5-8 최종 편집: 2024-9-29 원래 섹션: 사이트 설정 태그: NotionNext, SEO 요약: NotionNext URL 스타일을 직접 설정하는 방법

4.5.0 이후 버전에서는 글 URL prefix를 %category%, 즉 글이 속한 카테고리로 설정할 수 있습니다. 이렇게 하면 URL이 의미를 가지며 SEO에도 유리합니다. 4.5.2 이후에는 URL의 중국어 카테고리명을 영어 단어로 매핑할 수도 있습니다.

URL 구성 ​

Untitled

NotionNext의 URL ​

현재 블로그 목록의 글은 통일된 prefix를 가지며, 기본값은 article입니다. 따라서 목록의 글을 열면 기본 URL 경로는 다음과 같습니다.

Untitled

/user-guide/intro/article/notion-next-url-customize

위 링크에서 URL은 크게 세 부분으로 나눌 수 있습니다. 녹색 부분은 사이트 도메인, 빨간색 부분은 URL prefix, 파란색 부분은 데이터베이스의 slug 값입니다.

URL 최적화와 SEO ​

URL은 명확한 계층과 의미를 가지는 것이 좋습니다. 검색 엔진이 크롤링하고 색인하며 더 잘 랭킹하는 데 도움이 됩니다.

의미 있는 URL을 설정하는 것을 권장합니다. 예를 들어 각 글의 URL을 수동으로 설정하면 URL만 보고도 글 내용을 어느 정도 추측할 수 있습니다.

URL prefix 설정 ​

NotionNext의 blog.config.js에서 기본 글 prefix를 설정하는 아래 항목을 찾을 수 있습니다.

JavaScript
POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX || 'article',

기본값은 article입니다. post, p 등 원하는 다른 prefix로 바꿀 수 있습니다.

변수 설정 ​

아래 변수를 설정할 수 있으며, 웹페이지 생성 후 해당 값으로 동적으로 치환됩니다.

연월일은 블로그 글의 date 필드에서 가져오고, 카테고리명은 Notion 데이터베이스의 category에서 가져옵니다.

Untitled

사용 예시 ​

예를 들어 SEO 가이드 사이트는 URL 스타일에 카테고리를 사용합니다. 글 링크 형식은 다음과 같습니다: https://seo.tangly1024.com/seo-basics/what-is-google-seo

Untitled

카테고리명 매핑 ​

카테고리 이름이 중국어이고 URL에서는 영어로 매핑하고 싶다면 4.5.2 이후 버전으로 업데이트하세요.

URL의 카테고리명은 원하는 영어 단어로 매핑할 수 있습니다. 예: xx.com/학습/slug -> xx.com/learning/slug

사용 방법 ​

Notion Config에 다음과 비슷한 설정을 추가합니다.

예시:

Untitled

참고 템플릿 데이터베이스에서 설정할 수 있습니다.

설정 센터 | Notion

주의: 여기서 가장 흔한 오류는 Notion이 사용자가 입력한 영어 큰따옴표를 자동으로 중국어 큰따옴표로 바꾸어 설정을 읽지 못하게 만드는 것입니다. 따라서 직접 큰따옴표를 입력하기보다 위 설정을 복사해 수정하는 것을 권장합니다. 정상적인 영어 큰따옴표중국어 큰따옴표 형식은 유효하지 않습니다 큰따옴표와 관련된 설정은 다른 곳에서도 비슷한 문제가 생길 수 있으므로 특히 주의하세요.

조합 사용 ​

위 변수는 함께 사용할 수 있지만 반드시 /로 구분해야 합니다.

예:

POST_URL_PREFIX를 %category%/%year%/%month%/%day%로 설정하면 블로그 글 URL 스타일은 다음과 같습니다.

https://[domain]/카테고리명/2024/12/31/글id

제목 기반 글 주소 (이 저장소 확장) ​

업스트림 NotionNext에는 없는 동작입니다. specs/021-title-slug-url/ 참고.

Notion slug 속성값(예: 406879, instruction/406676)은 그대로 두고, 실제로 노출되는 주소는 글 제목에서 만듭니다.

구분값쓰임
대표 주소/article/상여금-매월-균등분할-지급시-통상임금-포함여부주소창·목록 링크·canonical·사이트맵·RSS·구조화 데이터
옛 주소/article/406879영구 별칭. 접속하면 대표 주소로 이동합니다

규칙 ​

  • 제목을 NFC로 정규화하고, 공백은 하이픈으로 바꾸고, 문자·숫자·하이픈만 남깁니다. 예약 문자(/ ? # % 등)·제어문자·이모지는 지웁니다.
  • 40자를 넘으면 어절 경계에서 자릅니다.
  • 제목에서 쓸 글자가 남지 않으면(이모지뿐인 제목 등) 옛 주소를 그대로 씁니다.
  • 제목이 겹치면 발행일이 이른 글이 맨 주소를 갖고, 나머지는 옛 주소의 마지막 세그먼트를 접미사로 받습니다(...-407002). 새 글이 기존 글의 주소를 빼앗지 않습니다.
  • 외부 링크를 slug에 넣은 글은 손대지 않습니다.

옛 주소와 지난 주소 ​

  • Notion의 slug 속성은 고치지 않습니다. 코드가 그 값을 legacySlug로 보관합니다.
  • 옛 주소로 들어오면 대표 주소로 307(임시) 이동합니다. 영구 이동을 쓰지 않는 이유는 제목을 고치면 대표 주소도 바뀌기 때문입니다. 색인 통합은 canonical이 합니다.
  • 제목을 고쳐 주소가 바뀌면 지난 주소를 Redis에 자동으로 쌓아 계속 이어 줍니다. 편집자가 채워야 할 칸은 없습니다.
  • 이동하면서 쿼리 파라미터(?password=, ?utm_*)는 사라집니다. 비밀번호가 걸린 글이나 광고 링크는 현재 제목 주소로 공유하세요.

조회수 ​

조회수는 제목 주소가 아니라 옛 주소를 키로 셉니다. 제목을 고쳐도 누적 조회수가 갈라지지 않습니다.

제한 ​

정적 내보내기(EXPORT=true)는 지원하지 않습니다. 그 모드에서는 목록에 없는 옛 주소가 404가 됩니다.

원문 링크 ​

https://docs.tangly1024.com/article/notion-next-url-customize