The essential four
Every page needs these. Miss one and something visibly breaks — rendering, mobile layout, or your search snippet.
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Your Page Title | Brand</title> <meta name="description" content="One clear sentence that earns the click.">
charset— must be the first thing in<head>(within the first 1024 bytes) or the browser may re-parse the page.UTF-8, always.viewport— without it, mobile browsers render at desktop width and zoom out. This one tag is the difference between a mobile-friendly page and an unreadable one.title— technically an element, not a meta tag, but it's the single most important thing in the head for search. See length & truncation.description— no ranking effect, but it's your ad copy in the results.
Crawling & indexing control
These tell search engines what to do with the page. They're optional — but when you need them, nothing else will do.
<meta name="robots" content="index, follow"> <meta name="robots" content="noindex, follow"> <meta name="robots" content="max-image-preview:large, max-snippet:-1"> <link rel="canonical" href="https://yoursite.com/the-real-url">
| Value | Effect |
|---|---|
index / noindex | Allow or forbid this page in search results. (Indexing is the default, so you only need noindex.) |
follow / nofollow | Whether to pass link equity through links on the page. |
max-image-preview:large | Permits a big thumbnail in results — worth setting on visual content. |
canonical | Names the definitive URL when the same content is reachable at several addresses (tracking params, http/https, trailing slash). Prevents duplicate-content dilution. |
robots.txt and adding noindex. If the crawler is blocked, it can never read the noindex — so the page can still appear in results as a bare URL. Pick one: to remove a page, allow crawling and use noindex.
Social sharing: Open Graph & Twitter
These control the card that appears when your link is posted to Facebook, LinkedIn, X, Slack, Discord and WhatsApp. Not a ranking factor, but they decide whether a shared link looks professional or blank.
<meta property="og:title" content="Your Page Title"> <meta property="og:description" content="A short, compelling summary."> <meta property="og:image" content="https://yoursite.com/preview.jpg"> <meta property="og:url" content="https://yoursite.com/page"> <meta property="og:type" content="website"> <meta name="twitter:card" content="summary_large_image">
Note the split: Open Graph uses property=, Twitter uses name=. Get that wrong and the tag is silently ignored. The full treatment — image sizing, card types, per-platform behaviour — is in Open Graph & Twitter Cards.
Nice-to-have, situational
<meta name="theme-color" content="#0E9F8E">— tints the browser UI on mobile and the address bar in some contexts. Cheap polish.<meta name="referrer" content="strict-origin-when-cross-origin">— controls how much of your URL is sent as the referrer to other sites. A privacy nicety.<link rel="alternate" hreflang="…">— only if you publish the same page in multiple languages. Wrong hreflang is worse than none.<meta name="author" content="…">— harmless, ignored by ranking, occasionally used by readers/tools.
Safe to delete
If a template or old plugin still emits these, remove them. None help; some add clutter or a false sense of control.
| Tag | Verdict |
|---|---|
meta name="keywords" | Dead. Google ignored it over a decade ago; it only advertises your target keywords to competitors. |
meta name="revisit-after" | Myth. No major crawler has ever honoured it. Crawl frequency is Google's decision. |
meta name="robots" content="index, follow" | Redundant. That's the default with no tag at all. Only add robots to change behaviour. |
msapplication-*, browserconfig.xml | Obsolete. Windows Live Tiles are gone. |
meta name="generator" | Harmless but pointless — just tells the world which CMS you run. |
A sensible default head
For a typical content page, this is a complete, modern set — nothing missing, nothing dead:
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Page Title | Brand</title> <meta name="description" content="One clear, specific sentence."> <link rel="canonical" href="https://yoursite.com/page"> <meta property="og:title" content="Page Title"> <meta property="og:description" content="A short, compelling summary."> <meta property="og:image" content="https://yoursite.com/preview.jpg"> <meta property="og:url" content="https://yoursite.com/page"> <meta property="og:type" content="website"> <meta name="twitter:card" content="summary_large_image"> <meta name="theme-color" content="#0E9F8E">
Generate this exact block for your own values on the home page — fill in the fields, copy the output, paste it before </head>.
Next: title & description length · Open Graph & Twitter Cards · advanced tips