0. “워드프레스는 느리다?”는 오해

“워드프레스는 느리기 때문에 쓰면 안 된다!” 종종 일부 웹에이전시나 사용자들의 입에서 나오는 말입니다. 사실, 워드프레스는 비교적 덩치가 큰 프로그램들의 복합체입니다. 워드프레스 자체도 기본적으로 데이터베이스 억세스가 많은 편입니다. 거기에 여러 기능을 가진 플러그인 프로그램들도 포함됩니다. 보기 좋은 디자인을 위한 테마 역시 여러 개의 자바스크립트 파일들과 스타일시트 파일들 읽어들이도록 합니다. 때로는 웹폰트를 다운로드하기도 합니다. 따라서, 고정된 html 문서를 하나 로딩하는 것보다 당연히 더 시간이 걸립니다. 그래서 느린 걸까요?

사실, 일부 워드프레스 사이트가 느린 이유는 최적화가 되지 않았기 때문입니다. 몇 가지 원인은 다음과 같습니다. 사실, 이 부분은 워드프레스가 아닌 사이트들에도 적용되는 내용이기도 합니다.

  • 최적화되지 않은 서버와 웹호스팅
  • 최적화되지 않은 테마의 사용
  • 플러그인의 문제
  • 데이터베이스 관리의 문제
  • 최적화되지 않은 HTML, JS, CSS
  • 사이즈가 큰 이미지 파일
  • 서버 캐시 설정
  • 브라우저 캐시 미설정
  • 핑백과 트랙백 문제

자 그럼, 이 문제들을 어떻게 최적화해서 더 빠른 워드프레스 사이트를 만들 수 있을까요? 워드프레스 사이트 속도 최적화 10가지 방법을 소개합니다!

 

1. 최적화된 서버와 웹호스팅

워드프레스는 설치형 블로그입니다. 웹호스팅 서비스로 웹서버의 일부분을 임대받고, 거기에 설치하게 됩니다. 그러나 국내 대부분의 웹호스팅 서비스들은 범용의 웹서버 환경을 제공합니다. 사용자들의 다양한 요구를 모두 한 번에 수용하기 위해 덩치큰 아파치 서버를 종종 사용합니다. 그러나 아파치는 내가 필요하지 않은 서비스를 위한 모듈들도 많이 포함하고 있고, 워드프레스를 위한 최적화된 상태가 아닙니다. 범용의 서비스를 제공하려다 보니 모든 것이 최신, 최적화된 상태가 아닙니다. PHP만 해도 최신 버전인 PHP7이 있고, PHP5.6보다 2배까지 더 빠르다고 알려져 있습니다. 하지만, 이전부터 사용하던 고객들의 사이트들이 PHP7에서는 문제가 생길 수 있다면 PHP5 버전에 머물게 됩니다. 그렇다 보니, 페이지 로드에 수초가 걸려 사용자는 워드프레스가 느리다고 생각하게 됩니다.

그러나, 웹호스팅 서비스를 제공하는 서버 자체가 워드프레스에 최적화 되어 있다면, 상황이 달라집니다. 웹서버를 Nginx와 PHP7,mariaDB로 구성하게 되면 워드프레스 사이트는 상당히 빨라집니다. 물론, 사용하는 웹호스팅 서비스의 물리적인 한계 역시 고려해야 합니다. 웹호스팅 서버의 사양 자체가 낮다면 그만큼 느릴 것이고, 고사양으로 갈수록 더 빨라질 수 있겠지요. 따라서, 웹호스팅 플랜 역시 중요합니다.

 

2. HTTPS와 HTTP/2 사용

또 한가지 생각할 점은 보안 서버와 HTTP/2의 지원입니다. 서버 환경에서 HTTP/2를 지원한다면 훨씬 더 빠르게 페이지 로딩이 됩니다. 보안 서버와 HTTP/2가 속도에 영향을 미치는 이유는 블로그의 “HTTPS와 HTTP/2로 더 빠른 워드프레스 사이트 만들기” 포스트를 참조하시기 바랍니다.

 

3. 최적화된 테마의 사용

