Content Strategy · 10 min read

How to write a blog post that ranks and keeps ranking.

No post ranks on day one. Every post needs work after month six. The pieces that produce traffic for years are the ones built with this lifecycle in mind from the first draft, not the ones written and forgotten the moment they go live.

By Tomer Shiri · Published May 16, 2026 · Updated May 16, 2026

Timeline showing five stages of a ranking blog post: publish, indexed, impressions, ranking, and stable

A blog post that ranks well is the cheapest unit of marketing in the long run. Once it earns position three for its target query and stays there, it produces traffic continuously without any further spend. The piece that gets there is rarely the longest or the most polished; it is the one written with a specific search audience in mind, structured to match what they expect to find, and integrated into the rest of the site so that link equity flows to it naturally.

This post is the operational checklist for writing a piece that has a fair chance of ranking, plus the honest expectations of what happens over the first 6 months and what to do when rankings plateau. It assumes the strategic decisions covered in the SEO content strategy post have already been made: the audience is defined, the topic cluster is mapped, and this particular piece has earned a slot on the schedule.

Before drafting: two decisions that determine ranking speed

The first decision is the primary keyword. Not the topic, the specific query string users type into Google. There is a meaningful difference between "I am writing about SEO for restaurants" and "I am targeting the query restaurant SEO Bangkok." The first generates a topic; the second generates a piece of content with a concrete primary keyword that anchors the title, the H1, and the structure.

Picking the primary keyword involves three checks. First, search volume: does anyone actually search this? Tools like Google Keyword Planner give imperfect but useful estimates. A query with zero monthly searches will not produce traffic regardless of how well the post ranks. Second, competition: who currently ranks for this query, and is there a realistic path to outranking them? If the top 10 results are all from huge authority domains with deep coverage, a new piece on a smaller domain will struggle. Third, commercial alignment: does this query produce the kind of reader your business can actually serve? Informational queries produce informational readers; if your business needs commercial intent, the keyword needs to reflect that.

The second decision is search intent. Google has already decided, through its ranking algorithms and what currently ranks in the top results, what intent this query represents. Your content needs to match. Open an incognito window, search the target query, and look at what ranks. If the top results are listicles, your content should probably be a listicle. If they are long-form guides, write a long-form guide. If they are commercial service pages, a blog post may not be the right format at all. The search intent post covers this in more detail, but the operational check is fast: look at what currently ranks, decide whether your piece will match that pattern, and adjust if not.

The five elements every ranking post needs

With keyword and intent decided, every piece you publish should ship with five elements present. Missing any one of them puts the post at a structural disadvantage that the rest of the elements cannot fully compensate for.

Five elements every ranking blog post needs: title with keyword, H1 matching search intent, original copy, internal links, and schema markup
Five elements. All present, every time. The piece that misses one fights from behind.

The title tag needs to include the primary keyword in the first 50 characters and read as something a person would want to click. Title tags that read as keyword-stuffed lose CTR even when they rank; titles that read naturally and include the keyword in a useful position perform across both rankings and CTR. The pattern that works for most informational posts is: [Primary keyword]: [specific value proposition] | [Site name].

The H1 matches the search intent, not necessarily the title tag word-for-word. The H1 is the on-page headline the reader sees first; it should make immediately clear that this page is about the thing they searched for. A common mistake is making the H1 cleverer than it needs to be ("The Surprising Truth About Restaurant SEO") when the search intent calls for something more direct ("Restaurant SEO: A Complete Guide for Bangkok Operators").

Original copy means actual content that says something useful, not paraphrased aggregation of what other ranking pages have already said. Google's helpful content systems have become noticeably better at detecting derivative writing, and pages that read as if they were assembled from competing pages without adding anything substantive struggle to rank. Bring at least one original angle to every piece: a specific example from your work, a concrete framework, a position other writers have not taken, or an experience that informs the content.

Internal links in and out of the cluster are the structural signal that ties the piece to your wider site authority. Every new post should link out to 3 to 5 related pages on your site (the pillar page in its cluster, the most directly related supporting posts, and the relevant service page if commercial intent allows). Every new post should also be linked from existing related content; the pillar page should add a contextual reference to the new post in a relevant section, and 2 to 3 cluster posts should do the same.

Schema markup is the structured data that helps Google understand the page beyond the body text. BlogPosting schema with proper author and publisher attribution is the baseline. FAQPage schema, if the post includes an FAQ section, enables rich results that lift CTR. BreadcrumbList schema makes the navigation hierarchy explicit. These elements do not directly raise rankings, but they unlock rich result eligibility that affects how the page appears in SERPs and earns clicks.

