luaディレクティブ(2.4.8)

書式

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

ノード説明
cmd実行するluaディレクティブ名を指定します。スカラーluaディレクティブ名を指定します。
args実行するluaディレクティブのパラメータを指定します。
パラメータを取らないluaディレクティブの場合、argsノードの記述は不要です。
シーケンス または マッピングパラメータを指定します。
パラメータは指定するluaディレクティブによって異なります。
各luaディレクティブを参照してください。
applyluaディレクティブを適用するパス、または条件を指定します。
省略した場合は、global_excludeに指定されたパス以外の全てのコンテンツに
対して有効となります。
マッピング以下の表を参照
excludeluaディレクティブの適用を除外するパス、または条件を指定します。
省略した場合は、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を設定します。
WEXAL® 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レスポンスボディを取得して、その内容をパースするまでは分かりません。
コンテンツを表示するために必要なリソースを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

パラメ

シーケンス

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

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

remove link

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

ノード
body_filter

パラメータ

シーケンス

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

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追加するスクリプトのパスを指定します。スカラー追加するスクリプトのパスを指定します。
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/example.js
      pos: </body>
      inline: true

add link

外部リソースのリンクの追加を行います。

ノード
body_filter

パラメータ

シーケンス

ノード説明
rel追加する外部リソースの種類を指定します。スカラー追加する外部リソースのリンク種類を指定します。
href追加する外部リソースのパスを指定します。スカラー追加する外部リソースのパスを指定します。
pos外部リソースを追加する位置を指定します。シーケンス追加する外部リソースを<head>の直後に置く場合は<head>、</head>の前に置く場合は</head>を指定します。省略時は</head>です。
as追加する外部リソースのコンテンツのタイプを指定します。スカラー追加する外部リソースのコンテンツのタイプを指定します。省略時はパスの拡張子から判断します。

lua:
  body_filter:
  - cmd: add link
    args:
    - rel: stylesheet
      href: /_wp/so-widgets-bundle/widgets/button/css/style.css
      pos: </head>
      as: style

defer external js

外部スクリプトの実行をHTTPレスポンスボディのHTMLパース完了後まで遅延させることで、スクリプト実行によるコンテンツ表示にかかる時間を短縮できます。
コンテンツはHTMLパースが完了 (DOMContentLoaded) し、スタイルシートや画像などの読み込みが完了 (load) すると表示されます。
一般的に、スクリプトはHTMLパースで見付かると同時に実行され、スクリプトの実行が完了するまでHTMLパースは再開されません。
このディレクティブを指定することで、先にHTMLパースを完了させ、外部スクリプトの実行とスタイルシートや画像の読み込みを平行して行うことができます。

※注意事項※
スクリプトの処理によってコンテンツを生成している場合など、コンテンツの特性によっては逆にコンテンツ表示までの時間が遅くなる場合があります。

ノード
body_filter

パラメータ
なし

lua:
  body_filter:
  - cmd: defer external js

replace

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

ノード
body_filter

パラメータ

シーケンス

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

lua:
  body_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置換回数を指定します。スカラー置換回数を指定します。省略した場合、マッチした全ての置換元文字列を置換先文字列で置換します。
