プラグインを使わずに 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: サイトを高速化するためにプラグインをインストールしますが、プラグイン自体はデータベースの肥大化、バックグラウンドの cron ジョブ、および独自の CSS/JS ペイロードを追加します。

実のところ、WordPress では 1 秒以内に 15 個のパフォーマンス プラグインを読み込む必要はありません。真の速度の最適化は、サーバー、データベース、コア コードといったメタル層で行われます。

このガイドでは、プラグイン エコシステムを完全にバイパスします。サーバー側の設定を使用して WordPress を最適化します。 wp-config.php 調整や手術など functions.php スニペット。


1. サーバーサイドの基盤 (PHP は不要)

WordPress コードの 1 行に触れる前に、サーバー環境を大幅に最適化する必要があります。弱いサーバーはフロントエンド キャッシュでは修正できません。

PHP 8.1 以降にアップグレードする

WordPress は PHP 上で動作します。 PHP 7.4 から PHP 8.1 または 8.2 に移行すると、実行時間が 20 ~ 30% 短縮され、メモリ消費量が大幅に削減されます。 アクション: これを cPanel、Plesk で変更するか、独自の VPS を管理している場合は 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 を部分的にロードする必要があります) を使用する代わりに、Web サーバー レベルでキャッシュします。 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 コアは、大量の従来のサポート スクリプト、検出リンク、インライン スタイルを  そして 

 デフォルトでは。

競合他社よりも最大限の情報獲得を達成するために、単に「デブロート プラグインを使用してください」とは言いません。これは、最も一般的な WordPress の肥大化を外科的に除去するための正確なコードです。

注: これを子テーマに追加してください functions.php またはドロップインの mu プラグイン。

/**
 * 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 リクエスト また、プラグインを 1 つもインストールせずに、すべての単一ページの読み込みから数十行のインライン CSS/JS を削除しました。


4. メディアの最適化 (困難な方法)

Smush や Imagify などのプラグインは便利ですが、PHP サーバー上で画像処理を実行し、CPU リソースを消費します。

手動 WebP/AVIF 変換

画像を WordPress にアップロードする前に、次のような外部のロスレス コンプレッサーを通して画像を実行します。 スクーッシュアプ​​リ (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 はテーブルのインデックスを再構築し、未使用のスペースを再利用します。これを月に 1 回手動で実行します。


評決

プラグインを使用せずに WordPress を最適化するということは、プレミアム サブスクリプションの費用を節約するだけではありません。という哲学です 技術的負債の削減。インストールしないプラグインはすべて、パッチを適用する必要のないセキュリティ脆弱性であり、データベース テーブルをクリーンアップする必要がなく、サーバーで実行する必要のない PHP スクリプトです。

ワークロードをサーバー (PHP 8.1 以降、Nginx FastCGI) に移行し、社内の規律を強化します。 wp-config.phpを使用してコアの膨らみを切り取ります。 functions.php。最初のバイトまでの時間 (TTFB) と Core Web Vitals に違いが反映されます。

Ajay Malik

Ajay Malik は WordPress 開発者であり、8 年以上の経験を持つエリート フリーランサーです。