Meta tag generator

Paste a URL. Get the title, description, Open Graph, Twitter Card and JSON-LD tags for it — with every field marked as found on the page, derived from its content, or still needing a human to write it.

Free, no signup. Reads the HTML your server sends, with no JavaScript run.

Why every field is labelled

Most generators hand you a finished-looking block of tags. The trouble is that they cannot know what your page is for, so anything they could not find gets quietly invented or left blank, and you paste it in without noticing.

This one separates three different things. Found means the tag was already on your page and is fine as it stands. Derived means it was pulled out of your real content — a heading, your first paragraph, an existing tag that ran too long — which is a genuine starting point but still a machine's guess at what matters. Needs writing means there was nothing to work from, so you get a clearly marked blank instead of a plausible sentence somebody else wrote for you.

Placeholders never reach the structured data, because a search engine reads that literally.

What the tags actually do

The title and description are the two lines a search result shows. Open Graph tags control the preview card when your link is pasted into Slack, LinkedIn, WhatsApp, Discord or Facebook; Twitter Card tags do the same on X. Without them the preview falls back to whatever the platform can scrape, which is usually your navigation and your logo.

The JSON-LD block tells search engines what kind of thing the page is — an article, a plain page — in a form they read directly rather than infer. It is what makes rich results possible.

Sizes worth knowing

Titles get cut off around 60 characters and descriptions around 155, so anything past that is written for nobody. Share images want to be 1200×630; smaller ones are letterboxed or cropped badly. Every URL in these tags has to be absolute — a relative path works on your own page and breaks in every preview.

Doing this for a whole site? The API takes twenty URLs per request and returns the same output as JSON, alongside the audit that tells you which pages need it. See it on RapidAPI.