SEO対策

CSSとの意外な関係「よくわかるSEO対策」スタイルシート編

CSS スタイルシート レンダリング
CSSとの意外な関係「よくわかるSEO対策」スタイルシート編

  

今回の「よくわかるSEO対策」はスタイルシート(CSS)編です。

 

多くの人が

「SEO対策なのに、CSSの説明をするの?」

と思うかも知れませんが、これには意外な関係性があったのです。

 

現在CSSを学んでいる人、そしてCSSの書き方ならマスターしているといった人でも、SEOのことまでを考慮した記述ができていなければ、まだまだサイトを改善させることができるということです。

 

最後まで読めば、SEO対策の知識はもちろん、今よりもCSSについても理解が深まるはずです。

 

 

CSSとSEOの関係性

 

CSSの目的の大部分は、ページの見た目をきれいにすることです。

見やすくて楽しさのあるページはユーザーを楽しませてくれたり、ブログ記事をスムーズに読ませてくれたり、ネットショップであれば商品を美しく、そして買いたくなるように購買意欲を刺激することもあります。

 

ページの質を上げるという意味でも、ユーザー目線でのサイト作りSEO対策としては重要なことです。

しかし今回解説していくのは、そういった操作性や楽しさといった見た目にテコ入れする方法ではありません

 

CSSの記述を意識することによる、ページの読み込み速度を上げるといった内部施策をご紹介します。

 

 

レンダリングの高速化

 

ページへアクセスすると、HTMLファイルを上から順番に解析していきます。そしてCSSファイルがあればそれを読み込んでから、次のCSSファイルやHTMLタグなどの処理をします。

そして最後の行まで処理を終えるとページの生成が完了です。このページを生成していくしことをレンダリングといいます。

 

Googleのページ評価の指標に、このレンダリングのスピードがあります。そのため、CSSファイルもminify化して、余計な行や空白を削除するような方法は実際に用いられています。

※common.min.cssなど

 

また、CSSファイルを読み込みしないようにHTMLファイル内に記述するケースも少なく有りません。

多少の記述量であれば確かに理にかなっているのですが、量が膨大になれば1つのファイルへ記述してしまうことは作業効率はもちろん、保守安全性が乏しくなってしまいますので注意が必要です。

 

こういった圧縮作業や記述場所についても大切ですが、CSSのレンダリングの流れを理解しておけば、記述に気をつけておくだけでレンダリングにかかる時間を短くすることができるのです。

 

 

具体的な記述方法

 

例えば、以下のようなHTMLコードがあったとしましょう。

 

<section class="weather-block">

              <p class="rain-text">明日は雨ですよ!</p>

</section>

 

このrain-textの下には少し多めに余白が欲しいので、CSSmargin-bottomを指定します。

その例を複数みてみましょう。

/* パターン1 */
.weather-block > p.rain-text{
              margin-botom: 8px;
}

/* パターン2 */
section .rain-text{
              margin-botom: 8px;
}

/* パターン3 */
.rain-text{
              margin-botom: 8px;
}

 

記述方法は他にもありますが、今回はこの3つの例にみていきます。

上記3つの例では、実際に出力される結果は同じですが、レンダリング処理には違いがあります

 

まず一つ目の記述方法についてです。

.weather-block > p.rain-text{
              margin-botom: 8px;
}

 

CSSは右から左という順番で解析されていきます

そのため、上記の記述方法であればまず、「クラスがrain-text」のタグを探します。

見つかれば、それが「pタグであるかどうか」を確認して、さらにそれが「wether-blockの子であるか」を確認するために1階層上のタグをみます。時間としてはコンマの世界になりますが、実際にCSSを解析するまでにこの3工程が行われているのです。

  1. rain-textクラスの確認
  2. pタグであるかの確認
  3. 1階層上にweather-blockクラスがあるか確認
  4. 確認終了

 

では、二つ目をみてみましょう。

section .rain-text{
              margin-botom: 8px;
}

 

先ほどより指定が少なく簡潔になりましたが、処理についてはどうでしょうか。

この場合であれば、まず「クラスがrain-text」のタグを探し、その後それが「sectionタグの子孫であるか」をチェックするために、rain-textクラスより上位のタグをすべてチェックする必要があります。先ほどであれば1階層だけだったのですが、今回は祖先すべてが対象です。

2工程ではありますが、実際にチェックする量については階層が下であればあるほど膨大になるのです。

  1. rain-textクラスの確認
  2. 上位タグにsectionがあるか上位タグすべてを確認
  3. 確認終了

 

