Paste a page head and see the card each platform actually gets: the title cut at its own limit, the image measured, and what the protocol says is missing.
Initializing in your browser…
Write SEO, Open Graph and X card tags with every value escaped for an attribute, checked against the protocol, and the cut shown per platform.
Create favicons from text, emojis, or images with all device sizes (16x16 to 512x512), background/text color customization, border radius control, and batch download
Build a cron expression and see its next runs in the zone the job will actually run in, with the day-of-month OR day-of-week rule and the daylight saving rules of crontab(5) applied
A colleague says your links look wrong when shared. You have the page open, so you copy its head and paste it in.
Pasted from the page source
<meta property="og:title"
content="The 24" Monitor Review & Buyer's Guide for 2026, updated monthly">
<meta property="og:image" content="/images/social.png">
<meta property="og:type" content="blog">
<meta property="og:site_name" content="Example Reviews">What each platform is given
4 meta elements, 4 of them Open Graph properties.
Title, read with the browser's parser:
The 24" Monitor Review & Buyer's Guide for 2026, updated monthly
64 characters
X cut at 70 all of it shows
Facebook cut at 88 all of it shows
Google cut at 60 The 24" Monitor Review & Buyer's Guide for 2026, updated…
[error] A required Open Graph property is missing: og:url
[error] "blog" is not an Open Graph type
[error] og:image will not load
This is a relative URL.
[error] The image did not load
It was fetched from this page and did not come back.The title arrives as &quot; and &amp; and &apos; and comes back as a sentence, because it is read with the browser's own HTML parser rather than with a pattern. That is the same parser a crawler uses, so what appears here is what the crawler gets, including the case a pattern gets wrong in the other direction: a value that broke out of its attribute shows up as a truncated string or as nothing, which is exactly what it will be when the page is shared.
The 64 character title survives on X and on Facebook and is cut for Google, which is the point of showing six platforms rather than one number. Each cut is applied to the text, so what is on screen is the string that platform gets. The limits themselves come from each platform's documentation and are labelled as such: a page in a browser cannot see what Facebook renders, and saying otherwise would be inventing a measurement.
The image produces two separate errors, which is deliberate, because they are two separate facts. The URL is relative, so the Open Graph protocol says it cannot be used at all: a crawler fetching og:image has no page context to resolve it against. And the file was fetched from this page and did not come back, which is the same answer the crawler will get. Together they are the whole reason a share has no picture, and neither of them shows up as an error anywhere on the site itself.
og:type of "blog" is the last one. The protocol defines twelve object types and blog is not among them, so a consumer ignores the value and falls back to treating the page as a website. It is a common enough mistake that this tool used to offer it in its own dropdown.
Paste your page head and see the card each platform actually gets. The title is cut at that platform's own documented limit rather than clipped by CSS, the image is fetched and measured against the size and ratio rules, and everything the Open Graph protocol says is missing is named with the paragraph it comes from.
The tags are read with the browser's own HTML parser, which is the definition of what the markup means. That matters for two things a regular expression gets wrong. It resolves character references, so a title written as The 24&quot; Monitor Review &amp; Guide comes back as the sentence a crawler reads rather than as the escape sequence. And it shows what happens when a value broke out of its attribute, which is exactly the failure a hand-written generator produces for a title with a quote in it: the tag looks present in the source and the parser finds a truncated value or none at all.
Seven platforms are previewed and six of them cut the title at a different length. A 200 character title becomes 60 characters in Google, 70 on X, 88 on Facebook, 119 on LinkedIn, 120 in Slack, and stays whole in Discord. That cut is applied to the text rather than hidden with a CSS clamp, so what you see is the string the platform gets, ending where it ends. Every number is shown with the documentation it comes from, and the page says plainly that these are documented rather than measured: nothing running in a browser can see what Facebook renders. What is measured is the cut itself.
The image is measured too. It is fetched from this page and its real width and height are read, so the 200 by 200 minimum Facebook enforces, the 1200 by 630 recommendation and the 1.91:1 crop are checked against the file rather than against what you believe about it. A square image is reported as losing its sides; a 4:1 banner as losing its top and bottom. The commonest failure of all is checked first: og:image has to be an absolute URL with a scheme, because a crawler has no page to resolve a relative one against, and a relative one produces a share with no picture and no error anywhere.
The checks come from the Open Graph protocol. The four required properties are og:title, og:type, og:image and og:url, and the twelve object types are named, so an og:type of "blog" or "product", both of which are common and neither of which is in the protocol, is reported as an error rather than passed through. A missing og:url is explained rather than just flagged: without it a share resolves to whatever URL the sharer was on, so one page shared from a tracking link, a search result and a redirect becomes three objects with three separate counts.
The tags that produce the preview are shown and can be copied, with every value escaped for an attribute. They come from the same module the Meta Tag Generator uses, so the two tools cannot disagree about what a tag means or about where a title gets cut, and the generator's output can be pasted straight back in here and read as the same values. That round trip is one of the tests.
Paste its head. What the parser reads is what a crawler reads, including a value that broke out of its attribute.
Usually a relative og:image or one under 200 by 200. Both are reported, with the file measured.
Because it is cut at a different place there. Switch platforms and see where each one ends.
Edit the fields, read the checks, copy the tags. Nothing has to be live for any of it.
No. You paste the head, or fill the fields in. A browser cannot fetch another site's HTML without that site allowing it with CORS headers, which almost none do, so a tool that claims to fetch your page is running a server you cannot see. The one thing fetched here is the image, because an image element can load cross-origin, and that is what makes the size measurement real.
Because it is. X documents 70 characters for a card title and Facebook shows about 88, so the same title is cut in two different places. Each preview shows its own cut and names the documentation the number came from.
No, and the page says so. They are what each platform documents, and nothing running in your browser can see what a platform actually renders. What is exact is the cut itself: the preview shows the string that survives, rather than describing a limit and leaving you to count.
Because it produces a share with no picture at all and no error anywhere. A crawler fetching your og:image has no page context, so it cannot resolve /images/social.png against anything. The Open Graph protocol requires an absolute URL with a scheme.
They come from the same module, so they cannot differ. The generator's output pasted into this box comes back as the same values, and that round trip is one of the tests.
This runs as client-side JavaScript. Keys, tokens, payloads, and other inputs never leave your device.