\n\n \n \n\n```\n\nAfter implementation, validate using the Google Rich Results Test. Paste your URL and it will tell you exactly which structured data it found and whether it's valid. If there are errors, they show up clearly. Fix them before considering this step done.\n\n---\n\n## 🌍 9. Multilingual sites: hreflang\n\nIf you're running both English and Korean versions of your site, hreflang is not optional. Without it, Google may index one language version while suppressing the other, or display the wrong language version to users in a given region.\n\n```html\n\n\n \n \n \n \n\n```\n\n```html\n\n\n \n \n \n \n\n```\n\n`x-default` means \"if no language match exists, use this one.\" Set it to your English version or your root URL.\n\nThe hreflang relationship must be **bidirectional**. The Korean page points to the English page. The English page points to the Korean page. If only one side has the `alternate` tag, Google won't recognize the connection. This is how you end up with paths like `/ko/ko/app.html` — a small mistake that silently undermines discoverability for months.\n\n---\n\n## ⚡ 10. Core Web Vitals: speed is part of the ranking signal\n\nSince **2021**, Google has incorporated page experience metrics into ranking. Three numbers matter:\n\n**LCP (Largest Contentful Paint)** — how long until the biggest content element loads. Target: under **2.5** seconds.\n\n```html\n\n\n\n\n\n```\n\n**CLS (Cumulative Layout Shift)** — how much content jumps around during loading. Target: under **0.1**.\n\n```html\n\n\"Description\"\n\n\n
\n \n
\n```\n\n**INP (Interaction to Next Paint)** — how quickly the page responds to clicks and taps. Target: under **200ms**. Replaced FID in **March 2024**.\n\n```javascript\n// Long-running synchronous tasks block the main thread\n// Break them into chunks to keep the page responsive\n\nasync function processLargeDataset(items) {\n const CHUNK_SIZE = 50;\n\n for (let i = 0; i < items.length; i += CHUNK_SIZE) {\n const chunk = items.slice(i, i + CHUNK_SIZE);\n processChunk(chunk);\n\n // Yield control back to the browser between chunks\n await new Promise(resolve => setTimeout(resolve, 0));\n }\n}\n```\n\nMeasure all three at PageSpeed Insights. Enter any URL, get a full report with scores and specific recommendations. The tool is free. There is no excuse to not run it.\n\n---\n\n## 🔗 11. Internal linking: navigating your own site for bots and users\n\nExternal backlinks get all the attention. Internal links are underrated.\n\n```html\n\n```\n\nThe anchor text (the visible, clickable words) matters. \"Click here\" tells Google nothing about the destination. \"How Google crawls the web\" tells Google exactly what that linked page is about. Use descriptive anchor text every time.\n\nInternal links distribute \"link equity\" across your site. A page with no internal links pointing to it is harder for Google to find, even if it's in your sitemap.\n\n---\n\n## ✅ The complete `` template\n\nEverything in one block. Copy it, fill in your values, ship it.\n\n```html\n\n\n\n \n \n \n\n \n Page Title Here (50–60 chars) | Brand Name\n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n\n```\n\n---\n\n## Pre-launch SEO checklist\n\n**`` tags**\n- `` is 50–60 characters, unique per page\n- `<meta name=\"description\">` is 150–160 characters\n- `<link rel=\"canonical\">` uses an absolute `https://` URL\n- `og:image` is 1200×630px with meaningful content\n- `og:type` is `article` (posts) or `website` (homepage)\n- `twitter:card` is set\n\n**HTML structure**\n- Exactly one `<h1>` per page\n- Heading levels are sequential — no skipping from `<h2>` to `<h4>`\n- `<header>`, `<main>`, `<article>`, `<footer>` used appropriately\n- Every `<img>` has `alt`, `width`, and `height`\n\n**Crawling and indexing**\n- `robots.txt` exists and is not accidentally blocking everything\n- `sitemap.xml` is generated and referenced in `robots.txt`\n- Sitemap has been submitted in Google Search Console\n\n**Performance**\n- PageSpeed Insights mobile score has been checked\n- Hero image has `fetchpriority=\"high\"`, no `loading=\"lazy\"`\n- All other images have `loading=\"lazy\"`\n\n**Multilingual (if applicable)**\n- Every page has `hreflang` tags\n- Alternates are bidirectional — each language version points to the other\n\n---\n\n## 🧠 The actual lesson here\n\nSEO is not about tricking Google.\n\nKeyword stuffing, bought backlinks, hidden text, thin content — Google's algorithm has seen all of it and specifically penalizes it. These tactics might have worked in **2008**. They don't work now, and attempting them is worse than doing nothing.\n\nReal SEO is boring in the best way:\n\n- Write code that bots can parse without effort\n- Create content that people actually want to read\n- Tell Google exactly what your pages are about using the right tags\n\nNo one applauds canonical tags. But search traffic absolutely notices when they're missing.\n\nOpen your site source right now. Look at the `<head>`. That's where this starts.\n\n---\n\n*Further reading: [Google Search Central Documentation](https://developers.google.com/search/docs) is the authoritative source. When in doubt, check there first — not a blog post, not a forum thread. The source.*\n","articleSection":"SEO & Growth","inLanguage":"en-US"},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://vibed-lab.com"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://vibed-lab.com/blog"},{"@type":"ListItem","position":3,"name":"The Complete SEO Guide: How to Make Google Actually Notice Your Website","item":"https://vibed-lab.com/blog/seo-complete-guide"}]}]</script><article class="max-w-[720px] mx-auto" style="padding:clamp(7rem, 10vw, 10rem) clamp(1.25rem, 5vw, 2rem) clamp(3rem, 6vw, 6rem)"><a class="inline-flex items-center gap-2 no-underline mb-12 transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/blog">← Back to blog</a><header class="mb-12"><div class="flex items-center gap-3 mb-4 flex-wrap"><a class="no-underline transition-opacity hover:opacity-70" style="font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.25rem 0.6rem;background:var(--accent-light);color:var(--accent)" href="/blog?tag=SEO%20%26%20Growth">SEO & Growth</a><a class="no-underline transition-opacity hover:opacity-70" style="font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.25rem 0.6rem;background:var(--accent-light);color:var(--accent)" href="/blog?tag=Frontend">Frontend</a><a class="no-underline transition-opacity hover:opacity-70" style="font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.25rem 0.6rem;background:var(--accent-light);color:var(--accent)" href="/blog?tag=Guide">Guide</a></div><h1 style="font-family:var(--font-serif);font-size:clamp(2rem, 4vw, 3rem);line-height:1.15;letter-spacing:-0.02em;margin-bottom:1rem">The Complete SEO Guide: How to Make Google Actually Notice Your Website</h1><p class="mb-4" style="font-size:1.05rem;line-height:1.7;color:var(--ink-soft);font-weight:300">A thorough, practical guide to SEO — covering every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets for everything.</p><div class="flex flex-wrap items-center gap-x-4 gap-y-1 pt-4 border-t border-[var(--rule)]" style="font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.06em;color:var(--ink-faint)"><span>by <!-- -->Jay</span><span class="hidden sm:inline">·</span><time dateTime="2026-02-25">February 25, 2026</time><span class="hidden sm:inline">·</span><span>15 min read</span><span class="hidden sm:inline">·</span><span style="color:var(--accent)">VIBE.LOG</span><span class="hidden sm:inline">·</span></div></header><div class="mb-12 p-6" style="background:var(--paper);border:1px solid var(--rule)"><p class="mb-3" style="font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint)">Series: <!-- -->VIBE.LOG</p><ol class="list-none space-y-1.5"><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/layout-vocabulary-for-vibe-coders">1<!-- -->. <!-- -->The Layout Vocabulary Cheat Sheet: What to Call That Thing on Your Screen</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/subpath-proxy-blog-failure">2<!-- -->. <!-- -->I Spent 3 Hours Trying to Proxy a Blog Subdomain. Here's My Descent Into Madness.</a></li><li><span style="font-family:var(--font-mono);font-size:0.78rem;color:var(--accent);font-weight:500">3<!-- -->. <!-- -->The Complete SEO Guide: How to Make Google Actually Notice Your Website<!-- --> ← you are here</span></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/devlog-nextjs-favicon-conflict">4<!-- -->. <!-- -->Why Your Next.js Favicon Isn't Showing (And the Three Ways to Actually Fix It)</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/github-branch-uptodate-confusion">5<!-- -->. <!-- -->GitHub Keeps Telling Me My Branch Is Fine. And Also Not Fine. At the Same Time.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/devlog-mobile-playground-optimization">6<!-- -->. <!-- -->Mobile-First Playground: Making an Astrology Grid Actually Work on a Phone (And Go Viral While Doing It)</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/playground-launch-destiny-grid-astrology">7<!-- -->. <!-- -->Playground Is Live: The Destiny Grid, Real Astrology, and Why I'm Shipping a Toy Every Month</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/interactive-component-terms-for-vibe-coders">8<!-- -->. <!-- -->The Interactive Component Cheat Sheet: What to Call That Clickable Thing</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/adsense-rejection-what-i-actually-fixed">9<!-- -->. <!-- -->Google Rejected My Site for 'Low-Value Content.' Here's What I Actually Fixed.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/adsense-round-two-fixes">10<!-- -->. <!-- -->I Actually Fixed Everything. Here's What That Looked Like.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/claude-code-subagents-how-to-install">11<!-- -->. <!-- -->I Hired 131 AI Employees Today. Here's How.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/claude-code-browser-72-backtests">12<!-- -->. <!-- -->I Let My AI Run 72 Backtests While I Watched. It Picked the Winner.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/building-jarvis-mode-autonomous-ai-agent">13<!-- -->. <!-- -->I Taught My AI to Stop Asking Questions. It Took Five Rewrites.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/obsidian-setup-guide-second-brain">14<!-- -->. <!-- -->Obsidian Turned My Scattered Notes Into a Second Brain. Here's How to Set It Up.</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/destiny-grid-saju-four-pillars-eastern-astrology">15<!-- -->. <!-- -->The Destiny Grid Gets Its East Wing: I Rebuilt Saju (四柱八字) in TypeScript</a></li><li><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft)" href="/blog/molecule-me-your-personality-in-chemistry">16<!-- -->. <!-- -->Molecule Me: Your Personality, Encoded in Chemistry</a></li></ol></div><div class="prose"><p>Have you ever searched for your own website on Google and found nothing?</p> <p>If you're running a secret project visible only to people who already have the URL — fine. But if you actually want people to find you, that's a problem.</p> <p>SEO (Search Engine Optimization) sounds like a dark art practiced by consultants who charge too much. The reality is simpler.</p> <blockquote> <p><strong>SEO is making it easy for Google's bot to understand, trust, and recommend your site.</strong></p> </blockquote> <p>The bot doesn't care about your design. It doesn't feel your passion. It reads code. So write the code correctly.</p> <p>Before we go deep, here's Google's own explanation of how search works — straight from Google Search Central:</p> <div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:2rem 0;border-radius:12px;"> <iframe src="https://www.youtube.com/embed/BNHR6IQJGZs" style="position:absolute;top:0;left:0;width:100%;height:100%;border:0;" allowfullscreen loading="lazy" title="How Google Search Works - Google Search Central" ></iframe> </div> <p>Short version: Google crawls → indexes → ranks. Your job is to make all three steps as frictionless as possible.</p> <p>Let's go through every part that matters.</p> <hr> <h2 id="-1-the-head-tag-is-where-seo-lives"><a aria-hidden="true" tabindex="-1" href="#-1-the-head-tag-is-where-seo-lives"><span class="icon icon-link"></span></a>📋 1. The <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><head></span></span></code></span> tag is where SEO lives</h2> <p>Most SEO happens in a section of your page that users never see. The <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><head></span></span></code></span> tag doesn't render anything on screen. It exists purely to communicate metadata to browsers, search engines, and social platforms.</p> <p>Get this section wrong and the rest of your effort doesn't matter much.</p> <h3 id="-the-title-tag-the-single-most-important-line-youll-write"><a aria-hidden="true" tabindex="-1" href="#-the-title-tag-the-single-most-important-line-youll-write"><span class="icon icon-link"></span></a>🎯 The title tag: the single most important line you'll write</h3> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- What not to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Home</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Page 1</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Untitled</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- What to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The Complete SEO Guide | Vibed Lab</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p>The rules:</p> <ul> <li><strong>50–60 characters</strong> max (anything longer gets truncated in search results)</li> <li><strong>Unique</strong> per page — every page needs its own distinct title</li> <li><strong>Important keyword first</strong>, brand name last with a <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>|</span></span></code></span> separator</li> <li>Write for humans, not bots — the title is what people click on</li> </ul> <p>That blue bold text in search results? That's your <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><title></span></span></code></span>. It determines whether someone clicks or scrolls past. Putting "Home" there is like introducing yourself at a conference by saying "Person."</p> <h3 id="-meta-description-the-pitch-that-earns-the-click"><a aria-hidden="true" tabindex="-1" href="#-meta-description-the-pitch-that-earns-the-click"><span class="icon icon-link"></span></a>💬 meta description: the pitch that earns the click</h3> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The Complete SEO Guide | Vibed Lab</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- What not to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"This is my website."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- What to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"A thorough, practical guide to SEO — every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <ul> <li><strong>150–160 characters</strong> max</li> <li>Include a call to action ("Learn how", "See the full guide")</li> <li>Accurately summarize the page — don't mislead</li> <li>Google may override this with its own excerpt from your content. Write it anyway. The times it does show your description, it matters.</li> </ul> <h3 id="️-charset-and-viewport-non-negotiable-basics"><a aria-hidden="true" tabindex="-1" href="#️-charset-and-viewport-non-negotiable-basics"><span class="icon icon-link"></span></a>⚙️ charset and viewport: non-negotiable basics</h3> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> charset</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"UTF-8"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"viewport"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"width=device-width, initial-scale=1.0"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The Complete SEO Guide | Vibed Lab</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"..."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>charset="UTF-8"</span></span></code></span> prevents character encoding issues. <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>viewport</span></span></code></span> makes the page behave correctly on mobile. Google uses Mobile-First Indexing — the mobile version of your site is what gets crawled and ranked. Without the viewport meta tag, your site renders as a tiny desktop page on phones. Mobile ranking suffers. There is no argument here.</p> <hr> <h2 id="-2-canonical-tell-google-which-url-is-the-real-one"><a aria-hidden="true" tabindex="-1" href="#-2-canonical-tell-google-which-url-is-the-real-one"><span class="icon icon-link"></span></a>🔑 2. canonical: tell Google which URL is the real one</h2> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Declare the authoritative URL for this page --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"canonical"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p>The same content is often reachable at multiple URLs:</p> <ul> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>https://example.com/page</span></span></code></span></li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>https://example.com/page?utm_source=newsletter</span></span></code></span></li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>https://www.example.com/page</span></span></code></span></li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>http://example.com/page</span></span></code></span></li> </ul> <p>To Google, these can look like separate pages with duplicate content. The canonical tag says: <em>these are all the same page, and this is the one that counts.</em></p> <p>Set <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>canonical</span></span></code></span> to an <strong>absolute URL</strong> starting with <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>https://</span></span></code></span>. A relative path like <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>/page</span></span></code></span> technically works, but it's not best practice. And always make canonical point to the URL you actually want indexed — not a redirect, not a staging URL.</p> <hr> <h2 id="-3-open-graph-controlling-what-your-links-look-like-when-shared"><a aria-hidden="true" tabindex="-1" href="#-3-open-graph-controlling-what-your-links-look-like-when-shared"><span class="icon icon-link"></span></a>📱 3. Open Graph: controlling what your links look like when shared</h2> <p>When someone shares your link on Slack, Twitter, or KakaoTalk, a preview card appears. That card is built from Open Graph tags. Without them, the platform guesses — and the guess is usually wrong.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Open Graph (Facebook, Slack, KakaoTalk, etc.) --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:title"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"The Complete SEO Guide | Vibed Lab"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Every tag, every file, and every decision that separates a site Google ignores from one it recommends."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:url"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:site_name"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Vibed Lab"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:type"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"article"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:image"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/images/seo-guide-og.png"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:image:width"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"1200"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:image:height"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"630"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:locale"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"en_US"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Twitter Card (X) --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:card"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"summary_large_image"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:title"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"The Complete SEO Guide | Vibed Lab"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Every tag, every file, and every decision that separates a site Google ignores from one it recommends."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:image"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/images/seo-guide-og.png"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p>The OG image standard is <strong>1200×630px</strong>. This single image dramatically affects click-through rate on shared links. A plain background with no text is a wasted opportunity. Put the page title on it, at minimum.</p> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>og:type</span></span></code></span> should be <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>article</span></span></code></span> for blog posts and <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>website</span></span></code></span> for your homepage. Getting this wrong won't break anything — but it's sloppy, and sloppy adds up.</p> <hr> <h2 id="️-4-semantic-html-the-structure-that-bots-and-humans-both-need"><a aria-hidden="true" tabindex="-1" href="#️-4-semantic-html-the-structure-that-bots-and-humans-both-need"><span class="icon icon-link"></span></a>🏗️ 4. Semantic HTML: the structure that bots and humans both need</h2> <p>Every HTML tag carries meaning. Googlebot reads that meaning to understand your page structure. When every element is a <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><div></span></span></code></span>, the bot has to guess. When you use semantic elements, you're telling the bot directly what each section is.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- What not to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">body</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"header"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"logo"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>My Blog</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"nav"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"nav-item"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Home</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"nav-item"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Posts</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"main"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"post-title"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The Complete SEO Guide</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"content"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Body text here...</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> class</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"footer"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>© 2026 My Blog</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">body</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- What to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">body</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">header</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> aria-label</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Go to homepage"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>My Blog</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">nav</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">ul</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">li</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Home</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">li</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">li</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/blog"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Posts</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">li</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">ul</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">nav</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">header</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">main</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">article</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h1</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The Complete SEO Guide</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h1</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">p</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Body text here...</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">p</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">article</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">main</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">footer</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">p</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>© 2026 My Blog</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">p</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">footer</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">body</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p>Both versions look identical in a browser. To a search bot, they're very different documents.</p> <h3 id="-heading-tags-build-a-real-outline"><a aria-hidden="true" tabindex="-1" href="#-heading-tags-build-a-real-outline"><span class="icon icon-link"></span></a>📑 Heading tags: build a real outline</h3> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">article</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- One h1 per page. Exactly one. --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h1</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The Complete SEO Guide: How to Make Google Actually Notice Your Website</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h1</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- h2 for major sections --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h2</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>1. The head tag is where SEO lives</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h2</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- h3 for subsections within h2 --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h3</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>The title tag: the single most important line</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h3</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h3</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>meta description: the pitch that earns the click</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h3</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Never skip levels — no h2 followed directly by h4 --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h2</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>2. canonical: tell Google which URL is the real one</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">h2</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">article</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h1></span></span></code></span> appears <strong>once per page</strong>. Google reads <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h1></span></span></code></span> to answer the question "what is this page about?" Multiple <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h1></span></span></code></span> tags send conflicting answers. The bot picks one. It might not pick the one you intended.</p> <p>Heading levels follow a strict hierarchy. An <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h4></span></span></code></span> that appears without a parent <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h3></span></span></code></span> is the HTML equivalent of skipping chapter numbers in a book. It's confusing. It signals that the document structure wasn't thought through.</p> <hr> <h2 id="-5-robotstxt-your-sites-visitor-policy-for-bots"><a aria-hidden="true" tabindex="-1" href="#-5-robotstxt-your-sites-visitor-policy-for-bots"><span class="icon icon-link"></span></a>🤖 5. robots.txt: your site's visitor policy for bots</h2> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>robots.txt</span></span></code></span> lives at the root of your domain (<span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>yourdomain.com/robots.txt</span></span></code></span>). It tells crawlers which areas of your site they're allowed to visit.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="txt" data-theme="github-light-default one-dark-pro"><code data-language="txt" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span># robots.txt</span></span> <span data-line=""> </span> <span data-line=""><span># Allow all crawlers to access the entire site</span></span> <span data-line=""><span>User-agent: *</span></span> <span data-line=""><span>Allow: /</span></span> <span data-line=""> </span> <span data-line=""><span># Block crawlers from private areas</span></span> <span data-line=""><span>Disallow: /admin/</span></span> <span data-line=""><span>Disallow: /dashboard/</span></span> <span data-line=""><span>Disallow: /api/</span></span> <span data-line=""> </span> <span data-line=""><span># Tell crawlers where your sitemap is</span></span> <span data-line=""><span>Sitemap: https://vibed-lab.com/sitemap.xml</span></span></code></pre></figure> <p>To block all crawlers from your entire site (useful for staging environments):</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="txt" data-theme="github-light-default one-dark-pro"><code data-language="txt" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span>User-agent: *</span></span> <span data-line=""><span>Disallow: /</span></span></code></pre></figure> <p>This is also how you accidentally destroy your search presence if it ends up on production. <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>Disallow: /</span></span></code></span> blocks Google from indexing anything. This happens more often than you'd think. If your site has mysteriously dropped out of search results, check <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>yourdomain.com/robots.txt</span></span></code></span> immediately.</p> <hr> <h2 id="️-6-sitemapxml-the-map-google-actually-uses"><a aria-hidden="true" tabindex="-1" href="#️-6-sitemapxml-the-map-google-actually-uses"><span class="icon icon-link"></span></a>🗺️ 6. sitemap.xml: the map Google actually uses</h2> <p>A sitemap is a structured list of all the pages you want Google to know about.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="xml" data-theme="github-light-default one-dark-pro"><code data-language="xml" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><?</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">xml</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> version</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"1.0"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> encoding</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"UTF-8"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">?></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">urlset</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> xmlns</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"http://www.sitemaps.org/schemas/sitemap/0.9"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Homepage: highest priority --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">url</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">loc</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>https://vibed-lab.com/</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">loc</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">lastmod</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>2026-02-25</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">lastmod</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">changefreq</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>weekly</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">changefreq</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">priority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>1.0</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">priority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">url</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Main sections: high priority --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">url</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">loc</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>https://vibed-lab.com/blog</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">loc</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">lastmod</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>2026-02-25</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">lastmod</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">changefreq</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>daily</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">changefreq</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">priority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>0.8</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">priority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">url</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Individual posts: standard priority --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">url</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">loc</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>https://vibed-lab.com/blog/seo-guide</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">loc</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">lastmod</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>2026-02-25</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">lastmod</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">changefreq</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>monthly</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">changefreq</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">priority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>0.7</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">priority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">url</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">urlset</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>priority</span></span></code></span> ranges from 0.0 to 1.0. The typical pattern: homepage at <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>1.0</span></span></code></span>, main sections at <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>0.8</span></span></code></span>, individual pages at <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>0.6–0.7</span></span></code></span>. Setting everything to <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>1.0</span></span></code></span> tells Google nothing useful. It ignores uniform priority signals because they provide no differentiation.</p> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>changefreq</span></span></code></span> is a hint, not a guarantee. Options: <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>always</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>hourly</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>daily</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>weekly</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>monthly</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>yearly</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>never</span></span></code></span>.</p> <p>After creating your sitemap, submit it directly in Google Search Console. Waiting for Google to discover it organically is slower than necessary. Submitting takes 30 seconds.</p> <hr> <h2 id="️-7-image-seo-alt-text-is-not-optional"><a aria-hidden="true" tabindex="-1" href="#️-7-image-seo-alt-text-is-not-optional"><span class="icon icon-link"></span></a>🖼️ 7. Image SEO: alt text is not optional</h2> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- What not to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"photo.jpg"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"photo.jpg"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> alt</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">""</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"photo.jpg"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> alt</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"photo"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"IMG_20260225_093412.jpg"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> alt</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"image"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- What to do --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/images/seo-checklist-interface.webp"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> alt</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"SEO checklist showing title tag, meta description, and canonical configuration"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> width</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"1200"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> height</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"630"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> loading</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"lazy"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>alt</span></span></code></span> text serves two purposes:</p> <ol> <li><strong>Accessibility</strong>: Screen readers use it to describe images to visually impaired users</li> <li><strong>SEO</strong>: Google Images indexes content based on <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>alt</span></span></code></span> text</li> </ol> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>width</span></span></code></span> and <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>height</span></span></code></span> attributes prevent layout shifts during loading (this directly affects your CLS score — covered next). Omitting them means the page reflows when the image loads in. Users notice this as "jank."</p> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>loading="lazy"</span></span></code></span> defers off-screen images until the user scrolls near them. It reduces initial page load time. Apply it to everything except the first image visible on page load.</p> <h3 id="-file-naming-is-part-of-image-seo"><a aria-hidden="true" tabindex="-1" href="#-file-naming-is-part-of-image-seo"><span class="icon icon-link"></span></a>📝 File naming is part of image SEO</h3> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="bash" data-theme="github-light-default one-dark-pro"><code data-language="bash" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"># These filenames tell Google nothing</span></span> <span data-line=""><span style="--shiki-light:#953800;--shiki-dark:#61AFEF">IMG_20260225_093412.jpg</span></span> <span data-line=""><span style="--shiki-light:#953800;--shiki-dark:#61AFEF">image001.png</span></span> <span data-line=""><span style="--shiki-light:#953800;--shiki-dark:#61AFEF">screenshot_final_v3.webp</span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"># These filenames are informative</span></span> <span data-line=""><span style="--shiki-light:#953800;--shiki-dark:#61AFEF">seo-checklist-guide.webp</span></span> <span data-line=""><span style="--shiki-light:#953800;--shiki-dark:#61AFEF">nextjs-head-tag-configuration.webp</span></span> <span data-line=""><span style="--shiki-light:#953800;--shiki-dark:#61AFEF">google-search-console-sitemap-submission.webp</span></span></code></pre></figure> <p>Google reads image filenames. Use hyphens <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>-</span></span></code></span> to separate words. Underscores <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>_</span></span></code></span> are not treated as word separators in some contexts — hyphens are the safe default.</p> <hr> <h2 id="-8-structured-data-json-ld-feeding-google-machine-readable-facts"><a aria-hidden="true" tabindex="-1" href="#-8-structured-data-json-ld-feeding-google-machine-readable-facts"><span class="icon icon-link"></span></a>🤖 8. Structured Data (JSON-LD): feeding Google machine-readable facts</h2> <p>Structured data lets you communicate explicit facts about your page — "this is a blog post," "this person wrote it," "the rating is 4.8" — in a format designed for machines rather than humans. This is what produces rich results in search: star ratings, author bylines, breadcrumbs, recipe times.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Article structured data --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">script</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> type</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"application/ld+json"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@context": "https://schema.org",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "BlogPosting",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "headline": "The Complete SEO Guide: How to Make Google Actually Notice Your Website",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "description": "A thorough, practical guide to SEO with code snippets for every technique.",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "url": "https://vibed-lab.com/blog/seo-guide",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "datePublished": "2026-02-25",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "dateModified": "2026-02-25",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "author": {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "Person",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "name": "Jay"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> },</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "publisher": {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "Organization",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "name": "Vibed Lab",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "logo": {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "ImageObject",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "url": "https://vibed-lab.com/logo.png"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> },</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "image": "https://vibed-lab.com/images/seo-guide-og.png"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">script</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Breadcrumb structured data --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">script</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> type</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"application/ld+json"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@context": "https://schema.org",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "BreadcrumbList",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "itemListElement": [</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "ListItem",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "position": 1,</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "name": "Home",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "item": "https://vibed-lab.com"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> },</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "ListItem",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "position": 2,</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "name": "Blog",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "item": "https://vibed-lab.com/blog"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> },</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "ListItem",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "position": 3,</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "name": "The Complete SEO Guide",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "item": "https://vibed-lab.com/blog/seo-guide"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> ]</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">script</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p>After implementation, validate using the Google Rich Results Test. Paste your URL and it will tell you exactly which structured data it found and whether it's valid. If there are errors, they show up clearly. Fix them before considering this step done.</p> <hr> <h2 id="-9-multilingual-sites-hreflang"><a aria-hidden="true" tabindex="-1" href="#-9-multilingual-sites-hreflang"><span class="icon icon-link"></span></a>🌍 9. Multilingual sites: hreflang</h2> <p>If you're running both English and Korean versions of your site, hreflang is not optional. Without it, Google may index one language version while suppressing the other, or display the wrong language version to users in a given region.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- On your Korean page --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"canonical"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/ko/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"ko"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/ko/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"en"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"x-default"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- On your English page --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"canonical"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"en"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"ko"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/ko/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"x-default"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://vibed-lab.com/blog/seo-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>x-default</span></span></code></span> means "if no language match exists, use this one." Set it to your English version or your root URL.</p> <p>The hreflang relationship must be <strong>bidirectional</strong>. The Korean page points to the English page. The English page points to the Korean page. If only one side has the <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>alternate</span></span></code></span> tag, Google won't recognize the connection. This is how you end up with paths like <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>/ko/ko/app.html</span></span></code></span> — a small mistake that silently undermines discoverability for months.</p> <hr> <h2 id="-10-core-web-vitals-speed-is-part-of-the-ranking-signal"><a aria-hidden="true" tabindex="-1" href="#-10-core-web-vitals-speed-is-part-of-the-ranking-signal"><span class="icon icon-link"></span></a>⚡ 10. Core Web Vitals: speed is part of the ranking signal</h2> <p>Since <strong>2021</strong>, Google has incorporated page experience metrics into ranking. Three numbers matter:</p> <p><strong>LCP (Largest Contentful Paint)</strong> — how long until the biggest content element loads. Target: under <strong>2.5</strong> seconds.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- The hero image above the fold should NOT be lazy-loaded --></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- It's the most important thing on the page — load it first --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/images/hero.webp"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> alt</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Vibed Lab homepage banner"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> width</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"1200"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> height</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"600"</span></span> <span data-line=""><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> fetchpriority</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"high"</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- Remove loading="lazy" from the hero image specifically --></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- Apply it to everything else --></span></span></code></pre></figure> <p><strong>CLS (Cumulative Layout Shift)</strong> — how much content jumps around during loading. Target: under <strong>0.1</strong>.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- Reserve space for images by declaring dimensions --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">img</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> src</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"photo.webp"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> alt</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> width</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"800"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> height</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"450"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"><!-- Reserve space for ads and dynamically injected content --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> style</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"min-height: 250px;"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Ad or dynamic content loads here --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">div</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p><strong>INP (Interaction to Next Paint)</strong> — how quickly the page responds to clicks and taps. Target: under <strong>200ms</strong>. Replaced FID in <strong>March 2024</strong>.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="javascript" data-theme="github-light-default one-dark-pro"><code data-language="javascript" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic">// Long-running synchronous tasks block the main thread</span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic">// Break them into chunks to keep the page responsive</span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD">async</span><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> function</span><span style="--shiki-light:#8250DF;--shiki-dark:#61AFEF"> processLargeDataset</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">(</span><span style="--shiki-light:#953800;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic">items</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">) {</span></span> <span data-line=""><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> const</span><span style="--shiki-light:#0550AE;--shiki-dark:#E5C07B"> CHUNK_SIZE</span><span style="--shiki-light:#CF222E;--shiki-dark:#56B6C2"> =</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> 50</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">;</span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> for</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> (</span><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD">let</span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75"> i</span><span style="--shiki-light:#CF222E;--shiki-dark:#56B6C2"> =</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> 0</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">; </span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75">i</span><span style="--shiki-light:#CF222E;--shiki-dark:#56B6C2"> <</span><span style="--shiki-light:#1F2328;--shiki-dark:#E5C07B"> items</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">.</span><span style="--shiki-light:#0550AE;--shiki-dark:#E06C75">length</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">; </span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75">i</span><span style="--shiki-light:#CF222E;--shiki-dark:#56B6C2"> +=</span><span style="--shiki-light:#0550AE;--shiki-dark:#E5C07B"> CHUNK_SIZE</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">) {</span></span> <span data-line=""><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> const</span><span style="--shiki-light:#0550AE;--shiki-dark:#E5C07B"> chunk</span><span style="--shiki-light:#CF222E;--shiki-dark:#56B6C2"> =</span><span style="--shiki-light:#1F2328;--shiki-dark:#E5C07B"> items</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">.</span><span style="--shiki-light:#8250DF;--shiki-dark:#61AFEF">slice</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">(</span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75">i</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">, </span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75">i</span><span style="--shiki-light:#CF222E;--shiki-dark:#56B6C2"> +</span><span style="--shiki-light:#0550AE;--shiki-dark:#E5C07B"> CHUNK_SIZE</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">);</span></span> <span data-line=""><span style="--shiki-light:#8250DF;--shiki-dark:#61AFEF"> processChunk</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">(</span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75">chunk</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">);</span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> // Yield control back to the browser between chunks</span></span> <span data-line=""><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> await</span><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> new</span><span style="--shiki-light:#0550AE;--shiki-dark:#E5C07B"> Promise</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">(</span><span style="--shiki-light:#953800;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic">resolve</span><span style="--shiki-light:#CF222E;--shiki-dark:#C678DD"> =></span><span style="--shiki-light:#8250DF;--shiki-dark:#61AFEF"> setTimeout</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">(</span><span style="--shiki-light:#1F2328;--shiki-dark:#E06C75">resolve</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">, </span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66">0</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">));</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">}</span></span></code></pre></figure> <p>Measure all three at PageSpeed Insights. Enter any URL, get a full report with scores and specific recommendations. The tool is free. There is no excuse to not run it.</p> <hr> <h2 id="-11-internal-linking-navigating-your-own-site-for-bots-and-users"><a aria-hidden="true" tabindex="-1" href="#-11-internal-linking-navigating-your-own-site-for-bots-and-users"><span class="icon icon-link"></span></a>🔗 11. Internal linking: navigating your own site for bots and users</h2> <p>External backlinks get all the attention. Internal links are underrated.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">article</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">p</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> To understand SEO properly, it helps to first understand</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/blog/how-google-crawls"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>how Google crawls the web</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>.</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> Once your site is indexed, use</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"/blog/search-console-guide"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Google Search Console</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">a</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> to monitor actual indexing status and catch issues early.</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">p</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">article</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <p>The anchor text (the visible, clickable words) matters. "Click here" tells Google nothing about the destination. "How Google crawls the web" tells Google exactly what that linked page is about. Use descriptive anchor text every time.</p> <p>Internal links distribute "link equity" across your site. A page with no internal links pointing to it is harder for Google to find, even if it's in your sitemap.</p> <hr> <h2 id="-the-complete-head-template"><a aria-hidden="true" tabindex="-1" href="#-the-complete-head-template"><span class="icon icon-link"></span></a>✅ The complete <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><head></span></span></code></span> template</h2> <p>Everything in one block. Copy it, fill in your values, ship it.</p> <figure data-rehype-pretty-code-figure=""><pre tabindex="0" data-language="html" data-theme="github-light-default one-dark-pro"><code data-language="html" data-theme="github-light-default one-dark-pro" style="display: grid;"><span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><!</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">DOCTYPE</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> html</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">html</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> lang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"en"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"><</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Encoding and viewport --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> charset</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"UTF-8"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"viewport"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"width=device-width, initial-scale=1.0"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Core SEO --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">>Page Title Here (50–60 chars) | Brand Name</</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">title</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Page description here (150–160 chars). Include your key phrase and a reason to click."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"canonical"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/this-page"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Open Graph --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:title"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Page Title Here | Brand Name"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Page description here."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:url"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/this-page"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:site_name"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Brand Name"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:type"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"article"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:image"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/images/og-image.png"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:image:width"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"1200"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:image:height"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"630"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> property</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"og:locale"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"en_US"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Twitter Card --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:card"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"summary_large_image"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:title"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Page Title Here | Brand Name"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:description"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"Page description here."</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">meta</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> name</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"twitter:image"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> content</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/images/og-image.png"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Multilingual alternates (if applicable) --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"en"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/this-page"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"ko"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/ko/this-page"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">link</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> rel</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"alternate"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> hreflang</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"x-default"</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> href</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"https://yourdomain.com/this-page"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""> </span> <span data-line=""><span style="--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic"> <!-- Structured data --></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> <</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">script</span><span style="--shiki-light:#0550AE;--shiki-dark:#D19A66"> type</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">=</span><span style="--shiki-light:#0A3069;--shiki-dark:#98C379">"application/ld+json"</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@context": "https://schema.org",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "BlogPosting",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "headline": "Page Title Here",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "description": "Page description here.",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "url": "https://yourdomain.com/this-page",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "datePublished": "2026-02-25",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "dateModified": "2026-02-25",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "author": { "@type": "Person", "name": "Your Name" },</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "publisher": {</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "@type": "Organization",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "name": "Brand Name",</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> "logo": { "@type": "ImageObject", "url": "https://yourdomain.com/logo.png" }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> }</span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"> </</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">script</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span> <span data-line=""><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF"></</span><span style="--shiki-light:#116329;--shiki-dark:#E06C75">head</span><span style="--shiki-light:#1F2328;--shiki-dark:#ABB2BF">></span></span></code></pre></figure> <hr> <h2 id="pre-launch-seo-checklist"><a aria-hidden="true" tabindex="-1" href="#pre-launch-seo-checklist"><span class="icon icon-link"></span></a>Pre-launch SEO checklist</h2> <p><strong><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><head></span></span></code></span> tags</strong></p> <ul> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><title></span></span></code></span> is 50–60 characters, unique per page</li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><meta name="description"></span></span></code></span> is 150–160 characters</li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><link rel="canonical"></span></span></code></span> uses an absolute <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>https://</span></span></code></span> URL</li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>og:image</span></span></code></span> is 1200×630px with meaningful content</li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>og:type</span></span></code></span> is <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>article</span></span></code></span> (posts) or <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>website</span></span></code></span> (homepage)</li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>twitter:card</span></span></code></span> is set</li> </ul> <p><strong>HTML structure</strong></p> <ul> <li>Exactly one <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h1></span></span></code></span> per page</li> <li>Heading levels are sequential — no skipping from <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h2></span></span></code></span> to <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><h4></span></span></code></span></li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><header></span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><main></span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><article></span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><footer></span></span></code></span> used appropriately</li> <li>Every <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><img></span></span></code></span> has <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>alt</span></span></code></span>, <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>width</span></span></code></span>, and <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>height</span></span></code></span></li> </ul> <p><strong>Crawling and indexing</strong></p> <ul> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>robots.txt</span></span></code></span> exists and is not accidentally blocking everything</li> <li><span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>sitemap.xml</span></span></code></span> is generated and referenced in <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>robots.txt</span></span></code></span></li> <li>Sitemap has been submitted in Google Search Console</li> </ul> <p><strong>Performance</strong></p> <ul> <li>PageSpeed Insights mobile score has been checked</li> <li>Hero image has <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>fetchpriority="high"</span></span></code></span>, no <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>loading="lazy"</span></span></code></span></li> <li>All other images have <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>loading="lazy"</span></span></code></span></li> </ul> <p><strong>Multilingual (if applicable)</strong></p> <ul> <li>Every page has <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span>hreflang</span></span></code></span> tags</li> <li>Alternates are bidirectional — each language version points to the other</li> </ul> <hr> <h2 id="-the-actual-lesson-here"><a aria-hidden="true" tabindex="-1" href="#-the-actual-lesson-here"><span class="icon icon-link"></span></a>🧠 The actual lesson here</h2> <p>SEO is not about tricking Google.</p> <p>Keyword stuffing, bought backlinks, hidden text, thin content — Google's algorithm has seen all of it and specifically penalizes it. These tactics might have worked in <strong>2008</strong>. They don't work now, and attempting them is worse than doing nothing.</p> <p>Real SEO is boring in the best way:</p> <ul> <li>Write code that bots can parse without effort</li> <li>Create content that people actually want to read</li> <li>Tell Google exactly what your pages are about using the right tags</li> </ul> <p>No one applauds canonical tags. But search traffic absolutely notices when they're missing.</p> <p>Open your site source right now. Look at the <span data-rehype-pretty-code-figure=""><code data-language="text" data-theme="github-light-default one-dark-pro"><span data-line=""><span><head></span></span></code></span>. That's where this starts.</p> <hr> <p><em>Further reading: <a href="https://developers.google.com/search/docs">Google Search Central Documentation</a> is the authoritative source. When in doubt, check there first — not a blog post, not a forum thread. The source.</em></p></div><div class="flex justify-center mt-12 pt-8 border-t border-[var(--rule)]"><button class="like-btn" style="font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;color:var(--ink-faint);background:none;border:1px solid var(--rule);padding:0.6rem 1.2rem;cursor:pointer;transition:all 0.3s ease;display:inline-flex;align-items:center;gap:0.5rem;min-height:44px" aria-label="Like this post. 0 likes."><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="" style="transition:fill 0.3s ease"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path></svg></button></div><div style="border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:1.75rem 0;margin:2.5rem 0"><div class="flex items-start gap-4"><div aria-hidden="true" style="width:48px;height:48px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0"><span style="font-family:var(--font-serif);font-size:1.25rem;color:#fff;line-height:1;user-select:none">J</span></div><div style="flex:1;min-width:0"><p style="font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.35rem">Written by</p><p style="font-family:var(--font-serif);font-size:1.05rem;line-height:1.2;color:var(--ink);margin-bottom:0.2rem">Jay</p><p style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.08em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:0.75rem">Licensed Pharmacist · Senior Researcher</p><p style="font-size:0.85rem;line-height:1.75;color:var(--ink-soft);font-weight:300;margin-bottom:1rem">Building production-grade AI tools across medicine, finance, and productivity — without a CS degree. Domain expertise first, code second.</p><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint)" href="/about">About the author →</a></div></div></div><div class="mt-12 pt-8 border-t border-[var(--rule)]"><div class="flex flex-wrap gap-3 items-center"><span style="font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint)">Share</span><a href="https://x.com/intent/tweet?url=https%3A%2F%2Fvibed-lab.com%2Fblog%2Fseo-complete-guide&text=The%20Complete%20SEO%20Guide%3A%20How%20to%20Make%20Google%20Actually%20Notice%20Your%20Website" target="_blank" rel="noopener noreferrer" class="inline-block no-underline hover:border-[var(--accent)] hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.6rem 1.2rem;border:1px solid var(--rule);color:var(--ink-soft);text-decoration:none;transition:border-color 0.2s, color 0.2s">X / Twitter</a><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fvibed-lab.com%2Fblog%2Fseo-complete-guide" target="_blank" rel="noopener noreferrer" class="inline-block no-underline hover:border-[var(--accent)] hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.6rem 1.2rem;border:1px solid var(--rule);color:var(--ink-soft);text-decoration:none;transition:border-color 0.2s, color 0.2s">LinkedIn</a><button class="cursor-pointer hover:border-[var(--accent)] hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.6rem 1.2rem;border:1px solid var(--rule);color:var(--ink-soft);text-decoration:none;transition:border-color 0.2s, color 0.2s;background:transparent">Copy Link</button></div></div><div class="mt-12 pt-8 border-t border-[var(--rule)]"><p class="mb-6" style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-faint)">Related posts</p><div class="flex flex-col gap-0"><a class="flex items-center justify-between no-underline group transition-colors" style="padding:1rem 0;border-bottom:1px solid var(--rule);border-top:1px solid var(--rule);color:inherit" href="/blog/molecule-me-your-personality-in-chemistry"><div class="flex items-center gap-4 flex-1 min-w-0"><span class="truncate transition-colors group-hover:text-[var(--accent)]" style="font-family:var(--font-serif);font-size:0.95rem">Molecule Me: Your Personality, Encoded in Chemistry</span><span class="shrink-0 hidden sm:inline" style="font-family:var(--font-mono);font-size:0.55rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.15rem 0.45rem;background:var(--accent-light);color:var(--accent)">Product</span></div><span class="text-sm text-[var(--ink-faint)] ml-3 shrink-0 transition-all group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:text-[var(--accent)]">↗</span></a><a class="flex items-center justify-between no-underline group transition-colors" style="padding:1rem 0;border-bottom:1px solid var(--rule);color:inherit" href="/blog/obsidian-setup-guide-second-brain"><div class="flex items-center gap-4 flex-1 min-w-0"><span class="truncate transition-colors group-hover:text-[var(--accent)]" style="font-family:var(--font-serif);font-size:0.95rem">Obsidian Turned My Scattered Notes Into a Second Brain. Here's How to Set It Up.</span><span class="shrink-0 hidden sm:inline" style="font-family:var(--font-mono);font-size:0.55rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.15rem 0.45rem;background:var(--accent-light);color:var(--accent)">Productivity</span></div><span class="text-sm text-[var(--ink-faint)] ml-3 shrink-0 transition-all group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:text-[var(--accent)]">↗</span></a><a class="flex items-center justify-between no-underline group transition-colors" style="padding:1rem 0;border-bottom:1px solid var(--rule);color:inherit" href="/blog/destiny-grid-saju-four-pillars-eastern-astrology"><div class="flex items-center gap-4 flex-1 min-w-0"><span class="truncate transition-colors group-hover:text-[var(--accent)]" style="font-family:var(--font-serif);font-size:0.95rem">The Destiny Grid Gets Its East Wing: I Rebuilt Saju (四柱八字) in TypeScript</span><span class="shrink-0 hidden sm:inline" style="font-family:var(--font-mono);font-size:0.55rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.15rem 0.45rem;background:var(--accent-light);color:var(--accent)">Product</span></div><span class="text-sm text-[var(--ink-faint)] ml-3 shrink-0 transition-all group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:text-[var(--accent)]">↗</span></a></div></div><div class="mt-12 pt-8 border-t border-[var(--rule)] flex items-center justify-between"><a class="no-underline transition-colors hover:text-[var(--accent)]" style="font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/blog">← All posts</a></div></article><nav class="toc-sidebar" aria-label="Table of contents"><p style="font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.75rem">Contents</p><ul style="list-style:none;padding:0;margin:0;border-left:1px solid var(--rule)"><li><button class="toc-link">📋 1. The &#x3C;head> tag is where SEO lives</button></li><li><button class="toc-link toc-link--sub">🎯 The title tag: the single most important line you'll write</button></li><li><button class="toc-link toc-link--sub">💬 meta description: the pitch that earns the click</button></li><li><button class="toc-link toc-link--sub">⚙️ charset and viewport: non-negotiable basics</button></li><li><button class="toc-link">🔑 2. canonical: tell Google which URL is the real one</button></li><li><button class="toc-link">📱 3. Open Graph: controlling what your links look like when shared</button></li><li><button class="toc-link">🏗️ 4. Semantic HTML: the structure that bots and humans both need</button></li><li><button class="toc-link toc-link--sub">📑 Heading tags: build a real outline</button></li><li><button class="toc-link">🤖 5. robots.txt: your site's visitor policy for bots</button></li><li><button class="toc-link">🗺️ 6. sitemap.xml: the map Google actually uses</button></li><li><button class="toc-link">🖼️ 7. Image SEO: alt text is not optional</button></li><li><button class="toc-link toc-link--sub">📝 File naming is part of image SEO</button></li><li><button class="toc-link">🤖 8. Structured Data (JSON-LD): feeding Google machine-readable facts</button></li><li><button class="toc-link">🌍 9. Multilingual sites: hreflang</button></li><li><button class="toc-link">⚡ 10. Core Web Vitals: speed is part of the ranking signal</button></li><li><button class="toc-link">🔗 11. Internal linking: navigating your own site for bots and users</button></li><li><button class="toc-link">✅ The complete &#x3C;head> template</button></li><li><button class="toc-link">Pre-launch SEO checklist</button></li><li><button class="toc-link">🧠 The actual lesson here</button></li></ul></nav><!--$--><!--/$--></main><footer class="border-t border-[var(--rule)]" style="padding:2.5rem clamp(1.25rem, 5vw, 4rem)"><div class="max-w-[1400px] mx-auto flex flex-col gap-6"><div class="flex flex-col md:flex-row items-center justify-between gap-6"><a href="https://vibed-lab.com" class="no-underline flex items-center opacity-70 hover:opacity-100 transition-opacity" aria-label="Vibed Lab — 홈으로"><svg xmlns="http://www.w3.org/2000/svg" width="102.78151516314728" height="20" viewBox="58.026282 70.641949 215.277158 41.890248" aria-label="Vibed Lab" role="img"><defs><linearGradient id="_R_atb_g0" gradientUnits="userSpaceOnUse" x1="739.69672" y1="384.57697" x2="519.68146" y2="349.03366"><stop offset="0" stop-color="#FC0E94"></stop><stop offset="1" stop-color="#8823BD"></stop></linearGradient><linearGradient id="_R_atb_g1" gradientUnits="userSpaceOnUse" x1="982.43909" y1="362.40146" x2="1106.2822" y2="383.35913"><stop offset="0" stop-color="#FF8538"></stop><stop offset="1" stop-color="#60DE7D"></stop></linearGradient><linearGradient id="_R_atb_g2" gradientUnits="userSpaceOnUse" x1="341.4794" y1="388.75967" x2="244.19627" y2="402.7074"><stop offset="0" stop-color="#7C27BF"></stop><stop offset="1" stop-color="#1D3BCB"></stop></linearGradient></defs><path fill="url(#_R_atb_g0)" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M735.391 285.561L736.799 285.542C738.786 288.188 736.873 385.254 737.686 398.024C740.516 442.441 692.411 468.711 654.631 446.935C639.021 437.937 634.159 426.026 629.617 409.379C614.308 440.242 588.342 462.405 552.002 452.462C537.86 448.692 525.8 439.445 518.487 426.764C511.215 414.143 509.411 399.099 513.491 385.116C517.784 369.911 526.78 358.434 540.538 350.71C567.824 335.07 632.955 352.149 599.403 390.22C583.13 408.685 559.326 412.962 535.915 414.963C541.54 429.423 553.733 438.238 569.589 437.251C597.044 435.543 609.103 408.706 621.617 388.285C634.717 366.909 649.959 344.85 677.866 344.204C697.169 343.54 704.278 348.218 718.131 360.867C718.714 354.555 718.509 343.863 718.548 337.131L718.62 291.901C724.541 289.315 729.251 287.639 735.391 285.561ZM686.282 436.269C689.301 435.679 692.381 435.122 695.35 434.074C722.545 424.47 725.772 383.11 702.122 367.945C695.276 363.556 688.976 362.447 680.775 362.562C631.393 368.834 644.791 441.788 686.282 436.269ZM530.967 397.863C536.578 397.97 549.861 396.402 555.361 394.905C570.632 390.361 580.623 386.439 587.438 370.813C578.051 363.391 571.534 361.76 559.311 363.171C539.049 368.535 534.329 378.458 530.967 397.863Z"></path><path fill="url(#_R_atb_g1)" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M994.17 292.746C1000.73 289.443 1006.53 287.041 1013.86 286.091C1014.07 310.595 1013.23 337.224 1014.04 361.453C1028.32 346.988 1045.55 339.183 1065.73 346.535C1080.35 352.341 1092.11 361.362 1098.4 376.182C1110.09 403.704 1099.39 438.426 1070.95 450.442C1060.44 454.886 1040.73 455.991 1030.16 451.522C1022.18 448.882 1014.97 444.342 1009.15 438.293C988.559 416.928 993.574 387.303 993.691 359.974C993.636 337.564 993.796 315.153 994.17 292.746ZM1061.15 365.444C1020.27 352.177 999.21 399.884 1026.51 427.67C1030.7 431.94 1033.21 432.528 1038.52 434.811C1068.27 440.85 1087.21 418.717 1081.18 389.218C1078.68 377.019 1071.29 371.495 1061.15 365.444Z"></path><path fill="#9B20B7" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M407.228 286.179L409.058 286.356C410.822 288.815 410.408 352.663 410.572 361.196C419.867 351.966 426.642 346.667 440.203 344.875C470.609 340.857 496.453 363.447 499.768 393.263C501.708 410.71 496.448 424.266 485.837 437.78C485.143 438.523 484.431 439.249 483.702 439.957C454.953 467.746 399.702 453.373 392.475 412.475C389.435 395.273 390.322 377.178 390.384 359.749C390.345 337.259 390.468 314.769 390.752 292.28C396.152 290.087 401.734 288.147 407.228 286.179ZM449.572 436.258C494.689 427.776 488.431 360.855 440.554 362.542C394.885 371.421 403.708 439.494 449.572 436.258Z"></path><path fill="#F86062" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M922.814 344.844C937.082 343.328 953.816 349.516 964.083 359.312C980.81 375.272 979.839 397.636 979.531 418.897C979.285 429.865 979.186 440.835 979.236 451.806C972.7 451.616 966.163 451.499 959.625 451.458C958.854 447.228 958.881 442.257 958.755 437.914C954.304 442.997 948.93 447.19 942.917 450.27C938.679 452.109 934.214 453.37 929.64 454.019C901.938 457.796 878.805 434.407 875.729 408.043C871.983 375.939 889.397 348.75 922.814 344.844ZM929.192 436.33C963.545 428.95 969.378 385.499 943.098 368.618C937.79 365.211 931.549 363.55 925.25 363.869C881.662 369.646 887.47 439.065 929.192 436.33Z"></path><path fill="url(#_R_atb_g2)" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M234.198 347.897L255.833 347.987L286.523 427.41C294.561 404.087 307.211 370.942 316.899 348.178C322.976 347.746 332.761 347.974 338.815 348.14C337.05 353.584 334.37 359.359 332.061 364.653C319.791 393.443 308.531 423.181 295.973 451.583C288.816 451.973 283.421 451.88 276.277 451.658C270.781 440.664 263.699 421.728 259.052 409.855C250.915 389.144 242.63 368.49 234.198 347.897Z"></path><path fill="#F84B83" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M851.666 288.894C853.382 288.628 855.996 288.358 856.12 290.906C856.534 299.435 856.37 308.069 856.366 316.618L856.39 383.987C856.401 394.897 855.262 423.905 859.077 432.626C861.76 435.637 867.034 435.593 871.055 435.993C870.631 441.753 869.737 447.382 869.346 453.417C864.268 453.524 862.256 453.327 857.262 452.635C841.48 448.358 837.997 441.103 836.989 425.62C835.996 410.388 836.571 395.599 836.675 380.369L836.908 294.692C841.646 292.702 846.849 290.78 851.666 288.894Z"></path><path fill="#9B20B7" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M357.367 346.83C361.002 346.862 365.801 346.821 368.882 348.908C371.18 353.078 370.098 439.757 370.107 451.211C367.606 451.379 364.632 451.398 362.086 451.482L350.102 451.564C350.004 439.877 349.028 353.59 351.881 348.599C353.527 347.009 355.029 347.111 357.367 346.83Z"></path><path fill="#F84B83" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M756.867 386.066C776.196 384.944 799.798 385.284 818.951 387.287C823.911 387.805 821.722 398.67 820.125 401.871C804.746 404.51 773.608 402.012 757.714 401.24C753.266 401.024 755.643 389.009 756.867 386.066Z"></path><path fill="#9B20B7" transform="matrix(0.247768 0 0 0.247396 -0.000488281 0)" d="M357.246 304.224C361.854 302.914 366.809 304.204 370.195 307.592C373.581 310.981 374.867 315.938 373.556 320.546C372.244 325.154 368.541 328.691 363.879 329.788C356.893 331.432 349.874 327.195 348.072 320.248C346.269 313.3 350.343 306.185 357.246 304.224Z"></path></svg></a><ul class="flex flex-wrap justify-center gap-8 list-none"><li><a href="https://vora.vibed-lab.com" target="_blank" rel="noopener" class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)">VORA</a></li><li><a href="https://pk.vibed-lab.com" target="_blank" rel="noopener" class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)">PK·Swift</a></li><li><a href="https://bt.vibed-lab.com" target="_blank" rel="noopener" class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)">CryptoBacktest</a></li><li><a href="https://clearrx.vibed-lab.com" target="_blank" rel="noopener" class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)">ClearRx</a></li><li><a href="https://cycle.vibed-lab.com" target="_blank" rel="noopener" class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)">BitcoinCycle Clock</a></li><li><a class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/blog">Blog</a></li></ul></div><div class="flex flex-col items-center gap-3 py-5 border-t border-[var(--rule)]"><p style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);margin:0">Follow the lab</p><button class="subscribe-btn" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);background:none;border:1px solid var(--rule);padding:0.45rem 0.85rem;cursor:pointer;transition:all 0.3s ease;display:inline-flex;align-items:center;gap:0.5rem;min-height:44px" aria-label="Subscribe. Currently — subscribers."><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="" style="transition:fill 0.3s ease"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path></svg><span>Subscribe</span></button></div><div class="flex flex-col md:flex-row items-center justify-between gap-4 pt-4 border-t border-[var(--rule)]"><ul class="flex flex-wrap justify-center gap-6 list-none"><li><a class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/about">About</a></li><li><a class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/privacy">Privacy Policy</a></li><li><a class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/terms">Terms of Service</a></li><li><a class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/faq">FAQ</a></li><li><a class="no-underline transition-colors hover:text-[var(--ink)]" style="font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint)" href="/contact">Contact</a></li></ul><p style="font-family:var(--font-mono);font-size:0.6rem;color:var(--ink-faint)">© 2026 Vibed Lab ·<!-- --> <a href="mailto:contact@vibed-lab.com" class="no-underline" style="color:inherit">contact@vibed-lab.com</a> · <a href="https://x.com/vibed_lab" target="_blank" rel="noopener noreferrer" class="no-underline transition-colors hover:text-[var(--ink)]" style="color:inherit">𝕏 @vibed_lab</a> · <a href="https://www.linkedin.com/in/jae-young-lee-8516303b5/" target="_blank" rel="noopener noreferrer" class="no-underline transition-colors hover:text-[var(--ink)]" style="color:inherit">in Jay</a></p></div></div></footer><script src="/_next/static/chunks/webpack-8ee5850cd26a60f1.js" 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[3479,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"177\",\"static/chunks/app/layout-b7c2b352fe1ccc0e.js\"],\"default\"]\n3:I[4937,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"177\",\"static/chunks/app/layout-b7c2b352fe1ccc0e.js\"],\"default\"]\n4:I[9766,[],\"\"]\n5:I[960,[\"39\",\"static/chunks/app/error-272fa50340713306.js\"],\"default\"]\n6:I[8924,[],\"\"]\n7:I[2619,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"953\",\"static/chunks/app/blog/%5Bslug%5D/page-cdd24b206c696b16.js\"],\"\"]\n8:I[149,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"177\",\"static/chunks/app/layout-b7c2b352fe1ccc0e.js\"],\"default\"]\n15:I[7150,[],\"\"]\n:HL[\"/_next/static/media/0c830831b9e6174f-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/0e96d314a90a6138-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/13971731025ec697-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/4261f91ea7100e2e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/49eec060ce8bd0da-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/b7ea2ab4a8ad1f81-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/cc0be4a870ee73a4-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/d7df244fe7b07b95-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e8f9809ccc3b84a1-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/fa3e259cafa8f47e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/283b6"])</script><script>self.__next_f.push([1,"3b9cf21eb22.css\",\"style\"]\n:HL[\"/_next/static/css/7e26a329eb03c730.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"O35VJc0PUhYBm2YIPjgRr\",\"p\":\"\",\"c\":[\"\",\"blog\",\"seo-complete-guide\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"slug\",\"seo-complete-guide\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/283b63b9cf21eb22.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7e26a329eb03c730.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_d501d1 __variable_c3bde9 __variable_d02b1f __variable_af5967 __variable_ec04b4 __variable_221c8b\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",null,{\"name\":\"format-detection\",\"content\":\"telephone=no\"}],[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-6WTB59J1FT\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-6WTB59J1FT');\\n \"}}],[\"$\",\"meta\",null,{\"name\":\"google-adsense-account\",\"content\":\"ca-pub-6874320463657568\"}],[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6874320463657568\",\"crossOrigin\":\"anonymous\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$5\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"section\",null,{\"className\":\"min-h-screen flex flex-col items-center justify-center text-center\",\"style\":{\"padding\":\"2rem\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-4\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.7rem\",\"letterSpacing\":\"0.2em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":\"Error 404\"}],[\"$\",\"h1\",null,{\"className\":\"mb-4\",\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"clamp(3rem, 6vw, 6rem)\",\"lineHeight\":1,\"letterSpacing\":\"-0.02em\"},\"children\":\"Page not found.\"}],[\"$\",\"p\",null,{\"className\":\"mb-10 max-w-[40ch]\",\"style\":{\"fontSize\":\"1rem\",\"lineHeight\":1.8,\"color\":\"var(--ink-soft)\",\"fontWeight\":300},\"children\":\"The page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-4 flex-wrap justify-center\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"inline-block no-underline transition-all hover:bg-[var(--accent)] hover:border-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.72rem\",\"letterSpacing\":\"0.12em\",\"textTransform\":\"uppercase\",\"padding\":\"0.9rem 2rem\",\"background\":\"var(--ink)\",\"color\":\"var(--cream)\",\"border\":\"1px solid var(--ink)\"},\"children\":\"Go Home\"}],[\"$\",\"$L7\",null,{\"href\":\"/blog\",\"className\":\"inline-block no-underline transition-all hover:border-[var(--ink-soft)] hover:text-[var(--ink)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.72rem\",\"letterSpacing\":\"0.12em\",\"textTransform\":\"uppercase\",\"padding\":\"0.9rem 2rem\",\"background\":\"transparent\",\"color\":\"var(--ink-soft)\",\"border\":\"1px solid var(--rule)\"},\"children\":\"Read the Blog\"}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"border-t border-[var(--rule)]\",\"style\":{\"padding\":\"2.5rem clamp(1.25rem, 5vw, 4rem)\"},\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-[1400px] mx-auto flex flex-col gap-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row items-center justify-between gap-6\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://vibed-lab.com\",\"className\":\"no-underline flex items-center opacity-70 hover:opacity-100 transition-opacity\",\"aria-label\":\"Vibed Lab — 홈으로\",\"children\":[\"$\",\"$L8\",null,{\"height\":20}]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap justify-center gap-8 list-none\",\"children\":[[[\"$\",\"li\",\"VORA\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://vora.vibed-lab.com\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.62rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":\"VORA\"}]}],\"$L9\",\"$La\",\"$Lb\",\"$Lc\"],\"$Ld\"]}]]}],\"$Le\",\"$Lf\"]}]}],\"$L10\"]}]}]]}]]}],{\"children\":[\"blog\",\"$L11\",{\"children\":[[\"slug\",\"seo-complete-guide\",\"d\"],\"$L12\",{\"children\":[\"__PAGE__\",\"$L13\",{},null,false]},null,false]},null,false]},null,false],\"$L14\",false]],\"m\":\"$undefined\",\"G\":[\"$15\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"16:I[699,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"177\",\"static/chunks/app/layout-b7c2b352fe1ccc0e.js\"],\"default\"]\n17:I[9213,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"177\",\"static/chunks/app/layout-b7c2b352fe1ccc0e.js\"],\"CookieConsentBanner\"]\n19:I[4431,[],\"OutletBoundary\"]\n1b:I[5278,[],\"AsyncMetadataOutlet\"]\n1d:I[4431,[],\"ViewportBoundary\"]\n1f:I[4431,[],\"MetadataBoundary\"]\n20:\"$Sreact.suspense\"\n9:[\"$\",\"li\",\"PK·Swift\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://pk.vibed-lab.com\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"PK·Swift\"}]}]\na:[\"$\",\"li\",\"CryptoBacktest\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://bt.vibed-lab.com\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"CryptoBacktest\"}]}]\nb:[\"$\",\"li\",\"ClearRx\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://clearrx.vibed-lab.com\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"ClearRx\"}]}]\nc:[\"$\",\"li\",\"BitcoinCycle Clock\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://cycle.vibed-lab.com\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:p"])</script><script>self.__next_f.push([1,"rops:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"BitcoinCycle Clock\"}]}]\nd:[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"Blog\"}]}]\ne:[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center gap-3 py-5 border-t border-[var(--rule)]\",\"children\":[[\"$\",\"p\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.62rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\",\"margin\":0},\"children\":\"Follow the lab\"}],[\"$\",\"$L16\",null,{}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row items-center justify-between gap-4 pt-4 border-t border-[var(--rule)]\",\"children\":[[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap justify-center gap-6 list-none\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/about\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"About\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/privacy\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"Privacy Policy\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/terms\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"Terms of Service\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/faq\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"FAQ\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/contact\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:1:props:children:props:children:2:props:children:props:children:0:props:children:1:props:children:0:0:props:children:props:style\",\"children\":\"Contact\"}]}]]}],[\"$\",\"p\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.6rem\",\"color\":\"var(--ink-faint)\"},\"children\":[\"© 2026 Vibed Lab ·\",\" \",[\"$\",\"a\",null,{\"href\":\"mailto:contact@vibed-lab.com\",\"className\":\"no-underline\",\"style\":{\"color\":\"inherit\"},\"children\":\"contact@vibed-lab.com\"}],\" · \",[\"$\",\"a\",null,{\"href\":\"https://x.com/vibed_lab\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":{\"color\":\"inherit\"},\"children\":\"𝕏 @vibed_lab\"}],\" · \",[\"$\",\"a\",null,{\"href\":\"https://www.linkedin.com/in/jae-young-lee-8516303b5/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"no-underline transition-colors hover:text-[var(--ink)]\",\"style\":{\"color\":\"inherit\"},\"children\":\"in Jay\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"$L17\",null,{}]\n11:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n12:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n13:[\"$\",\"$1\",\"c\",{\"children\":[\"$L18\",null,[\"$\",\"$L19\",null,{\"children\":[\"$L1a\",[\"$\",\"$L1b\",null,{\"promise\":\"$@1c\"}]]}]]}]\n14:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$20\",null,{\"fallback\":null,\"children\":\"$L21\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5, viewport-fit=cover\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"#FAF8F3\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"#141210\"}]]\n1a:null\n"])</script><script>self.__next_f.push([1,"22:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"1c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website | Vibed Lab\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A thorough, practical guide to SEO — covering every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets for everything.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"author\",\"href\":\"https://vibed-lab.com/about\"}],[\"$\",\"meta\",\"3\",{\"name\":\"author\",\"content\":\"Jay\"}],[\"$\",\"meta\",\"4\",{\"name\":\"keywords\",\"content\":\"SEO \u0026 Growth,Frontend,Guide\"}],[\"$\",\"meta\",\"5\",{\"name\":\"creator\",\"content\":\"Jay\"}],[\"$\",\"meta\",\"6\",{\"name\":\"publisher\",\"content\":\"Vibed Lab\"}],[\"$\",\"meta\",\"7\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"8\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"9\",{\"rel\":\"canonical\",\"href\":\"https://vibed-lab.com/blog/seo-complete-guide\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:title\",\"content\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:description\",\"content\":\"A thorough, practical guide to SEO — covering every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets for everything.\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:url\",\"content\":\"https://vibed-lab.com/blog/seo-complete-guide\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:site_name\",\"content\":\"Vibed Lab\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image\",\"content\":\"https://vibed-lab.com/blog/seo-complete-guide/opengraph-image?a24e34c6c5a60b4b\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"19\",{\"property\":\"article:published_time\",\"content\":\"2026-02-25\"}],[\"$\",\"meta\",\"20\",{\"property\":\"article:author\",\"content\":\"Jay\"}],[\"$\",\"meta\",\"21\",{\"property\":\"article:tag\",\"content\":\"SEO \u0026 Growth\"}],[\"$\",\"meta\",\"22\",{\"property\":\"article:tag\",\"content\":\"Frontend\"}],[\"$\",\"meta\",\"23\",{\"property\":\"article:tag\",\"content\":\"Guide\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:title\",\"content\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:description\",\"content\":\"A thorough, practical guide to SEO — covering every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets for everything.\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image\",\"content\":\"https://vibed-lab.com/blog/seo-complete-guide/twitter-image?6a21a9d602a1fac5\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"30\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"32\",{\"rel\":\"icon\",\"href\":\"/icon.svg?3f6e7113637d0a44\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L22\",\"33\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"21:\"$1c:metadata\"\n"])</script><script>self.__next_f.push([1,"23:T6391,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\",\"description\":\"A thorough, practical guide to SEO — covering every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets for everything.\",\"datePublished\":\"2026-02-25\",\"dateModified\":\"2026-03-06\",\"author\":{\"@type\":\"Person\",\"name\":\"Jay\",\"url\":\"https://vibed-lab.com/about\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Vibed Lab\",\"url\":\"https://vibed-lab.com\"},\"keywords\":\"SEO \u0026 Growth, Frontend, Guide\",\"url\":\"https://vibed-lab.com/blog/seo-complete-guide\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://vibed-lab.com/blog/seo-complete-guide\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https://vibed-lab.com/blog/seo-complete-guide/opengraph-image\"},\"wordCount\":2941,\"articleBody\":\"\\nHave you ever searched for your own website on Google and found nothing?\\n\\nIf you're running a secret project visible only to people who already have the URL — fine. But if you actually want people to find you, that's a problem.\\n\\nSEO (Search Engine Optimization) sounds like a dark art practiced by consultants who charge too much. The reality is simpler.\\n\\n\u003e **SEO is making it easy for Google's bot to understand, trust, and recommend your site.**\\n\\nThe bot doesn't care about your design. It doesn't feel your passion. It reads code. So write the code correctly.\\n\\nBefore we go deep, here's Google's own explanation of how search works — straight from Google Search Central:\\n\\n\u003cdiv style=\\\"position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:2rem 0;border-radius:12px;\\\"\u003e\\n \u003ciframe\\n src=\\\"https://www.youtube.com/embed/BNHR6IQJGZs\\\"\\n style=\\\"position:absolute;top:0;left:0;width:100%;height:100%;border:0;\\\"\\n allowfullscreen\\n loading=\\\"lazy\\\"\\n title=\\\"How Google Search Works - Google Search Central\\\"\\n \u003e\u003c/iframe\u003e\\n\u003c/div\u003e\\n\\nShort version: Google crawls → indexes → ranks. Your job is to make all three steps as frictionless as possible.\\n\\nLet's go through every part that matters.\\n\\n---\\n\\n## 📋 1. The `\u003chead\u003e` tag is where SEO lives\\n\\nMost SEO happens in a section of your page that users never see. The `\u003chead\u003e` tag doesn't render anything on screen. It exists purely to communicate metadata to browsers, search engines, and social platforms.\\n\\nGet this section wrong and the rest of your effort doesn't matter much.\\n\\n### 🎯 The title tag: the single most important line you'll write\\n\\n```html\\n\u003chead\u003e\\n \u003c!-- What not to do --\u003e\\n \u003ctitle\u003eHome\u003c/title\u003e\\n \u003ctitle\u003ePage 1\u003c/title\u003e\\n \u003ctitle\u003eUntitled\u003c/title\u003e\\n\\n \u003c!-- What to do --\u003e\\n \u003ctitle\u003eThe Complete SEO Guide | Vibed Lab\u003c/title\u003e\\n\u003c/head\u003e\\n```\\n\\nThe rules:\\n\\n- **50–60 characters** max (anything longer gets truncated in search results)\\n- **Unique** per page — every page needs its own distinct title\\n- **Important keyword first**, brand name last with a `|` separator\\n- Write for humans, not bots — the title is what people click on\\n\\nThat blue bold text in search results? That's your `\u003ctitle\u003e`. It determines whether someone clicks or scrolls past. Putting \\\"Home\\\" there is like introducing yourself at a conference by saying \\\"Person.\\\"\\n\\n### 💬 meta description: the pitch that earns the click\\n\\n```html\\n\u003chead\u003e\\n \u003ctitle\u003eThe Complete SEO Guide | Vibed Lab\u003c/title\u003e\\n\\n \u003c!-- What not to do --\u003e\\n \u003cmeta name=\\\"description\\\" content=\\\"This is my website.\\\"\u003e\\n\\n \u003c!-- What to do --\u003e\\n \u003cmeta name=\\\"description\\\" content=\\\"A thorough, practical guide to SEO — every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets.\\\"\u003e\\n\u003c/head\u003e\\n```\\n\\n- **150–160 characters** max\\n- Include a call to action (\\\"Learn how\\\", \\\"See the full guide\\\")\\n- Accurately summarize the page — don't mislead\\n- Google may override this with its own excerpt from your content. Write it anyway. The times it does show your description, it matters.\\n\\n### ⚙️ charset and viewport: non-negotiable basics\\n\\n```html\\n\u003chead\u003e\\n \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n\\n \u003ctitle\u003eThe Complete SEO Guide | Vibed Lab\u003c/title\u003e\\n \u003cmeta name=\\\"description\\\" content=\\\"...\\\"\u003e\\n\u003c/head\u003e\\n```\\n\\n`charset=\\\"UTF-8\\\"` prevents character encoding issues. `viewport` makes the page behave correctly on mobile. Google uses Mobile-First Indexing — the mobile version of your site is what gets crawled and ranked. Without the viewport meta tag, your site renders as a tiny desktop page on phones. Mobile ranking suffers. There is no argument here.\\n\\n---\\n\\n## 🔑 2. canonical: tell Google which URL is the real one\\n\\n```html\\n\u003chead\u003e\\n \u003c!-- Declare the authoritative URL for this page --\u003e\\n \u003clink rel=\\\"canonical\\\" href=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n\u003c/head\u003e\\n```\\n\\nThe same content is often reachable at multiple URLs:\\n\\n- `https://example.com/page`\\n- `https://example.com/page?utm_source=newsletter`\\n- `https://www.example.com/page`\\n- `http://example.com/page`\\n\\nTo Google, these can look like separate pages with duplicate content. The canonical tag says: *these are all the same page, and this is the one that counts.*\\n\\nSet `canonical` to an **absolute URL** starting with `https://`. A relative path like `/page` technically works, but it's not best practice. And always make canonical point to the URL you actually want indexed — not a redirect, not a staging URL.\\n\\n---\\n\\n## 📱 3. Open Graph: controlling what your links look like when shared\\n\\nWhen someone shares your link on Slack, Twitter, or KakaoTalk, a preview card appears. That card is built from Open Graph tags. Without them, the platform guesses — and the guess is usually wrong.\\n\\n```html\\n\u003chead\u003e\\n \u003c!-- Open Graph (Facebook, Slack, KakaoTalk, etc.) --\u003e\\n \u003cmeta property=\\\"og:title\\\" content=\\\"The Complete SEO Guide | Vibed Lab\\\"\u003e\\n \u003cmeta property=\\\"og:description\\\" content=\\\"Every tag, every file, and every decision that separates a site Google ignores from one it recommends.\\\"\u003e\\n \u003cmeta property=\\\"og:url\\\" content=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n \u003cmeta property=\\\"og:site_name\\\" content=\\\"Vibed Lab\\\"\u003e\\n \u003cmeta property=\\\"og:type\\\" content=\\\"article\\\"\u003e\\n \u003cmeta property=\\\"og:image\\\" content=\\\"https://vibed-lab.com/images/seo-guide-og.png\\\"\u003e\\n \u003cmeta property=\\\"og:image:width\\\" content=\\\"1200\\\"\u003e\\n \u003cmeta property=\\\"og:image:height\\\" content=\\\"630\\\"\u003e\\n \u003cmeta property=\\\"og:locale\\\" content=\\\"en_US\\\"\u003e\\n\\n \u003c!-- Twitter Card (X) --\u003e\\n \u003cmeta name=\\\"twitter:card\\\" content=\\\"summary_large_image\\\"\u003e\\n \u003cmeta name=\\\"twitter:title\\\" content=\\\"The Complete SEO Guide | Vibed Lab\\\"\u003e\\n \u003cmeta name=\\\"twitter:description\\\" content=\\\"Every tag, every file, and every decision that separates a site Google ignores from one it recommends.\\\"\u003e\\n \u003cmeta name=\\\"twitter:image\\\" content=\\\"https://vibed-lab.com/images/seo-guide-og.png\\\"\u003e\\n\u003c/head\u003e\\n```\\n\\nThe OG image standard is **1200×630px**. This single image dramatically affects click-through rate on shared links. A plain background with no text is a wasted opportunity. Put the page title on it, at minimum.\\n\\n`og:type` should be `article` for blog posts and `website` for your homepage. Getting this wrong won't break anything — but it's sloppy, and sloppy adds up.\\n\\n---\\n\\n## 🏗️ 4. Semantic HTML: the structure that bots and humans both need\\n\\nEvery HTML tag carries meaning. Googlebot reads that meaning to understand your page structure. When every element is a `\u003cdiv\u003e`, the bot has to guess. When you use semantic elements, you're telling the bot directly what each section is.\\n\\n```html\\n\u003c!-- What not to do --\u003e\\n\u003cbody\u003e\\n \u003cdiv class=\\\"header\\\"\u003e\\n \u003cdiv class=\\\"logo\\\"\u003eMy Blog\u003c/div\u003e\\n \u003cdiv class=\\\"nav\\\"\u003e\\n \u003cdiv class=\\\"nav-item\\\"\u003eHome\u003c/div\u003e\\n \u003cdiv class=\\\"nav-item\\\"\u003ePosts\u003c/div\u003e\\n \u003c/div\u003e\\n \u003c/div\u003e\\n\\n \u003cdiv class=\\\"main\\\"\u003e\\n \u003cdiv class=\\\"post-title\\\"\u003eThe Complete SEO Guide\u003c/div\u003e\\n \u003cdiv class=\\\"content\\\"\u003eBody text here...\u003c/div\u003e\\n \u003c/div\u003e\\n\\n \u003cdiv class=\\\"footer\\\"\u003e© 2026 My Blog\u003c/div\u003e\\n\u003c/body\u003e\\n```\\n\\n```html\\n\u003c!-- What to do --\u003e\\n\u003cbody\u003e\\n \u003cheader\u003e\\n \u003ca href=\\\"/\\\" aria-label=\\\"Go to homepage\\\"\u003eMy Blog\u003c/a\u003e\\n \u003cnav\u003e\\n \u003cul\u003e\\n \u003cli\u003e\u003ca href=\\\"/\\\"\u003eHome\u003c/a\u003e\u003c/li\u003e\\n \u003cli\u003e\u003ca href=\\\"/blog\\\"\u003ePosts\u003c/a\u003e\u003c/li\u003e\\n \u003c/ul\u003e\\n \u003c/nav\u003e\\n \u003c/header\u003e\\n\\n \u003cmain\u003e\\n \u003carticle\u003e\\n \u003ch1\u003eThe Complete SEO Guide\u003c/h1\u003e\\n \u003cp\u003eBody text here...\u003c/p\u003e\\n \u003c/article\u003e\\n \u003c/main\u003e\\n\\n \u003cfooter\u003e\\n \u003cp\u003e© 2026 My Blog\u003c/p\u003e\\n \u003c/footer\u003e\\n\u003c/body\u003e\\n```\\n\\nBoth versions look identical in a browser. To a search bot, they're very different documents.\\n\\n### 📑 Heading tags: build a real outline\\n\\n```html\\n\u003carticle\u003e\\n \u003c!-- One h1 per page. Exactly one. --\u003e\\n \u003ch1\u003eThe Complete SEO Guide: How to Make Google Actually Notice Your Website\u003c/h1\u003e\\n\\n \u003c!-- h2 for major sections --\u003e\\n \u003ch2\u003e1. The head tag is where SEO lives\u003c/h2\u003e\\n\\n \u003c!-- h3 for subsections within h2 --\u003e\\n \u003ch3\u003eThe title tag: the single most important line\u003c/h3\u003e\\n \u003ch3\u003emeta description: the pitch that earns the click\u003c/h3\u003e\\n\\n \u003c!-- Never skip levels — no h2 followed directly by h4 --\u003e\\n \u003ch2\u003e2. canonical: tell Google which URL is the real one\u003c/h2\u003e\\n\u003c/article\u003e\\n```\\n\\n`\u003ch1\u003e` appears **once per page**. Google reads `\u003ch1\u003e` to answer the question \\\"what is this page about?\\\" Multiple `\u003ch1\u003e` tags send conflicting answers. The bot picks one. It might not pick the one you intended.\\n\\nHeading levels follow a strict hierarchy. An `\u003ch4\u003e` that appears without a parent `\u003ch3\u003e` is the HTML equivalent of skipping chapter numbers in a book. It's confusing. It signals that the document structure wasn't thought through.\\n\\n---\\n\\n## 🤖 5. robots.txt: your site's visitor policy for bots\\n\\n`robots.txt` lives at the root of your domain (`yourdomain.com/robots.txt`). It tells crawlers which areas of your site they're allowed to visit.\\n\\n```txt\\n# robots.txt\\n\\n# Allow all crawlers to access the entire site\\nUser-agent: *\\nAllow: /\\n\\n# Block crawlers from private areas\\nDisallow: /admin/\\nDisallow: /dashboard/\\nDisallow: /api/\\n\\n# Tell crawlers where your sitemap is\\nSitemap: https://vibed-lab.com/sitemap.xml\\n```\\n\\nTo block all crawlers from your entire site (useful for staging environments):\\n\\n```txt\\nUser-agent: *\\nDisallow: /\\n```\\n\\nThis is also how you accidentally destroy your search presence if it ends up on production. `Disallow: /` blocks Google from indexing anything. This happens more often than you'd think. If your site has mysteriously dropped out of search results, check `yourdomain.com/robots.txt` immediately.\\n\\n---\\n\\n## 🗺️ 6. sitemap.xml: the map Google actually uses\\n\\nA sitemap is a structured list of all the pages you want Google to know about.\\n\\n```xml\\n\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003curlset xmlns=\\\"http://www.sitemaps.org/schemas/sitemap/0.9\\\"\u003e\\n\\n \u003c!-- Homepage: highest priority --\u003e\\n \u003curl\u003e\\n \u003cloc\u003ehttps://vibed-lab.com/\u003c/loc\u003e\\n \u003clastmod\u003e2026-02-25\u003c/lastmod\u003e\\n \u003cchangefreq\u003eweekly\u003c/changefreq\u003e\\n \u003cpriority\u003e1.0\u003c/priority\u003e\\n \u003c/url\u003e\\n\\n \u003c!-- Main sections: high priority --\u003e\\n \u003curl\u003e\\n \u003cloc\u003ehttps://vibed-lab.com/blog\u003c/loc\u003e\\n \u003clastmod\u003e2026-02-25\u003c/lastmod\u003e\\n \u003cchangefreq\u003edaily\u003c/changefreq\u003e\\n \u003cpriority\u003e0.8\u003c/priority\u003e\\n \u003c/url\u003e\\n\\n \u003c!-- Individual posts: standard priority --\u003e\\n \u003curl\u003e\\n \u003cloc\u003ehttps://vibed-lab.com/blog/seo-guide\u003c/loc\u003e\\n \u003clastmod\u003e2026-02-25\u003c/lastmod\u003e\\n \u003cchangefreq\u003emonthly\u003c/changefreq\u003e\\n \u003cpriority\u003e0.7\u003c/priority\u003e\\n \u003c/url\u003e\\n\\n\u003c/urlset\u003e\\n```\\n\\n`priority` ranges from 0.0 to 1.0. The typical pattern: homepage at `1.0`, main sections at `0.8`, individual pages at `0.6–0.7`. Setting everything to `1.0` tells Google nothing useful. It ignores uniform priority signals because they provide no differentiation.\\n\\n`changefreq` is a hint, not a guarantee. Options: `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, `never`.\\n\\nAfter creating your sitemap, submit it directly in Google Search Console. Waiting for Google to discover it organically is slower than necessary. Submitting takes 30 seconds.\\n\\n---\\n\\n## 🖼️ 7. Image SEO: alt text is not optional\\n\\n```html\\n\u003c!-- What not to do --\u003e\\n\u003cimg src=\\\"photo.jpg\\\"\u003e\\n\u003cimg src=\\\"photo.jpg\\\" alt=\\\"\\\"\u003e\\n\u003cimg src=\\\"photo.jpg\\\" alt=\\\"photo\\\"\u003e\\n\u003cimg src=\\\"IMG_20260225_093412.jpg\\\" alt=\\\"image\\\"\u003e\\n\\n\u003c!-- What to do --\u003e\\n\u003cimg\\n src=\\\"/images/seo-checklist-interface.webp\\\"\\n alt=\\\"SEO checklist showing title tag, meta description, and canonical configuration\\\"\\n width=\\\"1200\\\"\\n height=\\\"630\\\"\\n loading=\\\"lazy\\\"\\n\u003e\\n```\\n\\n`alt` text serves two purposes:\\n\\n1. **Accessibility**: Screen readers use it to describe images to visually impaired users\\n2. **SEO**: Google Images indexes content based on `alt` text\\n\\n`width` and `height` attributes prevent layout shifts during loading (this directly affects your CLS score — covered next). Omitting them means the page reflows when the image loads in. Users notice this as \\\"jank.\\\"\\n\\n`loading=\\\"lazy\\\"` defers off-screen images until the user scrolls near them. It reduces initial page load time. Apply it to everything except the first image visible on page load.\\n\\n### 📝 File naming is part of image SEO\\n\\n```bash\\n# These filenames tell Google nothing\\nIMG_20260225_093412.jpg\\nimage001.png\\nscreenshot_final_v3.webp\\n\\n# These filenames are informative\\nseo-checklist-guide.webp\\nnextjs-head-tag-configuration.webp\\ngoogle-search-console-sitemap-submission.webp\\n```\\n\\nGoogle reads image filenames. Use hyphens `-` to separate words. Underscores `_` are not treated as word separators in some contexts — hyphens are the safe default.\\n\\n---\\n\\n## 🤖 8. Structured Data (JSON-LD): feeding Google machine-readable facts\\n\\nStructured data lets you communicate explicit facts about your page — \\\"this is a blog post,\\\" \\\"this person wrote it,\\\" \\\"the rating is 4.8\\\" — in a format designed for machines rather than humans. This is what produces rich results in search: star ratings, author bylines, breadcrumbs, recipe times.\\n\\n```html\\n\u003chead\u003e\\n \u003c!-- Article structured data --\u003e\\n \u003cscript type=\\\"application/ld+json\\\"\u003e\\n {\\n \\\"@context\\\": \\\"https://schema.org\\\",\\n \\\"@type\\\": \\\"BlogPosting\\\",\\n \\\"headline\\\": \\\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\\\",\\n \\\"description\\\": \\\"A thorough, practical guide to SEO with code snippets for every technique.\\\",\\n \\\"url\\\": \\\"https://vibed-lab.com/blog/seo-guide\\\",\\n \\\"datePublished\\\": \\\"2026-02-25\\\",\\n \\\"dateModified\\\": \\\"2026-02-25\\\",\\n \\\"author\\\": {\\n \\\"@type\\\": \\\"Person\\\",\\n \\\"name\\\": \\\"Jay\\\"\\n },\\n \\\"publisher\\\": {\\n \\\"@type\\\": \\\"Organization\\\",\\n \\\"name\\\": \\\"Vibed Lab\\\",\\n \\\"logo\\\": {\\n \\\"@type\\\": \\\"ImageObject\\\",\\n \\\"url\\\": \\\"https://vibed-lab.com/logo.png\\\"\\n }\\n },\\n \\\"image\\\": \\\"https://vibed-lab.com/images/seo-guide-og.png\\\"\\n }\\n \u003c/script\u003e\\n\\n \u003c!-- Breadcrumb structured data --\u003e\\n \u003cscript type=\\\"application/ld+json\\\"\u003e\\n {\\n \\\"@context\\\": \\\"https://schema.org\\\",\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\n \\\"itemListElement\\\": [\\n {\\n \\\"@type\\\": \\\"ListItem\\\",\\n \\\"position\\\": 1,\\n \\\"name\\\": \\\"Home\\\",\\n \\\"item\\\": \\\"https://vibed-lab.com\\\"\\n },\\n {\\n \\\"@type\\\": \\\"ListItem\\\",\\n \\\"position\\\": 2,\\n \\\"name\\\": \\\"Blog\\\",\\n \\\"item\\\": \\\"https://vibed-lab.com/blog\\\"\\n },\\n {\\n \\\"@type\\\": \\\"ListItem\\\",\\n \\\"position\\\": 3,\\n \\\"name\\\": \\\"The Complete SEO Guide\\\",\\n \\\"item\\\": \\\"https://vibed-lab.com/blog/seo-guide\\\"\\n }\\n ]\\n }\\n \u003c/script\u003e\\n\u003c/head\u003e\\n```\\n\\nAfter implementation, validate using the Google Rich Results Test. Paste your URL and it will tell you exactly which structured data it found and whether it's valid. If there are errors, they show up clearly. Fix them before considering this step done.\\n\\n---\\n\\n## 🌍 9. Multilingual sites: hreflang\\n\\nIf you're running both English and Korean versions of your site, hreflang is not optional. Without it, Google may index one language version while suppressing the other, or display the wrong language version to users in a given region.\\n\\n```html\\n\u003c!-- On your Korean page --\u003e\\n\u003chead\u003e\\n \u003clink rel=\\\"canonical\\\" href=\\\"https://vibed-lab.com/ko/blog/seo-guide\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"ko\\\" href=\\\"https://vibed-lab.com/ko/blog/seo-guide\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"en\\\" href=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"x-default\\\" href=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n\u003c/head\u003e\\n```\\n\\n```html\\n\u003c!-- On your English page --\u003e\\n\u003chead\u003e\\n \u003clink rel=\\\"canonical\\\" href=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"en\\\" href=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"ko\\\" href=\\\"https://vibed-lab.com/ko/blog/seo-guide\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"x-default\\\" href=\\\"https://vibed-lab.com/blog/seo-guide\\\"\u003e\\n\u003c/head\u003e\\n```\\n\\n`x-default` means \\\"if no language match exists, use this one.\\\" Set it to your English version or your root URL.\\n\\nThe hreflang relationship must be **bidirectional**. The Korean page points to the English page. The English page points to the Korean page. If only one side has the `alternate` tag, Google won't recognize the connection. This is how you end up with paths like `/ko/ko/app.html` — a small mistake that silently undermines discoverability for months.\\n\\n---\\n\\n## ⚡ 10. Core Web Vitals: speed is part of the ranking signal\\n\\nSince **2021**, Google has incorporated page experience metrics into ranking. Three numbers matter:\\n\\n**LCP (Largest Contentful Paint)** — how long until the biggest content element loads. Target: under **2.5** seconds.\\n\\n```html\\n\u003c!-- The hero image above the fold should NOT be lazy-loaded --\u003e\\n\u003c!-- It's the most important thing on the page — load it first --\u003e\\n\u003cimg\\n src=\\\"/images/hero.webp\\\"\\n alt=\\\"Vibed Lab homepage banner\\\"\\n width=\\\"1200\\\"\\n height=\\\"600\\\"\\n fetchpriority=\\\"high\\\"\\n\u003e\\n\u003c!-- Remove loading=\\\"lazy\\\" from the hero image specifically --\u003e\\n\u003c!-- Apply it to everything else --\u003e\\n```\\n\\n**CLS (Cumulative Layout Shift)** — how much content jumps around during loading. Target: under **0.1**.\\n\\n```html\\n\u003c!-- Reserve space for images by declaring dimensions --\u003e\\n\u003cimg src=\\\"photo.webp\\\" alt=\\\"Description\\\" width=\\\"800\\\" height=\\\"450\\\"\u003e\\n\\n\u003c!-- Reserve space for ads and dynamically injected content --\u003e\\n\u003cdiv style=\\\"min-height: 250px;\\\"\u003e\\n \u003c!-- Ad or dynamic content loads here --\u003e\\n\u003c/div\u003e\\n```\\n\\n**INP (Interaction to Next Paint)** — how quickly the page responds to clicks and taps. Target: under **200ms**. Replaced FID in **March 2024**.\\n\\n```javascript\\n// Long-running synchronous tasks block the main thread\\n// Break them into chunks to keep the page responsive\\n\\nasync function processLargeDataset(items) {\\n const CHUNK_SIZE = 50;\\n\\n for (let i = 0; i \u003c items.length; i += CHUNK_SIZE) {\\n const chunk = items.slice(i, i + CHUNK_SIZE);\\n processChunk(chunk);\\n\\n // Yield control back to the browser between chunks\\n await new Promise(resolve =\u003e setTimeout(resolve, 0));\\n }\\n}\\n```\\n\\nMeasure all three at PageSpeed Insights. Enter any URL, get a full report with scores and specific recommendations. The tool is free. There is no excuse to not run it.\\n\\n---\\n\\n## 🔗 11. Internal linking: navigating your own site for bots and users\\n\\nExternal backlinks get all the attention. Internal links are underrated.\\n\\n```html\\n\u003carticle\u003e\\n \u003cp\u003e\\n To understand SEO properly, it helps to first understand\\n \u003ca href=\\\"/blog/how-google-crawls\\\"\u003ehow Google crawls the web\u003c/a\u003e.\\n Once your site is indexed, use\\n \u003ca href=\\\"/blog/search-console-guide\\\"\u003eGoogle Search Console\u003c/a\u003e\\n to monitor actual indexing status and catch issues early.\\n \u003c/p\u003e\\n\u003c/article\u003e\\n```\\n\\nThe anchor text (the visible, clickable words) matters. \\\"Click here\\\" tells Google nothing about the destination. \\\"How Google crawls the web\\\" tells Google exactly what that linked page is about. Use descriptive anchor text every time.\\n\\nInternal links distribute \\\"link equity\\\" across your site. A page with no internal links pointing to it is harder for Google to find, even if it's in your sitemap.\\n\\n---\\n\\n## ✅ The complete `\u003chead\u003e` template\\n\\nEverything in one block. Copy it, fill in your values, ship it.\\n\\n```html\\n\u003c!DOCTYPE html\u003e\\n\u003chtml lang=\\\"en\\\"\u003e\\n\u003chead\u003e\\n \u003c!-- Encoding and viewport --\u003e\\n \u003cmeta charset=\\\"UTF-8\\\"\u003e\\n \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"\u003e\\n\\n \u003c!-- Core SEO --\u003e\\n \u003ctitle\u003ePage Title Here (50–60 chars) | Brand Name\u003c/title\u003e\\n \u003cmeta name=\\\"description\\\" content=\\\"Page description here (150–160 chars). Include your key phrase and a reason to click.\\\"\u003e\\n \u003clink rel=\\\"canonical\\\" href=\\\"https://yourdomain.com/this-page\\\"\u003e\\n\\n \u003c!-- Open Graph --\u003e\\n \u003cmeta property=\\\"og:title\\\" content=\\\"Page Title Here | Brand Name\\\"\u003e\\n \u003cmeta property=\\\"og:description\\\" content=\\\"Page description here.\\\"\u003e\\n \u003cmeta property=\\\"og:url\\\" content=\\\"https://yourdomain.com/this-page\\\"\u003e\\n \u003cmeta property=\\\"og:site_name\\\" content=\\\"Brand Name\\\"\u003e\\n \u003cmeta property=\\\"og:type\\\" content=\\\"article\\\"\u003e\\n \u003cmeta property=\\\"og:image\\\" content=\\\"https://yourdomain.com/images/og-image.png\\\"\u003e\\n \u003cmeta property=\\\"og:image:width\\\" content=\\\"1200\\\"\u003e\\n \u003cmeta property=\\\"og:image:height\\\" content=\\\"630\\\"\u003e\\n \u003cmeta property=\\\"og:locale\\\" content=\\\"en_US\\\"\u003e\\n\\n \u003c!-- Twitter Card --\u003e\\n \u003cmeta name=\\\"twitter:card\\\" content=\\\"summary_large_image\\\"\u003e\\n \u003cmeta name=\\\"twitter:title\\\" content=\\\"Page Title Here | Brand Name\\\"\u003e\\n \u003cmeta name=\\\"twitter:description\\\" content=\\\"Page description here.\\\"\u003e\\n \u003cmeta name=\\\"twitter:image\\\" content=\\\"https://yourdomain.com/images/og-image.png\\\"\u003e\\n\\n \u003c!-- Multilingual alternates (if applicable) --\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"en\\\" href=\\\"https://yourdomain.com/this-page\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"ko\\\" href=\\\"https://yourdomain.com/ko/this-page\\\"\u003e\\n \u003clink rel=\\\"alternate\\\" hreflang=\\\"x-default\\\" href=\\\"https://yourdomain.com/this-page\\\"\u003e\\n\\n \u003c!-- Structured data --\u003e\\n \u003cscript type=\\\"application/ld+json\\\"\u003e\\n {\\n \\\"@context\\\": \\\"https://schema.org\\\",\\n \\\"@type\\\": \\\"BlogPosting\\\",\\n \\\"headline\\\": \\\"Page Title Here\\\",\\n \\\"description\\\": \\\"Page description here.\\\",\\n \\\"url\\\": \\\"https://yourdomain.com/this-page\\\",\\n \\\"datePublished\\\": \\\"2026-02-25\\\",\\n \\\"dateModified\\\": \\\"2026-02-25\\\",\\n \\\"author\\\": { \\\"@type\\\": \\\"Person\\\", \\\"name\\\": \\\"Your Name\\\" },\\n \\\"publisher\\\": {\\n \\\"@type\\\": \\\"Organization\\\",\\n \\\"name\\\": \\\"Brand Name\\\",\\n \\\"logo\\\": { \\\"@type\\\": \\\"ImageObject\\\", \\\"url\\\": \\\"https://yourdomain.com/logo.png\\\" }\\n }\\n }\\n \u003c/script\u003e\\n\u003c/head\u003e\\n```\\n\\n---\\n\\n## Pre-launch SEO checklist\\n\\n**`\u003chead\u003e` tags**\\n- `\u003ctitle\u003e` is 50–60 characters, unique per page\\n- `\u003cmeta name=\\\"description\\\"\u003e` is 150–160 characters\\n- `\u003clink rel=\\\"canonical\\\"\u003e` uses an absolute `https://` URL\\n- `og:image` is 1200×630px with meaningful content\\n- `og:type` is `article` (posts) or `website` (homepage)\\n- `twitter:card` is set\\n\\n**HTML structure**\\n- Exactly one `\u003ch1\u003e` per page\\n- Heading levels are sequential — no skipping from `\u003ch2\u003e` to `\u003ch4\u003e`\\n- `\u003cheader\u003e`, `\u003cmain\u003e`, `\u003carticle\u003e`, `\u003cfooter\u003e` used appropriately\\n- Every `\u003cimg\u003e` has `alt`, `width`, and `height`\\n\\n**Crawling and indexing**\\n- `robots.txt` exists and is not accidentally blocking everything\\n- `sitemap.xml` is generated and referenced in `robots.txt`\\n- Sitemap has been submitted in Google Search Console\\n\\n**Performance**\\n- PageSpeed Insights mobile score has been checked\\n- Hero image has `fetchpriority=\\\"high\\\"`, no `loading=\\\"lazy\\\"`\\n- All other images have `loading=\\\"lazy\\\"`\\n\\n**Multilingual (if applicable)**\\n- Every page has `hreflang` tags\\n- Alternates are bidirectional — each language version points to the other\\n\\n---\\n\\n## 🧠 The actual lesson here\\n\\nSEO is not about tricking Google.\\n\\nKeyword stuffing, bought backlinks, hidden text, thin content — Google's algorithm has seen all of it and specifically penalizes it. These tactics might have worked in **2008**. They don't work now, and attempting them is worse than doing nothing.\\n\\nReal SEO is boring in the best way:\\n\\n- Write code that bots can parse without effort\\n- Create content that people actually want to read\\n- Tell Google exactly what your pages are about using the right tags\\n\\nNo one applauds canonical tags. But search traffic absolutely notices when they're missing.\\n\\nOpen your site source right now. Look at the `\u003chead\u003e`. That's where this starts.\\n\\n---\\n\\n*Further reading: [Google Search Central Documentation](https://developers.google.com/search/docs) is the authoritative source. When in doubt, check there first — not a blog post, not a forum thread. The source.*\\n\",\"articleSection\":\"SEO \u0026 Growth\",\"inLanguage\":\"en-US\"},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://vibed-lab.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://vibed-lab.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\",\"item\":\"https://vibed-lab.com/blog/seo-complete-guide\"}]}]"])</script><script>self.__next_f.push([1,"18:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$23\"}}],\"$L24\",\"$L25\"]\n"])</script><script>self.__next_f.push([1,"26:I[7466,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"953\",\"static/chunks/app/blog/%5Bslug%5D/page-cdd24b206c696b16.js\"],\"default\"]\n3b:I[286,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"953\",\"static/chunks/app/blog/%5Bslug%5D/page-cdd24b206c696b16.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"24:[\"$\",\"article\",null,{\"className\":\"max-w-[720px] mx-auto\",\"style\":{\"padding\":\"clamp(7rem, 10vw, 10rem) clamp(1.25rem, 5vw, 2rem) clamp(3rem, 6vw, 6rem)\"},\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/blog\",\"className\":\"inline-flex items-center gap-2 no-underline mb-12 transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.72rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":\"← Back to blog\"}],[\"$\",\"header\",null,{\"className\":\"mb-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-4 flex-wrap\",\"children\":[[\"$\",\"$L7\",\"SEO \u0026 Growth\",{\"href\":\"/blog?tag=SEO%20%26%20Growth\",\"className\":\"no-underline transition-opacity hover:opacity-70\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.68rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"padding\":\"0.25rem 0.6rem\",\"background\":\"var(--accent-light)\",\"color\":\"var(--accent)\"},\"children\":\"SEO \u0026 Growth\"}],[\"$\",\"$L7\",\"Frontend\",{\"href\":\"/blog?tag=Frontend\",\"className\":\"no-underline transition-opacity hover:opacity-70\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.68rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"padding\":\"0.25rem 0.6rem\",\"background\":\"var(--accent-light)\",\"color\":\"var(--accent)\"},\"children\":\"Frontend\"}],[\"$\",\"$L7\",\"Guide\",{\"href\":\"/blog?tag=Guide\",\"className\":\"no-underline transition-opacity hover:opacity-70\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.68rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"padding\":\"0.25rem 0.6rem\",\"background\":\"var(--accent-light)\",\"color\":\"var(--accent)\"},\"children\":\"Guide\"}]]}],[\"$\",\"h1\",null,{\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"clamp(2rem, 4vw, 3rem)\",\"lineHeight\":1.15,\"letterSpacing\":\"-0.02em\",\"marginBottom\":\"1rem\"},\"children\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\"}],[\"$\",\"p\",null,{\"className\":\"mb-4\",\"style\":{\"fontSize\":\"1.05rem\",\"lineHeight\":1.7,\"color\":\"var(--ink-soft)\",\"fontWeight\":300},\"children\":\"A thorough, practical guide to SEO — covering every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets for everything.\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-x-4 gap-y-1 pt-4 border-t border-[var(--rule)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.65rem\",\"letterSpacing\":\"0.06em\",\"color\":\"var(--ink-faint)\"},\"children\":[[\"$\",\"span\",null,{\"children\":[\"by \",\"Jay\"]}],[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"·\"}],[\"$\",\"time\",null,{\"dateTime\":\"2026-02-25\",\"children\":\"February 25, 2026\"}],[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"·\"}],[\"$\",\"span\",null,{\"children\":\"15 min read\"}],[[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"·\"}],[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"VIBE.LOG\"}]],[\"$\",\"span\",null,{\"className\":\"hidden sm:inline\",\"children\":\"·\"}],[\"$\",\"$L26\",null,{\"slug\":\"seo-complete-guide\",\"trackView\":true}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mb-12 p-6\",\"style\":{\"background\":\"var(--paper)\",\"border\":\"1px solid var(--rule)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-3\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.65rem\",\"letterSpacing\":\"0.12em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":[\"Series: \",\"VIBE.LOG\"]}],[\"$\",\"ol\",null,{\"className\":\"list-none space-y-1.5\",\"children\":[[\"$\",\"li\",\"layout-vocabulary-for-vibe-coders\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/layout-vocabulary-for-vibe-coders\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[1,\". \",\"The Layout Vocabulary Cheat Sheet: What to Call That Thing on Your Screen\"]}]}],[\"$\",\"li\",\"subpath-proxy-blog-failure\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/subpath-proxy-blog-failure\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[2,\". \",\"I Spent 3 Hours Trying to Proxy a Blog Subdomain. Here's My Descent Into Madness.\"]}]}],[\"$\",\"li\",\"seo-complete-guide\",{\"children\":\"$L27\"}],\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\"]}]]}],null,\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\"]}]\n"])</script><script>self.__next_f.push([1,"25:[\"$\",\"$L3b\",null,{\"headings\":[{\"id\":\"-1-the-head-tag-is-where-seo-lives\",\"text\":\"📋 1. The \u0026#x3C;head\u003e tag is where SEO lives\",\"level\":2},{\"id\":\"-the-title-tag-the-single-most-important-line-youll-write\",\"text\":\"🎯 The title tag: the single most important line you'll write\",\"level\":3},{\"id\":\"-meta-description-the-pitch-that-earns-the-click\",\"text\":\"💬 meta description: the pitch that earns the click\",\"level\":3},{\"id\":\"️-charset-and-viewport-non-negotiable-basics\",\"text\":\"⚙️ charset and viewport: non-negotiable basics\",\"level\":3},{\"id\":\"-2-canonical-tell-google-which-url-is-the-real-one\",\"text\":\"🔑 2. canonical: tell Google which URL is the real one\",\"level\":2},{\"id\":\"-3-open-graph-controlling-what-your-links-look-like-when-shared\",\"text\":\"📱 3. Open Graph: controlling what your links look like when shared\",\"level\":2},{\"id\":\"️-4-semantic-html-the-structure-that-bots-and-humans-both-need\",\"text\":\"🏗️ 4. Semantic HTML: the structure that bots and humans both need\",\"level\":2},{\"id\":\"-heading-tags-build-a-real-outline\",\"text\":\"📑 Heading tags: build a real outline\",\"level\":3},{\"id\":\"-5-robotstxt-your-sites-visitor-policy-for-bots\",\"text\":\"🤖 5. robots.txt: your site's visitor policy for bots\",\"level\":2},{\"id\":\"️-6-sitemapxml-the-map-google-actually-uses\",\"text\":\"🗺️ 6. sitemap.xml: the map Google actually uses\",\"level\":2},{\"id\":\"️-7-image-seo-alt-text-is-not-optional\",\"text\":\"🖼️ 7. Image SEO: alt text is not optional\",\"level\":2},{\"id\":\"-file-naming-is-part-of-image-seo\",\"text\":\"📝 File naming is part of image SEO\",\"level\":3},{\"id\":\"-8-structured-data-json-ld-feeding-google-machine-readable-facts\",\"text\":\"🤖 8. Structured Data (JSON-LD): feeding Google machine-readable facts\",\"level\":2},{\"id\":\"-9-multilingual-sites-hreflang\",\"text\":\"🌍 9. Multilingual sites: hreflang\",\"level\":2},{\"id\":\"-10-core-web-vitals-speed-is-part-of-the-ranking-signal\",\"text\":\"⚡ 10. Core Web Vitals: speed is part of the ranking signal\",\"level\":2},{\"id\":\"-11-internal-linking-navigating-your-own-site-for-bots-and-users\",\"text\":\"🔗 11. Internal linking: navigating your own site for bots and users\",\"level\":2},{\"id\":\"-the-complete-head-template\",\"text\":\"✅ The complete \u0026#x3C;head\u003e template\",\"level\":2},{\"id\":\"pre-launch-seo-checklist\",\"text\":\"Pre-launch SEO checklist\",\"level\":2},{\"id\":\"-the-actual-lesson-here\",\"text\":\"🧠 The actual lesson here\",\"level\":2}]}]\n"])</script><script>self.__next_f.push([1,"3c:I[1722,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"953\",\"static/chunks/app/blog/%5Bslug%5D/page-cdd24b206c696b16.js\"],\"default\"]\n3e:I[6576,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"953\",\"static/chunks/app/blog/%5Bslug%5D/page-cdd24b206c696b16.js\"],\"default\"]\n3f:I[7025,[\"981\",\"static/chunks/10d8dd78-4768d6026d5e2de1.js\",\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"680\",\"static/chunks/680-38780cb91ff1e075.js\",\"953\",\"static/chunks/app/blog/%5Bslug%5D/page-cdd24b206c696b16.js\"],\"default\"]\n27:[\"$\",\"span\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--accent)\",\"fontWeight\":500},\"children\":[3,\". \",\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\",\" ← you are here\"]}]\n28:[\"$\",\"li\",\"devlog-nextjs-favicon-conflict\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/devlog-nextjs-favicon-conflict\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[4,\". \",\"Why Your Next.js Favicon Isn't Showing (And the Three Ways to Actually Fix It)\"]}]}]\n29:[\"$\",\"li\",\"github-branch-uptodate-confusion\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/github-branch-uptodate-confusion\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[5,\". \",\"GitHub Keeps Telling Me My Branch Is Fine. And Also Not Fine. At the Same Time.\"]}]}]\n2a:[\"$\",\"li\",\"devlog-mobile-playground-optimization\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/devlog-mobile-playground-optimization\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[6,\". \",\"Mobile-First "])</script><script>self.__next_f.push([1,"Playground: Making an Astrology Grid Actually Work on a Phone (And Go Viral While Doing It)\"]}]}]\n2b:[\"$\",\"li\",\"playground-launch-destiny-grid-astrology\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/playground-launch-destiny-grid-astrology\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[7,\". \",\"Playground Is Live: The Destiny Grid, Real Astrology, and Why I'm Shipping a Toy Every Month\"]}]}]\n2c:[\"$\",\"li\",\"interactive-component-terms-for-vibe-coders\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/interactive-component-terms-for-vibe-coders\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[8,\". \",\"The Interactive Component Cheat Sheet: What to Call That Clickable Thing\"]}]}]\n2d:[\"$\",\"li\",\"adsense-rejection-what-i-actually-fixed\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/adsense-rejection-what-i-actually-fixed\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[9,\". \",\"Google Rejected My Site for 'Low-Value Content.' Here's What I Actually Fixed.\"]}]}]\n2e:[\"$\",\"li\",\"adsense-round-two-fixes\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/adsense-round-two-fixes\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[10,\". \",\"I Actually Fixed Everything. Here's What That Looked Like.\"]}]}]\n2f:[\"$\",\"li\",\"claude-code-subagents-how-to-install\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/claude-code-subagents-how-to-install\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[11,\". \",\"I Hired 131 AI Employees Today. Here's How.\"]}]}"])</script><script>self.__next_f.push([1,"]\n30:[\"$\",\"li\",\"claude-code-browser-72-backtests\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/claude-code-browser-72-backtests\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[12,\". \",\"I Let My AI Run 72 Backtests While I Watched. It Picked the Winner.\"]}]}]\n31:[\"$\",\"li\",\"building-jarvis-mode-autonomous-ai-agent\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/building-jarvis-mode-autonomous-ai-agent\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[13,\". \",\"I Taught My AI to Stop Asking Questions. It Took Five Rewrites.\"]}]}]\n32:[\"$\",\"li\",\"obsidian-setup-guide-second-brain\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/obsidian-setup-guide-second-brain\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[14,\". \",\"Obsidian Turned My Scattered Notes Into a Second Brain. Here's How to Set It Up.\"]}]}]\n33:[\"$\",\"li\",\"destiny-grid-saju-four-pillars-eastern-astrology\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/destiny-grid-saju-four-pillars-eastern-astrology\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[15,\". \",\"The Destiny Grid Gets Its East Wing: I Rebuilt Saju (四柱八字) in TypeScript\"]}]}]\n34:[\"$\",\"li\",\"molecule-me-your-personality-in-chemistry\",{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog/molecule-me-your-personality-in-chemistry\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.78rem\",\"color\":\"var(--ink-soft)\"},\"children\":[16,\". \",\"Molecule Me: Your Personality, Encoded in Chemistry\"]}]}]\n3d:T205a6,"])</script><script>self.__next_f.push([1,"\u003cp\u003eHave you ever searched for your own website on Google and found nothing?\u003c/p\u003e\n\u003cp\u003eIf you're running a secret project visible only to people who already have the URL — fine. But if you actually want people to find you, that's a problem.\u003c/p\u003e\n\u003cp\u003eSEO (Search Engine Optimization) sounds like a dark art practiced by consultants who charge too much. The reality is simpler.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eSEO is making it easy for Google's bot to understand, trust, and recommend your site.\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThe bot doesn't care about your design. It doesn't feel your passion. It reads code. So write the code correctly.\u003c/p\u003e\n\u003cp\u003eBefore we go deep, here's Google's own explanation of how search works — straight from Google Search Central:\u003c/p\u003e\n\u003cdiv style=\"position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:2rem 0;border-radius:12px;\"\u003e\n \u003ciframe\n src=\"https://www.youtube.com/embed/BNHR6IQJGZs\"\n style=\"position:absolute;top:0;left:0;width:100%;height:100%;border:0;\"\n allowfullscreen\n loading=\"lazy\"\n title=\"How Google Search Works - Google Search Central\"\n \u003e\u003c/iframe\u003e\n\u003c/div\u003e\n\u003cp\u003eShort version: Google crawls → indexes → ranks. Your job is to make all three steps as frictionless as possible.\u003c/p\u003e\n\u003cp\u003eLet's go through every part that matters.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-1-the-head-tag-is-where-seo-lives\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-1-the-head-tag-is-where-seo-lives\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e📋 1. The \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;head\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tag is where SEO lives\u003c/h2\u003e\n\u003cp\u003eMost SEO happens in a section of your page that users never see. The \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;head\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tag doesn't render anything on screen. It exists purely to communicate metadata to browsers, search engines, and social platforms.\u003c/p\u003e\n\u003cp\u003eGet this section wrong and the rest of your effort doesn't matter much.\u003c/p\u003e\n\u003ch3 id=\"-the-title-tag-the-single-most-important-line-youll-write\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-the-title-tag-the-single-most-important-line-youll-write\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🎯 The title tag: the single most important line you'll write\u003c/h3\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- What not to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eHome\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ePage 1\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eUntitled\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- What to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe Complete SEO Guide | Vibed Lab\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eThe rules:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e50–60 characters\u003c/strong\u003e max (anything longer gets truncated in search results)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUnique\u003c/strong\u003e per page — every page needs its own distinct title\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eImportant keyword first\u003c/strong\u003e, brand name last with a \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e|\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e separator\u003c/li\u003e\n\u003cli\u003eWrite for humans, not bots — the title is what people click on\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat blue bold text in search results? That's your \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;title\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e. It determines whether someone clicks or scrolls past. Putting \"Home\" there is like introducing yourself at a conference by saying \"Person.\"\u003c/p\u003e\n\u003ch3 id=\"-meta-description-the-pitch-that-earns-the-click\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-meta-description-the-pitch-that-earns-the-click\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e💬 meta description: the pitch that earns the click\u003c/h3\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe Complete SEO Guide | Vibed Lab\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- What not to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"This is my website.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- What to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"A thorough, practical guide to SEO — every tag, every file, and every decision that separates a site Google ignores from one it recommends. With code snippets.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e150–160 characters\u003c/strong\u003e max\u003c/li\u003e\n\u003cli\u003eInclude a call to action (\"Learn how\", \"See the full guide\")\u003c/li\u003e\n\u003cli\u003eAccurately summarize the page — don't mislead\u003c/li\u003e\n\u003cli\u003eGoogle may override this with its own excerpt from your content. Write it anyway. The times it does show your description, it matters.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"️-charset-and-viewport-non-negotiable-basics\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#️-charset-and-viewport-non-negotiable-basics\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e⚙️ charset and viewport: non-negotiable basics\u003c/h3\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e charset\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"UTF-8\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"viewport\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"width=device-width, initial-scale=1.0\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe Complete SEO Guide | Vibed Lab\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"...\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003echarset=\"UTF-8\"\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e prevents character encoding issues. \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eviewport\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e makes the page behave correctly on mobile. Google uses Mobile-First Indexing — the mobile version of your site is what gets crawled and ranked. Without the viewport meta tag, your site renders as a tiny desktop page on phones. Mobile ranking suffers. There is no argument here.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-2-canonical-tell-google-which-url-is-the-real-one\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-2-canonical-tell-google-which-url-is-the-real-one\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🔑 2. canonical: tell Google which URL is the real one\u003c/h2\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Declare the authoritative URL for this page --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"canonical\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eThe same content is often reachable at multiple URLs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehttps://example.com/page\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehttps://example.com/page?utm_source=newsletter\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehttps://www.example.com/page\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehttp://example.com/page\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTo Google, these can look like separate pages with duplicate content. The canonical tag says: \u003cem\u003ethese are all the same page, and this is the one that counts.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eSet \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ecanonical\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e to an \u003cstrong\u003eabsolute URL\u003c/strong\u003e starting with \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehttps://\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e. A relative path like \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e/page\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e technically works, but it's not best practice. And always make canonical point to the URL you actually want indexed — not a redirect, not a staging URL.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-3-open-graph-controlling-what-your-links-look-like-when-shared\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-3-open-graph-controlling-what-your-links-look-like-when-shared\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e📱 3. Open Graph: controlling what your links look like when shared\u003c/h2\u003e\n\u003cp\u003eWhen someone shares your link on Slack, Twitter, or KakaoTalk, a preview card appears. That card is built from Open Graph tags. Without them, the platform guesses — and the guess is usually wrong.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Open Graph (Facebook, Slack, KakaoTalk, etc.) --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:title\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"The Complete SEO Guide | Vibed Lab\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Every tag, every file, and every decision that separates a site Google ignores from one it recommends.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:url\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:site_name\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Vibed Lab\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:type\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"article\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/images/seo-guide-og.png\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:image:width\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"1200\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:image:height\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"630\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:locale\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"en_US\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Twitter Card (X) --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:card\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"summary_large_image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:title\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"The Complete SEO Guide | Vibed Lab\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Every tag, every file, and every decision that separates a site Google ignores from one it recommends.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/images/seo-guide-og.png\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eThe OG image standard is \u003cstrong\u003e1200×630px\u003c/strong\u003e. This single image dramatically affects click-through rate on shared links. A plain background with no text is a wasted opportunity. Put the page title on it, at minimum.\u003c/p\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eog:type\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e should be \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003earticle\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e for blog posts and \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ewebsite\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e for your homepage. Getting this wrong won't break anything — but it's sloppy, and sloppy adds up.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"️-4-semantic-html-the-structure-that-bots-and-humans-both-need\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#️-4-semantic-html-the-structure-that-bots-and-humans-both-need\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🏗️ 4. Semantic HTML: the structure that bots and humans both need\u003c/h2\u003e\n\u003cp\u003eEvery HTML tag carries meaning. Googlebot reads that meaning to understand your page structure. When every element is a \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;div\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, the bot has to guess. When you use semantic elements, you're telling the bot directly what each section is.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- What not to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ebody\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"header\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"logo\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eMy Blog\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"nav\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"nav-item\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eHome\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"nav-item\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ePosts\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"main\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"post-title\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe Complete SEO Guide\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"content\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eBody text here...\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e class\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"footer\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e© 2026 My Blog\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ebody\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- What to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ebody\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eheader\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e aria-label\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Go to homepage\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eMy Blog\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003enav\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eul\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eli\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eHome\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eli\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eli\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/blog\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ePosts\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eli\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eul\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003enav\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eheader\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emain\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003earticle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh1\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe Complete SEO Guide\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh1\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ep\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eBody text here...\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ep\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003earticle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emain\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003efooter\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ep\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e© 2026 My Blog\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ep\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003efooter\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ebody\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eBoth versions look identical in a browser. To a search bot, they're very different documents.\u003c/p\u003e\n\u003ch3 id=\"-heading-tags-build-a-real-outline\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-heading-tags-build-a-real-outline\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e📑 Heading tags: build a real outline\u003c/h3\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003earticle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- One h1 per page. Exactly one. --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh1\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe Complete SEO Guide: How to Make Google Actually Notice Your Website\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh1\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- h2 for major sections --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh2\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e1. The head tag is where SEO lives\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh2\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- h3 for subsections within h2 --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh3\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eThe title tag: the single most important line\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh3\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh3\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003emeta description: the pitch that earns the click\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh3\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Never skip levels — no h2 followed directly by h4 --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh2\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e2. canonical: tell Google which URL is the real one\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eh2\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003earticle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h1\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e appears \u003cstrong\u003eonce per page\u003c/strong\u003e. Google reads \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h1\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e to answer the question \"what is this page about?\" Multiple \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h1\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tags send conflicting answers. The bot picks one. It might not pick the one you intended.\u003c/p\u003e\n\u003cp\u003eHeading levels follow a strict hierarchy. An \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h4\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e that appears without a parent \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h3\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is the HTML equivalent of skipping chapter numbers in a book. It's confusing. It signals that the document structure wasn't thought through.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-5-robotstxt-your-sites-visitor-policy-for-bots\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-5-robotstxt-your-sites-visitor-policy-for-bots\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🤖 5. robots.txt: your site's visitor policy for bots\u003c/h2\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003erobots.txt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e lives at the root of your domain (\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eyourdomain.com/robots.txt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e). It tells crawlers which areas of your site they're allowed to visit.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"txt\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"txt\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e# robots.txt\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003e# Allow all crawlers to access the entire site\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eUser-agent: *\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eAllow: /\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003e# Block crawlers from private areas\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eDisallow: /admin/\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eDisallow: /dashboard/\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eDisallow: /api/\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003e# Tell crawlers where your sitemap is\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eSitemap: https://vibed-lab.com/sitemap.xml\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eTo block all crawlers from your entire site (useful for staging environments):\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"txt\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"txt\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eUser-agent: *\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan\u003eDisallow: /\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eThis is also how you accidentally destroy your search presence if it ends up on production. \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eDisallow: /\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e blocks Google from indexing anything. This happens more often than you'd think. If your site has mysteriously dropped out of search results, check \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eyourdomain.com/robots.txt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e immediately.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"️-6-sitemapxml-the-map-google-actually-uses\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#️-6-sitemapxml-the-map-google-actually-uses\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🗺️ 6. sitemap.xml: the map Google actually uses\u003c/h2\u003e\n\u003cp\u003eA sitemap is a structured list of all the pages you want Google to know about.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"xml\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"xml\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;?\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003exml\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e version\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"1.0\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e encoding\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"UTF-8\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e?\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurlset\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e xmlns\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"http://www.sitemaps.org/schemas/sitemap/0.9\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Homepage: highest priority --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurl\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eloc\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ehttps://vibed-lab.com/\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eloc\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elastmod\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e2026-02-25\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elastmod\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003echangefreq\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eweekly\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003echangefreq\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003epriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e1.0\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003epriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurl\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Main sections: high priority --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurl\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eloc\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ehttps://vibed-lab.com/blog\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eloc\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elastmod\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e2026-02-25\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elastmod\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003echangefreq\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003edaily\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003echangefreq\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003epriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e0.8\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003epriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurl\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Individual posts: standard priority --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurl\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eloc\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ehttps://vibed-lab.com/blog/seo-guide\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eloc\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elastmod\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e2026-02-25\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elastmod\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003echangefreq\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003emonthly\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003echangefreq\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003epriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e0.7\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003epriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurl\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eurlset\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003epriority\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e ranges from 0.0 to 1.0. The typical pattern: homepage at \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e1.0\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, main sections at \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e0.8\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, individual pages at \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e0.6–0.7\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e. Setting everything to \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e1.0\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tells Google nothing useful. It ignores uniform priority signals because they provide no differentiation.\u003c/p\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003echangefreq\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is a hint, not a guarantee. Options: \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ealways\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehourly\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003edaily\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eweekly\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003emonthly\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eyearly\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003enever\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e.\u003c/p\u003e\n\u003cp\u003eAfter creating your sitemap, submit it directly in Google Search Console. Waiting for Google to discover it organically is slower than necessary. Submitting takes 30 seconds.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"️-7-image-seo-alt-text-is-not-optional\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#️-7-image-seo-alt-text-is-not-optional\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🖼️ 7. Image SEO: alt text is not optional\u003c/h2\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- What not to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"photo.jpg\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"photo.jpg\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e alt\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"photo.jpg\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e alt\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"photo\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"IMG_20260225_093412.jpg\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e alt\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- What to do --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/images/seo-checklist-interface.webp\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e alt\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"SEO checklist showing title tag, meta description, and canonical configuration\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e width\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"1200\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e height\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"630\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e loading\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"lazy\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ealt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e text serves two purposes:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eAccessibility\u003c/strong\u003e: Screen readers use it to describe images to visually impaired users\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSEO\u003c/strong\u003e: Google Images indexes content based on \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ealt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e text\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ewidth\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e and \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eheight\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e attributes prevent layout shifts during loading (this directly affects your CLS score — covered next). Omitting them means the page reflows when the image loads in. Users notice this as \"jank.\"\u003c/p\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eloading=\"lazy\"\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e defers off-screen images until the user scrolls near them. It reduces initial page load time. Apply it to everything except the first image visible on page load.\u003c/p\u003e\n\u003ch3 id=\"-file-naming-is-part-of-image-seo\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-file-naming-is-part-of-image-seo\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e📝 File naming is part of image SEO\u003c/h3\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"bash\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"bash\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e# These filenames tell Google nothing\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-dark:#61AFEF\"\u003eIMG_20260225_093412.jpg\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-dark:#61AFEF\"\u003eimage001.png\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-dark:#61AFEF\"\u003escreenshot_final_v3.webp\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e# These filenames are informative\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-dark:#61AFEF\"\u003eseo-checklist-guide.webp\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-dark:#61AFEF\"\u003enextjs-head-tag-configuration.webp\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-dark:#61AFEF\"\u003egoogle-search-console-sitemap-submission.webp\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eGoogle reads image filenames. Use hyphens \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e-\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e to separate words. Underscores \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e_\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e are not treated as word separators in some contexts — hyphens are the safe default.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-8-structured-data-json-ld-feeding-google-machine-readable-facts\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-8-structured-data-json-ld-feeding-google-machine-readable-facts\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🤖 8. Structured Data (JSON-LD): feeding Google machine-readable facts\u003c/h2\u003e\n\u003cp\u003eStructured data lets you communicate explicit facts about your page — \"this is a blog post,\" \"this person wrote it,\" \"the rating is 4.8\" — in a format designed for machines rather than humans. This is what produces rich results in search: star ratings, author bylines, breadcrumbs, recipe times.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Article structured data --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003escript\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e type\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"application/ld+json\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@context\": \"https://schema.org\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"BlogPosting\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"headline\": \"The Complete SEO Guide: How to Make Google Actually Notice Your Website\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"description\": \"A thorough, practical guide to SEO with code snippets for every technique.\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"url\": \"https://vibed-lab.com/blog/seo-guide\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"datePublished\": \"2026-02-25\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"dateModified\": \"2026-02-25\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"author\": {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"Person\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"name\": \"Jay\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e },\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"publisher\": {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"Organization\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"name\": \"Vibed Lab\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"logo\": {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"ImageObject\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"url\": \"https://vibed-lab.com/logo.png\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e },\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"image\": \"https://vibed-lab.com/images/seo-guide-og.png\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003escript\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Breadcrumb structured data --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003escript\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e type\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"application/ld+json\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@context\": \"https://schema.org\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"BreadcrumbList\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"itemListElement\": [\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"ListItem\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"position\": 1,\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"name\": \"Home\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"item\": \"https://vibed-lab.com\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e },\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"ListItem\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"position\": 2,\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"name\": \"Blog\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"item\": \"https://vibed-lab.com/blog\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e },\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"ListItem\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"position\": 3,\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"name\": \"The Complete SEO Guide\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"item\": \"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e ]\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003escript\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eAfter implementation, validate using the Google Rich Results Test. Paste your URL and it will tell you exactly which structured data it found and whether it's valid. If there are errors, they show up clearly. Fix them before considering this step done.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-9-multilingual-sites-hreflang\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-9-multilingual-sites-hreflang\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🌍 9. Multilingual sites: hreflang\u003c/h2\u003e\n\u003cp\u003eIf you're running both English and Korean versions of your site, hreflang is not optional. Without it, Google may index one language version while suppressing the other, or display the wrong language version to users in a given region.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- On your Korean page --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"canonical\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/ko/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"ko\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/ko/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"en\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"x-default\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- On your English page --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"canonical\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"en\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"ko\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/ko/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"x-default\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://vibed-lab.com/blog/seo-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ex-default\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e means \"if no language match exists, use this one.\" Set it to your English version or your root URL.\u003c/p\u003e\n\u003cp\u003eThe hreflang relationship must be \u003cstrong\u003ebidirectional\u003c/strong\u003e. The Korean page points to the English page. The English page points to the Korean page. If only one side has the \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ealternate\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tag, Google won't recognize the connection. This is how you end up with paths like \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e/ko/ko/app.html\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e — a small mistake that silently undermines discoverability for months.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-10-core-web-vitals-speed-is-part-of-the-ranking-signal\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-10-core-web-vitals-speed-is-part-of-the-ranking-signal\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e⚡ 10. Core Web Vitals: speed is part of the ranking signal\u003c/h2\u003e\n\u003cp\u003eSince \u003cstrong\u003e2021\u003c/strong\u003e, Google has incorporated page experience metrics into ranking. Three numbers matter:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLCP (Largest Contentful Paint)\u003c/strong\u003e — how long until the biggest content element loads. Target: under \u003cstrong\u003e2.5\u003c/strong\u003e seconds.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- The hero image above the fold should NOT be lazy-loaded --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- It's the most important thing on the page — load it first --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/images/hero.webp\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e alt\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Vibed Lab homepage banner\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e width\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"1200\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e height\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"600\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e fetchpriority\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"high\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- Remove loading=\"lazy\" from the hero image specifically --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- Apply it to everything else --\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cstrong\u003eCLS (Cumulative Layout Shift)\u003c/strong\u003e — how much content jumps around during loading. Target: under \u003cstrong\u003e0.1\u003c/strong\u003e.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- Reserve space for images by declaring dimensions --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eimg\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e src\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"photo.webp\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e alt\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e width\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"800\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e height\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"450\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e\u0026#x3C;!-- Reserve space for ads and dynamically injected content --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e style\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"min-height: 250px;\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Ad or dynamic content loads here --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ediv\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003e\u003cstrong\u003eINP (Interaction to Next Paint)\u003c/strong\u003e — how quickly the page responds to clicks and taps. Target: under \u003cstrong\u003e200ms\u003c/strong\u003e. Replaced FID in \u003cstrong\u003eMarch 2024\u003c/strong\u003e.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"javascript\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"javascript\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e// Long-running synchronous tasks block the main thread\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e// Break them into chunks to keep the page responsive\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003easync\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e function\u003c/span\u003e\u003cspan style=\"--shiki-light:#8250DF;--shiki-dark:#61AFEF\"\u003e processLargeDataset\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e(\u003c/span\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic\"\u003eitems\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e) {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e const\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#E5C07B\"\u003e CHUNK_SIZE\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#56B6C2\"\u003e =\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e 50\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e;\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e for\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e (\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003elet\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003e i\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#56B6C2\"\u003e =\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e 0\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e; \u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003ei\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#56B6C2\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E5C07B\"\u003e items\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e.\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#E06C75\"\u003elength\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e; \u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003ei\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#56B6C2\"\u003e +=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#E5C07B\"\u003e CHUNK_SIZE\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e) {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e const\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#E5C07B\"\u003e chunk\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#56B6C2\"\u003e =\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E5C07B\"\u003e items\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e.\u003c/span\u003e\u003cspan style=\"--shiki-light:#8250DF;--shiki-dark:#61AFEF\"\u003eslice\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e(\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003ei\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e, \u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003ei\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#56B6C2\"\u003e +\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#E5C07B\"\u003e CHUNK_SIZE\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e);\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#8250DF;--shiki-dark:#61AFEF\"\u003e processChunk\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e(\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003echunk\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e);\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e // Yield control back to the browser between chunks\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e await\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e new\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#E5C07B\"\u003e Promise\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e(\u003c/span\u003e\u003cspan style=\"--shiki-light:#953800;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic\"\u003eresolve\u003c/span\u003e\u003cspan style=\"--shiki-light:#CF222E;--shiki-dark:#C678DD\"\u003e =\u003e\u003c/span\u003e\u003cspan style=\"--shiki-light:#8250DF;--shiki-dark:#61AFEF\"\u003e setTimeout\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e(\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#E06C75\"\u003eresolve\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e, \u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e0\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e));\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eMeasure all three at PageSpeed Insights. Enter any URL, get a full report with scores and specific recommendations. The tool is free. There is no excuse to not run it.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-11-internal-linking-navigating-your-own-site-for-bots-and-users\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-11-internal-linking-navigating-your-own-site-for-bots-and-users\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🔗 11. Internal linking: navigating your own site for bots and users\u003c/h2\u003e\n\u003cp\u003eExternal backlinks get all the attention. Internal links are underrated.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003earticle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ep\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e To understand SEO properly, it helps to first understand\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/blog/how-google-crawls\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ehow Google crawls the web\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e.\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e Once your site is indexed, use\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"/blog/search-console-guide\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003eGoogle Search Console\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ea\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e to monitor actual indexing status and catch issues early.\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ep\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003earticle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003cp\u003eThe anchor text (the visible, clickable words) matters. \"Click here\" tells Google nothing about the destination. \"How Google crawls the web\" tells Google exactly what that linked page is about. Use descriptive anchor text every time.\u003c/p\u003e\n\u003cp\u003eInternal links distribute \"link equity\" across your site. A page with no internal links pointing to it is harder for Google to find, even if it's in your sitemap.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"-the-complete-head-template\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-the-complete-head-template\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e✅ The complete \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;head\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e template\u003c/h2\u003e\n\u003cp\u003eEverything in one block. Copy it, fill in your values, ship it.\u003c/p\u003e\n\u003cfigure data-rehype-pretty-code-figure=\"\"\u003e\u003cpre tabindex=\"0\" data-language=\"html\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003ccode data-language=\"html\" data-theme=\"github-light-default one-dark-pro\" style=\"display: grid;\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;!\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003eDOCTYPE\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e html\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehtml\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e lang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"en\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Encoding and viewport --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e charset\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"UTF-8\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"viewport\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"width=device-width, initial-scale=1.0\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Core SEO --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003ePage Title Here (50–60 chars) | Brand Name\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003etitle\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Page description here (150–160 chars). Include your key phrase and a reason to click.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"canonical\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/this-page\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Open Graph --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:title\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Page Title Here | Brand Name\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Page description here.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:url\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/this-page\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:site_name\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Brand Name\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:type\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"article\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/images/og-image.png\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:image:width\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"1200\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:image:height\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"630\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e property\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"og:locale\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"en_US\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Twitter Card --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:card\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"summary_large_image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:title\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Page Title Here | Brand Name\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:description\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"Page description here.\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003emeta\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e name\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"twitter:image\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e content\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/images/og-image.png\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Multilingual alternates (if applicable) --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"en\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/this-page\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"ko\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/ko/this-page\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003elink\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e rel\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"alternate\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e hreflang\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"x-default\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e href\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"https://yourdomain.com/this-page\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e \u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#6E7781;--shiki-light-font-style:inherit;--shiki-dark:#7F848E;--shiki-dark-font-style:italic\"\u003e \u0026#x3C;!-- Structured data --\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003escript\u003c/span\u003e\u003cspan style=\"--shiki-light:#0550AE;--shiki-dark:#D19A66\"\u003e type\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e=\u003c/span\u003e\u003cspan style=\"--shiki-light:#0A3069;--shiki-dark:#98C379\"\u003e\"application/ld+json\"\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@context\": \"https://schema.org\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"BlogPosting\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"headline\": \"Page Title Here\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"description\": \"Page description here.\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"url\": \"https://yourdomain.com/this-page\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"datePublished\": \"2026-02-25\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"dateModified\": \"2026-02-25\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"author\": { \"@type\": \"Person\", \"name\": \"Your Name\" },\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"publisher\": {\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"@type\": \"Organization\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"name\": \"Brand Name\",\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \"logo\": { \"@type\": \"ImageObject\", \"url\": \"https://yourdomain.com/logo.png\" }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e }\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e \u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003escript\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\n\u003cspan data-line=\"\"\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u0026#x3C;/\u003c/span\u003e\u003cspan style=\"--shiki-light:#116329;--shiki-dark:#E06C75\"\u003ehead\u003c/span\u003e\u003cspan style=\"--shiki-light:#1F2328;--shiki-dark:#ABB2BF\"\u003e\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/figure\u003e\n\u003chr\u003e\n\u003ch2 id=\"pre-launch-seo-checklist\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#pre-launch-seo-checklist\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003ePre-launch SEO checklist\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;head\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tags\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;title\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is 50–60 characters, unique per page\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;meta name=\"description\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is 150–160 characters\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;link rel=\"canonical\"\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e uses an absolute \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehttps://\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e URL\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eog:image\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is 1200×630px with meaningful content\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eog:type\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003earticle\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e (posts) or \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ewebsite\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e (homepage)\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003etwitter:card\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is set\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eHTML structure\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExactly one \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h1\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e per page\u003c/li\u003e\n\u003cli\u003eHeading levels are sequential — no skipping from \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h2\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e to \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;h4\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;header\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;main\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;article\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;footer\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e used appropriately\u003c/li\u003e\n\u003cli\u003eEvery \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;img\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e has \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ealt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ewidth\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, and \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eheight\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCrawling and indexing\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003erobots.txt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e exists and is not accidentally blocking everything\u003c/li\u003e\n\u003cli\u003e\u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003esitemap.xml\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e is generated and referenced in \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003erobots.txt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003eSitemap has been submitted in Google Search Console\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePageSpeed Insights mobile score has been checked\u003c/li\u003e\n\u003cli\u003eHero image has \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003efetchpriority=\"high\"\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e, no \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eloading=\"lazy\"\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003eAll other images have \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003eloading=\"lazy\"\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMultilingual (if applicable)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEvery page has \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003ehreflang\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e tags\u003c/li\u003e\n\u003cli\u003eAlternates are bidirectional — each language version points to the other\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"-the-actual-lesson-here\"\u003e\u003ca aria-hidden=\"true\" tabindex=\"-1\" href=\"#-the-actual-lesson-here\"\u003e\u003cspan class=\"icon icon-link\"\u003e\u003c/span\u003e\u003c/a\u003e🧠 The actual lesson here\u003c/h2\u003e\n\u003cp\u003eSEO is not about tricking Google.\u003c/p\u003e\n\u003cp\u003eKeyword stuffing, bought backlinks, hidden text, thin content — Google's algorithm has seen all of it and specifically penalizes it. These tactics might have worked in \u003cstrong\u003e2008\u003c/strong\u003e. They don't work now, and attempting them is worse than doing nothing.\u003c/p\u003e\n\u003cp\u003eReal SEO is boring in the best way:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWrite code that bots can parse without effort\u003c/li\u003e\n\u003cli\u003eCreate content that people actually want to read\u003c/li\u003e\n\u003cli\u003eTell Google exactly what your pages are about using the right tags\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNo one applauds canonical tags. But search traffic absolutely notices when they're missing.\u003c/p\u003e\n\u003cp\u003eOpen your site source right now. Look at the \u003cspan data-rehype-pretty-code-figure=\"\"\u003e\u003ccode data-language=\"text\" data-theme=\"github-light-default one-dark-pro\"\u003e\u003cspan data-line=\"\"\u003e\u003cspan\u003e\u0026#x3C;head\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/span\u003e. That's where this starts.\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cem\u003eFurther reading: \u003ca href=\"https://developers.google.com/search/docs\"\u003eGoogle Search Central Documentation\u003c/a\u003e is the authoritative source. When in doubt, check there first — not a blog post, not a forum thread. The source.\u003c/em\u003e\u003c/p\u003e"])</script><script>self.__next_f.push([1,"35:[\"$\",\"$L3c\",null,{\"html\":\"$3d\"}]\n36:[\"$\",\"div\",null,{\"className\":\"flex justify-center mt-12 pt-8 border-t border-[var(--rule)]\",\"children\":[\"$\",\"$L3e\",null,{\"slug\":\"seo-complete-guide\"}]}]\n"])</script><script>self.__next_f.push([1,"37:[\"$\",\"div\",null,{\"style\":{\"borderTop\":\"1px solid var(--rule)\",\"borderBottom\":\"1px solid var(--rule)\",\"padding\":\"1.75rem 0\",\"margin\":\"2.5rem 0\"},\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-start gap-4\",\"children\":[[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"style\":{\"width\":\"48px\",\"height\":\"48px\",\"borderRadius\":\"50%\",\"background\":\"var(--accent)\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"flexShrink\":0},\"children\":[\"$\",\"span\",null,{\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"1.25rem\",\"color\":\"#fff\",\"lineHeight\":1,\"userSelect\":\"none\"},\"children\":\"J\"}]}],[\"$\",\"div\",null,{\"style\":{\"flex\":1,\"minWidth\":0},\"children\":[[\"$\",\"p\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.6rem\",\"letterSpacing\":\"0.15em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\",\"marginBottom\":\"0.35rem\"},\"children\":\"Written by\"}],[\"$\",\"p\",null,{\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"1.05rem\",\"lineHeight\":1.2,\"color\":\"var(--ink)\",\"marginBottom\":\"0.2rem\"},\"children\":\"Jay\"}],[\"$\",\"p\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.62rem\",\"letterSpacing\":\"0.08em\",\"color\":\"var(--ink-faint)\",\"textTransform\":\"uppercase\",\"marginBottom\":\"0.75rem\"},\"children\":\"Licensed Pharmacist · Senior Researcher\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"0.85rem\",\"lineHeight\":1.75,\"color\":\"var(--ink-soft)\",\"fontWeight\":300,\"marginBottom\":\"1rem\"},\"children\":\"Building production-grade AI tools across medicine, finance, and productivity — without a CS degree. Domain expertise first, code second.\"}],[\"$\",\"$L7\",null,{\"href\":\"/about\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.62rem\",\"letterSpacing\":\"0.12em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":\"About the author →\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"38:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-[var(--rule)]\",\"children\":[\"$\",\"$L3f\",null,{\"url\":\"https://vibed-lab.com/blog/seo-complete-guide\",\"title\":\"The Complete SEO Guide: How to Make Google Actually Notice Your Website\"}]}]\n"])</script><script>self.__next_f.push([1,"39:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-[var(--rule)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"mb-6\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.7rem\",\"letterSpacing\":\"0.2em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":\"Related posts\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-0\",\"children\":[[\"$\",\"$L7\",\"molecule-me-your-personality-in-chemistry\",{\"href\":\"/blog/molecule-me-your-personality-in-chemistry\",\"className\":\"flex items-center justify-between no-underline group transition-colors\",\"style\":{\"padding\":\"1rem 0\",\"borderBottom\":\"1px solid var(--rule)\",\"borderTop\":\"1px solid var(--rule)\",\"color\":\"inherit\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 flex-1 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate transition-colors group-hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"0.95rem\"},\"children\":\"Molecule Me: Your Personality, Encoded in Chemistry\"}],[\"$\",\"span\",null,{\"className\":\"shrink-0 hidden sm:inline\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.55rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"padding\":\"0.15rem 0.45rem\",\"background\":\"var(--accent-light)\",\"color\":\"var(--accent)\"},\"children\":\"Product\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[var(--ink-faint)] ml-3 shrink-0 transition-all group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:text-[var(--accent)]\",\"children\":\"↗\"}]]}],[\"$\",\"$L7\",\"obsidian-setup-guide-second-brain\",{\"href\":\"/blog/obsidian-setup-guide-second-brain\",\"className\":\"flex items-center justify-between no-underline group transition-colors\",\"style\":{\"padding\":\"1rem 0\",\"borderBottom\":\"1px solid var(--rule)\",\"borderTop\":\"$undefined\",\"color\":\"inherit\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 flex-1 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate transition-colors group-hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"0.95rem\"},\"children\":\"Obsidian Turned My Scattered Notes Into a Second Brain. Here's How to Set It Up.\"}],[\"$\",\"span\",null,{\"className\":\"shrink-0 hidden sm:inline\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.55rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"padding\":\"0.15rem 0.45rem\",\"background\":\"var(--accent-light)\",\"color\":\"var(--accent)\"},\"children\":\"Productivity\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[var(--ink-faint)] ml-3 shrink-0 transition-all group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:text-[var(--accent)]\",\"children\":\"↗\"}]]}],[\"$\",\"$L7\",\"destiny-grid-saju-four-pillars-eastern-astrology\",{\"href\":\"/blog/destiny-grid-saju-four-pillars-eastern-astrology\",\"className\":\"flex items-center justify-between no-underline group transition-colors\",\"style\":{\"padding\":\"1rem 0\",\"borderBottom\":\"1px solid var(--rule)\",\"borderTop\":\"$undefined\",\"color\":\"inherit\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 flex-1 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate transition-colors group-hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-serif)\",\"fontSize\":\"0.95rem\"},\"children\":\"The Destiny Grid Gets Its East Wing: I Rebuilt Saju (四柱八字) in TypeScript\"}],[\"$\",\"span\",null,{\"className\":\"shrink-0 hidden sm:inline\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.55rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"padding\":\"0.15rem 0.45rem\",\"background\":\"var(--accent-light)\",\"color\":\"var(--accent)\"},\"children\":\"Product\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-sm text-[var(--ink-faint)] ml-3 shrink-0 transition-all group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:text-[var(--accent)]\",\"children\":\"↗\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"3a:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-[var(--rule)] flex items-center justify-between\",\"children\":[\"$\",\"$L7\",null,{\"href\":\"/blog\",\"className\":\"no-underline transition-colors hover:text-[var(--accent)]\",\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":\"0.72rem\",\"letterSpacing\":\"0.1em\",\"textTransform\":\"uppercase\",\"color\":\"var(--ink-faint)\"},\"children\":\"← All posts\"}]}]\n"])</script></body></html><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9e83e9084bfdf689',t:'MTc3NTUxMTIwMA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>