블루호스트 VPS 워드프레스 TTFB 줄이기(OPcache + Redis Object Cache 설치)
블루호스트(Bluehost) VPS 워드프레스 TTFB 지연 해결 후기 OPcache + Redis Object Cache 최적화
블루호스트(Bluehost) VPS에서 워드프레스 사이트를 운영하면서 가장 스트레스였던 게 TTFB(Time to First Byte)였습니다. 테마는 GeneratePress, 캐시는 WP-Rocket까지 쓰고 있었는데도, 구글 서치 콘솔에서 색인이 밀리고, 속도 지표는 계속 빨간색이더라고요.
- 워드프레스 이미지 최적화 · Gzip 압축 PageSpeed 점수후기 (Smush · Hummingbird · WP Rocket)
- 워드프레스 TTFB 속도개선 성공 후기 - 첫페이지 로딩 느려짐 최적화
VPS에서 사이트 3개를 같이 굴리는 상황이라 “메인 사이트만 유독 느리다”가 더 거슬렸습니다. 그래서 결국 원인은 DB 쿼리와 오브젝트 처리량이었고, 첫 응답을 보내는 데 시간이 잡아먹고 있다는것을 알아서 이번에 플러그인 더 얹기 전에 서버 쪽에서 먼저 손봤습니다.
TTFB가 늘어질 때 VPS에서 자주 터지는 지점
- 워드프레스 DB 쿼리가 많거나, 동일 쿼리가 반복되는 구조
- PHP 처리 오버헤드 (요청마다 컴파일/해석 부담)
- Object Cache 미사용으로 매번 DB에서 다시 긁어오는 패턴
- VPS 리소스 공유로 피크 타임에 응답이 밀리는 상황
서버 레벨에서 먼저 잡은 것: OPcache + Redis
제가 선택한 조합은 간단합니다. “PHP는 덜 일하게”, “DB는 덜 두드리게”.
- OPcache : PHP 스크립트를 매번 새로 해석하지 않고 메모리에 올려서 재사용
- Redis Object Cache : 워드프레스 오브젝트 캐시를 메모리에 보관해 DB 호출을 줄임
OPcache 켜기 (cPanel EasyApache 4)

블루호스트 cPanel에서 EasyApache 4 → Customization → PHP Extensions로 들어가 OPcache를 검색해서 Provision만 해주면 끝입니다. 이것만으로도 PHP 쪽 부담이 꽤 줄어서, 체감이 먼저 오더라고요.

그리고 바로 Redis도 같은 화면에서 처리하려고 했는데… 여긴 Redis가 안 보였습니다. 알고 보니 블루호스트 환경에서는 Redis를 cPanel에서 깔끔하게 끝내기 어려운 케이스가 있어 SSH로 작업하는 쪽이 빠르더라고요.

참고로 Apache 모듈 쪽에 Redis처럼 보이는 게 있긴 한데, 워드프레스에서 쓰는 PHP Redis 확장이랑은 결이 달라서 여기로 해결이 안 됐습니다.
SSH로 Redis 설치
SSH 접속

서버 안쪽을 만져야 해서 SSH 터미널을 열었습니다. 비밀번호 입력할 때 화면에 글자가 안 보이는 건 정상이라, 그냥 타이핑하고 엔터 치면 됩니다. 저도 처음엔 “안 써지는데?” 하다가 멈칫했네요.
Redis 서버 설치
로그인 후 Redis 본체를 먼저 설치하고, 부팅 시 자동 실행되게 해줬습니다.

# Redis 설치
dnf install redis -y
# 서버 재부팅 시에도 자동 실행되도록 설정
systemctl enable --now redis
블루호스트 환경 PHP Redis 확장(ea-phpXX-php-redis)

여기서 가장 시간을 썼습니다. 일반적인 php-redis 설치 방식으로 가면 환경에 따라 경로/버전이 꼬이면서 에러가 나기도 하더라고요. 블루호스트 쪽은 ea-php82-처럼 EA 계열 패키지명을 맞춰주는 게 관건이었습니다.
# 블루호스트 PHP 8.2 버전에 맞는 Redis 확장 도구 설치
dnf install ea-php82-php-redis -y
# 설치 확인 및 설정을 위해 서버(아파치) 재시작
systemctl restart httpd
저는 여기서 httpd 재시작이 바로 안 먹히는 상황이 한 번 나왔습니다.

그 직후 워드프레스 접속이 흔들리면서 데이터베이스 연결 중 오류가 뜨고, wp-config.php 쪽이 바뀌었다는 식의 메시지가 나와서 순간 식은땀 났습니다. 결론은 서버 재부팅 후 정상으로 돌아왔고, 이후 Redis 연동은 문제없이 진행됐습니다. (환경에 따라 재시작/재부팅 타이밍에서 이런 식으로 잠깐 흔들릴 수 있더라고요.)
워드프레스에서 Redis Object Cache 연결
서버에 Redis + PHP 확장까지 올라가면, 워드프레스 쪽은 마무리가 단순합니다.

