0/60
0/160

Browser UI color on mobile Chrome and Edge

Google Search Preview
example.com/page-url
Page title
Page description will appear here.
Generated HTML
<meta name="robots" content="index, follow">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">

How to generate meta tags

  1. Enter your page Title (50–60 characters) and Description (120–160 characters) — the live Google snippet preview updates as you type.
  2. Paste your page URL into the Canonical URL field to prevent duplicate content penalties.
  3. Set the robots meta tag: leave as index, follow for all public pages. Use noindex for staging or private pages.
  4. Enable Multilingual if your site has multiple language versions and add each language-URL pair for hreflang tags.
  5. Click Copy code and paste the output into the head section of your HTML.

Essential SEO meta tags — what each one does

Not all meta tags are equal. Some directly affect rankings, others influence click-through rate, and some are purely technical. Here is the complete list with impact levels.

TagPurposeMax lengthSEO impact
<title>Clickable headline in Google search results and browser tab60 charsVery high
meta descriptionSnippet text shown below the title in search results160 charsCTR (not ranking)
rel="canonical"Signals preferred URL — prevents duplicate content issuesHigh
meta robotsIndex/noindex and follow/nofollow crawler instructionsHigh (when set)
meta viewportMobile browser rendering — required for responsive sitesRequired
meta charsetCharacter encoding declaration (always UTF-8)Required
meta authorPage author — minor E-E-A-T signalLow
meta keywordsKeywords — ignored by Google since 2009None

Open Graph tags — social and messaging previews

Open Graph tags control the link preview shown when your page is shared on Slack, Discord, LinkedIn, Facebook, Telegram, and iMessage. Without them, these platforms guess the title and image — usually poorly.

PropertyWhat it controlsRecommendation
og:titleTitle shown in link preview cards≤ 60 chars, can differ from <title>
og:descriptionDescription shown in link preview cards≤ 200 chars
og:imagePreview image — the single biggest visual impact1200×630 px JPG or PNG
og:urlCanonical URL for the shared linkFull absolute URL
og:typeContent typewebsite for most pages, article for blog posts
og:site_nameBrand name shown below the previewYour site or product name

Robots meta tag — all directives

The robots meta tag controls crawler behavior per page. Most pages need no customization — the defaults are index, follow.

DirectiveWhat it doesWhen to use
index (default)Allow page to appear in search resultsAll public pages
noindexRemove page from search resultsAdmin, thank-you, staging, duplicate pages
follow (default)Crawlers follow links on this pageAll pages
nofollowCrawlers ignore links on this pageAffiliate or heavily sponsored link pages
noarchiveGoogle won't show a cached versionPrivacy-sensitive or frequently updated pages
nosnippetNo description snippet in search resultsPaywalled or sensitive content

How to add meta tags in your framework

After generating your tags above, here is how to paste them into the most common web stacks.

Plain HTML

Paste directly inside <head> in your HTML file:

HTML
<!-- Paste into <head> -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page Title — Brand Name</title>
<meta name="description" content="120–160 char description with a clear benefit.">
<link rel="canonical" href="https://example.com/page">
<meta property="og:title" content="Page Title — Brand Name">
<meta property="og:description" content="120–160 char description with a clear benefit.">
<meta property="og:image" content="https://example.com/og-image.jpg">
<meta property="og:url" content="https://example.com/page">
<meta property="og:type" content="website">

React (Vite) — react-helmet-async

Install react-helmet-async, wrap your app in HelmetProvider, then use <Helmet> in each page component:

JSX
import { Helmet } from 'react-helmet-async'

export default function MyPage() {
  return (
    <>
      <Helmet>
        <title>Page Title — Brand Name</title>
        <meta name="description" content="120–160 char description." />
        <link rel="canonical" href="https://example.com/page" />
        <meta property="og:title" content="Page Title — Brand Name" />
        <meta property="og:description" content="120–160 char description." />
        <meta property="og:image" content="https://example.com/og-image.jpg" />
        <meta property="og:url" content="https://example.com/page" />
        <meta property="og:type" content="website" />
      </Helmet>
      {/* page content */}
    </>
  )
}

