Skip to content
Motifuse
Free browser tool
SEO & Marketing

Meta Tag Generator

Fill in six fields and get copy-ready HTML with title, description, canonical, Open Graph, and Twitter Card tags for any page.

  • Free public tool
  • No sign-up for this tool
  • Processing clearly labeled
  • Instant results

Content last reviewed

Open HTML editor

Monaco loads only after you open the editor.

<!-- Primary Meta Tags -->
<title>Motifuse — Free Online Tools</title>
<meta name="title" content="Motifuse — Free Online Tools" />
<meta name="description" content="60+ free online tools for developers, writers and creators." />
<link rel="canonical" href="https://motifuse.com" />

<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://motifuse.com" />
<meta property="og:title" content="Motifuse — Free Online Tools" />
<meta property="og:description" content="60+ free online tools for developers, writers and creators." />
<meta property="og:image" content="https://motifuse.com/og-image.png" />

<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://motifuse.com" />
<meta property="twitter:title" content="Motifuse — Free Online Tools" />
<meta property="twitter:description" content="60+ free online tools for developers, writers and creators." />
<meta property="twitter:image" content="https://motifuse.com/og-image.png" />
<meta name="twitter:site" content="@motifuse" />
<meta name="twitter:creator" content="@motifuse" />

Overview

Head markup that agrees with itself

Nothing in a page's head is an instruction: a search engine may rewrite your title, a social platform may serve a preview it cached days ago, and a canonical is weighed against your other signals rather than obeyed. Six values are fanned across thirteen of the fourteen tags this writes, and the rules below cover what happens to those tags afterwards.

One value, several tags

The title feeds four tags, the description three, the canonical URL three, the image two. The block cannot contradict itself. The cost is that fact reversed: a search description that differs from the social one has to be edited after you copy.

Values are placed, not escaped

Fields go into the markup exactly as typed. A straight double quote is harmless inside the title element, where it is text, and breaks the three title tags that carry it as an attribute value — meta name="title", og:title and twitter:title. Curly quotes and apostrophes pass through safely.

Fourteen tags, sixteen with a handle

A fixed template in three commented groups. The Twitter handle is the only conditional in it — every other field emits its tag even when empty, so a blank title yields an empty title element rather than nothing at all.

One tag ignores you entirely

twitter:card is written as summary_large_image and reads no field, so it is the one line in the block your input cannot change. Any other card style means editing the markup after you copy it.

How it works

Using Meta Tag Generator, start to finish

Six steps, in the order the tool above actually takes them.

  1. 1

    Write the title

    It becomes the title element, meta name="title", og:title and twitter:title — four tags from one field.

  2. 2

    Write the description

    The only textarea, three rows and full width. It feeds the meta description, og:description and twitter:description.

  3. 3

    Paste the canonical URL

    Used for the canonical link, og:url and twitter:url. Any string is accepted, so paste the exact final address.

  4. 4

    Add the image URL

    Fills og:image and twitter:image. The address is never fetched here, so confirm it loads yourself.

  5. 5

    Set the handle and type

    A handle appends twitter:site and twitter:creator; clearing it removes both. OG Type takes whatever you type.

  6. 6

    Copy the block

    Copy reads the generated string, so it works whether or not you opened the editor. The panel is read-only; edits happen after pasting.

Use cases

What people bring here

The jobs this page is usually opened for, and the setting that makes each one quick.

A new page with nothing in the head

Six fields produce the whole block: title, meta description, canonical link, five Open Graph properties and the Twitter card.

Leave OG Type on website, the value the form starts with.

A blog post or article

The same block with og:type changed. Article-level tags — published time, author, section — are not produced here at all.

OG Type is a free-text field despite its label, so article has to be spelt correctly by you.

A shared link that shows no picture

The usual cause is a missing or unreachable og:image. One field fills both the Open Graph and the Twitter image tag.

Put an absolute address in OG Image URL — a relative path is copied through unchanged and resolves nowhere for the platform's crawler.

Markup to hand to a developer

The output is grouped under three comments, so it stays readable in a ticket or a pull request rather than arriving as one wall of tags.

Copy puts the whole block on the clipboard; there is no file to download.

Standardising a set of pages

One page at a time. Nothing is stored between them, and there is no history or list of previous blocks.

A refresh restores the six built-in defaults, so copy each block before you move on.

A page with no presence on X

The Twitter handle is the only field that changes how many tags come out of the template.

Clear Twitter handle and twitter:site and twitter:creator disappear; the card, title, description and image tags remain.

