이 글을 읽고 계신다면, 아마도 다음 내용에 지치셨을 것입니다. 일반적인 워드프레스 성능 조언. WP Rocket 설치, 이미지 최적화 플러그인 추가, 에셋 관리자 도입과 같은 일반적인 루틴은 종종 역설을 낳습니다. 사이트 속도를 높이기 위해 플러그인을 설치하지만, 플러그인 자체가 데이터베이스 비대화, 백그라운드 크론 작업, 자체 CSS/JS 페이로드를 추가합니다.
사실 워드프레스가 1초 이내에 로드되기 위해 15개의 성능 플러그인이 필요한 것은 아닙니다. 진정한 속도 최적화는 서버, 데이터베이스, 핵심 코드와 같은 메탈 레이어에서 이루어집니다.
이 가이드에서는 플러그인 생태계를 완전히 우회할 것입니다. 서버 측 구성, wp-config.php 조정 및 정밀한 functions.php 스니펫을 사용하여 워드프레스를 최적화할 것입니다.
1. 서버 측 기반 (PHP 필요 없음)
워드프레스 코드를 한 줄이라도 수정하기 전에 서버 환경이 강력하게 최적화되어 있어야 합니다. 약한 서버는 프론트엔드 캐싱으로 해결할 수 없습니다.
PHP 8.1 이상으로 업그레이드
워드프레스는 PHP에서 실행됩니다. PHP 7.4에서 PHP 8.1 또는 8.2로 전환하면 실행 시간을 20-30% 단축하고 메모리 소비를 크게 줄일 수 있습니다. 작업: cPanel, Plesk에서 변경하거나 직접 VPS를 관리하는 경우 CLI를 통해 변경하세요.
서버 수준 압축 활성화 (Gzip 대신 Brotli)
Gzip이 표준이지만, Brotli (Google에서 개발)는 동일한 CPU 비용으로 텍스트 파일(HTML, CSS, JS)에 대해 약 15-20% 더 나은 압축률을 제공합니다. 작업 (Nginx): 귀하의 nginx.conf 에 Brotli가 활성화되어 있는지 확인하세요:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;
FastCGI 캐싱(Nginx) 또는 LiteSpeed 캐시 구현
PHP 기반 캐싱 플러그인(캐시를 제공하려면 WordPress를 부분적으로 로드해야 함)을 사용하는 대신 웹 서버 수준에서 캐시하세요. Nginx FastCGI 캐싱은 생성된 HTML을 RAM 또는 디스크에 저장하고 직접 제공하여 익명 방문자를 위해 PHP 및 MySQL을 완전히 우회합니다.
2. 경화 및 희석을 통해 wp-config.php
2026년 wp-config.php 파일은 제어실입니다. 기본적으로 WordPress에서는 시간이 지남에 따라 데이터베이스를 팽창시키는 특정 동작을 허용합니다.
이 스니펫을 /* That's all, stop editing! Happy publishing. */ 선.
게시물 수정 제한
기본적으로 WordPress는 게시물의 수정본을 무한정 저장합니다. 50번 업데이트된 게시물은 50개의 사본을 갖게 됩니다. wp_posts 데이터베이스 테이블로 인해 데이터베이스 쿼리 속도가 크게 느려집니다.
// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );
자동 저장 간격 최적화
WordPress는 60초마다 자동 저장됩니다. 여러 명의 편집자가 작업 중이라면 데이터베이스가 손상될 수 있습니다. 천천히 하세요.
// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );
더 빠르게 휴지통 비우기
삭제된 게시물과 댓글은 30일 동안 데이터베이스에 보관됩니다. 데이터베이스를 간결하게 유지하려면 이 값을 줄이세요.
// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );
3. “팽만감 방지” functions.php 마스터 스니펫
WordPress 코어는 엄청난 양의 레거시 지원 스크립트, 검색 링크 및 인라인 스타일을 및 기본적으로.
경쟁사보다 최대의 정보 이득을 얻으려면 "debloat 플러그인을 사용하라"고만 말하지 않을 것입니다. 가장 일반적인 WordPress 팽창을 외과적으로 제거하는 정확한 코드는 다음과 같습니다.
참고: 이것을 자녀 테마에 추가하세요. functions.php 또는 드롭인 뮤 플러그인.
/**
* The Ultimate WordPress Debloat Snippet
*/
add_action('init', function() {
// 1. Remove RSD, XMLRPC, and WLW links
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
add_filter('xmlrpc_enabled', '__return_false');
// 2. Remove WordPress version footprint (Security & Speed)
remove_action('wp_head', 'wp_generator');
// 3. Remove Shortlinks and REST API links from header
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head');
// 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
// 5. Disable oEmbeds (If you don't embed external URLs automatically)
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});
/**
* 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
*/
add_action('wp_enqueue_scripts', function() {
wp_dequeue_style('global-styles');
wp_dequeue_style('classic-theme-styles');
}, 100);
/**
* 7. Remove jQuery Migrate (If using modern themes/plugins)
*/
add_action('wp_default_scripts', function($scripts) {
if (!is_admin() && isset($scripts->registered['jquery'])) {
$script = $scripts->registered['jquery'];
if ($script->deps) {
$script->deps = array_diff($script->deps, ['jquery-migrate']);
}
}
});
/**
* 8. Throttle the Heartbeat API
* Prevents high CPU usage when leaving the WP Admin open
*/
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 60; // Throttle to 60 seconds
return $settings;
});
우리가 방금 무엇을 달성했나요?
위의 코드를 추가하면 즉시 제거됩니다. 5-8 불필요한 HTTP 요청 단일 플러그인을 설치하지 않고도 모든 단일 페이지 로드에서 수십 줄의 인라인 CSS/JS를 제거했습니다.
4. 미디어 최적화(어려운 방법)
Smush 또는 Imagify와 같은 플러그인은 편리하지만 PHP 서버에서 이미지 처리를 실행하여 CPU 리소스를 소비합니다.
수동 WebP/AVIF 변환
WordPress에 이미지를 업로드하기 전에 다음과 같은 외부 무손실 압축기를 통해 실행하십시오. Squoosh.app (Google 제공) 또는 작은PNG. 더 나은 방법은 다음으로 변환하는 것입니다. .webp 또는 .avif 업로드하기 전에 로컬에서 형식을 지정하세요.
네이티브 지연 로딩 활용
WordPress 5.5부터 기본 지연 로딩이 내장되어 있습니다. WordPress에서 자동으로 추가 loading="lazy" 당신의 이미지에. JavaScript 기반 지연 로딩 플러그인은 필요하지 않습니다. 그러나 '스크롤 없이 볼 수 있는 부분' 이미지(예: 로고 또는 히어로 이미지)에는 이 속성이 없어야 합니다. 이 속성은 LCP(최대 콘텐츠 페인트)를 지연시킵니다.
다음을 통해 페이지의 첫 번째 이미지에 대한 지연 로딩을 제거할 수 있습니다. functions.php:
add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
static $is_first_image = true;
if ( $is_first_image ) {
$attr['loading'] = 'eager'; // Force immediate load for LCP
$is_first_image = false;
}
return $attr;
}, 10, 3 );
5. phpMyAdmin을 통한 데이터베이스 조각 모음
최적화 플러그인에는 일반적으로 "데이터베이스 정리" 버튼이 있습니다. 이 작업은 기본적으로 데이터베이스 수준에서 수행할 수 있습니다.
- 호스팅 패널에 로그인하여 엽니다. phpMyAdmin.
- WordPress 데이터베이스를 선택하세요.
- 맨 아래로 스크롤하여 확인하세요. 모두 확인.
- '선택한 항목:' 드롭다운에서 테이블 최적화.
MySQL은 테이블 인덱스를 재구축하고 사용되지 않은 공간을 회수합니다. 이 작업은 한 달에 한 번씩 수동으로 수행하세요.
평결
플러그인 없이 WordPress를 최적화하는 것은 단지 프리미엄 구독 비용을 절약하는 것만이 아닙니다. 의 철학이다 기술 부채 감소. 설치하지 않는 모든 플러그인은 패치할 필요가 없는 보안 취약점, 정리할 필요가 없는 데이터베이스 테이블, 서버에서 실행할 필요가 없는 PHP 스크립트입니다.
워크로드를 서버(PHP 8.1+, Nginx FastCGI)로 전환하고 규율을 강화하세요. wp-config.php, 그리고 당신을 사용하여 핵심 부풀어 오른 부분을 잘라냅니다. functions.php. TTFB(Time to First Byte)와 Core Web Vitals에 차이가 반영됩니다.



