{
  "meta": {
    "id": "meta-checklist-benchmark-2026",
    "title": "Toolminator Meta Checklist Benchmark 2026",
    "revision": "2026-06",
    "checklistCount": 14,
    "schemaTypeCount": 7,
    "disclaimer": "Curated pre-publish meta and structured-data checklist—not a live crawl or ranking audit. Search engines may ignore or rewrite tags; validate critical pages with Search Console and rich-results tests after deploy.",
    "methodologyUrl": "/method/",
    "metaToolUrl": "/tools/meta-tag-generator/",
    "serpStudyUrl": "/explore/serp-snippet-study/",
    "license": "CC BY 4.0 with attribution to Toolminator and link to methodology."
  },
  "generatedAt": "2026-06-17T11:52:27.849Z",
  "sources": [
    {
      "id": "schema-org",
      "label": "Schema.org type summaries + Google Search documentation (summaries)",
      "accessed": "2026-06"
    },
    {
      "id": "toolminator-publish-kit",
      "label": "Toolminator meta-tag-generator + serp-preview-tool checklist model",
      "accessed": "2026-06"
    }
  ],
  "checklist": [
    {
      "id": "title-unique",
      "category": "serp",
      "label": "Unique title tag (15–60 chars ideal)",
      "priority": "required",
      "notes": "Avoid duplicate titles across the site; primary keyword early."
    },
    {
      "id": "meta-description",
      "category": "serp",
      "label": "Meta description (50–160 chars ideal)",
      "priority": "required",
      "notes": "Benefit + intent; not a keyword list."
    },
    {
      "id": "canonical",
      "category": "serp",
      "label": "Canonical URL (absolute https)",
      "priority": "required",
      "notes": "Self-referencing canonical on indexable pages; consolidate duplicates."
    },
    {
      "id": "robots-index",
      "category": "serp",
      "label": "Robots meta intentional (index/noindex)",
      "priority": "required",
      "notes": "Utility, thin, or duplicate URLs should be noindex by design."
    },
    {
      "id": "og-title",
      "category": "social",
      "label": "og:title matches or complements title",
      "priority": "recommended",
      "notes": "Social shares often use OG tags instead of raw title."
    },
    {
      "id": "og-description",
      "category": "social",
      "label": "og:description present",
      "priority": "recommended",
      "notes": "Can be shorter and more conversational than meta description."
    },
    {
      "id": "og-image",
      "category": "social",
      "label": "og:image 1200×630 (or 1.91:1)",
      "priority": "recommended",
      "notes": "Minimum practical width often cited as 600px; test LinkedIn and X cards."
    },
    {
      "id": "twitter-card",
      "category": "social",
      "label": "twitter:card (summary_large_image)",
      "priority": "recommended",
      "notes": "twitter:image can mirror og:image."
    },
    {
      "id": "jsonld-webpage",
      "category": "schema",
      "label": "WebPage or Article JSON-LD",
      "priority": "recommended",
      "notes": "Include name, description, url; Article adds datePublished when editorial."
    },
    {
      "id": "jsonld-breadcrumb",
      "category": "schema",
      "label": "BreadcrumbList on nested pages",
      "priority": "recommended",
      "notes": "Helps SERP breadcrumb display when eligible."
    },
    {
      "id": "jsonld-faq",
      "category": "schema",
      "label": "FAQPage only when FAQs are visible on-page",
      "priority": "conditional",
      "notes": "Do not mark up hidden or boilerplate FAQ blocks."
    },
    {
      "id": "jsonld-howto",
      "category": "schema",
      "label": "HowTo for step-by-step guides",
      "priority": "conditional",
      "notes": "Steps must match visible content; not for every blog post."
    },
    {
      "id": "hreflang",
      "category": "international",
      "label": "hreflang when multi-locale",
      "priority": "conditional",
      "notes": "Single-locale English sites can skip."
    },
    {
      "id": "viewport-theme",
      "category": "technical",
      "label": "viewport + charset in <head>",
      "priority": "required",
      "notes": "Baseline mobile rendering."
    }
  ],
  "schemaTypes": [
    {
      "type": "WebPage",
      "useWhen": "Generic landing, tool, or hub pages",
      "requiredProps": [
        "name",
        "url",
        "description"
      ],
      "richResult": "none",
      "caution": "Do not duplicate conflicting types on the same URL."
    },
    {
      "type": "Article",
      "useWhen": "Blog posts and editorial guides with a clear author/date",
      "requiredProps": [
        "headline",
        "datePublished",
        "author"
      ],
      "richResult": "article enhancements",
      "caution": "dateModified when you materially update content."
    },
    {
      "type": "HowTo",
      "useWhen": "Visible numbered steps (recipes, tutorials, checklists)",
      "requiredProps": [
        "name",
        "step"
      ],
      "richResult": "how-to (eligibility varies)",
      "caution": "Each step needs visible text; no hidden steps."
    },
    {
      "type": "FAQPage",
      "useWhen": "Real FAQ section users can read on the page",
      "requiredProps": [
        "mainEntity"
      ],
      "richResult": "FAQ (restricted policies)",
      "caution": "Google limits FAQ rich results for many site types."
    },
    {
      "type": "BreadcrumbList",
      "useWhen": "Nested URLs with clear hierarchy",
      "requiredProps": [
        "itemListElement"
      ],
      "richResult": "breadcrumb trail",
      "caution": "Must match visible navigation path."
    },
    {
      "type": "SoftwareApplication",
      "useWhen": "Free browser tools with clear name and description",
      "requiredProps": [
        "name",
        "applicationCategory",
        "offers"
      ],
      "richResult": "varies",
      "caution": "offers.price = 0 when truly free."
    },
    {
      "type": "Dataset",
      "useWhen": "Downloadable benchmark or index pages",
      "requiredProps": [
        "name",
        "description",
        "distribution"
      ],
      "richResult": "none",
      "caution": "Link to JSON/CSV distribution URL."
    }
  ],
  "pageTypePlaybooks": [
    {
      "id": "tool",
      "label": "Free tool page",
      "schemaTypes": [
        "WebPage",
        "SoftwareApplication"
      ],
      "checklistIds": [
        "title-unique",
        "meta-description",
        "canonical",
        "og-image",
        "twitter-card",
        "jsonld-webpage"
      ]
    },
    {
      "id": "guide",
      "label": "How-to guide",
      "schemaTypes": [
        "Article",
        "HowTo",
        "BreadcrumbList"
      ],
      "checklistIds": [
        "title-unique",
        "meta-description",
        "canonical",
        "og-image",
        "jsonld-webpage",
        "jsonld-howto"
      ]
    },
    {
      "id": "benchmark",
      "label": "Data / benchmark page",
      "schemaTypes": [
        "Dataset",
        "WebPage",
        "BreadcrumbList"
      ],
      "checklistIds": [
        "title-unique",
        "meta-description",
        "canonical",
        "og-image",
        "jsonld-webpage"
      ]
    },
    {
      "id": "blog",
      "label": "Blog post",
      "schemaTypes": [
        "Article",
        "BreadcrumbList"
      ],
      "checklistIds": [
        "title-unique",
        "meta-description",
        "canonical",
        "og-image",
        "twitter-card",
        "jsonld-webpage"
      ]
    }
  ],
  "howToSteps": [
    {
      "position": 1,
      "name": "Draft title and description",
      "text": "Write a unique title (15–60 characters ideal) and meta description (50–160 characters) that match search intent."
    },
    {
      "position": 2,
      "name": "Generate meta and Open Graph tags",
      "text": "Use the meta tag generator to output title, description, canonical, OG, and Twitter tags locally—no upload required."
    },
    {
      "position": 3,
      "name": "Preview the SERP snippet",
      "text": "Paste copy into the SERP preview tool to check desktop truncation and snippet score before publish."
    },
    {
      "position": 4,
      "name": "Add JSON-LD for the page type",
      "text": "Pick WebPage, Article, HowTo, or Dataset schema that matches visible content—avoid marking up hidden blocks."
    },
    {
      "position": 5,
      "name": "Validate social cards",
      "text": "Confirm og:image is 1200×630 (or similar 1.91:1) and twitter:card is set for large image previews."
    },
    {
      "position": 6,
      "name": "Post-deploy checks",
      "text": "After deploy, spot-check live HTML, run rich-results tests for schema, and monitor Search Console for coverage."
    }
  ]
}
