Codectionary / Developer documentation / HTML

<link>

The <link> element establishes a relationship between the current document and an external resource, most commonly a stylesheet. It lives in the <head> and is a void element. Beyond stylesheets, <link> is also used for favicons, preloading resources, and specifying alternate versions of a page.

Syntax

<link rel="stylesheet" href="styles.css">

Examples

Linking a Stylesheet

The most common use — connecting an external CSS file.

<link rel="stylesheet" href="/css/main.css">

Favicon

Setting the small icon shown in browser tabs.

<link rel="icon" type="image/png" href="/favicon.png">

Preloading a Font

Hinting the browser to fetch a critical resource earlier.

<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin>

Attributes

  • rel (stylesheet | icon | preload | canonical): The relationship between the current document and the linked resource
  • href (URL): The path to the linked resource
  • type (string): The MIME type of the linked resource

Best practices

  • Place stylesheet <link> tags in <head> so styles are ready before content renders, avoiding a flash of unstyled content
  • Use rel="preload" sparingly, only for genuinely critical above-the-fold resources
  • Always include a favicon link — browsers will request /favicon.ico by default even without one, so being explicit avoids wasted requests
  • Use rel="canonical" to tell search engines the preferred URL when the same content is reachable from multiple paths

Browser compatibility

Support applies to the named feature, not every attribute or behaviour in this article. Versions refer to browsers, not operating systems.

<link>

Desktop

Chrome
Supported
From 1
Firefox
Supported
From 1
Safari
Supported
By 4 (possibly earlier)
Edge
Supported
From 12
Opera
Supported
By 12.1 (possibly earlier)

Mobile

Safari on iOS
Supported
By 3.2 (possibly earlier)
Chrome for Android
Supported
From 18
Firefox for Android
Supported
From 4
Samsung Internet
Supported
From 1.0

MDN BCD record for this feature · MDN reference

Support history and limitations

Chrome

  • From 1

Firefox

  • From 1

Safari

  • By 4 (possibly earlier)

Edge

  • From 12

Opera

  • By 12.1 (possibly earlier)

Safari on iOS

  • By 3.2 (possibly earlier)

Chrome for Android

  • From 18

Firefox for Android

  • From 4

Samsung Internet

  • From 1.0
<link> rel

Desktop

Chrome
Supported
From 1
Firefox
Supported
From 1
Safari
Supported
From 1
Edge
Supported
From 12
Opera
Supported
From 9

Mobile

Safari on iOS
Supported
From 1
Chrome for Android
Supported
From 18
Firefox for Android
Supported
From 4
Samsung Internet
Supported
From 1.0

MDN BCD record for this feature · MDN reference

Support history and limitations

Chrome

  • From 1

Firefox

  • From 1

Safari

  • From 1

Edge

  • From 12

Opera

  • From 9

Safari on iOS

  • From 1

Chrome for Android

  • From 18

Firefox for Android

  • From 4

Samsung Internet

  • From 1.0
<link> href

Desktop

Chrome
Supported
From 1
Firefox
Supported
From 1
Safari
Supported
By 4 (possibly earlier)
Edge
Supported
From 12
Opera
Supported
By 12.1 (possibly earlier)

Mobile

Safari on iOS
Supported
By 3.2 (possibly earlier)
Chrome for Android
Supported
From 18
Firefox for Android
Supported
From 4
Samsung Internet
Supported
From 1.0

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 1

Firefox

  • From 1

Safari

  • By 4 (possibly earlier)

Edge

  • From 12

Opera

  • By 12.1 (possibly earlier)

Safari on iOS

  • By 3.2 (possibly earlier)

Chrome for Android

  • From 18

Firefox for Android

  • From 4

Samsung Internet

  • From 1.0
<link> type

Desktop

Chrome
Supported
From 1
Firefox
Supported
From 1
Safari
Supported
By 4 (possibly earlier)
Edge
Supported
From 12
Opera
Supported
By 12.1 (possibly earlier)

Mobile

Safari on iOS
Supported
By 3.2 (possibly earlier)
Chrome for Android
Supported
From 18
Firefox for Android
Supported
From 4
Samsung Internet
Supported
From 1.0

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 1

Firefox

  • From 1