最後はクラスのみの指定です。

.rain-text{
              margin-botom: 8px;
}

 

これであれば、「クラスがrain-text」であれば解決なので処理がすぐに終了します。その分、レンダリングにかかる時間は短くて済みます。

  1. rain-textクラスの確認
  2. 確認終了

 

 

人間はCSSコードを左から右に記述していきます。

また、上位の親からしっかりと絞り込んで言ったほうが、他の部分に影響を与えることなくクラスをピンポイントで指定して、スタイルを反映することができるので、余計な親要素まで書いてしまうことが多々あります。

しかし、サーバー側からすると人間と違って「右から左」という順番に解析していくため、安易に親の指定がされていると「本当にその条件にあっているのか」という確認に無駄な処理を繰り返してしまっていることがあるのです。

 

そのため、CSSはできるだけ簡潔にクラスやIDを指定することで反映させる方が、ページのレンダリング速度が格段に上がるということです。

 

 

まとめ

  

SEO対策と聞くと、メタタグやリンクタグ、階層化や外部施策、キーワードの選定などといった方法が思い浮かぶ人がほとんどではないでしょうか。

もちろんそれらは大切ですが、それ以外の部分にも要因があるということを知っておかなければなりません。

 

ページのレンダリング速度を上げることで、よりスムーズにユーザーにページの内容を伝えてあげられます。

しかしページの読み込みが遅いと、その時点でページの閲覧を諦めてしまいサイトから離脱してしまいます。1秒遅くなれば、それだけ何倍ものユーザーが離れていってしまうのです。

 

最後に、今回のポイントをまとめておきます。

レンダリングにかかる時間を短くする

CSSの指定はできるだけ簡潔する

  

記述量が膨大になればなるほど、それだけ解析に必要な時間は増えていきます。そんなとき、一つ一つの時間をできるだけ短縮できていれば、比べたときにより大きな効果があります。

 

今までCSSを見た目だけを意識して記述していた人は、是非記述方法一つでSEO対策をしているということも考えながら取り組んでいくと、よりよいサイトが作れるようになるでしょう。

関係がないと思っていたものでも、実際に詳しく知ることで意外な関係性が出てくるのです。

せっかく作るのであれば、より得られる効果の高いものにしていきましょう。

 

他にもSEO対策については記事をまとめているので、これを機にSEO対策へ本格的に取り組みたい人は是非参考にしてください。

HTMLの基本設計「よくわかるSEO対策」構造化(マークアップ)編 HTMLの基本設計「よくわかるSEO対策」構造化(マークアップ)編

  HTML5がリリースされて随分経ちました。 それにより多くのタグが増え、それにより今までデザインを目的と使用されていたものが「構造化」という本来の役割を持たされるようになりました。    構造化は、目に見えにくい部分です   それぞれの役割を理解していなければ、せっかくきれいなサ...

注目の記事

進化の石編(構成) PHPポケモン 102
プログラミング
PHP,PHPポケモン,ポケモン
進化の石編(構成) PHPポケモン 102

進化の石 ピカチュウさんもそろそろ進化したがっているので、β版の公開に向けて進化の石を実装していきます。しかし、イーブイなど特別な進化先や条件を持ったポケモンを考慮すると、少し実装が手間取りそうだったので、今回は構成部分のみのまとめとなっておりますので、ご了承ください。   アイテムクラスの作...

なぜ、お金を配るの?悪質メール・SNSを利用した詐欺的手法への対処法とは
ネットワーク
amazon,SNS,Twitter,お金配り,楽天,迷惑メール
なぜ、お金を配るの?悪質メール・SNSを利用した詐欺的手法への対処法とは

定期的に書きたくなるコラムのコーナー! 今回は、迷惑メールやSNSのDMを活用した悪質な勧誘、巷で流行っているお金配りを隠れ蓑のした巧妙な詐欺的手法などをいくつかご紹介、その対策・リクス回避の方法をまとめました。   まず結論からお伝えすると 「怪しいと思うなら手を出すな」 です。その詳細を知りたい...

千利休から学ぶビジネスモデルの作り方3ステップ!守破離とは
ビジネスモデル
千利休から学ぶビジネスモデルの作り方3ステップ!守破離とは

  千利休の利休道歌に以下のような記述があります。 規矩作法 守り尽くして破るとも離るるとても本を忘るな    これは武道や芸道など学びの基礎として考えられ、創造過程のベースとして用いられてきました。これはビジネスモデルを作り上げるという観点から見ても非常に重要かつ、失敗する多くの人が疎...

