書式

luaディレクティブは以下の形式で記述します。

ノード 説明
cmd 実行するluaディレクティブ名を指定します。 スカラー luaディレクティブ名を指定します。
args 実行するluaディレクティブのパラメタを指定します。
パラメタを取らないluaディレクティブの場合は、argsノードの記述が不要です。
シーケンス または マッピング パラメタを指定します。
パラメタは指定したluaディレクティブにより異なります。
各luaディレクティブを参照してください。
apply luaディレクティブの適用するパス、または、条件を指定します。
省略した場合は、global_excludeに指定されたパス以外の全てのコンテンツに
対して有効となります。
マッピング 以下の表を参照
exclude luaディレクティブの適用を除外するパス、または、条件を指定します。
省略した場合は、global_excludeに指定されたパス以外の全てのコンテンツに
対して有効となります。
マッピング 以下の表を参照

apply/excludeの値

ノード 説明
path パスの場合に指定します。 スカラー パスを指定します。
正規表現を使用することもできます。
if 条件分岐の場合に指定します。 スカラー 条件分岐にはWordPressの関数名を指定します。
関数名を | で並記することで、OR条件を記述できます。
次のWordPressの関数に対応しています:is_404, is_front_page, is_page
WordPressの関数以外に以下を指定することができます。
is_kusanagi_mobile:モバイルデバイスからのアクセスかを判定します。
is_kusanagi_pc:PCブラウザからのアクセスかを判定します。
is_kusanagi_tablet:タブレットデバイスからのアクセスかを判定します。

lua:
  body_filter:
  - cmd: luaディレクティブ1
    args:
    - パラメタ1
    - パラメタ2
    apply:
      path: ^/$
  - cmd: luaディレクティブ2
    args:
    - パラメタ1
    - パラメタ2
    exclude:
      if: is_front_page

詳細

add

HTTPヘッダの出力に追加を行います。
※注意事項※
WebサーバがApacheの場合、同一のHTTPヘッダを複数出力することができません。
最後に指定された値が使用されます。

ノード
header_filter

パラメタ

シーケンス

追加で出力したいHTTPヘッダを文字列形式で指定します。
複数のHTTPヘッダを記述することができます。

lua:
  header_filter:
  - cmd: add
    args:
    - 'Page-Speed-Technology: on'

remove

HTTPヘッダの出力に抑制を行います。
※注意事項※
WebサーバがApacheの場合、使用できません。

ノード
header_filter

パラメタ

シーケンス

出力を抑制したいHTTPヘッダを以下の形式で指定します。
HTTPヘッダと値が完全一致したものの出力が抑制されます。
値を省略した場合は、値に関わらず指定したHTTPヘッダの出力が抑制されます。
複数のHTTPヘッダを記述することができます。

  • HTTPヘッダ: 値

lua:
  header_filter:
  - cmd: remove
    args:
    - 'link: ; rel="https://api.w.org/"'
    - 'x-pingback'

replace

HTTPヘッダの出力の置換を行います。
※注意事項※
WebサーバがApacheの場合、使用できません。

ノード
header_filter

パラメタ

シーケンス