modifierPCRE(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です。
pcPC表示時のサムネイルの解像度を指定します。スカラーmobileの値を参照
デフォルトはhqです。
ratiopadding-bottomをパーセント(%)で指定します。スカラーデフォルトは56.25です。

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

engagement delay

コンテンツに含まれるスクリプトのクロージャ、スクリプトの実行やスタイルシートのロードを、サイト訪問者のサイトへのエンゲージメントに応じで遅延させます。
エンゲージメントが低い (例えば初回訪問時) 間は遅延させることで、FCP (First Contentful Paint)の判定を高速にします。これにより「応答が速いサイトである」イメージを持たれ、ユーザーエクスペリエンスの向上が期待できます。
一方、エンゲージメントが高い (頻繁に訪問している、サイトを回遊している) 場合は遅延を徐々に減らし、即時実行に近づけます。応答速度に関するユーザーエクスペリエンスは減少しますが、サイト運営者が意図した通りの処理を提供することができます。
このディレクティブを使用することで、ユーザーが持つサイトへのエンゲージメントという軸で、ユーザーエクスペリエンスとサイト運営者が提供したいクオリティのバランスを取ることができます。

ノード
body_filter

パラメータ

マッピング

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

scriptsの値

ノード説明
nameクロージャ/スクリプト/スタイルシート名を指定します。スカラークロージャ/スクリプト/スタイルシート名を指定します。このクロージャ/スクリプト/スタイルシート名は一意である必要があります。省略した場合は自動生成します。
type種類を指定します。スカラーclosure:クロージャの場合に指定します。patternの指定が必要です。
inline js:インラインスクリプトの場合に指定します。needleの指定が必要です。
css:外部スタイルシートの場合に指定します。pathの指定が必要です。
js:外部スクリプトの場合に指定します。pathの指定が必要です。

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

scriptsが読み込まれる順序
以下のグループの順で、scriptsに記載された順にロードを開始します。

  1. type に x が付いた、sync が async のもの
  2. type に x が付いた、sync が sync のもの
  3. type に x が付かない、sync が async のもの
  4. type に x が付かない、sync が sync のもの

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

パラメータ

マッピング

ノード説明
elementlazy loadの有効/無効を設定したいタグをs指定します。スカラーpicture/img/iframeを指定します。
disableelementで指定した要素について、lazy loadを無効にします。スカラーtrueまたはfalseを指定します。デフォルトはfalse(有効)です。
skipelementで指定した要素について、先頭から 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

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

フックハンドル名優先度
template_redirectrest_output_link_header11
template_redirectwp_shortlink_header11

ノード
header_filter

パラメータ

シーケンス

ノード説明
func_to_remove追加で抑制したいtemplate_redirectフックのハンドルを指定します。スカラー追加で抑制したいtemplate_redirectフックのハンドルを指定します。
headerfunc_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

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

標準パス短縮パス
/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

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

フックハンドル名優先度
wp_headprint_emoji_detection_script7
wp_print_stylesprint_emoji_styles10

ノード
body_filter

パラメータ
なし

lua:
  body_filter:
  - cmd: wp remove emoji

wp opt genericons

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

ノード
body_filter

パラメータ
なし

lua:
  body_filter:
  - cmd: wp opt genericons

wp remove meta

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

フックハンドル名優先度
wp_headfeed_links2
wp_headfeed_links_extra3
wp_headrsd_link10
wp_headwlwmanifest_link10
wp_headadjacent_posts_rel_link_wp_head10
wp_headrest_output_link_wp_head10
wp_headwp_oembed_add_discovery_links10
wp_headwp_oembed_add_host_js10
wp_headwp_shortlink_wp_head10
wp_headrel_canonical10
wp_headwp_generator10

ノード
body_filter

パラメータ

シーケンス

ノード説明
func_to_remove追加で抑制したいwp_headフックのハンドル名を指定します。スカラー追加で抑制したいwp_headフックのハンドル名を指定します。
metafunc_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

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

ノード
body_filter

パラメータ
なし

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

reduce script

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

ノード
body_filter

パラメータ

マッピング

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

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

normalize newlines

Windowsの改行コードCR+LFと、Macの改行コードCRを、LFに変換して改行コードを統一します。
※wpディレクティブの normalize newlinesと同等の働きをします。

ノード
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® Page Speed Technology による最適化を有効にします。

ノード
body_filter

パラメータ

シーケンス

ノード説明
proxy-hostプロキシしたいホスト名を指定します。スカラーホスト名を指定します。
elementプロキシしたい外部リソース(img/css/js) を指定します。スカラープロキシしたい外部リソース(img/css/js) を指定します。
limitelementで指定した要素について、先頭から 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

インラインスタイルシートをまとめて外部スタイルシート化します。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

secure target blank

rel 属性を持たない target="_blank" 指定の a タグに、rel="noopener noreferrer" を追加します。これにより、パフォーマンス改善と target="_blank" がもつ脆弱性への対策が行えます。

ノード
body_filter

パラメータ
なし

lua:
  body_filter:
  - cmd: secure target blank

link dns prefetch

linkタグのdns-prefetch属性やpreconnect属性を有効にすることで、外部リソースのDNSの名前解決を最適化します。

ノード
body_filter

パラメータ

シーケンス

ノード説明
rel属性を指定します。スカラーdns-prefetchまたはpreconnectを指定します。
href外部ドメイン名をURLで指定します。スカラー外部ドメイン名をURLで指定します。
pos追加する位置を指定します。スカラー追加するインラインスクリプトを<head>に置くために<head>を指定します。

lua:
  body_filter:
  - cmd: link dns prefetch
    args:
    - rel: dns prefetch
      href: https://www.google.com/
      pos: <head>

link lcp preload

LCP(Largest Contentful Paint)の画像のpreloadを有効にすることで、ファーストビューの表示を最適化します。

ノード
body_filter

パラメータ

シーケンス

ノード説明
relpreloadを指定します。スカラーpreloadを指定します。
element要素名を指定します。スカラーimgを指定します。
hrefリソースのURLを指定します。スカラーリソースのURLを指定します。
srcsetリソースのsrcsetを指定します。スカラーリソースのsrcsetを指定します。省略可能です。
sizesリソースのsizesを指定します。スカラーリソースのsizesを指定します。省略可能です。
as要素の種類を指定します。スカラーimageを指定します。
pos追加する位置を指定します。スカラー追加するインラインスクリプトを<head>に置くために<head>を指定します。

lua:
  body_filter:
  - cmd: link lcp preload
    args:
    - rel: preload
      element: img
      href: https://www.wexal.jp/wp-content/uploads/2020/07/4a125c266368383c22b0e669d4b7894d.jpg
      as: image
      pos: <head>