Overview
The rel attribute on <a> and <link> declares how the linked resource relates to the current document. Browsers use it for security and loading priority; search engines use it to qualify links. The head checklist is in html-head-tags.
Rely on the implied noopener for target="_blank"
Modern browsers treat target="_blank" on <a>, <area>, and <form> as rel="noopener", so the opened page does not get window.opener. Adding it is harmless but not required. Add noreferrer only when you also want to suppress the Referer header; it implies noopener.
<a href="https://example.com" target="_blank" rel="noreferrer">Docs</a>Qualify links for search engines
rel="sponsored": paid links and advertisements. Google recommends it for paid placements.rel="ugc": links in user-generated content such as comments and forum posts. You may drop it for trusted contributors.rel="nofollow": use when neither value applies and you would rather not have Google associate your site with, or crawl, the linked page.
Combine values when needed: rel="sponsored nofollow".
Preload critical resources found late
<link rel="preload"> fetches a resource at high priority before the parser would discover it. Use it for a web font used above the fold, or an image referenced only from CSS or JavaScript. Always set as, and add crossorigin for fonts even from the same origin.
<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin />For the main hero or LCP <img> in the markup, fetchpriority="high" on the element is usually enough. See html-multimedia. rel="preload" is Baseline widely available; modulepreload is the equivalent for ES modules.
Preconnect to origins you will certainly use
rel="preconnect" opens the DNS, TCP, and TLS connection to a third-party origin early. Use it for a font host or CDN you know the page needs, and limit it to a few origins because idle connections cost resources.
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />rel="dns-prefetch" does only the DNS lookup; use it for origins you might need.
Prefetch the next navigation sparingly
<link rel="prefetch" href="/step-2"> fetches at idle priority for a likely next page, such as the next onboarding step. It is not Baseline, and wasted bytes hurt metered connections. Chromium browsers also support Speculation Rules for prefetching and prerendering whole pages; treat that as progressive enhancement.
Point to the canonical URL
<link rel="canonical" href="https://example.com/this-page"> goes in every indexable page’s head. Placement and behavior are in html-head-tags.
Register a manifest and declare alternates
<link rel="manifest" href="/manifest.webmanifest">points to the web app manifest (name, icons, theme color, start URL) used for install prompts.rel="alternate" type="application/rss+xml"declares a feed.rel="alternate" hreflang="fr"declares a translation for international SEO.