luaディレクティブ(3.0.0)

共通書式

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

cmd

実行するluaディレクティブ名を指定します。

スカラー(文字列)

ディレクティブ名ディレクティブ名を指定します。
省略できません。

lua:
  body_filter:
  - cmd: wp shorten url

args

実行するluaディレクティブのオプションを指定します。

シーケンス(マッピング) または マッピング

オプションは指定したluaディレクティブにより異なります。各luaディレクティブを参照してください。

lua:
  body_filter:
  - cmd: lazy load
    args:
    - element:img
      skip: 5

apply

実行するluaディレクティブを適用するパス、または、条件を指定します。
複数指定した場合はOR条件になります。

マッピング

apply > path

実行するluaディレクティブを適用するパスを指定します。

シーケンス(文字列)

パスluaディレクティブを適用するパスを正規表現で指定します。
デフォルトは、PST設定ファイルのglobal_excludeに指定したパス以外の全てのリソースに対して有効となります。

lua:
  body_filter:
  - cmd: wp shorten url
    apply:
      path: 
      - ^/archives/

apply > if

実行するluaディレクティブを適用する条件を指定します。
指定されていない場合、PST設定ファイルのglobal_excludeに指定したパス以外の全てのリソースに対して有効となります。

シーケンス(文字列)

is_kusanagi_pc条件にPCブラウザからのアクセスを指定します。
is_kusanagi_mobile条件にモバイルブラウザからのアクセスを指定します。
is_kusanagi_tablet条件にタブレットブラウザからのアクセスを指定します。

lua:
  body_filter:
  - cmd: wp shorten url
    apply:
      if:
      - is_kusanagi_pc

exclude

実行するluaディレクティブの適用を除外するパス、または、条件を指定します。
複数指定した場合はOR条件になります。

マッピング

exclude > path

実行するluaディレクティブの適用を除外するパスを指定します。

シーケンス(文字列)

パスluaディレクティブの適用を除外するパスを指定します。
デフォルトは、PST設定ファイルのglobal_excludeに指定したパス以外の全てのリソースに対して有効となります。

lua:
  body_filter:
  - cmd: wp shorten url
    exclude:
      path:
      - /wp-content/plugins

exclude > if

実行するluaディレクティブの適用を除外する条件を指定します。
指定されていない場合、PST設定ファイルのglobal_excludeに指定したパス以外の全てのリソースに対して有効となります。

シーケンス(文字列)

is_kusanagi_pc除外する条件にPCブラウザからのアクセスを指定します。
is_kusanagi_mobile除外する条件にモバイルブラウザからのアクセスを指定します。
is_kusanagi_tablet除外する条件にタブレットブラウザからのアクセスを指定します。

lua:
  body_filter:
  - cmd: wp shorten url
    exclude:
      if:
      - is_kusanagi_pc

lua > header_filter ディレクティブ

add

HTTPレスポンスヘッダーに追加の出力を行います。

args

シーケンス(文字列)

キー: 値HTTPヘッダーのキーと値を「:」で区切った文字列で指定します。複数のHTTPヘッダを指定できます。

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

remove

HTTPレスポンスヘッダーから削除を行います。

args

シーケンス(文字列)

キー: 値HTTPヘッダーのキーと値を「:」で区切った文字列で指定します。HTTPヘッダと値が完全一致したものが削除されます。値を省略した場合は、値に関わらず指定したHTTPヘッダが削除されます。複数のHTTPヘッダを記述することができます。

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

replace

HTTPレスポンスヘッダーの置き換えを行います。

args

シーケンス(マッピング)

args > search

スカラー(文字列)

