DeepCrawlでページのパフォーマンスを確認する
DeepCrawlのレンダリングは可能な限りお客様のニーズに対応できるよう設計されています。サイトで実行したいどんなカスタム分析でもできるように、レンダリングを行う全てのページでカスタマイズされたJavaScriptファイルとスニペットを実行するこことが可能です。
パフォーマンスデータ
DeepCrawlのレンダリングエンジンであるChromeで、JavaScriptを使ってページのレンダリングのパフォーマンスデータを取得することが可能です。
例えば、パフォーマンスタイミングといった指標です。
- navigationStart
- unloadEventStart
- unloadEventEnd
- fetchStart
- domainLookupStart
- domainLookupEnd
- connectStart
- connectEnd
- requestStart
- responseStart
- responseEnd
- domLoading
- domInteractive
- domContentLoadedEventStart
- domContentLoadedEventEnd
- domComplete
- loadEventStart
- loadEventEnd
パフォーマンスタイミングについての詳細はこちらをお読みください。
ペイントタイミングは以下のようなものです。
- first-paint
- first-contentful-paint
Resource Statisticsは以下のようなものです。
- resource-count:そのページに使われているリソースの数
- resource-transferSize:ページリソース向けに転送されたデータ量の合計
- resource-decodedBodySize:各リソースがメモリで使ったデータ量の合計(デコードや解凍された後)
これらのデータを取得する
これらの指標はDeepCrawlでカスタム機能を活用すると、これらを簡単にクロールに含めることができます。どのパフォーマンス指標をレンダリングされたクロールで確認したいか決めたら、以下2つのステップでこれらを取得することができます。①カスタムJavaScriptの挿入を使っている指標を見つけ、②該当プロジェクトのカスタムスクリプトの挿入設定にて、以下のコードスニペットを追加してください。
var perfTimings=performance.timing.toJSON() Object.keys(perfTimings).forEach((i)=>{ if(perfTimings[i]>0){ var newSpan = document.createElement("span"); newSpan.id = "customextraction-perftimings-" i newSpan.innerText = ((perfTimings[i]-perfTimings.navigationStart)/1000).toFixed(2) document.body.appendChild(newSpan) } }) performance.getEntriesByType('paint').forEach(entry => { var newSpan = document.createElement("span"); newSpan.id = "customextraction-perftimings-" entry.name newSpan.innerText = (entry.startTime/1000).toFixed(2) document.body.appendChild(newSpan) }) var deepCrawlResourceMetrics = {count:0,totalTransferBytes:0,totalDecodedBytes:0} performance.getEntriesByType('resource').forEach(entry => { deepCrawlResourceMetrics.count deepCrawlResourceMetrics.totalTransferBytes =entry.transferSize deepCrawlResourceMetrics.totalDecodedBytes =entry.decodedBodySize }) Object.keys(deepCrawlResourceMetrics).forEach((i)=>{ var newSpan = document.createElement("span"); newSpan.id = "customextraction-resources-" i newSpan.innerText = deepCrawlResourceMetrics[i] document.body.appendChild(newSpan) })
カスタム抽出でこれらのデータを取得しましょう。前述のステップを行うことで、ページをクロールするときに、パフォーマンスデータがページのDOMへ出力されます。次のステップはこれらをカスタム抽出へと抽出してくることです。抽出したい指標に応じて、以下のカスタム抽出を使ってください。
- navigationStart
- unloadEventStart
- unloadEventEnd
- fetchStart
- domainLookupStart
- domainLookupEnd
- connectStart
- connectEnd
- requestStart
- responseStart
- responseEnd
- domLoading
- domInteractive
- domContentLoadedEventStart
- domContentLoadedEventEnd
- domComplete
- loadEventStart
- loadEventEnd
Resource Statistics
- resource-count
- resource-totalTransferBytes
- resource-totalDecodedBytes
データを使用する
一度クロールを行うと、これらのデータは[カスタム抽出]と[全てのページ] の両方に表示されます。パフォーマンスの指標は、レンダリング開始からかかった時間(秒)で表示されます。