Чек-лист идеального сайта

2
16758
Добавить в избранное

Идеальный чек-лист сайта для вас может стать шпаргалкой, которую вам стоит использовать перед запуском вашего сайта или внесения правок в него.

Чек-лист основан на многолетнем опыте фронтенд — разработчиков. Давайте взглянем на него:

Содержание

  1. Заголовок;
  2. HTML;
  3. Веб-шрифты;
  4. CSS;
  5. Изображения;
  6. JavaScript;
  7. Безопасность;
  8. Производительность;
  9. Доступность;
  10. SEO.

Все элементы в чек-листе сайта необходимы для большинства проектов, но некоторые элементы не являются существенными (например, вам не понадобится RSS-канал, если у вас сайт — визитка).

В нашей статье мы используем 3 уровня важности элементов:

LowНизкая важность элемента означает, что элемент рекомендуется, но может не использоваться в некоторых конкретных ситуациях.

MediumСредняя важность элемента означает, что элемент настоятельно рекомендуется. Но все таки может не использоваться в конкретных случаях. Некоторые элементы, если их пропустить, могут иметь плохие последствия с точки зрения производительности или SEO.

HighВысокая важность элемента означает, что элемент не может быть пропущен. В первую очередь стоит начинать тестирование именно с этих элементов.

У некоторых ресурсов есть смайлик, который поможет вам понять, что мы имеем в виду:

  • 📖: Документация или статья;
  • 🛠: Онлайн инструмент;
  • 📹: Медиа контент.

Приступим к обзору чек-листа.

Заголовок

Здесь вы сможете найти список всего, что должно быть в теге head HTML — документа.

Метатеги

High[ ] Doctype: предназначен для указания типа текущего документа. Этот мета тег всегда находится в самом начале странички и имеет вот такой вид:

Следующие 3 метатега (Charset, X-UA Compatible и Viewport) должны быть первыми в теге head.

High[ ] Charset: метатег, предназначенный для объявления кодировки документа.

Medium[ ] X-UA-Compatible: метатег, предназначенный для указания версии Internet Explorer. Указание версии необходимо для комфортного отображения сайта.

High[ ] Viewport: с помощью этого метатега мы указываем, как должен выглядеть наш сайт на разных платформах и устройствах.

High[ ] Title: Название используется на всех страницах (SEO: не более 65 символов, включая название сайта).

High[ ] Description: С помощью этого метатега мы указываем метаописание страницы. Оно уникально и не может иметь более 150 символов.

Medium[ ] Favicons: данный метатег предназначен для задания иконки сайта. Если у вас есть только favicon.ico, поместите его в корень вашего сайта.  По — прежнему хорошей практикой является ссылка на него, используя приведенный ниже пример. Иконка рекомендуется в формате PNG (размеры: 32x32px).

Low[ ] Apple Touch Icon: создание значка для Apple устройств.

Medium[ ] Canonical: Используйте rel = «canonical», чтобы избежать дублирования контента.

HTML теги

High[ ] Language tag: указание языка вашего сайта.

Low[ ] Alternate language: указание языка одной из ваших страниц вашего сайта.

Low[ ] RSS feed: Если ваш проект является блогом или имеет статьи,то обязательно должна быть ссылка на RSS ленту вашего сайта.

Medium[ ] CSS Critical: данный тег собирает все CSS, используемые для визуализации в видимой части страницы. Он встроен перед вашим основным вызовом CSS и между <style></ style>.

Социальные метатеги

Facebook OG и Twitter Cards для любого веб-сайта настоятельно рекомендуются. Другие метатеги социальных сетей можно рассмотреть, если вам необходимо их использование.

Low[ ] Facebook Open Graph: Facebook Open Graph (OG) необходим для тех, кто использует для своего сайта группу или страницу в Facebook.

Low[ ] Twitter Card:

HTML

Лучшие практики

High[ ] HTML5 Semantic Elements: Семантические элементы HTML5 используются соответствующим образом (заголовок, раздел, нижний колонтитул, основной …).

High[ ] Error pages: Ошибка 404 и 5xx. Помните, что страница ошибок 5xx должна иметь встроенный CSS (без внешнего вызова на текущем сервере).

Medium[ ] Noopener: Если вы используете внешние ссылки с target = "_ blank", ваша ссылка должна иметь атрибут rel = "noopener", чтобы запретить табуляцию вкладок. Если вам нужно поддерживать более старые версии Firefox, используйте rel = "noopener noreferrer".

Low[ ] Clean up comments: Ненужный код необходимо удалить перед публикацией сайта или страницы.

Тестирование HTML

High[ ] W3C compliant: Все страницы должны быть протестированы с помощью валидатора W3C для определения возможных проблем в HTML-коде.