워드프레스는 전세계의 수많은 디자이너들이 만든 테마를 사용할 수 있는 장점이 있습니다. 그러나 테마 역시 HTML, PHP, JS, CSS, 이미지의 조합입니다. 테마를 구성한 파일들이 덩치가 크거나, 로딩에 시간이 걸리는 경우가 있습니다. 같은 컨텐츠라도 사용하는 테마에 따라 로딩 속도가 달라집니다. 어떤 분들은 속도를 위해 테마를 아예 사용하지 않는다고도 합니다. 그러나, 테마 자체가 문제는 아닙니다. 최적화가 안된 느린 테마가 문제입니다. 빠른 테마도 있다는 말입니다.

DIVI, AVADA와 같은 테마들은 이미 수많은 사용자에게 검증되었고, 훌륭히 최적화되어 있습니다. Google PageSpeed InsightsGtmetrix같이 웹페이지의 최적화와 속도를 점검해주는 도구들을 통해 테마의 속도를 확인해 볼 수 있습니다. 테마의 데모 사이트 주소를 이 도구들에 입력해서 확인하는 겁니다. 물론, 테마를 커스터마이징해서 더 빠르게 만들 수도 있습니다.

 

4. 플러그인 선택

워드프레스에는 수많은 유무료 플러그인이 있고, 훌륭하게 기능을 확장시켜 줍니다. 간단하게 버튼을 출력시켜 주는 플러그인도 있고, 사이트에 ERP나 CRM같은 복잡한 기능을 추가해 주는 플러그인도 있습니다. 그러나, 때로는 플러그인들끼리의 조합이 맞지 않거나, 플러그인 자체가 느린 경우들이 있습니다. 따라서,P3 (Plugin Performance Profiler)나 Query Monitor같은 플러그인을 설치해서 어떤 플러그인이 많은 시간을 쓰고 있는지 확인해 볼 수 있습니다. 그래서 문제가 되는 플러그인을 찾고, 삭제하거나 아니면 대체 가능한 더 빠른 플러그인을 쓰면 됩니다.

 

5. 데이터베이스의 관리

워드프레스에는 리비전, 휴지통과 같은 기능이 있습니다. 리비전이란 매번 글을 편집중 저장할 때마다의 변경된 상태를 그대로 저장한 것입니다. 실수로 잘못 지운 내용이나, 복구하고 싶은 부분을 이전의 리비전을 찾아서 복구할 수 있습니다. 휴지통은 말그대로 삭제된 내용이 바로 삭제되는 것이 아니라 일단 휴지통에 들어가 일정 기간 보관됩니다. 실수로 삭제하는 경우 복구하면 됩니다. 물론, 안전을 위한 훌륭한 장치이지만 데이터베이스 용량을 차지합니다. 예를 들어, 한 건의 포스트를 작성하면서 10번 저장을 했다면 10개의 리비전이 생성됩니다. 최종적으로 만들어진 내용이 웹에 보여지지만 불필요한 9개의 버전이 저장되어 있는 것입니다. 그외에도 여러 가지 임시 사용되는 자료들이 데이터베이스에 저장됩니다. 그러나 데이터베이스는 내용이 많아질수록 느려집니다. 물론, 전문 블로거가 아닌 이상은 큰 차이는 없겠습니다만, 어쨌든 이런 불필요한 것들을 없애주는 것도 속도 향상에 도움이 되겠지요.

WP-Optimize라는 플러그인을 사용하면 불필요한 정보가 얼마나 있는지 확인할 수 있고, 주기적으로 정리해주도록 설정할 수 있습니다. 휴지통을 아예 사용하지 않을 수도 있는데, 워드프레스 디렉토리의 wp-config.php 파일에 아래 내용을 추가하면 됩니다. 두번째 파라메터인 0는 휴지통 보관 일수입니다. 5로 입력하면 5일간 보관후 삭제하라는 의미입니다.

[code language=”plain”]define (‘EMPTY_TRASH_DAYS’, 0);
[/code]

 

6. HTML, JS, CSS의 최적화

