WordPress 호스팅 및 플러그인
WordPress 속도와 보안 향상: 성능 및 플러그인 체크리스트
WordPress는 그것을 구동하는 것만큼만 빠르고 안전합니다. 다음은 저희가 호스팅하는 모든 WordPress 사이트에 적용하는 실용적인 체크리스트입니다. 무엇을 캐시하고, 무엇을 보호하며, 어떤 플러그인이 플랫폼을 불필요하게 만드는 것과 비교하여 제값을 하는지 다룹니다.
WordPress는 그 기반이 얼마나 튼튼한가에 따라 성능이 결정됩니다.
워드프레스(WordPress)는 유연하기 때문에 웹의 큰 비중을 차지하고 있지만, 그 유연성 때문에 속도가 느려지고 보안에 취약해지기도 합니다. 기본 설치 상태에서는 페이지당 수십 번씩 데이터베이스를 조회하고, 살펴보는 사람 누구에게나 버전과 스택 정보를 노출하며, 성능 저하와 공격 표면이 조용히 커질 때까지 플러그인을 계속 추가하게 만듭니다. 이 중 어느 것도 워드프레스 자체의 결함이라기보다는, 아무런 도움도 되지 않는 인프라에서 운영할 때 발생하는 결과에 가깝습니다.
다행히도 몇 가지 안 되는 결정만으로 대부분의 문제가 해결되며, 이는 콘텐츠가 아닌 스택에 관한 결정들입니다. 적절한 레이어에서 적극적으로 캐시하고, 핫 패스에서 데이터베이스를 제외하고, 진정으로 제 역할을 하는 소수의 플러그인만 실행하고, 모든 것을 패치 상태로 유지하고, 문제가 격리되도록 사이트를 분리하는 것입니다. 이 게시물은 당사가 플랫폼의 모든 WordPress 사이트에 적용하는 순서대로 작성된 그 체크리스트입니다.
플러그인만이 아니라 서버에서 캐시하세요
WordPress 속도를 높이는 가장 강력한 단일 요인은 대부분의 방문 시 WordPress를 아예 실행하지 않는 것입니다. 표준 요청은 WordPress를 부팅하고, 플러그인을 실행하고, 바이트를 보내기 전에 데이터베이스를 쿼리합니다. 반면 전체 페이지 캐시는 다음 접속 시 웹 서버에서 완성된 페이지를 바로 제공하여 전체 부팅 과정을 건너뜁니다. 이 캐시가 어디에 위치하느냐가 중요합니다. 캐시 플러그인은 PHP 내부에 위치하므로 캐시가 응답하기 전에 여전히 PHP가 시작되어야 하지만, 서버 수준 캐시는 요청 과정에서 더 일찍 응답하고 서버가 즉시 내보낼 수 있는 형태로 페이지를 보관합니다.
저희가 호스팅하는 모든 WordPress 사이트는 서버 수준의 LSCache가 적용된 LiteSpeed Enterprise에서 실행되며, 자체 캐시 플러그인이 별도의 설정 없이도 WordPress와 올바르게 연동되도록 사전 설치 및 자동 업데이트되어 설정하거나 최신 상태로 유지해야 할 번거로움을 덜어줍니다. LiteSpeed가 아닌 오리진에서는 동일한 플러그인이 단순히 전체 페이지 헤더를 생성하지 않고 개체 캐시가 계속 작동하는 동안 방해되지 않도록 하므로 마이그레이션된 사이트가 반만 설정되는 일이 없습니다. 자체 체크리스트를 위한 실용적인 규칙: 서버에 하나의 전체 페이지 캐시를 두고, 그 위에 두 번째 캐싱 플러그인을 중첩하지 마십시오. 충돌이 발생합니다.
객체 캐시와 데이터베이스
모든 요청이 정적 페이지일 수는 없습니다. 로그인된 세션, 관리자 페이지, 검색, 장바구니 및 개인화된 모든 프래그먼트는 PHP를 실행해야 하며, 이러한 영역에서는 애플리케이션을 건너뛰는 것에서 데이터베이스를 건너뛰는 것으로 목표가 전환됩니다. 사이트별 객체 캐시(이 경우 Redis)는 반복되는 데이터베이스 읽기 결과를 메모리에 보관하므로, 동일한 옵션, 트랜시언트 및 조회 작업이 모든 요청마다 데이터베이스에 쿼리되지 않습니다. 이 효과는 전체 페이지 캐시가 도움을 줄 수 없는 곳에서 정확하게 나타납니다. 즉, 더 빠른 관리자 페이지, 더 빠른 장바구니, 그리고 트래픽 발생 시 훨씬 낮아진 데이터베이스 부하입니다.
가장 중요한 단어는 '사이트별'입니다. 공유 객체 캐시는 바쁘거나 잘못 작성된 하나의 사이트로 인해 다른 모든 사용자의 캐시된 데이터가 제거되고 이웃 사이트의 데이터베이스 자원이 고갈되는 문제를 야기할 수 있지만, 사이트별 데이터베이스 제한과 결합된 전용 사이트별 캐시는 이러한 피해 반경을 제한된 범위 내로 유지합니다. 체크리스트에서 지속형 객체 캐시는 로그인한 사용자나 상점이 있는 모든 사이트에 대해 선택 사항이 아닌 필수 사항으로 간주하고, 테넌트 간에 캐시가 공유되는 호스팅 서비스는 경계해야 합니다.
쓸 만한 가치가 있는 플러그인과 플랫폼이 대체하는 플러그인
추가하는 모든 플러그인은 요청 시 실행되는 코드이자 언젠가 누군가가 통과할 수도 있는 문이므로, 솔직한 목표는 가장 적은 수의 플러그인으로 가장 많은 일을 하는 것입니다. 좋은 호스팅 서비스는 전체 플러그인 범주에 대한 필요성을 없애줍니다. 서버 수준 캐싱, 관리형 오브젝트 캐시, 플랫폼 백업을 통해 캐싱 플러그인, 별도의 오브젝트 캐시 플러그인 또는 백업 플러그인이 필요하지 않습니다. 이러한 작업은 WordPress 하위 레벨에서 더 잘 처리되며, 상위 레벨에서 실행하면 충돌과 오버헤드만 추가될 뿐입니다.
남아 있는 것 중 가치 있는 것은 진정한 기능을 더하는 소수의 플러그인, 즉 사이트가 실제로 작동하는 데 필요한 플러그인뿐이며, 우리 플랫폼에서는 모든 사이트에 기본 제공되는 두 가지 저장소 수준의 플러그인이 있습니다. 우리의 캐시 플러그인은 WordPress를 서버 캐시와 연결하고 스마트 퍼지를 처리하여 수정 사항이 관련 페지만 정확히 지우도록 합니다. 우리의 풋프린트 플러그인은 기본 WordPress 설치가 브로드캐스팅하는 식별 정보(버전 및 생성기 태그, 검색 엔드포인트, XML-RPC, 핑백, powered-by 헤더)를 매번 배포 시 제거하므로, 플러그인이나 테마 업데이트가 이를 조용히 되돌릴 수 없습니다. 둘 다 WordPress.org 플러그인 디렉터리 표준에 맞춰 제작되었으며, 무료이고 스스로 업데이트됩니다.
워드프레스(WordPress)를 안전하고 최신 상태로 유지하기
대부분의 WordPress 침해 사고는 기발한 것이 아니라 낡은 수법에서 비롯됩니다. 알려진 공개 취약점이 있는 오래된 코어, 테마 또는 플러그인은 사이트가 공격당하는 가장 흔한 원인입니다. 따라서 최신 상태를 유지하는 것은 보안상 가장 가치 있는 작업이지만, 가장 번거롭기 때문에 흔히 건너뛰게 됩니다. 관리형 호스팅은 이러한 부담을 덜어주어야 합니다. WordPress 하위의 스택을 패치하고, 테스트해 볼 수 있는 스테이징 복제본과 되돌릴 수 있는 백업을 제공하여 코어 및 플러그인 업데이트를 안전하게 적용할 수 있도록 지원합니다.
통화 문제 외에도 다음과 같은 보안 조치들이 자동으로 적용됩니다. 악성코드 검사가 기본으로 켜져 있어 방문자가 먼저 발견하기 전에 감염을 차단하고, 사이트 간 격리를 통해 하나의 사이트가 침해당해도 다른 사이트로 피해가 확산되지 않으며, 엣지(Edge)에서의 DDoS 방어와 인증서가 자동으로 갱신되는 전면적인 TLS 적용이 제공됩니다. 물론 이러한 조치들이 강력한 비밀번호 사용, 최소 권한 액세스, 사용하지 않는 플러그인 제거와 같은 기본적인 보안 수칙을 대체할 수는 없지만, 인프라 자체가 약한 고리가 되지 않도록 보장합니다. 체크리스트에서 어떤 호스팅 업체를 선택하든 질문은 단순합니다. 보안이 기본 제공되는 사항인가요, 아니면 추가로 구매해야 하는 상품인가요?
WooCommerce와 캐시하면 안 되는 페이지들
스토어는 공격적인 캐싱이 가장 큰 이득을 거두는 곳이자, 무분별하게 적용할 경우 최악의 피해를 입히는 곳입니다. 카탈로그, 상품 및 카테고리 페이지는 트래픽이 가장 많고 캐시 효율이 가장 높은 페이지이며, 전체 페이지 캐시를 통해 이를 서빙하는 것은 스토어 속도를 위해 할 수 있는 가장 훌륭한 조치입니다. 하지만 장바구니, 체크아웃 및 계정 페이지는 개인화된 페이지이므로 공유 캐시에서 절대 서빙해서는 안 됩니다. 그렇게 하면 쇼핑객이 다른 사람의 장바구니를 보게 되며, 이는 스토어의 오작동이자 심각한 개인정보 침해 사고입니다.
두 가지 모두를 잡는 방법은 페이지를 캐시하고 라이브 파트에 구멍을 뚫는 것입니다. Edge Side Includes는 페이지의 나머지 부분이 캐시에서 제공되는 동안 요청당 장바구니 조각, 미니 장바구니 합계 및 계정 상태를 렌더링하고, 장바구니, 결제, 내 계정 및 모든 논스 또는 세션 페이지는 기본적으로 제외됩니다. 상품, 가격 또는 주문이 변경될 때 실행되는 스마트 자동 퍼지를 통해 최신 상태가 처리되므로 오래된 가격이 남지 않습니다. WooCommerce를 운영하는 경우, 바로 이 부분을 정확히 설정해야 체크리스트가 완료됩니다. 캐시에서 빠른 스토어프론트, 사용자별 라이브 장바구니, 개인 정보는 절대 캐시되지 않습니다.
자주 묻는 질문
WP Rocket과 같은 캐싱 플러그인이 여전히 필요한가요?
아니요. 전체 페이지 캐싱은 웹 서버에서 LiteSpeed의 LSCache가 처리하고, 당사의 자체 캐시 플러그인이 WordPress를 이에 연동하여 스마트 퍼징을 처리하며, 그 뒤에 사이트별 Redis 객체 캐시가 위치합니다. 그 위에 두 번째 전체 페이지 캐싱 플러그인을 추가하는 것은 도움이 되기보다는 서버 수준의 캐시와 충돌하는 경우가 많으므로 필요하지도 권장되지도 않습니다.
이 플랫폼으로 인해 불필요해지는 플러그인은 무엇인가요?
여기서는 캐싱 플러그인, 별도의 오브젝트 캐시 플러그인, 백업 플러그인이 모두 불필요합니다. 해당 작업들이 WordPress 하위 수준—서버 수준 캐싱, 관리형 사이트별 오브젝트 캐시, 플랫폼 백업—에서 처리되기 때문입니다. 이를 제거하면 충돌과 공격 표면이 줄어듭니다. 남겨서 실행할 가치가 있는 것은 사이트가 기능하는 데 진정으로 필요한 플러그인과, 사전 설치되어 제공되는 당사의 두 가지 무료 캐시 및 풋프린트 플러그인뿐입니다.
캐싱으로 인해 WooCommerce 장바구니나 로그인된 페이지에 문제가 발생합니까?
기본적으로 장바구니, 체크아웃, 마이 아카운트 및 모든 넌스(nonce) 또는 세션 페이지는 캐시에서 제외되며, 엣지 사이드 인클루드(Edge Side Includes)를 통해 그 외의 캐시된 페이지에서도 장바구니 조각과 합계가 실시간으로 유지됩니다. 스토어프론트는 캐시에서 로드되는 동안에도 쇼퍼들은 항상 자신의 장바구니와 정상 작동하는 체크아웃을 볼 수 있으며, 스마트 자동 퍼지 기능은 상품, 가격 또는 주문이 변경될 때 영향을 받는 페이지를 지워줍니다.
제가 직접 관리하지 않아도 WordPress의 보안을 어떻게 유지하나요?
우리는 WordPress 밑의 스택을 패치하고, 스테이징과 원클릭 복구 기능으로 코어 및 플러그인 업데이트를 안전하게 적용할 수 있게 하며, 기본적으로 활성화된 악성코드 검사 및 DDoS 보호를 실행하고, 하나의 해킹 피해가 확산되지 않도록 각 사이트를 격리하며, TLS 인증서를 자동으로 발급하고 갱신합니다. 이를 통해 인프라가 취약점으로 작용하는 문제를 제거하지만, 강력한 자격 증명 사용 및 미사용 플러그인 제거와 같은 기본적인 보안 수칙은 여전히 사용자의 책임입니다.
관련 상품
14일 동안 무료로 체험해 보세요
14일 동안 첫 사이트를 무료로 시작하세요 — 카드 등록이 필요 없습니다. 기존 사이트나 네트워크를 이전하시나요? 첫 번째 마이그레이션은 저희가 지원해 드립니다.
무료로 시작하기