A practical, up-to-date reference for HTML <head> metadata: SEO tags, social preview tags, browser behavior, PWA/mobile tags, icons, feeds, verification tags, privacy controls, and legacy tags you should usually avoid.
Goal: not just a “complete” list, but a useful one. Some tags are essential. Some are optional. Some are outdated and should not be copied into modern projects.
- Recommended Starter Template
- Essential HTML Metadata
- SEO Metadata
- Robots and Indexing Controls
- Canonical, Pagination, and Alternate URLs
- Open Graph Metadata
- X / Twitter Card Metadata
- Schema.org and Structured Data
- Browser, UI, and Device Metadata
- Progressive Web App Metadata
- Icons, Favicons, and App Icons
- Security, Privacy, and Referrer Controls
- Performance-Oriented Head Tags
- Feeds, Discovery, and Machine-Readable Links
- Site Verification Tags
- Content Ownership, Authorship, and Licensing
- Internationalization and Localization
- News, Articles, and Publishers
- Ecommerce and Product Pages
- Deprecated, Obsolete, or Usually Useless Tags
- Validation Checklist
- Quick Copy-Paste Templates
Use this for most modern websites, blogs, landing pages, and SaaS pages.
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Title | Brand Name</title>
<meta name="description" content="Write a clear, human-readable summary of this page in about 140–160 characters.">
<link rel="canonical" href="https://example.com/page-url/">
<meta name="robots" content="index, follow">
<meta property="og:title" content="Page Title | Brand Name">
<meta property="og:description" content="Write a compelling social preview description.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page-url/">
<meta property="og:image" content="https://example.com/images/social-preview.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:site_name" content="Brand Name">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page Title | Brand Name">
<meta name="twitter:description" content="Write a compelling social preview description.">
<meta name="twitter:image" content="https://example.com/images/social-preview.jpg">
<meta name="theme-color" content="#0f172a">
<meta name="color-scheme" content="light dark">
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
</head>| Tag | Example | Use | Priority |
|---|---|---|---|
charset |
<meta charset="utf-8"> |
Declares document character encoding. Put it as early as possible in <head>. |
Essential |
viewport |
<meta name="viewport" content="width=device-width, initial-scale=1"> |
Makes layouts responsive on mobile devices. | Essential |
title |
`<title>Best Grocery Apps | CartLens</title>` | Browser tab title and search result title candidate. Not a meta tag, but critical. |
description |
<meta name="description" content="..."> |
Search snippet candidate and general page summary. | Essential |
canonical |
<link rel="canonical" href="https://example.com/page/"> |
Tells search engines the preferred URL for duplicate or near-duplicate pages. | Essential for SEO pages |
lang attribute |
<html lang="en"> |
Declares page language. Goes on <html>, not inside <head>. |
Essential |
- Use
utf-8. There is almost never a reason to use anything else. - Keep the viewport simple unless you have a strong accessibility reason.
- Do not disable zoom with
user-scalable=no; it hurts accessibility. - The meta description is not a direct ranking button, but it strongly affects search result presentation and click-through.
| Tag | Example | Use | Recommendation |
|---|---|---|---|
description |
<meta name="description" content="Compare grocery prices from real receipts and find cheaper stores nearby."> |
Search snippet candidate. | Use on every indexable page. |
robots |
<meta name="robots" content="index, follow"> |
Page-level crawl/index instructions. | Use intentionally; default is usually index/follow. |
googlebot |
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"> |
Google-specific crawler instructions. | Useful when you need Google-specific behavior. |
bingbot |
<meta name="bingbot" content="index, follow"> |
Bing-specific crawler instructions. | Optional. |
keywords |
<meta name="keywords" content="..."> |
Historical keyword tag. | Usually skip; major search engines do not rely on it. |
author |
<meta name="author" content="Chris Nzouat"> |
Human or organization author. | Optional. Better handled visibly on-page or via structured data. |
generator |
<meta name="generator" content="WordPress"> |
Identifies software that generated the page. | Optional; often removed for security/noise. |
rating |
<meta name="rating" content="adult"> |
Signals adult content classification. | Only use if relevant. |
<title>Best Grocery Price Comparison Apps in 2026 | CartLens</title>
<meta name="description" content="Compare the best grocery price comparison apps, including receipt scanning, local price tracking, features, pricing, pros, and cons.">
<link rel="canonical" href="https://www.cartlens.co/blog/best-grocery-price-comparison-apps/">
<meta name="robots" content="index, follow, max-image-preview:large">Robots meta tags control how search crawlers index, follow, preview, and cache pages.
<meta name="robots" content="noindex, follow">| Directive | Meaning | Common Use |
|---|---|---|
index |
Allow indexing. | Usually default. |
noindex |
Do not show this page in search results. | Thank-you pages, internal pages, thin duplicates. |
follow |
Allow crawlers to follow links. | Usually default. |
nofollow |
Do not follow links on the page. | Rare at page level. |
noarchive |
Do not show cached result. | Sensitive or frequently changing pages. |
nosnippet |
Do not show text snippet or video preview. | When snippets expose unwanted content. |
max-snippet:N |
Limit snippet length to N characters. | Fine-grained snippet control. |
max-snippet:-1 |
No snippet length limit. | Let Google choose. |
max-image-preview:none |
No image preview. | Restrictive image control. |
max-image-preview:standard |
Standard image preview. | Conservative default. |
max-image-preview:large |
Large image preview allowed. | Recommended for content sites. |
max-video-preview:N |
Limit video preview to N seconds. | Video pages. |
unavailable_after |
Remove page after a specific date/time. | Events, expired offers, limited-time pages. |
notranslate |
Prevent translation link/snippet in some search features. | Brand/legal pages. |
noimageindex |
Do not index images on the page. | Private/proprietary images. |
Index normally:
<meta name="robots" content="index, follow">Noindex but allow link discovery:
<meta name="robots" content="noindex, follow">Allow large previews:
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">Remove after a campaign ends:
<meta name="robots" content="unavailable_after: 31 Dec 2026 23:59:59 PST">For PDFs, images, and non-HTML files, use the HTTP header instead of an HTML meta tag.
X-Robots-Tag: noindex| Element | Example | Use |
|---|---|---|
| Canonical | <link rel="canonical" href="https://example.com/page/"> |
Preferred URL for duplicate/similar pages. |
| Hreflang alternate | <link rel="alternate" hreflang="es" href="https://example.com/es/page/"> |
Language/region alternates. |
| x-default | <link rel="alternate" hreflang="x-default" href="https://example.com/"> |
Default fallback for international pages. |
| AMP alternate | <link rel="amphtml" href="https://example.com/page/amp/"> |
AMP version, if used. |
| Mobile alternate | <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/page/"> |
Separate mobile URLs. Usually avoid in modern responsive sites. |
<link rel="canonical" href="https://example.com/pricing/">
<link rel="alternate" hreflang="en" href="https://example.com/pricing/">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs/">
<link rel="alternate" hreflang="es" href="https://example.com/es/precios/">
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/">rel="prev" and rel="next" used to be common for paginated series. Google no longer uses them as an indexing signal, but they can still help browsers, accessibility tools, and other systems understand navigation.
<link rel="prev" href="https://example.com/blog/page/2/">
<link rel="next" href="https://example.com/blog/page/4/">Open Graph controls how pages appear when shared on Facebook, LinkedIn, Slack, iMessage, WhatsApp, Discord, and many other platforms.
<meta property="og:title" content="Best Grocery Price Comparison Apps">
<meta property="og:description" content="Compare the top apps for grocery savings, receipt scanning, and local price tracking.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://www.cartlens.co/blog/best-grocery-price-comparison-apps/">
<meta property="og:image" content="https://www.cartlens.co/images/best-grocery-apps-og.jpg">
<meta property="og:site_name" content="CartLens">
<meta property="og:locale" content="en_US">| Property | Use | Recommended? |
|---|---|---|
og:title |
Social preview title. | Yes |
og:description |
Social preview description. | Yes |
og:type |
Object type: website, article, product, etc. |
Yes |
og:url |
Permanent canonical URL. | Yes |
og:image |
Social preview image. | Yes |
og:image:secure_url |
HTTPS image URL. | Optional if og:image is already HTTPS. |
og:image:width |
Image width. | Recommended |
og:image:height |
Image height. | Recommended |
og:image:alt |
Image alt text. | Recommended |
og:site_name |
Site or brand name. | Recommended |
og:locale |
Locale, e.g. en_US. |
Recommended |
og:locale:alternate |
Alternate locales. | Optional |
<meta property="article:published_time" content="2026-07-04T10:00:00-07:00">
<meta property="article:modified_time" content="2026-07-04T12:30:00-07:00">
<meta property="article:author" content="https://example.com/authors/chris-nzouat/">
<meta property="article:section" content="Shopping">
<meta property="article:tag" content="grocery savings">
<meta property="article:tag" content="price comparison"><meta property="og:type" content="product">
<meta property="product:price:amount" content="29.99">
<meta property="product:price:currency" content="USD">
<meta property="product:availability" content="in stock">- Use 1200 × 630 px for general Open Graph images.
- Use absolute HTTPS URLs.
- Avoid tiny text in social images.
- Provide
og:image:altfor accessibility. - Do not rely on SVG for social previews; many crawlers prefer JPG/PNG/WebP.
X still uses Twitter Card metadata names.
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Best Grocery Price Comparison Apps">
<meta name="twitter:description" content="Compare grocery savings apps by pricing, receipt scanning, local price tracking, pros, and cons.">
<meta name="twitter:image" content="https://www.cartlens.co/images/best-grocery-apps-twitter.jpg">
<meta name="twitter:image:alt" content="A grocery cart with a receipt and price comparison chart.">
<meta name="twitter:site" content="@cartlens">
<meta name="twitter:creator" content="@watat83">| Tag | Use |
|---|---|
twitter:card |
Card type. Use summary or summary_large_image. |
twitter:title |
X preview title. |
twitter:description |
X preview description. |
twitter:image |
Preview image. |
twitter:image:alt |
Accessible image description. |
twitter:site |
Site account handle. |
twitter:creator |
Author account handle. |
twitter:player |
Player URL for video/audio cards. |
twitter:app:name:iphone |
iPhone app card metadata. |
twitter:app:id:iphone |
App Store ID. |
twitter:app:url:iphone |
Deep link URL. |
twitter:app:name:googleplay |
Android app name. |
twitter:app:id:googleplay |
Android package name. |
twitter:app:url:googleplay |
Android deep link. |
<meta name="twitter:card" content="summary"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:card" content="player"><meta name="twitter:card" content="app">Structured data is not usually written as <meta> tags anymore. Use JSON-LD.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Best Grocery Price Comparison Apps",
"description": "A practical comparison of grocery price comparison apps, receipt scanners, pricing, pros, and cons.",
"image": "https://example.com/images/best-grocery-apps.jpg",
"author": {
"@type": "Person",
"name": "Chris Nzouat"
},
"publisher": {
"@type": "Organization",
"name": "CartLens",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"datePublished": "2026-07-04",
"dateModified": "2026-07-04",
"mainEntityOfPage": "https://example.com/blog/best-grocery-price-comparison-apps/"
}
</script>| Type | Use |
|---|---|
Organization |
Company/brand identity. |
WebSite |
Site-level search/action metadata. |
WebPage |
General page metadata. |
Article |
Blog posts and articles. |
NewsArticle |
News content. |
BlogPosting |
Blog posts. |
Product |
Product pages. |
Offer |
Price and availability. |
FAQPage |
FAQ sections. |
HowTo |
Step-by-step guides. |
BreadcrumbList |
Breadcrumb navigation. |
LocalBusiness |
Local business pages. |
SoftwareApplication |
SaaS/apps. |
Review |
Reviews, when eligible. |
VideoObject |
Video pages. |
ImageObject |
Image metadata. |
Recipe |
Recipe content. |
Event |
Events. |
JobPosting |
Job listings. |
Course |
Courses. |
| Tag | Example | Use |
|---|---|---|
theme-color |
<meta name="theme-color" content="#10b981"> |
Browser UI color on supported devices. |
theme-color with media |
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#020617"> |
Different color for light/dark mode. |
color-scheme |
<meta name="color-scheme" content="light dark"> |
Tells browser supported color schemes. |
format-detection |
<meta name="format-detection" content="telephone=no"> |
Prevents automatic phone number linking on iOS. |
referrer |
<meta name="referrer" content="strict-origin-when-cross-origin"> |
Controls referrer behavior. |
application-name |
<meta name="application-name" content="CartLens"> |
App/site name in some browsers. |
mobile-web-app-capable |
<meta name="mobile-web-app-capable" content="yes"> |
Android/Chrome install-like behavior. |
apple-mobile-web-app-capable |
<meta name="apple-mobile-web-app-capable" content="yes"> |
iOS standalone web app behavior. |
apple-mobile-web-app-title |
<meta name="apple-mobile-web-app-title" content="CartLens"> |
iOS home screen app title. |
apple-mobile-web-app-status-bar-style |
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> |
iOS status bar style. |
HandheldFriendly |
<meta name="HandheldFriendly" content="true"> |
Old mobile browsers. Mostly legacy. |
MobileOptimized |
<meta name="MobileOptimized" content="width"> |
Old mobile browsers. Mostly legacy. |
<meta name="color-scheme" content="light dark">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff">
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#020617">Modern PWA metadata should live mostly in the web app manifest.
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#10b981">{
"name": "CartLens",
"short_name": "CartLens",
"description": "Compare real local prices from receipts and price tags.",
"start_url": "/",
"scope": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#10b981",
"icons": [
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "/icons/maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}| Element | Use |
|---|---|
<link rel="manifest"> |
Points to the app manifest. |
<meta name="theme-color"> |
Browser/system UI color. |
<link rel="apple-touch-icon"> |
iOS home screen icon. |
<meta name="apple-mobile-web-app-capable"> |
iOS standalone behavior. |
<meta name="apple-mobile-web-app-title"> |
iOS app name. |
<meta name="apple-mobile-web-app-status-bar-style"> |
iOS status bar style. |
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">| Link | Use |
|---|---|
rel="icon" |
Browser favicon. |
rel="shortcut icon" |
Legacy favicon syntax. Usually not needed. |
rel="apple-touch-icon" |
iOS home screen icon. |
rel="mask-icon" |
Safari pinned tab icon. |
rel="manifest" |
PWA manifest. |
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#10b981"><meta name="msapplication-TileColor" content="#10b981">
<meta name="msapplication-TileImage" content="/mstile-144x144.png">
<meta name="msapplication-config" content="/browserconfig.xml">Use only if you care about older Windows tile behavior.
Some security policies can be declared with meta tags, but HTTP headers are usually stronger and more reliable.
| Tag/Header | Example | Recommendation |
|---|---|---|
referrer meta |
<meta name="referrer" content="strict-origin-when-cross-origin"> |
Useful. |
| CSP meta | <meta http-equiv="Content-Security-Policy" content="default-src 'self'"> |
Prefer HTTP header. |
| Permissions-Policy | HTTP header only | Use server header. |
| X-Frame-Options | HTTP header only | Use server header or CSP frame-ancestors. |
| HSTS | HTTP header only | Use server header. |
<meta name="referrer" content="no-referrer">
<meta name="referrer" content="origin">
<meta name="referrer" content="strict-origin">
<meta name="referrer" content="strict-origin-when-cross-origin">
<meta name="referrer" content="same-origin">
<meta name="referrer" content="no-referrer-when-downgrade">
<meta name="referrer" content="unsafe-url"><meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' https: data:; script-src 'self'; style-src 'self' 'unsafe-inline'">Use CSP headers in production when possible.
These are not meta tags, but they live in <head> and can improve perceived speed when used carefully.
| Element | Example | Use |
|---|---|---|
| DNS prefetch | <link rel="dns-prefetch" href="//fonts.gstatic.com"> |
Resolve DNS early. |
| Preconnect | <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
Open connection early. |
| Preload | <link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin> |
Load critical resource early. |
| Module preload | <link rel="modulepreload" href="/assets/app.js"> |
Preload JS modules. |
| Prefetch | <link rel="prefetch" href="/next-page/"> |
Fetch likely next resource. |
| Prerender | <script type="speculationrules">...</script> |
Browser speculation rules for future navigation. |
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preload" href="/fonts/inter-var.woff2" as="font" type="font/woff2" crossorigin>Use sparingly. Too many preloads can make performance worse.
| Link | Example | Use |
|---|---|---|
| RSS | <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml"> |
RSS feed discovery. |
| Atom | <link rel="alternate" type="application/atom+xml" title="Atom" href="/atom.xml"> |
Atom feed discovery. |
| JSON Feed | <link rel="alternate" type="application/feed+json" title="JSON Feed" href="/feed.json"> |
JSON feed discovery. |
| OpenSearch | <link rel="search" type="application/opensearchdescription+xml" title="Site Search" href="/opensearch.xml"> |
Browser/site search integration. |
| Webmention | <link rel="webmention" href="https://example.com/webmention"> |
IndieWeb replies/mentions. |
| Micropub | <link rel="micropub" href="https://example.com/micropub"> |
IndieWeb publishing endpoint. |
| me | <link rel="me" href="https://mastodon.social/@username"> |
Identity verification across profiles. |
| payment | <link rel="payment" href="https://example.com/pay"> |
Payment/donation discovery. Niche. |
| license | <link rel="license" href="https://creativecommons.org/licenses/by/4.0/"> |
Content license. |
| author | <link rel="author" href="/humans.txt"> |
Author information. |
<link rel="alternate" type="application/rss+xml" title="CartLens Blog RSS" href="https://www.cartlens.co/feed.xml">
<link rel="alternate" type="application/feed+json" title="CartLens Blog JSON Feed" href="https://www.cartlens.co/feed.json">Use only the verification tags required by the services you actually use.
<meta name="google-site-verification" content="verification_token">
<meta name="msvalidate.01" content="verification_token">
<meta name="yandex-verification" content="verification_token">
<meta name="baidu-site-verification" content="verification_token">
<meta name="p:domain_verify" content="verification_token">
<meta name="facebook-domain-verification" content="verification_token">| Tag | Service |
|---|---|
google-site-verification |
Google Search Console |
msvalidate.01 |
Bing Webmaster Tools |
yandex-verification |
Yandex Webmaster |
baidu-site-verification |
Baidu Webmaster Tools |
p:domain_verify |
|
facebook-domain-verification |
Meta/Facebook Business |
norton-safeweb-site-verification |
Norton Safe Web |
Remove verification tags for services you no longer use.
| Tag/Link | Example | Use |
|---|---|---|
author |
<meta name="author" content="Chris Nzouat"> |
Basic author name. |
copyright |
<meta name="copyright" content="CartLens Inc."> |
Mostly informational. |
dc.title |
<meta name="DC.title" content="Page Title"> |
Dublin Core metadata. Niche. |
dc.creator |
<meta name="DC.creator" content="Chris Nzouat"> |
Dublin Core creator. Niche. |
dc.description |
<meta name="DC.description" content="..."> |
Dublin Core description. Niche. |
dc.rights |
<meta name="DC.rights" content="Copyright 2026 CartLens"> |
Dublin Core rights. Niche. |
license link |
<link rel="license" href="https://creativecommons.org/licenses/by/4.0/"> |
Machine-readable license. |
<meta name="DC.title" content="Best Grocery Price Comparison Apps">
<meta name="DC.creator" content="Chris Nzouat">
<meta name="DC.subject" content="Grocery savings, price comparison, receipt scanning">
<meta name="DC.description" content="A guide to the best grocery price comparison apps.">
<meta name="DC.publisher" content="CartLens">
<meta name="DC.date" content="2026-07-04">
<meta name="DC.language" content="en">
<meta name="DC.rights" content="Copyright 2026 CartLens">Use Dublin Core only if your content needs library/archive/document-style metadata.
| Element | Example | Use |
|---|---|---|
| HTML language | <html lang="en-US"> |
Primary language. |
| Content language meta | <meta http-equiv="content-language" content="en-US"> |
Legacy. Prefer HTTP headers or html lang. |
| Hreflang | <link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/"> |
International SEO. |
| Open Graph locale | <meta property="og:locale" content="en_US"> |
Social preview locale. |
| Open Graph alternate locale | <meta property="og:locale:alternate" content="fr_FR"> |
Alternate social locales. |
<html lang="en-US">
<head>
<link rel="alternate" hreflang="en-US" href="https://example.com/">
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">
<meta property="og:locale" content="en_US">
<meta property="og:locale:alternate" content="fr_FR">
</head>| Tag | Example | Use |
|---|---|---|
article:published_time |
<meta property="article:published_time" content="2026-07-04T10:00:00-07:00"> |
Open Graph publish date. |
article:modified_time |
<meta property="article:modified_time" content="2026-07-04T12:00:00-07:00"> |
Open Graph update date. |
article:author |
<meta property="article:author" content="https://example.com/authors/chris/"> |
Author profile URL. |
article:publisher |
<meta property="article:publisher" content="https://www.facebook.com/brand"> |
Publisher page. |
article:section |
<meta property="article:section" content="Shopping"> |
Article category. |
article:tag |
<meta property="article:tag" content="receipt scanner"> |
Article tags. |
news_keywords |
<meta name="news_keywords" content="..."> |
Old Google News tag. Usually unnecessary. |
<meta property="og:type" content="article">
<meta property="article:published_time" content="2026-07-04T10:00:00-07:00">
<meta property="article:modified_time" content="2026-07-04T12:00:00-07:00">
<meta property="article:section" content="Shopping">
<meta property="article:tag" content="grocery savings">
<meta property="article:tag" content="receipt scanner">Use Open Graph plus Product structured data.
<meta property="og:type" content="product">
<meta property="og:title" content="CartLens Pro">
<meta property="og:description" content="Advanced receipt scanning and local price intelligence for smarter shopping.">
<meta property="og:image" content="https://example.com/cartlens-pro.jpg">
<meta property="product:price:amount" content="9.99">
<meta property="product:price:currency" content="USD"><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "CartLens Pro",
"description": "Advanced receipt scanning and local price intelligence.",
"image": "https://example.com/cartlens-pro.jpg",
"brand": {
"@type": "Brand",
"name": "CartLens"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/pricing/",
"priceCurrency": "USD",
"price": "9.99",
"availability": "https://schema.org/InStock"
}
}
</script>These appear in old meta tag lists, but most modern sites should avoid them.
| Tag | Example | Status / Problem |
|---|---|---|
keywords |
<meta name="keywords" content="..."> |
Usually ignored by major search engines. |
revisit-after |
<meta name="revisit-after" content="7 days"> |
Not useful for modern crawlers. |
expires |
<meta http-equiv="expires" content="0"> |
Use HTTP caching headers instead. |
pragma |
<meta http-equiv="pragma" content="no-cache"> |
Legacy. Use HTTP headers. |
cache-control meta |
<meta http-equiv="cache-control" content="no-cache"> |
Use HTTP headers. |
refresh |
<meta http-equiv="refresh" content="0; url=/new-page/"> |
Use server redirects when possible. Accessibility/UX issues. |
X-UA-Compatible |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
Legacy Internet Explorer. Usually unnecessary. |
imagetoolbar |
<meta http-equiv="imagetoolbar" content="no"> |
Old IE behavior. Obsolete. |
mssmarttagspreventparsing |
<meta name="mssmarttagspreventparsing" content="true"> |
Old Microsoft feature. Obsolete. |
HandheldFriendly |
<meta name="HandheldFriendly" content="true"> |
Old mobile browsers. Usually unnecessary. |
MobileOptimized |
<meta name="MobileOptimized" content="320"> |
Old mobile browsers. Usually unnecessary. |
abstract |
<meta name="abstract" content="..."> |
Rarely used. Use description/schema. |
topic |
<meta name="topic" content="..."> |
Not broadly useful. |
summary |
<meta name="summary" content="..."> |
Not broadly useful. |
classification |
<meta name="classification" content="Business"> |
Old directory-style metadata. |
directory |
<meta name="directory" content="submission"> |
Obsolete. |
distribution |
<meta name="distribution" content="global"> |
Usually useless. |
coverage |
<meta name="coverage" content="Worldwide"> |
Usually useless. |
reply-to |
<meta name="reply-to" content="email@example.com"> |
Exposes email to scraping. Avoid. |
owner |
<meta name="owner" content="..."> |
Not broadly useful. |
designer |
<meta name="designer" content="..."> |
Optional vanity tag. |
rating as general |
<meta name="rating" content="General"> |
Usually pointless. Only use for adult content control. |
resource-type |
<meta name="resource-type" content="document"> |
Obsolete. |
audience |
<meta name="audience" content="all"> |
Usually useless. |
page-topic |
<meta name="page-topic" content="Shopping"> |
Obsolete. |
page-type |
<meta name="page-type" content="Article"> |
Use structured data instead. |
content-language meta |
<meta http-equiv="content-language" content="en"> |
Prefer <html lang="en">. |
Before publishing, check the following:
- One
<title>per page. - One clear meta description per indexable page.
-
charsetappears early in<head>. -
viewportis present and does not disable zoom. - Canonical URL is absolute and points to the preferred page.
-
robotsis not accidentally set tonoindex. - Open Graph image is absolute, crawlable, and at least 1200 × 630 px for general sharing.
-
og:title,og:description,og:url,og:type, andog:imageare present. -
twitter:cardis present if X sharing matters. - Structured data validates without critical errors.
- Favicon and app icons load correctly.
- Theme color matches brand and dark mode behavior.
- Verification tags are only included when needed.
- No private emails, internal tokens, staging URLs, or secret IDs are exposed.
- No old copy-pasted tags from unrelated websites remain.
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Product Name | Brand</title>
<meta name="description" content="Clear one-sentence value proposition for the page.">
<link rel="canonical" href="https://example.com/">
<meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:title" content="Product Name | Brand">
<meta property="og:description" content="Clear social preview description.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/">
<meta property="og:image" content="https://example.com/og-image.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://example.com/og-image.jpg">
<meta name="theme-color" content="#10b981"><title>Article Title | Blog Name</title>
<meta name="description" content="A useful article summary written for humans.">
<link rel="canonical" href="https://example.com/blog/article-slug/">
<meta name="robots" content="index, follow, max-image-preview:large">
<meta property="og:type" content="article">
<meta property="og:title" content="Article Title">
<meta property="og:description" content="A useful social description.">
<meta property="og:url" content="https://example.com/blog/article-slug/">
<meta property="og:image" content="https://example.com/images/article-og.jpg">
<meta property="article:published_time" content="2026-07-04T10:00:00-07:00">
<meta property="article:modified_time" content="2026-07-04T12:00:00-07:00">
<meta property="article:section" content="Category">
<meta property="article:tag" content="keyword one">
<meta property="article:tag" content="keyword two">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Article Title">
<meta name="twitter:description" content="A useful social description.">
<meta name="twitter:image" content="https://example.com/images/article-og.jpg"><meta name="robots" content="noindex, follow">
<link rel="canonical" href="https://example.com/private-or-thank-you-page/"><link rel="canonical" href="https://example.com/pricing/">
<link rel="alternate" hreflang="en-US" href="https://example.com/pricing/">
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/tarifs/">
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/precios/">
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/">
<meta property="og:locale" content="en_US">
<meta property="og:locale:alternate" content="fr_FR">
<meta property="og:locale:alternate" content="es_ES"><meta name="theme-color" content="#10b981">
<meta name="color-scheme" content="light dark">
<link rel="manifest" href="/site.webmanifest">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="App Name">
<meta name="apple-mobile-web-app-status-bar-style" content="default">Do not build a <head> by copying every tag you can find. Build it by intent:
- Rendering: charset, viewport, title.
- Search: description, canonical, robots, structured data.
- Sharing: Open Graph and X/Twitter cards.
- Brand/UI: icons, theme color, manifest.
- Control: referrer, indexing, verification, security headers.
- Only then: niche metadata for archives, feeds, apps, or special platforms.
nice