The Developer's Meta Tag Checklist: SEO, Social Sharing, and Beyond
6 April, 2026 Web
The Developer's Meta Tag Checklist: SEO, Social Sharing, and Beyond
I once spent three weeks debugging why a client's site disappeared from Google. We checked backlinks, server logs, crawl budgets, everything. The culprit was a single line in the base template: <meta name="robots" content="noindex"> — left over from staging. One forgotten meta tag wiped out six months of SEO work overnight. Meta tags are small, easy to overlook, and capable of catastrophic damage if misconfigured. This checklist exists so you never miss one.
Essential SEO Meta Tags
These tags should be on every public page. Missing any of them means leaving search traffic on the table.
<title>
Not technically a meta tag — it is its own HTML element — but it is the single most important on-page SEO signal. Google uses it as the blue clickable link in search results.
- Keep it under 60 characters. Google truncates longer titles with an ellipsis.
- Put the primary keyword near the front. "UUID Generator - RichDevTools" ranks better for "UUID Generator" than "RichDevTools - UUID Generator".
- Make it unique per page. Duplicate titles across pages confuse search engines about which page to rank.
- Do not keyword-stuff. Google rewrites titles that look spammy. A clear, descriptive title performs better.
<meta name="description">
The description tag controls the snippet shown below your title in search results. Google does not use it as a ranking factor, but a compelling description directly impacts click-through rate — which does affect rankings indirectly.
- Aim for 120-155 characters. Mobile search results truncate earlier than desktop.
- Include a call to action. "Learn how to..." or "Generate a..." gives users a reason to click.
- Make it unique per page. Google ignores duplicate descriptions and generates its own instead.
<link rel="canonical">
The canonical tag tells search engines which URL is the "official" version of a page. Without it, search engines may index multiple versions: https://example.com/page, https://www.example.com/page, https://example.com/page?ref=twitter, and http://example.com/page are all different URLs pointing to the same content.
- Always use absolute URLs.
<link rel="canonical" href="https://example.com/page">— never relative. - Self-referencing canonicals are good practice. Every page should point to itself, even if there are no duplicates yet.
- Only one canonical per page. Multiple canonical tags confuse crawlers; they may ignore all of them.
<meta name="robots">
Controls what search engines can do with your page. The default (no tag at all) is index, follow — crawl the page, index it, and follow all links.
| Directive | Effect |
|---|---|
noindex |
Remove from search results entirely |
nofollow |
Do not follow links on this page |
noarchive |
Do not show a cached version |
nosnippet |
Do not show a text snippet in results |
max-snippet:N |
Limit snippet to N characters |
max-image-preview:large |
Allow large image previews in search |
notranslate |
Do not offer automatic translation |
Danger zone: Adding noindex removes the page from search. This is correct for login pages, admin panels, and staging environments. It is catastrophic if applied to your public content by accident. Always verify the robots tag on production deployments — the Meta Tag Analyser catches this instantly.
<meta name="viewport">
Required for mobile-first indexing. Without it, Google treats your page as desktop-only, which can hurt rankings.
<meta name="viewport" content="width=device-width, initial-scale=1">
This tag should be on every page. There is no reason to omit it.
Open Graph Tags for Social Sharing
When someone shares your link on Facebook, LinkedIn, Discord, Slack, WhatsApp, or Telegram, these platforms read Open Graph tags to build a visual preview card. Without them, your link appears as a plain URL with no image, no title, and no description. I have covered the full Open Graph specification in the Open Graph meta tags guide — here is the minimum you need on every page.
| Tag | Required | Purpose |
|---|---|---|
og:title |
Yes | Title shown in the preview card |
og:description |
Practically yes | Description below the title |
og:image |
Yes | Preview image (1200x630px recommended) |
og:url |
Yes | Canonical URL for the shared page |
og:type |
Yes | Content type: website, article, etc. |
og:site_name |
Recommended | Your brand name, shown separately on some platforms |
og:locale |
Optional | Defaults to en_US if omitted |
For blog posts and articles, add:
<meta property="og:type" content="article">
<meta property="article:published_time" content="2026-04-06T10:00:00+00:00">
<meta property="article:author" content="https://example.com/authors/jane">
Generate the complete set of tags with the Open Graph Generator — it produces copy-paste HTML for all required properties.
Twitter Card Tags
Twitter (X) has its own meta tag format. The critical tag is twitter:card — without it, Twitter may show no preview at all, even if all Open Graph tags are present.
| Tag | Required | Purpose |
|---|---|---|
twitter:card |
Yes | Card type: summary or summary_large_image |
twitter:site |
Recommended | Your site's Twitter handle |
twitter:creator |
Optional | The content author's Twitter handle |
Twitter falls back to Open Graph for title, description, and image. So in practice, you only need:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@yourhandle">
Everything else is pulled from your OG tags. Preview how the card will look on each platform using the Social Media Preview tool.
Beyond the Basics
hreflang for International Sites
If your site serves content in multiple languages or targets different regions, hreflang tags tell Google which version to show in each locale.
<link rel="alternate" hreflang="en" href="https://example.com/page">
<link rel="alternate" hreflang="de" href="https://example.de/seite">
<link rel="alternate" hreflang="x-default" href="https://example.com/page">
- Always include
x-defaultfor the fallback version. hreflangis bidirectional — page A must point to page B and page B must point back to page A. Orphaned one-way references are ignored.- Bing ignores
hreflang— use<meta http-equiv="content-language">for Bing.
Dublin Core
Dublin Core meta tags (DC.title, DC.creator, DC.date, etc.) were designed for academic and library cataloguing. In practice, they are only relevant if you work on government, academic, or archival websites. For commercial websites, Open Graph and standard HTML meta tags cover all the same ground with better platform support.
Schema.org Structured Data
Schema.org markup is not a meta tag — it lives in a <script type="application/ld+json"> block — but it serves a similar purpose of providing machine-readable metadata. Google uses structured data to generate rich results: star ratings, FAQ accordions, recipe cards, event details, and more.
The most impactful Schema.org types:
| Type | Rich Result | Impact |
|---|---|---|
Article |
Article headline, date, author in search | Medium |
FAQPage |
Expandable FAQ accordion in search results | High |
HowTo |
Step-by-step instructions with images | High |
Product |
Price, availability, reviews in search | Very High |
BreadcrumbList |
Breadcrumb path shown below the URL | Medium |
LocalBusiness |
Business info in Google Maps and search | Very High |
Structured data and meta tags are complementary, not alternatives. Meta tags handle baseline SEO and social sharing. Structured data unlocks enhanced search features. You need both. Use the Meta Tag Analyser to verify your standard meta tags, and Google's Rich Results Test for structured data.
The <meta name="keywords"> Tag
Remove it. Google has not used the keywords meta tag since 2009. Matt Cutts publicly confirmed it. Bing has said they treat keyword stuffing as a potential spam signal. The tag provides zero SEO benefit and can only hurt you. If your site still has it, delete it today.
Automated Meta Tag Auditing
Manually checking meta tags on every page before every deploy is unsustainable. Here is how to automate it.
Lighthouse CI
Google's Lighthouse includes an SEO audit category that checks for:
- Missing
<title>andmeta description - Missing
viewporttag - Unresolvable
robots.txt - Non-crawlable links
- Invalid
hreflang
Add it to your CI pipeline:
npm install -g @lhci/cli
lhci autorun --collect.url=https://your-staging-site.com
Custom Validation Script
For Open Graph and Twitter Card validation, a simple curl-based check works:
#!/bin/bash
URL="$1"
HTML=$(curl -sL "$URL")
check_tag() {
if echo "$HTML" | grep -q "$1"; then
echo "OK: $1"
else
echo "MISSING: $1" && exit 1
fi
}
check_tag 'og:title'
check_tag 'og:description'
check_tag 'og:image'
check_tag 'og:url'
check_tag 'twitter:card'
check_tag 'rel="canonical"'
Run this against your staging URL before promoting to production. A failed check blocks the deployment — preventing that catastrophic noindex scenario.
Monitoring in Production
For ongoing monitoring, set up a scheduled job that crawls your key pages and alerts on missing tags. Even a weekly cron job that checks your top 20 pages catches regressions before they accumulate. If you are working with cron expressions, a weekly schedule like 0 9 * * 1 runs the check every Monday at 9 AM.
The Printable Checklist
Copy this into your deployment review process:
| Category | Tag | Check |
|---|---|---|
| SEO | <title> |
Unique, under 60 chars, keyword near front |
| SEO | meta description |
Unique, 120-155 chars, includes CTA |
| SEO | link canonical |
Absolute URL, self-referencing |
| SEO | meta robots |
Not noindex on public pages |
| SEO | meta viewport |
Present with width=device-width |
| Social | og:title |
Set, matches or complements <title> |
| Social | og:description |
Set, under 155 chars |
| Social | og:image |
Absolute HTTPS URL, 1200x630px |
| Social | og:url |
Absolute URL, matches canonical |
| Social | og:type |
website or article as appropriate |
| Social | twitter:card |
summary_large_image for content pages |
| Social | twitter:site |
Your Twitter handle |
| i18n | hreflang |
Bidirectional, includes x-default (if multilingual) |
| Schema | JSON-LD | Article, FAQ, or Product as applicable |
Run the Meta Tag Analyser against your live URL to validate everything in one click. Generate missing Open Graph tags with the Open Graph Generator, and preview how your links will appear on each platform with the Social Media Preview.
The One Thing to Remember
If you take nothing else from this checklist: automate your meta tag checks. The tags are too easy to break accidentally and too invisible to catch manually. A deployment script that validates five tags takes ten minutes to write and prevents the kind of silent SEO disasters that take months to recover from. Set it up today.