キー: 値HTTPヘッダーのキーと値を「:」で区切った文字列で指定します。置換元のHTTPヘッダを指定します。値はシングルクォート(')で囲んでください。複数のHTTPヘッダを記述することができます。
省略できません。

args > replacement

スカラー(文字列)

キー: 値HTTPヘッダーのキーと値を「:」で区切った文字列で指定します。置換先の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レスポンスボディと同時にリソースを受信することができます。

args

シーケンス(マッピング)

args > href

スカラー(文字列)

URLlink要素のhref属性に指定するURLを文字列で指定します。
省略できません。

args > media

スカラー(文字列)

メディアクエリーlink要素のmedia属性に指定するメディアクエリーを文字列で指定します。

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

add link

HTTPレスポンスヘッダーのLinkフィールドに追加の出力を行います。

args

シーケンス(マッピング)

args > rel

スカラー(文字列)

リンク種別link要素のrel属性に指定するリンク種別を文字列で指定します。
省略できません。

args > href

スカラー(文字列)

URLlink要素のhref属性に指定するURLを文字列で指定します。
省略できません。

args > as

スカラー(文字列)

リソース種別link要素のas属性に指定するリソース種別を文字列で指定します。

args > type

スカラー(文字列)

コンテンツの種別link要素のtype属性に指定するコンテンツの種別を文字列で指定します。

args > media

スカラー(文字列)

メディアクエリーlink要素のmedia属性に指定するメディアクエリーを文字列で指定します。

args > crossorigin

スカラー(ブール)

CORS(オリジン間リソース共有) の有効/無効を設定します。デフォルトは無効です。

trueCORS(オリジン間リソース共有)を有効にします。
falseCORS(オリジン間リソース共有)を無効にします。

lua:
  header_filter:
  - cmd: add link
    args:
    - rel: preload
      href: /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-italic-var.woff2
      as: font
      type: font/woff2
      crossorigin: true

server push external css

engagement delayと組み合わせて使用します。engagement delayでtype: css/cssxかつmethod: serverpushを指定したスタイルシートをHTTP/2 server pushします。

args

なし

lua:
  header_filter:
  - cmd: server push external css

set cookie for cdn

CDNよりコンテンツを配信している際、CDN経由でも最適化されたコンテンツを出し分けられるように、Cookieを設定します。PSTによる最適化をCDNと組み合わせて行う際に指定してください。

args

マッピング

args > domain

スカラー(文字列)

URLオリジナルのドメインを指定します。

args > external_url

スカラー(文字列)

URLオリジナルドメインのCookieを設定する、JavaScriptのURLを指定します。
省略できません。

args > ext

スカラー(文字列)

CookieCookieに設定する値を指定します。
省略できません。

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

wp remove header

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

ハンドル名
pings_open
rest_output_link_header
wp_shortlink_header

args

シーケンス(マッピング)

args > func_to_remove

スカラー(文字列)

ハンドル追加で抑制したいtemplate_redirectフックのハンドルを指定します。

args > header

スカラー(文字列/ブール)

ヘッダ要素func_to_removeで指定した各ハンドルが出力するHTTPヘッダを指定します。デフォルト値は各ハンドルのHTTPヘッダです。また、falseを設定することで、抑制されることを防ぐ (removeされない) ことができます。

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

lua > body_filter ディレクティブ

set cookie for cdn

CDNよりコンテンツを配信している際、CDN経由でも最適化されたコンテンツを出し分けられるように、Cookieを設定します。PSTによる最適化をCDNと組み合わせて行う際に指定してください。

args

マッピング

args > external_url

スカラー(文字列)

URLオリジナルドメインのCookieを設定する、JavaScriptのURLを指定します。
省略できません。

args > ext

スカラー(文字列)

cookieCookieに設定する値を指定します。
省略できません。

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

preload

HTMLの<head>にpreloadを指定したlink要素を追加します。

args

シーケンス(マッピング)

args > href

スカラー(文字列)

URLlink要素のhref属性に指定するURLを文字列で指定します。
省略できません。

args > media

スカラー(文字列)

メディアクエリーlink要素のmedia属性に指定するメディアクエリーを文字列で指定します。

lua:
  body_filter:
  - cmd: preload
    args:
    - href: /wp-content/themes/twentytwenty/style.css
      media: all

remove js

指定した外部スクリプトタグを削除し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

args

シーケンス(マッピング)

args > 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

指定したインラインスクリプトタグを削除し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

args

シーケンス(マッピング)

args > needle

スカラー(文字列)

検索文字列削除したいインラインスクリプトの検索文字列を指定します。正規表現を使用することもできます。
省略できません。

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

remove link

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

args

シーケンス(マッピング)

args > needle

スカラー(文字列)

検索文字列削除したいlinkタグの検索文字列を指定します。正規表現を使用することもできます。
省略できません。

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

remove inline css

指定したインラインスタイルシートタグを削除し、ブラウザがロードするコンテンツを減らすことで表示にかかる時間を短縮します。

args

シーケンス(マッピング)

args > needle

スカラー(文字列)

検索文字列削除したいインラインスタイルシートの検索文字列を指定します。正規表現を使用することもできます。
省略できません。

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

remove meta

指定したmetaタグを削除し、ブラウザがロードするコンテンツを減らすことで、表示にかかる時間を短縮します。

args

シーケンス(マッピング)

args > needle

スカラー(文字列)

検索文字列削除したいmetaタグの検索文字列を指定します。正規表現を使用することもできます。
省略できません。

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

insert comment

HTMLコンテンツにコメントの追加を行います。

args

シーケンス(マッピング)

args > comment

スカラー(文字列)

コメント追加するコメントを指定します。コメントはシングルクォート(')で囲んでください。
省略できません。

args > pos

スカラー(文字列)

追加する位置 インラインスクリプトを追加する位置を指定します。</head>の前に置く場合は</head>、</body>の前に置く場合は</body>を指定します。デフォルトは</head>です。

lua:
  body_filter:
  - cmd: insert script
    args:
    - comment: '<!-- comment -->'
      pos: </body>

insert script

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

args

シーケンス(マッピング)

args > script

スカラー(文字列)

スクリプト追加するインラインスクリプトを指定します。 スクリプトはシングルクォート(')で囲んでください。
省略できません。

args > 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

スタイルシートの追加を行います。

args

シーケンス(マッピング)

args > handle

スカラー(文字列)

ハンドル名追加するスタイルシートのハンドル名を指定します。linkタグのidプロパティに使用します。デフォルトはなしです。

args > src

スカラー(文字列)

スタイルシートのパススタイルシートファイルのパスを指定します。
省略できません。

args > media

スカラー(文字列)

メディアクエリースタイルシートを定義するメディアを指定します。デフォルトはallです。

args > inline

スカラー(ブール)

追加するスタイルシートをインライン形式として展開するかを指定します。 デフォルトはfalseです。

true追加するスタイルシートをインライン形式として展開します。
false追加するスタイルシートをインライン形式として展開しません。

args > ver

スカラー(ブール)

クエリーストリングの最後にバージョン番号を付加するかを指定します。 デフォルトはfalseです。

trueクエリーストリングの最後にバージョン番号を付加します。
falseクエリーストリングの最後にバージョン番号を付加しません。

args > pos

スカラー(文字列)

追加する位置 インラインスクリプトを追加する位置を指定します。<head>の直後に置く場合は<head>、</head>の前に置く場合は</head>を指定します。デフォルトは</head>です。

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

スクリプトの追加を行います。

args

シーケンス(マッピング)

args > sync

スカラー(文字列)

読み込み方法追加するスクリプトの読み込み方法を指定します。追加するスクリプトを非同期で読み込み、非同期で実行する場合は、asyncを指定します。追加するスクリプトを非同期で読み込み、HTMLのパースを完了した後に同期で実行する場合は、deferを指定します。それ以外を指定した場合、または省略時は、同期読み込み、同期実行します。

args > src

スカラー(文字列)

スクリプトのパス追加するスクリプトのパスを指定します。
省略できません。

args > inline

スカラー(ブール)

追加するスクリプトをインラインスクリプトとして展開するかを指定します。 デフォルトはfalseです。

true追加するスクリプトをインラインスクリプトとして展開します。
false追加するスクリプトをインラインスクリプトとして展開しません。

args > ver

スカラー(ブール)

クエリーストリングの最後にバージョン番号を付加するかを指定します。 デフォルトはfalseです。

trueクエリーストリングの最後にバージョン番号を付加します。
falseクエリーストリングの最後にバージョン番号を付加しません。

args > pos

スカラー(文字列)

追加する位置 インラインスクリプトを追加する位置を指定します。<head>の直後に置く場合は<head>、</head>の前に置く場合は</head>を指定します。デフォルトは</head>です。

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

defer external js

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

args

マッピング

args > apply_script

スカラー(文字列)

スクリプトのパス適用するスクリプトのパスを指定します。正規表現を使用することもできます。デフォルトは . です。

args > exclude_script

スカラー(文字列)

スクリプトのパス適用外にするスクリプトのパスを指定します。正規表現を使用することもできます。デフォルトは false です。

lua:
  body_filter:
  - cmd: defer external js
    args:
      apply_script: js

replace

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

args

シーケンス(マッピング)

args > search

スカラー(文字列)

置換元文字列置換元文字列を指定します。

args > replacement

スカラー(文字列)

置換先文字列置換先の文字列を指定します。

args > limit

スカラー(数字)

置換回数置換回数を指定します。省略した場合、マッチした全ての置換元文字列を置換先文字列で置換します。デフォルトは -1 で、マッチする文字列を全て置き換えます。

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など)を含めることができます。

args

シーケンス(マッピング)

args > pattern

スカラー(文字列)

正規表現置換元の文字列の正規表現を指定します。

args > replacement

スカラー(文字列)

置換先文字列置換先の文字列を指定します。後方参照($1、$2など)を含めることができます。

args > limit

スカラー(数字)

置換回数置換回数を指定します。省略した場合、マッチした全ての置換元文字列を置換先文字列で置換します。デフォルトは -1 で、マッチする文字列を全て置き換えます。

args > modifier

スカラー(文字列)

PCREPCRE(Perl互換正規表現)のパターン修飾子を指定します。デフォルトはなしです。

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

lazy youtube

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

args

マッピング

args > mobile

スカラー(文字列)

解像度(モバイル)モバイル表示時のサムネイルの解像度を指定します。次の値を指定できます。
maxres: 1920x1080
sd: 640x480
hq: 480x360
mq: 320x180
'': 120x90

動画によっては全てのサイズのサムネイルがない場合があります。デフォルトはmaxresです。

args > pc

スカラー(文字列)

解像度(PC) モバイル表示時のサムネイルの解像度を指定します。次の値を指定できます。
maxres: 1920x1080
sd: 640x480
hq: 480x360
mq: 320x180
'': 120x90

動画によっては全てのサイズのサムネイルがない場合があります。デフォルトはmaxresです。

lua:
  body_filter:
  - cmd: lazy youtube
    args:
      mobile: mq
      pc: mq

proxy

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

args

シーケンス(マッピング)

args > proxy-host

スカラー(文字列)

URLプロキシしたいホスト名を指定します。
省略できません。

args > target

スカラー(配列)

配列プロキシしたい外部リソース種別とプロキシする個数を配列のセットで指定します。

args > target > element

スカラー(文字列)

リソース種別プロキシしたい外部リソースを指定します。img/css/js/bgを指定します。デフォルトは全ての種別が対象となります。

args > target > 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

engagement delay

コンテンツに含まれるスクリプトのクロージャ、スクリプトの実行やスタイルシートのロードを、サイト訪問者のサイトへのエンゲージメントに応じで遅延させます。

エンゲージメントが低い (例えば初回訪問時) 間は遅延させることで、FCP (First Contentful Paint)の判定を高速にします。これにより「応答が速いサイトである」イメージを持たれ、ユーザーエクスペリエンスの向上が期待できます。

一方、エンゲージメントが高い (頻繁に訪問している、サイトを回遊している) 場合は遅延を徐々に減らし、即時実行に近づけます。応答速度に関するユーザーエクスペリエンスは減少しますが、サイト運営者が意図した通りの処理を提供することができます。

このディレクティブを使用することで、ユーザーが持つサイトへのエンゲージメントという軸で、ユーザーエクスペリエンスとサイト運営者が提供したいクオリティのバランスを取ることができます。

args

マッピング

args > score

スカラー(数字)

スコア目標値エンゲージメントスコアの目標値を指定します。デフォルトは250です。

エンゲージメントスコアは、ユーザーがサイトを表示するたびに約100点上昇します。また、ページ操作によっても点数が上昇します(後述のpscore参照)。ユーザーのエンゲージメントスコアがこの目標値に近付くにつれて、ロード開始までの待ち時間が短くなります。また、この値を越えると遅延実行せず、即時実行します。

args > pscore

スカラー(数字)

スコア目標値セッション単位のエンゲージメントスコアの目標を指定します。デフォルトは10です。

前述のエンゲージメントスコアの目標値(score)を越えていない場合でも、ページ操作によりセッション単位のエンゲージメントスコアの目標値を越えれば、待ち時間を無視してその時点でロードを開始します。PCではmouse hoverイベントやスクロールイベント、モバイルではタップやスクロールイベントなどにより加算されます。また、エンゲージメントスコアにもページ操作した分の点数が加算されます。

args > high

スカラー(文字列)

イベント名ユーザーのエンゲージメントが高い際の、ロードを開始するイベント名を指定します。デフォルトはDOMContentLoadedです。

args > low

スカラー(文字列)

イベント名ユーザーのエンゲージメントが低い際の、ロードを開始するイベント名を指定します。デフォルトはloadです。

指定したタイミングから、後述の待ち時間(delay)を経過するとロードを開始します。

args > delay

スカラー(数字)

待ち時間ミリ秒(ms)ロード開始までの待ち時間の単位を指定します。デフォルトは1000です。

実際の待ち時間は、指定した待ち時間の単位と後述の割合(ratio)を掛けたものに対し、エンゲージメントスコアの目標値に対する現在のエンゲージメントスコアの割合をかけた値です。

args > ratio

スカラー(数字)

待ち時間を変更する割合モバイルで閲覧された際の、ロード開始までの待ち時間を変更する割合を指定します。デフォルトは4です。

ユーザーのエンゲージメントが一番低い時、delayが1000、ratioが4であれば、PC閲覧時は1秒、モバイル閲覧時は4秒が待ち時間となります。

args > max-age

スカラー(数字)

有効期限秒(s)ユーザーのエンゲージメントスコアの有効期限を指定します。デフォルトは777600 (9日) です。

ユーザーが最後にサイトを訪問してからこの期間が経過するまでの間は、最後に記録したエンゲージメントスコアを使用します。それに従ってロード開始までの待ち時間を短縮します。有効期限を過ぎてからユーザーがサイトを再度訪問した際は、エンゲージメントスコアは初期値に戻ります。そのため、ロード開始までの待ち時間も初回訪問時と同一になります。

args > inline

スカラー(ブール)

engagement delayのスクリプトをインラインスクリプトとして展開するか、外部スクリプトとして読み込むかを指定します。デフォルトはfalseです。

trueインラインスクリプトとして展開します。
false外部スクリプトとして読み込みます。

args > debug

スカラー(ブール)

デバッグ出力の有無を指定します。有効にするとブラウザのコンソールにデバッグした内容を出力します。デフォルトはfalseです。

true デバッグ出力を有効にします。
false デバッグ出力を無効にします。

args > scripts

シーケンス(マッピング)

配列・マッピング遅延実行の対象にするクロージャやスクリプト、スタイルシートを指定します。各ノードの詳細は続く部分を参照してください。

scriptsが読み込まれる順序
以下のグループの順で、scriptsに記載された順にロードを開始します。
1. type に x が付いた、sync が async のもの
2. type に x が付いた、sync が sync のもの
3. type に x が付かない、sync が async のもの
4. type に x が付かない、sync が sync のもの

args > scripts > name

スカラー(文字列)

リソース名クロージャ/スクリプト/スタイルシート名を指定します。このクロージャ/スクリプト/スタイルシート名は一意である必要があります。省略した場合は自動生成されます。

args > scripts > type

スカラー(文字列)

リソース種別リソース種類を指定します。
closure: クロージャの場合に指定します。patternの指定が必要です。
inline js: インラインスクリプトの場合に指定します。needleの指定が必要です。
css: 外部スタイルシートの場合に指定します。pathの指定が必要です。
js: 外部スクリプトの場合に指定します。pathの指定が必要です。
優先実行させたい場合は、それぞれの末尾にxを追加します。(例:jsx)

args > scripts > needle

スカラー(文字列)

正規表現インラインスクリプトをマッチさせるための正規表現を指定します。
インラインスクリプトの場合 (type: inline js / inline jsx) では必須です。

args > scripts > before

スカラー(文字列)

スクリプト遅延させるinline jsのうち、変数や定数の定義などコンテンツ中でも必要で遅延できないスクリプトを切り出して指定します。デフォルト値はありません。
インラインスクリプトの場合 (type: inline js / inline jsx) に指定できます。

args > scripts > pattern

スカラー(文字列)

正規表現クロージャをマッチさせるための正規表現を指定します。
クロージャの場合 (type: closure / closurex) では必須です。

args > scripts > args

スカラー(文字列)

引数closureに渡す引数をカンマ区切りの文字列で指定します。デフォルト値はありません。
クロージャの場合 (type: closure / closurex) に指定できます。

args > script > cmd

シーケンス(マッピング)

関数closureと同時実行する関数を指定します。デフォルト値はありません。
クロージャの場合 (type: closure / closurex) に指定できます。

function: 関数名を指定します。(例 function: function_name1 )
args: 関数に渡す引数をカンマ区切りの文字列で指定します。
(例 args: 'arg1', 'arg2', 'arg3')

args > scripts > path

スカラー(文字列)

URLスタイルシート/スクリプトのパスを指定します。短縮URL (shorten url) をこのディレクティブより先に有効にしている場合は、それを加味したパスを記述する必要があります。
外部スタイルシート・スクリプトの場合 (type: css / cssx、 js / jsx) では必須です。

args > scripts > query

スカラー(文字列)

処理方法スタイルシート/スクリプトのパスにバージョン番号などのクエリーストリングが含まれる場合、それらの処理方法を指定します。自動的に処理する場合はautoを指定します。指定しない場合は、クエリーストリングを付加しません。デフォルトはautoです。
外部スタイルシート・スクリプトの場合 (type: css / cssx、 js / jsx) に指定できます。

args > scripts > original

スカラー(文字列)

URLオリジナルのスタイルシートの絶対URLを指定します。スタイルシートにwebfontが含まれる場合に、オリジナルのスタイルシートの絶対URLを指定します。戦略AI「David」がwebfontを考慮したconfigを生成します。手動で設定することも可能です。
外部スタイルシート・スクリプトの場合 (type: css / cssx、 js / jsx) に指定できます。

args > scripts > method

スカラー(文字列)

URLスタイルシートにwebfontが含まれる場合に指定します。戦略AI「David」がwebfontを考慮したconfigを生成します。手動で設定することも可能です。
外部スタイルシートの場合 (type: css / cssx) に指定できます。

args > script > inline

スカラー(ブール)

スクリプトタグのコンテンツの記述が必要/不必要を指定します。デフォルト値はfalseです。
外部スクリプトの場合 (js / jsx) に指定できます。

trueスクリプトタグのコンテンツを記述します。
falseスクリプトタグのコンテンツを記述しません。

args > scripts > attr

シーケンス(マッピング)

キー: 値スクリプトタグに指定した属性のうち、必要なキーと値を指定します。(例 key: id, value: my_id)デフォルトはありません。
外部スクリプトの場合 (js / jsx) に指定できます。

args > scripts > sync

スカラー(文字列)

実行方法クロージャ/インラインスクリプト/スタイルシート/スクリプトの実行方法を指定します。クロージャが外部スクリプトのjQueryに依存するなど、実行順番に依存関係がある場合、その逐次読み込むように指定できます。逐次実行する場合は一連のクロージャや外部スクリプトをsyncで指定し、順番に記述します。逐次実行が不要な場合はasyncを指定します。デフォルトはsyncです。

args > scripts > comment

スカラー(文字列)

コメントコメントを記述します。
scriptにコメントを記述した場合は、その scriptは無効になります(コメント扱いになります)。

args > scripts > apply

scriptの遅延を適用する条件を指定します。luaディレクティブ共通のapplyと同じ形式で指定します。

args > scripts > exclude

scriptの遅延を適用から除外する条件を指定します。luaディレクティブ共通のexcludeと同じ形式で指定します。

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を行いません。

args

シーケンス(マッピング)

args > element

スカラー(文字列)

タグ要素名lazy loadの有効/無効を設定したいタグを指定します。picture/img/iframe/styleを指定します。

args > disable

スカラー(ブール)

elementで指定した要素について、lazy loadの有効/無効を設定します。 デフォルトはfalseです。

truelazy loadを無効にします。
falselazy loadを有効にします。

args > skip

スカラー(文字列)

スキップ数elementで指定した要素について、先頭から n 個に対してlazy loadを無効にします。デフォルトは0(全て有効)です。

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

wp shorten url

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

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

args

なし

lua:
  body_filter:
  - cmd: wp shorten url

wp remove emoji

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

args

なし

lua:
  body_filter:
  - cmd: wp remove emoji

wp opt genericons

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

args

なし

lua:
  body_filter:
  - cmd: wp opt genericons

wp remove meta

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

ハンドル名
feed_links
feed_links_extra
rsd_link
wlwmanifest_link
adjacent_posts_rel_link_wp_head
rest_output_link_wp_head
wp_oembed_add_discovery_links
wp_oembed_add_host_js
wp_shortlink_wp_head
rel_canonical
wp_generator

args

シーケンス(マッピング)

args > func_to_remove

スカラー(文字列)

ハンドル追加で抑制したいハンドルを指定します。

args > meta

スカラー(文字列/ブール)

検索文字列func_to_removeで指定したハンドルが出力する、metaタグの検索文字列を指定します。falseを設定することで、抑制されることを防ぐ (removeされない) ことができます。

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に指定して除外してください。

args

なし

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

deduplicate script

全く同じスクリプトが複数読み込まれている場合、1つのみを残し、残りを除去します。(前バージョンのreduce script)

args

シーケンス(マッピング)

args > apply_script

スカラー(文字列)

スクリプトのパス適用するスクリプトのパスを指定します。正規表現を使用することもできます。デフォルトは . です。
省略できません。

args > exclude_script

スカラー(文字列)

スクリプトのパス適用外にするスクリプトのパスを指定します。正規表現を使用することもできます。デフォルトは false です。

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

lazy video

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

args

なし

lua:
  body_filter:
  - cmd: lazy video

normalize newlines

Windowsの改行コードCR+LFと、Macの改行コードCRを、LFに変換して改行コードを統一します。

args

なし

lua:
  body_filter:
  - cmd: normalize newlines

tidy

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

args

なし

lua:
  body_filter:
  - cmd: tidy

split inline css webfont

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

args

なし

lua:
  body_filter:
  - cmd: split inline css webfont

normalize jquery

jQueryのスクリプトの指定を正規化します。(前バージョンのrepair jquery)

args

なし

lua:
  body_filter:
  - cmd: normalize jquery

secure target blank

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

args

なし

lua:
  body_filter:
  - cmd: secure target blank

nanofy url

PSTの初期設定(init)で、nanoオプションを有効にした場合に使用します。基本的にユーザーが自分で使うことはありません。

args

なし

add link

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

args

シーケンス(マッピング)

args > rel

スカラー(文字列)

リンク種別link要素のrel属性に指定するリンク種別を文字列で指定します。
省略できません。

args > id

スカラー(文字列)

要素IDlink要素のid属性に指定する要素IDを文字列で指定します。

args > href

スカラー(文字列)

URLlink要素のhref属性に指定するURLを文字列で指定します。
省略できません。

args > as

スカラー(文字列)

リソース種別link要素のas属性に指定するリソース種別を文字列で指定します。

args > imagesrcset

スカラー(文字列)

リソースの値link要素のimagesrcset属性に指定するリソースの値を文字列で指定します。

args > imagesizes

スカラー(文字列)

リソースのサイズ値link要素のimagesizes属性に指定するリソースのサイズ値を文字列で指定します。

args > type

スカラー(文字列)

コンテンツの種別link要素のtype属性に指定するコンテンツの種別を文字列で指定します。

args > media

スカラー(文字列)

メディアクエリーlink要素のmedia属性に指定するメディアクエリーを文字列で指定します。

args > crossorigin

スカラー(ブール)

CORS(オリジン間リソース共有) の有効/無効を指定します。デフォルトはfalseです。

trueCORS(オリジン間リソース共有)を有効にします。
falseCORS(オリジン間リソース共有)を無効にします。

args > pos

スカラー(文字列)

追加する位置 インラインスクリプトを追加する位置を指定します。<head>の直後に置く場合は<head>、</head>の前に置く場合は</head>を指定します。デフォルトは</head>です。

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

link dns prefetch

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

args

シーケンス(マッピング)

args > rel

スカラー(文字列)

リンク種別link要素のrel属性に指定するリンク種別を文字列で指定します。
省略できません。

args > href

スカラー(文字列)

URLlink要素のhref属性に指定するURLを文字列で指定します。
省略できません。

args > pos

スカラー(文字列)

追加する位置 インラインスクリプトを追加する位置を指定します。<head>の直後に置く場合は<head>、</head>の前に置く場合は</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を有効にすることで、ファーストビューの表示を最適化します。

args

シーケンス(マッピング)

args > rel

スカラー(文字列)

リンク種別link要素のrel属性に指定するリンク種別を文字列で指定します。
省略できません。

args > href

スカラー(文字列)

URLlink要素のhref属性に指定するURLを文字列で指定します。
省略できません。

args > element

スカラー(文字列)

要素名link要素のelement属性に指定する要素名を文字列で指定します。

args > as

スカラー(文字列)

リソース種別link要素のas属性に指定するリソース種別を文字列で指定します。

args > imagesrcset

スカラー(文字列)

リソースの値link要素のimagesrcset属性に指定するリソースの値を文字列で指定します。

args > imagesizes

スカラー(文字列)

リソースのサイズ値link要素のimagesizes属性に指定するリソースのサイズ値を文字列で指定します。

args > pos

スカラー(文字列)

追加する位置 インラインスクリプトを追加する位置を指定します。<head>の直後に置く場合は<head>、</head>の前に置く場合は</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>