HTML, JS, CSS 파일은 꼭 필요하지만, 안을 들여다보면 불필요한 공백, 특수문자들이 많습니다. 물론, 프로그래머가 보기 편하게 하기 위한 방식이지만, 인터넷으로 파일을 전송할 때나 컴퓨터가 인식할 때에는 불필요한 자료들입니다. 워드프레스의 Autoptimize 플러그인을 사용하면 파일들을 최적화해 사이즈를 줄이거나 통합하거나 로딩 순서를 조정해 최적의 방식으로 페이지가 표현되도록 해 줍니다.

또다른 해결책은 웹서버 자체에서 Gzip과 같은 압축 전송 방식을 사용하는 것입니다. 이 문서 파일들을 전송 전에 압축해서 전송 시간을 줄이는 것입니다. 이 부분은 웹서버 자체에서 지원해야 하는 일입니다. 웹호스팅 서비스에서 지원하는지 확인이 필요합니다.

 

7. 이미지 최적화

웹에서 전송되는 대부분의 트래픽은 이미지와 동영상입니다. 사실, 이미지나 동영상에 비하면 HTML, JS, CSS의 사이즈는 상당히 작다고 볼 수 있습니다. 실제로, 이미지 파일 하나가 몇 메가씩 된다면, 페이지 로드시 이미지 전송만으로도 상당한 시간을 사용하게 됩니다. 따라서, 이미지 자체의 사이즈를 줄일 필요가 있습니다. JPEG의 경우, 압축률을 조정하면 파일 사이즈를 줄일 수 있습니다. 위에서 소개한 Google PageSpeed Insights 툴을 사용해 점검해 보면 이미지 최적화시 압축 가능한 크기를 알려줍니다.

이미지를 압축하는 한 방식은 역시 워드프레스 플러그인을 사용하는 것입니다. EWWW Image Optimizer, WP-Smush와 같은 매우 훌륭한 도구들이 있습니다. 물론, 가장 좋은 것은 업로드하기 전에 먼저 파일 용량과 사이즈를 최적으로 조정하는 것이지만, 매번 그렇게 하기는 매우 번거롭죠. 이런 플러그인들이 아주 잘 관리해 줍니다. 이미 올라간 이미지라도 이런 플러그인을 사용해 파일 사이즈를 줄일 수 있습니다. 대체로 웹용으로는 JPEG압축률 80%면 거의 분간하기 힘다고 알려져 있습니다. 배경 이미지와 같이 이미지 자체의 해상도가 중요하지 않다면, 60% 혹은 그 이하로 줄여도 보는 데에는 큰 지장이 없습니다.

또다른 방법은 이미지를 로드하는 방식입니다. 레이지 로딩(Lazy loading)라는 방식은 최초 문서를 다운로드할 때 모든 이미지를 다 다운받는 것이 아니라 이후에 스크롤해서 해당 이미지가 보여지는 때에 이미지를 다운로드하도록 하는 방식입니다. LazyLoad와 같은 훌륭한 도구, BJ Lazy Load와 같은 플러그인이 이미 많이 있습니다.

 

8. 서버 캐시 사용

처음에 언급했듯이 워드프레스는 데이터베이스 억세스량이 많습니다. 사실, 같은 페이지이고 내용의 변경이 없는 경우라도 매번 데이터베이스를 수십번 읽어들이는 과정을 반복하는 것은 의미가 없습니다. 그렇게 한 번 생성된 결과를 서버에 캐시로 저장해 두고, 그 동일한 페이지에 대한 요청이 오면 캐시에 저장된 결과물만 전송하면 쿼시 시간을 절약할 수 있게 됩니다. 워드프레스에는 WP Super Cache, Autoptimize와 같은 다양한 캐시 플러그인이 있습니다.

 

9. 브라우저 캐시 사용

