Sürdürülebilir Web Tasarımı: Karbon Ayak İzini Ölçmenin İki Yolu
İklim tartışması dijital ürünlere geldiğinde iş çabuk sloganlaşıyor: hafif site, yeşil site. Peki hafifliği neye göre ölçüyoruz ve ölçtüğümüz şeyin emisyonla bağını gerçekten kurabiliyor muyuz? Bir web sayfasının çevresel etkisini rakama dökmenin iki tutarlı yolu var, ikisi de dolaylı.
Doğrudan ölçemediğimiz bir şeyi hedefliyoruz
Bir aracın yüz kilometrede kaç litre yaktığı standart bir ölçüdür, herkes aynı şeyi anlar. Web'de böyle yerleşmiş bir ölçü yok. Bir sayfa açıldığında ortaya çıkan karbondioksit sizin masanızda değil, veri merkezinde, ağ ekipmanında ve elektriğin üretildiği santralde oluşuyor; yani ölçmek istediğiniz şey hiçbir zaman elinizin altında değil. Geriye iki vekil gösterge kalıyor: aktarılan veri miktarı ve o veriyi hareket ettiren elektriğin karbon yoğunluğu.
Veri transferi
Enerji tüketimi araştırmalarda gigabayt başına kilowatt-saat (kWh/GB) üzerinden modelleniyor. Mantık kaba ama işe yarıyor: aktarılan bayt arttıkça veri merkezinde, ağda ve kullanıcının cihazında harcanan enerji de artıyor. Sayfa ağırlığı bu yüzden elimizdeki en dürüst gösterge.
2020'de masaüstü için ortalama sayfa ağırlığı 2 MB'ın biraz altındaydı ve bunun kabaca yarısını görseller oluşturuyordu. Bu oran, çoğu çevreci web tavsiyesinden daha keskin bir sonuç doğuruyor: animasyonları, üçüncü parti scriptleri, CSS kütüphanelerini tümüyle sıfırlasanız bile görsellerin yarısını atmanın etkisine ulaşamazsınız. Sıralama kendiliğinden belli oluyor, önce görseller.
Rakamın büyüklüğünü görmek için gösterim sayısıyla çarpmak yeterli. Ayda 10 bin kez açılan bir sayfada 1 MB'lık tasarruf, ayda yaklaşık 10 GB daha az transfer demek. Aynı 1 MB'ı neredeyse hiç ziyaret edilmeyen bir iç sayfada kazanmanın karşılığı ise sıfıra yakın. Optimizasyona trafik dağılımına bakmadan başlamak, çoğu ekibin en çok zaman kaybettiği yer.
Sayfa ağırlığı bütçesini karbon hesaplayıcı çıktısından daha güvenilir buluyorum. Bütçe kilobayt cinsindendir, derleme adımına konur, aşıldığında build kırılır ve tartışma orada biter. Gram CO2 tahmini ise arkasındaki katsayılar güncellendiğinde siz hiçbir şey yapmadan değişir; ekip de sayının hangi kısmının kendi işi olduğunu bir daha çıkaramaz.
Elektriğin nereden geldiği
Aynı bayt, hangi şebekede taşındığına göre çok farklı emisyon üretiyor. Yenilenebilir ve nükleer üretimde karbon yoğunluğu düşük, kömür ve doğalgazda yüksek. Barındırma tercihi bu yüzden bir performans kararı olduğu kadar bir emisyon kararı.
Peki yeşil enerjiyle çalışan uzak bir veri merkeziyle, fosil ağırlıklı bir şebekede duran ama kullanıcıya yakın bir sunucu arasında hangisi? Barındırma tarafındaki enerjinin büyük kısmı veriyi taşımaya değil sunucuyu çalıştırmaya gidiyor, dolayısıyla şebekenin karışımı mesafeden daha ağır basar. Yakınlığın asıl kazancı gecikme süresinde, o da ayrı bir iyilik ama karbon hanesine yazılmıyor.
Hesaplayıcılar ne söyler, ne söylemez
Website Carbon Calculator gibi araçlar sayfa yüklenirken aktarılan veriyi ölçüp bir CO2 değeri üretiyor, sunucunun yenilenebilir enerji kullanıp kullanmadığını da hesaba katıyor. Sonucu tek bir sayı olarak okumadan önce neyi ölçtüğünü bilmek gerek: bu, önbelleği boş bir ilk ziyaretin ağırlığı. Tekrar ziyaretlerde transferin çoğu önbellekten karşılandığı için gerçek ortalama epeyce daha düşük. Ziyaretçilerinin çoğu geri dönen kullanıcı olan bir sitede aradaki fark birkaç kat olabilir.
Yeşil enerji bilgisi de çoğunlukla ikili bir bayrak, yani sunucu ya yeşil sayılıyor ya sayılmıyor. Bu, hesabın çözünürlüğünü iki basamağa indiriyor ve iki tasarım seçeneğini birbirinden ayırmaya yetmiyor. Araçları sıralamayı görmek için kullanın, mutlak değeri kovalamak için değil.
Karbon bütçesi fikri de aynı yerden besleniyor: bir sayfanın üretebileceği azami CO2'yi baştan sınırlamak. Uygulamada bunu doğrudan kilobayt bütçesine çevirmek daha az tartışma çıkarıyor, çünkü kilobaytı herkes aynı yerden okuyabiliyor.
Fatura ziyaretçinin cihazında da var
Veri transferi tabloyu tamamlamıyor. Ağır CSS ve JavaScript tarayıcıda işlemciyi çalıştırır, o da telefonun pilinden düşer. Safari'nin geliştirici araçlarındaki Energy Impact metriği bunu görmenin en kolay yolu, çünkü ölçtüğü şey sizin makinenizin değil kullanıcının cihazının yaşadığı yük. Sürekli dönen bir arka plan animasyonunun sayfa ağırlığına katkısı birkaç kilobayttır ama cihazda bıraktığı iz o kadarla kalmaz.
Bu iş erişilebilirlik tarafına da bağlanıyor. Eski veya zayıf cihazı olan kullanıcı ağır sayfada yalnızca daha çok enerji harcamıyor, çoğu zaman siteyi hiç kullanamıyor.