Lessons
-
Introduction
-
SEO
- Broken links
- Site map
- Semantic markup
- Robots.txt
- References
- Text
- Duplicates
- Basic
- Pictures
-
Speed
-
Minification
-
Minification of CSS to reduce its volume
Minification of the embedded JavaScript code of the page
Minification of the embedded CSS code of the page
Minification of images without loss of quality
Minification of JavaScript files to reduce its volume
Unused CSS code
Data optimization:Image URLs
Animated image format MP4, WEBM, SVG instead of GIF and WEBP
Unused JavaScript code
Using the WebP format in images
Too high-quality images without using compression
Suitable video bitrate
-
Reducing requests
-
An overabundance of small pictures
Grouping CSS files
Grouping JavaScript files
An overabundance of font files
Availability of end-to-end CSS, JS files
The presence of a monochrome font
Uploading duplicate files
Using JavaScript facades
Redirecting JavaScript code
Adding lazy loading
Redirect from/to www version
-
Fonts
-
Specifying default fonts
Font Optimization
An overabundance of monochrome icons
- Loading time
- Server Settings
- Pictures
-
The first content
-
The sequence of connecting JavaScript files
Font display mode
Setting up a pre-connection
Removing lazy loading
Long JavaScript code execution time
File upload delayed or on demand
The server is located in the same country where the users of the site live
No requests to another country that cause page loading to be blocked
-
Minification
-
Mobility
-
Screen support
-
Adapting the layout to a Full HD computer monitor
Adapting the layout for a horizontal tablet
Adapting the layout for a horizontal phone
Screenshots for the mini-report
How blocks break the page layout
Adapting the layout to an HD computer monitor
Adapting the layout for a vertical tablet
Adapting the layout for a vertical phone
- Comfort
-
Screen support
- Bugs
-
Convenience
- Social networks
- Web Application Manifest
- Favicons
- Basic
- Text readability
-
Vulnerabilities
- Encrypted connection
- Exploits
- Vulnerabilities
An overabundance of monochrome icons
Glyph fonts like Font Awesome, Fontelico, Entypo, Typicons contain hundreds of monochrome icons. But the site interfaces use only a few dozen glyphs. By removing the extra glyphs, you will reduce the file size. This will speed up page loading. In the service [fontello.com ](https://fontello.com /) You can make your own set of icons of popular glyph fonts. Glyph font editing is also available in the service [icomoon.io ](https://icomoon.io/app /).
We recommend using more modern practices and transferring icons to a CSS file in the form of data URL images in SVG format. Uploading several tens of kilobytes in a CSS file with icons is faster than making an additional request for a separate file. And it’s easier for a programmer to edit the CSS file code than to use a special service to edit a set of glyph fonts.
Example code that uses fonts with monochrome icons and image data URL:
<?php
// Получаем список глифов доступных в файле
$data = exec("fc-query --format='%{charset}\\n' fa-regular-400.woff2", $output);
$data = array_pop($output);
$data = explode(' ', $data);
$glyphs = [];
foreach($data as $range) {
$range = explode('-', $range);
$range[1] = hexdec($range[1] ?? $range[0]);
$range[0] = hexdec($range[0]);
for($i = $range[0]; $i <= $range[1]; $i++) {
$glyphs[] = $i;
}
}
?><!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
@font-face {
font-family: 'Roboto';
src: url('./fa-regular-400.woff2') format('woff2');
font-style: normal;
font-weight: 400;
}
body {
font-family: Roboto;
}
div {
border: 1px solid #000;
margin: 2px;
padding: 3px;
border-radius: 3px;
display: inline-block;
min-width: 20px;
text-align: center;
}
</style>
</head>
<body>
<h1>В шрифте Font Awesome fa-regular-400.woff2 <?=sizeof($glyphs)?> символов</h1>
<?php foreach($glyphs as $glyph) { ?>
<div>&#<?=$glyph?>;</div>
<?php } ?>
</body>
</html>