Meta Tag Generator

Meta Tag Generator | Calci.in

Meta Tag Generator

Create SEO-friendly meta tags + Open Graph + Twitter cards with live preview.

Inputs
Title: 0 Desc: 0
Aim for 50–60 characters.
Aim for 140–160 characters.

Open Graph (Facebook, LinkedIn, etc.)
Recommended 1200×630px.

Twitter Card

Extras

Tip: Use Ctrl+A inside the code box to select manually if needed.

Generated Meta Tags
<!-- Start: Meta Tags by Calci.in -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Meta Tag Generator | Calci.in</title>
<meta name="description" content="Create SEO, Open Graph & Twitter meta tags.">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://calci.in/">
<meta name="theme-color" content="#0d6efd">
<link rel="icon" href="https://calci.in/favicon.ico">

<meta property="og:type" content="website">
<meta property="og:title" content="Meta Tag Generator | Calci.in">
<meta property="og:description" content="Create SEO, Open Graph & Twitter meta tags.">
<meta property="og:url" content="https://calci.in/">
<meta property="og:site_name" content="Calci.in">
<meta property="og:locale" content="en_IN">
<meta property="og:image" content="https://calci.in/assets/og.jpg">

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@calci_in">
<meta name="twitter:creator" content="@calci_in">
<meta name="twitter:title" content="Meta Tag Generator | Calci.in">
<meta name="twitter:description" content="Create SEO, Open Graph & Twitter meta tags.">
<meta name="twitter:image" content="https://calci.in/assets/og.jpg">
<!-- End: Meta Tags by Calci.in -->
Link Preview
OG Preview
calci.in
Meta Tag Generator | Calci.in
Create SEO, Open Graph & Twitter meta tags.
Note: Social networks cache previews; use their debuggers after changes.
`; const blob = new Blob([html], {type:'text/html;charset=utf-8'}); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'calci-meta-head-preview.html'; document.body.appendChild(a); a.click(); a.remove(); } // Reset function resetAll(){ setDefaults(); build(); } // Theme toggle function setTheme(mode){ if(mode==='dark'){ document.body.classList.add('dark'); localStorage.setItem('calci_theme','dark'); els.toggleTheme.querySelector('span').textContent='Dark'; } else{ document.body.classList.remove('dark'); localStorage.setItem('calci_theme','light'); els.toggleTheme.querySelector('span').textContent='Light'; } } // Events const inputs = document.querySelectorAll('#title, #description, #canonical, #robots, #favicon, #themeColor, #siteName, #charset, #lang, #ogType, #ogUrl, #ogImage, #ogW, #ogH, #twCard, #twSite, #twCreator, #twImage, #keywords'); inputs.forEach(i=>{ i.addEventListener('input', build); i.addEventListener('change', build); }); els.copyBtn.addEventListener('click', ()=>copyText(window.__calci_meta_raw || els.codeBlock.textContent)); els.copyAll.addEventListener('click', ()=>copyText(window.__calci_meta_raw || els.codeBlock.textContent)); els.downloadHead.addEventListener('click', downloadHead); els.downloadPreview.addEventListener('click', downloadHeadHTMLPreview); els.resetAll.addEventListener('click', resetAll); els.toggleTheme.addEventListener('click', ()=>{ const isDark = document.body.classList.contains('dark'); setTheme(isDark ? 'light' : 'dark'); }); // Init (function init(){ setDefaults(); const saved = localStorage.getItem('calci_theme'); setTheme(saved || (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')); build(); })();