Angular signals
+...
+ Effects +diff --git a/src/pages/html/index.md b/src/pages/html/index.md index 6d0be16..0d4dd2b 100644 --- a/src/pages/html/index.md +++ b/src/pages/html/index.md @@ -3440,13 +3440,59 @@ component. **Короткий ответ** -сопоставляет layout viewport ширине устройства. Без него мобильный браузер может отрендерить страницу в широком -виртуальном viewport и уменьшить ее целиком. +`` связывает layout viewport с шириной устройства, +чтобы responsive CSS работал в ожидаемом масштабе. Без него мобильный browser может использовать широкий virtual +viewport и затем уменьшить страницу целиком. **Полный ответ** -`` сопоставляет layout viewport ширине устройства. -Без него мобильный браузер может отрендерить страницу в широком виртуальном viewport и уменьшить ее целиком. +Mobile browser исторически мог рендерить desktop-oriented страницы в virtual viewport шириной около desktop layout, а +затем масштабировать результат, чтобы он помещался на маленький экран. Для responsive layout это приводит к тому, что +media queries видят не ту ширину, которую ожидает разработчик. + +Типичная настройка: + +```html + +``` + +Здесь: + +- `width=device-width` говорит использовать CSS viewport, соответствующий ширине устройства; +- `initial-scale=1` задает начальный zoom 1:1 между CSS pixels и initial viewport scale. + +После этого обычный responsive CSS работает предсказуемее: + +```css +@media (width <= 48rem) { + .layout { + grid-template-columns: 1fr; + } +} +``` + +Важно не путать viewport meta с полноценной mobile optimization. Он не исправляет сам по себе: + +- слишком мелкий текст; +- горизонтальный overflow; +- маленькие touch targets; +- тяжелые изображения; +- неудобную navigation. + +Также не стоит без серьезной причины запрещать zoom настройками вроде `user-scalable=no` или жесткого `maximum-scale=1`: +пользователь может нуждаться в увеличении интерфейса из-за зрения или временных условий. + +Есть дополнительные viewport directives, например `viewport-fit=cover` для устройств с display cutouts, но они нужны +только под конкретный layout и не заменяют safe-area handling. + +Для SEO сам meta viewport не является «магическим ranking tag». Его ценность в корректном mobile experience и responsive +rendering. Search systems оценивают страницу шире, чем наличие одной строки metadata. + +На интервью: **viewport meta задает browser модель layout viewport для mobile; после этого responsive design все равно +реализуется HTML/CSS и проверяется на реальных размерах и zoom**. @@ -3458,13 +3504,56 @@ component. **Короткий ответ** -Favicon — набор иконок сайта для вкладок, bookmarks, history и устройств. Его подключают через , а форматы и размеры -выбирают с учетом целевых браузеров и manifest приложения. +Favicon — иконка сайта, которую browser и другие clients используют во вкладках, bookmarks, history и search UI. +Основной вариант подключают через ``; иконка должна иметь стабильный URL, подходящий формат +и размеры для целевых surfaces. **Полный ответ** -Favicon — набор иконок сайта для вкладок, bookmarks, history и устройств. Его подключают через ``, а -форматы и размеры выбирают с учетом целевых браузеров и manifest приложения. +Favicon — не одна обязательная картинка определенного формата, а **site icon**, которую разные clients могут +использовать в разных surfaces. + +Базовый вариант: + +```html + +``` + +Можно дополнительно предоставить raster fallback или platform-specific icons: + +```html + + +``` + +Практические требования зависят от consumer. Browser tab, mobile home screen и search result могут выбирать разные +resources. Поэтому favicon pipeline обычно включает несколько размеров/formats, но не нужно генерировать десятки файлов +без понятной матрицы поддержки. + +Для Google Search favicon задается через `link` на home page. Google требует square image не меньше 8×8 и рекомендует +более 48×48 для качества на разных surfaces; URL лучше держать стабильным, а home page и icon должны быть доступны +crawler. + +Favicon не заменяет brand metadata и не гарантирует показ в search result: consumer сам решает, где и какую icon +отобразить. + +Еще одна практическая ошибка — отдавать icon через URL, который требует auth/cookies. В public site favicon должен быть +доступен без пользовательской session. + +На интервью: **favicon — ресурс идентификации сайта, подключаемый через `rel=icon`; важно различать browser support, +platform icons и требования конкретных search/social consumers**. @@ -3476,13 +3565,59 @@ Favicon — набор иконок сайта для вкладок, bookmarks, **Короткий ответ** -указывает предпочтительный URL для страниц с одинаковым или очень похожим content. Это сигнал поисковой системе против -дублирования, а не redirect и не механизм безопасности. +`rel="canonical"` указывает предпочитаемый URL среди duplicate или очень похожих страниц. Для поисковой системы это +сильный canonicalization signal, но не redirect и не абсолютная директива: crawler может выбрать другой canonical, если +остальные сигналы противоречат. **Полный ответ** -`` указывает предпочтительный URL для страниц с одинаковым или очень похожим content. Это -сигнал поисковой системе против дублирования, а не redirect и не механизм безопасности. +Один и тот же content часто доступен по нескольким URL: + +```text +/products/42 +/products/42?utm_source=email +/products/42?sort=popular +``` + +Если это фактически одна страница, можно указать representative URL: + +```html + +``` + +Canonicalization нужна не только для «штрафа за duplicate content». Она помогает: + +- консолидировать сигналы нескольких URL; +- уменьшить путаницу в аналитике/search results; +- выбрать URL, который лучше показывать пользователю; +- не тратить crawl effort без необходимости на параметры/duplicates. + +Но `rel="canonical"` — **не redirect**. Пользователь остается на текущем URL, а поисковая система рассматривает +annotation как сигнал. + +Для Google redirects и `rel="canonical"` являются сильными canonicalization signals, sitemap inclusion — более слабым. +Несколько согласованных сигналов усиливают preference, но Google все равно может выбрать другой canonical. + +Практические правила: + +- canonical URL обычно делают абсолютным; +- canonical page часто содержит self-referencing canonical; +- internal links лучше вести на canonical URL; +- sitemap должен быть согласован с canonical policy; +- нельзя случайно canonicalize разные по смыслу страницы в одну; +- canonical и `noindex` решают разные задачи. + +Для JavaScript sites лучше отдать canonical уже в HTML source и не менять его на другое значение после bootstrap. +Multiple conflicting canonical tags делают поведение менее предсказуемым. + +Если контент реально перемещен и старый URL больше не нужен, обычно лучше server redirect, а не canonical как имитация +redirect. + +На интервью: **canonical — hint о representative duplicate URL, который должен быть согласован с redirects, links и +sitemap; он не меняет navigation и не гарантирует выбор поисковой системы**. @@ -3494,13 +3629,61 @@ Favicon — набор иконок сайта для вкладок, bookmarks, **Короткий ответ** -title задает название документа во вкладке и часто заголовок поискового результата. Meta description кратко описывает -страницу и может использоваться как snippet. Они должны быть уникальными и соответствовать реальному содержимому. +`
...
+ Effects +