Seo

Fungsi kanggo Taktik Vitals Web Inti karo Cloudflare's HTMLRewriter

Pandhuan kanggo Pengujian A/B kanggo Vitals Web Inti nerangake sawetara langkah cilik kanthi rong layanan lan ekstensi browser kanggo nulis tes kanggo taktik kode frontend. Telung puluh taun kepungkur, kita bakal nyalin sumber mentah kaca kanggo mbukak operasi temokake lan ngganti nganti bisa ngatur faksimili kaca sing dilebokake ing folder sing aktif web kanggo nduduhake rekomendasi sing padha.

Awake dhewe ora usah nglakoni maneh.

Nyetel proxy reverse lan piranti lunak nulis kanggo nindakake SEO rong puluh taun kepungkur diwatesi kanggo sekumpulan perusahaan cilik sing mbangun lan dadi tuan rumah infrastruktur kasebut. Cloudflare saiki nyedhiyakake solusi turnkey. Sampeyan bisa tangi lan mbukak nggunakake akun gratis. Kanggo ngganti kode frontend, gunakake Cloudflare HTMLRewriter() JavaScript API.

Kode kasebut relatif gampang dingerteni.

Kanthi inti Web Vitals, iku immediacy, kabutuhan wikan lan cepet bisa kanggo siklus liwat macem-macem tes sing wekasanipun nuduhake nilai lan tenan kesengsem. Platform dhasar kasedhiya kanggo sampeyan liwat langkah-langkah sing digarisake ing pandhuan kita. Kita bakal nulis fungsi kanggo nggawe owah-owahan umum supaya sampeyan bisa langsung nyoba taktik nyata.

HTMLRewriter()

Yen sampeyan wis ngetutake, sampeyan bisa uga ngerti skrip kita menehi pilihan kanggo preload unsur sing bisa sampeyan nemtokake ing parameter panyuwunan kanggo LCP. We bali wangun nalika Nilai wis ilang, mung kanggo nggawe iku gampang kanggo nambah referensi. Ana uga placeholder kanggo soko disebut wigati, sing bakal kita tindakake uga. Sing penting ngerti apa sing bakal ditindakake.

The HTMLRewriter() API menehi kita kemampuan kanggo nggunakake jQuery-gaya unsur pamilih kanggo masang unsur HTML ing sumber kaca mentahan kanggo mbukak JavaScript saka foothold sing. Sampeyan bakal bisa ngowahi unsur, kabeh klompok unsur utawa malah dokumen dhasar kanthi cara sing kuat. Sampeyan bisa ngowahi judhul kaca, contone. Ing produksi, suntingan sampeyan dadi judhul lan apa sing bakal diindeks ing Google lan Bing.

Siji komplikasi sing bakal sampeyan temoni yaiku sampeyan mung bisa nyunting sumber mentah, dudu Model Obyek Dokumen (DOM) sing terhidrasi. Salah sawijining cara cepet kanggo ndeleng sumber mentah yaiku kanthi fungsi tampilan sumber sing dibangun ing browser. Kanthi Firefox, sumber tampilan nyorot kesalahan validasi kanthi warna abang, umpamane. Malah nalika browser "ndandani" HTML rusak, iki biasane bisa didandani karo Worker kita.

Makarya ing DevTools, tab "Sumber" nyedhiyakake akses menyang sumber mentah. Gunakake setelan pilihan kanggo tansah sumber "cantik print", kang bakal format supaya sampeyan bisa mindhai kode kanggo nggoleki optimizations. Tip preferensi liyane yaiku setelan kanggo ngliwati cache nalika DevTools mbukak. Alur kerja iki bakal mbantu sampeyan supaya optimasi sampeyan ora nyebabake kesalahan referensi.

Pamilih unsur

Nalika sampeyan nemokake soko sing pengin didandani HTMLRewriter(), sampeyan kudu nyepetake owah-owahan lan ngisolasi unsur supaya ora ngowahi kode luwih akeh tinimbang sing dikarepake. Gunakake pamilih paling eksklusif, sing bisa gampang banget nalika unsur duwe ID unik. Yen ora, golek tandha crita, kayata referensi menyang lokasi unik ing href or src kawicaksanan.

