From bf262a9674c4ea0b43ab1c3345af93d7b6614f55 Mon Sep 17 00:00:00 2001 From: Fraenkiman Date: Thu, 20 Jun 2024 23:22:05 +0200 Subject: [PATCH] FavIcon plugin fine-tuning In some cases, especially with shared hosts, there is already a favicon.ico file in the HTTP root directory. However, a development document at Googledocs describes that there should only be one icon per HTTP host/website. My observation over several weeks in the Google Searchconsole is that the crawler is irritated if either several favicon.ico files are present in the website (http host) or the crawler is fobbed off with 404. The effect is that no favicon file is displayed in the search results during indexing. A temporary redirection (http_response_code 307) when the plugin is active seems more elegant -> implemented here. When the plugin is active, the user agent and the crawler also receive a message (?v=2) that the HTTP host is equipped with new favicons. In addition, some FlatPress icons have been given a final polish. This is particularly noticeable on mobile devices and search engines, but also when creating a FlatPress link in social media. You can use https://realfavicongenerator.net/favicon_checker for testing. --- fp-plugins/favicon/doc_favicon.txt | 4 +- .../imgs/apple-touch-icon-precomposed.png | Bin 0 -> 5447 bytes ...-icon-180x180.png => apple-touch-icon.png} | Bin fp-plugins/favicon/imgs/browserconfig.xml.php | 12 ++- fp-plugins/favicon/imgs/favicon-16x16.ico | Bin 1150 -> 0 bytes fp-plugins/favicon/imgs/favicon-32x32.ico | Bin 4286 -> 0 bytes fp-plugins/favicon/imgs/favicon-48x48.ico | Bin 9662 -> 0 bytes .../favicon/imgs/site.webmanifest.json.php | 8 +- fp-plugins/favicon/plugin.favicon.php | 95 +++++++++++------- 9 files changed, 74 insertions(+), 45 deletions(-) create mode 100644 fp-plugins/favicon/imgs/apple-touch-icon-precomposed.png rename fp-plugins/favicon/imgs/{apple-touch-icon-180x180.png => apple-touch-icon.png} (100%) delete mode 100644 fp-plugins/favicon/imgs/favicon-16x16.ico delete mode 100644 fp-plugins/favicon/imgs/favicon-32x32.ico delete mode 100644 fp-plugins/favicon/imgs/favicon-48x48.ico diff --git a/fp-plugins/favicon/doc_favicon.txt b/fp-plugins/favicon/doc_favicon.txt index 7d28e936..5bcb1aa5 100644 --- a/fp-plugins/favicon/doc_favicon.txt +++ b/fp-plugins/favicon/doc_favicon.txt @@ -9,7 +9,7 @@ If you want to use your own favicon, please make sure that the favicon is a mult The favicon.ico file should be a multi-layered icon with the sizes 16x16, 32x32 and 48x48. To display the favicon correctly on mobile Android devices, the path in the site.webmanifest.json.php file must refer to the favicon. -The same applies to Windows 10 devices or higher. The path to the matching icons is specified in the browserconfig.xml.php file. +The same applies to Windows 10 devices or higher. The path to the matching icons is specified in the browserconfig.xml.php file. Google Search, for example, only supports one favicon per website, whereby a website is defined by the host name. -If you activate the FavIcon plugin, a request for the favicon in the main directory will be answered with 404. +If you activate the FavIcon plugin, a request for the favicon in the main directory will be answered with 307, temporary redirect. diff --git a/fp-plugins/favicon/imgs/apple-touch-icon-precomposed.png b/fp-plugins/favicon/imgs/apple-touch-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..deb38f9d80fef02cc8bb4a19a99a3f1ca7477049 GIT binary patch literal 5447 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 literal 0 HcmV?d00001 diff --git a/fp-plugins/favicon/imgs/apple-touch-icon-180x180.png b/fp-plugins/favicon/imgs/apple-touch-icon.png similarity index 100% rename from fp-plugins/favicon/imgs/apple-touch-icon-180x180.png rename to fp-plugins/favicon/imgs/apple-touch-icon.png diff --git a/fp-plugins/favicon/imgs/browserconfig.xml.php b/fp-plugins/favicon/imgs/browserconfig.xml.php index 5526d5f2..e99eb7ab 100644 --- a/fp-plugins/favicon/imgs/browserconfig.xml.php +++ b/fp-plugins/favicon/imgs/browserconfig.xml.php @@ -3,15 +3,19 @@ require_once('../../../defaults.php'); $blogBaseUrl = BLOG_BASEURL; + +// Indicates the version of the symbol. Increase it by one when you change the image ($v = '?v=3', $v = '?v=4', etc.). +// The browser will then immediately display the latest version. +$v = '?v=2'; ?> - - - - + + + + #b77b7b diff --git a/fp-plugins/favicon/imgs/favicon-16x16.ico b/fp-plugins/favicon/imgs/favicon-16x16.ico deleted file mode 100644 index 44ad541ccb36cb39d820ff4d53f4f8019a4e10ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcma)6OHUI~6dn?P04vunT^JW^l?Vj`u7nns(oSJvfELO^*zgVuf;?nJbVQJnv{R?h z(y2UJM53`}S_-sAUK+weqlp@S!RI-*PHhY(wmEY<=brC==YHp$N>T}ZOG_nsUXt!z zkfe)}BwZ#W7kTo2TF(7+di1N!P2q9b5mFpv=GxY_tnBO_tn6ivR^0B0;;{eOxLK`&*Xk-&Sbd#_bmk-W_D^B61`Gb;Si(*>Hii_&4i3JAwzvx` z#a33RuvGftT}Z*_-+{&A7rr_=^SPG6@bISKBdnL~5uX`c+QpBb-!U=y8WlJE!rbjq zcswr(@1vtz6!Q(?$Ubh>2GDpnoo+l zG#*a9q5b@QOn%05&dkeuUENXi_QtTfmcx21hu*$8y2*E^At+)vw#uRk{??Xdg|*`Q zGM;%Ed;H-HPiK>ud78x0$rg`&v?=6ITJ`kAaCm%*nVE#(K0G?bz(8E+Xy(s%CakDmv3@qIhWlMQ zX%@rE>OR)iv*@GWUF74sFuqtnvwqh4ARdgpf~s!k>qmLm?Tg|*X8nBrB*rJUVEe0n z+&_Up3SYi{#u%N!9BeLEgf!6$?;|6d6!Qte#dM*6%>M1~k3kI>qEF2Jot;a->rD!6 z*vB>V`wa{Y#S8uWulcFFts#+k55qVVXPR?WTcZ|c%_)bcJs$l^6V0HV=99Eg%$0gW h**3C~R5};sSuWn=7~-Am=+MjhOV0gU_%A18e*q?_e?R~L diff --git a/fp-plugins/favicon/imgs/favicon-32x32.ico b/fp-plugins/favicon/imgs/favicon-32x32.ico deleted file mode 100644 index 294a32a9ce7417daf9fc957aa03a5b1f2e4d914e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmbVQ*;CV36i$~vpih15_|S(=rw@$pRo1rCR%@+wbX))xh=N)~Td<=9XuxS_I@-7jJ?r%P?)7@TD=Sm0ukXq-nVlcF zeO{esz<0XM;`|U}nf593-Rr;o&h=(Qhq?Xy2o3=e1C2iG8-QvHP8dhVHDwy|!@tzU+-g#xXD+`c%w7N4jI7zUtBuzr@`S$&3(XW9pP|^_F}ia%M8{8b2&d1J56)XmUXi^Vjf!uLCLiVJ zrE-v$YammrkL(UV<+DGY*{tXRTQ6MdXN)KT3--v`Jor`NKiPix>g3m*G=1mZf3XF< z_wNS>iS}*WV5GWwXIk#DcF!I&O-#)u;9xyuJWoDsfZnC0Hn9z|R~|*hj$F1k-bVPU zyxdBam9{kgG0;yx_loT^vvXv&4$`4Rwv7H)@qrCa4;--2#Y=AT4g^W7wGnJq*KB;3 zW3aA^?RWC{Gu^Uz&AxpW@_5JS%2lt}Qcz$_&~Y{URebc|5qv=QxgVW`ILpa4@R)&p zVqv`|$Ui(qWm+rciC+!0V@E5U{h^D>E9|ltw!~xN`-{p~_rdO+J6p+O^U&ohZt>0d z7-^=+2W9odm9(DsC@qn0~n}0w9{t4mW z{@lEbVGd^k=O`V9ItE^MbN)g6*Xo>ETCFww=@t_quYs?0x~S(3_70Cu)0ba$(B{o8 z(vVvQ{FB0kqunn!sw}k!Ca@s``Ma#l8mq1C+#q#~YsnD%5jhoS1i1zBz#;aaM=XMK z*j-)SAu$I`G|X34I_Q3APR=f39Wkly1=i==Omym0m-xv)G)W#`;ECCKZJWF7~A=^I^&eBKA2 zgZFguZ}yJ~KDb0pz+TvZoC=#DA2J~8sr<9x-|Gv+hDW9dzH4Z3$r(b<#aUK3G!W{* z_{5BGeBwlV3jdHbdoLvXBQGWM51*oDS#5&^{d|LCPptN9+fn~;pV+#U4UtWtbkn!}-_23FaIsJHRP&l@->ULiXTX(_Tu4;B_g zKH@F?{R(T9SWJIEGcs?zf&naGnmKL}JFD4$_^_P`N#X?%$c4y*82WJ-o@EpSa=|9Xn1_h z@2?Vmf9V^0-o_hLeSa1e@*6TkE980HS9<$~W1&!p&^(^eSb4cEjCWk7{g^K;bxc)P zcOFvTz<7Uy2lxW{I8(!&$!O}zb$dN0(NIG%mT4d6@y5rSSCviw5M9@3UeWQt3I0dZ P@E)`^@4e14i9i1Wm9q{% diff --git a/fp-plugins/favicon/imgs/favicon-48x48.ico b/fp-plugins/favicon/imgs/favicon-48x48.ico deleted file mode 100644 index cfed6d88be67bdadb5b3527866dde589eefa25ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9662 zcmeHNOHi9t6poGy$A#lK9T$!Z7j>q~E?l{?F97aaw*-RM1OmY-Y78Si%R$1|S zacRk``Df2O|8Llxm#2H_+ap)|^S)SNB)!CK-g&zWQ1NGY@8A_TfX;Y>si*w@(_D zjQBV?q^4f~JvUb?T+G_#=Nn(i$WYnWu8}~v?a-kH@XXBk@DGjHATCZ6ww#SIGB|#` z>F34Z&&koRNKd=&o{xRqS_y1eFMceRZQH~!GV1W*S2cFQy0xL7p)o$0!e}WRIigWS z3V(Ez2ui*;g3;6ihYr<;w1My_lxBv1=D`EV&Q?8kZt)cZlX*PrdceF$;*Z)O2C=lw z$Enrsgq=G>b9(S#Jxrqy4cs4t&6`8};K>}7FIGG=({SSCBU>Yh|NZx6Fflpl!%wkU zRoxoWFXCdw(A#f;pG9pU=fuWJpzH2XfXsID00^VKyhIZJ)~yog?imiyHEMOhd+$jD z)|`tM@*$bR3`dVO@Q%|w;(B`aQJx}BMB>}9elETuiJ$as-!2BJyd9k56Fxhxlo&(e zyKqqld-wAD4sm?Dz27SbW90sj6~4XH3{ei}h@cVuaqYsv14UO(56)yl~gg0zap#w9E)27CZFxSy+5fToQh2v=>vXclVBf zWz+`g2b4Y^=bq>5pC$f-xSvgVJS?9O_WQ%5(4@TsEv9?maE(8@kMR;0`zS{FaC7&b z7Jp`Dy?e_RF+^>6vc9iRYZ%YOb!C+aYc&z9d6#@d3<;QnZrhVgWB7>gsHosM2?-Lg zJDlK|p2ixaB`Bsz&c=;m_zd^$UvSU6*F6lws9UFRGo8Qm%?shyK>8L#f_rMp$0_kj zdEa2X2j?zmA>~6E#;XWE+%JQ=2J_s!X~-{V3bM~@uNbt=U2L9f!VN{==`nvvSPgO@ zLjh&wEpX@8L71GU(`vWRR@K(L5iWjH>&;{)3;80>SVJ3JXalWBO>HY&{6-74Kiy(H z(Kz}4i4%?d_|cb?_3d6eajyB!Agcv073n~(?7+Am@nYw6&GmMt6N~TC!zm*vf1nKKcd*2a8Luz8o(8yi<)U3eTvgC@xb|m9S}3uupsa!kfp- z%1sQL&EbNyG(~_7v}a!~Zf5I4T%@Om&Yxrp?IVW|H$XvQ6BHJz7Ztyu&M*F${jcfF z<;MDyIJ04#UaP)=xkClHxoT+Cbb@=zJ2r^*^g_>KPn$pa&R_nR{jc**sTqFG2C{?V zhZP$6kB=8&Y_?+V(Xe$duV}&Zqje6q2h5%QaPGVozCfQS zDK%i+>R|o4$NS^6z)u*`(v%>PnPBVIKs?FGQWzMtfLe1WD0VV36_~$Ta2+1Mk1ZAd zw1<8Cu>$0Zc2*~3WYz`5D{)7)aK#TMNK2OojnVk`0-WJSKr|~FZt`H>w-cxVhhGaV>>X%5Pph};gK<@!MwYB_tN2y#+sn2 z+Jt+-gfC7VPA7cwX<)AOx1kL8i%(Pe`KNhTt{Qx@DDFqCHlTM9+&Lza{3j>Nz>auH z57#tUUy@z^n7M1ZZ^T;Y+oERPahgYU+|cltPaes=-PW@t=XW|Yb#(UmbkRDHFL8M1 z_lb#8JYU+ubmLw~8_6GkxMuRnB>c3-TyBaa|Aa3wNeUh2KCB}hPx+>`XC!hZL_xA6XBcBc*ep)kO^pnp(^W_MIQaE~4 zBMY~7qxpq}h8Mp4Qmv!+=JVw~>2G>3H9kHL6Br}ZC_nDl5!%=I z&rrgyo&D{lbwFQQLG|cDTW+3ug}koeZGDR|NoUX}RMyB=F7#P$9)13By0F9_%JTIx u1Ir97Gw`2c0N9s65O$x3|5pS8!QW&J*XPdt{eS7vZv0`t!sc&|_kRFO2%X^o diff --git a/fp-plugins/favicon/imgs/site.webmanifest.json.php b/fp-plugins/favicon/imgs/site.webmanifest.json.php index ff660559..160b925b 100644 --- a/fp-plugins/favicon/imgs/site.webmanifest.json.php +++ b/fp-plugins/favicon/imgs/site.webmanifest.json.php @@ -3,16 +3,20 @@ require_once('../../../defaults.php'); $blogBaseUrl = BLOG_BASEURL; + +// Indicates the version of the symbol. Increase it by one when you change the image ($v = '?v=3', $v = '?v=4', etc.). +// The browser will then immediately display the latest version. +$v = '?v=2'; ?> { "icons": [ { - "src": "android-chrome-192x192.png", + "src": "android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "android-chrome-256x256.png", + "src": "android-chrome-256x256.png", "sizes": "256x256", "type": "image/png" } diff --git a/fp-plugins/favicon/plugin.favicon.php b/fp-plugins/favicon/plugin.favicon.php index fe7dabae..7f184b05 100755 --- a/fp-plugins/favicon/plugin.favicon.php +++ b/fp-plugins/favicon/plugin.favicon.php @@ -8,49 +8,70 @@ * Description: Adds favicons for search engines, mobile devices or browsers to FlatPress. Part of the standard distribution. [More information] */ -// Google Search, for example, only supports one favicon per website, whereby a website is defined by the host name. -// If an icon in the main directory, do not load!!! -$httpHost = $_SERVER ['HTTP_HOST']; -$requestUri = $_SERVER ['REQUEST_URI']; -if (strpos($httpHost, 'favicon') || strpos($requestUri, 'favicon')) { - http_response_code(404); -} +function plugin_favicon_head() { -if (strpos($httpHost, 'apple-touch-icon') || strpos($requestUri, 'apple-touch-icon')) { - http_response_code(404); -} + // Google Search, for example, only supports one favicon per website, whereby a website is defined by the host name. + // If an icon is in the main directory, do not load it, but redirect it temporarily!!! + redir_favicon(); + + // Indicates the version of the symbol. Increase it by one when you change the image ($v = '?v=3', $v = '?v=4', etc.). + // The browser will then immediately display the latest version. + $v = '?v=2'; -function plugin_favicon_head() { - // FlatPress icon set echo ' - - ' . // Smartphone iOS Safari - '' . // - '' . // - '' . // - '' . // - '' . // - // Smartphone Android Chrome - '' . // For Android home screen - '' . // - '' . // - '' . // - '' . // This file must be located in the imgs directory! - // Mac OS Safari - '' . // Mask icon for Safari pinned tabs - // Classic/, desktop browsers - '' . // Multilayer icon - '' . // Highest resolution icon - '' . // - '' . // - // Windows 10 or higher + ' . // + + // Smartphone iOS Safari + '' . // + '' . // + '' . // + '' . // + '' . // + '' . // + + // Smartphone Android Chrome + '' . // For Android home screen + '' . // + '' . // + '' . // + '' . // This file must be located in the imgs directory! + + // Mac OS Safari + '' . // Mask icon for Safari pinned tabs + + // Classic/, desktop browsers + '' . // FlatPress multilayer icon + + // Windows 10 or higher '' . // - '' . // This file must be located in the imgs directory! - '' . // - ' - + '' . // This file must be located in the imgs directory! + '' . // + + '' . // Specify a color for the browser toolbar and the status bar on mobile devices + ' '; } +function redir_favicon() { + + $requestUri = $_SERVER ['REQUEST_URI']; + $favicons = array ( + 'favicon.ico', + 'apple-touch-icon.png', + 'apple-touch-icon-precomposed.png' + ); + + foreach($favicons as $favicon) { + if (strpos($requestUri, $favicon) !== false) { + http_response_code(307); // Temporary Redirect + header('Location: ' . plugin_geturl('favicon') . 'imgs/' . $favicon); + return true; + } + } + + return false; +} + + add_action('wp_head', 'plugin_favicon_head'); ?>