- 플러그인 설치 : Redis Object Cache (by Till Krüss) 설치 후 활성화
- 연결 활성화 : [설정] → [Redis]에서 [Enable Object Cache] 클릭
- 확인 : Status: Connected가 뜨면 서버 Redis와 워드프레스가 붙은 상태
여기까지는 “오케이 끝”이라고 생각했는데, 저는 설치 직후 체감이 기대만큼 바로 오지 않았습니다. 평소에도 TTFB가 788ms 정도로 이미 부담이 있었는데, 설치 후 잠깐 더 올라가면서 버벅임이 심해지기도 했습니다. 보통은 1~2초 급 응답이 200~400ms대로 내려간다는 얘기가 많아서 저도 그 그림을 기대했는데, 제 환경에선 조금 더 시간을 두고 보면서 조정이 필요하겠더라고요.
설치 후 체감이 바로 안 나왔을 때, 제가 다시 손본 것
캐시가 “겹친 상태”인지 먼저 확인
WP-Rocket, 서버 캐시, Redis Object Cache까지 한 번에 올라가면 “빠르겠지” 싶은데, 오히려 캐시 무효화 타이밍이 꼬이거나, 관리자/로그인 사용자 캐시가 비정상으로 돌아서 답답해지는 경우가 있었습니다. 그래서 저는 Redis를 올린 뒤 아래를 먼저 정리했습니다.
- WP-Rocket 캐시 전체 삭제 + 프리로드 재실행
- Redis 플러그인에서 Flush Cache 한 번 수행
- 오브젝트 캐시만 켜고 다른 최적화(미니파이/딜레이 JS 등)는 잠깐 보류해서 원인 분리
DB 쿼리 자체가 너무 많으면 Redis만으로는 한계가 있습니다
Redis가 만능은 아니더라고요. 특정 플러그인이 쿼리를 폭발시키는 구조거나, 검색/필터/통계형 플러그인이 많은 사이트면 캐시가 있더라도 부담이 남습니다. 이때는 “서버 스펙을 올릴지”, “무거운 플러그인을 바꿀지” 결정을 해야 했습니다.
VPS에서 사이트 3개 운영이면 리소스 피크도 체크
메인만 느린 줄 알았는데, 실제로는 다른 사이트 크론 작업이나 백업, 이미지 최적화 작업이 같이 돌면서 CPU/메모리를 치는 순간이 있었습니다. 그 타이밍에 메인 사이트 첫 응답이 밀리면 TTFB는 바로 튑니다.
Q. Redis 설치했는데 워드프레스에서 Connected가 안 떠요.
대부분은 PHP Redis 확장이 빠졌거나, PHP 버전과 패키지명이 안 맞을 때였습니다. 블루호스트 환경에선 ea-php82-php-redis처럼 EA 계열 패키지를 맞춰야 연결이 깔끔하게 붙는 편이었어요.
Q. 설치 후 오히려 느려진 느낌인데요?
캐시가 새로 쌓이는 구간에서 잠깐 둔해질 수 있고, WP-Rocket/서버 캐시/오브젝트 캐시가 겹치면 더 답답하게 느껴질 때도 있었습니다. 저는 캐시를 한 번 싹 비우고(플러그인 캐시 + Redis Flush), 프리로드를 다시 돌린 뒤에 안정적으로 봤습니다.
Q. OPcache만 켜도 TTFB가 내려가나요?
내려가는 경우가 많았습니다. 특히 PHP 실행 부담이 큰 테마/플러그인 조합이면 OPcache만으로도 “첫 반응이 둔한 느낌”이 줄어들 수 있어요. 다만 DB 쿼리가 핵심 원인이라면 Redis 같은 오브젝트 캐시가 더 체감되는 편이었습니다.
Q. httpd 재시작하다가 DB 연결 오류가 뜨면 큰일 난 건가요?
저도 그 상황이 한 번 나왔는데, 서비스 재시작/재부팅 과정에서 잠깐 연결이 흔들리면서 그렇게 보일 수 있었습니다. 재부팅 후 정상으로 돌아왔고, wp-config.php가 실제로 바뀌었는지만 확인하면 대부분 정리됩니다.
Q. 워드프레스 사이트 여러 개 운영 중인데 Redis는 공용으로 써도 되나요?
가능합니다. 다만 사이트별로 오브젝트 캐시 키가 섞이지 않도록 플러그인 설정/프리픽스가 맞게 잡히는지 확인하는 게 좋습니다. 운영 사이트가 늘어날수록 VPS 메모리도 같이 체크하는 편이 안전합니다.