웹사이트의 속도는 사용자 경험과 검색 엔진 순위에 있어 매우 중요한 요소입니다. 로딩이 느린 WordPress 웹사이트는 방문자들을 쉽게 단념시킬 뿐만 아니라, 비즈니스의 전환율에도 직접적인 영향을 미칩니다. 이 가이드에서는 서버 설정, 테마 코드, 플러그인 관리, 고급 캐싱 전략 등을 포함한 20가지 핵심 기술을 체계적으로 소개하여 웹사이트의 성능을 전반적으로 향상시키는 데 도움을 드립니다.
서버 및 호스트 환경 최적화
튼튼한 기초가 고층 건물을 지탱하는 힘이다. 코드 수준의 최적화를 시작하기 전에, 서버 환경이 최상의 상태에 있는지 반드시 확인하는 것이 매우 중요하다.
고성능 호스트 솔루션을 선택하세요.
공유 호스팅 서비스는 피하고, WordPress에 최적화된 호스팅 서비스, VPS(가상 사설 서버), 또는 독립적인 서버를 선택하십시오. 이러한 서비스들은 일반적으로 더 빠른 프로세서, 더 많은 메모리, 그리고 LiteSpeed나 Nginx와 같이 더 잘 최적화된 소프트웨어 스택을 제공하여 서버의 응답 시간을 크게 줄여줍니다.
추천 읽기 WordPress 최적화 궁극 가이드: 웹사이트 속도와 성능을 전반적으로 향상시키는 20가지 핵심 기술。
최신 버전의 PHP를 활성화하세요.
항상 호스트에서 지원하는, 안정적이며 최신 버전의 PHP를 사용하십시오. PHP 5.6이나 7.0에 비해 PHP 7.4 또는 8.x는 실행 효율을 수배로 향상시키면서도 메모리 소비량은 더 적습니다. 호스트 관리 패널에서 PHP 버전을 확인하고 변경할 수 있으며, 변경하기 전에 반드시 모든 데이터를 완전히 백업해 두시기 바랍니다.
Implementation of object caching
동적인 WordPress 웹사이트의 경우, 데이터베이스 쿼리는 주요 성능 병목 중 하나입니다. 객체 캐싱을 구현하면 데이터베이스 쿼리 결과를 메모리에 저장하여 데이터베이스에 대한 직접적인 접근을 크게 줄일 수 있습니다.
가장 널리 사용되는 영구 객체 캐싱 도구는 Redis나 Memcached입니다. 많은 고급 호스팅 서비스에서 이러한 도구들을 기본적으로 지원합니다. 또한, 필요에 따라 Redis나 Memcached와 같은 도구를 직접 설치하여 사용할 수도 있습니다.Redis Object Cache이러한 플러그인을 사용하여 기능을 활성화할 수 있습니다.
콘텐츠 배포 네트워크를 활용하기
CDN(Content Delivery Network)은 사용자의 정적 리소스(이미지, CSS, JavaScript 파일 등)를 전 세계에 분포된 서버에 캐싱합니다. 사용자가 웹사이트에 접속하면 CDN은 사용자와 가장 가까운 서버에서 해당 파일을 제공함으로써 지연 시간을 크게 줄이고 서버의 부하를 완화합니다. Cloudflare와 StackPath는 모두 인기 있는 CDN 서비스 제공업체입니다.
주제, 플러그인, 그리고 코드 최적화
비효율적인 코드는 웹사이트의 성능을 저하시키는 숨겨진 원인입니다. 테마와 플러그인을 체계적으로 관리하고 최적화함으로써 성능을 근본적으로 향상시킬 수 있습니다.
플러그인을 감사하고 불필요한 부분을 제거하세요.
각 플러그인은 HTTP 요청, PHP 실행, 데이터베이스 쿼리의 수를 증가시킵니다. 정기적으로 불필요한 플러그인을 확인하여 비활성화하거나 삭제하는 것이 좋습니다. 이를 위해 다음과 같은 방법을 사용할 수 있습니다:Query Monitor이러한 플러그인을 사용하면 어떤 플러그인이 성능 문제를 유발했는지 진단할 수 있습니다.
추천 읽기 WordPress 최적화 궁극 가이드: 웹사이트 속도 향상 및 SEO 순위 상승을 위한 20가지 필수 팁。
가볍고 코딩이 잘 되어 있는 테마를 선택하세요.
기능이 과도하거나 복잡한 페이지 빌더를 내장한 다기능 테마는 사용을 피하세요. 속도와 코드의 간결성에 중점을 두고 WordPress의 코딩 표준을 준수하는 테마를 선택하십시오. 테마 저장소에서는 “고급(Advanced)” 필터를 사용하여 성능 평가를 확인할 수 있습니다.
functions.php 파일을 최적화합니다.
functions.php이 파일은 테마 기능들이 모여 있는 곳입니다. 불필요한 스크립트나 스타일을 이 파일에 추가하지 마십시오. 추가하려는 코드가 효율적이고 필수적인지 반드시 확인하십시오. 예를 들어, WordPress의 기능들을 현명하게 활용하는 것이 좋습니다.wp_enqueue_script그리고wp_enqueue_style이 함수는 스크립트와 스타일의 로딩 위치 및 타이밍을 제어하는 역할을 합니다.
// 正确示例:仅在非管理页面加载自定义脚本
function mytheme_enqueue_scripts() {
if ( !is_admin() ) {
wp_enqueue_script( 'my-custom-script', get_template_directory_uri() . '/js/script.js', array(), null, true );
}
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_scripts' ); Heartbeat API를 비활성화하거나 그 사용 빈도를 제한하세요.
WordPress의Heartbeat APIAJAX 호출을 사용하여 자동 저장, 세션 관리 등의 기능을 구현하면 편집 페이지에서 많은 요청이 발생할 수 있습니다. 콘텐츠 업데이트가 자주 이루어지지 않는 웹사이트의 경우, 이러한 기능을 비활성화하거나 사용 빈도를 제한하는 것을 고려해 볼 수 있습니다.
// 示例:完全禁用Heartbeat(谨慎使用)
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
} 데이터베이스를 최적화하고 글의 수정 기능을 비활성화하세요.
장기간 운영되는 웹사이트의 데이터베이스에는 수많은 수정 버전, 불필요한 댓글 등의 데이터가 축적됩니다. 이러한 데이터를 정기적으로 관리하고 정리하는 것이 중요합니다.WP-Optimize또는Advanced Database Cleaner플러그인을 정리하세요. 동시에, 다음과 같은 작업도 가능합니다:wp-config.php파일 내에서 기사의 수정을 제한하거나 금지합니다.
// 在wp-config.php中禁用文章修订和自动保存
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', 3600); // 将自动保存间隔设置为1小时(3600秒) 정적 리소스 로딩 최적화 (Static Resource Loading Optimization)
이미지, 스타일시트, 스크립트 파일은 프론트엔드에서 로드되는 주요 구성 요소이며, 동시에 최적화하기 가장 쉬운 부분들입니다.
이미지 압축 및 지연 로딩(Lazy Loading)
“Use something like…”ShortPixel、Imagify또는TinyPNG이러한 플러그인이나 도구는 이미지를 업로드할 때 자동으로 압축하며, WebP와 같은 현대적인 이미지 형식으로 생성되도록 합니다.
동시에, 이미지와 비디오를 스크롤이 뷰포트 근처에 이를 때만 로드하도록 ‘라지로드(lazy loading)’ 기능을 적용하세요. WordPress 코어는 5.5 버전부터 이미지와 iframe에 대한 네이티브 라지로드 기능을 내장하고 있습니다.
추천 읽기 최고의 성능 가이드: 20개의 무시할 수 없는 WordPress 최적화 기법 및 최선 실천 방법。
CSS/JavaScript 파일을 병합하고 크기를 최소화하는 방법입니다.
HTTP 요청의 수를 줄이는 것은 성능 최적화의 핵심 원칙입니다. 캐싱 플러그인(아래에서 언급할 WP Rocket 또는 W3 Total Cache 등)을 사용하여 여러 개의 CSS 및 JS 파일을 몇 개의 파일로 병합하고, 불필요한 공백, 주석, 줄바꿈을 제거함으로써 파일의 크기를 줄일 수 있습니다.
비핵심 JavaScript 코드는 비동기적으로 또는 지연된 방식으로 로드하는 것이 좋습니다.
렌더링을 방해하는 JavaScript는 페이지 콘텐츠의 표시를 지연시킵니다. 광고나 분석 코드와 같이 중요하지 않은 스크립트의 경우에는 비동기적으로 또는 지연 로딩하는 것이 좋습니다.
<!-- 异步加载 -->
<script async src="analytics.js"></script>
<!-- 延迟加载 -->
<script defer src="widget.js"></script> 많은 최적화 플러그인들이 스크립트에 이러한 속성들을 자동으로 추가해 줄 수 있습니다.
웹 글꼴 최적화 전략 사용하기
우아한 웹 글꼴은 파일 크기가 크고 추가적인 네트워크 요청이 필요할 수 있습니다. 가능하면 시스템의 글꼴 스택을 우선적으로 사용하십시오. 웹 글꼴을 사용해야 한다면, WOFF2와 같은 현대적인 포맷을 선택하십시오.font-display: swap속성들이 렌더링을 방해하지 않도록 하고, 프리로드(미리 로드)에 대한 알림을 제공하세요.
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin> 쿼리 문자열과 이모지 스크립트를 제거하세요.
정적 리소스 URL에 포함된 쿼리 문자열(예:?ver=5.9이 설정은 일부 프록시 서버의 캐싱 기능을 방해할 수 있습니다. 또한, 이모지(Emoji) 표시 기능이 필요 없는 웹사이트의 경우, WordPress가 기본적으로 로드하는 이모지 스크립트를 제거할 수 있습니다.
// 移除版本查询字符串
function remove_query_strings( $src ) {
if ( strpos( $src, '?ver=' ) ) {
$src = remove_query_arg( 'ver', $src );
}
return $src;
}
add_filter( 'script_loader_src', 'remove_query_strings', 15, 1 );
add_filter( 'style_loader_src', 'remove_query_strings', 15, 1 );
// 禁用Emoji
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 고급 캐싱 및 최신 기술 (Advanced Caching and Cutting-edge Technologies)
위의 기본적인 최적화 작업을 완료한 후에는 고급 캐싱 기술과 최신 기술들을 활용하여 웹사이트의 성능을 최대한 끌어올릴 수 있습니다.
완전한 페이지 캐싱을 구성합니다.
페이지 캐싱은 가장 효과적인 최적화 방법 중 하나입니다. 캐싱을 통해 동적으로 생성된 HTML 페이지가 정적 파일로 저장되어, 다음에 해당 페이지에 접속할 때는 이 정적 파일이 바로 제공되므로 PHP와 MySQL의 처리 과정을 완전히 건너뛸 수 있습니다.
권장 사용합니다.WP Rocket、LiteSpeed Cache또는W3 Total Cache등의 플러그인도 사용할 수 있습니다. LiteSpeed 서버를 사용하는 사용자들에게도 적합합니다.LiteSpeed Cache이 플러그인은 가장 깊은 수준의 통합 기능과 최상의 성능을 제공할 수 있습니다.
브라우저 캐싱을 구현합니다.
HTTP 헤더를 설정함으로써 브라우저에게 정적 리소스(예: 이미지, CSS, JS 파일)를 로컬에 캐싱하도록 지시할 수 있습니다. 이렇게 하면 유효 기간 동안 해당 리소스에 다시 접근할 때 재다운로드할 필요가 없습니다. 이는 일반적으로 다음과 같은 방법으로 수행됩니다:.htaccess파일에 규칙을 추가하거나 캐싱 플러그인을 사용하여 해당 작업을 완료할 수 있습니다.
# 在.htaccess中设置浏览器缓存过期时间
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule> GZIP/Brotli 압축을 활성화합니다.
서버 측에서 텍스트 파일(HTML, CSS, JS)을 압축하면 전송 용량을 크게 줄일 수 있습니다. GZIP은 널리 지원되는 압축 알고리즘이며, Brotli는 더 최신 알고리즘으로 더 높은 압축률을 제공합니다. 대부분의 캐싱 플러그인이나 CDN 서비스는 한 번의 클릭으로 압축 기능을 활성화할 수 있는 옵션을 제공합니다.
프리로드(preload), 프리커넥트(preconnect), 프리패치(prefetch) 기술을 사용하세요.
리소스 힌트(Resource Hints)를 사용하여 중요한 리소스의 로딩 순서를 최적화하세요.
- <link rel="preload">고우선순위로 현재 페이지에서 즉시 필요한 리소스를 가져옵니다.
- <link rel="preconnect">사전에 제3자 서버(예: 글꼴 서버, 분석용 도메인 이름 등)와 연결을 설정해 두세요.
- <link rel="dns-prefetch">DNS 조회를 미리 수행합니다.
이러한 설정은 테마의 상단에 추가될 수 있으며, 고급 최적화 플러그인에 의해 자동으로 생성될 수도 있습니다.
AMP(Accelerated Mobile Pages)나 Jamstack 아키텍처를 도입하는 것을 고려해보세요.
콘텐츠 읽기에 중점을 둔 웹사이트의 경우, AMP(Accelerated Mobile Pages)를 사용하여 매우 빠른 모바일 버전을 만들 수 있습니다.
미래의 발전을 위해 Jamstack 아키텍처를 고려해 볼 수 있습니다. Headless WordPress를 콘텐츠 관리 시스템으로 사용하고, Next.js나 Gatsby와 같은 정적 사이트 생성 도구와 결합하여 웹사이트를 미리 순수한 정적 파일로 생성함으로써 타의 추종을 불허하는 로딩 속도와 보안성을 얻을 수 있습니다.
지속적인 모니터링 및 테스트 (Continuous Monitoring and Testing)
Google PageSpeed Insights, GTmetrix, WebPageTest와 같은 도구를 사용하여 정기적으로 웹사이트의 성능을 테스트하세요. 주요 지표로는 ‘최초 콘텐츠 렌더링 시간’, ‘최대 콘텐츠 렌더링 시간’, ‘누적 레이아웃 오프셋’을 모니터링하세요. 보고서에 제시된 권장 사항에 따라 지속적으로 사이트를 최적화하세요.
요약
WordPress 최적화는 서버부터 프론트엔드에 이르기까지의 체계적인 과정이며, 단 한 번의 작업으로 완료될 수 있는 것이 아닙니다. 이 가이드에 제시된 20가지 팁을 따르면 호스팅 환경, 코드 품질, 정적 리소스 관리, 고급 캐싱 등 다양한 측면에서 웹사이트의 속도를 효과적으로 향상시킬 수 있습니다. 최적화는 지속적인 과정이라는 점을 기억하세요; 정기적인 감사, 테스트, 조정이 웹사이트의 최적의 성능을 유지하는 데 핵심입니다. 가장 큰 영향을 미칠 수 있는 팁부터 시작하여(예: 페이지 캐싱 활성화, 이미지 압축 등) 점차적으로 다른 최적화 작업을 적용해 나가면 웹사이트의 성능과 사용자 경험이 크게 개선될 것입니다.
자주 묻는 질문
어떤 최적화 작업을 먼저 진행해야 할까요?
서버 측과 캐싱부터 시작하는 것이 좋습니다. 이러한 변경 사항들이 대체로 가장 눈에 띄는 성능 향상을 가져다주기 때문입니다. 우선적으로 수행해야 할 작업 목록은 다음과 같습니다: 1) PHP 7.4 이상의 버전을 활성화하세요. 2) WP Rocket이나 LiteSpeed Cache와 같은 강력한 캐싱 플러그인을 설치하고 설정하세요. 3) 이미지를 압축하고 지연 로딩(lazy loading) 기능을 사용하세요. 이 세 가지 단계만으로도 대부분의 웹사이트의 속도 문제를 해결할 수 있습니다.
너무 많은 최적화 플러그인을 사용하면 오히려 웹사이트의 속도가 느려질 수 있나요?
네, 그렇습니다. 이는 흔한 오해입니다. 모든 플러그인은 추가적인 리소스 소비를 초래합니다. 저희의 목표는 가능한 한 적은 수의 플러그인을 사용하면서도 충분한 기능을 확보하는 것입니다. 예를 들어, WP Rocket과 같은 우수한 캐싱 플러그인은 페이지 캐싱, 브라우저 캐싱, 파일 최소화, 지연 로딩 등 다양한 기능을 통합하고 있어, 각각의 단일 기능을 가진 플러그인을 4~5개 사용하는 것보다 더 효과적일 수 있습니다.
어떻게 플러그인인지 테마인지에 따라 웹사이트 속도가 느려졌는지 판단할 수 있을까요?
진단 플러그인을 사용하는 것이 가장 효율적인 방법입니다. 설치하고 활성화하세요.Query Monitor또는P3 (Plugin Performance Profiler)플러그인들입니다. 이 플러그인들을 통해 각 플러그인과 테마가 소모하는 로딩 시간, 메모리 사용량, 그리고 실행하는 데이터베이스 쿼리의 수를 상세히 확인할 수 있어, 성능 병목 현상을 정확하게 파악할 수 있습니다.
데이터베이스 최적화는 얼마나 자주 수행해야 할까요?
콘텐츠가 자주 업데이트되는 웹사이트(예: 매일 여러 글을 게시하거나 활발한 댓글 섹션이 있는 웹사이트)의 경우, 매월 정기적으로 데이터베이스를 최적화하고 정리하는 것이 좋습니다. 이때 수정된 버전, 초안, 불필요한 댓글 등을 삭제해야 합니다. 업데이트가 자주 이루어지지 않는 기업 웹사이트나 블로그의 경우에는 분기마다 또는 반년마다 한 번씩 데이터베이스를 최적화하면 됩니다. 작업을 시작하기 전에 반드시 데이터베이스의 전체 백업을 수행해야 합니다.
CDN을 활성화했지만, 여전히 로컬 캐싱이 필요한가요?
절대 필요합니다. CDN과 로컬 캐싱은 서로를 보완하는 역할을 합니다. CDN은 주로 정적 리소스의 전 세계적인 배포 속도를 높이고, 원본 서버의 대역폭 부담을 줄여줍니다. 반면에 로컬(서버 측) 페이지 캐싱은 원본 서버가 동적 페이지를 생성할 때의 계산 부담을 직접 줄여줍니다. 두 가지를 결합하여 최상의 효과를 얻을 수 있습니다.
다음 단계는 무엇인가요?
확장된 독서 및 실무 지식
다음은 이 도움말의 주제와 관련이 있으며 더 깊이 있게 읽기에 적합합니다. 현재 문제와 가장 가까운 문서부터 시작하여 점차 주변 주제로 확장하는 것이 우선순위를 정하는 것이 좋습니다.