Safari

  • By 4 (possibly earlier)

Edge

  • From 12

Opera

  • By 12.1 (possibly earlier)

Safari on iOS

  • By 3.2 (possibly earlier)

Chrome for Android

  • From 18

Firefox for Android

  • From 4

Samsung Internet

  • From 1.0
<link> rel · icon

Desktop

Chrome
Supported
From 4
Firefox
Supported
From 2
Safari
Supported
From 3.1
Edge
Supported
From 12
Opera
Supported
From 9

Mobile

Safari on iOS
Not supported
Chrome for Android
Supported
From 18
Firefox for Android
Supported
From 4
Samsung Internet
Supported
From 4.0

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 4 · If both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.).

Firefox

  • From 2 · Before Firefox 83, the crossorigin attribute is not supported for rel="icon". · The media attribute is not supported for rel="icon", see bug 1603885.

Safari

  • From 3.1 · If both ICO and PNG are available, will ALWAYS use ICO file, regardless of sizes set. (Per caniuse.com.)

Edge

  • From 12 · In version 79 and later (Blink-based Edge), if both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.)

Opera

  • From 9 · In version 15 and later (Blink-based Opera), if both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.)

Safari on iOS

  • Not supported · Does not use favicons at all (but may have alternative for bookmarks, etc.). (Per caniuse.com.)

Chrome for Android

  • From 18

Firefox for Android

  • From 4

Samsung Internet

  • From 4.0
<link> rel · preload

Desktop

Chrome
Supported
From 50
Firefox
Supported
From 85
Safari
Supported
From 11.1
Edge
Supported
From 79
Opera
Supported
From 37

Mobile

Safari on iOS
Supported
From 11.3
Chrome for Android
Supported
From 50
Firefox for Android
Supported
From 85
Samsung Internet
Supported
From 5.0

MDN BCD record for this feature · MDN reference

Support history and limitations

Chrome

  • From 50

Firefox

  • From 85
  • From 56 · Removed in 57 · Last supported version: 56 · Partial implementation · Disabled due to various web compatibility issues (e.g. bug 1405761).

Safari

  • From 11.1

Edge

  • From 79

Opera

  • From 37

Safari on iOS

  • From 11.3

Chrome for Android

  • From 50

Firefox for Android

  • From 85
  • From 56 · Removed in 57 · Last supported version: 56 · Partial implementation · Disabled due to various web compatibility issues (e.g. bug 1405761).

Samsung Internet

  • From 5.0
<link> as

Desktop

Chrome
Supported
From 50
Firefox
Supported
From 56
Safari
Supported
From 10
Edge
Supported
From 17
Opera
Supported
From 37

Mobile

Safari on iOS
Supported
From 10
Chrome for Android
Supported
From 50
Firefox for Android
Supported
From 56
Samsung Internet
Supported
From 5.0

MDN BCD record for this feature

Support history and limitations

Chrome

  • From 50

Firefox

  • From 56

Safari

  • From 10

Edge

  • From 17

Opera

  • From 37

Safari on iOS

  • From 10

Chrome for Android

  • From 50

Firefox for Android

  • From 56

Samsung Internet

  • From 5.0
<link> crossorigin

Desktop

Chrome
Supported
From 34
Firefox
Supported
From 18
Safari
Supported
From 10
Edge
Supported
From 17
Opera
Supported
From 21

Mobile

Safari on iOS
Supported
From 10
Chrome for Android
Supported
From 34
Firefox for Android
Supported
From 18
Samsung Internet
Supported
From 2.0

MDN BCD record for this feature · MDN reference

Support history and limitations

Chrome

  • From 34

Firefox

  • From 18 · Before Firefox 83, crossorigin is not supported for rel="icon".

Safari

  • From 10

Edge

  • From 17

Opera

  • From 21

Safari on iOS

  • From 10

Chrome for Android

  • From 34

Firefox for Android

  • From 18 · Before Firefox for Android 83, crossorigin is not supported for rel="icon".

Samsung Internet

  • From 2.0

MDN BCD 8.1.5 · Dataset built 2026-10-08 · Mapping reviewed 2026-10-21. These dates are not individual browser-test or claim-verification dates. Unknown means the data does not establish support.

HTML Living Standard

Specifications & further reading