A little help goes a long way. Find a tool/

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.

Frequently asked questions

How long should a title tag and meta description be?
Aim for roughly 50-60 characters for the title before search results truncate it, and 140-160 characters for the description. Search engines may rewrite either to match the query, but distinctive front-loaded titles and honest descriptions win the click more often than stuffing ever does.
Is the meta keywords tag still useful?
No. Every major search engine has ignored it for over a decade, and a stuffed one reads as a spam signal. Spend the effort on the title, description, canonical URL, and structured data instead — the tags that are actually parsed and acted upon.
What is the difference between canonical URLs and redirects?
A canonical tag is a hint about which duplicate URL should be indexed; a 301 redirect physically sends visitors and crawlers to the new address. For content that moved permanently, use the redirect — the canonical tag alone leaves both URLs reachable and split across the index.
Do social media crawlers run JavaScript?
Mostly no. Open Graph and Twitter card tags must be present in the static HTML served to the crawler, or the shared link renders as a bare URL with no image or summary. Single-page apps that build their head tags client-side need prerendering to share well.
What belongs in a JSON-LD block?
At minimum: the @context and @type declaring what the page is (WebSite, Article, Product), plus name, description, and url. Search engines read this structured data to build rich results like ratings and breadcrumbs, and because it is explicit JSON rather than prose, it is the least ambiguous signal on the page.