최종 확인: 2026년 10월.
대부분의 정적 내보내기 도구는 WooCommerce를 포기합니다. 이유는 타당합니다. 스토어는 늘 바뀌니까요. 가격은 할인되고, 재고는 떨어지고, 방문자마다 장바구니가 있습니다. 하지만 고객을 불러오는 페이지——상품 페이지, 카테고리, 콘텐츠——는 모두에게 똑같습니다. 그 부분은 정적으로 두고, 개인적이거나 거래와 관련된 부분은 WordPress에 남깁니다.
스토어를 정적으로 만들기 어려운 이유
- 가격과 재고가 바뀌기 때문에 내보낸 시점에 고정된 페이지는 잘못된 가격을 보여 주거나 품절 상품을 팔 수 있습니다.
- 장바구니는 방문자 한 명의 것입니다. WooCommerce는 쿠키로 식별하는 세션에 장바구니를 저장합니다.
- 결제는 돈을 받고 결제 서비스와 통신하므로 WordPress에 닿아야 합니다.
- 내 계정은 로그인한 고객 자신의 주문을 보여 줍니다.
정적으로 되는 것과 동적이어야 하는 것
| 페이지·동작 | 정적 가능? | 방법 |
|---|---|---|
| 상품 페이지 | 가능 | 속도와 SEO를 위해 정적 HTML, 그 위에 실시간 가격·재고를 불러옴 |
| 스토어·카테고리 페이지 | 가능 | 상품 페이지와 동일 |
| 블로그·가이드·랜딩 페이지 | 가능 | 일반 정적 페이지 |
| 장바구니 담기 | 불가 | 상품이 방문자의 장바구니에 들어가도록 WordPress에 전달 |
| 장바구니·결제·내 계정 | 불가 | 항상 WordPress가 제공 |
| 결제 서비스 콜백 | 불가 | WordPress에 직접 닿아야 함 |
정적 페이지로 스토어를 운영하는 세 가지 방법
- 스토어는 동적으로 둔다. 콘텐츠만 내보내고 상품은 뺍니다. 가장 간단합니다——Pinery Static에서는
product유형 체크를 해제하면 됩니다——. 다만 상품 페이지는 빨라지지 않습니다. - 정적 상품 페이지 + 실시간 데이터. 상품과 스토어 페이지를 내보내고, 브라우저에서 WooCommerce로부터 가격과 재고를 갱신하며, 장바구니와 결제는 WordPress에 둡니다. Pinery Static Pro가 이 방식입니다.
- 헤드리스로 간다. WooCommerce API 위에 JavaScript 프레임워크로 스토어 프런트를 새로 만듭니다. 가장 유연하지만 손이 가장 많이 갑니다.
Pinery Static Pro가 스토어를 살려 두는 방법
- 상품 페이지와 스토어 페이지는 내보낸 시점의 가격과 재고로 정적 HTML이 됩니다.
- 방문자가 페이지를 열면 작은 스크립트가 WooCommerce Store API(
/wp-json/wc/store/v1, 인증이 필요 없는 공개 API)에 현재 가격과 재고를 물어 내보낸 값을 바꿉니다. 품절 상품은 버튼이 비활성화됩니다. - 장바구니 담기 폼과
?add-to-cart링크는 WordPress를 직접 가리키므로, 상품은/cart/와/checkout/이 보여 주는 일반 WooCommerce 장바구니에 들어갑니다. - 장바구니·결제·계정 페이지는 기본적으로 내보내기에서 제외되며 WordPress가 제공합니다.
- 포함된 Worker 라우터를 도메인에 쓰면
?add-to-cart,wc-ajax요청과 모든 폼 전송이 WordPress로 가고, 정적 빌드에 없는 페이지——마지막 배포 이후 추가한 상품 포함——도 404 대신 WordPress로 넘어갑니다.
스토어에 하나의 도메인이 중요한 이유
WooCommerce 장바구니는 WordPress 도메인이 설정한 쿠키에 저장됩니다. 정적 페이지는 example.com, WordPress는 wp.example.com에 있다면, 고객은 장바구니로 가는 도중에 주소가 바뀌고 두 곳 사이의 링크도 모두 정확해야 합니다. 둘을 같은 도메인에서 제공하는 라우터라면 이런 문제가 없습니다. 정적 페이지도, 장바구니도, 결제도 하나의 주소와 하나의 쿠키를 공유합니다.
테스트 체크리스트
- WordPress에서 가격을 바꾸고, 다시 내보내지 않아도 정적 상품 페이지에 새 가격이 보이는지 확인.
- 상품을 품절로 바꾸고 버튼이 비활성화되는지 확인.
- 정적 페이지에서 장바구니에 담고, 장바구니를 열어 결제까지 진행.
- 장바구니에서 쿠폰 적용.
- 테스트 결제 후 주문 상태가 갱신되는지 확인(결제 서비스가 WordPress에 닿는다는 증거).
- 장바구니·결제·계정 페이지가 CDN에 캐시되지 않는지 확인.
자주 묻는 질문
WooCommerce 스토어를 완전히 정적으로 만들 수 있나요?
아니요. 장바구니·결제·계정 페이지는 고객마다 달라 WordPress가 제공해야 합니다. 상품·카테고리·콘텐츠 페이지는 정적으로 만들 수 있습니다.
고객이 예전 가격을 보게 되지 않나요?
실시간 갱신이 있으면 그렇지 않습니다. 페이지가 열릴 때 내보낸 가격이 현재 가격으로 바뀝니다. 장바구니와 결제는 항상 WordPress에서 가격을 계산하므로 청구 금액은 언제나 최신입니다.
Simply Static은 WooCommerce를 지원하나요?
자체 FAQ에서 스토어, 결제, 로그인 영역은 정적 사이트에 맞지 않는다고 안내합니다. Pinery Static Pro는 이들을 정적 상품 페이지와 함께 작동시키도록 만들어졌습니다.
정적 스토어가 SEO에 도움이 되나요?
상품과 카테고리 페이지가 더 빨리 열리고, 테마나 SEO 플러그인이 출력하는 상품 구조화 데이터도 내보낸 HTML에 남습니다.