from :: Asahikawa Hokkaido

passer-by198

primetime pencil

2014/09/06


Posted

Bloggerの「all-head-content」で参照されるコンテンツを考察して「meta」「feeds」「favicon」などを最適化

概要


テンプレートをカスタマイズするような方は…一度は…例えば…

Google Chrome のコンテキストメニューの「ページのソースを表示」や…

「要素を検証」で自身のサイトを見た事があるでしょう

その際…必ず感じる事は…どうして <head> 内にこんなにコンテンツが

…ってな感じでしょう…なにせデフォルトの状態では「CSS」を除けば…

テンプレートには…この程度しか記述されていないのですから…
  1. <b:include data='blog' name='all-head-content'/>
  2. <title>
  3.   <data:blog.pageTitle/>
  4. </title>
なので…今回は…<head></head> の中身を考察してみましょう…

<head>~</head> 内に呼び出されるコードの検証


Blogger のテンプレートの <head></head> にある一行のコード…

 <b:include data='blog' name='all-head-content'/>

…で参照されて…<head></head> 内に呼び出されるコードは…

コンテンツが最大になるように…コメントのあるページで…

「OpenID」も設定してソースを見てみると…

<head>~</head> 内に呼び出されるコード



■JavaScript 
「データ収集用」「 Internet Explorer 用」
■「meta」要素 
「文字コード用」「出力情報用」「説明用」
■「link」要素 
「ファビコン用」「URL 正規化用」「フィード用」「プロフィール用」「OpenID 用」「画像用」

…ってな感じで…結構…大袈裟な量です

過去記事で対処済みの「CSS」…

 Bloggerの読み込み遅延の元凶「widget css bundle」を削除して高速化する



「widget_css_bundle」「dyn-css/authorization」や…

これもまた…対処済みの「JavaScript」…

 Bloggerの読み込み遅延の元凶「widgets.js」「plusone.js」を削除して高速化する…非推奨



「widgets.js」「plusone.js」と同様に…

一見…必要なものばかりと思い込みがちでしょうが…

はたして…そうでしょうか…必要だとしても…

レンダリングブロックしてまで呼び出す…というのも如何なものでしょう

<head> 内に多くのコンテンツを置くのは…よろしくないと思われますので…

熟考して…不要な要素は削除すべきです…なので…

展開して…必要なものだけ残すために個別に見てみましょう…

「JavaScript」に関する考察


2行目~4行目のスクリプトは「データ収集用」…かな

17行目のスクリプトは「 Internet Explorer 用」ですね…

私は…どちらも…不要ですので削除していますが…

展開した上で残す場合は…最初のスクリプトは…

 <script type='text/javascript'>// <![CDATA[ここにスクリプト// ]]></script>

…ってな感じで記述します…

「meta」要素に関する考察


「meta」要素は…かなりシンプルで好みですね…

http-equiv='Content-Type'」と「name='description'」は無問題ですが…

name='generator'」には…ご遠慮いただきたいですね…削除です…

http-equiv='Content-Type'」は…呼び出されたコードのままで OKです…

name='description'」は…当然ながら呼び出す必要があります…

「description」を呼び出すコード



…ってな感じで記述します…まぁ…お好みで…

「SEO」大好きな方々が勧める山盛りの「meta」要素を記述したい方には…

どうぞ…お好きに……としか言いようが無いです… ( ̄ー ̄) 邪笑®

「favicon」に関する考察


ファビコンは…ブラウザに見つけてもらうだけの「link」要素とは違い…

「HTTP リクエスト」が発生しますので問題ありです…

WebPageTest
現実に「WebPageTest」では…

ファビコンも含めて判定されます…

Blogger でも「レイアウト」からファビコンを設定出来るようになりましたが…

逆に…「base64」変換での生データ記述をするためには…

このような形で一旦展開しなければならなくなった…という事です…

そのためだけに…この記事を書いているようなものです…

呼び出しませんから「expr:」を外して…こんな感じで記述します…

 <link href='「base64」変換の生データ' rel='icon' type='image/x-icon'/>

画像をbase64エンコードするツール / Syncer  



尚…このように生データ記述をすると…記事作成中のプレビューで…

ファビコンが表示されなくなりますがサイトでは問題なく表示されます…

参考程度に…6行目で呼び出されているファビコンのコードが…

どのようなデータタグで呼びだされているのだろうってな方のために…

たぶん…こんな感じ…ってのを置いておきます…

 <link expr:href='data:blog.homepageUrl + &quot;favicon.ico&quot;' rel='icon' type='image/x-icon'/>

「link」要素に関する考察


rel='canonical'」の「URL 正規化用」の「link」要素は必要ですね…

 <link expr:href='data:blog.url' rel='canonical'/>

…ってな感じで呼び出します…

rel='alternate'」が含まれる…3個の「フィード用」は…

「フィードリーダー」に見つけてもらうためだけに記述する訳ですから…

私的には…全くもって不要です…全て削除して…

記事下に…「Feedburner」を置いています…

先生謹製なのですから…もう少し力を入れて欲しいものですね…

呼び出したい場合は…こんな感じで記述します…

「フィード用」の「link」要素を呼び出すコード



「プロフィール用」は…サイドバーに「About」を置いていますし…

「OpenID 用」は…実際には設定していませんので…不要です…

記述するなら…ソースコードのまま記述すれば良いでしょう…

「画像用」は投稿ページでサムネイル画像が収得出来る場合に出てきます…

まぁ…不要って言えば不要…なんですが…

タイトルも含めて…こんな感じで呼び出しています…

「画像用」の「link」要素を呼び出すコード



お好みのスタイルに弄って下さい…

将来的には…「画像用」も削除する方向かな…たぶん… ( ̄。 ̄) 弱笑®

展開後の「<head>」内の状態


「<head>」内の…実装状態は…「CSS」を除くと…こんな感じになります…

「CSS」を除いた「<head>」内の実装状態



おわりに…


Blogger の高速化・最適化の作業も終盤にさしかかり…

ほぼ…完成しましたが…ラベルは…1個しか付与しない主義なので…

「Customize」カテゴリーの中に埋没して解り辛くなっているでしょ

なので…ヘッダーのナビゲーションの「Blogger」に「Optimization」を置いて…

主な記事だけ抜き出してインデックスしましたので…ご利用下さいな…

あくまでも…直書きしたほうがページ読み込みは速いという事を忘れずに…

スコアと速度のバランスをとりながらカスタマイズする事を強くお薦めします…

以上です…最後までお読みいただきましてありがとうございます…


0 Comments :

「jQuery」と「jQuery UI」で HTML に彩りを添えよう…


「導入」「Button」「Accordion」「Tabs」「Effects/Slide」
「Progressbar」「Dialog」「Tooltip」「Menu」
「Extra」 / 公式「Widgets」以外の「jQuery UI」スクリプト
Blogger Template Customize Universal / INDEX

Blogger テンプレート・カスタマイズ / 全般を解説
高速化・最適化対策の結果と備忘録