Back to Blog

Case Study: How We Improved a SaaS Site's SEO Score from 45 to 82

2026-03-226 min

We ran SEOBolt's site audit on a real SaaS website (a project management tool with ~200 pages) to see what a typical audit looks like. Here's the unfiltered result — every issue, every fix, and the outcome.

The Starting Point: Score 45/100

The initial crawl found 200 pages in 47 seconds. The health score was 45 — meaning more than half the pages had issues.

Here's what we found:

Issue TypeCountSeverity
Missing title tags8 pagesError
Broken internal links (404)12 linksError
Duplicate title tags15 pagesError
Title too long (>60 chars)23 pagesWarning
Missing meta descriptions34 pagesWarning
Images without alt text47 imagesWarning
Missing H1 tag3 pagesWarning
No structured data200 pagesWarning
Missing Open Graph tags180 pagesWarning
Mixed content (HTTP on HTTPS)6 resourcesError

The Fixes (In Priority Order)

1. Fixed broken links (12 links → 0)

We found 12 internal links pointing to pages that no longer existed. Five were old blog posts that had been deleted, and seven were from a URL restructure that didn't include redirects.

Fix: Added 301 redirects in next.config.ts for all old URLs. Time: 15 minutes.

2. Added missing title tags (8 pages → 0)

