Developer FIELD NOTES · 4 MIN READ
Meta Tags That Search Engines Actually Read
Which meta tags matter for SEO and sharing: title and description, canonical URLs, Open Graph and Twitter cards, JSON-LD structured data, and the tags that stopped mattering.
Of the dozens of meta tags a page can declare, search engines read a handful with any care: the title, the description, the canonical URL, and the structured data describing what the page is. Social previews add a second layer — Open Graph and Twitter cards — and everything else is either invisible to rankings or ignored entirely.
The two tags that shape your snippet
The <title> element (an element rather than a meta tag, but always grouped with them) is the clickable headline in search results and the text in the browser tab. Engines truncate it around 50–60 characters, so the distinctive words belong up front. The <meta name="description"> is your bid for the summary paragraph beneath the headline — roughly 140–160 characters before engines trim or replace it. Search engines may rewrite either one to match the query, but a clear title and an honest description still win more often than they lose: the description is your one chance to answer "why this page?" before the click. Keyword stuffing in either tag reads as spam to both algorithms and humans.
Canonical: the tie-breaker for duplicates
The same content is often reachable at several URLs — with tracking parameters, with and without a trailing slash, over both http and https. Search engines pick one "canonical" version to index, and the <link rel="canonical"> tag is your formal vote for which one it should be. Get it wrong and your page competes with itself, splitting ranking signals across clones. A canonical URL must be absolute and should be the exact form the page redirects to. For URLs that moved permanently, a canonical tag is not enough — the server must answer with a 301 redirect, as HTTP Status Codes Explained details, so the address bar and the index both move.
Open Graph and Twitter cards
When a link is shared, the social network's crawler reads a different set of tags than the search engine does. Open Graph (og:title, og:description, og:url, og:image) defines the card that Facebook, LinkedIn, Slack, and most messaging apps render; the Twitter names (twitter:card, twitter:title, twitter:site) customize how it looks on X, falling back to the Open Graph values when absent. The card type summary_large_image asks for the big image treatment; og:image wants an absolute URL to a picture roughly 1200×630. These crawlers famously execute little or no JavaScript, so the tags must sit in the static HTML — a single-page app that builds its head at runtime shares a blank card everywhere until it prerenders.
JSON-LD: facts a machine can quote
Structured data is a JSON block in a <script type="application/ld+json"> tag that states what the page is: a WebSite, an Article, a Product, a Recipe, with names, dates, and publishers as explicit fields. Search engines use it to build rich results — star ratings, breadcrumbs, event dates — and it is the least ambiguous signal you can send because it is data, not prose. The vocabulary comes from schema.org, and a minimal block needs @context, @type, name, description, and url. The format is ordinary JSON; JSON Explained covers the quoting and nesting rules that break people's blocks.
Tags that stopped mattering — and ones that still do
<meta name="keywords"> has been ignored by every major engine for over a decade; it survives only as a spam signal. What still earns its place: <meta name="robots"> with noindex or nofollow to steer crawling page-by-page, <meta charset> so text decodes correctly, and <meta name="viewport">, which decides whether mobile browsers render your page at phone width — a ranking input through mobile usability. And because snippet quality is inseparable from the URL itself, slugs deserve the same care; How URL Slugs Work covers that half of the contract.
Try it yourself
Generate a complete, correctly-escaped tag set — title, description, canonical, Open Graph, Twitter card, and a JSON-LD block — with the Meta Tag Generator. Paste the resulting canonical or og:url into the URL Parser to confirm it is absolute and has no stray tracking parameters, and check the status code your canonical URL actually returns with the HTTP Status Code Lookup — a 200, not a redirect chain, is what you want the index to see.