Next.js 13+ (App Router)

Export a metadata object from your page.js. Next.js renders all tags server-side — no extra library needed:

JS
// app/my-page/page.js  (Next.js 13+ App Router)
export const metadata = {
  title: 'Page Title — Brand Name',
  description: '120–160 char description.',
  alternates: { canonical: 'https://example.com/page' },
  openGraph: {
    title: 'Page Title — Brand Name',
    description: '120–160 char description.',
    url: 'https://example.com/page',
    type: 'website',
    images: [{ url: 'https://example.com/og-image.jpg', width: 1200, height: 630 }],
  },
}

Vue 3 + Nuxt 3

Use the built-in useHead() composable inside <script setup>:

JS
// pages/my-page.vue  (inside <script setup>)
useHead({
  title: 'Page Title — Brand Name',
  meta: [
    { name: 'description', content: '120–160 char description.' },
    { property: 'og:title', content: 'Page Title — Brand Name' },
    { property: 'og:description', content: '120–160 char description.' },
    { property: 'og:image', content: 'https://example.com/og-image.jpg' },
    { property: 'og:url', content: 'https://example.com/page' },
  ],
  link: [{ rel: 'canonical', href: 'https://example.com/page' }],
})

WordPress

Install Yoast SEO or Rank Math — both add a meta box below every post and page where you enter the SEO title, description, and Open Graph data. They handle canonical URLs, robots tags, and hreflang automatically. For finer control, add tags directly in your theme's header.php or use a header insertion plugin.

Frequently Asked Questions

What are HTML meta tags?
Meta tags are HTML elements placed in the <head> section of a page. They are not visible to users but tell search engines, browsers, and social platforms how to index, describe, and display your page. The most important are the title tag, meta description, canonical URL, and robots directive.
How long should a meta title and description be?
Title: 50–60 characters. Google truncates titles longer than ~60 characters in search results, cutting off your message. Meta description: 120–160 characters. On mobile, Google shows roughly 120 characters, so front-load the key information. This generator shows a live character count and preview for both.
What are Open Graph tags and do they affect SEO?
Open Graph tags (og:title, og:description, og:image) control how your page looks when shared on Slack, Discord, LinkedIn, Facebook, and other platforms that show link previews. They are not a direct Google ranking factor, but a well-designed OG image and title improve click-through rates from social shares — which indirectly signals engagement to Google.
Does the keywords meta tag help with Google SEO?
No. Google has ignored the meta keywords tag since 2009. It has zero effect on Google rankings. Some other search engines may still look at it. Only include it if a specific CMS or client workflow requires it.
What is a canonical URL and why does it matter?
The canonical tag (rel="canonical") tells search engines which URL is the preferred version of a page when the same content is accessible at multiple URLs — for example, with or without a trailing slash, www vs non-www, or with UTM parameters. Without it, Google may split ranking signals across duplicate URLs and rank none of them well.
What does noindex mean in the robots meta tag?
noindex tells search engines not to include this page in search results. Use it for admin dashboards, thank-you pages, internal search results, staging environments, or any page you do not want to appear in Google. Most public pages should stay on the default index, follow.
When do I need hreflang tags?
Use hreflang tags when your site serves the same content in multiple languages or has region-specific versions (e.g., /en/, /fr/, /de/). They tell Google which language variant to show users in different countries. The x-default value specifies the fallback page when no variant matches the user's language.
How do I add meta tags in Next.js?
In Next.js 13+ App Router: export a metadata object or generateMetadata function from your page.js file. Next.js renders the tags server-side automatically — no extra library needed. In older Next.js with Pages Router, use next/head. For Vite + React, use react-helmet-async.
What is the viewport meta tag and do I need it?
The viewport tag tells mobile browsers to display the page at the device's actual width instead of zooming out to fit a desktop layout. It is required for any responsive website. Without it, Google may flag your site as not mobile-friendly, which negatively affects rankings on mobile searches.