High[ ] HTML Lint: Используйте инструменты, которые помогут проанализировать любые проблемы, возникающие в HTML-коде.

High[ ] Desktop Browsers: Все страницы должны быть протестированы на всех современных настольных браузерах (Safari, Firefox, Chrome, Internet Explorer, EDGE …).

High[ ] Mobile Browsers: Все страницы должны быть протестированы на всех современных мобильных браузерах (Native browser, Chrome, Safari…).

High[ ] Link checker: Убедитесь, что на вашем сайте отсутствуют битые ссылки.

Medium[ ] Adblockers test: Веб-сайт должен правильно демонстрировать ваш контент, с включенными рекламными блоками.

Шрифты

High[ ] Webfont format: шрифты WOFF, WOFF2 и TTF поддерживаются всеми современными браузерами.

High[ ] Webfont size: Размеры шрифтов не должны превышать 2 МБ.

CSS

Взгляните на руководящие принципы CSS и рекомендации Sass, за которыми следуют большинство фронтенд — разработчиков. Если у вас есть сомнения в свойствах CSS, вы можете посетить CSS Reference.

High[ ] Responsive Web Design: Убедитесь, что ваш веб-сайт использует адаптивный веб-дизайн.

Medium[ ] CSS Print: Каждой странице соответствует корректная таблица стилей.

Medium[ ] Preprocessors: На вашей странице используется препроцессор CSS (предпочтение отдается Sass).

High[ ]  Unique ID: Если используются идентификаторы, то они должны быть уникальны для каждой страницы.

High[ ] Reset CSS: Сброс CSS (сброс, нормализация или перезагрузка) используется. (Если вы используете CSS-структуру, такую как Bootstrap или Foundation, в нее уже включен Normalize).

Low[ ] JS prefix: Все классы JavaScript tначинаются с js- и не используются в CSS-файлах.

High[ ] CSS embed or line: Избегайте любой ценой использования встроенного CSS: используется только по уважительным причинам (например: background-image для слайдера, критический CSS).

High[ ] Vendor prefixes: Префиксы поставщика CSS используются и генерируются соответственно совместимости с поддержкой браузера.

Производительность

High[ ] Concatenation: Файлы CSS объединены в один файл.

High[ ] Minification: Все файлы CSS уменьшены.

Medium[ ] Non-blocking: Файлы CSS должны быть неблокируемыми, чтобы не отнимать время загрузки сайта.

Low[ ] Unused CSS: Удалите неиспользуемый CSS код.

Тестирование CSS

High[ ] Stylelint: Все файлы CSS или SCSS без ошибок.

High[ ] Responsive web design: Все страницы были протестированы на следующих разрешениях: 320 пикселей, 768 пикселей, 1024 пикселей (может быть больше).

Medium[ ] CSS Validator: CSS файлы были протестированы, и исправлены соответствующие ошибки.

High[ ] Reading direction: Все страницы должны быть протестированы для языков LTR и RTL, если они нуждаются в их поддержке.

Изображения

Чтобы получить полное представление об оптимизации изображений, ознакомьтесь с бесплатной книгой Essential Image Optimization  от Addy Osmani.

Лучшие практики

High[ ] Optimization: Все изображения должны быть оптимизированы для отображения в браузере.

  • 🛠 Imagemin
  • 🛠 Используйте ImageOptim для оптимизации ваших изображений.

Medium[ ] Sprite: Маленькие изображения находятся в файле CSS спрайтов (в случае значков они могут быть в виде спрайта SVG).

High[ ] Width and Height: Убедитесь, что все <img> имеют ширину. И ширину не указывайте в px или %.

Многие разработчики предполагают, что ширина и высота несовместимы с адаптивным веб-дизайном. Это абсолютно не так.

High[ ] Alternative text:  Убедитесь, что все<img> имеют альтернативный текст, который визуально описывает изображение.

JavaScript

Лучшие практики

High[ ] JavaScript Inline:  Убедитесь, что у вас нет встроенного JavaScript-кода (смешанного с вашим кодом HTML).

High[ ] Concatenation: Файлы JavaScript объединены в одном файле.

High[ ] Minification: Файлы JavaScript уменьшены (вы можете добавить суффикс .min).

Medium[ ] Non-blocking: Файлы JavaScript загружаются асинхронно, используя async или отложено с использованием атрибута defer.

Low[ ] Modernizr: Если вам нужно настроить таргетинг на некоторые специальные функции, вы можете использовать пользовательский Modernizr для добавления классов в свой тег <html>;

Тестирование JavaScript

High[ ] ESLint: нету ошибок ESLint (на основе правил конфигурации или стандартов).

Безопасность

