← Назад к вопросам

Когда нужно использовать link?

2.2 Middle🔥 131 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Когда нужно использовать <link>

Тег <link> в HTML - это один из важнейших тегов для подключения внешних ресурсов к странице. Давайте разберемся, когда и для чего его использовать.

Основное назначение <link>

Тег <link> помещается в <head> и используется для подключения внешних ресурсов к HTML документу. Он создает отношение между текущим документом и внешним ресурсом.

<!-- Правильное место для <link> - в <head> -->
<head>
  <meta charset="UTF-8">
  <title>My Page</title>
  <link rel="..." href="...">
</head>
<body>
  <!-- Содержимое страницы -->
</body>

Основные применения <link>

1. Подключение CSS файлов (самое частое)

<!-- Подключить внешнюю таблицу стилей -->
<link rel="stylesheet" href="/styles/main.css">
<link rel="stylesheet" href="/styles/responsive.css">

<!-- Подключить шрифты из Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">

2. Подключение иконки сайта (favicon)

<!-- Иконка в вкладке браузера -->
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">

<!-- Современный способ для разных размеров -->
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">

3. Указание отношения между страницами (SEO)

<!-- Помощь поисковикам понять структуру сайта -->
<link rel="canonical" href="https://example.com/page">

<!-- Связь с альтернативными версиями страницы -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page">
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page">

Важные атрибуты <link>

<!-- rel - определяет тип отношения -->
<link rel="stylesheet" href="style.css">
<!-- Возможные значения: stylesheet, icon, preconnect, prefetch, dns-prefetch, preload, alternate, canonical -->

<!-- href - адрес ресурса -->
<link rel="stylesheet" href="https://example.com/style.css">

<!-- media - условия для применения ресурса -->
<link rel="stylesheet" href="mobile.css" media="(max-width: 768px)">

<!-- type - MIME тип ресурса -->
<link rel="stylesheet" href="style.css" type="text/css">

<!-- integrity - для проверки целостности (CDN) -->
<link rel="stylesheet" href="https://cdn.example.com/style.css" integrity="sha384-...">

Оптимизация загрузки с помощью <link>

1. Preconnect - заранее подключиться к серверу

<!-- Полезно для CDN и внешних сервисов -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://cdn.example.com">

<!-- С CORS если нужно -->
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

2. DNS-prefetch - заранее резолвить DNS

<!-- Ускорить резолвинг DNS для внешних сервисов -->
<link rel="dns-prefetch" href="//analytics.google.com">
<link rel="dns-prefetch" href="//cdn.example.com">

3. Preload - загрузить ресурс заранее

<!-- Загрузить важный ресурс ДО того как он понадобится -->
<link rel="preload" href="/fonts/Inter.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/images/hero.jpg" as="image">
<link rel="preload" href="/scripts/critical.js" as="script">

4. Prefetch - загрузить ресурс когда браузер свободен

<!-- Загрузить ресурс, который может понадобиться в будущем -->
<link rel="prefetch" href="/page-2.html">
<link rel="prefetch" href="/next-page-images.jpg">

Практические примеры

Пример 1: Полный head секции сайта

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>PrepBro - Interview Preparation</title>
  <meta name="description" content="Prepare for your IT interviews">
  
  <!-- Favicon -->
  <link rel="icon" href="/favicon.ico">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  
  <!-- Оптимизация загрузки -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link rel="dns-prefetch" href="https://api.example.com">
  
  <!-- Шрифты -->
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
  
  <!-- CSS -->
  <link rel="stylesheet" href="/styles/main.css">
  <link rel="stylesheet" href="/styles/print.css" media="print">
  
  <!-- SEO -->
  <link rel="canonical" href="https://example.com/interview-questions">
</head>

Пример 2: Адаптивные стили

<!-- Загрузить стили для мобильных устройств -->
<link rel="stylesheet" href="/styles/mobile.css" media="(max-width: 768px)">

<!-- Загрузить стили для больших экранов -->
<link rel="stylesheet" href="/styles/desktop.css" media="(min-width: 1024px)">

<!-- Загрузить стили для печати -->
<link rel="stylesheet" href="/styles/print.css" media="print">

Пример 3: Безопасность с integrity

<!-- При загрузке с CDN, проверять целостность файла -->
<link 
  rel="stylesheet" 
  href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css"
  integrity="sha384-9ndCyUaIbzAi2FUarbnLutan7V7McqxjjXV58lxALcMQV3tz93xAOWQQDXmf5Zm0"
  crossorigin="anonymous"
>

Когда НЕ использовать <link>

<!-- НЕПРАВИЛЬНО: скрипты в <link> (используй <script>)
<link rel="stylesheet" href="/script.js"> - ошибка!
-->

<!-- ПРАВИЛЬНО: скрипты в <script>
<script src="/script.js"></script>
-->

<!-- НЕПРАВИЛЬНО: CSS в <script>
<script src="style.css"></script> - ошибка!
-->

<!-- ПРАВИЛЬНО: CSS в <link>
<link rel="stylesheet" href="style.css">
-->

Modern Frameworks: Next.js/React

В современных фреймворках часто не нужно писать <link> вручную - они это делают за вас.

// В Next.js используй компоненты для <head>
import Head from 'next/head';

export default function Page() {
  return (
    <>
      <Head>
        <title>My Page</title>
        <link rel="stylesheet" href="/styles.css" />
        <link rel="preconnect" href="https://fonts.googleapis.com" />
      </Head>
      <body>{/* ... */}</body>
    </>
  );
}

// Или используй next/font для шрифтов
import { Inter } from 'next/font/google';

const inter = Inter({ subsets: ['latin', 'cyrillic'] });

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

<!-- ПЛОХО: загружать все сразу -->
<link rel="stylesheet" href="/styles/header.css">
<link rel="stylesheet" href="/styles/footer.css">
<link rel="stylesheet" href="/styles/sidebar.css">
<link rel="stylesheet" href="/styles/modal.css">
<link rel="stylesheet" href="/styles/animation.css">

<!-- ХОРОШО: объединить в один файл или использовать preload для критичного -->
<link rel="preload" href="/styles/critical.css" as="style">
<link rel="stylesheet" href="/styles/critical.css">
<link rel="prefetch" href="/styles/optional.css">

Вывод

Тег <link> нужен для:

  1. Подключения CSS - основное использование
  2. Подключения шрифтов - необходимо для typography
  3. Favicon - важно для брендирования
  4. SEO - canonical, alternate, hreflang
  5. Оптимизации - preconnect, preload, prefetch

Помни, что правильное использование <link> улучшает не только функциональность страницы, но и производительность и SEO.

Когда нужно использовать link? | PrepBro