CloudPlare
Next.js

Next.js 작은 사이트 배포 메모

CloudPlare 편집 노트 · 최초 작성 2026-06-07 · 최종 검토 2026-06-12 · 9분 읽기

Next.js는 앱도 만들 수 있지만 작은 문서 사이트에도 잘 맞습니다. 다만 동적 기능을 줄이고 정적 페이지 품질을 관리해야 오래 안정적으로 운영할 수 있습니다.

콘텐츠 사이트는 정적으로 생각한다

작은 노트 사이트는 사용자가 글을 읽는 것이 핵심입니다. 로그인, 실시간 검색, 복잡한 API가 없다면 가능한 많은 페이지를 정적으로 생성하는 편이 빠르고 단순합니다. 정적 생성은 서버 비용과 장애 가능성을 줄이고, 배포 결과를 예측하기 쉽게 만듭니다.

Next.js App Router에서는 데이터가 파일이나 정적 배열에 있으면 목록과 상세 페이지를 안정적으로 생성할 수 있습니다. 크롤러가 보는 HTML이 분명하고, 각 페이지의 메타데이터와 본문이 일관되게 노출되어 검색엔진이 사이트 구조를 파악하기 쉬워집니다.

metadata는 레이아웃과 페이지가 역할을 나눈다

전역 layout의 metadata는 사이트 전체의 기본 설명을 맡고, 개별 글 페이지의 generateMetadata는 글 제목과 설명을 맡는 식으로 나누면 관리가 쉽습니다. 자주 생기는 실수는 layout에는 새로 정리한 설명을 넣고, 개별 페이지에는 이전에 쓰던 문구가 그대로 남는 경우입니다.

브랜드명, 사이트 설명, Open Graph, JSON-LD까지 같은 주제를 말해야 합니다. 페이지마다 다른 이름이나 설명이 섞여 있으면 검색엔진과 방문자 모두 이 사이트의 정체성을 한 문장으로 정리하기 어려워집니다.

라우트 삭제는 콘텐츠 삭제와 다르다

파일을 지우면 경로는 사라지지만, 검색엔진이나 외부 링크는 한동안 예전 URL을 기억할 수 있습니다. 개편 전 주제와 새 주제가 완전히 다르다면 오래된 URL을 억지로 새 글에 연결하지 않는 편이 낫습니다. 사용자 의도가 다르기 때문입니다.

삭제한 경로가 많다면 sitemap에서 먼저 제외하고, 실제 요청이 오면 404가 나오는지 확인합니다. 필요한 경우에만 새 홈으로 안내합니다. 관련 없는 주제끼리 301을 걸면 새 사이트의 주제 신뢰도가 흐려질 수 있습니다.

빌드 결과를 운영 체크리스트로 읽는다

Next.js 빌드 결과에는 어떤 경로가 정적으로 생성됐고 어떤 경로가 동적으로 처리되는지 표시됩니다. 콘텐츠 사이트라면 대부분의 공개 페이지가 정적이어야 이해하기 쉽습니다. 예상치 못한 API나 동적 라우트가 남아 있으면 이전 기능이 덜 제거됐다는 신호일 수 있습니다.

배포 전에 빌드, lint, 키워드 검색을 같이 돌립니다. 사이트 주제를 바꾼 적이 있다면 이전 주제와 관련된 단어가 코드나 메타데이터에 남아 있는지 확인해야 합니다. 사람에게는 작은 문구 하나지만, 검색엔진에는 사이트 정체성이 섞인 신호로 읽힐 수 있습니다.

운영 체크리스트

  • 공개 콘텐츠 페이지가 정적으로 생성되는 구조인지 확인했다.
  • 전역 metadata와 개별 페이지 metadata가 같은 브랜드를 말한다.
  • 이전 주제의 라우트가 sitemap과 내부 링크에서 빠졌다.
  • 빌드 결과에 예상하지 못한 공개 동적 경로가 없다.
  • 배포 후 실제 도메인 HTML에서 title과 description을 확인했다.

확인한 공식 자료

아래 자료를 바탕으로 운영 관점의 설명을 덧붙였습니다. 세부 동작은 서비스와 배포 환경에 따라 달라질 수 있습니다.