Sampeyan bakal nemokake kemampuan kanggo nggunakake wildcards lan "mode printah" ekspresi reguler gaya vim sing cocog karo nilai atribut. Sampeyan uga bisa nyedhiyakake luwih saka siji kritéria, sanajan kanthi jeneng atribut sing padha. Gunakake kekuwatan vim kanggo nyempitake pertandhingan menyang unsur tunggal, utawa cocog karo klompok unsur kanthi ekspresi sing luwih jembar. Logika banjur bisa misahake masalah antarane owah-owahan.

Conto sing cocog karo wildcard "fonts.g" unsur pranala prefetch kanggo mbusak sing kanggo: fonts.googleapis.com.

.on(`link[rel="dns-prefetch"][href*="fonts.g"]`, removeEl())

Conto nuduhake loro cocog kanggo href atribut, narrowing file siji antarane akeh.

.on('link[href^="https://example.com/static/version"][href$="/print.css"]', unblockCSS())

Conto pisanan ing ndhuwur nggunakake sing cocog wildcard ngendi senar "fonts.g" bisa katon ing ngendi wae ing href atribut saka unsur link. Iki minangka conto kanggo pertandhingan jembar sing bisa dipasang ing luwih saka siji unsur pranala kanggo tumindak sing cocog, kayata mbusak unsur sing cocog, yen ana.

Conto liya saka ndhuwur nuduhake carane sampeyan bisa milih unsur link tartamtu sing diwiwiti karo senar, lan ends karo senar liyane, nanging kang bisa duwe apa-apa antarane. Iki migunani kanggo milih unsur siji sing minangka bagéan saka sistem mbangun sing bisa uga ana direktori token versi kanggo cache-busting browser sing dijenengi kanthi dinamis.

Link unsur

Unsur link ana macem-macem amarga saka sawetara atribut. Mangkono, padha bisa ngawula sawetara tujuan. Ora bakal bingung karo pranala (kaya ing jangkar), unsur pranala biasane ing ngendi sampeyan miwiti nggoleki strategi kinerja sing cepet. Sawetara unsur pranala pramuat lan prasambung bisa uga bener-bener ngganggu utawa ora perlu.

Sampeyan mung entuk maksimal enem host sing bisa disambungake bebarengan. Strategi pisanan sampeyan yaiku ngoptimalake. Coba njabut kabeh pratelan unsur pranala pitunjuk prioritas lan nyoba asile. Yen wektu salah, banjur tambahake siji-sijine lan coba pengaruhe saben. Sampeyan kudu sinau babagan maca grafik grojogan WebpageTest kanthi jero.

Sawise iki, taktik pindhah menyang loading sumber daya, sing uga kalebu unsur link sing cukup akeh, nanging ora sacara eksklusif. Ing titik iki, kita uga pengin ndeleng skrip. Urutan beban sumber daya bisa nyebabake banget negatif. Testbed kita sampurna kanggo nyoba macem-macem taktik sing dijupuk saka maca grafik grojogan. Tansah laci konsol DevTools mbukak kanggo mriksa kesalahan nalika sampeyan kerja.

Njabut unsur

Mbusak unsur pancen gampang banget. Sawise sampeyan wis milih unsur, utawa klompok mau, kolom sabanjuré ing HTMLRewriter().on() statements ngendi sampeyan nulis blok script. Sampeyan bisa nindakake iki ing panggonan karo kurung kriting. Sampeyan bisa ngrujuk fungsi sing dijenengi. Utawa sampeyan bisa mbangun anyar class Kayata kanggo obyek ditetepake sadurungé, kang ing konteks iki, bisa uga over-engineering.

Nalika sampeyan nemokake conto kode Worker sampeyan bisa ndeleng class initializers. Kabeh sing dibutuhake kanggo mbusak lan unsur yaiku fungsi ing ngisor iki. Apa wae sing ditindakake kanthi obyek kelas sing dijenengi bisa ditindakake kanthi fungsi kosong (obyek) kanthi nggunakake kode sing kurang, kanggo bug sing luwih sithik, kanthi sintaksis sing luwih bisa diwaca lan luwih bisa diwulang. Kita bakal bali maneh class konstruktor nalika kita delve menyang Obyek Awet.

