Ready Projects
プロジェクトをローンチする前に確認するべきチェックリスト。UX向上に必要なこと全部
0/X
パフォーマンス
画像の最適化
Optimizilla.com
、
Compressor.io
、
TinyPNG
、
Squoosh.app
などのウェブプロセッサ、
FileOptimizer
や
ImageOptim
などのデスクトップアプリを使用して画像を圧縮しましょう。
CSS/HTMLを使用してサイズ変更する代わりに、各要素の正確な画像サイズを生成する。ブラウザが処理を実行するときに重くなる可能性があるためです。
Image Sprite
を使用して、HTTPリクエストと帯域幅を節約する。
ページ容量とリクエストの削減
ページ容量を2MB未満かつ50リクエストに抑えるためのヒントを次に示します。
サードパーティのライブラリとスクリプトを制限する。
リソースとリクエストを非同期にロードする。
静的アセット(画像/CSS/JS)とページの配信に
CDN
を検討する。
Webフォントの使用制限
多くのウェブサイトでは、使用していないフォントの字形と太さをすべて読み込んでいます。 ウェブフォントは、フォントファイルがサードパーティのサーバに依存しているため、一貫性のないパフォーマンスを示すこともあります。 ウェブフォントを2~3個に制限するか、
System Font Stack
を使用してユーザーが見やすくなるようにしましょう。
GZIPとJS/CSSの縮小
GZIPは、ウェブサーバーで設定できるテキストファイル用の強力な圧縮プログラムです。 JavascriptおよびCSSファイルは1つのファイルに結合し、クリティカルパスへのロードの影響を軽減するために、ユーザーに配信されるとき縮小される必要があります。 Javascriptには
UgilfyJS
、CSSには
CSSO
というツールをお勧めします。
HTTP/2の実装
HTTP/2は最新のHTTPプロトコルであり、ブラウザー間でのサポートが優れ、ローディング速度が大幅に改善されています。 NginxでHTTP/2のガイドが
ここ
にあります。
非同期および遅延属性を追加
他のリソースをブロックしないよう、スクリプトファイルのダウンロード&実行するタイミングをブラウザに指示します。 各スクリプト属性は何を行うのか示す、
このガイド
が良いです。
relにリソースのヒントを追加
サードパーティのアセットを使用している場合、DNSルックアップがアタッチされているため、外部リソースと自分のリソースの両方が相互にブロックされたり、順序どおりにロードされない可能性があります。
ここ
では、link属性のさまざまな値「rel」について説明されています。 この属性は、どのような状況で、いつ、どう処理するかをブラウザーに伝えます。
これ
は、W3ConsortiumのResource-Hintsドキュメントです。
キャッシュシステムを実装
ウェブサーバーで[max-age]ディレクティブを使用し[cache-control]ヘッダを指定すると、ブラウザーが不適切なデフォルトバージョンを設定しないようにできます。 これにより、同じリソースを複数回表示するユーザーのパフォーマンスを大幅に節約できます。バージョニングされた静的アセットは、できるだけ長くキャッシュする必要があります。
Service Workersを考慮
Service Worker
は、キャッシュを正確に制御し、オフラインでのウェブ体験を可能にします。
ここ
にコードの例が示されています。
テストを実行
テストに使える良いツールは、
YellowLab.tools
、
webpagetest.org
、
Lighthouse
などがあります。 4G、3G、Wi-Fといったネットワーク環境だけでなく、使用されている一般的なデバイスでも必ずテストしましょう。
SEO
ページ固有のキーワードを設定
以前ほど重要ではありませんが、キーワードによるターゲティングは、SEOランキングの改善に向けた最も一般的な提案の1つです。 以下のキーワードやフレーズを含めましょう。
URL:短く意味が明確であることを確認する
Title Tag:最初にキーワードやフレーズを含め、最大70文字にする
Meta Description:各ページで一意のもので、最大155文字にする
H1:ページごとに1つ、キーワードほど重要ではないもの
Google AnalyticsとGoogle Search Consoleを設定
Google Analyticsは、ウェブサイトのユーザーを特定し、問題のある領域を特定するのに役立ちます。Philip Walton氏が、GAで「利益を得る」ため使っている設定について
説明
しています。 検索を分析する
Google Search Console
とAnalyticsは忘れずに接続してください。 なお、
Bing Webmaster Tools
はアメリカをターゲットとしたウェブサイトにとって重要です。日本でも、Yahoo!からアクセス増加が見込めます。
XMLサイトマップの作成と送信
XML-Sitemaps.com
などのツールを使用すると、サイトマップを簡単に生成できます。 サイトマップをすべての検索エンジンに送信し、ウェブサイトをクロールできるようにしましょう。
Robots.txtの作成
robots.txtファイルは、どのページにアクセスできるかをロボットに指示するものです。
壊れたリンクとクロールの問題をスキャン
Screaming Frog SEO Spider
などのツールを使用してウェブサイトをクロールし、SEOに関連するさまざまな問題を評価しましょう。
URL正規タグの追加
クエリ文字列なしの絶対URLを使用し、各ページに正規リンクを設定します。 末尾のスラッシュを削除する必要があり、
canonical
で表記されます。
リッチスニペットと構造化データを追加
構造化データ
により、検索エンジンはHTMLマークアップをよりよく理解し、検索結果ページのリッチスニペットを生成できます。 リッチスニペットはランキング(SEO)に直接影響は与えませんが、ページが魅力的になり、見込み客に豊富な情報量を提供します。
FacebookおよびTwitterカードを作成
Facebookの
Open Graph
とTwitterの
Cards
を使用すると、ソーシャルメディアで「シェア」されたサイトを見ているユーザーにとって、表示をより魅力的にすることができます。
Facebook
と
Twitter
の両方に、カードをプレビューおよびデバッグするツールがあります。
セキュリティ
HTTPSを設定
HTTPSは、ウェブサイトでのセキュリティとパフォーマンスにおける前提条件であるため、ログインページだけでなく全てに実装する必要があります。 Let's Encryptを使用すると、証明書を簡単かつ自由に作成および管理できます。 Cipher Suite(暗号スイート)が最新であることを確認し、ウェブサーバーでOCSP Stapingを有効にします。
SSL Labs
を使用すると、ページをテストできます。
セキュリティヘッダの設定
時間をかけてウェブサーバーに簡単なヘッダーを設定すると、将来に渡る手間を節約できます。
securityheaders.io
を使用してテストできます。
CSP
は、XSS攻撃やデータインジェクション攻撃を緩和するヘッダーです。
CSRF
は、クロスサイト・リクエストフォージェリを防止するトークンです。
X-Frame-Options
は、クリックジャッキングから保護するためのヘッダーです。
X-XSS-Protection
は、XSS攻撃を軽減するヘッダーです。
HSTS
を使用し、TLSのみのアクセスを強制します。バックアップとしてサーバー上のすべてのHTTPリクエストをHTTPSにリダイレクトします。
Cookiesは、
HttpOnly, SameSite, Secure
属性を使用するだけでなく、パスとドメインによって範囲指定する必要があります。
サニタイズとユーザーの入力をパラメーターで制限
Inputを解析するときは、data://、javascript://、CRLF文字のサニタイズを忘れないでください。 ユーザーコンテンツをレスポンスまたはSQLステートメントに直接挿入してはいけません。
scryptかbcryptでパスワードハッシュを保存
bcryptはscryptよりもはるかに古く、より多くの分析と実装を受けています。 scryptの方が高速で強力であることを多くの人が示唆しています。
APIパスにレートリミッターを実装
DoS攻撃から身を守るため、ログインやトークン生成などのAPIパスにレートリミッターを実装しましょう。
アクセシビリティ
コントラストを分析
テキストと背景のコントラスト比が少なくとも
4.5:1
であることを確認してください。 これにより、多くのユーザーで読みやすさが向上し、少数派でも読むことができるようになります。 詳細な説明といくつかインジケータが
ここ
あります。
キーボードナビゲーションを追加
ブラウザのキーボードショートカットが上書きされないことを確認しましょう。 ロール、状態、プロパティに関するセマンティック情報を支援テクノロジーに提供する
WAI-ARIA属性
を使用します。
メニューを分析
セマンティックマークアップと明確なスタイリングを使用し、ページとメニュー要素の構造を伝えます。 ユーザビリティのヒントは、ホームページから3回以下のクリックで全ページにアクセスできるようにすることです。 以下は、アクセス可能なメニューを作成するための
ガイド
です。
非テキスト要素にAltタグを追加
Alt属性は、ビジュアル要素(画像など)にテキストでの解釈を提供します。 altタグは、「ビジュアルの内容と機能を表していること」、「簡潔で正確であること」、「〈イメージ〉や〈グラフィック〉というフレーズは使用しないこと」を確認してください。
フォームを分析
すべての異なるフォーム要素に優れたアクセシビリティをもたらす
ガイド
を見てみてください。 フォームはキーボードでナビゲートでき、明確かつ直感的でなければなりません。
コンテンツ
スペルチェックと読みやすさを確認
すべてのプレースホルダーテキストと画像を削除します。テキストは50〜75文字の行長で、小さな段落に分割しましょう。 これは、
WebpageFXのReadability Test Tool
でテストできます。
連絡先とソーシャルメディアをチェック
シンプルで正確な連絡先情報を提供し、バグや脆弱性を報告できるようにします。 ソーシャルメディアのボタン数を制限することでリクエストを最小限に抑え、連絡先は絞ることが重要です。
リンクを分析
リンクはわかりやすく「クリック可能」な表示にします
外部リンクは
rel="noopener"
属性を使用します
重要なリンクは移動させないこと(カルーセルやアコーディオン)
ナビゲーションにないリンクへは、title属性を付けましょう
FaviconとApp Iconを作成
RealFaviconGenerator
などのサービスを使用し、さまざまなプラットフォームに必要なアイコンを生成します。開発中にテストし、エラーがないことを確認すると良いでしょう。
404ページを作成
404.htmlページとoffline.htmlページを作成し、それぞれをウェブサーバーで設定すると、ユーザーにより良い体験を提供できます。
機能性
ブラウザとOSの互換性を確認
Chrome、Firefox、Safari、IE/Edge、Operaなどの主要なブラウザーでテストしましょう。
Modernizr
などのツールやライブラリを使用すると、ユーザーが利用できる機能をテストできます。
レスポンシブ分析を完了
レスポンシブとは、すべてのリソースが同じままでブラウザやデバイスの幅に基づきCSSが異なるスタイルルールを提供することを意味しています。最も一般的な変更要素は、モバイルでのドロップダウンメニューでしょう。 ChromeのDeveloper Toolsと拡張機能の
Emmet Re:view
を使用し、約300pxまでのページビューをテストしましょう。
入力フォームをモバイルに最適化
すべての
input属性
には、ユーザーエクスペリエンス(UX)を向上させるためにtype属性が設定されています。
シェアする💪