Chrome Kullanıcı Deneyimi Raporu (CrUX), Mart 2024 veri kümesinden itibaren bir navigation_types
metriği içerir. Bu, sorgulanan boyut için sayfa yüklemelerinin gezinme türleriyle ilgili toplu istatistikler sağlar.
Farklı gezinme türleri, performans metriklerinde farklılıklara neden olur. Bu nedenle, sitenizin performansına bakarken bu farklı türlerin göreceli sıklığını anlamak yararlıdır. Örneğin, bir gezinme geri ileri (bfcache) kullandığında genellikle anında gezinme gerçekleşir. Bu durum, çok küçük LCP ve FCP metriklerine ve düşük CLS ve INP metriklerine yansır.
Gezinme türü dökümünü paylaşarak site sahiplerinin sitelerinde kullanılan gezinme türleri hakkında daha fazla bilgi sahibi olmasını ve önbelleğe alma ayarlarını, bfcache engelleyicilerini ve ön oluşturmayı inceleyerek daha hızlı türlerden bazılarını kullanmaya başlamasını umuyoruz.
navigation_types
metriği, günlük CrUX API, CrUX Geçmişi API (ilk olarak 3 haftalık geçmiş mevcuttur ve önümüzdeki 6 ay içinde tam kapsama için haftalık olarak artar), en son CrUX BigQuery veri kümesi ve CrUX Kontrol Paneli'nde kullanılabilir. Geçmişe sahip olmak, site sahiplerinin zaman içinde gezinme türü kullanımındaki değişiklikleri görüntüleyebilmelerini de sağlar. Bu sayede iyileştirmelerin (ör. bfcache engellemesinin kaldırılması) izlenmesi sağlanabilir. Ayrıca, sitelerinde herhangi bir değişiklik yapılmamış olsa bile metriklerdeki değişiklikleri açıklamaya yardımcı olabilir.
CrUX'te hangi gezinme türleri kullanılabilir?
CrUX, aşağıdaki tabloda aşağıdaki gezinme türlerini ayırt eder:
Tür | Açıklama |
---|---|
navigate |
Diğer kategorilerin hiçbirine uymayan bir sayfa yükleme. |
navigate_cache |
Ana kaynağın (ana HTML dokümanı) HTTP önbelleğinden sunulduğu bir sayfa yükleme. Siteler genellikle alt kaynaklar için önbelleğe alma özelliğinden yararlanır ancak ana HTML belgesi genellikle çok daha az önbelleğe alınır. Bu mümkün olduğunda, yerel olarak ve bir CDN'de önbelleğe alınabilmesi nedeniyle belirgin performans iyileştirmeleri elde edilebilir. |
reload |
Kullanıcı, yeniden yükle düğmesine basarak, adres çubuğuna Enter tuşuna basarak veya bir sekmeyi kapatma işlemini geri alarak sayfayı yeniden yükledi. Sayfanın yeniden yüklenmesi genellikle ana sayfanın değişip değişmediğinin kontrol edilmesi için sunucuya yeniden doğrulama yapılmasıyla sonuçlanır. Sayfa yeniden yüklemelerinin yüksek bir yüzdesi, kullanıcıların rahatsız olduğunu gösterebilir. |
restore |
Sayfa, tarayıcı yeniden başlatıldıktan veya bellek nedeniyle kaldırılan bir sekme yeniden yüklendikten sonra görüntülendi. Android'deki Chrome'da bu değerler reload olarak raporlanır. |
back_forward |
Geçmişte gezinme, yani sayfa yakın zamanda görüldü ve sayfaya döndürüldü. Doğru önbelleğe alma ile bu deneyimler makul derecede hızlı olur ancak yine de sayfanın işlenmesi ve JavaScript'in yürütülmesi gerekir. Bu iki işlem de bfcache tarafından önlenir. |
back_forward_cache |
Bfcache'den sunulan bir geçmişte gezinme. bfcache'ten yararlanmak için sayfalarınızı optimize etmek daha hızlı deneyimler elde etmenizi sağlar. Siteler, bu kategorideki gezinme yüzdesini artırmak için bfcache engelleyicilerini kaldırmaya çalışmalıdır. |
prerender |
Sayfa önceden oluşturuldu. Bu durum, bfcache'e benzer şekilde sayfanın neredeyse anında yüklenmesine neden olabilir. |
Bazı durumlarda, sayfa yükleme işlemi birden fazla gezinme türünün bir kombinasyonu olabilir. Bu durumda CrUX, ilk eşleşmeyi önceki tablonun tersten sıralayarak (alttan yukarıya) raporlar.
CrUX'taki gezinme türlerinin sınırlamaları
CrUX herkese açık bir veri kümesi olduğundan raporlama ayrıntı düzeyi sınırlıdır. Birçok kaynak ve URL için uygun trafik yetersiz olduğundan navigation_types
metriği kullanılamaz. Daha fazla bilgi için CrUX metodolojisini inceleyin.
Ayrıca CrUX, gezinme türüne göre diğer metriklerin dökümünü sunamaz. Bu durum, CrUX'te kullanılabilen kaynak ve URL'lerin sayısını daha da azaltabilir.
Sitelerin, trafiği gezinme türleri gibi ölçütlere göre segmentlere ayırabilmek için kendi Gerçek Kullanıcı İzleme (RUM) çözümlerini uygulamasını öneririz. Bu çözümlerde, raporlanan türlere ve hangi sayfa görüntülemelerinin dahil edildiğine bağlı olarak gezinme türlerinde farklılıklar görebilirsiniz. CrUX verileri neden RUM verilerimden farklı? başlıklı makaleyi inceleyin.
RUM, belirli performans sorunları hakkında daha ayrıntılı bilgi de sağlayabilir. Örneğin, CrUX, bfcache uygunluğunu iyileştirmenin faydalı olacağını belirtebilirken bfcache notRestoredReasons API, belirli bir sayfa yükünün neden bfcache'ten yayınlanamadığını tam olarak bildirebilir.
CrUX API'deki gezinme türleri
API'deki gezinme türlerini görmek için isteğe navigation_types
metriğini ekleyin veya tüm metriklerin dahil edilmesi için bir metrik ayarlamayınız:
export API_KEY="[YOUR_API_KEY]"
curl "https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=$API_KEY" \
--header 'Content-Type: application/json' \
--data '{"origin": "https://example.com", metrics: ["navigation_types"]}'
İstek biçimi, API anahtarınızı nasıl edineceğinizle ilgili açıklama ve API kılavuzu da dahil olmak üzere API dokümanlarında daha ayrıntılı olarak açıklanmıştır. Bu işlem, aşağıdaki gibi bir nesne döndürür:
{
"record": {
"key": { "origin": "https://example.com" },
"metrics": {
"navigation_types": {
"fractions": {
"navigate": 0.5335,
"navigate_cache": 0.2646,
"reload": 0.0885,
"restore": 0.0023,
"back_forward": 0.0403,
"back_forward_cache": 0.0677,
"prerender": 0.0031
}
}
},
"collectionPeriod": {
"firstDate": { "year": 2024, "month": 3, "day": 6 },
"lastDate": { "year": 2024, "month": 4, "day": 2 }
}
}
}
Yanıtta CrUX, navigation_types
metriğini her gezinme türü için sayfa yüklemelerinin kesirli değerlerini içeren bir nesne olarak raporlar. Her kesir, belirli bir anahtar için 0.0
(sayfa yüklemelerinin% 0'ını belirtir) ile 1.0
(sayfa yüklemelerinin% 100'ünü belirtir) arasında bir değerdir.
Bu yanıtta, 6 Mart 2024'te başlayan ve 2 Nisan 2024'e kadar devam eden toplama döneminde gezinmelerin (sayfa yüklemelerinin) %6, 77'sinin tarayıcının bfcache'inden yayınlandığını görebilirsiniz. Benzer şekilde, diğer kesirlerden bazıları da sayfa yükleme optimizasyonlarına yönelik fırsatların belirlenmesine yardımcı olabilir. Belirli bir anahtar için (URL veya kaynak ile form faktörünün kombinasyonu dahil) navigation_types
kesirli sayılarının toplamının yaklaşık 1,0 olduğunu unutmayın.
CrUX History API'deki gezinme türleri
CrUX Geçmişi API, gezinme türleri için kesir başına 25'e kadar veri noktası içeren bir zaman serisi sağlayabilir. Bu sayede, bu kesirleri zaman içinde görselleştirebilirsiniz. İsteğinizi CrUX API'den CrUX History API'ye dönüştürmek için bu isteği queryRecord
yerine queryHistoryRecord
uç noktasında çalıştırın. Örneğin, CrUX Geçmişi Colab'ımız navigation_types
metriğini yığılmış çubuklar olarak gösterir:
Önceki ekran görüntüsünde geçmiş yalnızca 3 toplama dönemi (her biri 7 gün arayla 28 gün) için mevcuttur. Bu tablo tamamen doldurulduğunda 25 toplama döneminin tümü bu tabloda yer alır. Bu geçmişin görselleştirilmesi, optimizasyonların etkili olduğunu veya geri döndüğünü teyit etmeyi mümkün kılar. Bu, özellikle HTTP önbellek yapılandırması, bir sayfayı bfcache ve önceden işleme için optimize etme için geçerlidir.
CrUX BigQuery'deki gezinme türleri
CrUX BigQuery tabloları artık her türden bir navigation_type
kaydı içerirken özet materyalize görünümleri her tür için bir tane olmak üzere birden fazla navigation_types_*
sütunu içerir.
Ayrıntılı tablolar
CrUX BigQuery'deki ayrıntılı tablo şeması, web performansı metrikleri için ayrıntılı histogramler sağlar. Bu histogramler, bu örnek analizde belirli gezinme türlerinin anında veya iyi yükleme performansıyla nasıl ilişkilendirilebileceğini göstermemize olanak tanır.
Örnek olarak, back_forward_cache
kesrinin ve sayfaların anında yüklenme sıklığı (LCP <= 200 ms olarak tanımlanan instant_lcp_density
) ve iyi LCP'nin ne sıklıkta görüldüğü (LCP <= 2500 ms olarak tanımlanan good_lcp_density
) ile olan ilişkisine baktık. back_forward_cache
ile instant_lcp_density
(beta=0,87) arasında (aşağıdaki şemada gösterilmektedir) güçlü bir istatistiksel korelasyon ve back_forward_cache
ile good_lcp_density
(beta=0,29) arasında orta düzeyde bir korelasyon gözlemledik.
Bu analiz için Colab'in yorumları olumludur. Burada, yalnızca CrUX BigQuery'deki ayrıntılı tablolardan en popüler 10.000 kaynak için Navigation_types kesirlerini çıkaran sorgu ele alınmaktadır:
all.202403
tablosuna buradan erişiriz (FROM
yan tümcesine bakın) vephone
içinform_factor
filtresini filtreleriz ve en popüler 10.000 kaynak için popülarlik sıralaması <= 10.000 değerine sahip kaynakları seçeriz (WHERE
ibaresine bakın).- BigQuery'de
navigation_types
metriğini sorgularken, yalnızca kaynak başına toplandığından (kaynak, form faktörü) kombinasyonu başına değil,navigation_types
kesirlerinin toplamına bölmeniz gerekir. - Tüm kaynaklarda
navigation_types
bulunmaz. Bu nedenleSAVE_DIVIDE
kullanmak iyi bir uygulamadır.
WITH tmp AS (
SELECT
origin,
SUM(navigation_types.navigate.fraction) AS navigate,
SUM(navigation_types.navigate_cache.fraction) AS navigate_cache,
SUM(navigation_types.reload.fraction) AS reload,
SUM(navigation_types.restore AS restore,
SUM(navigation_types.back_forward.fraction) AS back_forward,
SUM(navigation_types.back_forward_cache.fraction) AS back_forward_cache,
SUM(navigation_types.prerender.fraction) AS prerender,
SUM(navigation_types.navigate.fraction
+ navigation_types.navigate_cache.fraction
+ navigation_types.reload.fraction
+ navigation_types.restore.fraction
+ navigation_types.back_forward.fraction
+ navigation_types.back_forward_cache.fraction
+ navigation_types.prerender.fraction) AS total
FROM
`chrome-ux-report.all.202403`
WHERE
experimental.popularity.rank <= 10000 AND
form_factor.name = 'phone'
GROUP BY
origin
)
SELECT
origin,
ROUND(SAFE_DIVIDE(navigate, total), 4) AS navigate,
ROUND(SAFE_DIVIDE(navigate_cache, total), 4) AS navigate_cache,
ROUND(SAFE_DIVIDE(reload, total), 4) AS reload,
ROUND(SAFE_DIVIDE(restore, total), 4) AS restore,
ROUND(SAFE_DIVIDE(back_forward, total), 4) AS back_forward,
ROUND(SAFE_DIVIDE(back_forward_cache, total), 4) AS back_forward_cache,
ROUND(SAFE_DIVIDE(prerender, total), 4) AS prerender
FROM
tmp
Gerçekleştirilmiş tablolar
Özet yeterli olduğunda, bunun yerine gerçekleştirilmiş tabloları sorgulamak genellikle daha uygun (ve daha ucuz) olur. Örneğin, aşağıdaki sorgu chrome-ux-report.materialized.device_summary
tablosundaki mevcut navigation_types
verilerini ayıklıyor. Bu tabloda anahtar olarak ay, kaynak ve cihaz türü kullanılır.
SELECT
yyyymm,
device,
navigation_types_navigate,
navigation_types_navigate_cache,
navigation_types_reload,
navigation_types_restore,
navigation_types_back_forward,
navigation_types_back_forward_cache,
navigation_types_prerender
FROM
chrome-ux-report.materialized.device_summary
WHERE
origin = 'https://example.com' AND
navigation_types_navigate IS NOT NULL
ORDER BY
yyyymm DESC,
device DESC
Bu kesirler satır başına 1,0'a eşit olmaz.Bu nedenle, her kesri sorgunun yorumlanacağı sonuçların toplamına bölmeniz gerekir.
Bunun nedeni, chrome-ux-report.materialized.device_summary
içindeki navigation_type
kesirli sayılarının (ör.histogram yoğunlukları) tarih başına kaynak ve cihaz yerine kaynak başına 1,0'a eşit olmasıdır. Bu, gezinme türü dağılımının cihazlar arasında gösterilmesini sağlar:
SELECT
device,
navigation_types_back_forward
FROM
chrome-ux-report.materialized.device_summary
WHERE
origin = 'https://www.google.com' AND
yyyymm = 202403
device |
navigation_types_back_forward |
---|---|
phone |
0.0663 |
desktop |
0.0179 |
tablet |
0.0009 |
Bu sorgu sonucundaki kesirler, https://www.google.com
kaynağı için sayfa yüklemelerinin yüzdesini yansıtır: Bu sayfa yüklemelerinin% 6,63'ü telefonda back_forward
gezinme türüne, %1,79'u masaüstünde ve% 0,09'u tablette sahipti.
phone
'daki back_forward
yüzdesinin önemli ölçüde daha yüksek olması, bu sayfa yüklemelerini bfcache'ten sunulabilecek şekilde optimize etmeyi deneyebileceğimizi gösteriyor.
Ancak sayfa yüklemelerinin ne kadarının bfcache tarafından sunulduğu da (yani bfcache isabet oranı) önemlidir. Aşağıdaki sorgu, telefon ve masaüstü için% 60'ın üzerinde isabet oranına sahip olması nedeniyle bu kaynağın zaten iyi optimize edilmiş olabileceğini gösteriyor.
SELECT
device,
navigation_types_back_forward_cache /
(navigation_types_back_forward + navigation_types_back_forward_cache)
AS back_forward_cache_hit_rate
FROM
chrome-ux-report.materialized.device_summary
WHERE
origin = 'https://www.google.com' AND
yyyymm = 202403
device |
back_forward_cache_hit_rate |
---|---|
phone |
0.6239 |
desktop |
0.6805 |
tablet |
0.7353 |
Bu nedenle, telefonlardaki back_forward
oranının yüksek olmasının nedeni, önbelleğe alma oranının azalması değil, daha çok kullanıcıların telefonlarda nasıl ileri ve geri gittiklerine dair bir yansımasıdır.
CrUX Kontrol Paneli'ndeki gezinme türleri
Gezinme türlerini görmenin en kolay yolu CrUX kontrol panelinden geçmektir. Bu bağlantıdan bir kaynak için erişilebilir. Aşağıdaki ekran görüntüsünde de görebileceğiniz gibi, başlangıçta yalnızca bir aylık veri mevcuttur. Ancak zaman içinde geçmiş doldurulur ve türlerdeki değişiklikleri ayda bir görebilirsiniz.
Gördüğünüz gibi, gösterge tablosunun bu sayfasının üst kısmında, turistik yerlerin optimize etmeye çalışması gereken daha hızlı gezinme türlerini vurguladık.
Sonuç
CrUX'taki gezinme türü dökümlerinin faydalı olacağını ve sitenizin performansını anlamanıza ve optimize etmenize yardımcı olacağını umuyoruz. HTTP önbelleğe alma, bfcache ve ön oluşturma işlemlerinin verimli bir şekilde kullanılmasıyla siteler, sunucuya geri dönmeyi gerektiren sayfa yükleme işlemlerine kıyasla çok daha hızlı sayfa yükleme elde edebilir.
Ayrıca, kullanıcıların verileri istedikleri gibi kullanabilmesi ve CrUX API'lerinde sunulan veriler için URL'ye göre tür dökümlerini görebilmesi amacıyla verileri çeşitli CrUX erişim noktalarında kullanıma sunmaktan memnuniyet duyuyoruz.
CrUX'a eklenen bu özellik hakkındaki geri bildirimlerinizi sosyal medyada veya CrUX tartışma grubunda paylaşabilirsiniz.