What the tags decide

Six promises a tag does not make

Every row below is something people read into a tag that the tag does not do. Three of them are implied by this form's own field labels and are not kept by anything in its code.

Title (50–60 chars)

The range is enforced, and staying inside it guarantees the whole title is displayed.

The range is label text. There is no counter, no warning and no truncation — a title of any length is generated without comment. Search results are cut by rendered width rather than by character count in any case, and the title is replaced outright when the engine judges other wording a better answer to the query. Put the words that distinguish the page first.

Description (150–160 chars)

This is the text that appears beneath your result in search.

It is one candidate. When a passage from the page answers the query better, that passage is shown and your description is not. It still earns the effort — it is what appears when it is used, and it is what the social card shows, where there is no query to override it. There is no counter behind this label either.

link rel="canonical"

It forces every duplicate address to consolidate onto this one.

It is a hint, weighed against your sitemap, your internal links and the addresses other sites actually link to. When those disagree with the canonical, the canonical is usually the signal that loses. The field accepts any string, including a relative path or a sentence.

OG Image URL (1200x630)

Giving the address means the card will show the picture.

The image is never requested here, and the dimensions in the label are not checked against anything. The platform's own crawler fetches it, so an address behind a login, one that redirects, or one a robots rule blocks produces a card with an empty space and no error reported anywhere.

twitter:card

The card style follows from the tags you supply.

It is fixed at summary_large_image and no other value is reachable from this form; a summary, app or player card means editing the block after you copy it. The other Twitter tags are written with property= rather than name=, which is what the code does rather than what the specification asks for.

The block once you paste it

Pasting sets the page's tags.

Most frameworks and content systems already emit a title and their own og: tags, so pasting adds a second set rather than replacing the first, and which one a given crawler reads is not predictable. Read the published source and confirm each tag appears once. Platforms will also keep serving the preview they cached until they fetch the page again.

Privacy

Where your work is processed

The block is built by string interpolation while the page renders, so the six values never leave this tab and are never stored — a refresh restores the built-in defaults — while the page itself sends one anonymous request containing nothing but the tool's slug, and skips even that when the browser signals Do Not Track or Global Privacy Control.

The work happens as you type

Every result on these pages is computed by JavaScript in this tab while you type. There is no submit step, no job, and no request that carries what you entered.

Nothing is kept

No draft, history or recent list is written to storage. Closing the tab discards the lot, and a reload brings back the built-in example rather than your work.

The view counter is the only request

Each tool page records that it was opened, sending the tool's slug and nothing else. It carries no text you typed, and it is skipped when your browser signals Do Not Track or Global Privacy Control.

One caveat on that

The endpoint behind the counter is rate-limited like any other, which records a requesting address briefly to enforce the limit. It is never joined to what you typed, because none of it is sent.

More detail in how processing works and our privacy policy.

Limits

What the template writes, and what it checks

The values this tool actually enforces, not a rounded-up version.

Tags generated
14
Sixteen with a Twitter handle, which adds twitter:site and twitter:creator. Nothing else in the template is conditional.
Form fields
6
Title, description, canonical URL, image URL, Twitter handle and OG type. All free text — no dropdown, no pattern, no maximum length.
Open Graph properties
5
og:type, og:url, og:title, og:description and og:image. No og:site_name, og:locale, og:image:alt or second image.
Comment groups
3
Primary Meta Tags, Open Graph / Facebook, and Twitter — so the block stays readable when it lands in a ticket or a review.
Twitter card type
summary_large_image
Hardcoded. The summary, app and player card types cannot be produced from this form.
Length validation
None
The 50–60 and 150–160 figures live in the labels only. Nothing counts, colours, warns or trims.
HTML escaping
None
Values reach the attributes exactly as typed, so a straight double quote or an angle bracket will break the markup.
Output panel
Read-only
It shows plain text until you press Open HTML editor, and Copy reads the generated block either way.

Worth knowing before you paste

The generator covers the common core: title, description, canonical, Open Graph basics, and a Twitter Card. It does not produce article-specific tags (published time, author), multiple images, locale variants, robots directives, or JSON-LD structured data — the Open Graph Preview & Generator handles the extended social tags, and the JSON-LD Schema Generator covers structured data. Values are inserted without HTML escaping, so avoid raw double quotes and angle brackets inside fields. The tool also cannot verify that your image URL is reachable — test the published page with a platform debugger.

FAQ

Meta tag questions

The ones that actually come up.

Guides

Reading that goes deeper

Find this useful? Share it.