{"id":10366,"date":"2025-08-07T04:36:05","date_gmt":"2025-08-07T04:36:05","guid":{"rendered":"https:\/\/affinite.io\/cs\/?p=10366"},"modified":"2025-08-07T05:05:01","modified_gmt":"2025-08-07T05:05:01","slug":"bfcache-ve-wordpressu-instant-navigace-a-plugin-no-cache-bfcache","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/bfcache-ve-wordpressu-instant-navigace-a-plugin-no-cache-bfcache\/","title":{"rendered":"BFCache ve WordPressu: Instant navigace a plugin No-cache BFCache"},"content":{"rendered":"\n
Back\/Forward Cache (bfcache) je pokro\u010dil\u00e1 funkce modern\u00edch webov\u00fdch prohl\u00ed\u017ee\u010d\u016f, kter\u00e1 dramaticky zrychluje navigaci mezi str\u00e1nkami. Na rozd\u00edl od tradi\u010dn\u00ed HTTP cache, kter\u00e1 ukl\u00e1d\u00e1 pouze odpov\u011bdi na p\u0159edchoz\u00ed po\u017eadavky, bfcache uchov\u00e1v\u00e1 kompletn\u00ed sn\u00edmek cel\u00e9 str\u00e1nky v pam\u011bti.<\/p>\n\n\n\n
Kdy\u017e u\u017eivatel opust\u00ed str\u00e1nku, prohl\u00ed\u017ee\u010d neuvoln\u00ed jej\u00ed zdroje, ale m\u00edsto toho:<\/p>\n\n\n\n
P\u0159i n\u00e1vratu na str\u00e1nku pomoc\u00ed tla\u010d\u00edtek zp\u011bt\/vp\u0159ed prohl\u00ed\u017ee\u010d jednodu\u0161e obnov\u00ed ulo\u017een\u00fd sn\u00edmek – \u017e\u00e1dn\u00e9 s\u00ed\u0165ov\u00e9 po\u017eadavky, \u017e\u00e1dn\u00e9 znovu na\u010d\u00edt\u00e1n\u00ed, \u017e\u00e1dn\u00e9 op\u011btovn\u00e9 spou\u0161t\u011bn\u00ed skript\u016f.<\/p>\n\n\n\n
BFCache p\u0159in\u00e1\u0161\u00ed v\u00fdrazn\u00e9 zlep\u0161en\u00ed u\u017eivatelsk\u00e9 zku\u0161enosti:<\/p>\n\n\n\n
Rychlost<\/strong>: Navigace je prakticky okam\u017eit\u00e1 – srovnateln\u00e1 s p\u0159ep\u00edn\u00e1n\u00edm mezi otev\u0159en\u00fdmi z\u00e1lo\u017ekami prohl\u00ed\u017ee\u010de.<\/p>\n\n\n\n Zachov\u00e1n\u00ed stavu<\/strong>: V\u0161echny formul\u00e1\u0159e, pozice scrollov\u00e1n\u00ed a JavaScript stavy z\u016fst\u00e1vaj\u00ed zachov\u00e1ny. U\u017eivatel se vrac\u00ed p\u0159esn\u011b tam, kde skon\u010dil.<\/p>\n\n\n\n \u00daspora dat<\/strong>: Eliminuje zbyte\u010dn\u00e9 s\u00ed\u0165ov\u00e9 po\u017eadavky, co\u017e je zejm\u00e9na d\u016fle\u017eit\u00e9 na mobiln\u00edch za\u0159\u00edzen\u00edch s omezen\u00fdm datov\u00fdm tarifem.<\/p>\n\n\n\n Podle statistik Chrome p\u0159edstavuj\u00ed navigace zp\u011bt\/vp\u0159ed a\u017e 10% v\u0161ech navigac\u00ed na desktopu a 20% na mobiln\u00edch za\u0159\u00edzen\u00edch. S aktivn\u00edm bfcache by se mohly eliminovat miliardy zbyte\u010dn\u00fdch po\u017eadavk\u016f denn\u011b.<\/p>\n\n\n\n BFCache je podporov\u00e1n ve v\u0161ech hlavn\u00edch modern\u00edch prohl\u00ed\u017ee\u010d\u00edch:<\/p>\n\n\n\n Na rozd\u00edl od nov\u011bj\u0161\u00edch technologi\u00ed jako Speculation Rules API (podporov\u00e1no pouze v Chromium), m\u00e1 bfcache \u0161irokou podporu nap\u0159\u00ed\u010d v\u0161emi prohl\u00ed\u017ee\u010di.<\/p>\n\n\n\n Pokud prohl\u00ed\u017ee\u010d nepodporuje bfcache (velmi vz\u00e1cn\u00e9 u modern\u00edch prohl\u00ed\u017ee\u010d\u016f), navigace zp\u011bt\/vp\u0159ed se chov\u00e1 tradi\u010dn\u00edm zp\u016fsobem:<\/p>\n\n\n\n WordPress ve v\u00fdchoz\u00edm nastaven\u00ed blokuje bfcache pro p\u0159ihl\u00e1\u0161en\u00e9 u\u017eivatele odes\u00edl\u00e1n\u00edm HTTP hlavi\u010dky:<\/p>\n\n\n\n Direktiva Toto omezen\u00ed bylo zavedeno kv\u016fli ochran\u011b soukrom\u00ed v n\u00e1sleduj\u00edc\u00edm sc\u00e9n\u00e1\u0159i:<\/p>\n\n\n\n Toto bezpe\u010dnostn\u00ed opat\u0159en\u00ed m\u00e1 v\u00fdznamn\u00fd negativn\u00ed dopad na v\u00fdkon:<\/p>\n\n\n\n Plugin No-cache BFCache elegantn\u011b \u0159e\u0161\u00ed konflikt mezi bezpe\u010dnost\u00ed a v\u00fdkonem pomoc\u00ed n\u011bkolika mechanism\u016f:<\/p>\n\n\n\n Plugin odstran\u00ed direktivu P\u0159i p\u0159ihl\u00e1\u0161en\u00ed:<\/strong><\/p>\n\n\n\n Na ka\u017ed\u00e9 autentizovan\u00e9 str\u00e1nce:<\/strong><\/p>\n\n\n\n P\u0159i n\u00e1vratu na str\u00e1nku z cache:<\/strong><\/p>\n\n\n\n Dramatick\u00e9 zrychlen\u00ed navigace:<\/strong><\/p>\n\n\n\n Lep\u0161\u00ed u\u017eivatelsk\u00e1 zku\u0161enost:<\/strong><\/p>\n\n\n\n Technick\u00e9 v\u00fdhody:<\/strong><\/p>\n\n\n\n I p\u0159es pokro\u010dil\u00e9 zabezpe\u010den\u00ed pluginu existuj\u00ed teoretick\u00e1 rizika:<\/p>\n\n\n\n \u010casov\u00e9 okno zranitelnosti:<\/strong><\/p>\n\n\n\n Z\u00e1vislost na JavaScriptu:<\/strong><\/p>\n\n\n\n V\u00edcen\u00e1sobn\u00e1 ochrana:<\/strong><\/p>\n\n\n\n U\u017eivatelsk\u00e9 rozhodnut\u00ed:<\/strong><\/p>\n\n\n\n M\u011b\u0159iteln\u00e9 zlep\u0161en\u00ed:<\/strong><\/p>\n\n\n\n \u0160ir\u0161\u00ed dopad:<\/strong><\/p>\n\n\n\n Pro administr\u00e1tory:<\/strong><\/p>\n\n\n\n Pro koncov\u00e9 u\u017eivatele:<\/strong><\/p>\n\n\n\n Plugin je navr\u017een jako p\u0159\u00edprava pro za\u010dlen\u011bn\u00ed do WordPress core a je kompatibiln\u00ed s:<\/p>\n\n\n\n Plugin No-cache BFCache p\u0159edstavuje v\u00fdznamn\u00fd krok vp\u0159ed v optimalizaci v\u00fdkonu WordPressu. Elegantn\u011b \u0159e\u0161\u00ed dlouhodob\u00fd konflikt mezi bezpe\u010dnost\u00ed a rychlost\u00ed, p\u0159i\u010dem\u017e poskytuje u\u017eivatel\u016fm volbu mezi maxim\u00e1ln\u00ed ochranou a optim\u00e1ln\u00edm v\u00fdkonem.<\/p>\n\n\n\n Pro v\u011bt\u0161inu WordPress web\u016f p\u0159edstavuje aktivace tohoto pluginu v\u00fdrazn\u00e9 zlep\u0161en\u00ed u\u017eivatelsk\u00e9 zku\u0161enosti s minim\u00e1ln\u00edmi bezpe\u010dnostn\u00edmi riziky. Zejm\u00e9na pro weby s autentizovan\u00fdmi u\u017eivateli, e-commerce a \u010dlensk\u00e9 str\u00e1nky m\u016f\u017ee p\u0159in\u00e9st dramatick\u00e9 zrychlen\u00ed navigace.<\/p>\n\n\n\n Vzhledem k pl\u00e1novan\u00e9mu za\u010dlen\u011bn\u00ed do WordPress core je plugin tak\u00e9 investic\u00ed do budoucnosti – p\u0159ipravuje web na modern\u011bj\u0161\u00ed a rychlej\u0161\u00ed standardy webov\u00e9 navigace.<\/p>\n","protected":false},"excerpt":{"rendered":" Co je BFCache a jak funguje Back\/Forward Cache (bfcache) je pokro\u010dil\u00e1 funkce modern\u00edch webov\u00fdch prohl\u00ed\u017ee\u010d\u016f, kter\u00e1 dramaticky zrychluje navigaci mezi str\u00e1nkami. Na rozd\u00edl od tradi\u010dn\u00ed HTTP cache, kter\u00e1 ukl\u00e1d\u00e1 pouze odpov\u011bdi na p\u0159edchoz\u00ed po\u017eadavky, bfcache uchov\u00e1v\u00e1 kompletn\u00ed sn\u00edmek cel\u00e9 str\u00e1nky v pam\u011bti. Princip fungov\u00e1n\u00ed Kdy\u017e u\u017eivatel opust\u00ed str\u00e1nku, prohl\u00ed\u017ee\u010d neuvoln\u00ed jej\u00ed zdroje, ale m\u00edsto toho:<\/p>\n","protected":false},"author":1,"featured_media":10367,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[30,54,31],"tags":[],"class_list":["post-10366","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","category-rychlost","category-wordpress-pluginy"],"uagb_featured_image_src":{"full":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache.png",1544,500,false],"thumbnail":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache-150x150.png",150,150,true],"medium":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache-300x97.png",300,97,true],"medium_large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache-768x249.png",640,208,true],"large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache-1024x332.png",640,208,true],"1536x1536":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache-1536x497.png",1536,497,true],"2048x2048":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache.png",1544,500,false],"archive-list":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2025\/08\/nobfcache-400x265.png",400,265,true]},"uagb_author_info":{"display_name":"Affinite","author_link":"https:\/\/affinite.io\/cs\/author\/affinite\/"},"uagb_comment_info":0,"uagb_excerpt":"Co je BFCache a jak funguje Back\/Forward Cache (bfcache) je pokro\u010dil\u00e1 funkce modern\u00edch webov\u00fdch prohl\u00ed\u017ee\u010d\u016f, kter\u00e1 dramaticky zrychluje navigaci mezi str\u00e1nkami. Na rozd\u00edl od tradi\u010dn\u00ed HTTP cache, kter\u00e1 ukl\u00e1d\u00e1 pouze odpov\u011bdi na p\u0159edchoz\u00ed po\u017eadavky, bfcache uchov\u00e1v\u00e1 kompletn\u00ed sn\u00edmek cel\u00e9 str\u00e1nky v pam\u011bti. Princip fungov\u00e1n\u00ed Kdy\u017e u\u017eivatel opust\u00ed str\u00e1nku, prohl\u00ed\u017ee\u010d neuvoln\u00ed jej\u00ed zdroje, ale m\u00edsto toho:","_links":{"self":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/10366"}],"collection":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/comments?post=10366"}],"version-history":[{"count":2,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/10366\/revisions"}],"predecessor-version":[{"id":10369,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/10366\/revisions\/10369"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media\/10367"}],"wp:attachment":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media?parent=10366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/categories?post=10366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/tags?post=10366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}Podpora v prohl\u00ed\u017ee\u010d\u00edch<\/h2>\n\n\n\n
Sou\u010dasn\u00e1 podpora<\/h3>\n\n\n\n
\n
Co se stane bez podpory<\/h3>\n\n\n\n
\n
WordPress a probl\u00e9m s no-store<\/h2>\n\n\n\n
V\u00fdchoz\u00ed chov\u00e1n\u00ed WordPressu<\/h3>\n\n\n\n
Cache-Control: no-cache, no-store, must-revalidate, private<\/code><\/pre>\n\n\n\n
no-store<\/code> explicitn\u011b zakazuje ukl\u00e1d\u00e1n\u00ed str\u00e1nky do jak\u00e9koliv cache, v\u010detn\u011b bfcache.<\/p>\n\n\n\n
D\u016fvody bezpe\u010dnostn\u00edho opat\u0159en\u00ed<\/h3>\n\n\n\n
\n
Dopad na v\u00fdkon<\/h3>\n\n\n\n
\n
Plugin No-cache BFCache: \u0158e\u0161en\u00ed probl\u00e9mu<\/h2>\n\n\n\n
Jak plugin funguje<\/h3>\n\n\n\n
1. Podm\u00edn\u011bn\u00e9 odstran\u011bn\u00ed no-store<\/h4>\n\n\n\n
no-store<\/code> z HTTP hlavi\u010dek, ale pouze za t\u011bchto podm\u00ednek:<\/p>\n\n\n\n
\n
private<\/code> direktivu pro ochranu p\u0159ed proxy cache<\/li>\n<\/ul>\n\n\n\n
2. Session token syst\u00e9m<\/h4>\n\n\n\n
\n
wordpress_bfcache_session_{COOKIEHASH}<\/code><\/li>\n\n\n\n
\n
3. Automatick\u00e1 invalidace<\/h4>\n\n\n\n
\n
pageshow<\/code> event pro bfcache a b\u011b\u017en\u00e9 na\u010d\u00edt\u00e1n\u00ed pro HTTP cache<\/li>\n<\/ul>\n\n\n\n
Pro\u010d plugin pou\u017e\u00edt<\/h3>\n\n\n\n
\n
\n
\n
Bezpe\u010dnostn\u00ed aspekty<\/h2>\n\n\n\n
Z\u016fst\u00e1vaj\u00edc\u00ed rizika<\/h3>\n\n\n\n
\n
\n
no-store<\/code> pro u\u017eivatele bez JS<\/li>\n<\/ul>\n\n\n\n
Bezpe\u010dnostn\u00ed opat\u0159en\u00ed pluginu<\/h3>\n\n\n\n
\n
private<\/code> direktivy<\/li>\n\n\n\n
no-cache<\/code>,
max-age=0<\/code>,
must-revalidate<\/code>)<\/li>\n<\/ul>\n\n\n\n
\n
V\u00fdhody pou\u017eit\u00ed pluginu<\/h2>\n\n\n\n
V\u00fdkonnostn\u00ed p\u0159\u00ednosy<\/h3>\n\n\n\n
\n
\n
Praktick\u00e9 v\u00fdhody<\/h3>\n\n\n\n
\n
\n
Kompatibilita<\/h3>\n\n\n\n
\n
Z\u00e1v\u011br<\/h2>\n\n\n\n