Free Tool

SEO Meta Generator

Generate optimized meta tags, Open Graph, Twitter Cards, and structured data for better search engine visibility and social sharing.

Page Information
Recommended: 50-60 characters
Recommended: 150-160 characters
Recommended: 1200x630px for social sharing
Comma-separated keywords
Generated Meta Tags

Live Preview

Your Page Title
https://example.com/page
Your meta description will appear here...

Quick Start Templates

SEO Meta Generator Features

🔍

Search Engine Optimization

Generate proper meta tags for better search engine visibility and rankings.

📱

Social Media Sharing

Create Open Graph and Twitter Card tags for perfect social media previews.

📊

Structured Data

Include JSON-LD structured data for rich snippets and enhanced search results.

👁️

Live Preview

See how your page will appear in search results and social media platforms.

📋

Copy & Download

Easy copy to clipboard and download options for your generated meta tags.

🔒

Privacy First

All processing happens locally in your browser. No data sent to servers.

`; outputCode.value = metaTags; updatePreview(title, description, url, image); } function updatePreview(title, description, url, image) { // Search preview document.querySelector('.search-title').textContent = title || 'Your Page Title'; document.querySelector('.search-url').textContent = url || 'https://example.com/page'; document.querySelector('.search-desc').textContent = description || 'Your meta description will appear here...'; // Social previews document.querySelectorAll('.social-title').forEach(el => { el.textContent = title || 'Your Page Title'; }); document.querySelectorAll('.social-desc').forEach(el => { el.textContent = description || 'Your description will appear here...'; }); } function clearAll() { pageTitle.value = ''; pageDescription.value = ''; pageUrl.value = ''; pageImage.value = ''; siteName.value = ''; author.value = ''; keywords.value = ''; contentType.value = 'website'; outputCode.value = ''; updatePreview('', '', '', ''); } function copyOutput() { navigator.clipboard.writeText(outputCode.value).then(() => { const originalText = copyBtn.textContent; copyBtn.textContent = 'Copied!'; setTimeout(() => copyBtn.textContent = 'Copy', 2000); }); } function downloadOutput() { const blob = new Blob([outputCode.value], { type: 'text/html' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'meta-tags.html'; a.click(); URL.revokeObjectURL(url); } function escapeHtml(text) { const div = document.createElement('div'); div.textContent = text; return div.innerHTML; } })();