If you’re reading this, you’re likely tired of the 일반적인 워드프레스 성능 조언. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: 사이트 속도를 높이기 위해 플러그인을 설치하지만, 플러그인 자체가 데이터베이스 비대화, 백그라운드 크론 작업, 자체 CSS/JS 페이로드를 추가합니다.
The truth is, WordPress doesn’t need 15 performance plugins to load in under a second. True speed optimization happens at the metal layer—the server, the database, and the core code.
이 가이드에서는 플러그인 생태계를 완전히 우회할 것입니다. 서버 측 구성, 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
그만큼 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. The “Anti-Bloat” functions.php 마스터 스니펫
WordPress 코어는 엄청난 양의 레거시 지원 스크립트, 검색 링크 및 인라인 스타일을 <head> 그리고 <footer> 기본적으로.
To achieve maximum information gain over competitors, we won’t just tell you to “use a debloat plugin.” Here is the exact code to surgically remove the most common WordPress bloat.
Note: Add this to your Child Theme’s 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 요청 and removed dozens of lines of inline CSS/JS from every single page load—all without installing a single plugin.
4. 미디어 최적화(어려운 방법)
Smush 또는 Imagify와 같은 플러그인은 편리하지만 PHP 서버에서 이미지 처리를 실행하여 CPU 리소스를 소비합니다.
수동 WebP/AVIF 변환
WordPress에 이미지를 업로드하기 전에 다음과 같은 외부 무손실 압축기를 통해 실행하십시오. Squoosh.app (Google 제공) 또는 작은PNG. 더 나은 방법은 다음으로 변환하는 것입니다. .webp 또는 .avif 업로드하기 전에 로컬에서 형식을 지정하세요.
네이티브 지연 로딩 활용
WordPress 5.5부터 기본 지연 로딩이 내장되어 있습니다. WordPress에서 자동으로 추가 loading="lazy" to your images. You don’t need a JavaScript-based lazy loading plugin. However, ensure your “above the fold” images (like your logo or hero image) DO NOT have this attribute, as it will delay the Largest Contentful Paint (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을 통한 데이터베이스 조각 모음
Optimization plugins usually feature a “Clean Database” button. You can do this natively at the database level.
- 호스팅 패널에 로그인하여 엽니다. phpMyAdmin.
- WordPress 데이터베이스를 선택하세요.
- 맨 아래로 스크롤하여 확인하세요. 모두 확인.
- In the “With selected:” dropdown, choose 테이블 최적화.
MySQL은 테이블 인덱스를 재구축하고 사용되지 않은 공간을 회수합니다. 이 작업은 한 달에 한 번씩 수동으로 수행하세요.
평결
Optimizing WordPress without plugins isn’t just about saving money on premium subscriptions. It is a philosophy of 기술 부채 감소. Every plugin you don’t install is a security vulnerability you don’t have to patch, a database table you don’t have to clean, and a PHP script your server doesn’t have to execute.
워크로드를 서버(PHP 8.1+, Nginx FastCGI)로 전환하고 규율을 강화하세요. wp-config.php, 그리고 당신을 사용하여 핵심 부풀어 오른 부분을 잘라냅니다. functions.php. TTFB(Time to First Byte)와 Core Web Vitals에 차이가 반영됩니다.