element: (el) => { el.remove(); }

Cekakipun, pemblokiran iki nemtokake variabel "el" ing referensi kanggo conto unsur lan pemblokiran kode nelpon dibangun ing. remove() cara unsur, sing sampeyan bakal nemokake rinci ing dokumentasi sing cocog. Kabeh HTMLRewriter() cara unsur kasedhiya kanggo sampeyan kanggo nggunakake karo kedadean saka cocog unsur. Mbusak unsur minangka salah sawijining sing luwih gampang dingerteni.

Mbukak blokir render sumber daya

Mbukak kunci script unsur luwih gampang tinimbang mbukak blokir sumber stylesheet. Minangka luck, kita duwe atribut boolean kanggo menehi tandha browser yen kita pengin mbukak skrip kanthi ora sinkron utawa nundha kabeh (amarga ana wektu nganggur). Iku becik! Lembar gaya, ing tangan liyane, mbutuhake "peretasan" sethithik supaya bisa diblokir - mbutuhake sawetara Javascript inline.

Intine, kita ngowahi referensi elemen link stylesheet dadi pramuat kanggo mbukak blokir. Nanging sing ngganti sifat unsur link menyang aturan gaya ora bakal diterapake. Preload download sumber daya kanggo nyimpen ing cache lokal, siap yen perlu, nanging iku wae. DevTools ngelingake sampeyan yen sumber daya wis dimuat lan ora digunakake kanthi cepet - nalika sampeyan ngerti sampeyan bisa nyopot!

Preloading banjur nggunakake a onload Atribut kanggo mbukak JavaScript kanggo ngganti maneh saka preload menyang stylesheet yaiku "hack" CSS kanggo mbukak blokir apa wae minangka sumber pamblokiran alami. Nggunakake JavaScript this tembung kunci ngidini sampeyan ngganti properti, kalebu rel atribut (lan onload atribut dhewe). Pola kasebut uga nduweni backfill kanggo sesi non-JavaScript.

Mangkene kita unblockCSS() fungsi kang ngleksanakake strategi nggunakake metode unsur siap-digawe.

const unblockCSS = () => ({
element: (el) => {
el.removeAttribute('media');
el.setAttribute('rel', 'preload');
el.setAttribute('as', 'style');
el.setAttribute('onload', "this.onload=null;this.rel='stylesheet';this.media='all'");
el.after(`

`, { html: true }); }});

Pilih referensi stylesheet unsur link sing diblokir lan nelpon fungsi iki. Iki ngidini browser miwiti ndownload stylesheet kanthi preloading. Sawise dimuat, ing rel atribut bali menyang stylesheet lan aturan CSS langsung ditrapake. Yen masalah gaya kedadeyan sawise owah-owahan iki, siji utawa luwih lembar kudu dimuat ing urutan panjalukan normal.

Fungsi kasebut minangka blok kode sing bisa digunakake maneh. Ganti pilihan unsur sampeyan nggunakake HTMLRewriter() lan nyoba bedane mbukak blokir lembar CSS siji-siji, utawa ing klompok, gumantung saka pendekatan sampeyan. Gunakake taktik kanggo entuk strategi mbukak blokir sakabèhé sabisa. Nanging, tansah elinga goleki masalah amarga owah-owahan sumber daya CSS lan Skrip.

Prioritas skrip

Urutan sing sampeyan muat gaya bisa ngrusak desain. Aturan stylesheet sing ora dikarepke kanthi cepet bakal nimpa aturan sing dimuat luwih alon. Sampeyan uga kudu nonton nalika ngemot skrip kanthi urutan alternatif supaya bisa dievaluasi lan tetep ana ing memori nalika dokumen kasebut dievaluasi. Kesalahan referensi bisa nganti puluhan utawa atusan kesalahan skrip.

