플러그인 없이 속도를 위해 WordPress를 최적화하는 방법(코드 전용 가이드)

게시 날짜 | 에 의해
6분 읽기

If you’re reading this, you’re likely tired of the standard WordPress performance advice. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: 사이트 속도를 높이기 위해 플러그인을 설치하지만 플러그인 자체가 데이터베이스 팽창, 백그라운드 크론 작업 및 자체 CSS/JS 페이로드를 추가합니다.

사실 WordPress에서는 1초 안에 로드하는 데 15개의 성능 플러그인이 필요하지 않습니다. 진정한 속도 최적화는 서버, 데이터베이스, 핵심 코드 등 금속 계층에서 이루어집니다.

이 가이드에서는 플러그인 생태계를 완전히 우회하겠습니다. 서버 측 구성을 사용하여 WordPress를 최적화하겠습니다. wp-config.php 조정 및 수술 functions.php 짧은 발췌.


1. 서버측 기반(PHP가 필요하지 않음)

WordPress 코드 한 줄을 터치하기 전에 서버 환경이 철저하게 최적화되어야 합니다. 약한 서버는 프런트엔드 캐싱으로 해결할 수 없습니다.

PHP 8.1 이상으로 업그레이드

WordPress는 PHP에서 실행됩니다. PHP 7.4에서 PHP 8.1 또는 8.2로 이동하면 실행 시간이 20-30% 단축되고 메모리 소비가 크게 줄어들 수 있습니다. 행동: 자체 VPS를 관리하는 경우 cPanel, Plesk 또는 CLI를 통해 이를 변경하세요.

서버 수준 압축 활성화(Gzip을 통한 Brotli)

Gzip이 표준이지만, 브로틀리 (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. “팽만감 방지” 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을 통한 데이터베이스 조각 모음

최적화 플러그인에는 일반적으로 "데이터베이스 정리" 버튼이 있습니다. 이 작업은 기본적으로 데이터베이스 수준에서 수행할 수 있습니다.

  1. 호스팅 패널에 로그인하여 엽니다. phpMyAdmin.
  2. WordPress 데이터베이스를 선택하세요.
  3. 맨 아래로 스크롤하여 확인하세요. 모두 확인.
  4. '선택한 항목:' 드롭다운에서 테이블 최적화.

MySQL은 테이블 인덱스를 재구축하고 사용되지 않은 공간을 회수합니다. 이 작업은 한 달에 한 번씩 수동으로 수행하세요.


평결

플러그인 없이 WordPress를 최적화하는 것은 단지 프리미엄 구독 비용을 절약하는 것만이 아닙니다. 의 철학이다 기술 부채 감소. 설치하지 않는 모든 플러그인은 패치할 필요가 없는 보안 취약점, 정리할 필요가 없는 데이터베이스 테이블, 서버에서 실행할 필요가 없는 PHP 스크립트입니다.

워크로드를 서버(PHP 8.1+, Nginx FastCGI)로 전환하고 규율을 강화하세요. wp-config.php, 그리고 당신을 사용하여 핵심 부풀어 오른 부분을 잘라냅니다. functions.php. TTFB(Time to First Byte)와 Core Web Vitals에 차이가 반영됩니다.

이 게시물을 공유하세요

Ajay Malik

Ajay Malik은 8년 이상의 경력을 지닌 WordPress 개발자이자 엘리트 프리랜서입니다.