Blog/WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed)
·8 min read

WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed)

Yoast and Rank Math are popular, but do you actually need them? This guide covers how to add meta tags to WordPress correctly — with or without a plugin.

Check your site right now

Free SEO audit in 30 seconds — find all the issues covered in this guide.

Audit for free →

WordPress meta tags: what most guides get wrong

Most WordPress SEO guides tell you to install Yoast SEO and call it done. That's reasonable advice. But it skips the most important part: understanding what meta tags actually do, which ones matter, and how to verify they're working.

We've audited hundreds of WordPress sites that had Yoast installed — and still had critical meta tag failures. Plugin doesn't mean working.

This guide covers everything: what WordPress meta tags you need, how to add them (with and without plugins), and how to audit them.


The 3 types of meta tags WordPress sites need

1. SEO meta tags

These go in your and tell Google what each page is about:

  • Title tag (</code>): The blue headline in Google results. 50-60 characters. Include your primary keyword.</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><strong class="font-semibold text-gray-900">Meta description</strong> (<code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono"><meta name="description"></code>): The snippet below the title. 150-160 characters. Affects click-through rate.</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><strong class="font-semibold text-gray-900">Canonical tag</strong> (<code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono"><link rel="canonical"></code>): The 'official' URL for this page — prevents duplicate content penalties.</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><strong class="font-semibold text-gray-900">Robots tag</strong> (<code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono"><meta name="robots"></code>): Tells Google whether to index the page. Default is 'index, follow' — only add this if you need to change that.</li> <p class="text-gray-600 leading-relaxed mb-4"></ul></p> <h3 class="text-lg font-semibold text-gray-900 mt-6 mb-2">2. Open Graph tags</h3> <p class="text-gray-600 leading-relaxed mb-4">These control how your pages look when shared on Facebook, LinkedIn, iMessage, and Slack:</p> <ul class="list-disc list-inside space-y-1 my-4 ml-4"><li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">og:title</code> — The headline in the preview card</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">og:description</code> — The description below</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">og:image</code> — The preview image (minimum 1200×630px, absolute URL)</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">og:url</code> — Your page's canonical URL</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">og:type</code> — Content type: 'website', 'article', or 'product'</li> <p class="text-gray-600 leading-relaxed mb-4"></ul></p> <p class="text-gray-600 leading-relaxed mb-4">Missing these = ugly link previews when anyone shares your content. More common than you'd think.</p> <h3 class="text-lg font-semibold text-gray-900 mt-6 mb-2">3. Twitter Card tags</h3> <p class="text-gray-600 leading-relaxed mb-4">X/Twitter uses its own tag system:</p> <ul class="list-disc list-inside space-y-1 my-4 ml-4"><li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">twitter:card</code> — Set to <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">summary_large_image</code> for a big image preview</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">twitter:title</code> and <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">twitter:description</code> — Often inherited from OG tags</li> <li class="text-gray-600 mb-1 ml-4 list-disc"><code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">twitter:image</code> — The image (can be same as og:image)</li> <p class="text-gray-600 leading-relaxed mb-4"></ul></p> <hr class="border-gray-200 my-8" /> <h2 class="text-2xl font-bold text-gray-900 mt-10 mb-4">Option 1: Add meta tags with Yoast SEO (recommended for most sites)</h2> <p class="text-gray-600 leading-relaxed mb-4">Yoast SEO is the most-used WordPress SEO plugin. Here's how to use it correctly:</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Setup:</strong></p> <p class="text-gray-600 leading-relaxed mb-4">1. Install and activate Yoast SEO (free version is fine for most sites)</p> <p class="text-gray-600 leading-relaxed mb-4">2. Go to SEO → General → Features → enable 'Advanced settings pages'</p> <p class="text-gray-600 leading-relaxed mb-4">3. Go to SEO → Social → Facebook → enable 'Add Open Graph meta data'</p> <p class="text-gray-600 leading-relaxed mb-4">4. Go to SEO → Social → Twitter → enable Twitter card</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Per-page setup:</strong></p> <p class="text-gray-600 leading-relaxed mb-4">For each page/post, scroll to the Yoast SEO panel below the editor.</p> <ul class="list-disc list-inside space-y-1 my-4 ml-4"><li class="text-gray-600 mb-1 ml-4 list-disc">SEO tab: Set 'SEO title' (what appears in Google) and 'Meta description'</li> <li class="text-gray-600 mb-1 ml-4 list-disc">Social tab: Set Facebook and Twitter title/description/image</li> <p class="text-gray-600 leading-relaxed mb-4"></ul></p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Common Yoast mistake:</strong> Using the 'focus keyphrase' as your title. The title goes in 'SEO title' — they're separate fields.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Run a free audit to verify Yoast is working correctly:</strong> <a href="https://getmetafix.com" class="text-black underline hover:text-gray-600 transition-colors" target="_blank" rel="noopener noreferrer">getmetafix.com</a> — paste your URL and see exactly what tags Yoast generated.</p> <hr class="border-gray-200 my-8" /> <h2 class="text-2xl font-bold text-gray-900 mt-10 mb-4">Option 2: Add meta tags with Rank Math</h2> <p class="text-gray-600 leading-relaxed mb-4">Rank Math is a newer plugin that includes more features in the free tier than Yoast. Setup is similar:</p> <p class="text-gray-600 leading-relaxed mb-4">1. Install Rank Math → run the setup wizard</p> <p class="text-gray-600 leading-relaxed mb-4">2. During setup, enable 'Social Meta' when prompted</p> <p class="text-gray-600 leading-relaxed mb-4">3. Go to Rank Math → Titles & Meta → set global defaults</p> <p class="text-gray-600 leading-relaxed mb-4">4. Per page: use the Rank Math panel below the editor → Edit Snippet → fill in title and description</p> <p class="text-gray-600 leading-relaxed mb-4">Rank Math auto-generates OG tags from your SEO title/description. But set per-page OG images manually for important pages.</p> <hr class="border-gray-200 my-8" /> <h2 class="text-2xl font-bold text-gray-900 mt-10 mb-4">Option 3: Add meta tags without a plugin</h2> <p class="text-gray-600 leading-relaxed mb-4">If you're comfortable editing theme files, you can add meta tags directly. This is the cleanest approach but requires care — a mistake can break the whole site.</p> <p class="text-gray-600 leading-relaxed mb-4">Add to your theme's <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">functions.php</code> or a child theme:</p> <pre class="bg-gray-950 text-green-400 rounded-xl p-4 overflow-x-auto text-sm my-6"><code>function custom_meta_tags() { <p class="text-gray-600 leading-relaxed mb-4"> if ( is_singular() ) {</p> <p class="text-gray-600 leading-relaxed mb-4"> global $post;</p> <p class="text-gray-600 leading-relaxed mb-4"> $description = get_the_excerpt( $post );</p> <p class="text-gray-600 leading-relaxed mb-4"> $image = get_the_post_thumbnail_url( $post, 'large' );</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta name="description" content="' . esc_attr( $description ) . '">';</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta property="og:title" content="' . esc_attr( get_the_title() ) . '">';</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta property="og:description" content="' . esc_attr( $description ) . '">';</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta property="og:image" content="' . esc_url( $image ) . '">';</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta property="og:url" content="' . esc_url( get_permalink() ) . '">';</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta property="og:type" content="article">';</p> <p class="text-gray-600 leading-relaxed mb-4"> echo '<meta name="twitter:card" content="summary_large_image">';</p> <p class="text-gray-600 leading-relaxed mb-4"> }</p> <p class="text-gray-600 leading-relaxed mb-4">}</p> <p class="text-gray-600 leading-relaxed mb-4">add_action( 'wp_head', 'custom_meta_tags' );</p> <p class="text-gray-600 leading-relaxed mb-4"></code></pre></p> <p class="text-gray-600 leading-relaxed mb-4">This is a basic version. For production, you'd want per-page custom fields for more control.</p> <hr class="border-gray-200 my-8" /> <h2 class="text-2xl font-bold text-gray-900 mt-10 mb-4">The meta tags most WordPress sites are missing</h2> <p class="text-gray-600 leading-relaxed mb-4">Even with Yoast installed, we see these failures constantly:</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">1. OG image not set on inner pages</strong></p> <p class="text-gray-600 leading-relaxed mb-4">Yoast only auto-sets the OG image on the homepage. Blog posts and product pages often have no og:image — meaning social shares show a broken preview.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Fix:</strong> Set a featured image on every post. Yoast uses the featured image as the OG image automatically.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">2. Meta description auto-generated</strong></p> <p class="text-gray-600 leading-relaxed mb-4">Yoast will auto-generate a meta description from your content if you don't write one. It's almost always worse than what you'd write. Google often ignores these.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Fix:</strong> Write a unique meta description for every important page. 155 characters. Include the keyword.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">3. Title tag includes site name on short pages</strong></p> <p class="text-gray-600 leading-relaxed mb-4">Yoast's default title format is usually: <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">Post Title - Site Name</code>. If your post title is short, this is fine. If it's long (45+ chars), appending ' - Site Name' pushes it over 60 characters.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Fix:</strong> Change the title separator to a shorter format, or shorten your post titles to leave room.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">4. Canonical tag pointing to wrong URL</strong></p> <p class="text-gray-600 leading-relaxed mb-4">On paginated archives or when the same post appears under multiple categories, canonical tags can point to unexpected URLs. This dilutes your ranking power.</p> <p class="text-gray-600 leading-relaxed mb-4"><strong class="font-semibold text-gray-900">Fix:</strong> Check canonical tags with <a href="https://getmetafix.com" class="text-black underline hover:text-gray-600 transition-colors" target="_blank" rel="noopener noreferrer">getmetafix.com</a> — it shows you exactly which canonical URL your page is reporting.</p> <hr class="border-gray-200 my-8" /> <h2 class="text-2xl font-bold text-gray-900 mt-10 mb-4">How to audit your WordPress meta tags</h2> <p class="text-gray-600 leading-relaxed mb-4">The fastest way: paste any page URL into <a href="https://getmetafix.com" class="text-black underline hover:text-gray-600 transition-colors" target="_blank" rel="noopener noreferrer">getmetafix.com</a>. It checks all 12 critical meta tag elements in 30 seconds and shows you exactly what Yoast (or your custom setup) is outputting.</p> <p class="text-gray-600 leading-relaxed mb-4">More thorough check: View source (<code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">Cmd+U</code> / <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono">Ctrl+U</code>) and search for <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono"><meta name="description"</code> and <code class="bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono"><meta property="og:image"</code>. If they're missing, you know what to fix.</p> <p class="text-gray-600 leading-relaxed mb-4">The $29 Fix Package at GetMetaFix generates the exact meta tag HTML tailored to your page — paste it in, or give it to your developer.</p></article><div class="mt-16 bg-black rounded-2xl p-8 text-center"><h2 class="text-2xl font-bold text-white mb-2">Fix your site's SEO in 30 seconds</h2><p class="text-gray-400 mb-6">Free audit. AI-generated fixes for $29.</p><a class="inline-flex items-center gap-2 bg-white text-black px-6 py-3 rounded-xl font-semibold hover:bg-gray-100 transition-colors" href="/">Audit for free →</a></div></main><footer class="border-t border-gray-100 py-8 mt-16"><div class="max-w-5xl mx-auto px-6 flex flex-col sm:flex-row justify-between items-center gap-4"><div class="flex items-center gap-2"><div class="w-5 h-5 bg-black rounded flex items-center justify-center"><span class="text-white text-[10px] font-bold">S</span></div><span class="text-sm font-medium text-gray-900">GetMetaFix</span></div><p class="text-sm text-gray-400">Built by an AI. Powered by actual SEO knowledge.</p></div></footer></div><!--$--><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><script src="/_next/static/chunks/bf7c1338cffcafee.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"default\"]\n4:I[43880,[\"/_next/static/chunks/370b7e51a899848f.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"Analytics\"]\n5:I[57215,[\"/_next/static/chunks/370b7e51a899848f.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"SpeedInsights\"]\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"MetadataBoundary\"]\ne:I[68027,[],\"default\"]\n:HL[\"/_next/static/chunks/4c6f8ba65dcc9ad8.css?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"style\"]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"ELSEnOpQrHnQ_OmHLL6iI\",\"c\":[\"\",\"blog\",\"wordpress-meta-tags-guide\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"slug\",\"wordpress-meta-tags-guide\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/4c6f8ba65dcc9ad8.css?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/370b7e51a899848f.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_db8459eb-module__PZ6jEG__variable font-sans antialiased bg-white text-gray-900\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L6\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/7c92e96509cd355e.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[22016,[\"/_next/static/chunks/370b7e51a899848f.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/7c92e96509cd355e.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"\"]\n10:T383c,"])</script><script>self.__next_f.push([1,"\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eWordPress meta tags: what most guides get wrong\u003c/h2\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eMost WordPress SEO guides tell you to install Yoast SEO and call it done. That's reasonable advice. But it skips the most important part: understanding what meta tags actually do, which ones matter, and how to verify they're working.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eWe've audited hundreds of WordPress sites that had Yoast installed — and still had critical meta tag failures. Plugin doesn't mean working.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eThis guide covers everything: what WordPress meta tags you need, how to add them (with and without plugins), and how to audit them.\u003c/p\u003e\n\n\u003chr class=\"border-gray-200 my-8\" /\u003e\n\n\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eThe 3 types of meta tags WordPress sites need\u003c/h2\u003e\n\n\u003ch3 class=\"text-lg font-semibold text-gray-900 mt-6 mb-2\"\u003e1. SEO meta tags\u003c/h3\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eThese go in your \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003chead\u003e\u003c/code\u003e and tell Google what each page is about:\u003c/p\u003e\n\n\u003cul class=\"list-disc list-inside space-y-1 my-4 ml-4\"\u003e\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eTitle tag\u003c/strong\u003e (\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003ctitle\u003e\u003c/code\u003e): The blue headline in Google results. 50-60 characters. Include your primary keyword.\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eMeta description\u003c/strong\u003e (\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cmeta name=\"description\"\u003e\u003c/code\u003e): The snippet below the title. 150-160 characters. Affects click-through rate.\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eCanonical tag\u003c/strong\u003e (\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003clink rel=\"canonical\"\u003e\u003c/code\u003e): The 'official' URL for this page — prevents duplicate content penalties.\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eRobots tag\u003c/strong\u003e (\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cmeta name=\"robots\"\u003e\u003c/code\u003e): Tells Google whether to index the page. Default is 'index, follow' — only add this if you need to change that.\u003c/li\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003ch3 class=\"text-lg font-semibold text-gray-900 mt-6 mb-2\"\u003e2. Open Graph tags\u003c/h3\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eThese control how your pages look when shared on Facebook, LinkedIn, iMessage, and Slack:\u003c/p\u003e\n\n\u003cul class=\"list-disc list-inside space-y-1 my-4 ml-4\"\u003e\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eog:title\u003c/code\u003e — The headline in the preview card\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eog:description\u003c/code\u003e — The description below\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eog:image\u003c/code\u003e — The preview image (minimum 1200×630px, absolute URL)\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eog:url\u003c/code\u003e — Your page's canonical URL\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eog:type\u003c/code\u003e — Content type: 'website', 'article', or 'product'\u003c/li\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eMissing these = ugly link previews when anyone shares your content. More common than you'd think.\u003c/p\u003e\n\n\u003ch3 class=\"text-lg font-semibold text-gray-900 mt-6 mb-2\"\u003e3. Twitter Card tags\u003c/h3\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eX/Twitter uses its own tag system:\u003c/p\u003e\n\n\u003cul class=\"list-disc list-inside space-y-1 my-4 ml-4\"\u003e\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003etwitter:card\u003c/code\u003e — Set to \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003esummary_large_image\u003c/code\u003e for a big image preview\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003etwitter:title\u003c/code\u003e and \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003etwitter:description\u003c/code\u003e — Often inherited from OG tags\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003e\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003etwitter:image\u003c/code\u003e — The image (can be same as og:image)\u003c/li\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003chr class=\"border-gray-200 my-8\" /\u003e\n\n\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eOption 1: Add meta tags with Yoast SEO (recommended for most sites)\u003c/h2\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eYoast SEO is the most-used WordPress SEO plugin. Here's how to use it correctly:\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eSetup:\u003c/strong\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e1. Install and activate Yoast SEO (free version is fine for most sites)\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e2. Go to SEO → General → Features → enable 'Advanced settings pages'\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e3. Go to SEO → Social → Facebook → enable 'Add Open Graph meta data'\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e4. Go to SEO → Social → Twitter → enable Twitter card\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003ePer-page setup:\u003c/strong\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eFor each page/post, scroll to the Yoast SEO panel below the editor.\u003c/p\u003e\n\u003cul class=\"list-disc list-inside space-y-1 my-4 ml-4\"\u003e\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003eSEO tab: Set 'SEO title' (what appears in Google) and 'Meta description'\u003c/li\u003e\n\u003cli class=\"text-gray-600 mb-1 ml-4 list-disc\"\u003eSocial tab: Set Facebook and Twitter title/description/image\u003c/li\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003c/ul\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eCommon Yoast mistake:\u003c/strong\u003e Using the 'focus keyphrase' as your title. The title goes in 'SEO title' — they're separate fields.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eRun a free audit to verify Yoast is working correctly:\u003c/strong\u003e \u003ca href=\"https://getmetafix.com\" class=\"text-black underline hover:text-gray-600 transition-colors\" target=\"_blank\" rel=\"noopener noreferrer\"\u003egetmetafix.com\u003c/a\u003e — paste your URL and see exactly what tags Yoast generated.\u003c/p\u003e\n\n\u003chr class=\"border-gray-200 my-8\" /\u003e\n\n\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eOption 2: Add meta tags with Rank Math\u003c/h2\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eRank Math is a newer plugin that includes more features in the free tier than Yoast. Setup is similar:\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e1. Install Rank Math → run the setup wizard\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e2. During setup, enable 'Social Meta' when prompted\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e3. Go to Rank Math → Titles \u0026 Meta → set global defaults\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e4. Per page: use the Rank Math panel below the editor → Edit Snippet → fill in title and description\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eRank Math auto-generates OG tags from your SEO title/description. But set per-page OG images manually for important pages.\u003c/p\u003e\n\n\u003chr class=\"border-gray-200 my-8\" /\u003e\n\n\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eOption 3: Add meta tags without a plugin\u003c/h2\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eIf you're comfortable editing theme files, you can add meta tags directly. This is the cleanest approach but requires care — a mistake can break the whole site.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eAdd to your theme's \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003efunctions.php\u003c/code\u003e or a child theme:\u003c/p\u003e\n\n\u003cpre class=\"bg-gray-950 text-green-400 rounded-xl p-4 overflow-x-auto text-sm my-6\"\u003e\u003ccode\u003efunction custom_meta_tags() {\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e if ( is_singular() ) {\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e global $post;\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e $description = get_the_excerpt( $post );\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e $image = get_the_post_thumbnail_url( $post, 'large' );\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta name=\"description\" content=\"' . esc_attr( $description ) . '\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta property=\"og:title\" content=\"' . esc_attr( get_the_title() ) . '\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta property=\"og:description\" content=\"' . esc_attr( $description ) . '\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta property=\"og:image\" content=\"' . esc_url( $image ) . '\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta property=\"og:url\" content=\"' . esc_url( get_permalink() ) . '\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta property=\"og:type\" content=\"article\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e echo '\u003cmeta name=\"twitter:card\" content=\"summary_large_image\"\u003e';\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e }\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e}\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eadd_action( 'wp_head', 'custom_meta_tags' );\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eThis is a basic version. For production, you'd want per-page custom fields for more control.\u003c/p\u003e\n\n\u003chr class=\"border-gray-200 my-8\" /\u003e\n\n\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eThe meta tags most WordPress sites are missing\u003c/h2\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eEven with Yoast installed, we see these failures constantly:\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003e1. OG image not set on inner pages\u003c/strong\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eYoast only auto-sets the OG image on the homepage. Blog posts and product pages often have no og:image — meaning social shares show a broken preview.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eFix:\u003c/strong\u003e Set a featured image on every post. Yoast uses the featured image as the OG image automatically.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003e2. Meta description auto-generated\u003c/strong\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eYoast will auto-generate a meta description from your content if you don't write one. It's almost always worse than what you'd write. Google often ignores these.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eFix:\u003c/strong\u003e Write a unique meta description for every important page. 155 characters. Include the keyword.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003e3. Title tag includes site name on short pages\u003c/strong\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eYoast's default title format is usually: \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003ePost Title - Site Name\u003c/code\u003e. If your post title is short, this is fine. If it's long (45+ chars), appending ' - Site Name' pushes it over 60 characters.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eFix:\u003c/strong\u003e Change the title separator to a shorter format, or shorten your post titles to leave room.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003e4. Canonical tag pointing to wrong URL\u003c/strong\u003e\u003c/p\u003e\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eOn paginated archives or when the same post appears under multiple categories, canonical tags can point to unexpected URLs. This dilutes your ranking power.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003e\u003cstrong class=\"font-semibold text-gray-900\"\u003eFix:\u003c/strong\u003e Check canonical tags with \u003ca href=\"https://getmetafix.com\" class=\"text-black underline hover:text-gray-600 transition-colors\" target=\"_blank\" rel=\"noopener noreferrer\"\u003egetmetafix.com\u003c/a\u003e — it shows you exactly which canonical URL your page is reporting.\u003c/p\u003e\n\n\u003chr class=\"border-gray-200 my-8\" /\u003e\n\n\u003ch2 class=\"text-2xl font-bold text-gray-900 mt-10 mb-4\"\u003eHow to audit your WordPress meta tags\u003c/h2\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eThe fastest way: paste any page URL into \u003ca href=\"https://getmetafix.com\" class=\"text-black underline hover:text-gray-600 transition-colors\" target=\"_blank\" rel=\"noopener noreferrer\"\u003egetmetafix.com\u003c/a\u003e. It checks all 12 critical meta tag elements in 30 seconds and shows you exactly what Yoast (or your custom setup) is outputting.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eMore thorough check: View source (\u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eCmd+U\u003c/code\u003e / \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003eCtrl+U\u003c/code\u003e) and search for \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cmeta name=\"description\"\u003c/code\u003e and \u003ccode class=\"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono\"\u003e\u003cmeta property=\"og:image\"\u003c/code\u003e. If they're missing, you know what to fix.\u003c/p\u003e\n\n\u003cp class=\"text-gray-600 leading-relaxed mb-4\"\u003eThe $29 Fix Package at GetMetaFix generates the exact meta tag HTML tailored to your page — paste it in, or give it to your developer.\u003c/p\u003e"])</script><script>self.__next_f.push([1,"6:[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-white\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"border-b border-gray-100 px-6 py-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-5xl mx-auto flex items-center justify-between\",\"children\":[[\"$\",\"$Lf\",null,{\"href\":\"/\",\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-7 h-7 bg-black rounded-md flex items-center justify-center\",\"children\":[\"$\",\"span\",null,{\"className\":\"text-white text-xs font-bold\",\"children\":\"S\"}]}],[\"$\",\"span\",null,{\"className\":\"font-semibold text-gray-900\",\"children\":\"GetMetaFix\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-6 text-sm text-gray-500\",\"children\":[[\"$\",\"$Lf\",null,{\"href\":\"/blog\",\"className\":\"hover:text-gray-900 transition-colors\",\"children\":\"Blog\"}],[\"$\",\"$Lf\",null,{\"href\":\"/\",\"className\":\"hover:text-gray-900 transition-colors px-3 py-1.5 bg-black text-white rounded-lg text-xs font-medium\",\"children\":\"Free audit →\"}]]}]]}]}],[\"$\",\"main\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-sm text-gray-400 mb-8\",\"children\":[[\"$\",\"$Lf\",null,{\"href\":\"/blog\",\"className\":\"hover:text-gray-600 transition-colors\",\"children\":\"Blog\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-gray-600 truncate\",\"children\":\"WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed)\"}]]}],[\"$\",\"header\",null,{\"className\":\"mb-10\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-gray-400 mb-4\",\"children\":[[\"$\",\"time\",null,{\"dateTime\":\"2026-03-19\",\"children\":\"19 March 2026\"}],[\"$\",\"span\",null,{\"children\":\"·\"}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}],[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold text-gray-900 leading-tight mb-4\",\"children\":\"WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed)\"}],[\"$\",\"p\",null,{\"className\":\"text-xl text-gray-500 leading-relaxed\",\"children\":\"Yoast and Rank Math are popular, but do you actually need them? This guide covers how to add meta tags to WordPress correctly — with or without a plugin.\"}]]}],[\"$\",\"div\",null,{\"className\":\"bg-gray-50 border border-gray-200 rounded-xl p-6 mb-10\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm font-semibold text-gray-900 mb-1\",\"children\":\"Check your site right now\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-gray-500 mb-4\",\"children\":\"Free SEO audit in 30 seconds — find all the issues covered in this guide.\"}],[\"$\",\"$Lf\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-2 bg-black text-white px-4 py-2 rounded-lg text-sm font-semibold hover:bg-gray-800 transition-colors\",\"children\":\"Audit for free →\"}]]}],[\"$\",\"article\",null,{\"className\":\"prose-content\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],\"$L11\"]}],\"$L12\"]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"div\",null,{\"className\":\"mt-16 bg-black rounded-2xl p-8 text-center\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-white mb-2\",\"children\":\"Fix your site's SEO in 30 seconds\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 mb-6\",\"children\":\"Free audit. AI-generated fixes for $29.\"}],[\"$\",\"$Lf\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-2 bg-white text-black px-6 py-3 rounded-xl font-semibold hover:bg-gray-100 transition-colors\",\"children\":\"Audit for free →\"}]]}]\n12:[\"$\",\"footer\",null,{\"className\":\"border-t border-gray-100 py-8 mt-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-5xl mx-auto px-6 flex flex-col sm:flex-row justify-between items-center gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-5 h-5 bg-black rounded flex items-center justify-center\",\"children\":[\"$\",\"span\",null,{\"className\":\"text-white text-[10px] font-bold\",\"children\":\"S\"}]}],[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-900\",\"children\":\"GetMetaFix\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-sm text-gray-400\",\"children\":\"Built by an AI. Powered by actual SEO knowledge.\"}]]}]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"13:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\",\"/_next/static/chunks/d2be314c3ece3fbe.js?dpl=dpl_DEpMEXJM31pnChsf2zUKSBkqBdbj\"],\"IconMark\"]\n9:null\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"title\",\"0\",{\"children\":\"WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed) — GetMetaFix\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Yoast and Rank Math are popular, but do you actually need them? This guide covers how to add meta tags to WordPress correctly — with or without a plugin.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"canonical\",\"href\":\"https://getmetafix.com/blog/wordpress-meta-tags-guide\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:title\",\"content\":\"WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed)\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:description\",\"content\":\"Yoast and Rank Math are popular, but do you actually need them? This guide covers how to add meta tags to WordPress correctly — with or without a plugin.\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:url\",\"content\":\"https://getmetafix.com/blog/wordpress-meta-tags-guide\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"7\",{\"property\":\"article:published_time\",\"content\":\"2026-03-19\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:title\",\"content\":\"WordPress Meta Tags: The Complete Setup Guide (No Plugin Needed)\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:description\",\"content\":\"Yoast and Rank Math are popular, but do you actually need them? This guide covers how to add meta tags to WordPress correctly — with or without a plugin.\"}],[\"$\",\"link\",\"11\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L13\",\"12\",{}]]\n"])</script></body></html>