# CMSKite > Write posts in a hosted dashboard. Your site fetches them over HTTP. A headless blog CMS and content API with a free plan, no card. A headless blog CMS: posts are written in a hosted dashboard and fetched by any website over HTTP (REST API, TypeScript SDK `cmskite`, remote MCP server at https://api.cmskite.com/mcp with OAuth sign-in). A website uses one read-only project key (csk_live_...). View tracking runs in the reader's browser. ## Connect an AI tool over MCP Add https://api.cmskite.com/mcp (Streamable HTTP), then sign in to CMSKite in the browser and press Allow. No API key is involved. Full guide: https://cmskite.com/docs/mcp ## Start here - [Getting started (no code)](https://cmskite.com/docs/getting-started): Sign up, write your first post yourself or with AI, share your free blog link, then add the blog to your website with two pasted lines. No code. - [Quickstart](https://cmskite.com/docs/quickstart): Create an account, write a post, and read it from your own site with an API key. Five steps, about five minutes. - [Add your blog with two lines](https://cmskite.com/docs/embed): Paste two lines on WordPress, Shopify, Wix or any HTML page. What the embed does for SEO, how to get /blog/my-post addresses, and how to submit a sitemap. - [Post widgets and category blogs](https://cmskite.com/docs/widgets): Show recent posts or hand-picked posts on any page, and limit the blog embed to one category. - [Your free blog link](https://cmskite.com/docs/hosted-blog): Every account gets a blog at cmskite.com/b/your-name from sign-up. How to change the address, how it shares SEO with your own site, and using your own domain. - [JavaScript SDK](https://cmskite.com/docs/sdk): The official CMSKite client for JavaScript and TypeScript. Fetch posts, paginate, search, and count readers, with types generated from the API itself. - [Without a framework](https://cmskite.com/docs/no-framework): Use CMSKite from plain HTML, PHP, WordPress, Laravel or Python. Nothing to install: the API is HTTP with a bearer token, and it takes two requests. - [Making your posts findable](https://cmskite.com/docs/seo): How to make CMSKite posts visible to Google and AI assistants: server rendering, meta tags, sitemap, canonical URLs and the four mistakes that hide a blog. - [Authentication](https://cmskite.com/docs/authentication): Three credentials: a read-only project API key for your website, a dashboard session for people, and a sign-in for the AI tools you connect. ## Install guides - [Choose how to add your blog](https://cmskite.com/docs/install-overview): Four ways to put CMSKite posts on a website: the embed, the free blog link, the SDK or API, and a prompt for AI app builders. Which one fits your site. - [Add a blog to WordPress](https://cmskite.com/docs/install-wordpress): Add a CMSKite blog to a WordPress site with a Custom HTML block, and give posts clean /blog/post addresses with a rewrite rule. - [Add a blog to Wix](https://cmskite.com/docs/install-wix): Show CMSKite posts on a Wix site with Embed HTML, and why the free blog link is the copy that ranks on Wix. - [Add a blog to Shopify](https://cmskite.com/docs/install-shopify): Add a CMSKite blog to a Shopify store with a page template and a Custom Liquid section. - [Add a blog to Webflow](https://cmskite.com/docs/install-webflow): Add a CMSKite blog to a Webflow site with a Code Embed element, without using Webflow CMS items. - [Add a blog to Squarespace](https://cmskite.com/docs/install-squarespace): Add a CMSKite blog to a Squarespace site with a Code block, on the Core plan or higher. - [Add a blog to a Framer site](https://cmskite.com/docs/install-framer): Show CMSKite posts on a Framer page with an Embed, and when to link to the free blog link instead for search. - [Add a blog to a Carrd site](https://cmskite.com/docs/install-carrd): Add CMSKite posts to a Carrd one-page site with an Embed element, or link a Blog button to your free blog link. - [Add a blog to a plain HTML site](https://cmskite.com/docs/install-html): Add a CMSKite blog to a static HTML site with two lines, and optional clean /blog/post addresses on Apache or Nginx. - [Add a blog to a Next.js site](https://cmskite.com/docs/install-nextjs): A /blog list and /blog/[slug] post pages in the Next.js App Router, rendered on the server, with the CMSKite SDK. - [Add a blog to a React (Vite) app](https://cmskite.com/docs/install-react): Read CMSKite posts in a React single-page app built with Vite, with the SDK's browser entry point and a read-only key. - [Add a blog to an Astro site](https://cmskite.com/docs/install-astro): Build a CMSKite blog into an Astro site as static pages or on demand, with the SDK and a server-side key. - [Add a blog to a Lovable app](https://cmskite.com/docs/install-lovable): Add a CMSKite blog to a Lovable app with one prompt, and check that search engines can read the posts. - [Add a blog to a Bolt app](https://cmskite.com/docs/install-bolt): Add a CMSKite blog to a Bolt app with one prompt, and check that search engines can read the posts. - [Add a blog to a Replit app](https://cmskite.com/docs/install-replit): Add CMSKite posts to an app built on Replit, by asking its Agent with a prompt or by adding the SDK yourself. - [Add a blog to a v0 app](https://cmskite.com/docs/install-v0): Add CMSKite posts to a Next.js app generated with v0, with the AI builder prompt and a server-side key. - [Add a blog to an Emergent app](https://cmskite.com/docs/install-emergent): Add a CMSKite blog to an Emergent app with one prompt, and check that search engines can read the posts. ## Working with the API - [Pagination](https://cmskite.com/docs/pagination): Every collection is cursor-paginated. There is no page or offset parameter, and this explains why, and how to page correctly. - [Errors and status codes](https://cmskite.com/docs/errors): Every error code the CMSKite API can return, what causes it, and what a client should do about it. - [Rate limits and quotas](https://cmskite.com/docs/rate-limits): Requests per second, requests per month, and the headers on every response that let a client pace itself before it is refused. - [API key access](https://cmskite.com/docs/api-key-access): Choose what a project API key can do: read published posts, write drafts, or publish. - [Staging sites](https://cmskite.com/docs/staging-sites): Let a staging site use your API keys without leaking into search results or your analytics. ## Writing in the dashboard - [The post editor](https://cmskite.com/docs/editor): Write a post in rich text, Markdown, HTML or plain text, preview it, and save it as a draft. What each part of the CMSKite editor does. - [Post settings](https://cmskite.com/docs/post-settings): The Publish, Google and Image tabs beside the CMSKite editor: status, slug, category, tags, search title, description, canonical and noindex. - [Images and alt text](https://cmskite.com/docs/images-and-alt-text): Banner images, images in the body, social share images and alt text in CMSKite: sizes, what is done for you, and how to write alt text. - [Summary, FAQ and article type](https://cmskite.com/docs/summary-and-faq): Help AI engines and search results quote your post: a summary at the top, questions and answers below, and the article type in structured data. - [Scheduling posts](https://cmskite.com/docs/scheduling): Publish a CMSKite post at a set time: set the status to Scheduled, pick the time, and what your site sees before and after. - [Writing in more than one language](https://cmskite.com/docs/languages): Turn on languages for a website, add a version of a post in each, and what readers get when a version is missing. - [Version history](https://cmskite.com/docs/version-history): Every save of a post is kept. Compare a version with the current post and restore an older one. - [Listen to your posts (text-to-speech)](https://cmskite.com/docs/post-audio): Make a spoken version of a published post that readers can play on your blog. It costs AI credits. ## Content - [Writing with AI](https://cmskite.com/docs/ai-writing): How Write with AI turns a topic into a draft in English, Portuguese, Spanish, हिंदी or Hinglish, what the writing brief does and how AI posts count per month. - [Posts API](https://cmskite.com/docs/posts): Create, read, filter, sort, schedule and delete blog posts. Every field, every query parameter, and what a public key can see. - [Categories, tags and authors](https://cmskite.com/docs/categories-and-tags): A category tree up to three deep, tags created on demand, and authors that are content rather than user accounts. - [Media and image uploads](https://cmskite.com/docs/media): Files go straight from the browser to object storage with a presigned URL. The API issues the URL and records the file; it never carries the bytes. - [Search](https://cmskite.com/docs/search): Full-text search across a project’s published posts, with the punctuation people actually type handled rather than rejected. - [Import and export posts](https://cmskite.com/docs/import): Bring posts into CMSKite from WordPress, a CSV file or an RSS or Atom feed, and export every post as a CSV file. - [Comments with Disqus](https://cmskite.com/docs/comments): Add Disqus comments under every post on your hosted blog by entering your Disqus shortname. - [Smart Snippets](https://cmskite.com/docs/smart-snippets): Write a block of HTML once and add it to every published post you choose: a call to action, an ad or a notice. - [Blog design](https://cmskite.com/docs/blog-design): Set the logo, font, post list layout, colours, custom CSS and display options of your hosted blog. - [Newsletter](https://cmskite.com/docs/newsletter): Collect email subscribers on your blog and email each new post once, with a confirmed sign-up and an unsubscribe link. - [Autopilot and content plan](https://cmskite.com/docs/autopilot): Let CMSKite plan topics, write draft articles on a schedule and fix SEO problems, while you approve what goes live. ## SEO and AI search - [The SEO report](https://cmskite.com/docs/seo-report): What the CMSKite SEO score checks in each post, how points are counted, and what Fix with AI changes. - [Structured data (JSON-LD)](https://cmskite.com/docs/structured-data): The JSON-LD CMSKite adds to hosted blog pages, what each node is for, and how to add the same to your own site's post pages. - [Redirects and missing pages](https://cmskite.com/docs/redirects): Send readers of an old or missing address to a live page: automatic slug redirects, your own redirect rules, and the list of pages that answered 404. - [Link Guard](https://cmskite.com/docs/link-guard): Find broken links in your published posts every week. See which links are broken and which you should check. - [Sitemaps, feeds, llms.txt and IndexNow](https://cmskite.com/docs/sitemaps-and-feeds): Every machine-readable file a CMSKite blog publishes: XML sitemaps, the RSS feed, llms.txt for AI tools, and IndexNow pings on publish. - [Google Search Console](https://cmskite.com/docs/search-console): Connect Google Search Console to CMSKite to see real clicks, impressions, CTR, position and searches for every post. Read-only. - [AI crawlers and AI search](https://cmskite.com/docs/ai-crawlers): Choose which AI bots may read your hosted blog, see which ones visit, and make posts easy for ChatGPT, Perplexity and Google AI to quote. - [Site audit and PageSpeed](https://cmskite.com/docs/site-audit): A daily check of your pages with a score from 0 to 100, speed results from Google PageSpeed, saved reports and alerts. - [Backlinks](https://cmskite.com/docs/backlinks): See which sites link to your blog, what changed, how you compare with competitors and which links bring readers. - [AI visibility tracking](https://cmskite.com/docs/ai-visibility): Track whether ChatGPT, Claude, Gemini and Perplexity mention or cite your blog when people ask questions your posts answer. ## Measuring - [Analytics](https://cmskite.com/docs/analytics): How CMSKite counts views, readers and clicks: reported by the page a person opened, not API requests. No cookie; a pseudonymous daily hash, kept 90 days. - [Why your views are zero](https://cmskite.com/docs/tracking-views): Your site fetches posts but every view reads zero? Why, how to check in ten seconds, and the snippet to add for Next.js, React, HTML, PHP or WordPress. - [Google Analytics](https://cmskite.com/docs/google-analytics): Connect your Google Analytics 4 property to CMSKite to see sessions, users and page views per post, read-only and with no tracking code added. - [AI bot analytics](https://cmskite.com/docs/ai-bot-analytics): See which AI crawlers read your blog, whether they are real, and which pages they read most. ## Your account - [Plans, limits and changing plan](https://cmskite.com/docs/plans): What each plan includes, what happens when you reach a limit, and how buying and changing a plan works. - [Bring your own database](https://cmskite.com/docs/own-database): Point a project at your own MongoDB cluster. The API behaves identically; your content lives on your infrastructure. - [Team and roles](https://cmskite.com/docs/team-and-roles): Invite people to a CMSKite workspace, choose a built-in role or make your own, and fine-tune what one person can do. - [Two-step sign-in](https://cmskite.com/docs/two-factor): Protect your account with a code from an authenticator app. Set it up, use recovery codes and turn it off. - [Single sign-on](https://cmskite.com/docs/single-sign-on): Let your team sign in with your company identity provider using OpenID Connect, and require it for your domains. - [White-label branding and the Clients screen](https://cmskite.com/docs/white-label): Put your agency name on the hosted blog footer and on shared reports, hide the CMSKite credit, and see all client workspaces. - [Authors](https://cmskite.com/docs/authors): Credit posts to an author with a name, bio and photo. Authors are bylines, not logins, and are available over the API. - [Move your blog to CMSKite](https://cmskite.com/docs/migrate): Move posts from WordPress, Wix, Squarespace, Ghost or Medium to CMSKite without losing your search traffic: export, recreate with the same slugs, redirect the rest. - [Export your data](https://cmskite.com/docs/export-your-data): Download everything a CMSKite project holds as one NDJSON file, for a backup or to move elsewhere. Your content is yours. - [Backups](https://cmskite.com/docs/backups): CMSKite backs up your posts and settings every week. Download a copy or make one on request. - [AI credits and usage](https://cmskite.com/docs/credits): One balance pays for every AI feature. See what is left, what each feature costs and how to buy more. - [Agency clients and shared reports](https://cmskite.com/docs/agency-and-reports): Open all your client workspaces from one page, and share a site audit report with a link. - [Activity log](https://cmskite.com/docs/activity-log): See who changed what on a website, and undo an SEO fix. - [Notifications](https://cmskite.com/docs/notifications): Invitations to join other teams show here and on the bell. ## Automation - [Webhooks](https://cmskite.com/docs/webhooks): Get a signed HTTP request when a post is published, changed or deleted, or when a report is ready. Events, payload, signature check and retries. - [MCP and automation](https://cmskite.com/docs/mcp): Connect Claude Code, Codex, Gemini CLI, Cursor, VS Code, Claude, ChatGPT or any MCP client to CMSKite with one URL and a browser sign-in. No keys. - [Zapier, Make and n8n](https://cmskite.com/docs/zapier): Connect CMSKite to Zapier, Make, n8n or any tool that can receive a webhook, using REST hooks and the API. ## Reference - [API reference](https://cmskite.com/docs/api-reference): Every endpoint in the CMSKite API, what it does, and which credential reaches it. Generated from the same schemas that validate the requests. - [Frequently asked questions](https://cmskite.com/docs/faq): Plans, limits, keys, your data, exports, AI assistants and what happens if you leave — answered without signing up. - [Help and support](https://cmskite.com/docs/help-and-support): Chat with the CMSKite team, raise a ticket or book a free setup call. ## Coming soon - [Your own domain for the hosted blog](https://cmskite.com/docs/custom-domain): Serving the free hosted blog at blog.yoursite.com is coming. How to put posts on your own domain today. ## Features - [AI writing](https://cmskite.com/features/ai-writing): Type a topic, get an SEO-ready blog draft in English, Hindi, Hinglish, Portuguese or Spanish, with headings and a search snippet. You edit and publish. - [Embed your blog](https://cmskite.com/features/embed-blog): Paste two lines on one page of the site you already have and your posts appear there in its fonts and colours. Works on WordPress, Shopify and HTML sites. - [Free blog link](https://cmskite.com/features/free-blog-link): Every account gets a free blog at cmskite.com/b/your-name, live from sign-up: your name and colour, no ads, a page per post, ready for search and sharing. - [SEO](https://cmskite.com/features/seo): Each post gets its own address, search title, description, canonical link, BlogPosting schema and sitemap entry, with no SEO plugin to install or update. - [Hindi and Hinglish](https://cmskite.com/features/hindi-hinglish): Write blog posts in हिंदी or Hinglish with AI. Which language to pick, how Hindi posts get their address, and what Google reads. Free plan included. - [Team and roles](https://cmskite.com/features/team-and-roles): Invite writers, editors and developers to one blog with roles: who drafts, who publishes, who sees the numbers, who handles keys. Built for agencies too. - [Blog analytics](https://cmskite.com/features/analytics): See how many people read each blog post and which links they click, with no cookie and no stored IP address. What is counted, how, and what is not. - [For developers](https://cmskite.com/features/developers): A REST API, TypeScript SDK and MCP server for your blog: read-only keys for sites, sign-in for AI tools, signed webhooks, your own MongoDB on paid plans. ## Integrations - [WordPress](https://cmskite.com/integrations/wordpress): Show CMSKite posts on any WordPress page with a Custom HTML block. No plugin to update, SEO handled per post, AI writing built in. Steps, fixes and FAQ. - [Wix](https://cmskite.com/integrations/wix): Add a CMSKite blog to a Wix page with an Embed HTML element. The steps, what Wix’s frame means for SEO, the fixes, and when Wix Blog is the better pick. - [Shopify](https://cmskite.com/integrations/shopify): Write Shopify blog posts in CMSKite and show them in your theme with a Custom Liquid section. Steps, the canonical fix, the robots.txt sitemap line, FAQ. - [Webflow](https://cmskite.com/integrations/webflow): Show CMSKite posts on any Webflow page with a Code Embed element. Posts are not Webflow CMS items, so no item limits apply. Steps, SEO, fixes and FAQ. - [Squarespace](https://cmskite.com/integrations/squarespace): Show CMSKite posts on a Squarespace page with a Code block (Core plan and up). Steps, fixes for code that shows as text, the SEO limit to know, and FAQ. - [Lovable](https://cmskite.com/integrations/lovable): Add a blog to a Lovable site with one ready-made prompt. Write posts in CMSKite; they go live without republishing. No API key, steps, fixes and FAQ. - [Bolt](https://cmskite.com/integrations/bolt): Add a blog to a Bolt site: paste CMSKite’s prompt into Bolt, publish once, then write posts in CMSKite. Keep Bolt from rewriting it, SEO, fixes and FAQ. - [Emergent](https://cmskite.com/integrations/emergent): Add a server-rendered blog to an Emergent app with one prompt and no API key to manage. Write posts in CMSKite. Steps, fixes, costs and FAQ. ## Comparisons - [CMSKite vs WordPress](https://cmskite.com/compare/wordpress): CMSKite or a WordPress blog? Hosting, updates, writers, SEO, comments and moving your posts, compared from both products’ docs, and when WordPress wins. - [CMSKite vs Wix Blog](https://cmskite.com/compare/wix): Wix Blog or CMSKite on a Wix site? Where posts rank, SEO, writers, AI, comments and leaving Wix, from both products’ docs, and when Wix Blog is the pick. - [CMSKite vs Shopify blog](https://cmskite.com/compare/shopify): Shopify’s blog or CMSKite? SEO, writers and staff accounts, AI drafts, comments and moving posts, from both products’ docs, and when Shopify wins. - [CMSKite vs Ghost](https://cmskite.com/compare/ghost): Ghost or CMSKite? Newsletters, members, hosting, adding a blog to a site you have, writers and moving posts, from Ghost’s docs, and when Ghost wins. - [CMSKite vs Contentful and Sanity](https://cmskite.com/compare/headless-cms): Contentful or Sanity for a business blog, or CMSKite? Content models, who builds the pages, free plans and what non-developers get, from their own docs. - [CMSKite vs Medium and Substack](https://cmskite.com/compare/medium-substack): Medium or Substack for a business blog, or CMSKite? Whose site readers land on, custom domains, newsletters, paywalls and exports, from their help docs. - [CMSKite vs DropInBlog](https://cmskite.com/compare/dropinblog): CMSKite vs DropInBlog, checked against DropInBlog’s own pricing and help pages: price at 1, 5 and 10 people, AI writing, analytics, roles, and when DropInBlog is the better choice. ## Use cases - [Use cases](https://cmskite.com/use-cases): topics, dates, a brief and a real unedited AI draft for each kind of business - [Bakeries and cafés](https://cmskite.com/use-cases/bakeries-and-cafes): What a bakery or café should blog about, the dates to plan around, what never to claim, and a real unedited AI draft for a neighbourhood bakery. - [Clinics and dentists](https://cmskite.com/use-cases/clinics-and-dentists): What a dental practice or clinic should blog about, what it must never claim, the dates to plan around, and a real unedited AI draft for a family dentist. - [Salons and beauty](https://cmskite.com/use-cases/salons-and-beauty): What a hair, nail or beauty salon should blog about, the seasons to plan for, claims to avoid, and a real unedited AI draft on keratin aftercare. - [Real estate agents](https://cmskite.com/use-cases/real-estate-agents): What a real estate agent should blog about, the rules for property ads, the dates that move buyers, and a real unedited AI draft for first-time buyers. - [Local services](https://cmskite.com/use-cases/local-services): What plumbers, electricians and repair services should blog about, the seasons that bring calls, the safety line to keep, and a real unedited AI draft. - [Agencies](https://cmskite.com/use-cases/agencies): Run every client’s blog from one account: a website per client with its own brief, writers let into only their clients, one embed for any platform. - [SaaS and app builders](https://cmskite.com/use-cases/saas-and-apps): A blog, changelog and help articles for a software product: what to publish, where AI drafts help and where they must not, and a real AI draft. ## Glossary - [Glossary](https://cmskite.com/glossary): Canonical URL, hreflang, sitemap, slug, noindex, Open Graph and more: each with an exact definition, a real example and the mistakes blogs make. - [Canonical URL](https://cmskite.com/glossary/canonical-url): A canonical URL tells search engines which address is the real one when a page has several. A real tag, why it matters for a blog, and the usual mistakes. - [Hreflang](https://cmskite.com/glossary/hreflang): Hreflang tells search engines which language version of a page to show whom. An example for English, Portuguese and Spanish posts, and common mistakes. - [Sitemap](https://cmskite.com/glossary/sitemap): A sitemap lists the pages you want search engines to find. A real XML example, when a small blog needs one, the mistakes to avoid, and how to submit it. - [Slug](https://cmskite.com/glossary/slug): A slug is the readable part of an address that names one page. Real examples in four languages, why it matters for a blog, and how to rename one safely. - [Meta description](https://cmskite.com/glossary/meta-description): A meta description is the summary search engines may show under your title. A good and a bad example, what Google says about length, and mistakes. - [Structured data (JSON-LD)](https://cmskite.com/glossary/structured-data): Structured data tells search engines what a page is: an article, its headline, author and dates. A real JSON-LD example for a blog post, and mistakes. - [Headless CMS](https://cmskite.com/glossary/headless-cms): A headless CMS stores content and your site fetches it over an API. A real request, when a small business needs one, and the mistakes that hide a blog. - [Embed code](https://cmskite.com/glossary/embed-code): Embed code is a short piece of HTML that shows something hosted elsewhere on your page. Script or iframe, what each means for SEO, and common mistakes. - [Noindex](https://cmskite.com/glossary/noindex): Noindex asks search engines to leave a page out of results while it stays live. The exact tag, when a blog should use it, and mistakes that undo it. - [Open Graph](https://cmskite.com/glossary/open-graph): Open Graph tags set the title, picture and description in a shared link’s preview on WhatsApp, LinkedIn or Slack. A real example and common mistakes. ## Free tools - [Free tools](https://cmskite.com/tools): Free tools for business blogs: an SEO checker, topic ideas, a meta title and description checker, a slug generator, a reading-time calculator, a robots.txt checker and an AI visibility check. - [Blog topic ideas](https://cmskite.com/tools/blog-topic-generator): Describe your business in a sentence and get five blog post ideas your customers would search for, in English, Hindi, Hinglish, Portuguese or Spanish. - [Meta title and description checker](https://cmskite.com/tools/meta-title-description-checker): Check your page title and meta description in characters and pixels, and preview the Google result on desktop and mobile. Free, runs in your browser. - [Slug generator](https://cmskite.com/tools/slug-generator): Turn a blog post title into a clean URL slug as you type. Accents are dropped and Hindi (Devanagari) is spelled in Latin letters. Free, no sign-up. - [Reading time calculator](https://cmskite.com/tools/reading-time-calculator): Paste a blog post and get its word count and “min read”, at 225 words a minute, with code and Markdown symbols left out. Free, runs in your browser. - [robots.txt and sitemap checker](https://cmskite.com/tools/robots-sitemap-checker): Check that your robots.txt is reachable and lists a sitemap, that the sitemap loads and has pages, and whether your blog posts are in it. Free, no account. - [SEO checker](https://cmskite.com/tools/seo-checker): Paste a blog post and get an SEO score out of 100 with the top three fixes: title, meta description, headings, keyword use, links, alt text and readability. - [AI visibility check](https://cmskite.com/tools/ai-visibility-check): Check whether AI search crawlers may read your site, whether Google may quote it in AI Overviews, and whether the text is there without JavaScript. Free, no account. ## Pricing - [Pricing](https://cmskite.com/pricing): plans, limits and what each plan includes ## Blog - [Blog](https://cmskite.com/blog): guides on headless blogging, SEO and AI search - [How to Measure Blog SEO Performance with Google Search Console](https://cmskite.com/blog/measure-blog-seo-performance): Measure blog SEO performance with Google Search Console impressions, clicks, click-through rate, queries, and page-level comparisons. - [How to Write Blog Calls to Action That Convert Readers](https://cmskite.com/blog/blog-call-to-action-examples): See practical blog call to action examples and learn how to match CTA wording, placement, and next steps to a reader's intent. - [Internal Linking for Blogs: A Practical Strategy for SEO](https://cmskite.com/blog/internal-linking-strategy-blogs): Build an internal linking strategy for blogs that helps readers discover related content and clarifies page relationships for search engines. - [How to Refresh Old Blog Posts and Improve Their SEO](https://cmskite.com/blog/refresh-old-blog-posts-seo): Refresh old blog posts by reviewing search intent, outdated facts, titles, internal links, and Search Console performance before republishing. - [A Simple Blog Post Outline Template That Keeps Articles Focused](https://cmskite.com/blog/blog-post-outline-template): Use this blog post outline template to structure search intent, key headings, examples, internal links, FAQs, and a useful call to action. - [How to Find Long-Tail Keywords for Your Business Blog](https://cmskite.com/blog/find-long-tail-keywords-business-blog): Learn how to find long-tail keywords for a business blog using customer questions, search suggestions, competitor research, and intent checks. - [Local SEO Blog Ideas That Help Bring Nearby Customers](https://cmskite.com/blog/local-seo-blog-ideas): Explore local SEO blog ideas that answer customer questions, demonstrate local expertise, and guide nearby customers toward relevant services. - [How to Build a Content Calendar for a Small Business](https://cmskite.com/blog/small-business-content-calendar): Create a small business content calendar with practical topic ideas, keyword targets, a realistic publishing schedule, and a monthly review process. - [Enable Preview Mode for Authors in a Headless Blog with CMSkite](https://cmskite.com/blog/enable-preview-mode-cmskite): Learn how to set up a secure, author‑friendly preview mode for a headless blog using CMSkite, from API endpoint to JWT protection and SEO metadata. - [How to Automate Blog Publishing](https://cmskite.com/blog/blog-publishing-automation): Learn how to automate blog publishing with a practical workflow for content planning, AI-assisted drafts, SEO checks, approvals, scheduling, and performance tracking. - [Step‑by‑Step Guide to Automating Image Optimization in Headless Blog Workflows with CMS Kite](https://cmskite.com/blog/automate-image-optimization-headless-blog): Learn how to connect CMS Kite’s media API with build‑time and edge‑runtime pipelines to serve responsive, SEO‑friendly images in headless blogs. - [Is Server‑Side Rendering Necessary for SEO in a Headless Blog?](https://cmskite.com/blog/ssr-ssg-headless-blog-seo): Learn when server side rendering, static generation, or client rendering best serve a headless blog’s SEO, with practical Next.js examples using CMSKite. - [Optimizing Images in a Headless Blog with Automatic CDN Delivery](https://cmskite.com/blog/headless-blog-image-optimization-cdn): A step‑by‑step guide for developers to boost image performance on headless blogs using CMSKite, Next.js, and CDN features. - [How to Manage Multiple Websites with Workspaces](https://cmskite.com/blog/organize-multiple-websites-with-workspaces): Learn how workspaces and projects help companies organize multiple websites, brands, and content in one clean and scalable structure. - [Next.js Blog Architecture: Build a Scalable Blog with a Headless CMS](https://cmskite.com/blog/nextjs-blog-architecture-headless-cms): Learn how to build a scalable Next.js blog with a headless CMS, clean APIs, SEO, media, analytics, search, and maintainable content architecture. - [How to Choose the Best Headless CMS for Next.js in 2026](https://cmskite.com/blog/best-headless-cms-for-next-js-2026): A practical guide to choosing a headless CMS for Next.js, covering APIs, SEO, analytics, media, developer experience, scalability, and frontend control. - [SEO Best Practices for Blogs in 2026: A Practical Guide](https://cmskite.com/blog/seo-best-practices-for-blogs-2026): A practical 2026 guide to blog SEO: search intent, titles, internal links, structured data, AI search, technical SEO, content updates, and measurement. - [Headless Blog API Explained: How Modern Websites Manage Content](https://cmskite.com/blog/headless-blog-api-explained): Learn how a headless blog API separates content from your frontend, why modern developers use this architecture, and how CMSKite fits the workflow. - [How to add a blog to your website without WordPress](https://cmskite.com/blog/add-a-blog-without-wordpress): You already have a website. You want a blog on it, in your design, without a second site to host and patch. Here is the short way. - [What llms.txt is, and whether your site needs one](https://cmskite.com/blog/llms-txt-explained): A plain-text map of your site for language models. It takes ten minutes to write. Here is what goes in it and what it does not do. - [How AI search decides which pages to cite](https://cmskite.com/blog/how-ai-search-picks-sources): Assistants that browse still start from pages a crawler could read. What makes a page easy to quote, and what quietly hides it. - [Does a blog still help SEO?](https://cmskite.com/blog/does-a-blog-help-seo): Short answer: a blog that answers real questions does. A blog that exists because someone said you need one does not. - [A blog in Next.js with the CMSKite SDK](https://cmskite.com/blog/nextjs-blog-with-cmskite): Two pages, one client, rendered on the server and cached. The whole integration in about forty lines. - [Headless CMS or WordPress for a small business site?](https://cmskite.com/blog/headless-cms-vs-wordpress): WordPress is a whole website. A headless CMS is only the content. Which one you want depends on whether you already have a site. ## Company - [About CMSKite](https://cmskite.com/about): who builds CMSKite and how to reach us - [Changelog](https://cmskite.com/changelog): what changed, newest first - [Support](https://cmskite.com/support): questions, guides and how to reach us ## Optional - [Full documentation](https://cmskite.com/llms-full.txt): every docs page in one Markdown file - [OpenAPI document](https://api.cmskite.com/openapi.json): every endpoint, machine-readable