Structure: how the post reads to a scanner

Most readers do not read blog posts; they scan them. The post that works for SEO is the one that survives being scanned without losing the reader. The structure decisions that affect this are: an introduction that confirms the page answers the search query within the first 100 words, descriptive H2 sub-headings that double as scan markers, paragraph length kept short enough to read on mobile without scrolling indefinitely, and a clear conclusion or call-to-action at the end that does not feel tacked on.

The introduction is the highest-leverage paragraph. It tells readers (and Google's snippet generators) what this page is going to deliver. Open with a direct statement of what the post covers, not a hook designed to delay the answer. Searchers who clicked from Google already decided they wanted this topic; delaying the substance to build narrative tension usually causes them to bounce back to the SERP.

H2 sub-headings should be descriptive rather than clever. "Step 1: Find Your Keywords" reads as functional and useful in a table of contents; "The Foundation" reads as content-thin and adds nothing for someone scanning. Each H2 should describe what the section will tell the reader.

Paragraph length is a craft variable. Long paragraphs on mobile screens read as walls of text and cause readers to skip ahead or bounce. The pragmatic limit is 4 to 6 lines on mobile, which usually translates to 3 to 4 sentences. Vary paragraph length to maintain rhythm, but the upper bound is what fits on one mobile screen without scrolling within the paragraph.

Internal links are the ranking speed multiplier

The single highest-leverage thing you can do for a new post's ranking speed is link to it from existing pages immediately on publication. New content that arrives into a strong internal link structure can rank within 2 to 4 weeks; the same content without internal links may take 3 to 6 months to reach the same position, or never rank at all.

The mechanics are practical. When you publish a new post, immediately update at least 3 related existing posts to add a contextual link to the new piece. The links should be in the body text, not in a "related posts" widget, and the anchor text should be descriptive of the new post's topic rather than generic ("click here"). The internal linking post covers the anchor text patterns in detail, but the operational rule is simple: anchor text should be the kind of phrase someone might search for if they wanted to read the linked page.

This work is annoying and easy to skip. New post goes live, writer feels done, and the existing posts never get updated. The result is a graveyard of orphaned content that gets no link equity and ranks poorly. The discipline of updating 3 to 5 existing posts every time you publish a new one is what separates content programmes that compound from those that produce isolated pieces.

The first 30 days after publishing

Publication is the start of the work, not the end. The first 30 days are when you find out whether the technical foundations are working and where the early problems are.

Days 1 to 7: confirm indexing. Search Console will show the page status. If the page is not indexed after 7 days, check for obvious problems: noindex tag, robots.txt block, canonical pointing elsewhere, or missing internal links so Google has not discovered the page. The fix is usually one of these, not a deeper SEO issue.

Weeks 2 to 4: watch impressions in Search Console. A piece that earns no impressions after 4 weeks is not matching any queries; the diagnosis is usually intent mismatch (search the target query and see whether your piece is the kind of result Google wants to show) or keyword targeting that does not match real search behaviour (the queries you think exist may not have meaningful volume).

Weeks 4 to 12: watch position trend. A piece that appears in positions 30 to 80 in the first month is in the normal early discovery phase; positions usually improve as the post accumulates engagement signals and internal link equity flows. A piece stuck below position 50 after 8 weeks may need structural changes, or it may need to be linked more aggressively from related content.

Month 3 onwards: this is when the page either reaches a stable competitive position or it does not. Pieces that have not reached page 2 by month 4 to 5 generally will not without intervention. The intervention is usually a content expansion (add depth, add new sections, add the queries the page is showing impressions for but not ranking on), not a complete rewrite.

When rankings plateau at month six

Every ranking post hits a plateau eventually. The pattern is consistent: the post climbs steadily for 3 to 5 months, settles into a stable position, then stays there until either competitor content improves and the position drops, or you update the piece and the position rises. Pages that hit a plateau at position 3 and stay there for years are doing exactly what they should be; pages that plateau at position 12 and stay there are the ones to focus refresh effort on.

The refresh diagnosis is not "this post is old, update the date." Republishing with a new date but unchanged content rarely produces meaningful ranking improvement. What works is a substantive update driven by what the data shows. Open the page in Search Console, look at three signals: position trend, CTR at current position, and the queries the page is currently ranking for. Each tells you a different fix.

A falling position usually means competitor content has improved. The fix is to look at the new top-ranking pages, identify what they cover that your page does not, and add that depth to your piece. Not "make your page as long as theirs," but "answer the questions they answer that you do not."

A flat position with low CTR usually means the title and meta description are not winning the click even when shown. The fix is to rewrite the title with stronger keyword placement and a clearer value proposition, then watch CTR over the following month.

A page ranking unexpectedly for queries you did not target is an opportunity. Either restructure the post to capture those queries more deliberately (rewrite a section to include them, add a sub-heading) or split into a new piece if the queries are substantial enough to deserve dedicated content.

Common reasons new posts do not rank

When a piece fails to rank after 6 months, the cause is almost always one of four things. Intent mismatch: the post format does not match what Google considers the right answer for the query. A blog post targeting a query where Google ranks only commercial service pages will not rank no matter how well written. Keyword over-targeting: the writer chose a query that has no real search volume, or that is dominated by domains with so much authority that displacing them requires more than content quality alone. Internal link starvation: the post is technically published but no existing content links to it, so it never accumulates the cluster signal that supports ranking. Duplicate or near-duplicate: the post covers ground already covered by another page on the same site, and Google ranks the older or stronger page instead.

Each of these has a specific fix, but the discipline that prevents all of them is to do the keyword, intent, and structural work before drafting. Posts that get written with these decisions deferred until later usually fail at one of the four points. Posts that have these decisions clear before drafting begins usually rank, even when the writing itself is competent rather than exceptional.

For organisations producing content at scale and wanting a structured process for ranking and refresh, our SEO services Thailand include content auditing, ranking diagnosis, and refresh prioritisation. An experienced SEO consultant Bangkok can also work through your existing content to identify the plateau cases worth refreshing first.

Common questions

How long does it take for a new blog post to start ranking?

Most new posts get indexed within 3 to 7 days, start showing impressions in Google Search Console within 2 to 4 weeks, and reach a stable ranking position within 2 to 4 months. The variance is significant. Posts on established sites with strong internal linking and clear search intent matching can rank on page one within weeks. Posts on weaker domains, or pieces with intent mismatch issues, may take 6 months or never rank at all. The fastest-ranking pieces tend to share three characteristics: clear primary keyword targeting, tight intent match with the existing top results, and immediate internal linking from established pages that already have authority.

What makes a blog post rank quickly versus slowly?

Three factors dominate: domain authority, internal linking, and intent match. Strong domain authority means new content inherits some of the trust the domain has already earned with Google. Internal linking means new content is discovered, crawled, and contextualised faster because authoritative pages on the site point to it. Intent match means the post matches what users actually want when they search the target query. Content quality also matters but is downstream of these structural factors; a well-written piece on a weak domain with no internal links will rank slowly regardless of how good the writing is.

What should I do when a post's rankings plateau after six months?

Diagnose before refreshing. Open Google Search Console, filter to the URL, and look at three signals: average position trend (rising, flat, or falling), CTR at current position (above or below average for that position), and the specific queries the page is ranking for. A flat position with low CTR usually means the title and meta description need work. A falling position usually means competing content has improved and the page needs deeper coverage. A page ranking for unexpected queries may need restructuring to capture those queries more deliberately. The refresh action depends on the diagnosis, not a generic update.

How long should a blog post be to rank well?

Long enough to fully answer the search intent and not significantly longer. For most informational queries that is 1,200 to 2,000 words; for comprehensive guides 2,500 to 4,000; for narrow how-to queries sometimes 800 words is more than enough. The wrong question is how long to write; the right question is what the search intent actually requires. A 500-word post that perfectly answers a specific query will outrank a padded 3,000-word post on the same topic. Looking at the current top results for your target query gives a calibration point: if the top pages are 1,500 words, you probably need at least that depth.

Got content that should be ranking but is not?

Content audits, ranking diagnosis, and refresh prioritisation.

The specific reason a post is not ranking is rarely the obvious one. We find it and fix it.

Request an SEO Review
Keep reading

More from the blog.

How to build a content strategy that actually supports SEO
Content Strategy · 11 min read

How to Build a Content Strategy That Actually Supports SEO

The strategic decisions that should be made before writing any post. Audience mapping, intent matching, and the priority matrix for sequencing.

Read Content Strategy
Search intent why it matters more than keyword volume
On-Page SEO · 8 min read

Search Intent: Why It Matters More Than Volume

The intent layer that decides whether content ranks at all. Four types and how to identify which one a target query represents.

Read Search Intent
Internal linking the SEO tactic most sites underuse
On-Page SEO · 9 min read

Internal Linking: The SEO Tactic Most Sites Underuse

The ranking speed multiplier most posts go live without. Anchor text, link placement, and the work of updating existing pages.

Read Internal Linking
All Articles