Сканирование и проверка вашего веб-сайта

Лучшие практики

Medium[ ] HTTPS: HTTPS используется на всех страницах и для всего внешнего контента (плагины, изображения …).

Medium[ ] HTTP Strict Transport Security (HSTS): Заголовок HTTP настроен на «Strict-Transport-Security».

High[ ] Cross Site Request Forgery (CSRF): Вы гарантируете, что все запросы, сделанные на вашей серверной стороне, являются законными и приходят с вашего сайта / приложения, чтобы предотвратить атаки CSRF.

High[ ] Cross Site Scripting (XSS): На вашей странице или веб-сайте нет проблем с XSS.

Medium[ ] Content Type Options: Предотвращает попытку Google Chrome и Internet Explorer анализа типа содержимого ответа сервера.

Medium

[ ] X-Frame-Options (XFO): Защищает ваших посетителей от атак с помощью кликов.

Производительность

Лучшие практики

High[ ] Weight page: Вес каждой страницы составляет от 0 до 500 КБ.

Medium[ ] Minified: Ваш HTML минимизирован.

Medium[ ] Lazy loading: Изображения, скрипты и CSS должны быть загружены для улучшения времени отклика текущей страницы (см. Подробности в соответствующих разделах).

High[ ] Cookie size: Если вы используете файлы cookie, убедитесь, что каждый файл cookie не превышает 4096 байт, а ваше доменное имя не содержит более 20 файлов cookie.

Оптимизация запросов

Low[ ] DNS resolution: DNS сторонних служб, которые могут потребоваться, предварительно разрешаются в режиме простоя с использованием dns-prefetch.

[LowPreconnection: Поиск DNS, согласование TCP и согласование TLS с службами, которые понадобятся в ближайшее время, выполняются заранее во время простоя с использованием preconnect.

Low[ ] Prefetching: Ресурсы, которые будут необходимы в ближайшее время (например, загруженные изображения), запрашиваются заранее в режиме простоя с использованием предварительной выборки.

Low[ ] Preloading: Ресурсы, необходимые на текущей странице (например, скрипты, размещенные в конце <body>) загружаются предварительно.

📖 Difference between prefetch and preload

Тестирование производительности

High[ ] Google PageSpeed: Все ваши страницы были протестированы (не только главная страница) и имеют оценку не менее 90/100.

Доступность

Лучшие практики

Medium[ ] Progressive enhancement: Основные функции, такие как основная навигация и поиск, должны работать без включенного JavaScript.

Medium[ ] Color contrast: Цветовая контрастность должна, по крайней мере, должна соответствовать WCAG AA (AAA для мобильных устройств).

Заголовки

High[ ] H1: На всех страницах есть заголовок H1, который не является названием веб-сайта.

High[ ] Headings: Заголовки должны использоваться нужным образом в правильном порядке (от H1 до H6).

Навигация

High[ ] Role banner: <header> имеет role="banner".

High[ ] Role navigation: <nav> имеет role="navigation"

High[ ] Role main: <main> имеет role="main"

Семантика

Medium[ ] Specific HTML5 input types are used: Это особенно важно для мобильных устройств, которые показывают индивидуальные клавиатуры и виджеты для разных типов.

Формы

High[ ] Label: Метка связана с каждым элементом входной формы. В случае, если ярлык не может быть отображен, вместо этого используйте aria-label.

Тестирование доступности страницы

High[ ] Accessibility standards testing: Используйте инструмент WAVE, чтобы проверить, соответствует ли ваша страница стандартам доступности.

High[ ] Keyboard navigation: Проверяйте свой сайт, используя только свою клавиатуру. Все интерактивные элементы должны быть доступны для использования.

Medium[ ] Screen-reader: Все страницы были протестированы в режиме чтения (VoiceOver, ChromeVox, NVDA или Lynx).

High[ ] Focus style: Если фокус отключен, он заменяется видимым состоянием в CSS.

SEO

High[ ] Google Analytics: Google Analytics установлен и правильно настроен;

Medium[ ] Headings logic: Заголовок текста помогает понять содержание на текущей странице.

[Highsitemap.xml: Файл sitemap.xml существует и был отправлен в Google Search Console (инструмент Google для веб-мастеров).

High[ ] robots.txt: Файл robots.txt не блокирует веб-страницы.

High[ ] Structured Data: Страницы, с использованием структурированных данных, тестируются, и без ошибок. Структурированные данные помогают понимать содержимое на текущей странице.

Medium[ ] Sitemap HTML: Карта сайта HTML доступна по ссылке в нижнем колонтитуле вашего сайта.

Перевод статьи «Front-end checklist«

Интересуетесь веб-разработкой?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Добавить комментарий