Zway.ai

Free tool

Generate a head block that does not break

Fill in five fields and get the full head block: title, description, canonical, Open Graph, and Twitter card, ready to paste. Every value is escaped so quotes and ampersands do not break your markup, and each length is checked against the ranges that survive truncation in search results.

Last reviewed 27 August 2026

Target is 50 to 60 characters including any brand suffix.

Target is 140 to 155 characters.

Absolute URL, 1200 by 630 is the safe aspect for most platforms.

Optional. Leave blank to omit the twitter:site tag.

Result

Checks failing

0 of 4

Every field is inside its target range

Head block

<title>Product analytics for B2B SaaS teams, account by account</title>
<meta name="description" content="See which accounts use which features, which onboarding step loses people, and which behaviour predicts renewal. No data warehouse and no SQL required.">
<link rel="canonical" href="https://acme.com/product-analytics">

<meta property="og:type" content="website">
<meta property="og:title" content="Product analytics for B2B SaaS teams, account by account">
<meta property="og:description" content="See which accounts use which features, which onboarding step loses people, and which behaviour predicts renewal. No data warehouse and no SQL required.">
<meta property="og:url" content="https://acme.com/product-analytics">
<meta property="og:image" content="https://acme.com/og/product-analytics.png">
<meta property="og:image:alt" content="Product analytics for B2B SaaS teams, account by account">
<meta property="og:site_name" content="Acme Analytics">

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Product analytics for B2B SaaS teams, account by account">
<meta name="twitter:description" content="See which accounts use which features, which onboarding step loses people, and which behaviour predicts renewal. No data warehouse and no SQL required.">
<meta name="twitter:image" content="https://acme.com/og/product-analytics.png">
<meta name="twitter:site" content="@acmeanalytics">

Length and format check

Length and format check
FieldCharactersTargetVerdict
Title5650 to 60Pass
Description151140 to 155Pass
Canonical34Absolute https URLPass
Share image41Absolute https URLPass

This will paste cleanly. Remember that the description is not a ranking factor and never has been: it is ad copy for a click, so write it as a promise about what the page contains rather than a keyword container.

How this works

What the numbers mean.

  • 01Every value is escaped for a double-quoted HTML attribute before it is written, so ampersands, angle brackets, and quotation marks in your copy cannot terminate an attribute early or inject markup. That is the failure that silently breaks head blocks assembled by hand.
  • 02The Twitter card type is derived rather than asked for: with a valid absolute image URL it emits summary_large_image, and without one it emits summary, because claiming a large image you cannot serve produces a broken card.
  • 03Character targets are the widely used conventions of 50 to 60 for a title and 140 to 155 for a description. They are conventions, not published limits, and the real constraint is pixel width.

Assumptions and limits

  • og:url and canonical should be the same URL. If they differ, shares and search consolidate signals against two different pages.
  • Google routinely rewrites titles and descriptions in results. This controls what you propose, not what gets displayed.
  • Character counts approximate the pixel widths that actually decide truncation. A title full of capitals overflows sooner than the count suggests.

Questions about this tool

Do meta descriptions affect ranking?
No. Google has stated repeatedly that the description is not a ranking factor. It affects click-through rate, which is a real commercial variable, so it is worth writing well. Write it as the sentence that makes someone choose your result over the four around it, not as a place to repeat your keyword.
Why does escaping matter here?
Because an unescaped quotation mark closes the content attribute early and everything after it becomes malformed markup. An ampersand in a product name can do the same in strict parsers. Hand-written head blocks break this way constantly, and the failure is invisible until a share preview comes back blank.
Do I need both Open Graph and Twitter tags?
Not strictly. X falls back to Open Graph tags when Twitter-specific ones are absent, so the minimum viable set is Open Graph plus twitter:card. Including the explicit pair costs nothing and gives you separate control when you want the X copy to differ from the LinkedIn and Slack preview.
What size should the share image be?
1200 by 630 pixels is the safest single size, because it satisfies the 1.91 to 1 ratio that Open Graph consumers expect and downsamples cleanly for smaller cards. Keep any text in the image large and centred, since several platforms crop the edges to fit their own aspect ratios.

This tool is free and there is nothing to sign up for. If you would rather have the work done than calculate it, that is what Zway does.