ノード 説明
search 置換元のHTTPヘッダを指定します。 スカラー 置換元のHTTPヘッダを指定します。値はシングルクォート(')で囲んでください。
replacement 置換先のHTTPヘッダを指定します。 スカラー 置換先のHTTPヘッダを指定します。値はシングルクォート(')で囲んでください。

lua:
  header_filter:
  - cmd: replace
    args:
    - search: 'X-MyHeader: original'
      replacement: 'X-MyHeader: replaced'
    - search: 'X-old-header: original'
      replacement: 'X-new-header: replaced'

server push

指定したリソースをHTTP2 Pushにより送信することで、コンテンツの表示にかかる時間を短縮します。
通常、コンテンツを表示するために必要なリソースは、HTTPレスポンスボディを取得してその内容をパースするまでは分かりません。
server pushにリソースを指定することで、HTTPレスポンスボディと同時にリソースを受信することができます。
※注意事項※
HTTP2 Pushが使用できない環境では効果がありません。
(例えば、ブラウザがHTTP2非対応の場合、HTTPプロトコルの場合などです)

ノード
header_filter

パラメタ

シーケンス

ノード 説明
href プリロードするリソースのURLを指定します。 スカラー プリロードするリソースのURL指定します。
media メディアクエリを指定します。 スカラー メディアクエリを指定します。デフォルトは なし になります。

lua:
  header_filter:
  - cmd: server push
    args:
    - href: /wp-content/mu-plugins/pst/font/genericons-regular-webfont.ttf

set cookie for cdn

CDNによりコンテンツを配信している際、CDN経由でも最適化されたコンテンツを出し分けられるようにCookieを設定します。
Page Speed Technologyによる最適化をCDNと組み合わせて行う際に指定してください。
※注意事項※
正しく動作させるには、両ノードに記述が必要です。

ノード
header_filter
body_filter

パラメタ

マッピング

ノード 説明
domain オリジナルのドメインを指定します。 スカラー オリジナルのドメイン
external_url オリジナルドメインのCookieを設定するJavaScriptへのURLを指定します。 スカラー オリジナルドメインのCookieを設定するJavaScriptへのURL

lua:
  header_filter:
  - cmd: set cookie for cdn
    args:
      domain: wexal.jp
      external_url: https://www.prime-strategy.co.jp/test.js?test=test
  body_filter:
  - cmd: set cookie for cdn
    args:
      domain: wexal.jp
      external_url: https://www.prime-strategy.co.jp/test.js?test=test

preload

指定したリソースをプリロードに指定することで、コンテンツの表示にかかる時間を短縮します。
通常、コンテンツを表示するために必要なリソース(スクリプトやスタイルシートなど)は
HTTPレスポンスボディを取得して、その内容をパースするまでは分かりません。
コンテンツを表示するために必要なリソース(スクリプト、スタイルシートやWebフォントなど)をpreloadにリソースを指定することで、リソースを事前にロードできます。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
href プリロードするリソースのURLを指定します。 スカラー プリロードするリソースのURL指定します。
media メディアクエリを指定します。 スカラー メディアクエリを指定します。デフォルトは なし になります。

lua:
  body_filter:
  - cmd: preload
    args:
    - href: /wp-content/mu-plugins/pst/font/genericons-regular-webfont.ttf

shorten url

wp shorten urlを使用してください。

remove js

外部呼び出ししているスクリプトを除外し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
needle 登録解除したいスクリプトを指定します。 スカラー 登録解除したいスクリプトのニードルを指定します。正規表現を使用することもできます。

lua:
  body_filter:
  - cmd: remove js
    args
    - needle: wp-embed
    - needle: vk-all-in-one-expansion-unit/assets/js/all.min.js

remove inline js

インラインで記述しているスクリプトを除外し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
needie 登録解除したいインラインスクリプトを指定します。 スカラー 登録解除したいインラインスクリプトのニードルを指定します。正規表現を使用することもできます。

lua:
  body_filter:
  - cmd: remove inline js
    args
    - needle: function heateorSssLoadEvent(e)

remove link

主に外部スタイルシートの呼び出しに使用されるlinkタグの出力を抑制し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
needle 登録解除したい外部スタイルシートを指定します。 スカラー 登録解除したい外部スタイルシートのニードルを指定します。正規表現を使用することもできます。

lua:
  body_filter:
  - cmd: remove link
    args
    - needle: whats-new.css

remove inline css

インラインで記述しているスタイルシートを除外し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
needle 登録解除したいインラインスタイルシートを指定します。 スカラー 登録解除したいインラインスタイルシートのニードルを指定します。正規表現を使用することもできます。

lua:
  body_filter:
  - cmd: remove inline css
    args
    - needle: .heateor_sss_horizontal_sharing 

remove meta

metaタグの出力を抑制し、ブラウザがロードするコンテンツを減らすことで、表示にかかる時間を短縮します。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
needle 登録解除したいmetaタグを指定します。 スカラー 登録解除したいmetaタグのニードルを指定します。正規表現を使用することもできます。

lua:
  body_filter:
  - cmd: remove meta
    args:
    - needle: generator

insert script

インラインスクリプトを登録する処理を行います。
remove jsディレクティブなどによりハンドルを解除した上で、テンプレートを編集することなく必要最低限のスクリプトを再登録することができます。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
script 登録するインラインスクリプトを指定します。 スカラー 登録するインラインスクリプトを指定します。
pos 登録するインラインスクリプトの位置を指定します。 スカラー 登録するインラインスクリプトを<head>に置く場合は<head>、</body>の前に置く場合は</body>を指定します。省略時は</head>です。

lua:
  body_filter:
  - cmd: insert script
    args:
    - script: '<script type="text/javascript">var vkExOpt = {"ajax_url":"https:\/\/www.wexal.jp\/wp-admin\/admin-ajax.php"};</script>'
      pos: </body>

add css

スタイルシートを登録する処理を行います。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
handle 登録するスタイルシートのハンドル名を指定します。 スカラー 登録するスタイルシートのハンドル名を指定します。linkタグのidプロパティとなります。省略した場合はなしです。
src スタイルシートファイルへのパスを指定します。 スカラー スタイルシートファイルへのパスを指定します。
pos 登録するスタイルシートを置く場所を指定します。 シーケンス 登録するインラインスクリプトを<head>に置く場合は<head>、</body>の前に置く場合は</body>を指定します。省略時は</head>です。
inline 登録するスタイルシートをインラインスクリプトとして展開するかを指定します。 シーケンス インラインスクリプトとして展開するかを true または false で指定します。省略時は falseです。
ver クエリーストリングの最後にバージョン番号を付加するかを指定します。 スカラー クエリーストリングの最後にバージョン番号を付加するかを true または false で指定します。省略時はfalseです。
media スタイルシートが定義されているメディアを指定します。 スカラー スタイルシートが定義されているメディアを指定します。省略時はallです。

lua:
  body_filter:
  - cmd: add css
    args:
    - handle: button
      src: /_wp/so-widgets-bundle/widgets/button/css/style.css
      pos: <head>
      inline: true

add js

スクリプトを登録します。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
sync 登録するスクリプトの読み込み方法を指定します。 スカラー 登録するスクリプトを非同期で読み込み、非同期で実行する場合は、asyncを指定します。登録するスクリプトを非同期で読み込み、HTMLのパースを完了した後に同期で実行する場合は、deferを指定します。それ以外では同期読み込み、同期実行となります。省略した場合は同期読み込み、同期実行となります。
src JavaScriptファイルへのパスを指定します。 スカラー JavaScriptファイルへのパスを指定します。
pos 登録するスクリプトを置く場所を指定します。 シーケンス 登録するインラインスクリプトを<head>に置く場合は<head>、</body>の前に置く場合は</body>を指定します。省略時は</head>です。
inline 登録するスクリプトをインラインスクリプトとして展開するかを指定します。 シーケンス インラインスクリプトとして展開するかを true または false で指定します。省略時は falseです。
ver クエリーストリングの最後にバージョン番号を付加するかを指定します。 スカラー クエリーストリングの最後にバージョン番号を付加するかを true または false で指定します。省略時はfalseです。

lua:
  body_filter:
  - cmd: add js
    args:
    - sync: defer
      src: /wp-content/mu-plugins/pst/js/engagement_delay.js
      pos: </body>
      inline: true

defer external js

外部スクリプトの実行をHTTPレスポンスボディのHTMLパース完了後まで遅延させることで、スクリプト実行によるコンテンツ表示にかかる時間に対する影響を抑えます。
コンテンツ表示はHTMLパースが完了 (DOMContentLoaded) し、スタイルシートや画像などの読み込みが完了 (load) して表示されます。
一般的に、スクリプトはHTMLパースで見付かると同時に実行され、スクリプトの実行が完了するまでHTMLパースは再開されません。
本ディレクティブを指定することで、先にHTMLパースを完了させ、外部スクリプトの実行とスタイルシートや画像の読み込みを平行で行えるようにすることで、コンテンツ表示にかかる時間を短縮できます。
※注意事項※
JavaScriptの処理によってコンテンツを生成している場合など、コンテンツの特性によっては逆に遅くなる場合があります。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: defer external js

replace

Webサーバからクライアントへ送信するレスポンスボディに対して文字列置換の処理を行います。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
search 置換元の文字列を指定します。 スカラー 置換元の文字列を指定します。
replacement 置換先の文字列を指定します。 スカラー 置換先の文字列を指定します。
limit 置換回数を指定します。 スカラー 置換回数を指定します。省略した場合、マッチした全ての置換元文字列を置換先文字列で置換します。

lua:
  header_filter:
  - cmd: replace
    args:
    - search: WordPress
      replacement: PressWord
      limit: 1
    - search: Old Company Name
      replacement: New Company Name

replace anything

Webサーバからクライアントへ送信するレスポンスボディに対して正規表現による文字列置換の処理を行います。
置換先文字列には、後方参照($1、$2など)を含めることができます。

ノード
body_filter

パラメタ

シーケンス

ノード 説明
pattern 置換元の文字列の正規表現を指定します。 スカラー 置換元の文字列の正規表現を指定します。
replacement 置換先の文字列を指定します。 スカラー 置換先の文字列を指定します。後方参照($1、$2など)を含めることができます。
limit 置換回数を指定します。 スカラー 置換回数を指定します。省略した場合、マッチした全ての置換元文字列を置換先文字列で置換します。
modifier PCRE(Perl互換正規表現)のパターン修飾子を指定します。 スカラー PCRE(Perl互換正規表現)のパターン修飾子を指定します。省略した場合はなしです。

lua:
  body_filter:
  - cmd: replace anything
    args:
     - pattern: <(/?[^<>\s]+)(\s[^<>/]+)?(\s/)?>
       replacement: <$1$2$3>
       limit: 1

lazy youtube

コンテンツに埋め込んだYouTube動画のスクリプトを遅延実行させることで、コンテンツ自体の表示にかかる時間に対する影響を抑えます。
遅延実行された埋め込みYouTube動画はコンテンツ内にサムネイル表示され、サムネイルをクリックした際に動画がロードされるようになります。

ノード
body_filter

パラメタ

マッピング

ノード 説明
mobile モバイル表示の際のサムネイルの解像度を指定します。 スカラー hq:480x360
mq:320x180
'':120x90
sd:640x480
maxres:1920x1080
なお、動画によっては全てのサイズのサムネイルがない場合があります。
デフォルトはmqです。
pc PC表示の際のサムネイルの解像度を指定します。 スカラー mobileの値を参照
デフォルトはhqです。
ratio padding-bottomをパーセント(%)で指定します。 スカラー デフォルトは56.25です。

lua:
  body_filter:
  - cmd: lazy youtube
    args:
      mobile: mq
      pc: mq
      ratio: "56.25"

engagement delay

コンテンツに含まれるスクリプトのクロージャ、スクリプトの実行やスタイルシートのロードを、サイト訪問者のサイトとのエンゲージメントに応じで遅延させます。
エンゲージメントが低い (例えば初回訪問時) 間は、遅延させることでコンテンツ自体の表示にかかる時間に対する影響を抑えます。
これにより、コンテンツ表示に関するユーザエクスペリエンスを向上できます。
一方、エンゲージメントが高い (頻繁に訪問している、サイトを回遊している) 場合は遅延を徐々に減らし、即時実行に近づけます。
コンテンツ表示に関するユーザエクスペリエンスは減少しますが、サイトの作成者が意図した処理を実行することができます。
このディレクティブを使用することで、ユーザエクスペリエンスとサイト製作者が意図した処理の実行を、ユーザのサイトとのエンゲージメントという軸でバランスすることができます。

ノード
body_filter

パラメタ

マッピング

ノード 説明
score 遅延実行しなくなるまでに必要なエンゲージメントスコアの目標値を指定します。
エンゲージメントスコアは、ユーザがサイトを表示するたびに約100点上昇します。
また、ページ操作によりpscoreの点数分上昇します。
ユーザのエンゲージメントスコアがこの目標値に近付くにつれて、遅延実行までの待ち時間が短くなります。また、この値を越えると遅延実行しなくなります。(即時実行)
スカラー エンゲージメントスコアの目標値。デフォルトは250です。
pscore ページ操作により上昇するエンゲージメントスコアの点数を指定します。
PCではmouse hoverイベント、スクロールイベントなどで、モバイルではタップやスクロールイベントなどにより加算されます。
スカラー エンゲージメントスコアの上昇値。デフォルトは10です。
high ユーザのエンゲージメントが高い際に、クロージャ、スクリプトの実行やスタイルシートのロードするタイミングを指定します。 スカラー クロージャ、スクリプトの実行やスタイルシートのロードするイベント名。デフォルトはDOMContentLoadedです。
low ユーザのエンゲージメントが低い際に、クロージャ、スクリプトやスタイルシートのロードを遅延実行する基準となるタイミングを指定します。
指定したタイミングから遅延実行の待ち時間を経過した時点で、クロージャ、スクリプトやスタイルシートのロードが実行されます。
スカラー クロージャを実行するイベント名。デフォルトはloadです。
delay クロージャ、スクリプトやスタイルシートのロードを遅延実行させるための待ち時間の単位をミリ秒(ms)で指定します。
実際の待ち時間は、指定した待ち時間の単位と後述の割合 (ratio) を掛けたものに対し、エンゲージメントスコアの目標値に対する現在のエンゲージメントスコアの割合をかけた値となります。
スカラー クロージャ、スクリプトやスタイルシートのロードを遅延実行させる待ち時間の単位。デフォルトは1000です。
ratio クロージャ、スクリプトやスタイルシートのロードを遅延実行させる待ち時間の割合を指定します。 スカラー クロージャ、スクリプトやスタイルシートのロードを遅延実行させる待ち時間の割合。デフォルトは4です。
従って、遅延実行の最大待ち時間は4000ミリ秒となります。
max-age ユーザのエンゲージメントスコアの有効期限を秒(s)で指定します。
ユーザが最後にサイトを訪問してからこの期間が経過するまでの間は、最後に記録したエンゲージメントスコアが有効となります。それに従って、遅延実行の待ち時間が短縮されます。
有効期限を過ぎてからユーザがサイトを再度訪問した際は、エンゲージメントスコアは初期値に戻ります。そのため、遅延実行の待ち時間も長くなります。
スカラー ユーザのエンゲージメントスコアの有効期限。デフォルトは777600 (9日) です。
inline engagement delayのスクリプトをインラインスクリプトに展開するか、外部スクリプトとして実行するかを指定します。 スカラー インラインスクリプトはtrue、外部スクリプトはfalseを指定します。デフォルトは外部スクリプトです。
debug デバッグ出力の有無を指定します。有効にするとブラウザのコンソールなどに出力します。 スカラー 有効はtrue、無効はfalseを指定します。デフォルトは無効です。
scripts 遅延実行の対象とするクロージャ、スクリプトやスタイルシートを指定します。順番に実行しなければならないクロージャ、スクリプトは順番に記述し、後述のsyncにsyncを指定することで逐次実行することができます。 シーケンス 以下の表を参照

scriptsの値

ノード 説明
name クロージャ/スクリプト/スタイルシート名を指定します。 スカラー クロージャ/スクリプト/スタイルシート名。このクロージャ/スクリプト/スタイルシート名は一意である必要があります。省略した場合は自動的に生成します。
type 種類を指定します。 スカラー closure:クロージャの場合に指定します。patternの指定が必要です。
inline js:インラインスクリプトの場合に指定します。needleの指定が必要です。
css:外部スタイルシートの場合ni指定します。pathの指定が必要です。
js:外部スクリプトの場合に指定します。pathの指定が必要です。
優先実行させたい場合は末尾にxを追加します。(例:jsx)
pattern クロージャをマッチさせるための正規表現を記述します。
クロージャの場合 (type: closure) では必須です。
スカラー 正規表現
needle インラインスクリプトをマッチさせるための正規表現を記述します。
インラインスクリプトの場合 (type: inline js) では必須です。
スカラー 正規表現
path 外部スタイルシート/スクリプトのパスを指定します。
短縮URL (shorten url) を有効にしている場合は、それを加味したパスを記述する必要があります。
スカラー 外部スタイルシート/スクリプトのパス。
query 外部スタイルシート/スクリプトのパスにバージョン番号などのクエリーストリングが
含まれる場合、それらの処理方法を指定します。
スカラー 自動的に処理する場合はautoを指定します。
指定しない場合は、クエリーストリングを付加しません。
デフォルトはautoです。
sync クロージャ、インラインスクリプト、外部スタイルシート/スクリプトの実行方法を指定します。
クロージャが外部スクリプトのjQueryに依存するなど、実行順番に依存関係がある際、その逐次実行するように指定できます。
スカラー 逐次実行する場合は一連のクロージャや外部スクリプトをsyncで指定して、順番に記述してください。
逐次実行が不要な場合はasyncを指定します。デフォルトはsyncです。
original cssにwebfontが含まれる場合に、オリジナルのcssの絶対URLを指定します。David君がwebfontを考慮したconfigを生成しますが、手動での設定も可能です。 スカラー オリジナルのcssの絶対URL
method cssにwebfontが含まれる場合に指定します。David君がwebfontを考慮したconfigを生成しますが、手動での設定も可能です。 スカラー webfont

lua:
  body_filter:
  - cmd: engagement delay
    args:
      score: 180
      pscore: 10
      high: body
      low: load
      delay: 1000
      ratio: 5
      max-age: 3600
      inline: true
      scripts:
      - name: fa
        type: css
        path: /_wt/lightning/inc/font-awesome/versions/5.6.0/css/all.min.css
        query: auto
      - name: jq
        type: jsx
        path: /_wi/js/jquery/jquery.js
        query: auto
        sync: sync
      - name: jm
        type: jsx
        path: /_wi/js/jquery/jquery-migrate.min.js
        query: auto
        sync: sync
      - name: lm
        type: js
        path: /_wt/lightning/assets/js/lightning.min.js
        query: auto
        sync: async

lazy load

コンテンツに含まれる画像のロード遅延させます。
※script要素内のpicture/img/iframe/background-imageはlazy loadを行いません。

ノード
body_filter

パラメタ

マッピング

ノード 説明
element lazy loadの有効無効を設定したいタグを記述します。 スカラー picture/img/iframeを指定します。
disable elementで指定した要素について、lazy loadを無効にします。 スカラー trueまたはfalseを設定します。デフォルトはfalseです(つまり、有効)。
skip elementで指定した要素について、先頭から n 個に対してlazy loadを無効にします。 スカラー 数値を設定します。デフォルトはfalseです(つまり、無効にしない)。

lua:
  body_filter:
  - cmd: lazy load
    args:
    - element: img
      skip: 3
    - element: picture
      skip: 1
    - element: iframe
      disable: true

wp remove header

wpディレクティブのremove headerと同じです。
WordPressでheadタグ内に出力するハンドルを抑制し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。
デフォルトで、トラックバック許可の確認と以下のハンドルを抑制します。

フック ハンドル名 優先度
template_redirect rest_output_link_header 11
template_redirect wp_shortlink_header 11

ノード
header_filter

パラメタ

シーケンス

ノード 説明
func_to_remove 追加で抑制したいremplate_redirectフックのハンドルを指定します。 スカラー 追加で抑制したいremplate_redirectフックのハンドルを指定します。
header func_to_removeで指定したハンドルが出力する、HTTPヘッダを指定します。 スカラー func_to_removeで指定したハンドルが出力する、HTTPヘッダを指定します。

lua:
  header_filter:
  - cmd: wp remove header
    args
    - func_to_remove: pings_open
      header: x-pingback

wp shorten url

wpディレクティブのshorten urlと同じです。
WordPressの標準パスを短縮パスと置換し、URLを短縮します。これによりURLを記述した部分のコンテンツサイズを削減し、コンテンツ表示にかかる時間を短縮します。
URLの短縮はPage Speed Technology内部で動的に行うため、WordPressのテーマやプラグインなどは標準パスから書き換える必要はありません。
以下のパスを置換します。

標準パス 短縮パス
/wp-content/uploads /_wu
/wp-content/themes /_wt
/wp-content/plugins /_wp
/wp-includes /_wi

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: wp shorten url

wp remove emoji

wpディレクティブのremove emojiと同じです。
WordPressで絵文字用スタイルシートとスクリプトを出力するハンドルを抑制し、ブラウザがロードするコンテンツを減らすことで、表示にかかる時間を短縮します。
デフォルトで、以下のアクションで出力される絵文字スタイルとスクリプトを抑制します。

フック ハンドル名 優先度
wp_head print_emoji_detection_script 7
wp_print_styles print_emoji_styles 10

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: wp remove emoji

wp opt genericons

wpディレクティブのopt genericonsと同じです。
Genericonsに対する最適化を行います。
代替フォントを表示することで、フォントがブラウザにロードされるまでの間もコンテンツを表示できるようにします。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: wp opt genericons

wp remove meta

wpディレクティブのremove metaと同じです。
WordPressでmetaタグを出力するハンドルを抑制し、ブラウザがロードするコンテンツを減らすことで、表示にかかる時間を短縮します。
デフォルトで、以下のハンドルを抑制します。

フック ハンドル名 優先度
wp_head feed_links 2
wp_head feed_links_extra 3
wp_head rsd_link 10
wp_head wlwmanifest_link 10
wp_head adjacent_posts_rel_link_wp_head 10
wp_head rest_output_link_wp_head 10
wp_head wp_oembed_add_discovery_links 10
wp_head wp_oembed_add_host_js 10
wp_head wp_shortlink_wp_head 10
wp_head rel_canonical 10
wp_head wp_generator 10

ノード
body_filter

パラメタ

シーケンス

ノード 説明
func_to_remove 追加で抑制したいwp_headフックのハンドルを指定します。 スカラー 追加で抑制したいwp_headフックのハンドルを指定します。
meta func_to_removeで指定したハンドルが出力する、metaタグのニードルを指定します。 スカラー func_to_removeで指定したハンドルが出力する、metaタグのニードルを指定します。

lua:
  body_filter:
  - cmd: wp remove meta
    args
    - func_to_remove: generator
      meta: 'name="generator"'

wp remove wpcf7

wpディレクティブのremove wpcf7と同じです。
Contact Form 7のスクリプトとスタイルシートの最適化を行います。
WordPressでContact Form 7を有効化している場合、Contact FormがないページにおいてもContact Form 7のスクリプトとスタイルシートがロードされます。
この最適化では、Contact Form 7のスクリプトとスタイルシートのロードを抑制し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。
Contact Formがあるページではこれらのスクリプトとスタイルシートは必要です。そのため、Contact Formがあるページをexcludeで指定して、ディレクティブの適用から除外してください。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: wp remove wpcf7
    exclude:
      if:
        is_page: contactus

reduce script

wpディレクティブのreduce scriptと同じです。全く同じスクリプトが複数読み込まれている場合、1つのみを残し、残りを除去することで、スクリプトの読み込みを抑制します。

ノード
body_filter

パラメタ

マッピング

ノード 説明
apply_script 適用するスクリプトのパスを指定します。 スカラー パスを指定します。正規表現を使用することもできます。デフォルトは . です。
exclude_script 適用外にするスクリプトのパスを指定します。 スカラー パスを指定します。正規表現を使用することもできます。デフォルトは、falseです。

lua:
  body_filter:
  - cmd: reduce script
    args:
      apply_script: jquery

normalize newlines

wpディレクティブの normalize newlinesと同じです。Windowsの改行コードCR+LFと、Macの改行コードCRを、LFに変換します。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: normalize newlines

lazy video

videoタグが読み込まれている場合、preload属性にnoneを指定し、リソースの読み込みを遅らせます。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: lazy video

tidy

HTMLに必要なタグが欠損している場合、タグを補完します。
※tidyディレクティブはバックエンドがphp7/php-fpmの場合のみ有効です。hhvmの場合は無効になります。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: tidy

proxy

外部リソース(img, css, js)をローカルでプロクシすることで、外部リソースに対してもWEXALによる最適化を有効にできます。

ノード
body_filter

パラメタ

マッピング

ノード 説明
proxy-host プロクシしたいホスト名を記述します。 スカラー ホスト名を指定します。
element elementで指定した要素について、プロクシします。 スカラー プロクシしたい外部リソース( img/css/js) を指定します。
limit elementで指定した要素について、先頭から n 個に対してプロクシします。-1を指定すると全てプロクシします。 スカラー 数値を設定します。デフォルトは-1です。

lua:
  body_filter:
  - cmd: proxy
    args:
    - proxy-host: b.st-hatena.com
      target:
      - element: img
        limit: 10
      - element: css
        limit: 0
      - element: js
        limit: 0

split inline css webfont

インラインcssをまとめて外部css化します。
その際にwebfontが含まれる場合は、split_css_webfontと同様に切り出して遅延します。
※リソースの有効期限(Cache-Control: max-age)が設定されています。デフォルトは2hです。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: split inline css webfont

repair jquery

jqueryスクリプトの指定を正規化します。

ノード
body_filter

パラメタ
なし

lua:
  body_filter:
  - cmd: repair jquery