Cara paling apik kanggo mriksa masalah yaiku nonton laci konsol lan simulasi sambungan jaringan sing alon. Iki bisa nggedhekake masalah nganti kudu katon ing DevTools. Yen sumber script diproses nggunakake CPU luwih kuat lan mbukak liwat kacepetan modem kabel, utawa luwih cepet, sampeyan bisa kantun kesalahan kritis. Panyuwunan uga diwenehi jarak sing apik.

Punika fungsi kita ngganti, utawa nambah, async lan defer atribut.

const makeAsyncJS = () => ({
element: (el) => {
el.removeAttribute("defer");
el.setAttribute("async", "async");
}
});

const makeDeferJS = () => ({
element: (el) => {
el.removeAttribute("async");
el.setAttribute("defer", "defer");
}
});

Yen skrip asline ora async utawa nundha, ora aman kanggo mbukak removeAttribute() cara unsur kanggo pemblokiran kode liyane bisa digunakake maneh. Sampeyan bisa kanthi aman nglirwakake iki yen sampeyan lagi nggarap proyek siji-mati ing ngendi sampeyan bisa nulis inline iki tinimbang nelpon fungsi sing wis ditetepake sadurunge ing script.

Atribut Alt kanggo SEO

Kaya sing wis kasebut, taktik Pandhuan kanggo A/B Core Web Vitals, kanthi desain, supaya kita duwe Edge Computing sing bisa digunakake kanthi tes lan mlaku kanggo nduduhake konten karo artikel SEO kanggo Pangembang lan acara ing mangsa ngarep. Sajrone acara SMX West taun kepungkur (2021), kita nuduhake nggunakake Cloudflare Workers kanggo situs web, entuk kembang api Mercusuar (nyetak 100 ing kabeh tes).

Ana akeh perkara sing kudu disiapake kanggo entuk kembang api. Siji aspek penting yaiku kabeh gambar kudu valid alt atribut. Tes bisa ndeteksi nalika teks mlebu alt atribut "nondescript," utawa saiki, nanging kosong. Sampeyan butuh tembung sing nggambarake apa sing ana ing gambar sing gegandhengan. Salah siji cara kanggo nindakake iku bisa kanggo parsing jeneng berkas saka file src atribut.

Iki minangka fungsi sing ngekstrak teks saka img src atribut kanggo daya alt teks saka jeneng berkas nganggo tanda hubung.

const img_alt = element.getAttribute('alt');
const img_src = element.getAttribute('src');
if (!img_alt) {
element.setAttribute('alt', img_src.replace('-', ' '));
}

Cekakipun, iki bakal nggoleki kondisi ing gambar sing ora ana alt nilai atribut. Nalika ana kemungkinan src jeneng berkas atribut wis hyphenated, iku bakal ngganti hyphens karo spasi kanggo ngramu apa bisa dadi nilai cocok. Versi iki ora bisa digunakake kanggo mayoritas kasus. Ora ngganti garis miring maju utawa protokol lan domain. Iki mung dadi titik wiwitan.

Napa kita care

Duwe testbed kanggo nyoba macem-macem taktik Optimasi Kinerja Core Web Vitals luar biasa nyengsemaken kanggo pamilik situs. Sampeyan kudu duwe kemampuan iki ing arsenal agensi sampeyan. Rangking Google sing rada mundhak kanthi skor apik bisa diukur lan umume bisa ditindakake kanggo umume situs liwat taktik sing bakal kita bahas lan dituduhake. Tune in kanggo pagelaran langsung 8-9 Maret.

Teknisi SEO wis suwe nyaranake perbaikan kinerja kanggo peringkat mesin telusur. Keuntungan kanggo peringkat ora tau luwih jelas. Google secara harfiah nemtokake metrik lan nerbitake babagan efek kasebut. Kita duwe Cloudflare Workers kanggo ngetrapake obat Edge SEO, kaya sing dituduhake ing kene alt atribut kanggo gambar. Testbed proxy mbalikke kita adhedhasar Cloudflare nyetel panggung kanggo komunikasi sing sugih karo pangembang.

Artikel web

0 komentar
Umpan Balik Inline
Ndeleng kabeh komentar
Bali menyang ndhuwur tombol