Blog Post Publishing Checklist

Brief & Approval

    Working title, target persona, search intent (informational / commercial / transactional), key points, internal links to 2-3 related pillar pages, and brand voice notes. Use the team's brief template in Notion or Airtable — don't freelance the format.

    Pull volume, KD, and top-10 SERP from Ahrefs or Semrush. Verify the SERP is dominated by the same intent type as the brief — a transactional-intent SERP will not rank an informational article no matter how good it is.

    Three distinct people: writer drafts, editor reviews structure and voice, reviewer (subject-matter expert or PMM) signs off on accuracy. Don't collapse editor and reviewer into one role — they catch different problems.

Drafting & Editing

    Hit the outlined sections in order; flag any unverified claim with a [FACT-CHECK] tag inline so the reviewer can find them. Target word count comes from the SERP analysis, not a guess.

    Check H2/H3 hierarchy, intro hooks the search intent in the first 100 words, CTAs land at top-half and bottom, and tone matches the brand voice guide. Send back to writer with tracked changes if the structural rewrite is significant.

    Every statistic, quote, and named source gets a citation in a footnote or linked source. Quoted parties confirm their quotes in writing. Save the substantiation file alongside the draft — Lanham Act exposure on comparative claims is real.

    Grammar, AP or house style, hyphenation conventions, product-name capitalization. Run through Grammarly or the team's editor of choice but don't trust it blindly on technical terms.

    Reviewer is the SME or PMM — not a Slack DM thumbs-up. Capture the approval here so there's a timestamped record if a claim is challenged later.

    Rework the flagged sections, then route back to the reviewer for a second pass. Don't proceed to pre-publish QA until status moves to Approved or Approved with edits.

Pre-Publish Quality

    Target keyword in title, H1, meta description, URL slug, and first 100 words. Meta description under 155 characters. URL slug is short and keyword-led, no stop words. Run through Clearscope or Surfer if the team uses it.

    Every image has descriptive alt text (not 'image1.jpg'), confirmed license (stock, original, or AEM/Bynder asset ID), and is compressed under 200KB. Featured image sized 1200×630 for social cards.

    Two to three internal links to related pillar pages or topic-cluster posts. Outbound links to authoritative sources open in a new tab, rel='noopener'. No links to direct competitors unless the brief calls for it.

    Run the staged URL through Google's Rich Results Test. Confirm Article or BlogPosting schema with author, datePublished, image, and headline. Schema errors block rich-result eligibility.

    Use the team's UTM convention doc — source / medium / campaign must match the standard or GA4 reports become uncomparable. Build links through the shared link-builder tool, not by hand.

    Heading hierarchy is logical (no skipped levels), link text is descriptive (no 'click here'), color contrast meets AA on any custom-styled callouts. ADA Title III applies to public-facing sites.

Publish & Promote

    Move from staging to live in WordPress, HubSpot, Webflow, or Contentful. Confirm canonical URL, published date, author, and category are correct on the live page.

    Use the URL Inspection tool to request indexing. Verify it returns 'URL is on Google' within 24-48 hours; if not, check robots.txt and noindex tags.

    Not every blog post warrants a broadcast. Check cadence rules — has the segment received a send in the last 7 days? — and confirm the topic matches the segment's interest tags before deciding to send.

    Build in HubSpot, Marketo, or Iterable. Segment matches the topic tags. CAN-SPAM footer with physical address and one-click unsubscribe. Run Litmus or Email on Acid render check on Outlook, Gmail, and iOS Mail before send.

    Schedule LinkedIn, X, and Facebook through Sprout or Hootsuite per the channel cadence. Each link uses a distinct utm_content value so engagement-by-channel is measurable in GA4.

    Post in #content with a 2-sentence summary, target persona, and the one-liner sales reps can drop into a deal. Sales-enablement note goes in the shared library if the post supports a deal-stage talking point.

Post-Publish Analytics

    Walk the page in GA4 DebugView. Confirm CTA-click and form-submit events fire on actual submit, not on email-blur. Mis-mapped events distort conversion reporting and budget decisions for weeks.

    Pull traffic, average engagement time, scroll depth, conversions, and social shares. Compare against the rolling median for posts in the same topic cluster — a cold start at day 7 is normal for SEO-targeted posts but a red flag for distribution-led posts.

    Pull target keyword position from Ahrefs or Semrush. Confirm the page is indexed and ranking. If it's stuck on page 3+ after 30 days, queue for refresh — usually intent-mismatch or thin-content vs. SERP competition.

    Add to the quarterly content-audit queue with the diagnosis: intent mismatch, thin content, weak internal linking, or stale data. Refresh decisions go through the same brief process — don't patch in place.

Use this template in Manifestly

Start a Free 14 Day Trial
Use Slack? Start your trial with one click

Related Marketing Checklists

Ready to take control of your recurring tasks?

Start Free 14-Day Trial


Use Slack? Sign up with one click

With Slack