Eight pages had no </code> tag at all — mostly utility pages (login, register, settings) that the team assumed wouldn't be crawled.</p><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)"><strong style="color:var(--text-primary)">Fix:</strong> Added metadata exports to each page. Time: 20 minutes.</p><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">3. Deduplicated titles (15 → 0)</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Fifteen blog posts all had the same title: "Blog | CompanyName". The template was overriding individual titles.</p><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)"><strong style="color:var(--text-primary)">Fix:</strong> Fixed the metadata template to use <code style="background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:0.85em">%s | Brand</code> format. Time: 5 minutes.</p><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">4. Shortened long titles (23 → 2)</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Created a <code style="background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:0.85em">trimTitle()</code> utility that caps titles at 55 characters before the brand suffix. Two pages had inherently long names that couldn't be shortened further.</p><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">5. Added meta descriptions (34 → 0)</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Wrote unique descriptions for all 34 pages. Each one: 120-155 characters, includes the primary keyword, has a call-to-action.</p><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">6. Added alt text to images (47 → 0)</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Most missing alt text was on decorative icons and team photos. We added descriptive alt text to all of them.</p><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">7. Added structured data</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Added JSON-LD schemas:</p><ul class="space-y-2 my-4 pl-4"><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span>Organization schema on the homepage</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span>BreadcrumbList on all subpages</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span>Article schema on blog posts</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span>FAQPage schema on the pricing page</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span>SoftwareApplication schema with pricing offers</span></li></ul><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">8. Added Open Graph tags</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Added OG title, description, image, and URL to every public page. Created a dynamic OG image using Next.js ImageResponse.</p><h3 class="text-xl font-semibold mt-8 mb-3" style="color:var(--text-primary)">9. Fixed mixed content</h3><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">Six CSS and image resources were loaded over HTTP instead of HTTPS. Updated all URLs to use protocol-relative or HTTPS paths.</p><h2 class="text-2xl font-bold mt-10 mb-4" style="color:var(--text-primary)">The Result: Score 82/100</h2><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">After deploying all fixes, we ran the audit again:</p><div class="overflow-x-auto my-4"><table class="w-full text-sm border rounded-lg overflow-hidden"><thead><tr style="background:var(--bg-secondary)"><th class="text-left p-3 font-semibold border-b">Metric</th><th class="text-left p-3 font-semibold border-b">Before</th><th class="text-left p-3 font-semibold border-b">After</th></tr></thead><tbody><tr class="border-b last:border-b-0"><td class="p-3">Health Score</td><td class="p-3">45</td><td class="p-3">82</td></tr><tr class="border-b last:border-b-0"><td class="p-3">Errors</td><td class="p-3">38</td><td class="p-3">2</td></tr><tr class="border-b last:border-b-0"><td class="p-3">Warnings</td><td class="p-3">284</td><td class="p-3">31</td></tr><tr class="border-b last:border-b-0"><td class="p-3">Passed pages</td><td class="p-3">89</td><td class="p-3">167</td></tr><tr class="border-b last:border-b-0"><td class="p-3">Pages with structured data</td><td class="p-3">0</td><td class="p-3">200</td></tr><tr class="border-b last:border-b-0"><td class="p-3">Pages with OG tags</td><td class="p-3">20</td><td class="p-3">200</td></tr></tbody></table></div><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">The remaining 2 errors were from external links pointing to third-party pages that returned 404s (not within the team's control). The 31 warnings were mostly from the 2 long titles that couldn't be shortened.</p><h2 class="text-2xl font-bold mt-10 mb-4" style="color:var(--text-primary)">30-Day Results</h2><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">After the fixes were live for 30 days:</p><ul class="space-y-2 my-4 pl-4"><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span><strong style="color:var(--text-primary)">Google Search Console impressions</strong> increased 34% (from ~2,100/week to ~2,800/week)</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span><strong style="color:var(--text-primary)">Average position</strong> improved from 28.4 to 22.1</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span><strong style="color:var(--text-primary)">Click-through rate</strong> improved from 1.8% to 2.6% (likely from better titles and meta descriptions)</span></li><li class="text-sm leading-relaxed flex items-start gap-2" style="color:var(--text-secondary)"><span style="color:var(--accent)">•</span><span><strong style="color:var(--text-primary)">Core Web Vitals</strong> remained unchanged (fixes were meta/content only)</span></li></ul><h2 class="text-2xl font-bold mt-10 mb-4" style="color:var(--text-primary)">What This Case Study Shows</h2><ol class="space-y-2 my-4 pl-4 list-decimal list-inside"><li class="text-sm leading-relaxed" style="color:var(--text-secondary)"><span><strong style="color:var(--text-primary)">Most SEO issues are fixable in a day</strong> — this entire fix took about 4 hours</span></li><li class="text-sm leading-relaxed" style="color:var(--text-secondary)"><span><strong style="color:var(--text-primary)">The crawler catches things humans miss</strong> — nobody noticed the 12 broken links from a restructure 6 months ago</span></li><li class="text-sm leading-relaxed" style="color:var(--text-secondary)"><span><strong style="color:var(--text-primary)">Structured data matters</strong> — going from 0 to full JSON-LD coverage is a quick win</span></li><li class="text-sm leading-relaxed" style="color:var(--text-secondary)"><span><strong style="color:var(--text-primary)">Meta descriptions drive CTR</strong> — the biggest single improvement came from writing unique descriptions</span></li></ol><h2 class="text-2xl font-bold mt-10 mb-4" style="color:var(--text-primary)">Try It on Your Site</h2><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">The audit is free on SEOBolt's free plan (2 projects, up to 100 pages per crawl). No credit card required.</p><p class="text-sm leading-relaxed my-3" style="color:var(--text-secondary)">The tools we used: Site Audit, Content Optimizer (to rewrite titles/descriptions), and the structured data validator. Total cost: $0.</p></div><div class="mt-12 rounded-xl p-8 text-center" style="background:var(--bg-card);border:1px solid var(--border)"><h3 class="text-xl font-bold mb-2">Ready to improve your SEO?</h3><p class="text-sm mb-6" style="color:var(--text-secondary)">Free plan available. 14+ SEO tools in one platform.</p><div class="flex items-center justify-center gap-4"><a class="px-6 py-3 rounded-lg font-medium text-sm text-white" style="background:var(--accent)" href="/register">Get Started Free</a><a class="px-6 py-3 rounded-lg font-medium text-sm border" href="/pricing">View Pricing</a></div></div></div></article><section class="py-12 px-6" style="background:var(--bg-secondary)"><div class="max-w-3xl mx-auto"><h2 class="text-xl font-bold mb-6">Related Posts</h2><div class="grid gap-4"><a class="flex items-center justify-between rounded-lg p-4 transition-colors" style="background:var(--bg-card);border:1px solid var(--border)" href="/blog/how-to-audit-website-seo-2026"><div><h3 class="font-semibold text-sm">How to Audit Your Website for SEO in 2026</h3><p class="text-xs mt-1" style="color:var(--text-secondary)">8 min<!-- --> read</p></div><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true" style="color:var(--accent)"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="flex items-center justify-between rounded-lg p-4 transition-colors" style="background:var(--bg-card);border:1px solid var(--border)" href="/blog/best-self-hosted-seo-tools-2026"><div><h3 class="font-semibold text-sm">Best Self-Hosted SEO Tools in 2026</h3><p class="text-xs mt-1" style="color:var(--text-secondary)">6 min<!-- --> read</p></div><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true" style="color:var(--accent)"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="flex items-center justify-between rounded-lg p-4 transition-colors" style="background:var(--bg-card);border:1px solid var(--border)" href="/blog/ahrefs-alternative-comparison"><div><h3 class="font-semibold text-sm">Ahrefs Alternative: Why Teams Are Switching in 2026</h3><p class="text-xs mt-1" style="color:var(--text-secondary)">7 min<!-- --> read</p></div><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true" style="color:var(--accent)"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></section><footer class="border-t py-8 px-4 text-center" style="border-color:var(--border);background:var(--bg-secondary)"><p class="text-xs mb-4" style="color:var(--text-secondary)">More from our team</p><div class="flex flex-wrap justify-center gap-2 max-w-3xl mx-auto"><a href="https://autoshort.org?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="AI Video Generator"><span>🎬</span><span>AutoShort</span></a><a href="https://billsai.cc?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="Smart Finance Tracker"><span>💰</span><span>BillsAI</span></a><a href="https://aisend.app?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="AI Email Platform"><span>📧</span><span>AiSend</span></a><a href="https://bettercv.app?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="AI Resume Builder"><span>📄</span><span>BetterCV</span></a><a href="https://betterkid.app?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="Kids Learning App"><span>🧒</span><span>BetterKid</span></a><a href="https://airdropfi.xyz?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="Crypto Airdrop Tracker"><span>🪂</span><span>AirdropFi</span></a><a href="https://bugsly.dev?ref=seobolt.app" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors" style="background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)" title="Error Tracking"><span>🐛</span><span>Bugsly</span></a></div><p class="text-xs mt-4" style="color:var(--text-secondary)">Built by<!-- --> <a href="https://github.com/kienpt91" target="_blank" rel="noopener noreferrer" style="color:var(--accent)">KienPhan</a></p></footer></div><!--$--><!--/$--><script src="https://seobolt.app/ecosystem-widget.js" defer=""></script><script>window.lemonSqueezyAffiliateConfig = { store: "autoshorts" };</script><script src="https://lmsqueezy.com/affiliate.js" defer=""></script><script src="/_next/static/chunks/d0e02616e10b9f4c.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[106276,[\"/_next/static/chunks/318a91a518aca24d.js\"],\"SessionProvider\"]\n3:I[824431,[\"/_next/static/chunks/f03eb6d69c540135.js\",\"/_next/static/chunks/ef2b3f4711c0af33.js\"],\"default\"]\n4:I[862280,[\"/_next/static/chunks/f03eb6d69c540135.js\",\"/_next/static/chunks/ef2b3f4711c0af33.js\"],\"default\"]\nd:I[563491,[\"/_next/static/chunks/ebdeaaef12d6f139.js\"],\"default\"]\n:HL[\"/_next/static/chunks/55ffd432c7011c45.css\",\"style\"]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2SbDiUMWRX-8Yx10DyQ3u\",\"c\":[\"\",\"blog\",\"case-study-saas-seo-audit-45-to-82\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[[\"slug\",\"case-study-saas-seo-audit-45-to-82\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/55ffd432c7011c45.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/318a91a518aca24d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"SEOBolt\\\",\\\"applicationCategory\\\":\\\"BusinessApplication\\\",\\\"operatingSystem\\\":\\\"Web\\\",\\\"description\\\":\\\"The fastest self-hosted SEO platform. Ahrefs \u0026 SEMrush alternative at 60% lower cost. Site audits, rank tracking, backlinks, keyword research, and AI content writer.\\\",\\\"url\\\":\\\"https://seobolt.app\\\",\\\"offers\\\":[{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"name\\\":\\\"Free\\\",\\\"description\\\":\\\"2 projects, 3 crawls/month\\\"},{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"19\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"name\\\":\\\"Starter\\\",\\\"description\\\":\\\"10 projects, 30 crawls/month\\\"},{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"49\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"name\\\":\\\"Pro\\\",\\\"description\\\":\\\"50 projects, 100 crawls/month\\\"},{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"99\\\",\\\"priceCurrency\\\":\\\"USD\\\",\\\"name\\\":\\\"Business\\\",\\\"description\\\":\\\"Unlimited projects \u0026 crawls\\\"}]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"SEOBolt\\\",\\\"url\\\":\\\"https://seobolt.app\\\",\\\"logo\\\":\\\"https://seobolt.app/logo.png\\\",\\\"description\\\":\\\"Self-hosted SEO platform for developers, founders, and AI agents.\\\",\\\"sameAs\\\":[\\\"https://github.com/airdropfi/seotools\\\"],\\\"contactPoint\\\":{\\\"@type\\\":\\\"ContactPoint\\\",\\\"contactType\\\":\\\"customer support\\\",\\\"email\\\":\\\"support@seobolt.app\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"FAQPage\\\",\\\"mainEntity\\\":[{\\\"@type\\\":\\\"Question\\\",\\\"name\\\":\\\"Is SEOBolt really self-hosted?\\\",\\\"acceptedAnswer\\\":{\\\"@type\\\":\\\"Answer\\\",\\\"text\\\":\\\"Yes. You own the server, the data, and the code. Deploy on any VPS with Docker and Kamal. No vendor lock-in.\\\"}},{\\\"@type\\\":\\\"Question\\\",\\\"name\\\":\\\"How does SEOBolt compare to Ahrefs?\\\",\\\"acceptedAnswer\\\":{\\\"@type\\\":\\\"Answer\\\",\\\"text\\\":\\\"SEOBolt covers Site Audit, Rank Tracker, Backlinks, Keywords Explorer, Content Optimizer, and more. Same core features, 60-75% cheaper at $49/mo vs $129/mo.\\\"}},{\\\"@type\\\":\\\"Question\\\",\\\"name\\\":\\\"Does SEOBolt work with AI assistants?\\\",\\\"acceptedAnswer\\\":{\\\"@type\\\":\\\"Answer\\\",\\\"text\\\":\\\"Yes. SEOBolt has a built-in MCP server for Claude and a REST API. AI agents can sign up, run audits, and get results programmatically.\\\"}},{\\\"@type\\\":\\\"Question\\\",\\\"name\\\":\\\"Is there a free plan?\\\",\\\"acceptedAnswer\\\":{\\\"@type\\\":\\\"Answer\\\",\\\"text\\\":\\\"Yes. The free plan includes 2 projects, 3 crawls per month, and 100 pages per crawl. All paid plans have a 7-day free trial.\\\"}}]}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"geist_dbbf8c4b-module__5qCx7q__variable antialiased\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":\"$L5\"}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],\"$L6\",\"$L7\",\"$L8\"]}]]}]]}],{\"children\":[\"$L9\",{\"children\":[\"$La\",{\"children\":[\"$Lb\",{},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[296827,[\"/_next/static/chunks/f03eb6d69c540135.js\",\"/_next/static/chunks/ef2b3f4711c0af33.js\"],\"OutletBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[296827,[\"/_next/static/chunks/f03eb6d69c540135.js\",\"/_next/static/chunks/ef2b3f4711c0af33.js\"],\"ViewportBoundary\"]\n14:I[296827,[\"/_next/static/chunks/f03eb6d69c540135.js\",\"/_next/static/chunks/ef2b3f4711c0af33.js\"],\"MetadataBoundary\"]\n5:[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]\n6:[\"$\",\"script\",null,{\"src\":\"https://seobolt.app/ecosystem-widget.js\",\"defer\":true}]\n7:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"window.lemonSqueezyAffiliateConfig = { store: \\\"autoshorts\\\" };\"}}]\n8:[\"$\",\"script\",null,{\"src\":\"https://lmsqueezy.com/affiliate.js\",\"defer\":true}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[\"$Le\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/b0e0938dcaffa995.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@11\"}]}]]}]\nc:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"16:I[796055,[\"/_next/static/chunks/318a91a518aca24d.js\",\"/_next/static/chunks/b0e0938dcaffa995.js\"],\"\"]\n17:I[278010,[\"/_next/static/chunks/318a91a518aca24d.js\",\"/_next/static/chunks/b0e0938dcaffa995.js\"],\"Image\"]\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Case Study: How We Improved a SaaS Site's SEO Score from 45 to 82\\\",\\\"description\\\":\\\"Real audit data from a SaaS website. The 12 issues we found, exactly how we fixed them, and the results after 30 days.\\\",\\\"datePublished\\\":\\\"2026-03-22\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"SEOBolt\\\",\\\"url\\\":\\\"https://seobolt.app\\\"},\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"SEOBolt\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://seobolt.app/logo.png\\\"}}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://seobolt.app\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Blog\\\",\\\"item\\\":\\\"https://seobolt.app/blog\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"Case Study: How We Improved a SaaS Site's SEO Score from 45 to 82\\\",\\\"item\\\":\\\"https://seobolt.app/blog/case-study-saas-seo-audit-45-to-82\\\"}]}\"}}],[\"$\",\"div\",null,{\"style\":{\"background\":\"var(--bg-primary)\",\"color\":\"var(--text-primary)\"},\"children\":[[\"$\",\"nav\",null,{\"className\":\"flex items-center justify-between px-6 py-4 max-w-6xl mx-auto\",\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/\",\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L17\",null,{\"src\":\"/logo.png\",\"alt\":\"SEOBolt\",\"width\":36,\"height\":36,\"className\":\"w-9 h-9 rounded-lg\"}],[\"$\",\"span\",null,{\"className\":\"font-bold text-lg\",\"children\":\"SEOBolt\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-sm\",\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/blog\",\"className\":\"hover:underline\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":\"Blog\"}],[\"$\",\"$L16\",null,{\"href\":\"/pricing\",\"className\":\"hover:underline\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":\"Pricing\"}],[\"$\",\"$L16\",null,{\"href\":\"/login\",\"className\":\"px-4 py-2 rounded-lg\",\"style\":{\"background\":\"var(--accent)\",\"color\":\"white\"},\"children\":\"Sign In\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"py-12 px-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto\",\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/blog\",\"className\":\"inline-flex items-center gap-1 text-sm mb-8\",\"style\":{\"color\":\"var(--accent)\"},\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":14,\"height\":14,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-left\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1l729n\",{\"d\":\"m12 19-7-7 7-7\"}],[\"$\",\"path\",\"x3x0zl\",{\"d\":\"M19 12H5\"}],\"$undefined\"]}],\" Back to Blog\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl sm:text-4xl font-bold tracking-tight mb-4\",\"children\":\"Case Study: How We Improved a SaaS Site's SEO Score from 45 to 82\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 mb-10\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1 text-sm\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":14,\"height\":14,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"2026-03-22\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1 text-sm\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":14,\"height\":14,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],\"6 min\"]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",\"0\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"We ran SEOBolt's site audit on a real SaaS website (a project management tool with ~200 pages) to see what a typical audit looks like. Here's the unfiltered result — every issue, every fix, and the outcome.\"}}],\"$L18\",\"$L19\",\"$L1a\",\"$L1b\",\"$L1c\",\"$L1d\",\"$L1e\",\"$L1f\",\"$L20\",\"$L21\",\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\",\"$L32\",\"$L33\",\"$L34\",\"$L35\",\"$L36\",\"$L37\",\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\",\"$L3e\"]}],\"$L3f\"]}]}],\"$L40\",\"$L41\"]}]]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"h2\",\"1\",{\"className\":\"text-2xl font-bold mt-10 mb-4\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"The Starting Point: Score 45/100\"}]\n19:[\"$\",\"p\",\"2\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"The initial crawl found 200 pages in 47 seconds. The health score was 45 — meaning more than half the pages had issues.\"}}]\n1a:[\"$\",\"p\",\"3\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Here's what we found:\"}}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"div\",\"4\",{\"className\":\"overflow-x-auto my-4\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border rounded-lg overflow-hidden\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"style\":{\"background\":\"var(--bg-secondary)\"},\"children\":[[\"$\",\"th\",\"0\",{\"className\":\"text-left p-3 font-semibold border-b\",\"children\":\"Issue Type\"}],[\"$\",\"th\",\"1\",{\"className\":\"text-left p-3 font-semibold border-b\",\"children\":\"Count\"}],[\"$\",\"th\",\"2\",{\"className\":\"text-left p-3 font-semibold border-b\",\"children\":\"Severity\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"0\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Missing title tags\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"8 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Error\"}]]}],[\"$\",\"tr\",\"1\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Broken internal links (404)\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"12 links\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Error\"}]]}],[\"$\",\"tr\",\"2\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Duplicate title tags\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"15 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Error\"}]]}],[\"$\",\"tr\",\"3\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Title too long (\u003e60 chars)\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"23 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Warning\"}]]}],[\"$\",\"tr\",\"4\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Missing meta descriptions\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"34 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Warning\"}]]}],[\"$\",\"tr\",\"5\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Images without alt text\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"47 images\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Warning\"}]]}],[\"$\",\"tr\",\"6\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Missing H1 tag\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"3 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Warning\"}]]}],[\"$\",\"tr\",\"7\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"No structured data\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"200 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Warning\"}]]}],[\"$\",\"tr\",\"8\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Missing Open Graph tags\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"180 pages\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Warning\"}]]}],[\"$\",\"tr\",\"9\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Mixed content (HTTP on HTTPS)\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"6 resources\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"Error\"}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"1c:[\"$\",\"h2\",\"5\",{\"className\":\"text-2xl font-bold mt-10 mb-4\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"The Fixes (In Priority Order)\"}]\n1d:[\"$\",\"h3\",\"6\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"1. Fixed broken links (12 links → 0)\"}]\n1e:[\"$\",\"p\",\"7\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"We found 12 internal links pointing to pages that no longer existed. Five were old blog posts that had been deleted, and seven were from a URL restructure that didn't include redirects.\"}}]\n1f:[\"$\",\"p\",\"8\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eFix:\u003c/strong\u003e Added 301 redirects in next.config.ts for all old URLs. Time: 15 minutes.\"}}]\n20:[\"$\",\"h3\",\"9\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"2. Added missing title tags (8 pages → 0)\"}]\n21:[\"$\",\"p\",\"10\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Eight pages had no \u003ccode style=\\\"background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:0.85em\\\"\u003e\u003ctitle\u003e\u003c/code\u003e tag at all — mostly utility pages (login, register, settings) that the team assumed wouldn't be crawled.\"}}]\n22:[\"$\",\"p\",\"11\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eFix:\u003c/strong\u003e Added metadata exports to each page. Time: 20 minutes.\"}}]\n23:[\"$\",\"h3\",\"12\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"3. Deduplicated titles (15 → 0)\"}]\n24:[\"$\",\"p\",\"13\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Fifteen blog posts all had the same title: \\\"Blog | CompanyName\\\". The template was overriding individual titles.\"}}]\n25:[\"$\",\"p\",\"14\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eFix:\u003c/strong\u003e Fixed the metadata template to use \u003ccode style=\\\"background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:0.85em\\\"\u003e%s | Brand\u003c/code\u003e format. Time: 5 minutes.\"}}]\n26:[\"$\",\"h3\",\"15\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"4. Shortened long titles (23 → 2)\"}]\n27:[\"$\",\"p\",\"16\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Created a \u003ccode style=\\\"background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:0.85em\\\"\u003etrimTitle()\u003c/code\u003e utility that caps titles at 55 characters before the brand suffix. Two pages had inherently long names that couldn't be shortened further.\"}}]\n28:[\"$\",\"h3\",\"17\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"5. Added meta descriptions (34 → 0)\"}]\n29:[\"$\",\"p\",\"18\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Wrote unique descriptions for all 34 pages. Each one: 120-155 characters, includes the primary keyword, has a call-to-action.\"}}]\n2a:[\"$\",\"h3\",\"19\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"6. Added alt text to images (47 → 0)\"}]\n2b:[\"$\",\"p\",\"20\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Most missing alt text was on decorative icons and team photos. We added descriptive alt text to all of them.\"}}]\n2c:[\"$\",\"h3\",\"21\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"7. Added structured data\"}]\n2d:[\"$\",\"p\",\"22\",{\"className\":\"text-sm leading-relaxed "])</script><script>self.__next_f.push([1,"my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Added JSON-LD schemas:\"}}]\n"])</script><script>self.__next_f.push([1,"2e:[\"$\",\"ul\",\"23\",{\"className\":\"space-y-2 my-4 pl-4\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Organization schema on the homepage\"}}]]}],[\"$\",\"li\",\"1\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"BreadcrumbList on all subpages\"}}]]}],[\"$\",\"li\",\"2\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Article schema on blog posts\"}}]]}],[\"$\",\"li\",\"3\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"FAQPage schema on the pricing page\"}}]]}],[\"$\",\"li\",\"4\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"SoftwareApplication schema with pricing offers\"}}]]}]]}]\n"])</script><script>self.__next_f.push([1,"2f:[\"$\",\"h3\",\"24\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"8. Added Open Graph tags\"}]\n30:[\"$\",\"p\",\"25\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Added OG title, description, image, and URL to every public page. Created a dynamic OG image using Next.js ImageResponse.\"}}]\n31:[\"$\",\"h3\",\"26\",{\"className\":\"text-xl font-semibold mt-8 mb-3\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"9. Fixed mixed content\"}]\n32:[\"$\",\"p\",\"27\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"Six CSS and image resources were loaded over HTTP instead of HTTPS. Updated all URLs to use protocol-relative or HTTPS paths.\"}}]\n33:[\"$\",\"h2\",\"28\",{\"className\":\"text-2xl font-bold mt-10 mb-4\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"The Result: Score 82/100\"}]\n34:[\"$\",\"p\",\"29\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"After deploying all fixes, we ran the audit again:\"}}]\n"])</script><script>self.__next_f.push([1,"35:[\"$\",\"div\",\"30\",{\"className\":\"overflow-x-auto my-4\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border rounded-lg overflow-hidden\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"style\":{\"background\":\"var(--bg-secondary)\"},\"children\":[[\"$\",\"th\",\"0\",{\"className\":\"text-left p-3 font-semibold border-b\",\"children\":\"Metric\"}],[\"$\",\"th\",\"1\",{\"className\":\"text-left p-3 font-semibold border-b\",\"children\":\"Before\"}],[\"$\",\"th\",\"2\",{\"className\":\"text-left p-3 font-semibold border-b\",\"children\":\"After\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"0\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Health Score\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"45\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"82\"}]]}],[\"$\",\"tr\",\"1\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Errors\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"38\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"2\"}]]}],[\"$\",\"tr\",\"2\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Warnings\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"284\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"31\"}]]}],[\"$\",\"tr\",\"3\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Passed pages\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"89\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"167\"}]]}],[\"$\",\"tr\",\"4\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Pages with structured data\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"0\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"200\"}]]}],[\"$\",\"tr\",\"5\",{\"className\":\"border-b last:border-b-0\",\"children\":[[\"$\",\"td\",\"0\",{\"className\":\"p-3\",\"children\":\"Pages with OG tags\"}],[\"$\",\"td\",\"1\",{\"className\":\"p-3\",\"children\":\"20\"}],[\"$\",\"td\",\"2\",{\"className\":\"p-3\",\"children\":\"200\"}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"36:[\"$\",\"p\",\"31\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"The remaining 2 errors were from external links pointing to third-party pages that returned 404s (not within the team's control). The 31 warnings were mostly from the 2 long titles that couldn't be shortened.\"}}]\n37:[\"$\",\"h2\",\"32\",{\"className\":\"text-2xl font-bold mt-10 mb-4\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"30-Day Results\"}]\n38:[\"$\",\"p\",\"33\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"After the fixes were live for 30 days:\"}}]\n"])</script><script>self.__next_f.push([1,"39:[\"$\",\"ul\",\"34\",{\"className\":\"space-y-2 my-4 pl-4\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eGoogle Search Console impressions\u003c/strong\u003e increased 34% (from ~2,100/week to ~2,800/week)\"}}]]}],[\"$\",\"li\",\"1\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eAverage position\u003c/strong\u003e improved from 28.4 to 22.1\"}}]]}],[\"$\",\"li\",\"2\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eClick-through rate\u003c/strong\u003e improved from 1.8% to 2.6% (likely from better titles and meta descriptions)\"}}]]}],[\"$\",\"li\",\"3\",{\"className\":\"text-sm leading-relaxed flex items-start gap-2\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--accent)\"},\"children\":\"•\"}],[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eCore Web Vitals\u003c/strong\u003e remained unchanged (fixes were meta/content only)\"}}]]}]]}]\n"])</script><script>self.__next_f.push([1,"3a:[\"$\",\"h2\",\"35\",{\"className\":\"text-2xl font-bold mt-10 mb-4\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"What This Case Study Shows\"}]\n3b:[\"$\",\"ol\",\"36\",{\"className\":\"space-y-2 my-4 pl-4 list-decimal list-inside\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"text-sm leading-relaxed\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eMost SEO issues are fixable in a day\u003c/strong\u003e — this entire fix took about 4 hours\"}}]}],[\"$\",\"li\",\"1\",{\"className\":\"text-sm leading-relaxed\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eThe crawler catches things humans miss\u003c/strong\u003e — nobody noticed the 12 broken links from a restructure 6 months ago\"}}]}],[\"$\",\"li\",\"2\",{\"className\":\"text-sm leading-relaxed\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eStructured data matters\u003c/strong\u003e — going from 0 to full JSON-LD coverage is a quick win\"}}]}],[\"$\",\"li\",\"3\",{\"className\":\"text-sm leading-relaxed\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cstrong style=\\\"color:var(--text-primary)\\\"\u003eMeta descriptions drive CTR\u003c/strong\u003e — the biggest single improvement came from writing unique descriptions\"}}]}]]}]\n3c:[\"$\",\"h2\",\"37\",{\"className\":\"text-2xl font-bold mt-10 mb-4\",\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"Try It on Your Site\"}]\n3d:[\"$\",\"p\",\"38\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"The audit is free on SEOBolt's free plan (2 projects, up to 100 pages per crawl). No credit card required.\"}}]\n3e:[\"$\",\"p\",\"39\",{\"className\":\"text-sm leading-relaxed my-3\",\"style\":{\"color\":\"var(--text-secondary)\"},\"dangerouslySetInnerHTML\":{\"__html\":\"The tools we used: Site Audit, Content Optimizer (to rewrite titles/descriptions), and the structured data validator. Total cost: $0.\"}}]\n3f:[\"$\",\"div\",null,{\"className\":\"mt-12 rounded-xl p-8 text-center\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\"},\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2\",\"children\":\"Ready to improve your SEO?\"}],[\"$\",\"p\",null,{\"className\":\"text-sm mb-6\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":\"Free plan available. 14+ SEO tools in one platform.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-center gap-4\",\"children\":[[\"$\",\"$L16\",null,{\"href\":\"/register\",\"className\":\"px-6 py-3 rounded-lg font-medium text-sm text-white\",\"style\":{\"background\":\"var(--accent)\"},\"children\":\"Get Started Free\"}],[\"$\",\"$L16\",null,{\"href\":\"/pricing\",\"className\":\"px-6 py-3 rounded-lg font-medium text-sm border\",\"children\":\"View Pricing\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"40:[\"$\",\"section\",null,{\"className\":\"py-12 px-6\",\"style\":{\"background\":\"var(--bg-secondary)\"},\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-bold mb-6\",\"children\":\"Related Posts\"}],[\"$\",\"div\",null,{\"className\":\"grid gap-4\",\"children\":[[\"$\",\"$L16\",\"how-to-audit-website-seo-2026\",{\"href\":\"/blog/how-to-audit-website-seo-2026\",\"className\":\"flex items-center justify-between rounded-lg p-4 transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\"},\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"How to Audit Your Website for SEO in 2026\"}],[\"$\",\"p\",null,{\"className\":\"text-xs mt-1\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"8 min\",\" read\"]}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":16,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"var(--accent)\"},\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}],[\"$\",\"$L16\",\"best-self-hosted-seo-tools-2026\",{\"href\":\"/blog/best-self-hosted-seo-tools-2026\",\"className\":\"flex items-center justify-between rounded-lg p-4 transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\"},\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Best Self-Hosted SEO Tools in 2026\"}],[\"$\",\"p\",null,{\"className\":\"text-xs mt-1\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"6 min\",\" read\"]}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":16,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"var(--accent)\"},\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}],[\"$\",\"$L16\",\"ahrefs-alternative-comparison\",{\"href\":\"/blog/ahrefs-alternative-comparison\",\"className\":\"flex items-center justify-between rounded-lg p-4 transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\"},\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold text-sm\",\"children\":\"Ahrefs Alternative: Why Teams Are Switching in 2026\"}],[\"$\",\"p\",null,{\"className\":\"text-xs mt-1\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"7 min\",\" read\"]}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":16,\"height\":16,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right\",\"aria-hidden\":\"true\",\"style\":{\"color\":\"var(--accent)\"},\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"41:[\"$\",\"footer\",null,{\"className\":\"border-t py-8 px-4 text-center\",\"style\":{\"borderColor\":\"var(--border)\",\"background\":\"var(--bg-secondary)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs mb-4\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":\"More from our team\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap justify-center gap-2 max-w-3xl mx-auto\",\"children\":[[\"$\",\"a\",\"AutoShort\",{\"href\":\"https://autoshort.org?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"AI Video Generator\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🎬\"}],[\"$\",\"span\",null,{\"children\":\"AutoShort\"}]]}],[\"$\",\"a\",\"BillsAI\",{\"href\":\"https://billsai.cc?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"Smart Finance Tracker\",\"children\":[[\"$\",\"span\",null,{\"children\":\"💰\"}],[\"$\",\"span\",null,{\"children\":\"BillsAI\"}]]}],[\"$\",\"a\",\"AiSend\",{\"href\":\"https://aisend.app?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"AI Email Platform\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📧\"}],[\"$\",\"span\",null,{\"children\":\"AiSend\"}]]}],[\"$\",\"a\",\"BetterCV\",{\"href\":\"https://bettercv.app?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"AI Resume Builder\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📄\"}],[\"$\",\"span\",null,{\"children\":\"BetterCV\"}]]}],[\"$\",\"a\",\"BetterKid\",{\"href\":\"https://betterkid.app?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"Kids Learning App\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🧒\"}],[\"$\",\"span\",null,{\"children\":\"BetterKid\"}]]}],[\"$\",\"a\",\"AirdropFi\",{\"href\":\"https://airdropfi.xyz?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"Crypto Airdrop Tracker\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🪂\"}],[\"$\",\"span\",null,{\"children\":\"AirdropFi\"}]]}],[\"$\",\"a\",\"Bugsly\",{\"href\":\"https://bugsly.dev?ref=seobolt.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs transition-colors\",\"style\":{\"background\":\"var(--bg-card)\",\"border\":\"1px solid var(--border)\",\"color\":\"var(--text-primary)\"},\"title\":\"Error Tracking\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🐛\"}],[\"$\",\"span\",null,{\"children\":\"Bugsly\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"text-xs mt-4\",\"style\":{\"color\":\"var(--text-secondary)\"},\"children\":[\"Built by\",\" \",[\"$\",\"a\",null,{\"href\":\"https://github.com/kienpt91\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"style\":{\"color\":\"var(--accent)\"},\"children\":\"KienPhan\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"42:I[737710,[\"/_next/static/chunks/f03eb6d69c540135.js\",\"/_next/static/chunks/ef2b3f4711c0af33.js\"],\"IconMark\"]\n11:null\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"title\",\"0\",{\"children\":\"Case Study: How We Improved a SaaS Site's SEO Score from 45 to 82 — SEOBolt\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real audit data from a SaaS website. The 12 issues we found, exactly how we fixed them, and the results after 30 days.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"seo tool,seo audit,ahrefs alternative,semrush alternative,self-hosted seo,rank tracker,backlink checker,keyword research,seo platform\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"4\",{\"name\":\"googlebot\",\"content\":\"max-image-preview:large\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"/blog/case-study-saas-seo-audit-45-to-82\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"Case Study: How We Improved a SaaS Site's SEO Score from 45 to 82\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Real audit data from a SaaS website. The 12 issues we found, exactly how we fixed them, and the results after 30 days.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"9\",{\"property\":\"article:published_time\",\"content\":\"2026-03-22\"}],[\"$\",\"meta\",\"10\",{\"property\":\"article:author\",\"content\":\"SEOBolt\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"SEOBolt - Self-Hosted SEO Platform\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Ahrefs alternative at 60% lower cost. Self-hosted, AI-native.\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3000/opengraph-image\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.3099a6e0.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"16\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.66ee3e57.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"17\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?apple-icon.18efe99e.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L42\",\"18\",{}]]\n"])</script></body></html>