Growing an Engineering Blog with SEO: What Actually Worked

Photo by blprnt_van on flickr
Long-tail, keyword-first titles matter more than broad topic titles for a new engineering blog, because broad terms are already dominated by large established sites. Pairing specific titles with server-rendered metadata, structured data, and internal linking between related posts is what produced consistent, compounding traffic growth rather than a single spike.
A new domain has little authority to compete for high-volume broad terms like devops or backend development. Long-tail phrases, specific multi-word queries that name the exact tool, error, or workflow, have lower search volume but much less competition and higher intent, so a solo blog can realistically rank for them.
Centralize it in one shared layout file that every blog post inherits from, rather than duplicating JSON-LD in every article component. That layout can export a generateMetadata function for titles, descriptions, and canonical URLs, plus render TechArticle, BreadcrumbList, and FAQPage JSON-LD from per-post data, so adding a new post never requires writing new SEO code.
Internal linking will not make a poor article rank, but it meaningfully strengthens a good one. Google's own guidance states every page you care about should have a link from at least one other page on the site, and a related-posts system with descriptive anchor text measurably increases pages per session as a catalog of articles grows.
Google removed the visual FAQ rich result treatment from search results in 2026, but the underlying FAQPage schema is still valid structured data and remains useful for other search engines and AI answer engines that consume it. Building SEO around durable fundamentals, like keyword-matched titles and genuine internal linking, matters more than any single rich-result feature.

Photo by blprnt_van on flickr
Key Takeaway
An engineering blog gains long-tail organic traffic not through generic SEO tips but through disciplined engineering: keyword-first titles under 63 characters, server-rendered metadata and JSON-LD structured data generated per post, five-question FAQ schemas, and an internal linking system connecting every article to related posts in the same category.
When I relaunched this blog, my first few posts got almost no organic traffic. They were technically fine articles about ERP systems and DevOps tooling, but nobody was finding them, because I was writing for myself instead of writing for how people actually search. Over the following months I rebuilt the entire publishing pipeline around technical SEO: metadata generated per post, structured data injected at the layout level, a strict keyword template, and an internal linking system that connects every article to its neighbors.
This post is the honest version of what worked and what did not. It is not a generic SEO checklist copied from a marketing blog. It is the specific set of engineering decisions, in a Next dot js App Router codebase with next-intl for English and Indonesian, that turned a list of drafts into a site that ranks for long-tail engineering searches. I will walk through keyword strategy, the metadata layer, structured data, internal linking, and the metrics that actually mattered once real traffic showed up.
A brand new domain has no authority to compete for a broad term like devops or backend development. Those searches are dominated by sites with years of backlinks and huge content libraries. The realistic opportunity for an individual engineering blog is long-tail search, specific multi-word phrases with lower volume but far less competition and much higher intent. Someone searching for how to configure prometheus recording rules to reduce cardinality is closer to becoming a reader, or a client, than someone searching devops.
Before writing a single paragraph, write the meta title and meta description first. If you cannot compress the article into a keyword-first title under sixty three characters and a description under one hundred fifty five characters, the topic is probably still too broad.
In a Next dot js App Router project, per-post SEO belongs in one place, a shared layout that every post inherits from, so nothing is duplicated across dozens of article components. The layout exports a generateMetadata function that reads a small metadata object per slug and returns the title, description, keywords, canonical URL, language alternates, and Open Graph fields for that exact post. Because generateMetadata runs on the server before the page renders, the resulting tags are already present in the initial HTML that search engines see, rather than being injected later by client-side JavaScript.
The same layout also renders JSON-LD structured data, a TechArticle or Article schema with author, publisher, and publish date, a BreadcrumbList schema so search engines understand the site hierarchy, and an FAQPage schema built from five question and answer pairs per post. Centralizing this in one layout file means adding a new blog post never means writing SEO code again, it means filling in data that an existing system already knows how to render.
export async function generateMetadata(
{ params }: { params: Promise<{ slug: string }> }
): Promise<Metadata> {
const { slug } = await params;
const meta = BLOG_META[slug];
return {
title: meta.title,
description: meta.description,
keywords: meta.keywords,
alternates: {
canonical: buildCanonical(slug),
languages: buildLanguageAlternates(slug),
},
openGraph: {
type: "article",
title: meta.title,
description: meta.description,
images: [meta.image],
},
};
}SEO work that happens once and then gets forgotten decays fast. The only approach that compounds is a process every new post goes through automatically, so quality does not depend on remembering to do it manually each time. Here is the sequence that turned into a habit:
Do not fabricate source links to make an article look well researched. A broken or invented citation is worse for trust and for search engines than no citation at all. Verify every external URL actually resolves before publishing, and prefer official documentation or Wikipedia over blog posts that move their URLs frequently.
Not every SEO tactic pays off equally. After several months of publishing, a rough pattern emerged across the tactics I tried, comparing the setup effort against the traffic impact once Google had fully indexed and re-crawled the site.
| Tactic | Setup effort | Traffic impact |
|---|---|---|
| Long-tail, keyword-first titles | Low | High, the single biggest lever |
| TechArticle and FAQPage structured data | Medium, one-time layout build | Medium, helps understanding and eligibility for rich answers |
| Internal linking between related posts | Low per post, ongoing | Medium to high, compounds as the catalog grows |
A single well-optimized post can rank, but a network of posts that link to each other with descriptive anchor text ranks more reliably, because it signals which pages the site itself considers most important and related. Google's own guidance on crawlable links states that every page you care about should have a link from at least one other page on the site, and that anchor text should be descriptive rather than a generic click here.
The related-posts block alone, once enough posts existed in the same category to populate it meaningfully, measurably increased average pages per session, which is one of the clearest engagement signals a small site can influence directly.
Total pageviews felt satisfying to watch but told me almost nothing useful on their own. The metrics that actually explained what was working were: which exact queries in Search Console were driving impressions and clicks, which pages had high impressions but low click-through rate, meaning the title or description was not compelling enough for the ranking position, and which posts were gaining position over consecutive weeks after being freshly re-linked from a new article.
One thing worth being honest about, structured data itself is a moving target. Google has deprecated the FAQ rich result visual treatment in search results as of 2026, even though the underlying FAQPage schema remains valid structured data and is still worth including for other search engines and AI answer engines that do consume it. The lesson generalizes, build your SEO system around fundamentals that outlast any single rich-result feature, specifically keyword-matched titles, fast and correctly rendered metadata, and a genuinely interlinked site.