賢い集客でボロ儲け!?仕事や案件に困らない基本戦略・3選
マーケティング
賢い集客でボロ儲け!?仕事や案件に困らない基本戦略・3選

  「仕事はどうすればもらえるの?」 「集客って何すればいいかわからない」 「告知ってどんな媒体をどう使えばいいの?」   フリーランスで仕事の取り方がわからず苦戦している人や、サービスや商品は作ったものの集客の方法がわからず悩んでいる人のほとんどが、集客のテクニックばかりに目線がいってしま...

システムエンジニア向けまとめ情報サイト IT News Checker
ネットワーク
システムエンジニア向けまとめ情報サイト IT News Checker

新年のスタートダッシュが遅れ気味に見えるかも知れませんが、年末からじっくりと作業を進めており、やっとある程度形になりました。 師走の如く作業に走り、気分転換に雪遊びもしつつ、成人式を終えた辺りでリリースしたのが「IT News Checker」です。   IT News Checkerとは 簡潔に説明すると、まと...

PHPポケモン「状態異常+逃走編〜ねむり・こおり・やけど・どく〜」24
プログラミング
PHP,PHPポケモン,ポケモン
PHPポケモン「状態異常+逃走編〜ねむり・こおり・やけど・どく〜」24

状態異常の実装  今回は、前回作成した「まひ」を参考に、「ひんし」を除いた残りの状態異常も実装していきます。    クラスの作成  まずはそれぞれのクラスを作成します。前回解除時のメッセージを設定出来ていなかったので、まひと合わせて実装していきましょう。   状態異常:やけど(...

仕事用PCは2年で買い替えろ!その理由とは?
フリーランス
MacBook
仕事用PCは2年で買い替えろ!その理由とは?

  「あなたはパソコンをどのタイミングで買い替えますか?」   私は先日、2015年モデルのMacbookPro15インチから最新モデルのMacbookPro13インチに買い替えました。その理由は、メモリが32GBになったことや、15インチが持ち運びという点で見れば向いていないと判断したということ、そこそこの年数が経...

【Laravel】論理削除対応型existsバリデーションの実装方法
プログラミング
Laravel,PHP
【Laravel】論理削除対応型existsバリデーションの実装方法

  Laravelでは多くのバリデーションが提供されていますが、論理削除を使用している場合はそのままでは使えないものが複数あります。 今回は紐付けをする際に存在チェックで使用するexistsのソフトデリート対応のバリデーションを実装する方法をご紹介します。     カスタムバリデーションの追加   存...

カテゴリ

SEO対策 イベント デザイン ネットワーク ビジネスモデル フリーランス プログラミング マーケティング ライティング 動画編集 雑記

タグ

5G Adobe AfterEffects AI ajax amazon Animate api artisan atom Automator AWS Bluetooth CSS CVR description EC-CUBE4 ECショップ ESLint Facebook feedly foreach fortify function Google Google AdSense Honeycode htaccess HTML IEEE 802.11ax Illustrator Instagram IoT JavaScript jetstream jQuery jQuery UI keyword LAN Laravel Linux MacBook MAMP meta MLM MySQL NoCode note OS OSI参照モデル Paypal Photoshop PHP phpMyAdmin PHPポケモン PremierePro rss SEO Sequel Pro Skype SNS SSH Symfony TCP/IP title Toastr Trait Twig Twitter UCC V系 WAN WebSub Wi-Fi wiki Windows WordPress XAMPP xml Xserver YouTube YouTuber Zoom アーティスト アウトプット アクセス層 アニメーション アフィリエイト イーブイ インターネット インプット エンジニア オブジェクト指向 お金配り クリック単価 クリック数 コミュニケーション能力 コロナ コンサルティング サムネイル システムエンジニア スタートアップ スタイルシート スパム データベース ディープフェイク デザイナー デザイン テレワーク ナンパ ニュース ネットワークモデル ノマドワーク バナー ピカチュウ ビジネス フィード フリーランス ブロガー ブログ プログラマー プログラミング プログラミング学習 プログラミング教育 プロトコル ホームページ制作 ポケモン マークアップ マーケティング メール リモートワーク レンダリング 三井住友 三宮 仕事依頼 児童デイ 児童発達支援 公開鍵 初心者 助成金 勉強法 営業 広告 広告収入 必勝マニュアル 放課後等デイサービス 朝活 楽天 深層学習 無線LAN 独立 神戸 福祉 秘密鍵 翻訳 自己啓発 英語 見積書 計算機 認証 読書 起業 迷惑メール 配列 銀の弾丸 集客 雑学力