한편, 사용자 브라우저에서 캐시를 저장하는 방법도 중요합니다. 예를 들어, 사이트에서 2메가 바이트의 예쁜 한글 폰트를 사용하고, 갤러리에 20개의 이미지를 사용해 총 5메가가 전송되었습니다. 멋진 테마를 위해 JS, CSS등도 사용되어서 수백킬로바이트가 전송되었습니다. 동일한 페이지를 다시 열었을 때 똑같은 양의 파일 전송이 필요할까요? 사실, 자주 변경되지 않는 내용이고, 여러 페이지에서 공용으로 사용되는 이런 파일들은 이미 한 번 다운로드되었다면 그대로 내 컴퓨터에 보관해 두면 됩니다. 그러면 페이지 로드가 빨라집니다. 웹서버에서 파일 종류별로 브라우저 캐시 주기를 설정해 주면 그 파일들을 사용자의 브라우저에서 정해진 기간 보관하며 재사용하게 됩니다. 무의미한 반복적인 트래픽을 줄일 뿐더러 페이지 로딩이 빨라지게 됩니다.

 

10. 핑백과 트랙백 기능 끄기

핑백과 트랙백이란 기본적으로 다른 워드프레스 블로그들과 소통하는 기술입니다. 연관된 정보를 가진 블로그들끼리 서로 연결되도록 하는 것입니다. 먼저, 핑백이란, 내가 워드프레스 블로그에 새로운 글을 작성할 때에 자동으로 글 안에 포함된 링크들을 따라가 그 링크의 주인인 사이트에 내가 그 글을 참조해서 링크했다고 통보를 하는 것입니다. 워드프레스 블로그끼리는 이 기능이 자동으로 수행됩니다. 그러나 워드프레스가 아닌 핑백을 지원하지 않는 사이트를 출처로 삼았다면, 트랙백을 이용하게 됩니다. 이것은 글을 쓸 때에 수동으로 참조한 사이트를 트랙백란에 입력하는 방식입니다. 기본적으로 둘 다 같은 목적입니다. 내 블로그와 출처로 삼은 다른 블로그를 연결하는 역할입니다. 물론, 이런 외부 레퍼런스는 원저작자의 블로그의 신뢰도를 높여주는 역할을 하기도 합니다.

그러나, 비즈니스 목적의 블로그인 경우 굳이 이런 외부 블로그와의 핑백과 트랙백을 사용할 필요가 없습니다. 더구나, 이 핑백, 트랙백 기능이 워드프레스 사이트의 속도 저하 요인이 되기도 합니다. 또는 핑백으로 악성 코드를 보내는 해킹의 도구로 악용되기도 합니다. 따라서, 굳이 특별한 필요가 없다면 이 기능을 꺼 두는 것이 좋습니다. 아래 그림과 같이, 관리자 페이지의 “설정 -> 토론 -> 새로운 글에 다른 블로그에서 오는 링크알림(핑백이나 트랙백)을 허용 부분을 체크 해제하시면 됩니다.

 

 

결론

이상 워드프레스 사이트의 빠른 속도를 위한 최적화 방법을 살펴보았습니다. 위의 방법만 사용해도 웹 페이지 최적화/속도 점검 사이트에서 90점 이상 A등급을 얻을 수 있습니다. 한 조사에 따르면 사용자의 47%가 웹페이지가 2초 안에 화면에 나타나기를 기대한다고 합니다. 2초를 기다리다가 페이지 로딩이 안되고 있으면 닫아 버리고, 다른 사이트를 찾아가게 됩니다. 최적화가 되지 않은 사이트 때문에 소중한 잠재 고객이 우리 사이트를 방문조차 하지 않게 될 수 있습니다. 워드프레스 사이트가 적절히 최적화되어 있다면 충분히 빠른 속도를 낼 수 있습니다. 더 나은 사용자 경험을 제공하고, 더 많은 잠재 고객의 방문을 이끄는 중요한 조건입니다. 따라서, 사이트 관리자가 꾸준히 사이트의 상태를 점검하고 최적화하는 노력이 필요하겠습니다.

 

마이크로프레스가 개발하는 사이트들은 기본적으로 위에서 설명한 호스팅 환경에서 최적화 과정을 거쳐 오픈됩니다. 이미 최적화가 된 사이트에서 앞으로는 블로그와 컨텐츠 관리만 하실 수 있도록 준비를 해 드립니다. 더 궁금하신 점이 있다면 네이버 톡톡으로 실시간 상담을 이용해 주세요!