Чек-лист идеального сайта
Идеальный чек-лист сайта для вас может стать шпаргалкой, которую вам стоит использовать перед запуском вашего сайта или внесения правок в него.
Чек-лист основан на многолетнем опыте фронтенд - разработчиков. Давайте взглянем на него:
Содержание
- Заголовок;
- HTML;
- Веб-шрифты;
- CSS;
- Изображения;
- JavaScript;
- Безопасность;
- Производительность;
- Доступность;
- SEO.
Все элементы в чек-листе сайта необходимы для большинства проектов, но некоторые элементы не являются существенными (например, вам не понадобится RSS-канал, если у вас сайт - визитка).
В нашей статье мы используем 3 уровня важности элементов:
У некоторых ресурсов есть смайлик, который поможет вам понять, что мы имеем в виду:
- ?: Документация или статья;
- ?: Онлайн инструмент;
- ?: Медиа контент.
Приступим к обзору чек-листа.
Заголовок
Здесь вы сможете найти список всего, что должно быть в теге head
HTML - документа.
Метатеги
<!-- Doctype HTML5 --> <!doctype html>
Следующие 3 метатега (Charset, X-UA Compatible и Viewport) должны быть первыми в теге head.
<!-- Установка кодировки UTF-8 для документа --> <meta charset="utf-8">
<!-- Использование браузера Microsoft Edge, вместо Internet Explorer --> <meta http-equiv="x-ua-compatible" content="ie=edge">
<!-- Viewport для адаптивного веб-дизайна --> <meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Название страницы --> <title>Page Title less than 65 characters</title>
<!-- Метаописание --> <meta name="description" content="Description of the page less than 150 characters">
<!-- Стандартная иконка --> <link rel="icon" type="image/x-icon" href="https://example.com/favicon.ico"> <!-- Рекоменндованная иконка --> <link rel="icon" type="image/png" href="https://example.com/favicon.png">
- ? Favicon Generator
- ? RealFaviconGenerator
- ? Favicon Cheat Sheet
- ? Favicons, Touch Icons, Tile Icons, etc. Which Do You Need? - CSS Tricks
- ? PNG favicons - caniuse
<!-- Иконка Apple --> <link rel="apple-touch-icon" href="/custom-icon.png">
<link rel="canonical" href="http://example.com/2017/09/a-new-article-to-red.html">
HTML теги
<html lang="ru">
<link rel="alternate" href="https://es.example.com/" hreflang="es">
<style></ style>
.
Социальные метатеги
Facebook OG и Twitter Cards для любого веб-сайта настоятельно рекомендуются. Другие метатеги социальных сетей можно рассмотреть, если вам необходимо их использование.
<meta property="og:type" content="website"> <meta property="og:url" content="https://example.com/page.html"> <meta property="og:title" content="Content Title"> <meta property="og:image" content="https://example.com/image.jpg"> <meta property="og:description" content="Description Here"> <meta property="og:site_name" content="Site Name"> <meta property="og:locale" content="en_US">
- ? A Guide to Sharing for Webmasters
- ? Проверьте свою страницу с помощью Facebook OG testing
<meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@site_account"> <meta name="twitter:creator" content="@individual_account"> <meta name="twitter:url" content="https://example.com/page.html"> <meta name="twitter:title" content="Content Title"> <meta name="twitter:description" content="Content description less than 200 characters"> <meta name="twitter:image" content="https://example.com/image.jpg">
- ? Getting started with cards — Twitter Developers
- ? Test your page with the Twitter card validator
HTML
Лучшие практики
target = "_ blank"
, ваша ссылка должна иметь атрибут rel = "noopener"
, чтобы запретить табуляцию вкладок. Если вам нужно поддерживать более старые версии Firefox, используйте rel = "noopener noreferrer"
.
Тестирование HTML
Шрифты
- ? WOFF - Web Open Font Format - Caniuse.
- ? WOFF 2.0 - Web Open Font Format - Caniuse.
- ? TTF/OTF - TrueType and OpenType font support
- ? Using @font-face - CSS-Tricks
CSS
Взгляните на руководящие принципы CSS и рекомендации Sass, за которыми следуют большинство фронтенд - разработчиков. Если у вас есть сомнения в свойствах CSS, вы можете посетить CSS Reference.
- ? Reset.css
- ? Normalize.css
- ? Reboot
<div id="js-slider" class="my-slider"> <!-- или --> <div id="id-used-by-cms" class="js-slider my-slider">
Производительность
Тестирование CSS
Изображения
Чтобы получить полное представление об оптимизации изображений, ознакомьтесь с бесплатной книгой Essential Image Optimization от Addy Osmani.
Лучшие практики
- ? Imagemin
- ? Используйте ImageOptim для оптимизации ваших изображений.
<img>
имеют ширину. И ширину не указывайте в px или %.
Многие разработчики предполагают, что ширина и высота несовместимы с адаптивным веб-дизайном. Это абсолютно не так.
<img>
имеют альтернативный текст, который визуально описывает изображение.
JavaScript
Лучшие практики
- [ ] JavaScript security:
- ? Guidelines for Developing Secure Applications Utilizing JavaScript
async
или отложено с использованием атрибута defer
.
Тестирование JavaScript
Безопасность
Сканирование и проверка вашего веб-сайта
- securityheaders.io
- Observatory by Mozilla
- ASafaWeb - Automated Security Analyser for ASP.NET Websites
Лучшие практики
- ? Check HSTS preload status and eligibility
- ? HTTP Strict Transport Security Cheat Sheet - OWASP
- ? Transport Layer Protection Cheat Sheet - OWASP
- ? XSS (Cross Site Scripting) Prevention Cheat Sheet - OWASP
- ? DOM based XSS Prevention Cheat Sheet - OWASP
[ ] X-Frame-Options (XFO): Защищает ваших посетителей от атак с помощью кликов.
Производительность
Лучшие практики
Оптимизация запросов
<link rel="dns-prefetch" href="https://example.com">
[
<link rel="preconnect" href="https://example.com">
<link rel="prefetch" href="image.png">
<link rel="preload" href="app.js">
? Difference between prefetch and preload
Тестирование производительности
- ?Google PageSpeed
- ?Test your mobile speed with Google
- ?WebPagetest - Website Performance and Optimization Test
Доступность
- Вы можете посмотреть плейлист A11ycasts с Rob Dodson ?
Лучшие практики
- ? Enable / Disable JavaScript in Chrome Developer Tools
- ? Подробный гайд по отладке кода на JavaScript в Chrome Devtools
Заголовки
Навигация
<header>
имеет role="banner".
<nav>
имеет role="navigation"
<main>
имеет role="main"
Семантика
Формы
Тестирование доступности страницы
SEO
[
- ? Проверьте ваш robots.txt с помощью Google Robots Testing Tool
- ? Introduction to Structured Data - Search - Google Developers
- ? Проверьте вашу веб-страницу с помощью Structured Data Testing Tool
Перевод статьи "Front-end checklist"